From cec4d1478c623a986fe3b1545d33ce6713d051a8 Mon Sep 17 00:00:00 2001 From: cyfung1031 <44498510+cyfung1031@users.noreply.github.com> Date: Sat, 2 Dec 2023 17:26:59 +0900 Subject: [PATCH 1/8] reduce filesize --- src/data/helpers/set_data.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/data/helpers/set_data.ts b/src/data/helpers/set_data.ts index 24757417..fd62d197 100644 --- a/src/data/helpers/set_data.ts +++ b/src/data/helpers/set_data.ts @@ -4,8 +4,6 @@ function setData ( ele: EleLoose, key: string, value: any ): void { - value = attempt ( JSON.stringify, value ); - - ele.dataset[camelCase ( key )] = value; + ele.dataset[camelCase ( key )] = attempt ( JSON.stringify, value ); } From 21e59fc3dd5a50ee4fe6dd2e857d5581bfa6da12 Mon Sep 17 00:00:00 2001 From: cyfung1031 <44498510+cyfung1031@users.noreply.github.com> Date: Sat, 2 Dec 2023 17:35:36 +0900 Subject: [PATCH 2/8] reduce filesize --- src/offset/position.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/offset/position.ts b/src/offset/position.ts index 5333710a..e66bd244 100644 --- a/src/offset/position.ts +++ b/src/offset/position.ts @@ -25,9 +25,11 @@ fn.position = function ( this: Cash ) { const doc = ele.ownerDocument; - let offsetParent = ele.offsetParent || doc.documentElement; + const root = doc.documentElement; + + let offsetParent = ele.offsetParent || root; - while ( ( offsetParent === doc.body || offsetParent === doc.documentElement ) && computeStyle ( offsetParent, 'position' ) === 'static' ) { + while ( ( offsetParent === doc.body || offsetParent === root ) && computeStyle ( offsetParent, 'position' ) === 'static' ) { offsetParent = offsetParent.parentNode; From 58454104bcba5e8645b8ff2c676ee87690c707e2 Mon Sep 17 00:00:00 2001 From: cyfung1031 <44498510+cyfung1031@users.noreply.github.com> Date: Sat, 2 Dec 2023 17:42:30 +0900 Subject: [PATCH 3/8] reduce filesize --- src/manipulation/helpers/eval_scripts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/manipulation/helpers/eval_scripts.ts b/src/manipulation/helpers/eval_scripts.ts index e8d04ea5..b301cd61 100644 --- a/src/manipulation/helpers/eval_scripts.ts +++ b/src/manipulation/helpers/eval_scripts.ts @@ -25,7 +25,7 @@ function evalScripts ( node: Node, doc: Document ): void { }); - doc.head.insertBefore ( script, null ); + doc.head.appendChild ( script ); doc.head.removeChild ( script ); } From 8f83621345963c116b78b602dd85563d89aeab50 Mon Sep 17 00:00:00 2001 From: cyfung1031 <44498510+cyfung1031@users.noreply.github.com> Date: Sat, 2 Dec 2023 18:03:41 +0900 Subject: [PATCH 4/8] reduce filesize: `this.each` to inner function `each` --- src/attributes/attr.ts | 2 +- src/attributes/prop.ts | 2 +- src/attributes/remove_attr.ts | 2 +- src/attributes/remove_prop.ts | 2 +- src/attributes/toggle_class.ts | 2 +- src/css/css.ts | 2 +- src/data/data.ts | 2 +- src/dimensions/normal.ts | 2 +- src/effects/toggle.ts | 2 +- src/events/off.ts | 4 ++-- src/events/on.ts | 2 +- src/events/trigger.ts | 2 +- src/forms/serialize.ts | 2 +- src/forms/val.ts | 2 +- src/manipulation/empty.ts | 2 +- src/manipulation/html.ts | 2 +- src/manipulation/text.ts | 2 +- src/manipulation/wrap.ts | 2 +- src/manipulation/wrap_inner.ts | 2 +- 19 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/attributes/attr.ts b/src/attributes/attr.ts index 173230f8..4a63fbce 100644 --- a/src/attributes/attr.ts +++ b/src/attributes/attr.ts @@ -35,7 +35,7 @@ function attr ( this: Cash, attr?: string | Record, value?: stri if ( isNull ( value ) ) return this.removeAttr ( attr ); - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { if ( !isElement ( ele ) ) return; diff --git a/src/attributes/prop.ts b/src/attributes/prop.ts index 6ff7fd14..42ede564 100644 --- a/src/attributes/prop.ts +++ b/src/attributes/prop.ts @@ -20,7 +20,7 @@ fn.prop = function ( this: Cash, prop: string | Record, value?: any if ( arguments.length < 2 ) return this[0] && this[0][prop]; - return this.each ( ( i, ele ) => { ele[prop] = value } ); + return each ( this, ( i, ele ) => { ele[prop] = value } ); } diff --git a/src/attributes/remove_attr.ts b/src/attributes/remove_attr.ts index 8603a578..8f1a7cc8 100644 --- a/src/attributes/remove_attr.ts +++ b/src/attributes/remove_attr.ts @@ -11,7 +11,7 @@ fn.removeAttr = function ( this: Cash, attr: string ) { const attrs = getSplitValues ( attr ); - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { if ( !isElement ( ele ) ) return; diff --git a/src/attributes/remove_prop.ts b/src/attributes/remove_prop.ts index fafbac7b..e46fd0e8 100644 --- a/src/attributes/remove_prop.ts +++ b/src/attributes/remove_prop.ts @@ -9,6 +9,6 @@ interface Cash { fn.removeProp = function ( this: Cash, prop: string ) { - return this.each ( ( i, ele ) => { delete ele[propMap[prop] || prop] } ); + return each ( this, ( i, ele ) => { delete ele[propMap[prop] || prop] } ); }; diff --git a/src/attributes/toggle_class.ts b/src/attributes/toggle_class.ts index c6c32357..9b1a0e72 100644 --- a/src/attributes/toggle_class.ts +++ b/src/attributes/toggle_class.ts @@ -14,7 +14,7 @@ fn.toggleClass = function ( this: Cash, cls: string, force?: boolean ) { const classes = getSplitValues ( cls ); const isForce = !isUndefined ( force ); - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { if ( !isElement ( ele ) ) return; diff --git a/src/css/css.ts b/src/css/css.ts index 06a19746..07f5a203 100644 --- a/src/css/css.ts +++ b/src/css/css.ts @@ -30,7 +30,7 @@ function css ( this: Cash, prop: string | Record, value value = getSuffixedValue ( prop, value, isVariable ); - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { if ( !isElement ( ele ) ) return; diff --git a/src/data/data.ts b/src/data/data.ts index 7064a10f..be173924 100644 --- a/src/data/data.ts +++ b/src/data/data.ts @@ -40,7 +40,7 @@ function data ( this: Cash, name?: string | Record, value?: any ) { if ( isUndefined ( value ) ) return this; - return this.each ( ( i, ele ) => { setData ( ele, name, value ) } ); + return each ( this, ( i, ele ) => { setData ( ele, name, value ) } ); } diff --git a/src/dimensions/normal.ts b/src/dimensions/normal.ts index 409a2a2a..1457887a 100644 --- a/src/dimensions/normal.ts +++ b/src/dimensions/normal.ts @@ -35,7 +35,7 @@ each ( ['Width', 'Height'], ( index: number, prop: 'Width' | 'Height' ) => { const valueNumber = parseInt ( value, 10 ); - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { if ( !isElement ( ele ) ) return; diff --git a/src/effects/toggle.ts b/src/effects/toggle.ts index 3b1dbbb4..47b64d30 100644 --- a/src/effects/toggle.ts +++ b/src/effects/toggle.ts @@ -12,7 +12,7 @@ interface Cash { fn.toggle = function ( this: Cash, force?: boolean ) { - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { if ( !isElement ( ele ) ) return; diff --git a/src/events/off.ts b/src/events/off.ts index c4b90feb..9b732617 100644 --- a/src/events/off.ts +++ b/src/events/off.ts @@ -19,7 +19,7 @@ fn.off = function ( this: Cash, eventFullName?: string | Record { + each ( this, ( i, ele ) => { if ( !isElement ( ele ) && !isDocument ( ele ) && !isWindow ( ele ) ) return; @@ -49,7 +49,7 @@ fn.off = function ( this: Cash, eventFullName?: string | Record { + each ( this, ( i, ele ) => { if ( !isElement ( ele ) && !isDocument ( ele ) && !isWindow ( ele ) ) return; diff --git a/src/events/on.ts b/src/events/on.ts index 85c8fd85..3330d035 100644 --- a/src/events/on.ts +++ b/src/events/on.ts @@ -84,7 +84,7 @@ function on ( this: Cash, eventFullName: Record | string, if ( !name ) return; - this.each ( ( i, ele ) => { + each ( this, ( i, ele ) => { if ( !isElement ( ele ) && !isDocument ( ele ) && !isWindow ( ele ) ) return; diff --git a/src/events/trigger.ts b/src/events/trigger.ts index c0f605ce..ed7aa933 100644 --- a/src/events/trigger.ts +++ b/src/events/trigger.ts @@ -33,7 +33,7 @@ fn.trigger = function ( this: Cash, event: Event | string, data?: any ) { const isEventFocus = ( event.___ot in eventsFocus ); - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { if ( isEventFocus && isFunction ( ele[event.___ot] ) ) { diff --git a/src/forms/serialize.ts b/src/forms/serialize.ts index aa00f433..66a9490d 100644 --- a/src/forms/serialize.ts +++ b/src/forms/serialize.ts @@ -16,7 +16,7 @@ fn.serialize = function ( this: Cash ) { let query = ''; - this.each ( ( i, ele ) => { + each ( this, ( i, ele ) => { each ( ele.elements || [ele], ( i, ele: EleLoose ) => { diff --git a/src/forms/val.ts b/src/forms/val.ts index 6329e548..7bb4e779 100644 --- a/src/forms/val.ts +++ b/src/forms/val.ts @@ -16,7 +16,7 @@ function val ( this: Cash, value?: string | string[] ) { if ( !arguments.length ) return this[0] && getValue ( this[0] ); - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { const isSelect = ele.multiple && ele.options; diff --git a/src/manipulation/empty.ts b/src/manipulation/empty.ts index 82142879..a7e5cb97 100644 --- a/src/manipulation/empty.ts +++ b/src/manipulation/empty.ts @@ -8,7 +8,7 @@ interface Cash { fn.empty = function ( this: Cash ) { - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { while ( ele.firstChild ) { diff --git a/src/manipulation/html.ts b/src/manipulation/html.ts index bd369b38..73e62560 100644 --- a/src/manipulation/html.ts +++ b/src/manipulation/html.ts @@ -20,7 +20,7 @@ function html ( this: Cash, html?: string ) { const hasScript = /]/.test ( html ); - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { if ( !isElement ( ele ) ) return; diff --git a/src/manipulation/text.ts b/src/manipulation/text.ts index 83668be3..9e514ab7 100644 --- a/src/manipulation/text.ts +++ b/src/manipulation/text.ts @@ -19,7 +19,7 @@ function text ( this: Cash, text?: string ) { } - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { if ( !isElement ( ele ) ) return; diff --git a/src/manipulation/wrap.ts b/src/manipulation/wrap.ts index 2798cb32..5cf42a59 100644 --- a/src/manipulation/wrap.ts +++ b/src/manipulation/wrap.ts @@ -9,7 +9,7 @@ interface Cash { fn.wrap = function ( this: Cash, selector?: Selector ) { - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { const wrapper = cash ( selector )[0]; diff --git a/src/manipulation/wrap_inner.ts b/src/manipulation/wrap_inner.ts index 9b4d408e..8a3db6ca 100644 --- a/src/manipulation/wrap_inner.ts +++ b/src/manipulation/wrap_inner.ts @@ -9,7 +9,7 @@ interface Cash { fn.wrapInner = function ( this: Cash, selector?: Selector ) { - return this.each ( ( i, ele ) => { + return each ( this, ( i, ele ) => { const $ele = cash ( ele ); const contents = $ele.contents (); From b2461d1c419ff459f08941211a3e62ca7995abba Mon Sep 17 00:00:00 2001 From: cyfung1031 <44498510+cyfung1031@users.noreply.github.com> Date: Sat, 2 Dec 2023 18:17:55 +0900 Subject: [PATCH 5/8] reduce filesize by inverted condition --- src/manipulation/wrap.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/manipulation/wrap.ts b/src/manipulation/wrap.ts index 5cf42a59..1d4cabf0 100644 --- a/src/manipulation/wrap.ts +++ b/src/manipulation/wrap.ts @@ -13,7 +13,7 @@ fn.wrap = function ( this: Cash, selector?: Selector ) { const wrapper = cash ( selector )[0]; - cash ( ele ).wrapAll ( !i ? wrapper : wrapper.cloneNode ( true ) ); + cash ( ele ).wrapAll ( i ? wrapper.cloneNode ( true ) : wrapper ); }); From c148751f1ce69110173c2a41cd646d6a995c659a Mon Sep 17 00:00:00 2001 From: cyfung1031 <44498510+cyfung1031@users.noreply.github.com> Date: Sat, 2 Dec 2023 18:20:48 +0900 Subject: [PATCH 6/8] reduce filesize with performance optimizing --- src/manipulation/wrap_all.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/manipulation/wrap_all.ts b/src/manipulation/wrap_all.ts index 74c42ebf..041c75a9 100644 --- a/src/manipulation/wrap_all.ts +++ b/src/manipulation/wrap_all.ts @@ -12,8 +12,9 @@ fn.wrapAll = function ( this: Cash, selector?: Selector ) { let structure = cash ( selector ); let wrapper: Element = structure[0]; + let t: Element | undefined; - while ( wrapper.children.length ) wrapper = wrapper.firstElementChild; + while ( t = wrapper.firstElementChild ) wrapper = t; this.first ().before ( structure ); From f166a8e8319c4f850a919738095a14e4d455897a Mon Sep 17 00:00:00 2001 From: cyfung1031 <44498510+cyfung1031@users.noreply.github.com> Date: Sat, 2 Dec 2023 18:27:50 +0900 Subject: [PATCH 7/8] reduce filesize --- src/effects/helpers/get_default_display.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/effects/helpers/get_default_display.ts b/src/effects/helpers/get_default_display.ts index 7562e920..ad3087eb 100644 --- a/src/effects/helpers/get_default_display.ts +++ b/src/effects/helpers/get_default_display.ts @@ -9,7 +9,7 @@ function getDefaultDisplay ( tagName: string ): string { const ele = createElement ( tagName ); - doc.body.insertBefore ( ele, null ); + doc.body.appendChild ( ele ); const display = computeStyle ( ele, 'display' ); From c6333163f8232287fdddb0f2e4abec0d4c867cec Mon Sep 17 00:00:00 2001 From: cyfung1031 <44498510+cyfung1031@users.noreply.github.com> Date: Sat, 2 Dec 2023 18:38:48 +0900 Subject: [PATCH 8/8] reduce filesize: fix typescript issue --- src/attributes/attr.ts | 1 + src/attributes/prop.ts | 1 + src/attributes/remove_attr.ts | 1 + src/attributes/remove_prop.ts | 1 + src/css/css.ts | 1 + src/data/data.ts | 1 + src/effects/toggle.ts | 1 + src/events/on.ts | 1 + src/events/trigger.ts | 1 + src/manipulation/empty.ts | 1 + src/manipulation/html.ts | 1 + src/manipulation/text.ts | 1 + src/manipulation/wrap.ts | 1 + src/manipulation/wrap_inner.ts | 1 + 14 files changed, 14 insertions(+) diff --git a/src/attributes/attr.ts b/src/attributes/attr.ts index 4a63fbce..e32b4e43 100644 --- a/src/attributes/attr.ts +++ b/src/attributes/attr.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require core/type_checking.ts // @require collection/each.ts // @require ./remove_attr.ts diff --git a/src/attributes/prop.ts b/src/attributes/prop.ts index 42ede564..74daa484 100644 --- a/src/attributes/prop.ts +++ b/src/attributes/prop.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require core/type_checking.ts // @require collection/each.ts // @require ./helpers/variables.ts diff --git a/src/attributes/remove_attr.ts b/src/attributes/remove_attr.ts index 8f1a7cc8..07c3987b 100644 --- a/src/attributes/remove_attr.ts +++ b/src/attributes/remove_attr.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require core/get_split_values.ts // @require collection/each.ts diff --git a/src/attributes/remove_prop.ts b/src/attributes/remove_prop.ts index e46fd0e8..829d4f30 100644 --- a/src/attributes/remove_prop.ts +++ b/src/attributes/remove_prop.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require collection/each.ts // @require ./helpers/variables.ts diff --git a/src/css/css.ts b/src/css/css.ts index 07f5a203..bea37bad 100644 --- a/src/css/css.ts +++ b/src/css/css.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require core/type_checking.ts // @require collection/each.ts // @require ./helpers/compute_style.ts diff --git a/src/data/data.ts b/src/data/data.ts index be173924..8fc9663c 100644 --- a/src/data/data.ts +++ b/src/data/data.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require core/type_checking.ts // @require collection/each.ts // @require ./helpers/get_data.ts diff --git a/src/effects/toggle.ts b/src/effects/toggle.ts index 47b64d30..0b13b3bd 100644 --- a/src/effects/toggle.ts +++ b/src/effects/toggle.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require core/type_checking.ts // @require css/helpers/compute_style.ts // @require ./helpers/get_default_display.ts diff --git a/src/events/on.ts b/src/events/on.ts index 3330d035..8cffa2e6 100644 --- a/src/events/on.ts +++ b/src/events/on.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require core/get_split_values.ts // @require core/guid.ts // @require core/matches.ts diff --git a/src/events/trigger.ts b/src/events/trigger.ts index ed7aa933..9c39c0c7 100644 --- a/src/events/trigger.ts +++ b/src/events/trigger.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require core/type_checking.ts // @require core/variables.ts // @require collection/each.ts diff --git a/src/manipulation/empty.ts b/src/manipulation/empty.ts index a7e5cb97..ff67ebdb 100644 --- a/src/manipulation/empty.ts +++ b/src/manipulation/empty.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require collection/each.ts interface Cash { diff --git a/src/manipulation/html.ts b/src/manipulation/html.ts index 73e62560..a0bba707 100644 --- a/src/manipulation/html.ts +++ b/src/manipulation/html.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require core/type_checking.ts // @require collection/each.ts // @require manipulation/append.ts diff --git a/src/manipulation/text.ts b/src/manipulation/text.ts index 9e514ab7..3fecdfeb 100644 --- a/src/manipulation/text.ts +++ b/src/manipulation/text.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require core/type_checking.ts // @require collection/each.ts // @require collection/get.ts diff --git a/src/manipulation/wrap.ts b/src/manipulation/wrap.ts index 1d4cabf0..e9040bad 100644 --- a/src/manipulation/wrap.ts +++ b/src/manipulation/wrap.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require collection/each.ts // @require ./wrap_all.ts diff --git a/src/manipulation/wrap_inner.ts b/src/manipulation/wrap_inner.ts index 8a3db6ca..48d60ad7 100644 --- a/src/manipulation/wrap_inner.ts +++ b/src/manipulation/wrap_inner.ts @@ -1,5 +1,6 @@ // @require core/cash.ts +// @require core/each.ts // @require collection/first.ts // @require manipulation/append_to.ts