@fluixi/utils 1.0.0-alpha.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +73 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/dist/lib/array/advanced.cjs +1 -0
- package/dist/lib/array/advanced.d.ts +1116 -0
- package/dist/lib/array/advanced.d.ts.map +1 -0
- package/dist/lib/array/advanced.js +2429 -0
- package/dist/lib/array/advanced.mjs +1 -0
- package/dist/lib/array/array.cjs +1 -0
- package/dist/lib/array/array.d.ts +6 -0
- package/dist/lib/array/array.d.ts.map +1 -0
- package/dist/lib/array/array.js +31 -0
- package/dist/lib/array/array.mjs +1 -0
- package/dist/lib/array/index.cjs +1 -0
- package/dist/lib/array/index.d.ts +4 -0
- package/dist/lib/array/index.d.ts.map +1 -0
- package/dist/lib/array/index.js +3 -0
- package/dist/lib/array/index.mjs +1 -0
- package/dist/lib/array/utils.cjs +1 -0
- package/dist/lib/array/utils.d.ts +100 -0
- package/dist/lib/array/utils.d.ts.map +1 -0
- package/dist/lib/array/utils.js +165 -0
- package/dist/lib/array/utils.mjs +1 -0
- package/dist/lib/color/color.cjs +1 -0
- package/dist/lib/color/color.d.ts +366 -0
- package/dist/lib/color/color.d.ts.map +1 -0
- package/dist/lib/color/color.js +722 -0
- package/dist/lib/color/color.mjs +1 -0
- package/dist/lib/color/constants.cjs +1 -0
- package/dist/lib/color/constants.d.ts +361 -0
- package/dist/lib/color/constants.d.ts.map +1 -0
- package/dist/lib/color/constants.js +358 -0
- package/dist/lib/color/constants.mjs +1 -0
- package/dist/lib/color/conversions.cjs +1 -0
- package/dist/lib/color/conversions.d.ts +166 -0
- package/dist/lib/color/conversions.d.ts.map +1 -0
- package/dist/lib/color/conversions.js +766 -0
- package/dist/lib/color/conversions.mjs +1 -0
- package/dist/lib/color/helpers.cjs +1 -0
- package/dist/lib/color/helpers.d.ts +75 -0
- package/dist/lib/color/helpers.d.ts.map +1 -0
- package/dist/lib/color/helpers.js +419 -0
- package/dist/lib/color/helpers.mjs +1 -0
- package/dist/lib/color/index.cjs +1 -0
- package/dist/lib/color/index.d.ts +12 -0
- package/dist/lib/color/index.d.ts.map +1 -0
- package/dist/lib/color/index.js +15 -0
- package/dist/lib/color/index.mjs +1 -0
- package/dist/lib/color/types.cjs +1 -0
- package/dist/lib/color/types.d.ts +179 -0
- package/dist/lib/color/types.d.ts.map +1 -0
- package/dist/lib/color/types.js +1 -0
- package/dist/lib/color/types.mjs +0 -0
- package/dist/lib/color/utils.cjs +1 -0
- package/dist/lib/color/utils.d.ts +199 -0
- package/dist/lib/color/utils.d.ts.map +1 -0
- package/dist/lib/color/utils.js +858 -0
- package/dist/lib/color/utils.mjs +1 -0
- package/dist/lib/compare/comparators.cjs +1 -0
- package/dist/lib/compare/comparators.d.ts +65 -0
- package/dist/lib/compare/comparators.d.ts.map +1 -0
- package/dist/lib/compare/comparators.js +210 -0
- package/dist/lib/compare/comparators.mjs +1 -0
- package/dist/lib/compare/index.cjs +1 -0
- package/dist/lib/compare/index.d.ts +2 -0
- package/dist/lib/compare/index.d.ts.map +1 -0
- package/dist/lib/compare/index.js +1 -0
- package/dist/lib/compare/index.mjs +1 -0
- package/dist/lib/crypto/hash.cjs +1 -0
- package/dist/lib/crypto/hash.d.ts +6 -0
- package/dist/lib/crypto/hash.d.ts.map +1 -0
- package/dist/lib/crypto/hash.js +53 -0
- package/dist/lib/crypto/hash.mjs +1 -0
- package/dist/lib/crypto/index.cjs +1 -0
- package/dist/lib/crypto/index.d.ts +2 -0
- package/dist/lib/crypto/index.d.ts.map +1 -0
- package/dist/lib/crypto/index.js +1 -0
- package/dist/lib/crypto/index.mjs +1 -0
- package/dist/lib/dom/events.cjs +1 -0
- package/dist/lib/dom/events.d.ts +159 -0
- package/dist/lib/dom/events.d.ts.map +1 -0
- package/dist/lib/dom/events.js +50 -0
- package/dist/lib/dom/events.mjs +1 -0
- package/dist/lib/dom/index.cjs +1 -0
- package/dist/lib/dom/index.d.ts +3 -0
- package/dist/lib/dom/index.d.ts.map +1 -0
- package/dist/lib/dom/index.js +2 -0
- package/dist/lib/dom/index.mjs +1 -0
- package/dist/lib/dom/utils.cjs +1 -0
- package/dist/lib/dom/utils.d.ts +6 -0
- package/dist/lib/dom/utils.d.ts.map +1 -0
- package/dist/lib/dom/utils.js +37 -0
- package/dist/lib/dom/utils.mjs +1 -0
- package/dist/lib/functions/functions.cjs +1 -0
- package/dist/lib/functions/functions.d.ts +329 -0
- package/dist/lib/functions/functions.d.ts.map +1 -0
- package/dist/lib/functions/functions.js +585 -0
- package/dist/lib/functions/functions.mjs +1 -0
- package/dist/lib/functions/index.cjs +1 -0
- package/dist/lib/functions/index.d.ts +3 -0
- package/dist/lib/functions/index.d.ts.map +1 -0
- package/dist/lib/functions/index.js +1 -0
- package/dist/lib/functions/index.mjs +1 -0
- package/dist/lib/functions/types.cjs +1 -0
- package/dist/lib/functions/types.d.ts +2 -0
- package/dist/lib/functions/types.d.ts.map +1 -0
- package/dist/lib/functions/types.js +1 -0
- package/dist/lib/functions/types.mjs +0 -0
- package/dist/lib/helpers.cjs +1 -0
- package/dist/lib/helpers.d.ts +13 -0
- package/dist/lib/helpers.d.ts.map +1 -0
- package/dist/lib/helpers.js +66 -0
- package/dist/lib/helpers.mjs +1 -0
- package/dist/lib/index.cjs +1 -0
- package/dist/lib/index.d.ts +6 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +8 -0
- package/dist/lib/index.mjs +1 -0
- package/dist/lib/maths/constants.cjs +1 -0
- package/dist/lib/maths/constants.d.ts +84 -0
- package/dist/lib/maths/constants.d.ts.map +1 -0
- package/dist/lib/maths/constants.js +79 -0
- package/dist/lib/maths/constants.mjs +1 -0
- package/dist/lib/maths/fn/advanced.cjs +1 -0
- package/dist/lib/maths/fn/advanced.d.ts +149 -0
- package/dist/lib/maths/fn/advanced.d.ts.map +1 -0
- package/dist/lib/maths/fn/advanced.js +264 -0
- package/dist/lib/maths/fn/advanced.mjs +1 -0
- package/dist/lib/maths/fn/basic.cjs +1 -0
- package/dist/lib/maths/fn/basic.d.ts +182 -0
- package/dist/lib/maths/fn/basic.d.ts.map +1 -0
- package/dist/lib/maths/fn/basic.js +343 -0
- package/dist/lib/maths/fn/basic.mjs +1 -0
- package/dist/lib/maths/fn/complex.cjs +1 -0
- package/dist/lib/maths/fn/complex.d.ts +153 -0
- package/dist/lib/maths/fn/complex.d.ts.map +1 -0
- package/dist/lib/maths/fn/complex.js +383 -0
- package/dist/lib/maths/fn/complex.mjs +1 -0
- package/dist/lib/maths/fn/index.cjs +1 -0
- package/dist/lib/maths/fn/index.d.ts +10 -0
- package/dist/lib/maths/fn/index.d.ts.map +1 -0
- package/dist/lib/maths/fn/index.js +9 -0
- package/dist/lib/maths/fn/index.mjs +1 -0
- package/dist/lib/maths/fn/trigo.cjs +1 -0
- package/dist/lib/maths/fn/trigo.d.ts +147 -0
- package/dist/lib/maths/fn/trigo.d.ts.map +1 -0
- package/dist/lib/maths/fn/trigo.js +227 -0
- package/dist/lib/maths/fn/trigo.mjs +1 -0
- package/dist/lib/maths/fn/vector.cjs +1 -0
- package/dist/lib/maths/fn/vector.d.ts +512 -0
- package/dist/lib/maths/fn/vector.d.ts.map +1 -0
- package/dist/lib/maths/fn/vector.js +1136 -0
- package/dist/lib/maths/fn/vector.mjs +1 -0
- package/dist/lib/maths/formatter.cjs +1 -0
- package/dist/lib/maths/formatter.d.ts +35 -0
- package/dist/lib/maths/formatter.d.ts.map +1 -0
- package/dist/lib/maths/formatter.js +56 -0
- package/dist/lib/maths/formatter.mjs +1 -0
- package/dist/lib/maths/guards.cjs +1 -0
- package/dist/lib/maths/guards.d.ts +166 -0
- package/dist/lib/maths/guards.d.ts.map +1 -0
- package/dist/lib/maths/guards.js +315 -0
- package/dist/lib/maths/guards.mjs +1 -0
- package/dist/lib/maths/index.cjs +1 -0
- package/dist/lib/maths/index.d.ts +24 -0
- package/dist/lib/maths/index.d.ts.map +1 -0
- package/dist/lib/maths/index.js +29 -0
- package/dist/lib/maths/index.mjs +1 -0
- package/dist/lib/maths/parser.cjs +1 -0
- package/dist/lib/maths/parser.d.ts +20 -0
- package/dist/lib/maths/parser.d.ts.map +1 -0
- package/dist/lib/maths/parser.js +78 -0
- package/dist/lib/maths/parser.mjs +1 -0
- package/dist/lib/maths/random.cjs +1 -0
- package/dist/lib/maths/random.d.ts +27 -0
- package/dist/lib/maths/random.d.ts.map +1 -0
- package/dist/lib/maths/random.js +49 -0
- package/dist/lib/maths/random.mjs +1 -0
- package/dist/lib/maths/types/advanced.cjs +1 -0
- package/dist/lib/maths/types/advanced.d.ts +357 -0
- package/dist/lib/maths/types/advanced.d.ts.map +1 -0
- package/dist/lib/maths/types/advanced.js +5 -0
- package/dist/lib/maths/types/advanced.mjs +0 -0
- package/dist/lib/maths/types/basic.cjs +1 -0
- package/dist/lib/maths/types/basic.d.ts +95 -0
- package/dist/lib/maths/types/basic.d.ts.map +1 -0
- package/dist/lib/maths/types/basic.js +5 -0
- package/dist/lib/maths/types/basic.mjs +0 -0
- package/dist/lib/maths/types/index.cjs +1 -0
- package/dist/lib/maths/types/index.d.ts +4 -0
- package/dist/lib/maths/types/index.d.ts.map +1 -0
- package/dist/lib/maths/types/index.js +3 -0
- package/dist/lib/maths/types/index.mjs +0 -0
- package/dist/lib/maths/types/negative.cjs +1 -0
- package/dist/lib/maths/types/negative.d.ts +51 -0
- package/dist/lib/maths/types/negative.d.ts.map +1 -0
- package/dist/lib/maths/types/negative.js +5 -0
- package/dist/lib/maths/types/negative.mjs +0 -0
- package/dist/lib/maths/types/operations.cjs +1 -0
- package/dist/lib/maths/types/operations.d.ts +188 -0
- package/dist/lib/maths/types/operations.d.ts.map +1 -0
- package/dist/lib/maths/types/operations.js +6 -0
- package/dist/lib/maths/types/operations.mjs +0 -0
- package/dist/lib/object/clone.cjs +1 -0
- package/dist/lib/object/clone.d.ts +46 -0
- package/dist/lib/object/clone.d.ts.map +1 -0
- package/dist/lib/object/clone.js +104 -0
- package/dist/lib/object/clone.mjs +1 -0
- package/dist/lib/object/diff.cjs +1 -0
- package/dist/lib/object/diff.d.ts +203 -0
- package/dist/lib/object/diff.d.ts.map +1 -0
- package/dist/lib/object/diff.js +805 -0
- package/dist/lib/object/diff.mjs +1 -0
- package/dist/lib/object/getter-setter.cjs +1 -0
- package/dist/lib/object/getter-setter.d.ts +361 -0
- package/dist/lib/object/getter-setter.d.ts.map +1 -0
- package/dist/lib/object/getter-setter.js +1771 -0
- package/dist/lib/object/getter-setter.mjs +1 -0
- package/dist/lib/object/index.cjs +6 -0
- package/dist/lib/object/index.d.ts +13 -0
- package/dist/lib/object/index.d.ts.map +1 -0
- package/dist/lib/object/index.js +12 -0
- package/dist/lib/object/index.mjs +6 -0
- package/dist/lib/object/merge.cjs +1 -0
- package/dist/lib/object/merge.d.ts +93 -0
- package/dist/lib/object/merge.d.ts.map +1 -0
- package/dist/lib/object/merge.js +474 -0
- package/dist/lib/object/merge.mjs +1 -0
- package/dist/lib/object/object.cjs +1 -0
- package/dist/lib/object/object.d.ts +128 -0
- package/dist/lib/object/object.d.ts.map +1 -0
- package/dist/lib/object/object.js +432 -0
- package/dist/lib/object/object.mjs +1 -0
- package/dist/lib/object/omit.cjs +1 -0
- package/dist/lib/object/omit.d.ts +351 -0
- package/dist/lib/object/omit.d.ts.map +1 -0
- package/dist/lib/object/omit.js +656 -0
- package/dist/lib/object/omit.mjs +1 -0
- package/dist/lib/object/reconcile.cjs +1 -0
- package/dist/lib/object/reconcile.d.ts +7 -0
- package/dist/lib/object/reconcile.d.ts.map +1 -0
- package/dist/lib/object/reconcile.js +122 -0
- package/dist/lib/object/reconcile.mjs +1 -0
- package/dist/lib/object/selector.cjs +1 -0
- package/dist/lib/object/selector.d.ts +50 -0
- package/dist/lib/object/selector.d.ts.map +1 -0
- package/dist/lib/object/selector.js +371 -0
- package/dist/lib/object/selector.mjs +1 -0
- package/dist/lib/object/sort.cjs +1 -0
- package/dist/lib/object/sort.d.ts +149 -0
- package/dist/lib/object/sort.d.ts.map +1 -0
- package/dist/lib/object/sort.js +298 -0
- package/dist/lib/object/sort.mjs +1 -0
- package/dist/lib/object/transform.cjs +1 -0
- package/dist/lib/object/transform.d.ts +620 -0
- package/dist/lib/object/transform.d.ts.map +1 -0
- package/dist/lib/object/transform.js +1058 -0
- package/dist/lib/object/transform.mjs +1 -0
- package/dist/lib/object/types.cjs +1 -0
- package/dist/lib/object/types.d.ts +250 -0
- package/dist/lib/object/types.d.ts.map +1 -0
- package/dist/lib/object/types.js +1 -0
- package/dist/lib/object/types.mjs +0 -0
- package/dist/lib/object/utils.cjs +6 -0
- package/dist/lib/object/utils.d.ts +165 -0
- package/dist/lib/object/utils.d.ts.map +1 -0
- package/dist/lib/object/utils.js +444 -0
- package/dist/lib/object/utils.mjs +6 -0
- package/dist/lib/primitive/boolean/boolean.cjs +1 -0
- package/dist/lib/primitive/boolean/boolean.d.ts +276 -0
- package/dist/lib/primitive/boolean/boolean.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/boolean.js +615 -0
- package/dist/lib/primitive/boolean/boolean.mjs +1 -0
- package/dist/lib/primitive/boolean/index.cjs +1 -0
- package/dist/lib/primitive/boolean/index.d.ts +3 -0
- package/dist/lib/primitive/boolean/index.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/index.js +2 -0
- package/dist/lib/primitive/boolean/index.mjs +1 -0
- package/dist/lib/primitive/boolean/types.cjs +1 -0
- package/dist/lib/primitive/boolean/types.d.ts +14 -0
- package/dist/lib/primitive/boolean/types.d.ts.map +1 -0
- package/dist/lib/primitive/boolean/types.js +1 -0
- package/dist/lib/primitive/boolean/types.mjs +0 -0
- package/dist/lib/primitive/date/date.cjs +1 -0
- package/dist/lib/primitive/date/date.d.ts +641 -0
- package/dist/lib/primitive/date/date.d.ts.map +1 -0
- package/dist/lib/primitive/date/date.js +1998 -0
- package/dist/lib/primitive/date/date.mjs +1 -0
- package/dist/lib/primitive/date/index.cjs +1 -0
- package/dist/lib/primitive/date/index.d.ts +3 -0
- package/dist/lib/primitive/date/index.d.ts.map +1 -0
- package/dist/lib/primitive/date/index.js +2 -0
- package/dist/lib/primitive/date/index.mjs +1 -0
- package/dist/lib/primitive/date/types.cjs +1 -0
- package/dist/lib/primitive/date/types.d.ts +205 -0
- package/dist/lib/primitive/date/types.d.ts.map +1 -0
- package/dist/lib/primitive/date/types.js +7 -0
- package/dist/lib/primitive/date/types.mjs +0 -0
- package/dist/lib/primitive/index.cjs +5 -0
- package/dist/lib/primitive/index.d.ts +5 -0
- package/dist/lib/primitive/index.d.ts.map +1 -0
- package/dist/lib/primitive/index.js +4 -0
- package/dist/lib/primitive/index.mjs +5 -0
- package/dist/lib/primitive/string/index.cjs +5 -0
- package/dist/lib/primitive/string/index.d.ts +3 -0
- package/dist/lib/primitive/string/index.d.ts.map +1 -0
- package/dist/lib/primitive/string/index.js +2 -0
- package/dist/lib/primitive/string/index.mjs +5 -0
- package/dist/lib/primitive/string/parser-2.cjs +8 -0
- package/dist/lib/primitive/string/parser-2.d.ts +17 -0
- package/dist/lib/primitive/string/parser-2.d.ts.map +1 -0
- package/dist/lib/primitive/string/parser-2.js +656 -0
- package/dist/lib/primitive/string/parser-2.mjs +8 -0
- package/dist/lib/primitive/string/parser.cjs +3 -0
- package/dist/lib/primitive/string/parser.d.ts +9 -0
- package/dist/lib/primitive/string/parser.d.ts.map +1 -0
- package/dist/lib/primitive/string/parser.js +775 -0
- package/dist/lib/primitive/string/parser.mjs +3 -0
- package/dist/lib/primitive/string/string.cjs +5 -0
- package/dist/lib/primitive/string/string.d.ts +535 -0
- package/dist/lib/primitive/string/string.d.ts.map +1 -0
- package/dist/lib/primitive/string/string.js +1301 -0
- package/dist/lib/primitive/string/string.mjs +5 -0
- package/dist/lib/primitive/string/types.cjs +1 -0
- package/dist/lib/primitive/string/types.d.ts +318 -0
- package/dist/lib/primitive/string/types.d.ts.map +1 -0
- package/dist/lib/primitive/string/types.js +5 -0
- package/dist/lib/primitive/string/types.mjs +0 -0
- package/dist/lib/primitive/types.cjs +1 -0
- package/dist/lib/primitive/types.d.ts +27 -0
- package/dist/lib/primitive/types.d.ts.map +1 -0
- package/dist/lib/primitive/types.js +1 -0
- package/dist/lib/primitive/types.mjs +0 -0
- package/dist/lib/url/index.cjs +1 -0
- package/dist/lib/url/index.d.ts +3 -0
- package/dist/lib/url/index.d.ts.map +1 -0
- package/dist/lib/url/index.js +2 -0
- package/dist/lib/url/index.mjs +1 -0
- package/dist/lib/url/parser.cjs +1 -0
- package/dist/lib/url/parser.d.ts +216 -0
- package/dist/lib/url/parser.d.ts.map +1 -0
- package/dist/lib/url/parser.js +488 -0
- package/dist/lib/url/parser.mjs +1 -0
- package/dist/lib/url/types.cjs +1 -0
- package/dist/lib/url/types.d.ts +18 -0
- package/dist/lib/url/types.d.ts.map +1 -0
- package/dist/lib/url/types.js +1 -0
- package/dist/lib/url/types.mjs +0 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/package.json +150 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var O={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",transparent:"transparent",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32",zinc:"#71717a",stone:"#78716c",neutral:"#737373",slate:"#64748b",gray50:"#f9fafb",gray100:"#f3f4f6",gray200:"#e5e7eb",gray300:"#d1d5db",gray400:"#9ca3af",gray500:"#6b7280",gray600:"#4b5563",gray700:"#374151",gray800:"#1f2937",gray900:"#111827",gray950:"#030712",red50:"#fef2f2",red100:"#fee2e2",red200:"#fecaca",red300:"#fca5a5",red400:"#f87171",red500:"#ef4444",red600:"#dc2626",red700:"#b91c1c",red800:"#991b1b",red900:"#7f1d1d",red950:"#450a0a",orange50:"#fff7ed",orange100:"#ffedd5",orange200:"#fed7aa",orange300:"#fdba74",orange400:"#fb923c",orange500:"#f97316",orange600:"#ea580c",orange700:"#c2410c",orange800:"#9a3412",orange900:"#7c2d12",orange950:"#431407",amber50:"#fffbeb",amber100:"#fef3c7",amber200:"#fde68a",amber300:"#fcd34d",amber400:"#fbbf24",amber500:"#f59e0b",amber600:"#d97706",amber700:"#b45309",amber800:"#92400e",amber900:"#78350f",amber950:"#451a03",yellow50:"#fefce8",yellow100:"#fef9c3",yellow200:"#fef08a",yellow300:"#fde047",yellow400:"#facc15",yellow500:"#eab308",yellow600:"#ca8a04",yellow700:"#a16207",yellow800:"#854d0e",yellow900:"#713f12",yellow950:"#422006",lime50:"#f7fee7",lime100:"#ecfccb",lime200:"#d9f99d",lime300:"#bef264",lime400:"#a3e635",lime500:"#84cc16",lime600:"#65a30d",lime700:"#4d7c0f",lime800:"#3f6212",lime900:"#365314",lime950:"#1a2e05",green50:"#f0fdf4",green100:"#dcfce7",green200:"#bbf7d0",green300:"#86efac",green400:"#4ade80",green500:"#22c55e",green600:"#16a34a",green700:"#15803d",green800:"#166534",green900:"#14532d",green950:"#052e16",emerald50:"#ecfdf5",emerald100:"#d1fae5",emerald200:"#a7f3d0",emerald300:"#6ee7b7",emerald400:"#34d399",emerald500:"#10b981",emerald600:"#059669",emerald700:"#047857",emerald800:"#065f46",emerald900:"#064e3b",emerald950:"#022c22",teal50:"#f0fdfa",teal100:"#ccfbf1",teal200:"#99f6e4",teal300:"#5eead4",teal400:"#2dd4bf",teal500:"#14b8a6",teal600:"#0d9488",teal700:"#0f766e",teal800:"#115e59",teal900:"#134e4a",teal950:"#042f2e",cyan50:"#ecfeff",cyan100:"#cffafe",cyan200:"#a5f3fc",cyan300:"#67e8f9",cyan400:"#22d3ee",cyan500:"#06b6d4",cyan600:"#0891b2",cyan700:"#0e7490",cyan800:"#155e75",cyan900:"#164e63",cyan950:"#083344",sky50:"#f0f9ff",sky100:"#e0f2fe",sky200:"#bae6fd",sky300:"#7dd3fc",sky400:"#38bdf8",sky500:"#0ea5e9",sky600:"#0284c7",sky700:"#0369a1",sky800:"#075985",sky900:"#0c4a6e",sky950:"#082f49",blue50:"#eff6ff",blue100:"#dbeafe",blue200:"#bfdbfe",blue300:"#93c5fd",blue400:"#60a5fa",blue500:"#3b82f6",blue600:"#2563eb",blue700:"#1d4ed8",blue800:"#1e40af",blue900:"#1e3a8a",blue950:"#172554",indigo50:"#eef2ff",indigo100:"#e0e7ff",indigo200:"#c7d2fe",indigo300:"#a5b4fc",indigo400:"#818cf8",indigo500:"#6366f1",indigo600:"#4f46e5",indigo700:"#4338ca",indigo800:"#3730a3",indigo900:"#312e81",indigo950:"#1e1b4b",violet50:"#f5f3ff",violet100:"#ede9fe",violet200:"#ddd6fe",violet300:"#c4b5fd",violet400:"#a78bfa",violet500:"#8b5cf6",violet600:"#7c3aed",violet700:"#6d28d9",violet800:"#5b21b6",violet900:"#4c1d95",violet950:"#2e1065",purple50:"#faf5ff",purple100:"#f3e8ff",purple200:"#e9d5ff",purple300:"#d8b4fe",purple400:"#c084fc",purple500:"#a855f7",purple600:"#9333ea",purple700:"#7e22ce",purple800:"#6b21a8",purple900:"#581c87",purple950:"#3b0764",fuchsia50:"#fdf4ff",fuchsia100:"#fae8ff",fuchsia200:"#f5d0fe",fuchsia300:"#f0abfc",fuchsia400:"#e879f9",fuchsia500:"#d946ef",fuchsia600:"#c026d3",fuchsia700:"#a21caf",fuchsia800:"#86198f",fuchsia900:"#701a75",fuchsia950:"#4a044e",pink50:"#fdf2f8",pink100:"#fce7f3",pink200:"#fbcfe8",pink300:"#f9a8d4",pink400:"#f472b6",pink500:"#ec4899",pink600:"#db2777",pink700:"#be185d",pink800:"#9d174d",pink900:"#831843",pink950:"#500724",rose50:"#fff1f2",rose100:"#ffe4e6",rose200:"#fecdd3",rose300:"#fda4af",rose400:"#fb7185",rose500:"#f43f5e",rose600:"#e11d48",rose700:"#be123c",rose800:"#9f1239",rose900:"#881337",rose950:"#4c0519"};var E={LEGACY_RGB:/^rgb\(\s*(\d{1,3}|\.\d+|\d+\.\d+%?)\s*,\s*(\d{1,3}|\.\d+|\d+\.\d+%?)\s*,\s*(\d{1,3}|\.\d+|\d+\.\d+%?)\s*\)$/i,MODERN_RGB:/^rgb\(\s*(\d{1,3}|\.\d+|\d+\.\d+%?)\s+(\d{1,3}|\.\d+|\d+\.\d+%?)\s+(\d{1,3}|\.\d+|\d+\.\d+%?)\s*\)$/i,LEGACY_RGBA:/^rgba\(\s*(\d{1,3}|\.\d+|\d+\.\d+%?)\s*,\s*(\d{1,3}|\.\d+|\d+\.\d+%?)\s*,\s*(\d{1,3}|\.\d+|\d+\.\d+%?)\s*,\s*(0|1|0?\.\d+|\d{1,3}%?|\.\d+%?)\s*\)$/i,MODERN_RGBA:/^rgba?\(\s*(\d{1,3}|\.\d+|\d+\.\d+%?)\s+(\d{1,3}|\.\d+|\d+\.\d+%?)\s+(\d{1,3}|\.\d+|\d+\.\d+%?)\s*\/\s*(0|1|0?\.\d+|\d{1,3}%?|\.\d+%?)\s*\)$/i,COMPREHENSIVE:/^rgba?\(\s*((?:\d{1,3}(?:\.\d+)?%?|\.\d+%?|var\([^)]+\)))\s*(?:[,\s]\s*((?:\d{1,3}(?:\.\d+)?%?|\.\d+%?|var\([^)]+\))))?\s*(?:[,\s]\s*((?:\d{1,3}(?:\.\d+)?%?|\.\d+%?|var\([^)]+\))))?\s*(?:(?:\s*[,\s]?\s*\/?\s*|\s*\/\s*)((?:0|1|0?\.\d+|\.\d+|\d{1,3}%?|var\([^)]+\))))?\s*\)$/i,STRICT_RGB:/^rgb\(\s*((?:\d{1,2}|1\d{2}|2[0-4]\d|25[0-5]|\d{1,2}(?:\.\d+)?%|100%|\.\d+%?|var\([^)]+\)))\s*,\s*((?:\d{1,2}|1\d{2}|2[0-4]\d|25[0-5]|\d{1,2}(?:\.\d+)?%|100%|\.\d+%?|var\([^)]+\)))\s*,\s*((?:\d{1,2}|1\d{2}|2[0-4]\d|25[0-5]|\d{1,2}(?:\.\d+)?%|100%|\.\d+%?|var\([^)]+\)))\s*\)$/i,STRICT_RGBA:/^rgba\(\s*((?:\d{1,2}|1\d{2}|2[0-4]\d|25[0-5]|\d{1,2}(?:\.\d+)?%|100%|\.\d+%?|var\([^)]+\)))\s*,\s*((?:\d{1,2}|1\d{2}|2[0-4]\d|25[0-5]|\d{1,2}(?:\.\d+)?%|100%|\.\d+%?|var\([^)]+\)))\s*,\s*((?:\d{1,2}|1\d{2}|2[0-4]\d|25[0-5]|\d{1,2}(?:\.\d+)?%|100%|\.\d+%?|var\([^)]+\)))\s*,\s*((?:0|1|0?\.\d+|\.\d+|\d{1,2}(?:\.\d+)?%|100%|var\([^)]+\)))\s*\)$/i,MODERN_RGB_ALPHA:/^rgba?\(\s*((?:\d{1,3}(?:\.\d+)?%?|\.\d+%?|var\([^)]+\)))\s+((?:\d{1,3}(?:\.\d+)?%?|\.\d+%?|var\([^)]+\)))\s+((?:\d{1,3}(?:\.\d+)?%?|\.\d+%?|var\([^)]+\)))\s*(?:\/\s*((?:0|1|0?\.\d+|\.\d+|\d{1,3}%?|var\([^)]+\))))?\s*\)$/i},F=r=>{let n=r.trim().toLowerCase();if(!n||n.includes("var("))return null;let d=s=>{if(!s)return null;let t=s.trim();if(!t||t.includes("var("))return null;if(t.endsWith("%")){let l=parseFloat(t);if(isNaN(l))return null;let u=Math.max(0,Math.min(100,l));return Math.round(u*255/100)}let f=parseFloat(t);return isNaN(f)?null:Math.round(Math.max(0,Math.min(255,f)))},i=s=>{if(!s)return 1;let t=s.trim();if(!t||t.includes("var("))return 1;if(t.endsWith("%")){let l=parseFloat(t);return isNaN(l)?1:Math.max(0,Math.min(100,l))/100}let f=parseFloat(t);return isNaN(f)?1:Math.max(0,Math.min(1,f))},o=/^rgba?\(\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^,]+)\s*(?:,\s*([^\)]+))?\s*\)$/,a=n.match(o);if(a){let s=d(a[1]),t=d(a[2]),f=d(a[3]),l=i(a[4]);if(s!==null&&t!==null&&f!==null)return[s,t,f,l]}let c=/^rgba?\(\s*([^\s\/]+)\s+([^\s\/]+)\s+([^\s\/]+)\s*(?:\/\s*([^\)]+))?\s*\)$/;if(a=n.match(c),a){let s=d(a[1]),t=d(a[2]),f=d(a[3]),l=i(a[4]);if(s!==null&&t!==null&&f!==null)return[s,t,f,l]}let e=/^rgb\(\s*([^\s,]+)\s+([^\s,]+)\s+([^\s,]+)\s*\)$/;if(a=n.match(e),a){let s=d(a[1]),t=d(a[2]),f=d(a[3]);if(s!==null&&t!==null&&f!==null)return[s,t,f,1]}return null},L={HEX:/^#([a-fA-F0-9]{3,4}|[a-fA-F0-9]{6}|[a-fA-F0-9]{8})$/,RGB:E.COMPREHENSIVE,HSL:/^hsla?\(\s*(\d+(?:\.\d+)?)(?:deg|rad|grad|turn)?\s*,\s*(\d+(?:\.\d+)?)%\s*,\s*(\d+(?:\.\d+)?)%(?:\s*[,\s/]\s*(\d*\.?\d+%?))?\s*\)$/i,OKLCH:/^oklch\(\s*(\d+(?:\.\d+)?%?)\s+(\d+(?:\.\d+)?)\s+(\d+(?:\.\d+)?)(?:\s+[,\s/]\s*(\d*\.?\d+%?))?\s*\)$/i,OKLAB:/^oklab\(\s*(\d+(?:\.\d+)?%?)\s+([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)(?:\s+[,\s/]\s*(\d*\.?\d+%?))?\s*\)$/i,HSV:/^hsv\(\s*(\d+(?:\.\d+)?)(?:deg|rad|grad|turn)?\s*,\s*(\d+(?:\.\d+)?)%\s*,\s*(\d+(?:\.\d+)?)%(?:\s*[,\s/]\s*(\d*\.?\d+%?))?\s*\)$/i,CMYK:/^cmyk\(\s*(\d+(?:\.\d+)?)%\s*,\s*(\d+(?:\.\d+)?)%\s*,\s*(\d+(?:\.\d+)?)%\s*,\s*(\d+(?:\.\d+)?)%(?:\s*[,\s/]\s*(\d*\.?\d+%?))?\s*\)$/i,COLOR_FUNCTION:/^color\(\s*([a-z]+)\s+((?:\d+(?:\.\d+)?%?\s+)*\d+(?:\.\d+)?%?)(?:\s*[,\s/]\s*(\d*\.?\d+%?))?\s*\)$/i,LAB:/^lab\(\s*(\d+(?:\.\d+)?%?)\s+([+-]?\d+(?:\.\d+)?)\s+([+-]?\d+(?:\.\d+)?)(?:\s*[,\s/]\s*(\d*\.?\d+%?))?\s*\)$/i,LCH:/^lch\(\s*(\d+(?:\.\d+)?%?)\s+(\d+(?:\.\d+)?)\s+(\d+(?:\.\d+)?)(?:\s*[,\s/]\s*(\d*\.?\d+%?))?\s*\)$/i},j=r=>{let n=[],d=r.trim();return Object.entries(E).forEach(([i,o])=>{o.test(d)&&n.push(i)}),n},m=r=>{if(!r||typeof r!="string")return null;let n=r.trim().toLowerCase();if(!n)return null;if(n==="transparent")return[0,0,0,0];let d=n;if(O[d])return m(O[d]);let i=F(n);if(i)return i;let o=n.match(L.HEX);if(o){let e=o[1];(e.length===3||e.length===4)&&(e=e.split("").map(u=>u+u).join(""));let s=parseInt(e.substring(0,2),16),t=parseInt(e.substring(2,4),16),f=parseInt(e.substring(4,6),16),l=e.length===8?parseInt(e.substring(6,8),16)/255:1;if(!isNaN(s)&&!isNaN(t)&&!isNaN(f)&&!isNaN(l))return[s,t,f,l]}let a=n.match(L.HSL);if(a){let e=parseFloat(a[1]),s=parseFloat(a[2])/100,t=parseFloat(a[3])/100,f=a[4]?v(a[4]):1;if(!isNaN(e)&&!isNaN(s)&&!isNaN(t)&&!isNaN(f))return T(e,s,t,f)}let c=n.match(L.OKLCH);if(c){let e=v(c[1]),s=parseFloat(c[2]),t=parseFloat(c[3]),f=c[4]?v(c[4]):1;if(!isNaN(e)&&!isNaN(s)&&!isNaN(t)&&!isNaN(f))return S(e,s,t,f)}return null},T=(r,n,d,i=1)=>{r=r%360,r<0&&(r+=360);let o=(1-Math.abs(2*d-1))*n,a=o*(1-Math.abs(r/60%2-1)),c=d-o/2,e=0,s=0,t=0;return r>=0&&r<60?[e,s,t]=[o,a,0]:r>=60&&r<120?[e,s,t]=[a,o,0]:r>=120&&r<180?[e,s,t]=[0,o,a]:r>=180&&r<240?[e,s,t]=[0,a,o]:r>=240&&r<300?[e,s,t]=[a,0,o]:r>=300&&r<360&&([e,s,t]=[o,0,a]),[Math.round((e+c)*255),Math.round((s+c)*255),Math.round((t+c)*255),i]},S=(r,n,d,i=1)=>{let o=d%360,a=Math.min(100,n*100),c=r*100;return T(o,a/100,c/100,i)},q=(r,n,d,i=1)=>(e=>typeof e=="string"&&e.includes("var("))(i)||typeof i=="number"&&i!==1?`rgba(${r} ${n} ${d} / ${i})`:`rgb(${r} ${n} ${d})`,A=r=>{let n=Math.round(r).toString(16);return n.length===1?`0${n}`:n},v=r=>r.endsWith("%")?parseFloat(r)/100:parseFloat(r),I=r=>{if(r.toLowerCase()in O)return!0;if(r.toLowerCase().trim().startsWith("rgb"))return F(r)!==null;let{RGB:n,...d}=L;return Object.values(d).some(i=>i.test(r))},H=(r,n,d,i=1)=>{let o=`#${A(r)}${A(n)}${A(d)}`;return i<1?`${o}${A(Math.round(i*255))}`:o},C=(r,n,d,i=1)=>{let o=r/255,a=n/255,c=d/255,e=Math.max(o,a,c),s=Math.min(o,a,c),t=0,f=0,l=(e+s)/2;if(e!==s){let b=e-s;switch(f=l>.5?b/(2-e-s):b/(e+s),e){case o:t=(a-c)/b+(a<c?6:0);break;case a:t=(c-o)/b+2;break;case c:t=(o-a)/b+4;break}t/=6}t=Math.round(t*360),f=Math.round(f*100);let u=Math.round(l*100);return i===1?`hsl(${t}, ${f}%, ${u}%)`:`hsla(${t}, ${f}%, ${u}%, ${i})`},V=(r,n,d,i=1)=>{let o=r/255,a=n/255,c=d/255,e=Math.max(o,a,c),s=Math.min(o,a,c),t=e-s,f=0;if(t!==0){switch(e){case o:f=(a-c)/t+(a<c?6:0);break;case a:f=(c-o)/t+2;break;case c:f=(o-a)/t+4;break}f/=6}let l=e===0?0:t/e,u=e;f=Math.round(f*360);let b=Math.round(l*100),g=Math.round(u*100);return i===1?`hsv(${f}, ${b}%, ${g}%)`:`hsva(${f}, ${b}%, ${g}%, ${i})`},D=(r,n,d,i=1)=>{if(r===0&&n===0&&d===0)return"cmyk(0%, 0%, 0%, 100%)";let o=r/255,a=n/255,c=d/255,e=1-Math.max(o,a,c),s=(1-o-e)/(1-e),t=(1-a-e)/(1-e),f=(1-c-e)/(1-e),l=Math.round(s*100),u=Math.round(t*100),b=Math.round(f*100),g=Math.round(e*100);return`cmyk(${l}%, ${u}%, ${b}%, ${g}%)`},w=(r,n,d)=>{let[i,o,a]=[r,n,d].map(c=>(c=c/255,c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4)));return .2126*i+.7152*o+.0722*a},K=(r,n)=>{let d=m(r),i=m(n);if(!d||!i)return 1;let o=w(d[0],d[1],d[2]),a=w(i[0],i[1],i[2]),c=Math.max(o,a),e=Math.min(o,a);return(c+.05)/(e+.05)},B=(r,n)=>{let d=m(r);if(!d)return r;let[i,o,a,c]=d;n.alpha!==void 0&&(c=Math.max(0,Math.min(1,n.alpha)));let e=0,s=0,t=0;if(n.lightness!==void 0||n.saturation!==void 0||n.hue!==void 0){let f=i/255,l=o/255,u=a/255,b=Math.max(f,l,u),g=Math.min(f,l,u);if(t=(b+g)/2,b!==g){let x=b-g;switch(s=t>.5?x/(2-b-g):x/(b+g),b){case f:e=(l-u)/x+(l<u?6:0);break;case l:e=(u-f)/x+2;break;case u:e=(f-l)/x+4;break}e/=6}e*=360,s*=100,t*=100,n.hue!==void 0&&(e=(e+n.hue)%360,e<0&&(e+=360)),n.saturation!==void 0&&(s=Math.max(0,Math.min(100,s+n.saturation))),n.lightness!==void 0&&(t=Math.max(0,Math.min(100,t+n.lightness)));let y=e/360,P=s/100,R=t/100,k=(1-Math.abs(2*R-1))*P,N=k*(1-Math.abs(y*6%2-1)),p=R-k/2,h=0,M=0,$=0;y<1/6?[h,M,$]=[k,N,0]:y<2/6?[h,M,$]=[N,k,0]:y<3/6?[h,M,$]=[0,k,N]:y<4/6?[h,M,$]=[0,N,k]:y<5/6?[h,M,$]=[N,0,k]:[h,M,$]=[k,0,N],i=Math.round((h+p)*255),o=Math.round((M+p)*255),a=Math.round(($+p)*255)}if(n.contrast!==void 0){let f=n.contrast/100*2.55,l=(i+o+a)/3;i=Math.round(l+(i-l)*(1+f)),o=Math.round(l+(o-l)*(1+f)),a=Math.round(l+(a-l)*(1+f)),i=Math.max(0,Math.min(255,i)),o=Math.max(0,Math.min(255,o)),a=Math.max(0,Math.min(255,a))}return H(i,o,a,c)},W=r=>{let{color:n,with:d="transparent",percentage:i=50,colorSpace:o="srgb"}=r,a=m(n),c=m(d);if(!a||!c)return n;let e=i/100,[s,t,f,l]=a,[u,b,g,y]=c;switch(r.opacity!==void 0&&(l=typeof r.opacity=="number"?r.opacity:v(r.opacity)),r.withOpacity!==void 0&&(y=typeof r.withOpacity=="number"?r.withOpacity:v(r.withOpacity)),o){case"srgb":default:let P=Math.round(s+(u-s)*e),R=Math.round(t+(b-t)*e),k=Math.round(f+(g-f)*e),N=l+(y-l)*e;return H(P,R,k,N);case"hsl":let p=m(C(s,t,f,l)),h=m(C(u,b,g,y));if(!p||!h)return n;let M=(p[0]+(h[0]-p[0])*e)%360,$=p[1]+(h[1]-p[1])*e,x=p[2]+(h[2]-p[2])*e;return`hsl(${M}, ${$}%, ${x}%)`}},z=(r,n={})=>{let d=m(r);if(!d)return{};let i=n.shades||10,o=n.lightnessFactor||.1,a=n.saturationFactor||.05,c={};for(let e=0;e<i;e++){let s=e/(i-1),t=(s-.5)*2*o*100,f=B(r,{lightness:t,saturation:(s-.5)*2*a*100}),l=e===0?"50":`${e*100}`;c[l]=f}if(n.includeComplementary){let e=m(C(d[0],d[1],d[2]));if(e){let s=e[0];s=(s+180)%360,c.complementary=`hsl(${s}, ${e[1]}%, ${e[2]}%)`}}if(n.includeAnalogous){let e=m(C(d[0],d[1],d[2]));if(e){let s=e[0];c.analogous1=`hsl(${(s-30+360)%360}, ${e[1]}%, ${e[2]}%)`,c.analogous2=`hsl(${(s+30)%360}, ${e[1]}%, ${e[2]}%)`}}if(n.includeTriadic){let e=m(C(d[0],d[1],d[2]));if(e){let s=e[0];c.triadic1=`hsl(${(s+120)%360}, ${e[1]}%, ${e[2]}%)`,c.triadic2=`hsl(${(s+240)%360}, ${e[1]}%, ${e[2]}%)`}}return c},Y=(r,n={})=>{let{lightColor:d="#ffffff",darkColor:i="#000000",targetRatio:o=4.5,fallbackColor:a="#000000"}=n,c=m(r);if(!c)return a;let e=w(c[0],c[1],c[2]),s=w(...m(d).slice(0,3)),t=w(...m(i).slice(0,3)),f=(Math.max(e,s)+.05)/(Math.min(e,s)+.05),l=(Math.max(e,t)+.05)/(Math.min(e,t)+.05);return f>=o&&l>=o?f>l?d:i:f>=o?d:l>=o?i:f>l?d:i};export{L as COLOR_PATTERNS,E as RGB_PATTERNS,B as adjustColor,K as calculateContrastRatio,w as calculateLuminance,Y as createContrastColor,q as formatRgba,z as generatePalette,T as hslToRgb,I as isValidColor,W as mixColors,S as oklchToRgb,m as parseColor,F as parseRgbaColor,D as rgbaToCmyk,H as rgbaToHex,C as rgbaToHsl,V as rgbaToHsv,j as testRgbaPatterns};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var c=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var q=Object.prototype.hasOwnProperty;var K=(e,n)=>{for(var t in n)c(e,t,{get:n[t],enumerable:!0})},N=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of U(n))!q.call(e,i)&&i!==t&&c(e,i,{get:()=>n[i],enumerable:!(r=M(n,i))||r.enumerable});return e};var z=e=>N(c({},"__esModule",{value:!0}),e);var L={};K(L,{deepEqual:()=>a,hasLength:()=>I,isDeepEqual:()=>x,isEqual:()=>F});module.exports=z(L);var O=require("@fluixi/utils/primitive"),A=require("@fluixi/utils/object"),R=require("@fluixi/utils/array"),P=require("@fluixi/utils/functions");var v=e=>typeof e>"u"||e===null;function o(e){let n=typeof e;return e===null||n==="string"||n==="number"||n==="boolean"||n==="symbol"||n==="bigint"||n==="undefined"||(0,O.isDate)(e)}var f=require("@fluixi/utils/object"),I=e=>{let n=typeof e,t=!1;if(v(e))return!1;switch(n){case"string":t=e.length>0;break;case"number":t=!0;break;case"object":Array.isArray(e)?t=e.length>0:t=Object.keys(e).length>0;break;case"boolean":t=e}return t},x=(e,n,t)=>{if(e===void 0||n===void 0)return!1;if(e===null||n===null)return e===n;if(Array.isArray(e)&&Array.isArray(n))return e.length!==n.length?!1:e.every((r,i)=>x(r,n[i]));if(t&&t.length>0)return o(e)&&o(n)?e===n:(0,f.isObject)(e)&&(0,f.isObject)(n)?t.every(r=>x(e[r],n[r])):!1;if((0,f.isObject)(e)&&(0,f.isObject)(n)){let r=Object.keys(e).sort(),i=Object.keys(n).sort();return r.length!==i.length?!1:r.every(u=>x(e[u],n[u]))}return e===n};function C(e,n,t){let r=new Uint8Array(n.length);e:for(let i=0;i<e.length;i++){for(let u=0;u<n.length;u++)if(!r[u]&&a(e[i],n[u],t)){r[u]=1;continue e}return!1}return!0}var a=(e,n,t={})=>{if(e===n)return!0;if(e==null||n==null||typeof e!=typeof n)return!1;let r=Array.isArray(e),i=Array.isArray(n);if(r!==i)return!1;if(r&&i)return e.length!==n.length?!1:t.unordered?C(e,n,t):e.every((s,l)=>a(s,n[l],t));if(typeof e!="object")return e===n;let u=e instanceof Date,D=n instanceof Date;if(u!==D)return!1;if(u)return e.getTime()===n.getTime();let d=e instanceof RegExp,T=n instanceof RegExp;if(d!==T)return!1;if(d)return e.toString()===n.toString();let g=e instanceof Map,k=n instanceof Map;if(g!==k)return!1;if(g){if(e.size!==n.size)return!1;for(let[s,l]of e)if(!n.has(s)||!a(l,n.get(s),t))return!1;return!0}let h=e instanceof Set,E=n instanceof Set;if(h!==E)return!1;if(h){if(e.size!==n.size)return!1;let s=[...n],l=new Uint8Array(s.length);e:for(let w of e){for(let y=0;y<s.length;y++)if(!l[y]&&a(w,s[y],t)){l[y]=1;continue e}return!1}return!0}if(!(0,f.isObject)(e)||!(0,f.isObject)(n))return!1;let p=Object.keys(e),S=Object.keys(n);if(p.length!==S.length)return!1;for(let s of p)if(!Object.prototype.hasOwnProperty.call(n,s)||!a(e[s],n[s],t))return!1;return!0};function F(e,n){return Object.is(e,n)}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export declare const hasLength: (data: any) => boolean;
|
|
2
|
+
/**
|
|
3
|
+
* The isEqual function compares two objects and returns true if they are equal.
|
|
4
|
+
*
|
|
5
|
+
* @param compare1: T Define the type of object that will be passed into the function
|
|
6
|
+
* @param compare2: T Compare the two objects
|
|
7
|
+
*
|
|
8
|
+
* @return A boolean value
|
|
9
|
+
*
|
|
10
|
+
* @docauthor Ibrahima Touré
|
|
11
|
+
*/
|
|
12
|
+
export declare const isDeepEqual: <T extends string | any>(compare1: T, compare2: T, keys?: string[]) => boolean;
|
|
13
|
+
export interface DeepEqualOptions {
|
|
14
|
+
/**
|
|
15
|
+
* When `true`, arrays are compared as unordered sets: two arrays are equal
|
|
16
|
+
* if every element in the first has a deeply-equal counterpart in the second,
|
|
17
|
+
* regardless of position.
|
|
18
|
+
*
|
|
19
|
+
* The option propagates recursively, so nested arrays are also compared
|
|
20
|
+
* without order.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* deepEqual([1,2,3], [3,1,2]) // false (default)
|
|
24
|
+
* deepEqual([1,2,3], [3,1,2], { unordered: true }) // true
|
|
25
|
+
* deepEqual(
|
|
26
|
+
* [{ id: 1 }, { id: 2 }],
|
|
27
|
+
* [{ id: 2 }, { id: 1 }],
|
|
28
|
+
* { unordered: true }
|
|
29
|
+
* ) // true
|
|
30
|
+
*/
|
|
31
|
+
unordered?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Structural deep equality check.
|
|
35
|
+
*
|
|
36
|
+
* Handles: primitives, null/undefined, Date, RegExp, Array, Map, Set, and
|
|
37
|
+
* plain objects. Recurses into nested structures.
|
|
38
|
+
*
|
|
39
|
+
* @param obj1 - First value
|
|
40
|
+
* @param obj2 - Second value
|
|
41
|
+
* @param options - Comparison options (see {@link DeepEqualOptions})
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* deepEqual({ a: 1, b: { c: 2 } }, { a: 1, b: { c: 2 } }) // true
|
|
45
|
+
* deepEqual([1, 2, 3], [3, 2, 1]) // false
|
|
46
|
+
* deepEqual([1, 2, 3], [3, 2, 1], { unordered: true }) // true
|
|
47
|
+
* deepEqual(
|
|
48
|
+
* [{ id: 2 }, { id: 1 }],
|
|
49
|
+
* [{ id: 1 }, { id: 2 }],
|
|
50
|
+
* { unordered: true }
|
|
51
|
+
* ) // true
|
|
52
|
+
*/
|
|
53
|
+
export declare const deepEqual: (obj1: any, obj2: any, options?: DeepEqualOptions) => boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Checks if two values are equal
|
|
56
|
+
* @param a - The first value to compare
|
|
57
|
+
* @param b - The second value to compare
|
|
58
|
+
* @returns True if values are equal
|
|
59
|
+
* @example
|
|
60
|
+
* isEqual(1, 1) // true
|
|
61
|
+
* isEqual(1, '1') // false
|
|
62
|
+
* isEqual(null, undefined) // false
|
|
63
|
+
*/
|
|
64
|
+
export declare function isEqual<T>(a: T, b: T): boolean;
|
|
65
|
+
//# sourceMappingURL=comparators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparators.d.ts","sourceRoot":"","sources":["../../../src/lib/compare/comparators.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,GAAI,MAAM,GAAG,YAwBlC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,GAAG,GAAG,EAChD,UAAU,CAAC,EACX,UAAU,CAAC,EACX,OAAO,MAAM,EAAE,KACd,OA6BF,CAAC;AAIF,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA8BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,GAAG,EACT,MAAM,GAAG,EACT,UAAS,gBAAqB,KAC7B,OAmFF,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,OAAO,CAE9C"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { isPrimitive, isUndefinedOrNull } from '../helpers.js';
|
|
2
|
+
import { isObject } from '@fluixi/utils/object';
|
|
3
|
+
export const hasLength = (data) => {
|
|
4
|
+
const type = typeof data;
|
|
5
|
+
let hasValue = false;
|
|
6
|
+
if (isUndefinedOrNull(data)) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
switch (type) {
|
|
10
|
+
case 'string':
|
|
11
|
+
hasValue = data.length > 0;
|
|
12
|
+
break;
|
|
13
|
+
case 'number':
|
|
14
|
+
hasValue = true;
|
|
15
|
+
break;
|
|
16
|
+
case 'object':
|
|
17
|
+
if (Array.isArray(data)) {
|
|
18
|
+
hasValue = data.length > 0;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
hasValue = Object.keys(data).length > 0;
|
|
22
|
+
}
|
|
23
|
+
break;
|
|
24
|
+
case 'boolean':
|
|
25
|
+
hasValue = data;
|
|
26
|
+
}
|
|
27
|
+
return hasValue;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* The isEqual function compares two objects and returns true if they are equal.
|
|
31
|
+
*
|
|
32
|
+
* @param compare1: T Define the type of object that will be passed into the function
|
|
33
|
+
* @param compare2: T Compare the two objects
|
|
34
|
+
*
|
|
35
|
+
* @return A boolean value
|
|
36
|
+
*
|
|
37
|
+
* @docauthor Ibrahima Touré
|
|
38
|
+
*/
|
|
39
|
+
export const isDeepEqual = (compare1, compare2, keys) => {
|
|
40
|
+
if (compare1 === undefined || compare2 === undefined)
|
|
41
|
+
return false;
|
|
42
|
+
if (compare1 === null || compare2 === null)
|
|
43
|
+
return compare1 === compare2;
|
|
44
|
+
if (Array.isArray(compare1) && Array.isArray(compare2)) {
|
|
45
|
+
if (compare1.length !== compare2.length)
|
|
46
|
+
return false;
|
|
47
|
+
return compare1.every((v, i) => isDeepEqual(v, compare2[i]));
|
|
48
|
+
}
|
|
49
|
+
if (keys && keys.length > 0) {
|
|
50
|
+
if (isPrimitive(compare1) && isPrimitive(compare2))
|
|
51
|
+
return compare1 === compare2;
|
|
52
|
+
if (isObject(compare1) && isObject(compare2))
|
|
53
|
+
return keys.every((k) => isDeepEqual(compare1[k], compare2[k]));
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
if (isObject(compare1) && isObject(compare2)) {
|
|
57
|
+
const obj1Keys = Object.keys(compare1).sort();
|
|
58
|
+
const obj2Keys = Object.keys(compare2).sort();
|
|
59
|
+
if (obj1Keys.length !== obj2Keys.length)
|
|
60
|
+
return false;
|
|
61
|
+
// Fixed: use recursive isDeepEqual instead of === for nested values
|
|
62
|
+
return obj1Keys.every((key) => isDeepEqual(compare1[key], compare2[key]));
|
|
63
|
+
}
|
|
64
|
+
return compare1 === compare2;
|
|
65
|
+
};
|
|
66
|
+
// ─── Internal helpers ─────────────────────────────────────────────────────────
|
|
67
|
+
/**
|
|
68
|
+
* O(n²) unordered array equality.
|
|
69
|
+
* Finds a unique match in `b` for every element in `a`.
|
|
70
|
+
*/
|
|
71
|
+
function unorderedArrayEqual(a, b, opts) {
|
|
72
|
+
// Each b-slot can only be consumed once
|
|
73
|
+
const used = new Uint8Array(b.length);
|
|
74
|
+
outer: for (let i = 0; i < a.length; i++) {
|
|
75
|
+
for (let j = 0; j < b.length; j++) {
|
|
76
|
+
if (!used[j] && deepEqual(a[i], b[j], opts)) {
|
|
77
|
+
used[j] = 1;
|
|
78
|
+
continue outer;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return false; // no match for a[i]
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
// ─── deepEqual ────────────────────────────────────────────────────────────────
|
|
86
|
+
/**
|
|
87
|
+
* Structural deep equality check.
|
|
88
|
+
*
|
|
89
|
+
* Handles: primitives, null/undefined, Date, RegExp, Array, Map, Set, and
|
|
90
|
+
* plain objects. Recurses into nested structures.
|
|
91
|
+
*
|
|
92
|
+
* @param obj1 - First value
|
|
93
|
+
* @param obj2 - Second value
|
|
94
|
+
* @param options - Comparison options (see {@link DeepEqualOptions})
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* deepEqual({ a: 1, b: { c: 2 } }, { a: 1, b: { c: 2 } }) // true
|
|
98
|
+
* deepEqual([1, 2, 3], [3, 2, 1]) // false
|
|
99
|
+
* deepEqual([1, 2, 3], [3, 2, 1], { unordered: true }) // true
|
|
100
|
+
* deepEqual(
|
|
101
|
+
* [{ id: 2 }, { id: 1 }],
|
|
102
|
+
* [{ id: 1 }, { id: 2 }],
|
|
103
|
+
* { unordered: true }
|
|
104
|
+
* ) // true
|
|
105
|
+
*/
|
|
106
|
+
export const deepEqual = (obj1, obj2, options = {}) => {
|
|
107
|
+
// Fast path: same reference, same primitive, or both null/undefined
|
|
108
|
+
if (obj1 === obj2)
|
|
109
|
+
return true;
|
|
110
|
+
// One side is null/undefined but not the other (=== already handled above)
|
|
111
|
+
if (obj1 == null || obj2 == null)
|
|
112
|
+
return false;
|
|
113
|
+
// Type mismatch
|
|
114
|
+
if (typeof obj1 !== typeof obj2)
|
|
115
|
+
return false;
|
|
116
|
+
// ── Arrays ──────────────────────────────────────────────────────────────
|
|
117
|
+
const isArr1 = Array.isArray(obj1);
|
|
118
|
+
const isArr2 = Array.isArray(obj2);
|
|
119
|
+
if (isArr1 !== isArr2)
|
|
120
|
+
return false;
|
|
121
|
+
if (isArr1 && isArr2) {
|
|
122
|
+
if (obj1.length !== obj2.length)
|
|
123
|
+
return false;
|
|
124
|
+
return options.unordered
|
|
125
|
+
? unorderedArrayEqual(obj1, obj2, options)
|
|
126
|
+
: obj1.every((item, i) => deepEqual(item, obj2[i], options));
|
|
127
|
+
}
|
|
128
|
+
// ── Primitive (non-object) types ─────────────────────────────────────────
|
|
129
|
+
if (typeof obj1 !== 'object')
|
|
130
|
+
return obj1 === obj2;
|
|
131
|
+
// ── Date ─────────────────────────────────────────────────────────────────
|
|
132
|
+
const isDate1 = obj1 instanceof Date;
|
|
133
|
+
const isDate2 = obj2 instanceof Date;
|
|
134
|
+
if (isDate1 !== isDate2)
|
|
135
|
+
return false;
|
|
136
|
+
if (isDate1)
|
|
137
|
+
return obj1.getTime() === obj2.getTime();
|
|
138
|
+
// ── RegExp ───────────────────────────────────────────────────────────────
|
|
139
|
+
const isRE1 = obj1 instanceof RegExp;
|
|
140
|
+
const isRE2 = obj2 instanceof RegExp;
|
|
141
|
+
if (isRE1 !== isRE2)
|
|
142
|
+
return false;
|
|
143
|
+
if (isRE1)
|
|
144
|
+
return obj1.toString() === obj2.toString();
|
|
145
|
+
// ── Map ──────────────────────────────────────────────────────────────────
|
|
146
|
+
const isMap1 = obj1 instanceof Map;
|
|
147
|
+
const isMap2 = obj2 instanceof Map;
|
|
148
|
+
if (isMap1 !== isMap2)
|
|
149
|
+
return false;
|
|
150
|
+
if (isMap1) {
|
|
151
|
+
if (obj1.size !== obj2.size)
|
|
152
|
+
return false;
|
|
153
|
+
for (const [k, v] of obj1) {
|
|
154
|
+
if (!obj2.has(k))
|
|
155
|
+
return false;
|
|
156
|
+
if (!deepEqual(v, obj2.get(k), options))
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
// ── Set ──────────────────────────────────────────────────────────────────
|
|
162
|
+
const isSet1 = obj1 instanceof Set;
|
|
163
|
+
const isSet2 = obj2 instanceof Set;
|
|
164
|
+
if (isSet1 !== isSet2)
|
|
165
|
+
return false;
|
|
166
|
+
if (isSet1) {
|
|
167
|
+
if (obj1.size !== obj2.size)
|
|
168
|
+
return false;
|
|
169
|
+
// Sets are inherently unordered; use the unordered algorithm for deep items
|
|
170
|
+
const bArr = [...obj2];
|
|
171
|
+
const used = new Uint8Array(bArr.length);
|
|
172
|
+
outer: for (const v of obj1) {
|
|
173
|
+
for (let j = 0; j < bArr.length; j++) {
|
|
174
|
+
if (!used[j] && deepEqual(v, bArr[j], options)) {
|
|
175
|
+
used[j] = 1;
|
|
176
|
+
continue outer;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
// ── Plain objects ─────────────────────────────────────────────────────────
|
|
184
|
+
if (!isObject(obj1) || !isObject(obj2))
|
|
185
|
+
return false;
|
|
186
|
+
const keys1 = Object.keys(obj1);
|
|
187
|
+
const keys2 = Object.keys(obj2);
|
|
188
|
+
if (keys1.length !== keys2.length)
|
|
189
|
+
return false;
|
|
190
|
+
for (const key of keys1) {
|
|
191
|
+
if (!Object.prototype.hasOwnProperty.call(obj2, key))
|
|
192
|
+
return false;
|
|
193
|
+
if (!deepEqual(obj1[key], obj2[key], options))
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
return true;
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* Checks if two values are equal
|
|
200
|
+
* @param a - The first value to compare
|
|
201
|
+
* @param b - The second value to compare
|
|
202
|
+
* @returns True if values are equal
|
|
203
|
+
* @example
|
|
204
|
+
* isEqual(1, 1) // true
|
|
205
|
+
* isEqual(1, '1') // false
|
|
206
|
+
* isEqual(null, undefined) // false
|
|
207
|
+
*/
|
|
208
|
+
export function isEqual(a, b) {
|
|
209
|
+
return Object.is(a, b);
|
|
210
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{isDate as E}from"@fluixi/utils/primitive";import{isClass as N,isObject as z}from"@fluixi/utils/object";import{isArray as P}from"@fluixi/utils/array";import{isFunction as C}from"@fluixi/utils/functions";var p=e=>typeof e>"u"||e===null;function x(e){let n=typeof e;return e===null||n==="string"||n==="number"||n==="boolean"||n==="symbol"||n==="bigint"||n==="undefined"||E(e)}import{isObject as l}from"@fluixi/utils/object";var m=e=>{let n=typeof e,t=!1;if(p(e))return!1;switch(n){case"string":t=e.length>0;break;case"number":t=!0;break;case"object":Array.isArray(e)?t=e.length>0:t=Object.keys(e).length>0;break;case"boolean":t=e}return t},c=(e,n,t)=>{if(e===void 0||n===void 0)return!1;if(e===null||n===null)return e===n;if(Array.isArray(e)&&Array.isArray(n))return e.length!==n.length?!1:e.every((r,u)=>c(r,n[u]));if(t&&t.length>0)return x(e)&&x(n)?e===n:l(e)&&l(n)?t.every(r=>c(e[r],n[r])):!1;if(l(e)&&l(n)){let r=Object.keys(e).sort(),u=Object.keys(n).sort();return r.length!==u.length?!1:r.every(s=>c(e[s],n[s]))}return e===n};function S(e,n,t){let r=new Uint8Array(n.length);e:for(let u=0;u<e.length;u++){for(let s=0;s<n.length;s++)if(!r[s]&&y(e[u],n[s],t)){r[s]=1;continue e}return!1}return!0}var y=(e,n,t={})=>{if(e===n)return!0;if(e==null||n==null||typeof e!=typeof n)return!1;let r=Array.isArray(e),u=Array.isArray(n);if(r!==u)return!1;if(r&&u)return e.length!==n.length?!1:t.unordered?S(e,n,t):e.every((i,f)=>y(i,n[f],t));if(typeof e!="object")return e===n;let s=e instanceof Date,O=n instanceof Date;if(s!==O)return!1;if(s)return e.getTime()===n.getTime();let o=e instanceof RegExp,A=n instanceof RegExp;if(o!==A)return!1;if(o)return e.toString()===n.toString();let d=e instanceof Map,v=n instanceof Map;if(d!==v)return!1;if(d){if(e.size!==n.size)return!1;for(let[i,f]of e)if(!n.has(i)||!y(f,n.get(i),t))return!1;return!0}let g=e instanceof Set,D=n instanceof Set;if(g!==D)return!1;if(g){if(e.size!==n.size)return!1;let i=[...n],f=new Uint8Array(i.length);e:for(let k of e){for(let a=0;a<i.length;a++)if(!f[a]&&y(k,i[a],t)){f[a]=1;continue e}return!1}return!0}if(!l(e)||!l(n))return!1;let h=Object.keys(e),T=Object.keys(n);if(h.length!==T.length)return!1;for(let i of h)if(!Object.prototype.hasOwnProperty.call(n,i)||!y(e[i],n[i],t))return!1;return!0};function B(e,n){return Object.is(e,n)}export{y as deepEqual,m as hasLength,c as isDeepEqual,B as isEqual};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var o=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var q=Object.prototype.hasOwnProperty;var K=(e,n)=>{for(var t in n)o(e,t,{get:n[t],enumerable:!0})},N=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of U(n))!q.call(e,i)&&i!==t&&o(e,i,{get:()=>n[i],enumerable:!(r=M(n,i))||r.enumerable});return e};var z=e=>N(o({},"__esModule",{value:!0}),e);var F={};K(F,{deepEqual:()=>a,hasLength:()=>I,isDeepEqual:()=>x,isEqual:()=>C});module.exports=z(F);var O=require("@fluixi/utils/primitive"),A=require("@fluixi/utils/object"),R=require("@fluixi/utils/array"),P=require("@fluixi/utils/functions");var v=e=>typeof e>"u"||e===null;function c(e){let n=typeof e;return e===null||n==="string"||n==="number"||n==="boolean"||n==="symbol"||n==="bigint"||n==="undefined"||(0,O.isDate)(e)}var f=require("@fluixi/utils/object"),I=e=>{let n=typeof e,t=!1;if(v(e))return!1;switch(n){case"string":t=e.length>0;break;case"number":t=!0;break;case"object":Array.isArray(e)?t=e.length>0:t=Object.keys(e).length>0;break;case"boolean":t=e}return t},x=(e,n,t)=>{if(e===void 0||n===void 0)return!1;if(e===null||n===null)return e===n;if(Array.isArray(e)&&Array.isArray(n))return e.length!==n.length?!1:e.every((r,i)=>x(r,n[i]));if(t&&t.length>0)return c(e)&&c(n)?e===n:(0,f.isObject)(e)&&(0,f.isObject)(n)?t.every(r=>x(e[r],n[r])):!1;if((0,f.isObject)(e)&&(0,f.isObject)(n)){let r=Object.keys(e).sort(),i=Object.keys(n).sort();return r.length!==i.length?!1:r.every(u=>x(e[u],n[u]))}return e===n};function m(e,n,t){let r=new Uint8Array(n.length);e:for(let i=0;i<e.length;i++){for(let u=0;u<n.length;u++)if(!r[u]&&a(e[i],n[u],t)){r[u]=1;continue e}return!1}return!0}var a=(e,n,t={})=>{if(e===n)return!0;if(e==null||n==null||typeof e!=typeof n)return!1;let r=Array.isArray(e),i=Array.isArray(n);if(r!==i)return!1;if(r&&i)return e.length!==n.length?!1:t.unordered?m(e,n,t):e.every((s,l)=>a(s,n[l],t));if(typeof e!="object")return e===n;let u=e instanceof Date,D=n instanceof Date;if(u!==D)return!1;if(u)return e.getTime()===n.getTime();let d=e instanceof RegExp,T=n instanceof RegExp;if(d!==T)return!1;if(d)return e.toString()===n.toString();let g=e instanceof Map,k=n instanceof Map;if(g!==k)return!1;if(g){if(e.size!==n.size)return!1;for(let[s,l]of e)if(!n.has(s)||!a(l,n.get(s),t))return!1;return!0}let h=e instanceof Set,E=n instanceof Set;if(h!==E)return!1;if(h){if(e.size!==n.size)return!1;let s=[...n],l=new Uint8Array(s.length);e:for(let w of e){for(let y=0;y<s.length;y++)if(!l[y]&&a(w,s[y],t)){l[y]=1;continue e}return!1}return!0}if(!(0,f.isObject)(e)||!(0,f.isObject)(n))return!1;let p=Object.keys(e),S=Object.keys(n);if(p.length!==S.length)return!1;for(let s of p)if(!Object.prototype.hasOwnProperty.call(n,s)||!a(e[s],n[s],t))return!1;return!0};function C(e,n){return Object.is(e,n)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/compare/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './comparators.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{isDate as E}from"@fluixi/utils/primitive";import{isClass as N,isObject as z}from"@fluixi/utils/object";import{isArray as P}from"@fluixi/utils/array";import{isFunction as m}from"@fluixi/utils/functions";var p=e=>typeof e>"u"||e===null;function x(e){let n=typeof e;return e===null||n==="string"||n==="number"||n==="boolean"||n==="symbol"||n==="bigint"||n==="undefined"||E(e)}import{isObject as l}from"@fluixi/utils/object";var V=e=>{let n=typeof e,t=!1;if(p(e))return!1;switch(n){case"string":t=e.length>0;break;case"number":t=!0;break;case"object":Array.isArray(e)?t=e.length>0:t=Object.keys(e).length>0;break;case"boolean":t=e}return t},o=(e,n,t)=>{if(e===void 0||n===void 0)return!1;if(e===null||n===null)return e===n;if(Array.isArray(e)&&Array.isArray(n))return e.length!==n.length?!1:e.every((r,u)=>o(r,n[u]));if(t&&t.length>0)return x(e)&&x(n)?e===n:l(e)&&l(n)?t.every(r=>o(e[r],n[r])):!1;if(l(e)&&l(n)){let r=Object.keys(e).sort(),u=Object.keys(n).sort();return r.length!==u.length?!1:r.every(s=>o(e[s],n[s]))}return e===n};function S(e,n,t){let r=new Uint8Array(n.length);e:for(let u=0;u<e.length;u++){for(let s=0;s<n.length;s++)if(!r[s]&&y(e[u],n[s],t)){r[s]=1;continue e}return!1}return!0}var y=(e,n,t={})=>{if(e===n)return!0;if(e==null||n==null||typeof e!=typeof n)return!1;let r=Array.isArray(e),u=Array.isArray(n);if(r!==u)return!1;if(r&&u)return e.length!==n.length?!1:t.unordered?S(e,n,t):e.every((i,f)=>y(i,n[f],t));if(typeof e!="object")return e===n;let s=e instanceof Date,O=n instanceof Date;if(s!==O)return!1;if(s)return e.getTime()===n.getTime();let c=e instanceof RegExp,A=n instanceof RegExp;if(c!==A)return!1;if(c)return e.toString()===n.toString();let d=e instanceof Map,v=n instanceof Map;if(d!==v)return!1;if(d){if(e.size!==n.size)return!1;for(let[i,f]of e)if(!n.has(i)||!y(f,n.get(i),t))return!1;return!0}let g=e instanceof Set,D=n instanceof Set;if(g!==D)return!1;if(g){if(e.size!==n.size)return!1;let i=[...n],f=new Uint8Array(i.length);e:for(let k of e){for(let a=0;a<i.length;a++)if(!f[a]&&y(k,i[a],t)){f[a]=1;continue e}return!1}return!0}if(!l(e)||!l(n))return!1;let h=Object.keys(e),T=Object.keys(n);if(h.length!==T.length)return!1;for(let i of h)if(!Object.prototype.hasOwnProperty.call(n,i)||!y(e[i],n[i],t))return!1;return!0};function B(e,n){return Object.is(e,n)}export{y as deepEqual,V as hasLength,o as isDeepEqual,B as isEqual};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var h=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var w=(n,t)=>{for(var e in t)h(n,e,{get:t[e],enumerable:!0})},A=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of y(t))!p.call(n,a)&&a!==e&&h(n,a,{get:()=>t[a],enumerable:!(r=g(t,a))||r.enumerable});return n};var u=n=>A(h({},"__esModule",{value:!0}),n);var l={};w(l,{compareWithHash:()=>f,createHash:()=>x,hash:()=>i,hashStringPromise:()=>H,string_hash:()=>S});module.exports=u(l);var x=async(n,t="SHA-1")=>{if(typeof window>"u")return null;let{subtle:e}=window.globalThis.crypto,r=await e.generateKey({name:"HMAC",hash:t,length:256},!0,["sign","verify"]),o=new TextEncoder().encode(n),c=await e.sign({name:"HMAC"},r,o);return[...new Uint8Array(c)].map(d=>d.toString(16).padStart(2,"0")).join("")},i=async(n,t="SHA-256")=>{let r=new TextEncoder().encode(n),a=await crypto.subtle.digest(t,r);return Array.from(new Uint8Array(a)).map(s=>s.toString(16).padStart(2,"0")).join("")},f=async(n,t,e="SHA-256")=>{let r=await i(n,e),a=await i(t,e);return r===a};async function H(n,t="SHA-256"){let r=new TextEncoder().encode(n),a=await crypto.subtle.digest(t,r);return Array.from(new Uint8Array(a)).map(s=>s.toString(16).padStart(2,"0")).join("")}var S=n=>{let t=0;for(let e=0;e<n.length;e++){let r=n.charCodeAt(e);t=(t<<5)-t+r,t=t&t}return t.toString(16)};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const createHash: (value: any, algorithm?: string) => Promise<string | null>;
|
|
2
|
+
export declare const hash: (value: string, algorithm?: string) => Promise<string>;
|
|
3
|
+
export declare const compareWithHash: (value1: string, value2: string, algorithm?: string) => Promise<boolean>;
|
|
4
|
+
export declare function hashStringPromise(value: string, algorithm?: string): Promise<string>;
|
|
5
|
+
export declare const string_hash: (str: string) => string;
|
|
6
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../src/lib/crypto/hash.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAU,OAAO,GAAG,EAAE,YAAW,MAAgB,2BA2BvE,CAAC;AAEF,eAAO,MAAM,IAAI,GAAU,OAAO,MAAM,EAAE,kBAAqB,oBAS9D,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,kBAAqB,qBAKtB,CAAC;AAGF,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAY,mBAS3E;AAED,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,WAQtC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const createHash = async (value, algorithm = 'SHA-1') => {
|
|
2
|
+
if (typeof window === 'undefined')
|
|
3
|
+
return null;
|
|
4
|
+
const { subtle } = window.globalThis.crypto;
|
|
5
|
+
const key = await subtle.generateKey({
|
|
6
|
+
name: 'HMAC',
|
|
7
|
+
hash: algorithm,
|
|
8
|
+
length: 256,
|
|
9
|
+
}, true, ['sign', 'verify']);
|
|
10
|
+
const enc = new TextEncoder();
|
|
11
|
+
const message = enc.encode(value);
|
|
12
|
+
const digest = await subtle.sign({
|
|
13
|
+
name: 'HMAC',
|
|
14
|
+
}, key, message);
|
|
15
|
+
const hex = [...new Uint8Array(digest)]
|
|
16
|
+
.map((x) => x.toString(16).padStart(2, '0'))
|
|
17
|
+
.join('');
|
|
18
|
+
return hex;
|
|
19
|
+
};
|
|
20
|
+
export const hash = async (value, algorithm = 'SHA-256') => {
|
|
21
|
+
const encoder = new TextEncoder();
|
|
22
|
+
const data = encoder.encode(value);
|
|
23
|
+
const hashBuffer = await crypto.subtle.digest(algorithm, data);
|
|
24
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
25
|
+
const hashHex = hashArray
|
|
26
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
27
|
+
.join('');
|
|
28
|
+
return hashHex;
|
|
29
|
+
};
|
|
30
|
+
export const compareWithHash = async (value1, value2, algorithm = 'SHA-256') => {
|
|
31
|
+
const hash1 = await hash(value1, algorithm);
|
|
32
|
+
const hash2 = await hash(value2, algorithm);
|
|
33
|
+
return hash1 === hash2;
|
|
34
|
+
};
|
|
35
|
+
export async function hashStringPromise(value, algorithm = 'SHA-256') {
|
|
36
|
+
const encoder = new TextEncoder();
|
|
37
|
+
const data = encoder.encode(value);
|
|
38
|
+
const hashBuffer = await crypto.subtle.digest(algorithm, data);
|
|
39
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
40
|
+
const hashHex = hashArray
|
|
41
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
42
|
+
.join('');
|
|
43
|
+
return hashHex;
|
|
44
|
+
}
|
|
45
|
+
export const string_hash = (str) => {
|
|
46
|
+
let hash = 0;
|
|
47
|
+
for (let i = 0; i < str.length; i++) {
|
|
48
|
+
const char = str.charCodeAt(i);
|
|
49
|
+
hash = (hash << 5) - hash + char;
|
|
50
|
+
hash = hash & hash; // Convert to 32bit integer
|
|
51
|
+
}
|
|
52
|
+
return hash.toString(16);
|
|
53
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=async(e,t="SHA-1")=>{if(typeof window>"u")return null;let{subtle:n}=window.globalThis.crypto,r=await n.generateKey({name:"HMAC",hash:t,length:256},!0,["sign","verify"]),o=new TextEncoder().encode(e),c=await n.sign({name:"HMAC"},r,o);return[...new Uint8Array(c)].map(i=>i.toString(16).padStart(2,"0")).join("")},h=async(e,t="SHA-256")=>{let r=new TextEncoder().encode(e),a=await crypto.subtle.digest(t,r);return Array.from(new Uint8Array(a)).map(s=>s.toString(16).padStart(2,"0")).join("")},g=async(e,t,n="SHA-256")=>{let r=await h(e,n),a=await h(t,n);return r===a};async function y(e,t="SHA-256"){let r=new TextEncoder().encode(e),a=await crypto.subtle.digest(t,r);return Array.from(new Uint8Array(a)).map(s=>s.toString(16).padStart(2,"0")).join("")}var p=e=>{let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t=t&t}return t.toString(16)};export{g as compareWithHash,d as createHash,h as hash,y as hashStringPromise,p as string_hash};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var h=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var w=(n,t)=>{for(var e in t)h(n,e,{get:t[e],enumerable:!0})},A=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of y(t))!p.call(n,a)&&a!==e&&h(n,a,{get:()=>t[a],enumerable:!(r=g(t,a))||r.enumerable});return n};var u=n=>A(h({},"__esModule",{value:!0}),n);var l={};w(l,{compareWithHash:()=>f,createHash:()=>x,hash:()=>i,hashStringPromise:()=>H,string_hash:()=>S});module.exports=u(l);var x=async(n,t="SHA-1")=>{if(typeof window>"u")return null;let{subtle:e}=window.globalThis.crypto,r=await e.generateKey({name:"HMAC",hash:t,length:256},!0,["sign","verify"]),o=new TextEncoder().encode(n),c=await e.sign({name:"HMAC"},r,o);return[...new Uint8Array(c)].map(d=>d.toString(16).padStart(2,"0")).join("")},i=async(n,t="SHA-256")=>{let r=new TextEncoder().encode(n),a=await crypto.subtle.digest(t,r);return Array.from(new Uint8Array(a)).map(s=>s.toString(16).padStart(2,"0")).join("")},f=async(n,t,e="SHA-256")=>{let r=await i(n,e),a=await i(t,e);return r===a};async function H(n,t="SHA-256"){let r=new TextEncoder().encode(n),a=await crypto.subtle.digest(t,r);return Array.from(new Uint8Array(a)).map(s=>s.toString(16).padStart(2,"0")).join("")}var S=n=>{let t=0;for(let e=0;e<n.length;e++){let r=n.charCodeAt(e);t=(t<<5)-t+r,t=t&t}return t.toString(16)};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './hash.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=async(e,t="SHA-1")=>{if(typeof window>"u")return null;let{subtle:n}=window.globalThis.crypto,r=await n.generateKey({name:"HMAC",hash:t,length:256},!0,["sign","verify"]),o=new TextEncoder().encode(e),c=await n.sign({name:"HMAC"},r,o);return[...new Uint8Array(c)].map(i=>i.toString(16).padStart(2,"0")).join("")},h=async(e,t="SHA-256")=>{let r=new TextEncoder().encode(e),a=await crypto.subtle.digest(t,r);return Array.from(new Uint8Array(a)).map(s=>s.toString(16).padStart(2,"0")).join("")},g=async(e,t,n="SHA-256")=>{let r=await h(e,n),a=await h(t,n);return r===a};async function y(e,t="SHA-256"){let r=new TextEncoder().encode(e),a=await crypto.subtle.digest(t,r);return Array.from(new Uint8Array(a)).map(s=>s.toString(16).padStart(2,"0")).join("")}var p=e=>{let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t=t&t}return t.toString(16)};export{g as compareWithHash,d as createHash,h as hash,y as hashStringPromise,p as string_hash};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var E=(e,n)=>{for(var o in n)r(e,o,{get:n[o],enumerable:!0})},d=(e,n,o,v)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of s(n))!a.call(e,t)&&t!==o&&r(e,t,{get:()=>n[t],enumerable:!(v=i(n,t))||v.enumerable});return e};var u=e=>d(r({},"__esModule",{value:!0}),e);var c={};E(c,{isAddRemoveListenerTarget:()=>p,isDOMEventTarget:()=>y,isNodeEventEmitter:()=>f,isOnOffTarget:()=>g});module.exports=u(c);function y(e){return e&&typeof e.addEventListener=="function"}function f(e){return e&&typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"}function g(e){return e&&typeof e.on=="function"&&typeof e.off=="function"}function p(e){return e&&typeof e.addListener=="function"&&typeof e.removeListener=="function"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A mapping of common DOM event names to their corresponding TypeScript event interfaces.
|
|
3
|
+
* This enables intelligent type inference for standard browser events.
|
|
4
|
+
*
|
|
5
|
+
* @interface DomEventMap
|
|
6
|
+
*
|
|
7
|
+
* @property {MouseEvent} 'click' - Mouse click events
|
|
8
|
+
* @property {MouseEvent} 'dblclick' - Mouse double-click events
|
|
9
|
+
* @property {MouseEvent} 'mousedown' - Mouse button down events
|
|
10
|
+
* @property {MouseEvent} 'mouseup' - Mouse button up events
|
|
11
|
+
* @property {MouseEvent} 'mousemove' - Mouse movement events
|
|
12
|
+
* @property {MouseEvent} 'mouseenter' - Mouse enter events
|
|
13
|
+
* @property {MouseEvent} 'mouseleave' - Mouse leave events
|
|
14
|
+
* @property {KeyboardEvent} 'keydown' - Keyboard key down events
|
|
15
|
+
* @property {KeyboardEvent} 'keyup' - Keyboard key up events
|
|
16
|
+
* @property {KeyboardEvent} 'keypress' - Keyboard key press events (deprecated)
|
|
17
|
+
* @property {Event} 'change' - Form change events
|
|
18
|
+
* @property {InputEvent} 'input' - Form input events
|
|
19
|
+
* @property {Event} 'submit' - Form submit events
|
|
20
|
+
* @property {FocusEvent} 'focus' - Element focus events
|
|
21
|
+
* @property {FocusEvent} 'blur' - Element blur events
|
|
22
|
+
* @property {DragEvent} 'drag' - Drag events
|
|
23
|
+
* @property {DragEvent} 'dragstart' - Drag start events
|
|
24
|
+
* @property {DragEvent} 'dragend' - Drag end events
|
|
25
|
+
* @property {DragEvent} 'dragover' - Drag over events
|
|
26
|
+
* @property {DragEvent} 'drop' - Drop events
|
|
27
|
+
* @property {Event} 'play' - Media play events
|
|
28
|
+
* @property {Event} 'pause' - Media pause events
|
|
29
|
+
* @property {Event} 'ended' - Media ended events
|
|
30
|
+
* @property {Event} 'load' - Resource load events
|
|
31
|
+
* @property {Event} 'unload' - Resource unload events
|
|
32
|
+
* @property {UIEvent} 'resize' - Window resize events
|
|
33
|
+
* @property {Event} 'scroll' - Scroll events
|
|
34
|
+
*/
|
|
35
|
+
export interface DomEventMap {
|
|
36
|
+
click: MouseEvent;
|
|
37
|
+
dblclick: MouseEvent;
|
|
38
|
+
mousedown: MouseEvent;
|
|
39
|
+
mouseup: MouseEvent;
|
|
40
|
+
mousemove: MouseEvent;
|
|
41
|
+
mouseenter: MouseEvent;
|
|
42
|
+
mouseleave: MouseEvent;
|
|
43
|
+
keydown: KeyboardEvent;
|
|
44
|
+
keyup: KeyboardEvent;
|
|
45
|
+
keypress: KeyboardEvent;
|
|
46
|
+
change: Event;
|
|
47
|
+
input: InputEvent;
|
|
48
|
+
submit: Event;
|
|
49
|
+
focus: FocusEvent;
|
|
50
|
+
blur: FocusEvent;
|
|
51
|
+
drag: DragEvent;
|
|
52
|
+
dragstart: DragEvent;
|
|
53
|
+
dragend: DragEvent;
|
|
54
|
+
dragover: DragEvent;
|
|
55
|
+
drop: DragEvent;
|
|
56
|
+
play: Event;
|
|
57
|
+
pause: Event;
|
|
58
|
+
ended: Event;
|
|
59
|
+
load: Event;
|
|
60
|
+
unload: Event;
|
|
61
|
+
resize: UIEvent;
|
|
62
|
+
scroll: Event;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Interface for Node.js EventEmitter compatibility.
|
|
66
|
+
* This allows `fromEvent` to work with Node.js event emitters.
|
|
67
|
+
*
|
|
68
|
+
* @interface NodeEventEmitter
|
|
69
|
+
*
|
|
70
|
+
* @method addEventListener - Adds an event listener (Node.js style)
|
|
71
|
+
* @param {string|symbol} event - The event name
|
|
72
|
+
* @param {Function} listener - The event listener function
|
|
73
|
+
*
|
|
74
|
+
* @method removeEventListener - Removes an event listener (Node.js style)
|
|
75
|
+
* @param {string|symbol} event - The event name
|
|
76
|
+
* @param {Function} listener - The event listener function
|
|
77
|
+
*/
|
|
78
|
+
export interface NodeEventEmitter {
|
|
79
|
+
addEventListener(event: string | symbol, listener: (...args: any[]) => void): void;
|
|
80
|
+
removeEventListener(event: string | symbol, listener: (...args: any[]) => void): void;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Union type representing all supported event target types.
|
|
84
|
+
* `fromEvent` can work with DOM elements, Node.js EventEmitters, jQuery-like objects,
|
|
85
|
+
* and any object with `on`/`off` or `addListener`/`removeListener` methods.
|
|
86
|
+
*
|
|
87
|
+
* @typedef {EventTarget|NodeEventEmitter|{on:Function, off:Function}|{addListener:Function, removeListener:Function}} EventTargetLike
|
|
88
|
+
*/
|
|
89
|
+
export type EventTargetLike = EventTarget | NodeEventEmitter | {
|
|
90
|
+
on(event: string, handler: (...args: any[]) => void): void;
|
|
91
|
+
off(event: string, handler: (...args: any[]) => void): void;
|
|
92
|
+
} | {
|
|
93
|
+
addListener(event: string, handler: (...args: any[]) => void): void;
|
|
94
|
+
removeListener(event: string, handler: (...args: any[]) => void): void;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Infers the specific Event type based on the event name and target.
|
|
98
|
+
* This is a conditional type that provides intelligent type inference:
|
|
99
|
+
* 1. First checks against the standard DomEventMap
|
|
100
|
+
* 2. Then checks if the target has its own event type definitions
|
|
101
|
+
* 3. Falls back to the basic Event type
|
|
102
|
+
*
|
|
103
|
+
* @template EventName - The string literal type of the event name (e.g., 'click', 'keydown')
|
|
104
|
+
* @template Target - The type of the event target
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* // Returns MouseEvent
|
|
108
|
+
* type ClickEvent = EventFor<'click', HTMLButtonElement>;
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* // Returns KeyboardEvent
|
|
112
|
+
* type KeydownEvent = EventFor<'keydown', HTMLInputElement>;
|
|
113
|
+
*/
|
|
114
|
+
export type EventFor<EventName extends string, Target extends EventTargetLike = EventTarget> = EventName extends keyof DomEventMap ? DomEventMap[EventName] : Target extends {
|
|
115
|
+
addEventListener(type: infer E, listener: any, options?: any): any;
|
|
116
|
+
} ? E extends string ? EventName extends E ? Event : never : Event : Event;
|
|
117
|
+
/**
|
|
118
|
+
* Type guard to check if an object is a DOM EventTarget.
|
|
119
|
+
*
|
|
120
|
+
* @param {any} target - The object to check
|
|
121
|
+
* @returns {target is EventTarget} True if the object is a DOM EventTarget
|
|
122
|
+
*
|
|
123
|
+
* @private
|
|
124
|
+
*/
|
|
125
|
+
export declare function isDOMEventTarget(target: any): target is EventTarget;
|
|
126
|
+
/**
|
|
127
|
+
* Type guard to check if an object is a Node.js EventEmitter.
|
|
128
|
+
*
|
|
129
|
+
* @param {any} target - The object to check
|
|
130
|
+
* @returns {target is NodeEventEmitter} True if the object is a NodeEventEmitter
|
|
131
|
+
*
|
|
132
|
+
* @private
|
|
133
|
+
*/
|
|
134
|
+
export declare function isNodeEventEmitter(target: any): target is NodeEventEmitter;
|
|
135
|
+
/**
|
|
136
|
+
* Type guard to check if an object has on/off methods (jQuery-style).
|
|
137
|
+
*
|
|
138
|
+
* @param {any} target - The object to check
|
|
139
|
+
* @returns {target is {on: Function, off: Function}} True if the object has on/off methods
|
|
140
|
+
*
|
|
141
|
+
* @private
|
|
142
|
+
*/
|
|
143
|
+
export declare function isOnOffTarget(target: any): target is {
|
|
144
|
+
on: Function;
|
|
145
|
+
off: Function;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Type guard to check if an object has addListener/removeListener methods.
|
|
149
|
+
*
|
|
150
|
+
* @param {any} target - The object to check
|
|
151
|
+
* @returns {target is {addListener: Function, removeListener: Function}} True if the object has addListener/removeListener methods
|
|
152
|
+
*
|
|
153
|
+
* @private
|
|
154
|
+
*/
|
|
155
|
+
export declare function isAddRemoveListenerTarget(target: any): target is {
|
|
156
|
+
addListener: Function;
|
|
157
|
+
removeListener: Function;
|
|
158
|
+
};
|
|
159
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/lib/dom/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,WAAW;IAE1B,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,UAAU,CAAC;IACpB,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IAEvB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IAExB,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IAEjB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAEhB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IAEb,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CACd,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GACjC,IAAI,CAAC;IACR,mBAAmB,CACjB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GACjC,IAAI,CAAC;CACT;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GACvB,WAAW,GACX,gBAAgB,GAChB;IAEE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CAC7D,GACD;IAEE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACpE,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CACxE,CAAC;AAEN;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,QAAQ,CAClB,SAAS,SAAS,MAAM,EACxB,MAAM,SAAS,eAAe,GAAG,WAAW,IAG5C,SAAS,SAAS,MAAM,WAAW,GAC/B,WAAW,CAAC,SAAS,CAAC,GAExB,MAAM,SAAS;IACX,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CACpE,GACD,CAAC,SAAS,MAAM,GACd,SAAS,SAAS,CAAC,GACjB,KAAK,GACL,KAAK,GACP,KAAK,GAEP,KAAK,CAAC;AAEZ;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,WAAW,CAEnE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,gBAAgB,CAM1E;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,GAAG,GACV,MAAM,IAAI;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,CAM3C;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,GAAG,GACV,MAAM,IAAI;IAAE,WAAW,EAAE,QAAQ,CAAC;IAAC,cAAc,EAAE,QAAQ,CAAA;CAAE,CAM/D"}
|