angulux-utils 1.0.0
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 +22 -0
- package/README.md +26 -0
- package/dist/classnames/index.d.mts +9 -0
- package/dist/classnames/index.mjs +2 -0
- package/dist/classnames/index.mjs.map +1 -0
- package/dist/dom/index.d.mts +239 -0
- package/dist/dom/index.mjs +14 -0
- package/dist/dom/index.mjs.map +1 -0
- package/dist/eventbus/index.d.mts +10 -0
- package/dist/eventbus/index.mjs +2 -0
- package/dist/eventbus/index.mjs.map +1 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/dist/mergeprops/index.d.mts +4 -0
- package/dist/mergeprops/index.mjs +2 -0
- package/dist/mergeprops/index.mjs.map +1 -0
- package/dist/object/index.d.mts +128 -0
- package/dist/object/index.mjs +5 -0
- package/dist/object/index.mjs.map +1 -0
- package/dist/uuid/index.d.mts +3 -0
- package/dist/uuid/index.mjs +2 -0
- package/dist/uuid/index.mjs.map +1 -0
- package/dist/zindex/index.d.mts +9 -0
- package/dist/zindex/index.mjs +2 -0
- package/dist/zindex/index.mjs.map +1 -0
- package/package.json +55 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 angulux contributors
|
|
4
|
+
Copyright (c) 2016-2026 PrimeTek
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in
|
|
14
|
+
all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
22
|
+
THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# angulux-utils
|
|
2
|
+
|
|
3
|
+
Framework-agnostic DOM, object and type utilities used by angulux.
|
|
4
|
+
|
|
5
|
+
Part of [angulux](https://github.com/anguless-com/angulux). Published so the library has
|
|
6
|
+
no runtime dependency on packages whose upstream has moved to a commercial license.
|
|
7
|
+
|
|
8
|
+
## Provenance
|
|
9
|
+
|
|
10
|
+
Forked from `@primeuix/utils`, MIT, at the final public commit of
|
|
11
|
+
[primefaces/primeuix](https://github.com/primefaces/primeuix) (`b9467bc`, repository
|
|
12
|
+
archived 2026-06-28\), which published as `@primeuix/utils 0.7.2`.
|
|
13
|
+
|
|
14
|
+
This package is versioned **independently of angulux**. angulux locks its major to Angular's,
|
|
15
|
+
but nothing here depends on Angular — there are no Angular imports and no Angular peer
|
|
16
|
+
dependency — so tying these versions to an Angular release would claim a relationship that
|
|
17
|
+
does not exist. The lineage lives in this file and in `PROVENANCE.md`, not in the version
|
|
18
|
+
number.
|
|
19
|
+
|
|
20
|
+
The public API is verified to cover that release completely; see `PROVENANCE.md` in the
|
|
21
|
+
repository root for the checksummed record and the command to verify it yourself.
|
|
22
|
+
|
|
23
|
+
## License
|
|
24
|
+
|
|
25
|
+
MIT. See `LICENSE` and the repository's `NOTICE`. angulux is not affiliated with,
|
|
26
|
+
endorsed by, or sponsored by PrimeTek.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function f(...e){if(e){let t=[];for(let i=0;i<e.length;i++){let n=e[i];if(!n)continue;let s=typeof n;if(s==="string"||s==="number")t.push(n);else if(s==="object"){let c=Array.isArray(n)?[f(...n)]:Object.entries(n).map(([r,o])=>o?r:void 0);t=c.length?t.concat(c.filter(r=>!!r)):t}}return t.join(" ").trim()}}function u(...e){return f(...e)}export{u as classNames,f as cn};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/classnames/index.ts"],"sourcesContent":["export function cn(...args: any[]): string | undefined {\n if (args) {\n let classes: any = [];\n\n for (let i = 0; i < args.length; i++) {\n const className = args[i];\n\n if (!className) {\n continue;\n }\n\n const type = typeof className;\n\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n const _classes = Array.isArray(className) ? [cn(...className)] : Object.entries(className).map(([key, value]) => (value ? key : undefined));\n\n classes = _classes.length ? classes.concat(_classes.filter((c) => !!c)) : classes;\n }\n }\n\n return classes.join(' ').trim();\n }\n\n return undefined;\n}\n\n/**\n * @deprecated Use `cn` instead.\n * @param args\n * @returns\n */\nexport function classNames(...args: any[]): string | undefined {\n return cn(...args);\n}\n"],"mappings":"AAAO,SAASA,KAAMC,EAAiC,CACnD,GAAIA,EAAM,CACN,IAAIC,EAAe,CAAC,EAEpB,QAAS,EAAI,EAAG,EAAID,EAAK,OAAQ,IAAK,CAClC,IAAME,EAAYF,EAAK,CAAC,EAExB,GAAI,CAACE,EACD,SAGJ,IAAMC,EAAO,OAAOD,EAEpB,GAAIC,IAAS,UAAYA,IAAS,SAC9BF,EAAQ,KAAKC,CAAS,UACfC,IAAS,SAAU,CAC1B,IAAMC,EAAW,MAAM,QAAQF,CAAS,EAAI,CAACH,EAAG,GAAGG,CAAS,CAAC,EAAI,OAAO,QAAQA,CAAS,EAAE,IAAI,CAAC,CAACG,EAAKC,CAAK,IAAOA,EAAQD,EAAM,MAAU,EAE1IJ,EAAUG,EAAS,OAASH,EAAQ,OAAOG,EAAS,OAAQG,GAAM,CAAC,CAACA,CAAC,CAAC,EAAIN,CAC9E,CACJ,CAEA,OAAOA,EAAQ,KAAK,GAAG,EAAE,KAAK,CAClC,CAGJ,CAOO,SAASO,KAAcR,EAAiC,CAC3D,OAAOD,EAAG,GAAGC,CAAI,CACrB","names":["cn","args","classes","className","type","_classes","key","value","c","classNames"]}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
interface BlockBodyScrollOptions {
|
|
2
|
+
className?: string;
|
|
3
|
+
variableName?: string;
|
|
4
|
+
}
|
|
5
|
+
declare function blockBodyScroll(option: string | BlockBodyScrollOptions | undefined): void;
|
|
6
|
+
|
|
7
|
+
declare function exportCSV(csv: any, filename: string): void;
|
|
8
|
+
|
|
9
|
+
declare function saveAs(file: {
|
|
10
|
+
name: string;
|
|
11
|
+
src: string;
|
|
12
|
+
}): boolean;
|
|
13
|
+
|
|
14
|
+
interface UnblockBodyScrollOptions {
|
|
15
|
+
className?: string;
|
|
16
|
+
variableName?: string;
|
|
17
|
+
}
|
|
18
|
+
declare function unblockBodyScroll(option: string | UnblockBodyScrollOptions | undefined): void;
|
|
19
|
+
|
|
20
|
+
declare function absolutePosition(element: HTMLElement, target: HTMLElement, gutter?: boolean): void;
|
|
21
|
+
|
|
22
|
+
declare function addClass(element: Element, className: string | undefined | null | (string | undefined | null)[]): void;
|
|
23
|
+
|
|
24
|
+
declare function addStyle(element: HTMLElement, style: string | object): void;
|
|
25
|
+
|
|
26
|
+
declare function alignOverlay(overlay: HTMLElement, target: HTMLElement, appendTo: string, calculateMinWidth?: boolean): void;
|
|
27
|
+
|
|
28
|
+
declare function appendChild(element: unknown, child: Node | Element): void;
|
|
29
|
+
|
|
30
|
+
declare function calculateBodyScrollbarWidth(): number;
|
|
31
|
+
|
|
32
|
+
declare function calculateScrollbarHeight(element?: HTMLElement): number;
|
|
33
|
+
|
|
34
|
+
declare function calculateScrollbarWidth(element?: HTMLElement): number;
|
|
35
|
+
|
|
36
|
+
declare function clearSelection(): void;
|
|
37
|
+
|
|
38
|
+
declare function createElement(type: string, attributes?: Record<string, unknown>, ...children: (string | Node)[]): HTMLElement | undefined;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @deprecated Use `createStyleMarkup` instead.
|
|
42
|
+
*/
|
|
43
|
+
declare function createStyleAsString(css?: string, options?: Record<string, unknown>): string;
|
|
44
|
+
|
|
45
|
+
declare function createStyleElement(css: string, attributes?: Record<string, unknown>, container?: Element): HTMLStyleElement;
|
|
46
|
+
|
|
47
|
+
declare function createStyleMarkup(css?: string, attributes?: Record<string, unknown>): string;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated Use `createStyleElement` instead.
|
|
51
|
+
*/
|
|
52
|
+
declare function createStyleTag(attributes?: Record<string, unknown>, container?: Element): HTMLStyleElement;
|
|
53
|
+
|
|
54
|
+
declare function fadeIn(element: HTMLElement, duration: number): void;
|
|
55
|
+
|
|
56
|
+
declare function fadeOut(element: HTMLElement, duration: number): void;
|
|
57
|
+
|
|
58
|
+
declare function find(element: Element, selector: string): Element[];
|
|
59
|
+
|
|
60
|
+
declare function findSingle(element: Element, selector: string): Element | null;
|
|
61
|
+
|
|
62
|
+
declare function focus(element: HTMLElement, options?: FocusOptions): void;
|
|
63
|
+
|
|
64
|
+
declare function getAttribute(element: Element, name: string): any;
|
|
65
|
+
|
|
66
|
+
type BrowserType = {
|
|
67
|
+
[key: string]: string | boolean | undefined;
|
|
68
|
+
};
|
|
69
|
+
declare function getBrowser(): BrowserType;
|
|
70
|
+
|
|
71
|
+
declare function getBrowserLanguage(): string;
|
|
72
|
+
|
|
73
|
+
declare function getCSSProperty(element?: HTMLElement, property?: string, inline?: boolean): string | null;
|
|
74
|
+
|
|
75
|
+
declare function getCSSVariableByRegex(variableRegex: RegExp): {
|
|
76
|
+
name: string | undefined;
|
|
77
|
+
value: string | undefined;
|
|
78
|
+
} | null;
|
|
79
|
+
|
|
80
|
+
declare function getCursorOffset(element: Element, prevText: string, nextText: string, currentText: string): {
|
|
81
|
+
top: number | string;
|
|
82
|
+
left: number | string;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
declare function getFirstFocusableElement(element: Element, selector?: string): Element | null;
|
|
86
|
+
|
|
87
|
+
declare function getFocusableElements(element: Element, selector?: string): Element[];
|
|
88
|
+
|
|
89
|
+
declare function getHeight(element: HTMLElement): number;
|
|
90
|
+
|
|
91
|
+
declare function getHiddenElementDimensions(element?: HTMLElement): {
|
|
92
|
+
width: number;
|
|
93
|
+
height: number;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
declare function getHiddenElementOuterHeight(element: HTMLElement): number;
|
|
97
|
+
|
|
98
|
+
declare function getHiddenElementOuterWidth(element: HTMLElement): number;
|
|
99
|
+
|
|
100
|
+
declare function getIndex(element: HTMLElement): number;
|
|
101
|
+
|
|
102
|
+
declare function getInnerWidth(element: HTMLElement): number;
|
|
103
|
+
|
|
104
|
+
declare function getLastFocusableElement(element: Element, selector?: string): Element | null;
|
|
105
|
+
|
|
106
|
+
declare function getNextElementSibling(element: Element, selector: string): Element | null;
|
|
107
|
+
|
|
108
|
+
declare function getNextFocusableElement(container: Element, element: Element, selector?: string): Element | null;
|
|
109
|
+
|
|
110
|
+
declare function getOffset(element?: Element | null): {
|
|
111
|
+
top: number | string;
|
|
112
|
+
left: number | string;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
declare function getOuterHeight(element: HTMLElement, margin?: boolean): number;
|
|
116
|
+
|
|
117
|
+
declare function getOuterWidth(element: unknown, margin?: boolean): number;
|
|
118
|
+
|
|
119
|
+
declare function getParentNode(element: Node): ParentNode | null;
|
|
120
|
+
|
|
121
|
+
declare function getParents(element: Node, parents?: ParentNode[]): ParentNode[];
|
|
122
|
+
|
|
123
|
+
declare function getPreviousElementSibling(element: Element, selector: string): Element | null;
|
|
124
|
+
|
|
125
|
+
declare function getScrollLeft(element?: HTMLElement): number;
|
|
126
|
+
|
|
127
|
+
declare function getScrollableParents(element: Element): Element[];
|
|
128
|
+
|
|
129
|
+
declare function getSelection(): string | undefined;
|
|
130
|
+
|
|
131
|
+
declare function getTargetElement(target: unknown, currentElement?: Element): Window | Document | Element | null | undefined;
|
|
132
|
+
|
|
133
|
+
declare function getUserAgent(): string;
|
|
134
|
+
|
|
135
|
+
declare function getViewport(): {
|
|
136
|
+
width: number;
|
|
137
|
+
height: number;
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
declare function getWidth(element: HTMLElement): number;
|
|
141
|
+
|
|
142
|
+
declare function getWindowScrollLeft(): number;
|
|
143
|
+
|
|
144
|
+
declare function getWindowScrollTop(): number;
|
|
145
|
+
|
|
146
|
+
declare function hasCSSAnimation(element: Element): boolean;
|
|
147
|
+
|
|
148
|
+
declare function hasCSSTransition(element: Element): boolean;
|
|
149
|
+
|
|
150
|
+
declare function hasClass(element: Element, className: string): boolean;
|
|
151
|
+
|
|
152
|
+
declare function invokeElementMethod<T extends keyof Element>(element: Element, methodName: T, args?: unknown[]): void;
|
|
153
|
+
|
|
154
|
+
declare function isAndroid(): boolean;
|
|
155
|
+
|
|
156
|
+
declare function isAttributeEquals(element: Element, name: string, value: any): boolean;
|
|
157
|
+
|
|
158
|
+
declare function isAttributeNotEquals(element: Element, name: string, value: any): boolean;
|
|
159
|
+
|
|
160
|
+
declare function isClickable(element: Element): boolean;
|
|
161
|
+
|
|
162
|
+
declare function isClient(): boolean;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Checks if a given CSS property-value pair is supported by the browser.
|
|
166
|
+
*
|
|
167
|
+
* @param property - CSS property string
|
|
168
|
+
* @param value - CSS value string
|
|
169
|
+
* @returns True if supported, false otherwise
|
|
170
|
+
*/
|
|
171
|
+
declare function isCssSupported(property: keyof CSSStyleDeclaration | string, value: string): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Checks if a given CSS condition is supported by the browser.
|
|
174
|
+
*
|
|
175
|
+
* @param condition - CSS condition string
|
|
176
|
+
* @returns True if supported, false otherwise
|
|
177
|
+
*/
|
|
178
|
+
declare function isCssSupported(condition: string): boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Checks if a given CSS property-value pair or condition is supported by the browser.
|
|
181
|
+
*
|
|
182
|
+
* @param input - CSS property or condition
|
|
183
|
+
* @param value - CSS value (optional)
|
|
184
|
+
* @returns True if supported, false otherwise
|
|
185
|
+
*/
|
|
186
|
+
declare function isCssSupported(input: keyof CSSStyleDeclaration | string, value?: string): boolean;
|
|
187
|
+
|
|
188
|
+
declare function isElement(element: unknown): element is Element;
|
|
189
|
+
|
|
190
|
+
declare function isExist(element: Node): boolean;
|
|
191
|
+
|
|
192
|
+
declare function isFocusableElement(element: unknown, selector?: string): boolean;
|
|
193
|
+
|
|
194
|
+
declare function isHidden(element: HTMLElement): boolean;
|
|
195
|
+
|
|
196
|
+
declare function isIOS(): boolean;
|
|
197
|
+
|
|
198
|
+
declare function isPrefersReducedMotion(): boolean;
|
|
199
|
+
|
|
200
|
+
declare function isRTL(element?: HTMLElement): boolean;
|
|
201
|
+
|
|
202
|
+
declare function isServer(): boolean;
|
|
203
|
+
|
|
204
|
+
declare function isTouchDevice(): boolean;
|
|
205
|
+
|
|
206
|
+
declare function isVisible(element?: HTMLElement): boolean;
|
|
207
|
+
|
|
208
|
+
declare function nestedPosition(element: HTMLElement, level: number): void;
|
|
209
|
+
|
|
210
|
+
declare function nextFrame(): Promise<void>;
|
|
211
|
+
|
|
212
|
+
declare function relativePosition(element: HTMLElement, target: HTMLElement, gutter?: boolean, fixedOrigin?: 'top' | 'bottom' | undefined): void;
|
|
213
|
+
|
|
214
|
+
declare function remove(element: Element): void;
|
|
215
|
+
|
|
216
|
+
declare function removeChild(element: unknown, child: Node): void;
|
|
217
|
+
|
|
218
|
+
declare function removeClass(element: Element, className: string | undefined | null | (string | undefined | null)[]): void;
|
|
219
|
+
|
|
220
|
+
declare function removeStyleTag(element: Node): Node | null;
|
|
221
|
+
|
|
222
|
+
declare function resolveUserAgent(): {
|
|
223
|
+
browser: string | undefined;
|
|
224
|
+
version: string | undefined;
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
declare function scrollInView(container: HTMLElement, item: HTMLElement): void;
|
|
228
|
+
|
|
229
|
+
declare function setAttribute(element: HTMLElement, attribute: string | undefined, value: any): void;
|
|
230
|
+
|
|
231
|
+
declare function setAttributes(element: HTMLElement, attributes?: {
|
|
232
|
+
[key: string]: any;
|
|
233
|
+
}): void;
|
|
234
|
+
|
|
235
|
+
declare function setCSSProperty(element?: HTMLElement, property?: string, value?: any, priority?: string): void;
|
|
236
|
+
|
|
237
|
+
declare function toElement(element: unknown): Element | null | undefined;
|
|
238
|
+
|
|
239
|
+
export { absolutePosition, addClass, addStyle, alignOverlay, appendChild, blockBodyScroll, calculateBodyScrollbarWidth, calculateScrollbarHeight, calculateScrollbarWidth, clearSelection, createElement, createStyleAsString, createStyleElement, createStyleMarkup, createStyleTag, exportCSV, fadeIn, fadeOut, find, findSingle, focus, getAttribute, getBrowser, getBrowserLanguage, getCSSProperty, getCSSVariableByRegex, getCursorOffset, getFirstFocusableElement, getFocusableElements, getHeight, getHiddenElementDimensions, getHiddenElementOuterHeight, getHiddenElementOuterWidth, getIndex, getInnerWidth, getLastFocusableElement, getNextElementSibling, getNextFocusableElement, getOffset, getOuterHeight, getOuterWidth, getParentNode, getParents, getPreviousElementSibling, getScrollLeft, getScrollableParents, getSelection, getTargetElement, getUserAgent, getViewport, getWidth, getWindowScrollLeft, getWindowScrollTop, hasCSSAnimation, hasCSSTransition, hasClass, invokeElementMethod, isAndroid, isAttributeEquals, isAttributeNotEquals, isClickable, isClient, isCssSupported, isElement, isExist, isFocusableElement, isHidden, isIOS, isPrefersReducedMotion, isRTL, isServer, isTouchDevice, isVisible, nestedPosition, nextFrame, relativePosition, remove, removeChild, removeClass, removeStyleTag, resolveUserAgent, saveAs, scrollInView, setAttribute, setAttributes, setCSSProperty, toElement, unblockBodyScroll };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
function M(t,e){return t?t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className):!1}function H(t,e){if(t&&e){let o=n=>{M(t,n)||(t.classList?t.classList.add(n):t.className+=" "+n)};[e].flat().filter(Boolean).forEach(n=>n.split(" ").forEach(o))}}function N(){return window.innerWidth-document.documentElement.offsetWidth}function nt(t){typeof t=="string"?H(document.body,t||"p-overflow-hidden"):(t?.variableName&&document.body.style.setProperty(t.variableName,N()+"px"),H(document.body,t?.className||"p-overflow-hidden"))}function R(t){if(t){let e=document.createElement("a");if(e.download!==void 0){let{name:o,src:n}=t;return e.setAttribute("href",n),e.setAttribute("download",o),e.style.display="none",document.body.appendChild(e),e.click(),document.body.removeChild(e),!0}}return!1}function rt(t,e){let o=new Blob([t],{type:"application/csv;charset=utf-8;"});window.navigator.msSaveOrOpenBlob?navigator.msSaveOrOpenBlob(o,e+".csv"):R({name:e+".csv",src:URL.createObjectURL(o)})||(t="data:text/csv;charset=utf-8,"+t,window.open(encodeURI(t)))}function L(t,e){if(t&&e){let o=n=>{t.classList?t.classList.remove(n):t.className=t.className.replace(new RegExp("(^|\\b)"+n.split(" ").join("|")+"(\\b|$)","gi")," ")};[e].flat().filter(Boolean).forEach(n=>n.split(" ").forEach(o))}}function it(t){typeof t=="string"?L(document.body,t||"p-overflow-hidden"):(t?.variableName&&document.body.style.removeProperty(t.variableName),L(document.body,t?.className||"p-overflow-hidden"))}function y(t){for(let e of document?.styleSheets)try{for(let o of e?.cssRules)for(let n of o?.style)if(t.test(n))return{name:n,value:o.style.getPropertyValue(n).trim()}}catch{}return null}function x(t){let e={width:0,height:0};if(t){let[o,n]=[t.style.visibility,t.style.display],r=t.getBoundingClientRect();t.style.visibility="hidden",t.style.display="block",e.width=r.width||t.offsetWidth,e.height=r.height||t.offsetHeight,t.style.display=n,t.style.visibility=o}return e}function m(){let t=window,e=document,o=e.documentElement,n=e.getElementsByTagName("body")[0],r=t.innerWidth||o.clientWidth||n.clientWidth,i=t.innerHeight||o.clientHeight||n.clientHeight;return{width:r,height:i}}function b(t){return t?Math.abs(t.scrollLeft):0}function F(){let t=document.documentElement;return(window.pageXOffset||b(t))-(t.clientLeft||0)}function B(){let t=document.documentElement;return(window.pageYOffset||t.scrollTop)-(t.clientTop||0)}function k(t){return t?getComputedStyle(t).direction==="rtl":!1}function $(t,e,o=!0){if(t){let n=t.offsetParent?{width:t.offsetWidth,height:t.offsetHeight}:x(t),r=n.height,i=n.width,l=e.offsetHeight,d=e.offsetWidth,s=e.getBoundingClientRect(),a=B(),f=F(),c=m(),C,A,tt="top";s.top+l+r>c.height?(C=s.top+a-r,tt="bottom",C<0&&(C=a)):C=l+s.top+a,s.left+i>c.width?A=Math.max(0,s.left+f+d-i):A=s.left+f,k(t)?t.style.insetInlineEnd=A+"px":t.style.insetInlineStart=A+"px",t.style.top=C+"px",t.style.transformOrigin=tt,o&&(t.style.marginTop=tt==="bottom"?`calc(${y(/-anchor-gutter$/)?.value??"2px"} * -1)`:y(/-anchor-gutter$/)?.value??"")}}function E(t,e){t&&(typeof e=="string"?t.style.cssText=e:Object.entries(e||{}).forEach(([o,n])=>t.style[o]=n))}function w(t,e){if(t instanceof HTMLElement){let o=t.offsetWidth;if(e){let n=getComputedStyle(t);o+=parseFloat(n.marginLeft)+parseFloat(n.marginRight)}return o}return 0}function V(t,e,o=!0,n=void 0){if(t){let r=t.offsetParent?{width:t.offsetWidth,height:t.offsetHeight}:x(t),i=e.offsetHeight,l=e.getBoundingClientRect(),d=m(),s,a,f=n??"top";if(!n&&l.top+i+r.height>d.height?(s=-1*r.height,f="bottom",l.top+s<0&&(s=-1*l.top)):s=i,r.width>d.width?a=l.left*-1:l.left+r.width>d.width?a=(l.left+r.width-d.width)*-1:a=0,t.style.top=s+"px",t.style.insetInlineStart=a+"px",t.style.transformOrigin=f,o){let c=y(/-anchor-gutter$/)?.value;t.style.marginTop=f==="bottom"?`calc(${c??"2px"} * -1)`:c??""}}}function lt(t,e,o,n=!0){t&&e&&(o==="self"?V(t,e):(n&&(t.style.minWidth=w(e)+"px"),$(t,e)))}function g(t){if(t){let e=t.parentNode;return e&&e instanceof ShadowRoot&&e.host&&(e=e.host),e}return null}function S(t){return!!(t!==null&&typeof t<"u"&&t.nodeName&&g(t))}function u(t){return typeof Element<"u"?t instanceof Element:t!==null&&typeof t=="object"&&t.nodeType===1&&typeof t.nodeName=="string"}function v(t){let e=t;return t&&typeof t=="object"&&(Object.hasOwn(t,"current")?e=t.current:Object.hasOwn(t,"el")&&(Object.hasOwn(t.el,"nativeElement")?e=t.el.nativeElement:e=t.el)),u(e)?e:void 0}function I(t,e){if(t)switch(t){case"document":return document;case"window":return window;case"body":return document.body;case"@next":return e?.nextElementSibling;case"@prev":return e?.previousElementSibling;case"@first":return e?.firstElementChild;case"@last":return e?.lastElementChild;case"@child":return e?.children?.[0];case"@parent":return e?.parentElement;case"@grandparent":return e?.parentElement?.parentElement;default:{if(typeof t=="string"){let i=t.match(/^@child\[(\d+)]/);return i?e?.children?.[parseInt(i[1],10)]||null:document.querySelector(t)||null}let n=(i=>typeof i=="function"&&"call"in i&&"apply"in i)(t)?t():t,r=v(n);return S(r)?r:n?.nodeType===9?n:void 0}}}function st(t,e){let o=I(t,e);if(o)o.appendChild(e);else throw new Error("Cannot append "+e+" to "+t)}var et;function at(t){if(t){let e=getComputedStyle(t);return t.offsetHeight-t.clientHeight-parseFloat(e.borderTopWidth)-parseFloat(e.borderBottomWidth)}else{if(et!=null)return et;let e=document.createElement("div");E(e,{width:"100px",height:"100px",overflow:"scroll",position:"absolute",top:"-9999px"}),document.body.appendChild(e);let o=e.offsetHeight-e.clientHeight;return document.body.removeChild(e),et=o,o}}var ot;function W(t){if(t){let e=getComputedStyle(t);return t.offsetWidth-t.clientWidth-parseFloat(e.borderLeftWidth)-parseFloat(e.borderRightWidth)}else{if(ot!=null)return ot;let e=document.createElement("div");E(e,{width:"100px",height:"100px",overflow:"scroll",position:"absolute",top:"-9999px"}),document.body.appendChild(e);let o=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),ot=o,o}}function dt(){if(window.getSelection){let t=window.getSelection()||{};t.empty?t.empty():t.removeAllRanges&&t.rangeCount>0&&t.getRangeAt(0).getClientRects().length>0&&t.removeAllRanges()}}function O(t,e={}){if(u(t)){let o=(n,r)=>{let i=t?.$attrs?.[n]?[t?.$attrs?.[n]]:[];return[r].flat().reduce((l,d)=>{if(d!=null){let s=typeof d;if(s==="string"||s==="number")l.push(d);else if(s==="object"){let a=Array.isArray(d)?o(n,d):Object.entries(d).map(([f,c])=>n==="style"&&(c||c===0)?`${f.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}:${c}`:c?f:void 0);l=a.length?l.concat(a.filter(f=>!!f)):l}}return l},i)};Object.entries(e).forEach(([n,r])=>{if(r!=null){let i=n.match(/^on(.+)/);i?t.addEventListener(i[1].toLowerCase(),r):n==="p-bind"||n==="pBind"?O(t,r):(r=n==="class"?[...new Set(o("class",r))].join(" ").trim():n==="style"?o("style",r).join(";").trim():r,(t.$attrs=t.$attrs||{})&&(t.$attrs[n]=r),t.setAttribute(n,r))}})}}function D(t,e={},...o){if(t){let n=document.createElement(t);return O(n,e),n.append(...o),n}}function j(t,e={}){return t?`<style${Object.entries(e).reduce((o,[n,r])=>o+` ${n}="${r}"`,"")}>${t}</style>`:""}function ft(t,e={}){return j(t,e)}function U(t,e={},o){let n=D("style",e,t);return o?.appendChild(n),n}function ut(t={},e){return U("",t,e||document.head)}function ct(t,e){if(t){t.style.opacity="0";let o=+new Date,n="0",r=function(){n=`${+t.style.opacity+(new Date().getTime()-o)/e}`,t.style.opacity=n,o=+new Date,+n<1&&("requestAnimationFrame"in window?requestAnimationFrame(r):setTimeout(r,16))};r()}}function pt(t,e){if(t){let o=1,n=50,r=n/e,i=setInterval(()=>{o-=r,o<=0&&(o=0,clearInterval(i)),t.style.opacity=o.toString()},n)}}function q(t,e){return u(t)?Array.from(t.querySelectorAll(e)):[]}function X(t,e){return u(t)?t.matches(e)?t:t.querySelector(e):null}function mt(t,e){t&&document.activeElement!==t&&t.focus(e)}function Y(t,e){if(u(t)){let o=t.getAttribute(e);return isNaN(o)?o==="true"||o==="false"?o==="true":o:+o}}function z(){let t=navigator.userAgent.toLowerCase(),e=/(chrome)[ ]([\w.]+)/.exec(t)||/(webkit)[ ]([\w.]+)/.exec(t)||/(opera)(?:.*version|)[ ]([\w.]+)/.exec(t)||/(msie) ([\w.]+)/.exec(t)||t.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(t)||[];return{browser:e[1]||"",version:e[2]||"0"}}var p=null;function gt(){if(!p){p={};let t=z();t.browser&&(p[t.browser]=!0,p.version=t.version),p.chrome?p.webkit=!0:p.webkit&&(p.safari=!0)}return p}function ht(){return navigator.languages&&navigator.languages.length&&navigator.languages[0]||navigator.language||"en"}function yt(t,e,o){return t&&e?o?t?.style?.getPropertyValue(e):getComputedStyle(t).getPropertyValue(e):null}function bt(t,e,o,n){if(t){let r=getComputedStyle(t),i=document.createElement("div");i.style.position="absolute",i.style.top="0px",i.style.left="0px",i.style.visibility="hidden",i.style.pointerEvents="none",i.style.overflow=r.overflow,i.style.width=r.width,i.style.height=r.height,i.style.padding=r.padding,i.style.border=r.border,i.style.overflowWrap=r.overflowWrap,i.style.whiteSpace=r.whiteSpace,i.style.lineHeight=r.lineHeight,i.innerHTML=e.replace(/\r\n|\r|\n/g,"<br />");let l=document.createElement("span");l.textContent=n,i.appendChild(l);let d=document.createTextNode(o);i.appendChild(d),document.body.appendChild(i);let{offsetLeft:s,offsetTop:a,clientHeight:f}=l;return document.body.removeChild(i),{left:Math.abs(s-t.scrollLeft),top:Math.abs(a-t.scrollTop)+f}}return{top:"auto",left:"auto"}}function h(t,e=""){let o=q(t,`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
2
|
+
[href]:not([tabindex = "-1"]):not([style*="display:none"]):not([hidden])${e},
|
|
3
|
+
input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
4
|
+
select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
5
|
+
textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
6
|
+
[tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
7
|
+
[contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e}`),n=[];for(let r of o)getComputedStyle(r).display!="none"&&getComputedStyle(r).visibility!="hidden"&&n.push(r);return n}function xt(t,e){let o=h(t,e);return o.length>0?o[0]:null}function Et(t){if(t){let e=t.offsetHeight,o=getComputedStyle(t);return e-=parseFloat(o.paddingTop)+parseFloat(o.paddingBottom)+parseFloat(o.borderTopWidth)+parseFloat(o.borderBottomWidth),e}return 0}function Q(t){if(t){let[e,o]=[t.style.visibility,t.style.display];t.style.visibility="hidden",t.style.display="block";let n=t.offsetHeight;return t.style.display=o,t.style.visibility=e,n}return 0}function Z(t){if(t){let[e,o]=[t.style.visibility,t.style.display];t.style.visibility="hidden",t.style.display="block";let n=t.offsetWidth;return t.style.display=o,t.style.visibility=e,n}return 0}function wt(t){if(t){let e=g(t)?.childNodes,o=0;if(e)for(let n=0;n<e.length;n++){if(e[n]===t)return o;e[n].nodeType===1&&o++}}return-1}function St(t){if(t){let e=t.offsetWidth,o=getComputedStyle(t);return e-=parseFloat(o.borderLeft)+parseFloat(o.borderRight),e}return 0}function vt(t,e){let o=h(t,e);return o.length>0?o[o.length-1]:null}function Tt(t,e){let o=t.nextElementSibling;for(;o;){if(o.matches(e))return o;o=o.nextElementSibling}return null}function Ct(t,e,o){let n=h(t,o),r=n.length>0?n.findIndex(l=>l===e):-1,i=r>-1&&n.length>=r+1?r+1:-1;return i>-1?n[i]:null}function G(t){if(t){let e=t.getBoundingClientRect();return{top:e.top+(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0),left:e.left+(window.pageXOffset||b(document.documentElement)||b(document.body)||0)}}return{top:"auto",left:"auto"}}function T(t,e){if(t){let o=t.offsetHeight;if(e){let n=getComputedStyle(t);o+=parseFloat(n.marginTop)+parseFloat(n.marginBottom)}return o}return 0}function P(t,e=[]){let o=g(t);return o===null?e:P(o,e.concat([o]))}function Ht(t,e){let o=t.previousElementSibling;for(;o;){if(o.matches(e))return o;o=o.previousElementSibling}return null}function Lt(t){let e=[];if(t){let o=P(t),n=/(auto|scroll)/,r=i=>{try{let l=window.getComputedStyle(i,null);return n.test(l.getPropertyValue("overflow"))||n.test(l.getPropertyValue("overflowX"))||n.test(l.getPropertyValue("overflowY"))}catch{return!1}};for(let i of o){let l=i.nodeType===1&&i.dataset.scrollselectors;if(l){let d=l.split(",");for(let s of d){let a=X(i,s);a&&r(a)&&e.push(a)}}i.nodeType!==9&&r(i)&&e.push(i)}}return e}function Wt(){if(window.getSelection)return window.getSelection().toString();if(document.getSelection)return document.getSelection().toString()}function Ot(){return navigator.userAgent}function Pt(t){if(t){let e=t.offsetWidth,o=getComputedStyle(t);return e-=parseFloat(o.paddingLeft)+parseFloat(o.paddingRight)+parseFloat(o.borderLeftWidth)+parseFloat(o.borderRightWidth),e}return 0}function At(t){if(t){let e=getComputedStyle(t);return parseFloat(e.getPropertyValue("animation-duration")||"0")>0}return!1}function Mt(t){if(t){let e=getComputedStyle(t);return parseFloat(e.getPropertyValue("transition-duration")||"0")>0}return!1}function Nt(t,e,o){let n=t[e];typeof n=="function"&&n.apply(t,o??[])}function Rt(){return/(android)/i.test(navigator.userAgent)}function J(t,e,o){return u(t)?Y(t,e)===o:!1}function Ft(t,e,o){return!J(t,e,o)}function Bt(t){if(t){let e=t.nodeName,o=t.parentElement&&t.parentElement.nodeName;return e==="INPUT"||e==="TEXTAREA"||e==="BUTTON"||e==="A"||o==="INPUT"||o==="TEXTAREA"||o==="BUTTON"||o==="A"||!!t.closest(".p-button, .p-checkbox, .p-radiobutton")}return!1}function K(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function kt(t,e){if(typeof CSS>"u"||!CSS.supports)return!1;if(e!==void 0){let o=t.toString().replace(/[A-Z]/g,n=>"-"+n.toLowerCase());return CSS.supports(o,e)}return CSS.supports(t.toString())}function $t(t,e=""){return u(t)?t.matches(`button:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
8
|
+
[href][clientHeight][clientWidth]:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
9
|
+
input:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
10
|
+
select:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
11
|
+
textarea:not([tabindex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
12
|
+
[tabIndex]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e},
|
|
13
|
+
[contenteditable]:not([tabIndex = "-1"]):not([disabled]):not([style*="display:none"]):not([hidden])${e}`):!1}function _(t){return!!(t&&t.offsetParent!=null)}function Vt(t){return!_(t)}function It(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window)}function Dt(){return typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function jt(){return!K()}function Ut(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}function qt(t,e){if(t){let o=t.parentElement,n=G(o),r=m(),i=t.offsetParent?t.offsetWidth:Z(t),l=t.offsetParent?t.offsetHeight:Q(t),d=w(o?.children?.[0]),s=T(o?.children?.[0]),a="",f="";n.left+d+i>r.width-W()?n.left<i?e%2===1?a=n.left?"-"+n.left+"px":"100%":e%2===0&&(a=r.width-i-W()+"px"):a="-100%":a="100%",t.getBoundingClientRect().top+s+l>r.height?f=`-${l-s}px`:f="0px",t.style.top=f,t.style.insetInlineStart=a}}function Xt(){return new Promise(t=>{requestAnimationFrame(()=>{requestAnimationFrame(t)})})}function Yt(t){t&&("remove"in Element.prototype?t.remove():t.parentNode?.removeChild(t))}function zt(t,e){let o=v(t);if(o)o.removeChild(e);else throw new Error("Cannot remove "+e+" from "+t)}function Qt(t){if(S(t)){try{t.parentNode?.removeChild(t)}catch{}return null}return t}function Zt(t,e){let o=getComputedStyle(t).getPropertyValue("borderTopWidth"),n=o?parseFloat(o):0,r=getComputedStyle(t).getPropertyValue("paddingTop"),i=r?parseFloat(r):0,l=t.getBoundingClientRect(),s=e.getBoundingClientRect().top+document.body.scrollTop-(l.top+document.body.scrollTop)-n-i,a=t.scrollTop,f=t.clientHeight,c=T(e);s<0?t.scrollTop=a+s:s+c>f&&(t.scrollTop=a+s-f+c)}function Gt(t,e="",o){u(t)&&o!==null&&o!==void 0&&t.setAttribute(e,o)}function Jt(t,e,o=null,n){e&&t?.style?.setProperty(e,o,n)}export{$ as absolutePosition,H as addClass,E as addStyle,lt as alignOverlay,st as appendChild,nt as blockBodyScroll,N as calculateBodyScrollbarWidth,at as calculateScrollbarHeight,W as calculateScrollbarWidth,dt as clearSelection,D as createElement,ft as createStyleAsString,U as createStyleElement,j as createStyleMarkup,ut as createStyleTag,rt as exportCSV,ct as fadeIn,pt as fadeOut,q as find,X as findSingle,mt as focus,Y as getAttribute,gt as getBrowser,ht as getBrowserLanguage,yt as getCSSProperty,y as getCSSVariableByRegex,bt as getCursorOffset,xt as getFirstFocusableElement,h as getFocusableElements,Et as getHeight,x as getHiddenElementDimensions,Q as getHiddenElementOuterHeight,Z as getHiddenElementOuterWidth,wt as getIndex,St as getInnerWidth,vt as getLastFocusableElement,Tt as getNextElementSibling,Ct as getNextFocusableElement,G as getOffset,T as getOuterHeight,w as getOuterWidth,g as getParentNode,P as getParents,Ht as getPreviousElementSibling,b as getScrollLeft,Lt as getScrollableParents,Wt as getSelection,I as getTargetElement,Ot as getUserAgent,m as getViewport,Pt as getWidth,F as getWindowScrollLeft,B as getWindowScrollTop,At as hasCSSAnimation,Mt as hasCSSTransition,M as hasClass,Nt as invokeElementMethod,Rt as isAndroid,J as isAttributeEquals,Ft as isAttributeNotEquals,Bt as isClickable,K as isClient,kt as isCssSupported,u as isElement,S as isExist,$t as isFocusableElement,Vt as isHidden,It as isIOS,Dt as isPrefersReducedMotion,k as isRTL,jt as isServer,Ut as isTouchDevice,_ as isVisible,qt as nestedPosition,Xt as nextFrame,V as relativePosition,Yt as remove,zt as removeChild,L as removeClass,Qt as removeStyleTag,z as resolveUserAgent,R as saveAs,Zt as scrollInView,Gt as setAttribute,O as setAttributes,Jt as setCSSProperty,v as toElement,it as unblockBodyScroll};
|
|
14
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/dom/methods/hasClass.ts","../../src/dom/methods/addClass.ts","../../src/dom/methods/calculateBodyScrollbarWidth.ts","../../src/dom/helpers/blockBodyScroll.ts","../../src/dom/helpers/saveAs.ts","../../src/dom/helpers/exportCSV.ts","../../src/dom/methods/removeClass.ts","../../src/dom/helpers/unblockBodyScroll.ts","../../src/dom/methods/getCSSVariableByRegex.ts","../../src/dom/methods/getHiddenElementDimensions.ts","../../src/dom/methods/getViewport.ts","../../src/dom/methods/getScrollLeft.ts","../../src/dom/methods/getWindowScrollLeft.ts","../../src/dom/methods/getWindowScrollTop.ts","../../src/dom/methods/isRTL.ts","../../src/dom/methods/absolutePosition.ts","../../src/dom/methods/addStyle.ts","../../src/dom/methods/getOuterWidth.ts","../../src/dom/methods/relativePosition.ts","../../src/dom/methods/alignOverlay.ts","../../src/dom/methods/getParentNode.ts","../../src/dom/methods/isExist.ts","../../src/dom/methods/isElement.ts","../../src/dom/methods/toElement.ts","../../src/dom/methods/getTargetElement.ts","../../src/dom/methods/appendChild.ts","../../src/dom/methods/calculateScrollbarHeight.ts","../../src/dom/methods/calculateScrollbarWidth.ts","../../src/dom/methods/clearSelection.ts","../../src/dom/methods/setAttributes.ts","../../src/dom/methods/createElement.ts","../../src/dom/methods/createStyleMarkup.ts","../../src/dom/methods/createStyleAsString.ts","../../src/dom/methods/createStyleElement.ts","../../src/dom/methods/createStyleTag.ts","../../src/dom/methods/fadeIn.ts","../../src/dom/methods/fadeOut.ts","../../src/dom/methods/find.ts","../../src/dom/methods/findSingle.ts","../../src/dom/methods/focus.ts","../../src/dom/methods/getAttribute.ts","../../src/dom/methods/resolveUserAgent.ts","../../src/dom/methods/getBrowser.ts","../../src/dom/methods/getBrowserLanguage.ts","../../src/dom/methods/getCSSProperty.ts","../../src/dom/methods/getCursorOffset.ts","../../src/dom/methods/getFocusableElements.ts","../../src/dom/methods/getFirstFocusableElement.ts","../../src/dom/methods/getHeight.ts","../../src/dom/methods/getHiddenElementOuterHeight.ts","../../src/dom/methods/getHiddenElementOuterWidth.ts","../../src/dom/methods/getIndex.ts","../../src/dom/methods/getInnerWidth.ts","../../src/dom/methods/getLastFocusableElement.ts","../../src/dom/methods/getNextElementSibling.ts","../../src/dom/methods/getNextFocusableElement.ts","../../src/dom/methods/getOffset.ts","../../src/dom/methods/getOuterHeight.ts","../../src/dom/methods/getParents.ts","../../src/dom/methods/getPreviousElementSibling.ts","../../src/dom/methods/getScrollableParents.ts","../../src/dom/methods/getSelection.ts","../../src/dom/methods/getUserAgent.ts","../../src/dom/methods/getWidth.ts","../../src/dom/methods/hasCSSAnimation.ts","../../src/dom/methods/hasCSSTransition.ts","../../src/dom/methods/invokeElementMethod.ts","../../src/dom/methods/isAndroid.ts","../../src/dom/methods/isAttributeEquals.ts","../../src/dom/methods/isAttributeNotEquals.ts","../../src/dom/methods/isClickable.ts","../../src/dom/methods/isClient.ts","../../src/dom/methods/isCssSupported.ts","../../src/dom/methods/isFocusableElement.ts","../../src/dom/methods/isVisible.ts","../../src/dom/methods/isHidden.ts","../../src/dom/methods/isIOS.ts","../../src/dom/methods/isPrefersReducedMotion.ts","../../src/dom/methods/isServer.ts","../../src/dom/methods/isTouchDevice.ts","../../src/dom/methods/nestedPosition.ts","../../src/dom/methods/nextFrame.ts","../../src/dom/methods/remove.ts","../../src/dom/methods/removeChild.ts","../../src/dom/methods/removeStyleTag.ts","../../src/dom/methods/scrollInView.ts","../../src/dom/methods/setAttribute.ts","../../src/dom/methods/setCSSProperty.ts"],"sourcesContent":["export default function hasClass(element: Element, className: string): boolean {\n if (element) {\n if (element.classList) return element.classList.contains(className);\n else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n\n return false;\n}\n","import hasClass from './hasClass';\n\nexport default function addClass(element: Element, className: string | undefined | null | (string | undefined | null)[]): void {\n if (element && className) {\n const fn = (_className: string) => {\n if (!hasClass(element, _className)) {\n if (element.classList) element.classList.add(_className);\n else element.className += ' ' + _className;\n }\n };\n\n [className]\n .flat()\n .filter(Boolean)\n .forEach((_classNames) => (_classNames as string).split(' ').forEach(fn));\n }\n}\n","export default function calculateBodyScrollbarWidth(): number {\n return window.innerWidth - document.documentElement.offsetWidth;\n}\n","import addClass from '../methods/addClass';\nimport calculateBodyScrollbarWidth from '../methods/calculateBodyScrollbarWidth';\n\nexport interface BlockBodyScrollOptions {\n className?: string;\n variableName?: string;\n}\n\nexport default function blockBodyScroll(option: string | BlockBodyScrollOptions | undefined): void {\n if (typeof option === 'string') {\n addClass(document.body, option || 'p-overflow-hidden');\n } else {\n option?.variableName && document.body.style.setProperty(option.variableName, calculateBodyScrollbarWidth() + 'px');\n addClass(document.body, option?.className || 'p-overflow-hidden');\n }\n}\n","export default function saveAs(file: { name: string; src: string }): boolean {\n if (file) {\n const link = document.createElement('a');\n\n if (link.download !== undefined) {\n const { name, src } = file;\n\n link.setAttribute('href', src);\n link.setAttribute('download', name);\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n return true;\n }\n }\n\n return false;\n}\n","import saveAs from './saveAs';\n\nexport default function exportCSV(csv: any, filename: string): void {\n const blob = new Blob([csv], {\n type: 'application/csv;charset=utf-8;'\n });\n\n if ((window.navigator as any).msSaveOrOpenBlob) {\n (navigator as any).msSaveOrOpenBlob(blob, filename + '.csv');\n } else {\n const isDownloaded = saveAs({ name: filename + '.csv', src: URL.createObjectURL(blob) });\n\n if (!isDownloaded) {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n }\n}\n","export default function removeClass(element: Element, className: string | undefined | null | (string | undefined | null)[]): void {\n if (element && className) {\n const fn = (_className: string) => {\n if (element.classList) element.classList.remove(_className);\n else element.className = element.className.replace(new RegExp('(^|\\\\b)' + _className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n };\n\n [className]\n .flat()\n .filter(Boolean)\n .forEach((_classNames) => (_classNames as string).split(' ').forEach(fn));\n }\n}\n","import removeClass from '../methods/removeClass';\n\nexport interface UnblockBodyScrollOptions {\n className?: string;\n variableName?: string;\n}\n\nexport default function unblockBodyScroll(option: string | UnblockBodyScrollOptions | undefined): void {\n if (typeof option === 'string') {\n removeClass(document.body, option || 'p-overflow-hidden');\n } else {\n if (option?.variableName) document.body.style.removeProperty(option.variableName);\n removeClass(document.body, option?.className || 'p-overflow-hidden');\n }\n}\n","export default function getCSSVariableByRegex(variableRegex: RegExp): { name: string | undefined; value: string | undefined } | null {\n for (const sheet of document?.styleSheets) {\n try {\n for (const rule of sheet?.cssRules) {\n for (const property of (rule as CSSStyleRule)?.style) {\n if (variableRegex.test(property)) {\n return { name: property, value: (rule as CSSStyleRule).style.getPropertyValue(property).trim() };\n }\n }\n }\n } catch {}\n }\n\n return null;\n}\n","export default function getHiddenElementDimensions(element?: HTMLElement): { width: number; height: number } {\n const dimensions: { width: number; height: number } = { width: 0, height: 0 };\n\n if (element) {\n const [visibility, display] = [element.style.visibility, element.style.display];\n const rect = element.getBoundingClientRect();\n\n // Temporarily hide the element to get its dimensions\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = rect.width || element.offsetWidth;\n dimensions.height = rect.height || element.offsetHeight;\n element.style.display = display;\n element.style.visibility = visibility;\n }\n\n return dimensions;\n}\n","export default function getViewport(): { width: number; height: number } {\n const win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n\n return { width: w, height: h };\n}\n","export default function getScrollLeft(element?: HTMLElement): number {\n // for RTL scrollLeft should be negative\n return element ? Math.abs(element.scrollLeft) : 0;\n}\n","import getScrollLeft from './getScrollLeft';\n\nexport default function getWindowScrollLeft(): number {\n const doc = document.documentElement;\n\n return (window.pageXOffset || getScrollLeft(doc)) - (doc.clientLeft || 0);\n}\n","export default function getWindowScrollTop(): number {\n const doc = document.documentElement;\n\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n}\n","export default function isRTL(element?: HTMLElement): boolean {\n return element ? getComputedStyle(element).direction === 'rtl' : false;\n}\n","import getCSSVariableByRegex from './getCSSVariableByRegex';\nimport getHiddenElementDimensions from './getHiddenElementDimensions';\nimport getViewport from './getViewport';\nimport getWindowScrollLeft from './getWindowScrollLeft';\nimport getWindowScrollTop from './getWindowScrollTop';\nimport isRTL from './isRTL';\n\nexport default function absolutePosition(element: HTMLElement, target: HTMLElement, gutter: boolean = true): void {\n if (element) {\n const elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : getHiddenElementDimensions(element);\n const elementOuterHeight = elementDimensions.height;\n const elementOuterWidth = elementDimensions.width;\n const targetOuterHeight = target.offsetHeight;\n const targetOuterWidth = target.offsetWidth;\n const targetOffset = target.getBoundingClientRect();\n const windowScrollTop = getWindowScrollTop();\n const windowScrollLeft = getWindowScrollLeft();\n const viewport = getViewport();\n let top,\n left,\n origin = 'top';\n\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n origin = 'bottom';\n\n if (top < 0) {\n top = windowScrollTop;\n }\n } else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n }\n\n if (targetOffset.left + elementOuterWidth > viewport.width) left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);\n else left = targetOffset.left + windowScrollLeft;\n\n if (isRTL(element)) {\n element.style.insetInlineEnd = left + 'px';\n } else {\n element.style.insetInlineStart = left + 'px';\n }\n\n element.style.top = top + 'px';\n element.style.transformOrigin = origin;\n if (gutter) element.style.marginTop = origin === 'bottom' ? `calc(${getCSSVariableByRegex(/-anchor-gutter$/)?.value ?? '2px'} * -1)` : (getCSSVariableByRegex(/-anchor-gutter$/)?.value ?? '');\n }\n}\n","export default function addStyle(element: HTMLElement, style: string | object): void {\n if (element) {\n if (typeof style === 'string') {\n element.style.cssText = style;\n } else {\n Object.entries(style || {}).forEach(([key, value]: [string, string]) => ((element.style as any)[key] = value));\n }\n }\n}\n","export default function getOuterWidth(element: unknown, margin?: boolean): number {\n if (element instanceof HTMLElement) {\n let width = element.offsetWidth;\n\n if (margin) {\n const style = getComputedStyle(element);\n\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n return width;\n }\n\n return 0;\n}\n","import getCSSVariableByRegex from './getCSSVariableByRegex';\nimport getHiddenElementDimensions from './getHiddenElementDimensions';\nimport getViewport from './getViewport';\n\nexport default function relativePosition(element: HTMLElement, target: HTMLElement, gutter: boolean = true, fixedOrigin: 'top' | 'bottom' | undefined = undefined): void {\n if (element) {\n const elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : getHiddenElementDimensions(element);\n const targetHeight = target.offsetHeight;\n const targetOffset = target.getBoundingClientRect();\n const viewport = getViewport();\n let top,\n left,\n origin = fixedOrigin ?? 'top';\n\n if (!fixedOrigin && targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n top = -1 * elementDimensions.height;\n origin = 'bottom';\n\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n } else {\n top = targetHeight;\n }\n\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = targetOffset.left * -1;\n } else if (targetOffset.left + elementDimensions.width > viewport.width) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n } else {\n // element fits on screen (align with target)\n left = 0;\n }\n\n element.style.top = top + 'px';\n element.style.insetInlineStart = left + 'px';\n element.style.transformOrigin = origin;\n\n if (gutter) {\n const gutterValue = getCSSVariableByRegex(/-anchor-gutter$/)?.value;\n\n element.style.marginTop = origin === 'bottom' ? `calc(${gutterValue ?? '2px'} * -1)` : (gutterValue ?? '');\n }\n }\n}\n","import absolutePosition from './absolutePosition';\nimport getOuterWidth from './getOuterWidth';\nimport relativePosition from './relativePosition';\n\nexport default function alignOverlay(overlay: HTMLElement, target: HTMLElement, appendTo: string, calculateMinWidth: boolean = true) {\n if (overlay && target) {\n if (appendTo === 'self') {\n relativePosition(overlay, target);\n } else {\n if (calculateMinWidth) overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(overlay, target);\n }\n }\n}\n","export default function getParentNode(element: Node): ParentNode | null {\n if (element) {\n let parent = element.parentNode;\n\n if (parent && parent instanceof ShadowRoot && parent.host) {\n parent = parent.host;\n }\n\n return parent;\n }\n\n return null;\n}\n","import getParentNode from './getParentNode';\n\nexport default function isExist(element: Node): boolean {\n return !!(element !== null && typeof element !== 'undefined' && element.nodeName && getParentNode(element));\n}\n","export default function isElement(element: unknown): element is Element {\n return typeof Element !== 'undefined' ? element instanceof Element : element !== null && typeof element === 'object' && (element as Element).nodeType === 1 && typeof (element as Element).nodeName === 'string';\n}\n","import isElement from './isElement';\n\ntype ReactElement = { current: Element | null | undefined };\ntype VueElement = { el: Element | null | undefined };\ntype AngularElement = { el: { nativeElement: Element | undefined } };\n\nexport default function toElement(element: unknown): Element | null | undefined {\n let target = element;\n\n if (element && typeof element === 'object') {\n if (Object.hasOwn(element, 'current')) {\n // For React\n target = (element as ReactElement).current;\n } else if (Object.hasOwn(element, 'el')) {\n if (Object.hasOwn((element as AngularElement).el, 'nativeElement')) {\n // For Angular\n target = (element as AngularElement).el.nativeElement;\n } else {\n // For Vue\n target = (element as VueElement).el;\n }\n }\n }\n\n return isElement(target) ? target : undefined;\n}\n","import isExist from './isExist';\nimport toElement from './toElement';\n\nexport default function getTargetElement(target: unknown, currentElement?: Element): Window | Document | Element | null | undefined {\n if (!target) return undefined;\n\n switch (target) {\n case 'document':\n return document;\n case 'window':\n return window;\n case 'body':\n return document.body;\n case '@next':\n return currentElement?.nextElementSibling;\n case '@prev':\n return currentElement?.previousElementSibling;\n case '@first':\n return currentElement?.firstElementChild;\n case '@last':\n return currentElement?.lastElementChild;\n case '@child':\n return currentElement?.children?.[0];\n case '@parent':\n return currentElement?.parentElement;\n case '@grandparent':\n return currentElement?.parentElement?.parentElement;\n\n default: {\n if (typeof target === 'string') {\n // child selector\n const match = target.match(/^@child\\[(\\d+)]/);\n\n if (match) {\n return currentElement?.children?.[parseInt(match[1], 10)] || null;\n }\n\n return document.querySelector(target) || null;\n }\n\n const isFunction = (value: unknown): value is (...args: unknown[]) => unknown => typeof value === 'function' && 'call' in value && 'apply' in value;\n const computedTarget = isFunction(target) ? target() : target;\n const element = toElement(computedTarget);\n\n return isExist(element as Element) ? (element as Element) : (computedTarget as Document)?.nodeType === 9 ? (computedTarget as Document) : undefined;\n }\n }\n}\n","import getTargetElement from './getTargetElement';\n\nexport default function appendChild(element: unknown, child: Node | Element) {\n const target: Document | Element | null | undefined = getTargetElement(element, child as Element) as Exclude<ReturnType<typeof getTargetElement>, Window>;\n\n if (target) target.appendChild(child);\n else throw new Error('Cannot append ' + child + ' to ' + element);\n}\n","import addStyle from './addStyle';\n\nlet calculatedScrollbarHeight: number | undefined = undefined;\n\nexport default function calculateScrollbarHeight(element?: HTMLElement): number {\n if (element) {\n const style = getComputedStyle(element);\n\n return element.offsetHeight - element.clientHeight - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth);\n } else {\n if (calculatedScrollbarHeight != null) return calculatedScrollbarHeight;\n\n const scrollDiv = document.createElement('div');\n\n addStyle(scrollDiv, {\n width: '100px',\n height: '100px',\n overflow: 'scroll',\n position: 'absolute',\n top: '-9999px'\n });\n document.body.appendChild(scrollDiv);\n\n const scrollbarHeight = scrollDiv.offsetHeight - scrollDiv.clientHeight;\n\n document.body.removeChild(scrollDiv);\n\n calculatedScrollbarHeight = scrollbarHeight;\n\n return scrollbarHeight;\n }\n}\n","import addStyle from './addStyle';\n\nlet calculatedScrollbarWidth: number | undefined = undefined;\n\nexport default function calculateScrollbarWidth(element?: HTMLElement): number {\n if (element) {\n const style = getComputedStyle(element);\n\n return element.offsetWidth - element.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth);\n } else {\n if (calculatedScrollbarWidth != null) return calculatedScrollbarWidth;\n\n const scrollDiv = document.createElement('div');\n\n addStyle(scrollDiv, {\n width: '100px',\n height: '100px',\n overflow: 'scroll',\n position: 'absolute',\n top: '-9999px'\n });\n document.body.appendChild(scrollDiv);\n\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\n document.body.removeChild(scrollDiv);\n\n calculatedScrollbarWidth = scrollbarWidth;\n\n return scrollbarWidth;\n }\n}\n","export default function clearSelection(): void {\n if (window.getSelection) {\n const selection: any = window.getSelection() || {};\n\n if (selection.empty) {\n selection.empty();\n } else if (selection.removeAllRanges && selection.rangeCount > 0 && selection.getRangeAt(0).getClientRects().length > 0) {\n selection.removeAllRanges();\n }\n }\n}\n","import isElement from './isElement';\n\nexport default function setAttributes(element: HTMLElement, attributes: { [key: string]: any } = {}): void {\n if (isElement(element)) {\n const computedStyles = (rule: string, value: any): string[] => {\n const styles = (element as any)?.$attrs?.[rule] ? [(element as any)?.$attrs?.[rule]] : [];\n\n return [value].flat().reduce((cv, v) => {\n if (v !== null && v !== undefined) {\n const type = typeof v;\n\n if (type === 'string' || type === 'number') {\n cv.push(v);\n } else if (type === 'object') {\n const _cv = Array.isArray(v) ? computedStyles(rule, v) : Object.entries(v).map(([_k, _v]) => (rule === 'style' && (!!_v || _v === 0) ? `${_k.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()}:${_v}` : _v ? _k : undefined));\n\n cv = _cv.length ? cv.concat(_cv.filter((c) => !!c)) : cv;\n }\n }\n\n return cv;\n }, styles);\n };\n\n Object.entries(attributes).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n const matchedEvent = key.match(/^on(.+)/);\n\n if (matchedEvent) {\n element.addEventListener(matchedEvent[1].toLowerCase(), value);\n } else if (key === 'p-bind' || key === 'pBind') {\n setAttributes(element, value);\n } else {\n value = key === 'class' ? [...new Set(computedStyles('class', value))].join(' ').trim() : key === 'style' ? computedStyles('style', value).join(';').trim() : value;\n ((element as any).$attrs = (element as any).$attrs || {}) && ((element as any).$attrs[key] = value);\n element.setAttribute(key, value);\n }\n }\n });\n }\n}\n","import setAttributes from './setAttributes';\n\nexport default function createElement(type: string, attributes: Record<string, unknown> = {}, ...children: (string | Node)[]): HTMLElement | undefined {\n if (type) {\n const element = document.createElement(type);\n\n setAttributes(element, attributes);\n element.append(...children);\n\n return element;\n }\n\n return undefined;\n}\n","export default function createStyleMarkup(css?: string, attributes: Record<string, unknown> = {}): string {\n return css ? `<style${Object.entries(attributes).reduce((s, [k, v]) => s + ` ${k}=\"${v}\"`, '')}>${css}</style>` : '';\n}\n","import createStyleMarkup from './createStyleMarkup';\n\n/**\n * @deprecated Use `createStyleMarkup` instead.\n */\nexport default function createStyleAsString(css?: string, options: Record<string, unknown> = {}) {\n return createStyleMarkup(css, options);\n}\n","import createElement from './createElement';\n\nexport default function createStyleElement(css: string, attributes: Record<string, unknown> = {}, container?: Element): HTMLStyleElement {\n const element = createElement('style', attributes, css)! as HTMLStyleElement;\n\n container?.appendChild(element);\n\n return element;\n}\n","import createStyleElement from './createStyleElement';\n\n/**\n * @deprecated Use `createStyleElement` instead.\n */\nexport default function createStyleTag(attributes: Record<string, unknown> = {}, container?: Element): HTMLStyleElement {\n return createStyleElement('', attributes, container || document.head);\n}\n","export default function fadeIn(element: HTMLElement, duration: number): void {\n if (element) {\n element.style.opacity = '0';\n\n let last = +new Date();\n let opacity = '0';\n\n const tick = function () {\n opacity = `${+element.style.opacity + (new Date().getTime() - last) / duration}`;\n element.style.opacity = opacity;\n last = +new Date();\n\n if (+opacity < 1) {\n if ('requestAnimationFrame' in window) requestAnimationFrame(tick);\n else setTimeout(tick, 16);\n }\n };\n\n tick();\n }\n}\n","export default function fadeOut(element: HTMLElement, duration: number): void {\n if (element) {\n let opacity = 1;\n const interval = 50;\n const gap = interval / duration;\n\n const fading = setInterval(() => {\n opacity -= gap;\n\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n\n element.style.opacity = opacity.toString();\n }, interval);\n }\n}\n","import isElement from './isElement';\n\nexport default function find(element: Element, selector: string): Element[] {\n return isElement(element) ? Array.from(element.querySelectorAll(selector)) : [];\n}\n","import isElement from './isElement';\n\nexport default function findSingle(element: Element, selector: string): Element | null {\n return isElement(element) ? (element.matches(selector) ? element : element.querySelector(selector)) : null;\n}\n","export default function focus(element: HTMLElement, options?: FocusOptions): void {\n if (element && document.activeElement !== element) element.focus(options);\n}\n","import isElement from './isElement';\n\nexport default function getAttribute(element: Element, name: string): any {\n if (isElement(element)) {\n const value = element.getAttribute(name);\n\n if (!isNaN(value as any)) {\n return +(value as string);\n }\n\n if (value === 'true' || value === 'false') {\n return value === 'true';\n }\n\n return value;\n }\n\n return undefined;\n}\n","export default function resolveUserAgent(): { browser: string | undefined; version: string | undefined } {\n const ua = navigator.userAgent.toLowerCase();\n const match = /(chrome)[ ]([\\w.]+)/.exec(ua) || /(webkit)[ ]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ ]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || (ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua)) || [];\n\n return {\n browser: match[1] || '',\n version: match[2] || '0'\n };\n}\n","import resolveUserAgent from './resolveUserAgent';\n\ntype BrowserType = {\n [key: string]: string | boolean | undefined;\n};\n\nlet browser: BrowserType | null = null;\n\nexport default function getBrowser(): BrowserType {\n if (!browser) {\n browser = {};\n\n const matched = resolveUserAgent();\n\n if (matched.browser) {\n browser[matched.browser] = true;\n browser['version'] = matched.version;\n }\n\n if (browser['chrome']) {\n browser['webkit'] = true;\n } else if (browser['webkit']) {\n browser['safari'] = true;\n }\n }\n\n return browser;\n}\n","export default function getBrowserLanguage(): string {\n return (navigator.languages && navigator.languages.length && navigator.languages[0]) || navigator.language || 'en';\n}\n","export default function getCSSProperty(element?: HTMLElement, property?: string, inline?: boolean): string | null {\n if (element && property) {\n return inline ? element?.style?.getPropertyValue(property) : getComputedStyle(element).getPropertyValue(property);\n }\n\n return null;\n}\n","export default function getCursorOffset(element: Element, prevText: string, nextText: string, currentText: string): { top: number | string; left: number | string } {\n if (element) {\n const style = getComputedStyle(element);\n const ghostDiv = document.createElement('div');\n\n ghostDiv.style.position = 'absolute';\n ghostDiv.style.top = '0px';\n ghostDiv.style.left = '0px';\n ghostDiv.style.visibility = 'hidden';\n ghostDiv.style.pointerEvents = 'none';\n ghostDiv.style.overflow = style.overflow;\n ghostDiv.style.width = style.width;\n ghostDiv.style.height = style.height;\n ghostDiv.style.padding = style.padding;\n ghostDiv.style.border = style.border;\n ghostDiv.style.overflowWrap = style.overflowWrap;\n ghostDiv.style.whiteSpace = style.whiteSpace;\n ghostDiv.style.lineHeight = style.lineHeight;\n ghostDiv.innerHTML = prevText.replace(/\\r\\n|\\r|\\n/g, '<br />');\n\n const ghostSpan = document.createElement('span');\n\n ghostSpan.textContent = currentText;\n ghostDiv.appendChild(ghostSpan);\n\n const text = document.createTextNode(nextText);\n\n ghostDiv.appendChild(text);\n document.body.appendChild(ghostDiv);\n\n const { offsetLeft, offsetTop, clientHeight } = ghostSpan;\n\n document.body.removeChild(ghostDiv);\n\n return {\n left: Math.abs(offsetLeft - element.scrollLeft),\n top: Math.abs(offsetTop - element.scrollTop) + clientHeight\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n}\n","import find from './find';\n\nexport default function getFocusableElements(element: Element, selector: string = ''): Element[] {\n const focusableElements = find(\n element,\n `button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [href]:not([tabindex = \"-1\"]):not([style*=\"display:none\"]):not([hidden])${selector},\n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector}`\n );\n\n const visibleFocusableElements: Element[] = [];\n\n for (const focusableElement of focusableElements) {\n if (getComputedStyle(focusableElement).display != 'none' && getComputedStyle(focusableElement).visibility != 'hidden') visibleFocusableElements.push(focusableElement);\n }\n\n return visibleFocusableElements;\n}\n","import getFocusableElements from './getFocusableElements';\n\nexport default function getFirstFocusableElement(element: Element, selector?: string): Element | null {\n const focusableElements = getFocusableElements(element, selector);\n\n return focusableElements.length > 0 ? focusableElements[0] : null;\n}\n","export default function getHeight(element: HTMLElement): number {\n if (element) {\n let height = element.offsetHeight;\n const style = getComputedStyle(element);\n\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\n return height;\n }\n\n return 0;\n}\n","export default function getHiddenElementOuterHeight(element: HTMLElement): number {\n if (element) {\n const [visibility, display] = [element.style.visibility, element.style.display];\n\n // Temporarily hide the element to get its outer height\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n const elementHeight = element.offsetHeight;\n\n element.style.display = display;\n element.style.visibility = visibility;\n\n return elementHeight;\n }\n\n return 0;\n}\n","export default function getHiddenElementOuterWidth(element: HTMLElement): number {\n if (element) {\n const [visibility, display] = [element.style.visibility, element.style.display];\n\n // Temporarily hide the element to get its outer width\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n const elementWidth = element.offsetWidth;\n\n element.style.display = display;\n element.style.visibility = visibility;\n\n return elementWidth;\n }\n\n return 0;\n}\n","import getParentNode from './getParentNode';\n\nexport default function getIndex(element: HTMLElement): number {\n if (element) {\n const children = getParentNode(element)?.childNodes;\n let num = 0;\n\n if (children) {\n for (let i = 0; i < children.length; i++) {\n if (children[i] === element) return num;\n if (children[i].nodeType === 1) num++;\n }\n }\n }\n\n return -1;\n}\n","export default function getInnerWidth(element: HTMLElement): number {\n if (element) {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n\n width -= parseFloat(style.borderLeft) + parseFloat(style.borderRight);\n\n return width;\n }\n\n return 0;\n}\n","import getFocusableElements from './getFocusableElements';\n\nexport default function getLastFocusableElement(element: Element, selector?: string): Element | null {\n const focusableElements = getFocusableElements(element, selector);\n\n return focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;\n}\n","export default function getNextElementSibling(element: Element, selector: string): Element | null {\n let nextElement = element.nextElementSibling;\n\n while (nextElement) {\n if (nextElement.matches(selector)) {\n return nextElement;\n } else {\n nextElement = nextElement.nextElementSibling;\n }\n }\n\n return null;\n}\n","import getFocusableElements from './getFocusableElements';\n\nexport default function getNextFocusableElement(container: Element, element: Element, selector?: string): Element | null {\n const focusableElements: Element[] = getFocusableElements(container, selector);\n const index = focusableElements.length > 0 ? focusableElements.findIndex((el) => el === element) : -1;\n const nextIndex = index > -1 && focusableElements.length >= index + 1 ? index + 1 : -1;\n\n return nextIndex > -1 ? focusableElements[nextIndex] : null;\n}\n","import getScrollLeft from './getScrollLeft';\n\nexport default function getOffset(element?: Element | null): { top: number | string; left: number | string } {\n if (element) {\n const rect = element.getBoundingClientRect();\n\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n left: rect.left + (window.pageXOffset || getScrollLeft(document.documentElement) || getScrollLeft(document.body) || 0)\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n}\n","export default function getOuterHeight(element: HTMLElement, margin?: boolean): number {\n if (element) {\n let height = element.offsetHeight;\n\n if (margin) {\n const style = getComputedStyle(element);\n\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n}\n","import getParentNode from './getParentNode';\n\nexport default function getParents(element: Node, parents: ParentNode[] = []): ParentNode[] {\n const parent = getParentNode(element);\n\n return parent === null ? parents : getParents(parent, parents.concat([parent]));\n}\n","export default function getPreviousElementSibling(element: Element, selector: string): Element | null {\n let previousElement = element.previousElementSibling;\n\n while (previousElement) {\n if (previousElement.matches(selector)) {\n return previousElement;\n } else {\n previousElement = previousElement.previousElementSibling;\n }\n }\n\n return null;\n}\n","import findSingle from './findSingle';\nimport getParents from './getParents';\n\nexport default function getScrollableParents(element: Element): Element[] {\n const scrollableParents = [];\n\n if (element) {\n const parents = getParents(element) as HTMLElement[];\n const overflowRegex = /(auto|scroll)/;\n\n const overflowCheck = (node: Element) => {\n try {\n const styleDeclaration = window['getComputedStyle'](node, null);\n\n return overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'));\n } catch {\n return false;\n }\n };\n\n for (const parent of parents) {\n const scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n\n if (scrollSelectors) {\n const selectors = scrollSelectors.split(',');\n\n for (const selector of selectors) {\n const el = findSingle(parent, selector);\n\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n }\n\n if (parent.nodeType !== 9 && overflowCheck(parent)) {\n scrollableParents.push(parent);\n }\n }\n }\n\n return scrollableParents;\n}\n","export default function getSelection(): string | undefined {\n if (window.getSelection) return (window.getSelection() as any).toString();\n else if (document.getSelection) return (document.getSelection() as any).toString();\n\n return undefined;\n}\n","export default function getUserAgent(): string {\n return navigator.userAgent;\n}\n","export default function getWidth(element: HTMLElement): number {\n if (element) {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n\n return width;\n }\n\n return 0;\n}\n","export default function hasCSSAnimation(element: Element): boolean {\n if (element) {\n const style = getComputedStyle(element);\n const animationDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n\n return animationDuration > 0;\n }\n\n return false;\n}\n","export default function hasCSSTransition(element: Element): boolean {\n if (element) {\n const style = getComputedStyle(element);\n const transitionDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n\n return transitionDuration > 0;\n }\n\n return false;\n}\n","export default function invokeElementMethod<T extends keyof Element>(element: Element, methodName: T, args?: unknown[]): void {\n const method = element[methodName];\n\n if (typeof method === 'function') {\n (method as (...args: unknown[]) => void).apply(element, args ?? []);\n }\n}\n","export default function isAndroid(): boolean {\n return /(android)/i.test(navigator.userAgent);\n}\n","import getAttribute from './getAttribute';\nimport isElement from './isElement';\n\nexport default function isAttributeEquals(element: Element, name: string, value: any): boolean {\n return isElement(element) ? getAttribute(element, name) === value : false;\n}\n","import isAttributeEquals from './isAttributeEquals';\n\nexport default function isAttributeNotEquals(element: Element, name: string, value: any): boolean {\n return !isAttributeEquals(element, name, value);\n}\n","export default function isClickable(element: Element): boolean {\n if (element) {\n const targetNode = element.nodeName;\n const parentNode = element.parentElement && element.parentElement.nodeName;\n\n return (\n targetNode === 'INPUT' ||\n targetNode === 'TEXTAREA' ||\n targetNode === 'BUTTON' ||\n targetNode === 'A' ||\n parentNode === 'INPUT' ||\n parentNode === 'TEXTAREA' ||\n parentNode === 'BUTTON' ||\n parentNode === 'A' ||\n !!element.closest('.p-button, .p-checkbox, .p-radiobutton') // @todo Add [data-pc-section=\"button\"]\n );\n }\n\n return false;\n}\n","export default function isClient(): boolean {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\n","/**\n * Checks if a given CSS property-value pair is supported by the browser.\n *\n * @param property - CSS property string\n * @param value - CSS value string\n * @returns True if supported, false otherwise\n */\nexport function isCssSupported(property: keyof CSSStyleDeclaration | string, value: string): boolean;\n\n/**\n * Checks if a given CSS condition is supported by the browser.\n *\n * @param condition - CSS condition string\n * @returns True if supported, false otherwise\n */\nexport function isCssSupported(condition: string): boolean;\n\n/**\n * Checks if a given CSS property-value pair or condition is supported by the browser.\n *\n * @param input - CSS property or condition\n * @param value - CSS value (optional)\n * @returns True if supported, false otherwise\n */\nexport default function isCssSupported(input: keyof CSSStyleDeclaration | string, value?: string): boolean {\n if (typeof CSS === 'undefined' || !CSS.supports) {\n return false;\n }\n\n if (value !== undefined) {\n const prop = input.toString().replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());\n\n return CSS.supports(prop, value);\n }\n\n return CSS.supports(input.toString());\n}\n","import isElement from './isElement';\n\nexport default function isFocusableElement(element: unknown, selector: string = ''): boolean {\n return isElement(element)\n ? (element as Element).matches(`button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [href][clientHeight][clientWidth]:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector}`)\n : false;\n}\n","export default function isVisible(element?: HTMLElement): boolean {\n return !!(element && element.offsetParent != null);\n}\n","import isVisible from './isVisible';\n\nexport default function isHidden(element: HTMLElement): boolean {\n return !isVisible(element);\n}\n","export default function isIOS(): boolean {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n}\n","export default function isPrefersReducedMotion(): boolean {\n if (typeof window === 'undefined' || !window.matchMedia) {\n return false;\n }\n\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n\n return mediaQuery.matches;\n}\n","import isClient from './isClient';\n\nexport default function isServer(): boolean {\n return !isClient();\n}\n","export default function isTouchDevice(): boolean {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || (navigator as Partial<Navigator & { msMaxTouchPoints?: number }>).msMaxTouchPoints! > 0;\n}\n","import calculateScrollbarWidth from './calculateScrollbarWidth';\nimport getHiddenElementOuterHeight from './getHiddenElementOuterHeight';\nimport getHiddenElementOuterWidth from './getHiddenElementOuterWidth';\nimport getOffset from './getOffset';\nimport getOuterHeight from './getOuterHeight';\nimport getOuterWidth from './getOuterWidth';\nimport getViewport from './getViewport';\n\nexport default function nestedPosition(element: HTMLElement, level: number): void {\n if (element) {\n const parentItem = element.parentElement;\n const elementOffset = getOffset(parentItem);\n const viewport = getViewport();\n const sublistWidth = element.offsetParent ? element.offsetWidth : getHiddenElementOuterWidth(element);\n const sublistHeight = element.offsetParent ? element.offsetHeight : getHiddenElementOuterHeight(element);\n const itemOuterWidth = getOuterWidth(parentItem?.children?.[0]);\n const itemOuterHeight = getOuterHeight(parentItem?.children?.[0] as HTMLElement);\n\n let left: string = '';\n let top: string = '';\n\n if ((elementOffset.left as number) + itemOuterWidth + sublistWidth > viewport.width - calculateScrollbarWidth()) {\n if ((elementOffset.left as number) < sublistWidth) {\n // for too small screens\n if (level % 2 === 1) {\n left = (elementOffset.left as number) ? '-' + (elementOffset.left as number) + 'px' : '100%';\n } else if (level % 2 === 0) {\n left = viewport.width - sublistWidth - calculateScrollbarWidth() + 'px';\n }\n } else {\n left = '-100%';\n }\n } else {\n left = '100%';\n }\n\n // getBoundingClientRect returns a top position from the current visible viewport area\n if (element.getBoundingClientRect().top + itemOuterHeight + sublistHeight > viewport.height) {\n top = `-${sublistHeight - itemOuterHeight}px`;\n } else {\n top = '0px';\n }\n\n element.style.top = top;\n element.style.insetInlineStart = left;\n }\n}\n","export default function nextFrame(): Promise<void> {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(resolve as () => void);\n });\n });\n}\n","export default function remove(element: Element) {\n if (element) {\n if (!('remove' in Element.prototype)) element.parentNode?.removeChild(element);\n else element.remove();\n }\n}\n","import toElement from './toElement';\n\nexport default function removeChild(element: unknown, child: Node) {\n const target = toElement(element);\n\n if (target) target.removeChild(child);\n else throw new Error('Cannot remove ' + child + ' from ' + element);\n}\n","import isExist from './isExist';\n\nexport default function removeStyleTag(element: Node): Node | null {\n if (isExist(element)) {\n try {\n element.parentNode?.removeChild(element);\n } catch {\n // style element may have already been removed in a fast refresh\n }\n\n return null;\n }\n\n return element;\n}\n","import getOuterHeight from './getOuterHeight';\n\nexport default function scrollInView(container: HTMLElement, item: HTMLElement): void {\n const borderTopValue = getComputedStyle(container).getPropertyValue('borderTopWidth');\n const borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n const paddingTopValue = getComputedStyle(container).getPropertyValue('paddingTop');\n const paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n const containerRect = container.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n const offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n const scroll = container.scrollTop;\n const elementHeight = container.clientHeight;\n const itemHeight = getOuterHeight(item);\n\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n } else if (offset + itemHeight > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n}\n","import isElement from './isElement';\n\nexport default function setAttribute(element: HTMLElement, attribute: string = '', value: any): void {\n if (isElement(element) && value !== null && value !== undefined) {\n element.setAttribute(attribute, value);\n }\n}\n","export default function setCSSProperty(element?: HTMLElement, property?: string, value: any = null, priority?: string): void {\n property && element?.style?.setProperty(property, value, priority);\n}\n"],"mappings":"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","names":["hasClass","element","className","addClass","element","className","fn","_className","hasClass","_classNames","calculateBodyScrollbarWidth","blockBodyScroll","option","addClass","calculateBodyScrollbarWidth","saveAs","file","link","name","src","exportCSV","csv","filename","blob","saveAs","removeClass","element","className","fn","_className","_classNames","unblockBodyScroll","option","removeClass","getCSSVariableByRegex","variableRegex","sheet","rule","property","getHiddenElementDimensions","element","dimensions","visibility","display","rect","getViewport","win","d","e","g","w","h","getScrollLeft","element","getWindowScrollLeft","doc","getScrollLeft","getWindowScrollTop","doc","isRTL","element","absolutePosition","element","target","gutter","elementDimensions","getHiddenElementDimensions","elementOuterHeight","elementOuterWidth","targetOuterHeight","targetOuterWidth","targetOffset","windowScrollTop","getWindowScrollTop","windowScrollLeft","getWindowScrollLeft","viewport","getViewport","top","left","origin","isRTL","getCSSVariableByRegex","addStyle","element","style","key","value","getOuterWidth","element","margin","width","style","relativePosition","element","target","gutter","fixedOrigin","elementDimensions","getHiddenElementDimensions","targetHeight","targetOffset","viewport","getViewport","top","left","origin","gutterValue","getCSSVariableByRegex","alignOverlay","overlay","target","appendTo","calculateMinWidth","relativePosition","getOuterWidth","absolutePosition","getParentNode","element","parent","isExist","element","getParentNode","isElement","element","toElement","element","target","isElement","getTargetElement","target","currentElement","match","computedTarget","value","element","toElement","isExist","appendChild","element","child","target","getTargetElement","calculatedScrollbarHeight","calculateScrollbarHeight","element","style","scrollDiv","addStyle","scrollbarHeight","calculatedScrollbarWidth","calculateScrollbarWidth","element","style","scrollDiv","addStyle","scrollbarWidth","clearSelection","selection","setAttributes","element","attributes","isElement","computedStyles","rule","value","styles","cv","v","type","_cv","_k","_v","c","key","matchedEvent","createElement","type","attributes","children","element","setAttributes","createStyleMarkup","css","attributes","s","k","v","createStyleAsString","css","options","createStyleMarkup","createStyleElement","css","attributes","container","element","createElement","createStyleTag","attributes","container","createStyleElement","fadeIn","element","duration","last","opacity","tick","fadeOut","element","duration","opacity","interval","gap","fading","find","element","selector","isElement","findSingle","element","selector","isElement","focus","element","options","getAttribute","element","name","isElement","value","resolveUserAgent","ua","match","browser","getBrowser","matched","resolveUserAgent","getBrowserLanguage","getCSSProperty","element","property","inline","getCursorOffset","element","prevText","nextText","currentText","style","ghostDiv","ghostSpan","text","offsetLeft","offsetTop","clientHeight","getFocusableElements","element","selector","focusableElements","find","visibleFocusableElements","focusableElement","getFirstFocusableElement","element","selector","focusableElements","getFocusableElements","getHeight","element","height","style","getHiddenElementOuterHeight","element","visibility","display","elementHeight","getHiddenElementOuterWidth","element","visibility","display","elementWidth","getIndex","element","children","getParentNode","num","i","getInnerWidth","element","width","style","getLastFocusableElement","element","selector","focusableElements","getFocusableElements","getNextElementSibling","element","selector","nextElement","getNextFocusableElement","container","element","selector","focusableElements","getFocusableElements","index","el","nextIndex","getOffset","element","rect","getScrollLeft","getOuterHeight","element","margin","height","style","getParents","element","parents","parent","getParentNode","getPreviousElementSibling","element","selector","previousElement","getScrollableParents","element","scrollableParents","parents","getParents","overflowRegex","overflowCheck","node","styleDeclaration","parent","scrollSelectors","selectors","selector","el","findSingle","getSelection","getUserAgent","getWidth","element","width","style","hasCSSAnimation","element","style","hasCSSTransition","element","style","invokeElementMethod","element","methodName","args","method","isAndroid","isAttributeEquals","element","name","value","isElement","getAttribute","isAttributeNotEquals","element","name","value","isAttributeEquals","isClickable","element","targetNode","parentNode","isClient","isCssSupported","input","value","prop","m","isFocusableElement","element","selector","isElement","isVisible","element","isHidden","element","isVisible","isIOS","isPrefersReducedMotion","isServer","isClient","isTouchDevice","nestedPosition","element","level","parentItem","elementOffset","getOffset","viewport","getViewport","sublistWidth","getHiddenElementOuterWidth","sublistHeight","getHiddenElementOuterHeight","itemOuterWidth","getOuterWidth","itemOuterHeight","getOuterHeight","left","top","calculateScrollbarWidth","nextFrame","resolve","remove","element","removeChild","element","child","target","toElement","removeStyleTag","element","isExist","scrollInView","container","item","borderTopValue","borderTop","paddingTopValue","paddingTop","containerRect","offset","scroll","elementHeight","itemHeight","getOuterHeight","setAttribute","element","attribute","value","isElement","setCSSProperty","element","property","value","priority"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type Handler = (evt: unknown) => void;
|
|
2
|
+
interface EventBusOptions {
|
|
3
|
+
on(type: string, handler: Handler): void;
|
|
4
|
+
off(type: string, handler: Handler): void;
|
|
5
|
+
emit(type: string, evt?: unknown): void;
|
|
6
|
+
clear(): void;
|
|
7
|
+
}
|
|
8
|
+
declare function EventBus(): EventBusOptions;
|
|
9
|
+
|
|
10
|
+
export { EventBus, type EventBusOptions, type Handler };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function s(){let r=new Map;return{on(e,t){let n=r.get(e);return n?n.push(t):n=[t],r.set(e,n),this},off(e,t){let n=r.get(e);return n&&n.splice(n.indexOf(t)>>>0,1),this},emit(e,t){let n=r.get(e);n&&n.forEach(i=>{i(t)})},clear(){r.clear()}}}export{s as EventBus};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/eventbus/index.ts"],"sourcesContent":["export type Handler = (evt: unknown) => void;\n\nexport interface EventBusOptions {\n on(type: string, handler: Handler): void;\n off(type: string, handler: Handler): void;\n emit(type: string, evt?: unknown): void;\n clear(): void;\n}\n\nexport function EventBus(): EventBusOptions {\n const allHandlers = new Map<string, Handler[]>();\n\n return {\n on(type: string, handler: Handler) {\n let handlers = allHandlers.get(type);\n\n if (!handlers) handlers = [handler];\n else handlers.push(handler);\n\n allHandlers.set(type, handlers);\n\n return this;\n },\n off(type: string, handler: Handler) {\n const handlers = allHandlers.get(type);\n\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n\n return this;\n },\n emit(type: string, evt?: unknown) {\n const handlers = allHandlers.get(type);\n\n if (handlers) {\n handlers.forEach((handler) => {\n handler(evt);\n });\n }\n },\n clear() {\n allHandlers.clear();\n }\n };\n}\n"],"mappings":"AASO,SAASA,GAA4B,CACxC,IAAMC,EAAc,IAAI,IAExB,MAAO,CACH,GAAGC,EAAcC,EAAkB,CAC/B,IAAIC,EAAWH,EAAY,IAAIC,CAAI,EAEnC,OAAKE,EACAA,EAAS,KAAKD,CAAO,EADXC,EAAW,CAACD,CAAO,EAGlCF,EAAY,IAAIC,EAAME,CAAQ,EAEvB,IACX,EACA,IAAIF,EAAcC,EAAkB,CAChC,IAAMC,EAAWH,EAAY,IAAIC,CAAI,EAErC,OAAIE,GACAA,EAAS,OAAOA,EAAS,QAAQD,CAAO,IAAM,EAAG,CAAC,EAG/C,IACX,EACA,KAAKD,EAAcG,EAAe,CAC9B,IAAMD,EAAWH,EAAY,IAAIC,CAAI,EAEjCE,GACAA,EAAS,QAASD,GAAY,CAC1BA,EAAQE,CAAG,CACf,CAAC,CAET,EACA,OAAQ,CACJJ,EAAY,MAAM,CACtB,CACJ,CACJ","names":["EventBus","allHandlers","type","handler","handlers","evt"]}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from 'angulux-utils/classnames';
|
|
2
|
+
export * from 'angulux-utils/dom';
|
|
3
|
+
export * from 'angulux-utils/eventbus';
|
|
4
|
+
export * from 'angulux-utils/mergeprops';
|
|
5
|
+
export * from 'angulux-utils/object';
|
|
6
|
+
export * from 'angulux-utils/uuid';
|
|
7
|
+
export * from 'angulux-utils/zindex';
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export*from"angulux-utils/classnames";export*from"angulux-utils/dom";export*from"angulux-utils/eventbus";export*from"angulux-utils/mergeprops";export*from"angulux-utils/object";export*from"angulux-utils/uuid";export*from"angulux-utils/zindex";
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from 'angulux-utils/classnames';\nexport * from 'angulux-utils/dom';\nexport * from 'angulux-utils/eventbus';\nexport * from 'angulux-utils/mergeprops';\nexport * from 'angulux-utils/object';\nexport * from 'angulux-utils/uuid';\nexport * from 'angulux-utils/zindex';\n"],"mappings":"AAAA,WAAc,2BACd,WAAc,oBACd,WAAc,yBACd,WAAc,2BACd,WAAc,uBACd,WAAc,qBACd,WAAc","names":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function u(...t){if(t){let f=[];for(let r=0;r<t.length;r++){let o=t[r];if(!o)continue;let e=typeof o;if(e==="string"||e==="number")f.push(o);else if(e==="object"){let a=Array.isArray(o)?[u(...o)]:Object.entries(o).map(([s,n])=>n?s:void 0);f=a.length?f.concat(a.filter(s=>!!s)):f}}return f.join(" ").trim()}}function l(t){return typeof t=="function"&&"call"in t&&"apply"in t}function i({skipUndefined:t=!1},...f){return f?.reduce((r,o={})=>{for(let e in o){let a=o[e];if(!(t&&a===void 0))if(e==="style")r.style={...r.style,...o.style};else if(e==="class"||e==="className")r[e]=u(r[e],o[e]);else if(l(a)){let s=r[e];r[e]=s?(...n)=>{s(...n),a(...n)}:a}else r[e]=a}return r},{})}function b(...t){return i({skipUndefined:!1},...t)}function C(...t){return i({skipUndefined:!0},...t)}export{C as mergeDefaultProps,b as mergeProps};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/classnames/index.ts","../../src/object/methods/isFunction.ts","../../src/mergeprops/index.ts"],"sourcesContent":["export function cn(...args: any[]): string | undefined {\n if (args) {\n let classes: any = [];\n\n for (let i = 0; i < args.length; i++) {\n const className = args[i];\n\n if (!className) {\n continue;\n }\n\n const type = typeof className;\n\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n const _classes = Array.isArray(className) ? [cn(...className)] : Object.entries(className).map(([key, value]) => (value ? key : undefined));\n\n classes = _classes.length ? classes.concat(_classes.filter((c) => !!c)) : classes;\n }\n }\n\n return classes.join(' ').trim();\n }\n\n return undefined;\n}\n\n/**\n * @deprecated Use `cn` instead.\n * @param args\n * @returns\n */\nexport function classNames(...args: any[]): string | undefined {\n return cn(...args);\n}\n","export default function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function' && 'call' in value && 'apply' in value;\n}\n","import { cn } from '../classnames';\nimport { isFunction } from '../object';\n\nfunction _mergeProps({ skipUndefined = false }, ...props: any[]): object | undefined {\n return props?.reduce((merged, ps = {}) => {\n for (const key in ps) {\n const value = ps[key];\n\n if (skipUndefined && value === undefined) continue;\n\n if (key === 'style') {\n merged['style'] = { ...merged['style'], ...ps['style'] };\n } else if (key === 'class' || key === 'className') {\n merged[key] = cn(merged[key], ps[key]);\n } else if (isFunction(value)) {\n const fn = merged[key];\n\n merged[key] = fn\n ? (...args: any[]) => {\n fn(...args);\n value(...args);\n }\n : value;\n } else {\n merged[key] = value;\n }\n }\n\n return merged;\n }, {});\n}\n\nexport function mergeProps(...props: any[]): object | undefined {\n return _mergeProps({ skipUndefined: false }, ...props);\n}\n\nexport function mergeDefaultProps(...props: any[]): object | undefined {\n return _mergeProps({ skipUndefined: true }, ...props);\n}\n"],"mappings":"AAAO,SAASA,KAAMC,EAAiC,CACnD,GAAIA,EAAM,CACN,IAAIC,EAAe,CAAC,EAEpB,QAASC,EAAI,EAAGA,EAAIF,EAAK,OAAQE,IAAK,CAClC,IAAMC,EAAYH,EAAKE,CAAC,EAExB,GAAI,CAACC,EACD,SAGJ,IAAMC,EAAO,OAAOD,EAEpB,GAAIC,IAAS,UAAYA,IAAS,SAC9BH,EAAQ,KAAKE,CAAS,UACfC,IAAS,SAAU,CAC1B,IAAMC,EAAW,MAAM,QAAQF,CAAS,EAAI,CAACJ,EAAG,GAAGI,CAAS,CAAC,EAAI,OAAO,QAAQA,CAAS,EAAE,IAAI,CAAC,CAACG,EAAKC,CAAK,IAAOA,EAAQD,EAAM,MAAU,EAE1IL,EAAUI,EAAS,OAASJ,EAAQ,OAAOI,EAAS,OAAQG,GAAM,CAAC,CAACA,CAAC,CAAC,EAAIP,CAC9E,CACJ,CAEA,OAAOA,EAAQ,KAAK,GAAG,EAAE,KAAK,CAClC,CAGJ,CC1Be,SAARQ,EAA4BC,EAA0D,CACzF,OAAO,OAAOA,GAAU,YAAc,SAAUA,GAAS,UAAWA,CACxE,CCCA,SAASC,EAAY,CAAE,cAAAC,EAAgB,EAAM,KAAMC,EAAkC,CACjF,OAAOA,GAAO,OAAO,CAACC,EAAQC,EAAK,CAAC,IAAM,CACtC,QAAWC,KAAOD,EAAI,CAClB,IAAME,EAAQF,EAAGC,CAAG,EAEpB,GAAI,EAAAJ,GAAiBK,IAAU,QAE/B,GAAID,IAAQ,QACRF,EAAO,MAAW,CAAE,GAAGA,EAAO,MAAU,GAAGC,EAAG,KAAS,UAChDC,IAAQ,SAAWA,IAAQ,YAClCF,EAAOE,CAAG,EAAIE,EAAGJ,EAAOE,CAAG,EAAGD,EAAGC,CAAG,CAAC,UAC9BG,EAAWF,CAAK,EAAG,CAC1B,IAAMG,EAAKN,EAAOE,CAAG,EAErBF,EAAOE,CAAG,EAAII,EACR,IAAIC,IAAgB,CAChBD,EAAG,GAAGC,CAAI,EACVJ,EAAM,GAAGI,CAAI,CACjB,EACAJ,CACV,MACIH,EAAOE,CAAG,EAAIC,CAEtB,CAEA,OAAOH,CACX,EAAG,CAAC,CAAC,CACT,CAEO,SAASQ,KAAcT,EAAkC,CAC5D,OAAOF,EAAY,CAAE,cAAe,EAAM,EAAG,GAAGE,CAAK,CACzD,CAEO,SAASU,KAAqBV,EAAkC,CACnE,OAAOF,EAAY,CAAE,cAAe,EAAK,EAAG,GAAGE,CAAK,CACxD","names":["cn","args","classes","i","className","type","_classes","key","value","c","isFunction","value","_mergeProps","skipUndefined","props","merged","ps","key","value","cn","isFunction","fn","args","mergeProps","mergeDefaultProps"]}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
declare function compare<T = unknown>(value1: T, value2: T, comparator: (val1: T, val2: T) => number, order?: number): number;
|
|
2
|
+
|
|
3
|
+
declare function contains<T = unknown>(value: T, list: T[]): boolean;
|
|
4
|
+
|
|
5
|
+
declare function deepEquals(obj1: unknown, obj2: unknown): boolean;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Merges multiple objects into one.
|
|
9
|
+
* @param args - Objects to merge.
|
|
10
|
+
* @returns Merged object.
|
|
11
|
+
*/
|
|
12
|
+
declare function deepMerge(...args: Record<string, unknown>[]): Record<string, unknown>;
|
|
13
|
+
|
|
14
|
+
declare function equals(obj1: any, obj2: any, field?: string): boolean;
|
|
15
|
+
|
|
16
|
+
declare function filter<T = any>(value: T[], fields: string[], filterValue: string): T[];
|
|
17
|
+
|
|
18
|
+
declare function findIndexInList<T = any>(value: T, list: T[]): number;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Firefox-v103 does not currently support the "findLast" method. It is stated that this method will be supported with Firefox-v104.
|
|
22
|
+
* https://caniuse.com/mdn-javascript_builtins_array_findlast
|
|
23
|
+
*/
|
|
24
|
+
declare function findLast<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): T | undefined;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Firefox-v103 does not currently support the "findLastIndex" method. It is stated that this method will be supported with Firefox-v104.
|
|
28
|
+
* https://caniuse.com/mdn-javascript_builtins_array_findlastindex
|
|
29
|
+
*/
|
|
30
|
+
declare function findLastIndex<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): number;
|
|
31
|
+
|
|
32
|
+
declare function getKeyValue<T extends Record<string, unknown>>(obj: T | undefined, key?: string, params?: unknown): unknown;
|
|
33
|
+
|
|
34
|
+
declare function insertIntoOrderedArray<T>(item: T, index: number, arr: T[], sourceArr: any[]): void;
|
|
35
|
+
|
|
36
|
+
declare function isArray(value: any, empty?: boolean): boolean;
|
|
37
|
+
|
|
38
|
+
declare function isDate(value: unknown): value is Date;
|
|
39
|
+
|
|
40
|
+
declare function isEmpty(value: any): boolean;
|
|
41
|
+
|
|
42
|
+
declare function isFunction(value: unknown): value is (...args: unknown[]) => unknown;
|
|
43
|
+
|
|
44
|
+
declare function isLetter(char: string): boolean;
|
|
45
|
+
|
|
46
|
+
declare function isNotEmpty(value: any): boolean;
|
|
47
|
+
|
|
48
|
+
declare function isNumber(value: unknown): boolean;
|
|
49
|
+
|
|
50
|
+
declare function isObject(value: unknown, empty?: boolean): value is object;
|
|
51
|
+
|
|
52
|
+
declare function isPrintableCharacter(char?: string): boolean;
|
|
53
|
+
|
|
54
|
+
declare function isScalar(value: any): boolean;
|
|
55
|
+
|
|
56
|
+
declare function isString(value: unknown, empty?: boolean): value is string;
|
|
57
|
+
|
|
58
|
+
declare function localeComparator(): (val1: string, val2: string) => number;
|
|
59
|
+
|
|
60
|
+
declare function matchRegex(str: string, regex?: RegExp): boolean;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @deprecated Use `deepMerge` instead.
|
|
64
|
+
*
|
|
65
|
+
* Merges multiple objects into one.
|
|
66
|
+
* @param args - Objects to merge.
|
|
67
|
+
* @returns Merged object.
|
|
68
|
+
*/
|
|
69
|
+
declare function mergeKeys(...args: Record<string, unknown>[]): Record<string, unknown>;
|
|
70
|
+
|
|
71
|
+
declare function minifyCSS(css?: string): string | undefined;
|
|
72
|
+
|
|
73
|
+
declare function nestedKeys(obj?: Record<string, any>, parentKey?: string): string[];
|
|
74
|
+
|
|
75
|
+
declare function omit(obj: unknown, ...keys: string[]): unknown;
|
|
76
|
+
|
|
77
|
+
declare function removeAccents(str: string): string;
|
|
78
|
+
|
|
79
|
+
declare function reorderArray<T>(value: T[], from: number, to: number): void;
|
|
80
|
+
|
|
81
|
+
declare function resolve<T, P extends unknown[], R>(obj: T | ((...params: P) => R), ...params: P): T | R;
|
|
82
|
+
|
|
83
|
+
declare function resolveFieldData(data: any, field: any): any;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Shallow equal for React/Vue props comparison
|
|
87
|
+
* Ignores functions (common in props)
|
|
88
|
+
*/
|
|
89
|
+
declare function shallowEqualProps(propsA: Record<string, unknown>, propsB: Record<string, unknown>): boolean;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Checks if two values are shallowly equal
|
|
93
|
+
* - Primitives: compared by value (===)
|
|
94
|
+
* - Objects/Arrays: compared by reference and first-level properties
|
|
95
|
+
*
|
|
96
|
+
* @param objA - First value to compare
|
|
97
|
+
* @param objB - Second value to compare
|
|
98
|
+
* @returns True if values are shallowly equal, false otherwise
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* shallowEquals(1, 1) // true
|
|
102
|
+
* shallowEquals('a', 'a') // true
|
|
103
|
+
* shallowEquals({ a: 1 }, { a: 1 }) // true (shallow)
|
|
104
|
+
* shallowEquals({ a: { b: 1 } }, { a: { b: 1 } }) // false (nested objects are different references)
|
|
105
|
+
* shallowEquals([1, 2], [1, 2]) // true (shallow)
|
|
106
|
+
* shallowEquals([1, [2]], [1, [2]]) // false (nested arrays are different references)
|
|
107
|
+
*/
|
|
108
|
+
declare function shallowEquals(objA: unknown, objB: unknown): boolean;
|
|
109
|
+
|
|
110
|
+
declare function sort<T>(value1: T, value2: T, order: number | undefined, comparator: (val1: T, val2: T) => number, nullSortOrder?: number): number;
|
|
111
|
+
|
|
112
|
+
declare function stringify(value: unknown, indent?: number, currentIndent?: number): string;
|
|
113
|
+
|
|
114
|
+
declare function toCamelCase(str: string): string;
|
|
115
|
+
|
|
116
|
+
declare function toCapitalCase(str: string): string;
|
|
117
|
+
|
|
118
|
+
declare function toFlatCase(str: string): string;
|
|
119
|
+
|
|
120
|
+
declare function toKebabCase(str: string): string;
|
|
121
|
+
|
|
122
|
+
declare function toMs(value: string | number): number;
|
|
123
|
+
|
|
124
|
+
declare function toTokenKey(str: string): string;
|
|
125
|
+
|
|
126
|
+
declare function toValue(value: unknown): unknown;
|
|
127
|
+
|
|
128
|
+
export { compare, contains, deepEquals, deepMerge, equals, filter, findIndexInList, findLast, findLastIndex, getKeyValue, insertIntoOrderedArray, isArray, isDate, isEmpty, isFunction, isLetter, isNotEmpty, isNumber, isObject, isPrintableCharacter, isScalar, isString, localeComparator, matchRegex, mergeKeys, minifyCSS, nestedKeys, omit, removeAccents, reorderArray, resolve, resolveFieldData, shallowEqualProps, shallowEquals, sort, stringify, toCamelCase, toCapitalCase, toFlatCase, toKebabCase, toMs, toTokenKey, toValue };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
function l(e){return e==null||e===""||Array.isArray(e)&&e.length===0||!(e instanceof Date)&&typeof e=="object"&&Object.keys(e).length===0}function d(e,t,n,o=1){let r=-1,u=l(e),f=l(t);return u&&f?r=0:u?r=o:f?r=-o:typeof e=="string"&&typeof t=="string"?r=n(e,t):r=e<t?-1:e>t?1:0,r}function R(e,t,n=new WeakSet){if(e===t)return!0;if(!e||!t||typeof e!="object"||typeof t!="object"||n.has(e)||n.has(t))return!1;n.add(e).add(t);let o=Array.isArray(e),r=Array.isArray(t),u,f,E;if(o&&r){if(f=e.length,f!=t.length)return!1;for(u=f;u--!==0;)if(!R(e[u],t[u],n))return!1;return!0}if(o!=r)return!1;let D=e instanceof Date,S=t instanceof Date;if(D!=S)return!1;if(D&&S)return e.getTime()==t.getTime();let A=e instanceof RegExp,I=t instanceof RegExp;if(A!=I)return!1;if(A&&I)return e.toString()==t.toString();let T=Object.keys(e);if(f=T.length,f!==Object.keys(t).length)return!1;for(u=f;u--!==0;)if(!Object.prototype.hasOwnProperty.call(t,T[u]))return!1;for(u=f;u--!==0;)if(E=T[u],!R(e[E],t[E],n))return!1;return!0}function x(e,t){return R(e,t)}function c(e){return typeof e=="function"&&"call"in e&&"apply"in e}function s(e){return!l(e)}function p(e,t){if(!e||!t)return null;try{let n=e[t];if(s(n))return n}catch{}if(Object.keys(e).length){if(c(t))return t(e);if(t.indexOf(".")===-1)return e[t];{let n=t.split("."),o=e;for(let r=0,u=n.length;r<u;++r){if(o==null)return null;o=o[n[r]]}return o}}return null}function y(e,t,n){return n?p(e,n)===p(t,n):x(e,t)}function L(e,t){if(e!=null&&t&&t.length){for(let n of t)if(y(e,n))return!0}return!1}function i(e,t=!0){return e instanceof Object&&e.constructor===Object&&(t||Object.keys(e).length!==0)}function K(e={},t={}){let n={...e};return Object.keys(t).forEach(o=>{let r=o;i(t[r])&&r in e&&i(e[r])?n[r]=K(e[r],t[r]):n[r]=t[r]}),n}function k(...e){return e.reduce((t,n,o)=>o===0?n:K(t,n),{})}function N(e,t,n){let o=[];if(e){for(let r of e)for(let u of t)if(String(p(r,u)).toLowerCase().indexOf(n.toLowerCase())>-1){o.push(r);break}}return o}function w(e,t){let n=-1;if(t){for(let o=0;o<t.length;o++)if(t[o]===e){n=o;break}}return n}function q(e,t){let n;if(s(e))try{n=e.findLast(t)}catch{n=[...e].reverse().find(t)}return n}function $(e,t){let n=-1;if(s(e))try{n=e.findLastIndex(t)}catch{n=e.lastIndexOf([...e].reverse().find(t))}return n}function m(e,...t){return c(e)?e(...t):e}function a(e,t=!0){return typeof e=="string"&&(t||e!=="")}function g(e){return a(e)?e.replace(/(-|_)/g,"").toLowerCase():e}function b(e,t="",n={}){let o=g(t).split("."),r=o.shift();if(r){if(i(e)){let u=Object.keys(e).find(f=>g(f)===r)||"";return b(m(e[u],n),o.join("."),n)}return}return m(e,n)}function P(e,t,n,o){if(n.length>0){let r=!1;for(let u=0;u<n.length;u++)if(w(n[u],o)>t){n.splice(u,0,e),r=!0;break}r||n.push(e)}else n.push(e)}function h(e,t=!0){return Array.isArray(e)&&(t||e.length!==0)}function C(e){return e instanceof Date}function V(e){return/^[a-zA-Z\u00C0-\u017F]$/.test(e)}function M(e){return s(e)&&!isNaN(e)}function _(e=""){return s(e)&&e.length===1&&!!e.match(/\S| /)}function Z(e){return e!=null&&(typeof e=="string"||typeof e=="number"||typeof e=="bigint"||typeof e=="boolean")}function z(){return new Intl.Collator(void 0,{numeric:!0}).compare}function J(e,t){if(t){let n=t.test(e);return t.lastIndex=0,n}return!1}function U(...e){return k(...e)}function W(e){return e&&e.replace(/\/\*(?:(?!\*\/)[\s\S])*\*\/|[\r\n\t]+/g,"").replace(/ {2,}/g," ").replace(/ ([{:}]) /g,"$1").replace(/([;,]) /g,"$1").replace(/ !/g,"!").replace(/: /g,":").trim()}function F(e={},t=""){return Object.entries(e).reduce((n,[o,r])=>{let u=t?`${t}.${o}`:o;return i(r)?n=n.concat(F(r,u)):n.push(u),n},[])}function G(e,...t){if(!i(e))return e;let n={...e};return t?.flat().forEach(o=>delete n[o]),n}function H(e){if(e&&/[\xC0-\xFF\u0100-\u017E]/.test(e)){let n={A:/[\xC0-\xC5\u0100\u0102\u0104]/g,AE:/[\xC6]/g,C:/[\xC7\u0106\u0108\u010A\u010C]/g,D:/[\xD0\u010E\u0110]/g,E:/[\xC8-\xCB\u0112\u0114\u0116\u0118\u011A]/g,G:/[\u011C\u011E\u0120\u0122]/g,H:/[\u0124\u0126]/g,I:/[\xCC-\xCF\u0128\u012A\u012C\u012E\u0130]/g,IJ:/[\u0132]/g,J:/[\u0134]/g,K:/[\u0136]/g,L:/[\u0139\u013B\u013D\u013F\u0141]/g,N:/[\xD1\u0143\u0145\u0147\u014A]/g,O:/[\xD2-\xD6\xD8\u014C\u014E\u0150]/g,OE:/[\u0152]/g,R:/[\u0154\u0156\u0158]/g,S:/[\u015A\u015C\u015E\u0160]/g,T:/[\u0162\u0164\u0166]/g,U:/[\xD9-\xDC\u0168\u016A\u016C\u016E\u0170\u0172]/g,W:/[\u0174]/g,Y:/[\xDD\u0176\u0178]/g,Z:/[\u0179\u017B\u017D]/g,a:/[\xE0-\xE5\u0101\u0103\u0105]/g,ae:/[\xE6]/g,c:/[\xE7\u0107\u0109\u010B\u010D]/g,d:/[\u010F\u0111]/g,e:/[\xE8-\xEB\u0113\u0115\u0117\u0119\u011B]/g,g:/[\u011D\u011F\u0121\u0123]/g,i:/[\xEC-\xEF\u0129\u012B\u012D\u012F\u0131]/g,ij:/[\u0133]/g,j:/[\u0135]/g,k:/[\u0137,\u0138]/g,l:/[\u013A\u013C\u013E\u0140\u0142]/g,n:/[\xF1\u0144\u0146\u0148\u014B]/g,p:/[\xFE]/g,o:/[\xF2-\xF6\xF8\u014D\u014F\u0151]/g,oe:/[\u0153]/g,r:/[\u0155\u0157\u0159]/g,s:/[\u015B\u015D\u015F\u0161]/g,t:/[\u0163\u0165\u0167]/g,u:/[\xF9-\xFC\u0169\u016B\u016D\u016F\u0171\u0173]/g,w:/[\u0175]/g,y:/[\xFD\xFF\u0177]/g,z:/[\u017A\u017C\u017E]/g};for(let o in n)e=e.replace(n[o],o)}return e}function Y(e,t,n){e&&t!==n&&(n>=e.length&&(n%=e.length,t%=e.length),e.splice(n,0,e.splice(t,1)[0]))}function Q(e,t){if(e===t)return!0;let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r of n){let u=e[r],f=t[r];if(!(typeof u=="function"&&typeof f=="function")&&!Object.is(u,f))return!1}return!0}function X(e,t){if(e===t)return!0;if(typeof e!=typeof t||e===null||t===null)return!1;if(typeof e!="object")return e===t;if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!Object.is(e[r],t[r]))return!1;return!0}if(Array.isArray(e)||Array.isArray(t))return!1;let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}function B(e,t,n=1,o,r=1){let u=d(e,t,o,n),f=n;return(l(e)||l(t))&&(f=r===1?n:r),f*u}function O(e,t=2,n=0){let o=" ".repeat(n),r=" ".repeat(n+t);return h(e)?"["+e.map(u=>O(u,t,n+t)).join(", ")+"]":C(e)?e.toISOString():c(e)?e.toString():i(e)?`{
|
|
2
|
+
`+Object.entries(e).map(([u,f])=>`${r}${u}: ${O(f,t,n+t)}`).join(`,
|
|
3
|
+
`)+`
|
|
4
|
+
${o}}`:JSON.stringify(e)}function j(e){return a(e)?e.replace(/[-_](\w)/g,(t,n)=>n?n.toUpperCase():""):e}function v(e){return a(e,!1)?e[0].toUpperCase()+e.slice(1):e}function ee(e){return a(e)?e.replace(/(_)/g,"-").replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase():e}function te(e){return e==="auto"?0:typeof e=="number"?e:Number(e.replace(/[^\d.]/g,"").replace(",","."))*1e3}function ne(e){return a(e)?e.replace(/[A-Z]/g,(t,n)=>n===0?t:"."+t.toLowerCase()).toLowerCase():e}function re(e){if(e&&typeof e=="object"){if(Object.hasOwn(e,"current"))return e.current;if(Object.hasOwn(e,"value"))return e.value}return m(e)}export{d as compare,L as contains,x as deepEquals,k as deepMerge,y as equals,N as filter,w as findIndexInList,q as findLast,$ as findLastIndex,b as getKeyValue,P as insertIntoOrderedArray,h as isArray,C as isDate,l as isEmpty,c as isFunction,V as isLetter,s as isNotEmpty,M as isNumber,i as isObject,_ as isPrintableCharacter,Z as isScalar,a as isString,z as localeComparator,J as matchRegex,U as mergeKeys,W as minifyCSS,F as nestedKeys,G as omit,H as removeAccents,Y as reorderArray,m as resolve,p as resolveFieldData,Q as shallowEqualProps,X as shallowEquals,B as sort,O as stringify,j as toCamelCase,v as toCapitalCase,g as toFlatCase,ee as toKebabCase,te as toMs,ne as toTokenKey,re as toValue};
|
|
5
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/object/methods/isEmpty.ts","../../src/object/methods/compare.ts","../../src/object/methods/deepEquals.ts","../../src/object/methods/isFunction.ts","../../src/object/methods/isNotEmpty.ts","../../src/object/methods/resolveFieldData.ts","../../src/object/methods/equals.ts","../../src/object/methods/contains.ts","../../src/object/methods/isObject.ts","../../src/object/methods/deepMerge.ts","../../src/object/methods/filter.ts","../../src/object/methods/findIndexInList.ts","../../src/object/methods/findLast.ts","../../src/object/methods/findLastIndex.ts","../../src/object/methods/resolve.ts","../../src/object/methods/isString.ts","../../src/object/methods/toFlatCase.ts","../../src/object/methods/getKeyValue.ts","../../src/object/methods/insertIntoOrderedArray.ts","../../src/object/methods/isArray.ts","../../src/object/methods/isDate.ts","../../src/object/methods/isLetter.ts","../../src/object/methods/isNumber.ts","../../src/object/methods/isPrintableCharacter.ts","../../src/object/methods/isScalar.ts","../../src/object/methods/localeComparator.ts","../../src/object/methods/matchRegex.ts","../../src/object/methods/mergeKeys.ts","../../src/object/methods/minifyCSS.ts","../../src/object/methods/nestedKeys.ts","../../src/object/methods/omit.ts","../../src/object/methods/removeAccents.ts","../../src/object/methods/reorderArray.ts","../../src/object/methods/shallowEqualProps.ts","../../src/object/methods/shallowEquals.ts","../../src/object/methods/sort.ts","../../src/object/methods/stringify.ts","../../src/object/methods/toCamelCase.ts","../../src/object/methods/toCapitalCase.ts","../../src/object/methods/toKebabCase.ts","../../src/object/methods/toMs.ts","../../src/object/methods/toTokenKey.ts","../../src/object/methods/toValue.ts"],"sourcesContent":["export default function isEmpty(value: any): boolean {\n return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!(value instanceof Date) && typeof value === 'object' && Object.keys(value).length === 0);\n}\n","import isEmpty from './isEmpty';\n\nexport default function compare<T = unknown>(value1: T, value2: T, comparator: (val1: T, val2: T) => number, order: number = 1): number {\n let result = -1;\n const emptyValue1 = isEmpty(value1);\n const emptyValue2 = isEmpty(value2);\n\n if (emptyValue1 && emptyValue2) result = 0;\n else if (emptyValue1) result = order;\n else if (emptyValue2) result = -order;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = comparator(value1, value2);\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return result;\n}\n","function _deepEquals(obj1: unknown, obj2: unknown, visited: WeakSet<object> = new WeakSet()): boolean {\n // Base case: same object reference\n if (obj1 === obj2) return true;\n\n // If one of them is null or not an object, directly return false\n if (!obj1 || !obj2 || typeof obj1 !== 'object' || typeof obj2 !== 'object') return false;\n\n // Check for circular references\n if (visited.has(obj1) || visited.has(obj2)) return false;\n\n // Add objects to the visited set\n visited.add(obj1).add(obj2);\n\n const arrObj1 = Array.isArray(obj1);\n const arrObj2 = Array.isArray(obj2);\n let i, length, key;\n\n if (arrObj1 && arrObj2) {\n length = obj1.length;\n if (length != obj2.length) return false;\n for (i = length; i-- !== 0; ) if (!_deepEquals(obj1[i], obj2[i], visited)) return false;\n\n return true;\n }\n\n if (arrObj1 != arrObj2) return false;\n\n const dateObj1 = obj1 instanceof Date,\n dateObj2 = obj2 instanceof Date;\n\n if (dateObj1 != dateObj2) return false;\n if (dateObj1 && dateObj2) return obj1.getTime() == obj2.getTime();\n\n const regexpObj1 = obj1 instanceof RegExp,\n regexpObj2 = obj2 instanceof RegExp;\n\n if (regexpObj1 != regexpObj2) return false;\n if (regexpObj1 && regexpObj2) return obj1.toString() == obj2.toString();\n\n const keys = Object.keys(obj1);\n\n length = keys.length;\n\n if (length !== Object.keys(obj2).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(obj2, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!_deepEquals((obj1 as Record<string, unknown>)[key], (obj2 as Record<string, unknown>)[key], visited)) return false;\n }\n\n return true;\n}\n\nexport default function deepEquals(obj1: unknown, obj2: unknown): boolean {\n return _deepEquals(obj1, obj2);\n}\n","export default function isFunction(value: unknown): value is (...args: unknown[]) => unknown {\n return typeof value === 'function' && 'call' in value && 'apply' in value;\n}\n","import isEmpty from './isEmpty';\n\nexport default function isNotEmpty(value: any): boolean {\n return !isEmpty(value);\n}\n","import isFunction from './isFunction';\nimport isNotEmpty from './isNotEmpty';\n\nexport default function resolveFieldData(data: any, field: any): any {\n if (!data || !field) {\n // short circuit if there is nothing to resolve\n return null;\n }\n\n try {\n const value = data[field];\n\n if (isNotEmpty(value)) return value;\n } catch {\n // Performance optimization: https://github.com/primefaces/primereact/issues/4797\n // do nothing and continue to other methods to resolve field data\n }\n\n if (Object.keys(data).length) {\n if (isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n const fields = field.split('.');\n let value = data;\n\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n\n value = value[fields[i]];\n }\n\n return value;\n }\n }\n\n return null;\n}\n","import deepEquals from './deepEquals';\nimport resolveFieldData from './resolveFieldData';\n\nexport default function equals(obj1: any, obj2: any, field?: string): boolean {\n if (field) return resolveFieldData(obj1, field) === resolveFieldData(obj2, field);\n else return deepEquals(obj1, obj2);\n}\n","import equals from './equals';\n\nexport default function contains<T = unknown>(value: T, list: T[]): boolean {\n if (value != null && list && list.length) {\n for (const val of list) {\n if (equals(value, val)) return true;\n }\n }\n\n return false;\n}\n","export default function isObject(value: unknown, empty: boolean = true): value is object {\n return value instanceof Object && value.constructor === Object && (empty || Object.keys(value).length !== 0);\n}\n","import isObject from './isObject';\n\nfunction _deepMerge(target: Record<string, unknown> = {}, source: Record<string, unknown> = {}): Record<string, unknown> {\n const mergedObj: Record<string, unknown> = { ...target };\n\n Object.keys(source).forEach((key) => {\n const typedKey = key as keyof typeof source;\n\n if (isObject(source[typedKey]) && typedKey in target && isObject(target[typedKey])) {\n mergedObj[typedKey] = _deepMerge(target[typedKey] as Record<string, unknown>, source[typedKey] as Record<string, unknown>);\n } else {\n mergedObj[typedKey] = source[typedKey];\n }\n });\n\n return mergedObj;\n}\n\n/**\n * Merges multiple objects into one.\n * @param args - Objects to merge.\n * @returns Merged object.\n */\nexport default function deepMerge(...args: Record<string, unknown>[]): Record<string, unknown> {\n return args.reduce((acc, obj, i) => (i === 0 ? obj : _deepMerge(acc, obj)), {});\n}\n","import resolveFieldData from './resolveFieldData';\n\nexport default function filter<T = any>(value: T[], fields: string[], filterValue: string): T[] {\n const filteredItems = [];\n\n if (value) {\n for (const item of value) {\n for (const field of fields) {\n if (String(resolveFieldData(item, field)).toLowerCase().indexOf(filterValue.toLowerCase()) > -1) {\n filteredItems.push(item);\n break;\n }\n }\n }\n }\n\n return filteredItems;\n}\n","export default function findIndexInList<T = any>(value: T, list: T[]): number {\n let index = -1;\n\n if (list) {\n for (let i = 0; i < list.length; i++) {\n if (list[i] === value) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n}\n","import isNotEmpty from './isNotEmpty';\n\n/**\n * Firefox-v103 does not currently support the \"findLast\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlast\n */\nexport default function findLast<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): T | undefined {\n let item;\n\n if (isNotEmpty(arr)) {\n try {\n item = (arr as any).findLast(callback);\n } catch {\n item = [...arr].reverse().find(callback);\n }\n }\n\n return item;\n}\n","import isNotEmpty from './isNotEmpty';\n\n/**\n * Firefox-v103 does not currently support the \"findLastIndex\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlastindex\n */\nexport default function findLastIndex<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): number {\n let index = -1;\n\n if (isNotEmpty(arr)) {\n try {\n index = (arr as any).findLastIndex(callback);\n } catch {\n index = arr.lastIndexOf([...arr].reverse().find(callback) as T);\n }\n }\n\n return index;\n}\n","import isFunction from './isFunction';\n\nexport default function resolve<T, P extends unknown[], R>(obj: T | ((...params: P) => R), ...params: P): T | R {\n return isFunction(obj) ? (obj as (...params: P) => R)(...params) : (obj as T);\n}\n","export default function isString(value: unknown, empty: boolean = true): value is string {\n return typeof value === 'string' && (empty || value !== '');\n}\n","import isString from './isString';\n\nexport default function toFlatCase(str: string): string {\n // convert snake, kebab, camel and pascal cases to flat case\n return isString(str) ? str.replace(/(-|_)/g, '').toLowerCase() : str;\n}\n","import isObject from './isObject';\nimport resolve from './resolve';\nimport toFlatCase from './toFlatCase';\n\nexport default function getKeyValue<T extends Record<string, unknown>>(obj: T | undefined, key: string = '', params: unknown = {}): unknown {\n const fKeys = toFlatCase(key).split('.');\n const fKey = fKeys.shift();\n\n if (fKey) {\n if (isObject(obj)) {\n const matchedKey = Object.keys(obj).find((k) => toFlatCase(k) === fKey) || '';\n\n return getKeyValue(resolve(obj[matchedKey], params) as Record<string, unknown>, fKeys.join('.'), params);\n }\n\n return undefined;\n }\n\n return resolve(obj, params);\n}\n","import findIndexInList from './findIndexInList';\n\nexport default function insertIntoOrderedArray<T>(item: T, index: number, arr: T[], sourceArr: any[]): void {\n if (arr.length > 0) {\n let injected = false;\n\n for (let i = 0; i < arr.length; i++) {\n const currentItemIndex = findIndexInList(arr[i], sourceArr);\n\n if (currentItemIndex > index) {\n arr.splice(i, 0, item);\n injected = true;\n break;\n }\n }\n\n if (!injected) {\n arr.push(item);\n }\n } else {\n arr.push(item);\n }\n}\n","export default function isArray(value: any, empty: boolean = true): boolean {\n return Array.isArray(value) && (empty || value.length !== 0);\n}\n","export default function isDate(value: unknown): value is Date {\n return value instanceof Date;\n}\n","export default function isLetter(char: string): boolean {\n return /^[a-zA-Z\\u00C0-\\u017F]$/.test(char);\n}\n","import isNotEmpty from './isNotEmpty';\n\nexport default function isNumber(value: unknown): boolean {\n return isNotEmpty(value) && !isNaN(value as number);\n}\n","import isNotEmpty from './isNotEmpty';\n\nexport default function isPrintableCharacter(char: string = ''): boolean {\n return isNotEmpty(char) && char.length === 1 && !!char.match(/\\S| /);\n}\n","export default function isScalar(value: any): boolean {\n return value != null && (typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint' || typeof value === 'boolean');\n}\n","export default function localeComparator(): (val1: string, val2: string) => number {\n //performance gain using Int.Collator. It is not recommended to use localeCompare against large arrays.\n return new Intl.Collator(undefined, { numeric: true }).compare;\n}\n","export default function matchRegex(str: string, regex?: RegExp): boolean {\n if (regex) {\n const match = regex.test(str);\n\n regex.lastIndex = 0;\n\n return match;\n }\n\n return false;\n}\n","import deepMerge from './deepMerge';\n\n/**\n * @deprecated Use `deepMerge` instead.\n *\n * Merges multiple objects into one.\n * @param args - Objects to merge.\n * @returns Merged object.\n */\nexport default function mergeKeys(...args: Record<string, unknown>[]): Record<string, unknown> {\n return deepMerge(...args);\n}\n","export default function minifyCSS(css?: string): string | undefined {\n return css\n ? css\n .replace(/\\/\\*(?:(?!\\*\\/)[\\s\\S])*\\*\\/|[\\r\\n\\t]+/g, '')\n .replace(/ {2,}/g, ' ')\n .replace(/ ([{:}]) /g, '$1')\n .replace(/([;,]) /g, '$1')\n .replace(/ !/g, '!')\n .replace(/: /g, ':')\n .trim()\n : css;\n}\n","import isObject from './isObject';\n\nexport default function nestedKeys(obj: Record<string, any> = {}, parentKey: string = ''): string[] {\n return Object.entries(obj).reduce<string[]>((o, [key, value]) => {\n const currentKey = parentKey ? `${parentKey}.${key}` : key;\n\n isObject(value) ? (o = o.concat(nestedKeys(value, currentKey))) : o.push(currentKey);\n\n return o;\n }, []);\n}\n","import isObject from './isObject';\n\nexport default function omit(obj: unknown, ...keys: string[]): unknown {\n if (!isObject(obj)) return obj;\n\n const copy = { ...(obj as Record<string, unknown>) };\n\n keys?.flat().forEach((key) => delete copy[key]);\n\n return copy;\n}\n","export default function removeAccents(str: string): string {\n // Regular expression to check for any accented characters 'Latin-1 Supplement' and 'Latin Extended-A'\n const accentCheckRegex = /[\\xC0-\\xFF\\u0100-\\u017E]/;\n\n if (str && accentCheckRegex.test(str)) {\n const accentsMap: { [key: string]: RegExp } = {\n A: /[\\xC0-\\xC5\\u0100\\u0102\\u0104]/g,\n AE: /[\\xC6]/g,\n C: /[\\xC7\\u0106\\u0108\\u010A\\u010C]/g,\n D: /[\\xD0\\u010E\\u0110]/g,\n E: /[\\xC8-\\xCB\\u0112\\u0114\\u0116\\u0118\\u011A]/g,\n G: /[\\u011C\\u011E\\u0120\\u0122]/g,\n H: /[\\u0124\\u0126]/g,\n I: /[\\xCC-\\xCF\\u0128\\u012A\\u012C\\u012E\\u0130]/g,\n IJ: /[\\u0132]/g,\n J: /[\\u0134]/g,\n K: /[\\u0136]/g,\n L: /[\\u0139\\u013B\\u013D\\u013F\\u0141]/g,\n N: /[\\xD1\\u0143\\u0145\\u0147\\u014A]/g,\n O: /[\\xD2-\\xD6\\xD8\\u014C\\u014E\\u0150]/g,\n OE: /[\\u0152]/g,\n R: /[\\u0154\\u0156\\u0158]/g,\n S: /[\\u015A\\u015C\\u015E\\u0160]/g,\n T: /[\\u0162\\u0164\\u0166]/g,\n U: /[\\xD9-\\xDC\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172]/g,\n W: /[\\u0174]/g,\n Y: /[\\xDD\\u0176\\u0178]/g,\n Z: /[\\u0179\\u017B\\u017D]/g,\n\n a: /[\\xE0-\\xE5\\u0101\\u0103\\u0105]/g,\n ae: /[\\xE6]/g,\n c: /[\\xE7\\u0107\\u0109\\u010B\\u010D]/g,\n d: /[\\u010F\\u0111]/g,\n e: /[\\xE8-\\xEB\\u0113\\u0115\\u0117\\u0119\\u011B]/g,\n g: /[\\u011D\\u011F\\u0121\\u0123]/g,\n i: /[\\xEC-\\xEF\\u0129\\u012B\\u012D\\u012F\\u0131]/g,\n ij: /[\\u0133]/g,\n j: /[\\u0135]/g,\n k: /[\\u0137,\\u0138]/g,\n l: /[\\u013A\\u013C\\u013E\\u0140\\u0142]/g,\n n: /[\\xF1\\u0144\\u0146\\u0148\\u014B]/g,\n p: /[\\xFE]/g,\n o: /[\\xF2-\\xF6\\xF8\\u014D\\u014F\\u0151]/g,\n oe: /[\\u0153]/g,\n r: /[\\u0155\\u0157\\u0159]/g,\n s: /[\\u015B\\u015D\\u015F\\u0161]/g,\n t: /[\\u0163\\u0165\\u0167]/g,\n u: /[\\xF9-\\xFC\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173]/g,\n w: /[\\u0175]/g,\n y: /[\\xFD\\xFF\\u0177]/g,\n z: /[\\u017A\\u017C\\u017E]/g\n };\n\n for (const key in accentsMap) {\n str = str.replace(accentsMap[key], key);\n }\n }\n\n return str;\n}\n","export default function reorderArray<T>(value: T[], from: number, to: number): void {\n if (value && from !== to) {\n if (to >= value.length) {\n to %= value.length;\n from %= value.length;\n }\n\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n}\n","/**\n * Shallow equal for React/Vue props comparison\n * Ignores functions (common in props)\n */\nexport default function shallowEqualProps(propsA: Record<string, unknown>, propsB: Record<string, unknown>): boolean {\n if (propsA === propsB) return true;\n\n const keysA = Object.keys(propsA);\n const keysB = Object.keys(propsB);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n const valueA = propsA[key];\n const valueB = propsB[key];\n\n // Skip function comparison (they rarely change)\n if (typeof valueA === 'function' && typeof valueB === 'function') {\n continue;\n }\n\n if (!Object.is(valueA, valueB)) {\n return false;\n }\n }\n\n return true;\n}\n","/**\n * Checks if two values are shallowly equal\n * - Primitives: compared by value (===)\n * - Objects/Arrays: compared by reference and first-level properties\n *\n * @param objA - First value to compare\n * @param objB - Second value to compare\n * @returns True if values are shallowly equal, false otherwise\n *\n * @example\n * shallowEquals(1, 1) // true\n * shallowEquals('a', 'a') // true\n * shallowEquals({ a: 1 }, { a: 1 }) // true (shallow)\n * shallowEquals({ a: { b: 1 } }, { a: { b: 1 } }) // false (nested objects are different references)\n * shallowEquals([1, 2], [1, 2]) // true (shallow)\n * shallowEquals([1, [2]], [1, [2]]) // false (nested arrays are different references)\n */\nexport default function shallowEquals(objA: unknown, objB: unknown): boolean {\n // Fast path: same reference\n if (objA === objB) return true;\n\n // Fast path: different types or null\n if (typeof objA !== typeof objB || objA === null || objB === null) {\n return false;\n }\n\n // Fast path: primitives\n if (typeof objA !== 'object') {\n return objA === objB;\n }\n\n // Same reference (including null === null, undefined === undefined)\n if (Object.is(objA, objB)) {\n return true;\n }\n\n // If either is not an object or is null, they're not equal\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n // Compare arrays\n if (Array.isArray(objA) && Array.isArray(objB)) {\n if (objA.length !== objB.length) {\n return false;\n }\n\n for (let i = 0; i < objA.length; i++) {\n if (!Object.is(objA[i], objB[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n // If only one is array, they're not equal\n if (Array.isArray(objA) || Array.isArray(objB)) {\n return false;\n }\n\n // Compare object keys\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Check if all keys and values match\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, key) || !Object.is((objA as Record<string, unknown>)[key], (objB as Record<string, unknown>)[key])) {\n return false;\n }\n }\n\n return true;\n}\n","import compare from './compare';\nimport isEmpty from './isEmpty';\n\nexport default function sort<T>(value1: T, value2: T, order: number = 1, comparator: (val1: T, val2: T) => number, nullSortOrder: number = 1): number {\n const result = compare(value1, value2, comparator, order);\n let finalSortOrder = order;\n\n // nullSortOrder == 1 means Excel like sort nulls at bottom\n if (isEmpty(value1) || isEmpty(value2)) {\n finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder;\n }\n\n return finalSortOrder * result;\n}\n","import isArray from './isArray';\nimport isDate from './isDate';\nimport isFunction from './isFunction';\nimport isObject from './isObject';\n\nexport default function stringify(value: unknown, indent: number = 2, currentIndent: number = 0): string {\n const currentIndentStr = ' '.repeat(currentIndent);\n const nextIndentStr = ' '.repeat(currentIndent + indent);\n\n if (isArray(value)) {\n return '[' + (value as unknown[]).map((v: unknown) => stringify(v, indent, currentIndent + indent)).join(', ') + ']';\n } else if (isDate(value)) {\n return value.toISOString();\n } else if (isFunction(value)) {\n return value.toString();\n } else if (isObject(value)) {\n return (\n '{\\n' +\n Object.entries(value)\n .map(([k, v]) => `${nextIndentStr}${k}: ${stringify(v, indent, currentIndent + indent)}`)\n .join(',\\n') +\n `\\n${currentIndentStr}` +\n '}'\n );\n } else {\n return JSON.stringify(value);\n }\n}\n","import isString from './isString';\n\nexport default function toCamelCase(str: string): string {\n // convert snake, kebab and pascal cases to camel case\n return isString(str) ? str.replace(/[-_](\\w)/g, (_, c) => (c ? c.toUpperCase() : '')) : str;\n}\n","import isString from './isString';\n\nexport default function toCapitalCase(str: string): string {\n return isString(str, false) ? str[0].toUpperCase() + str.slice(1) : str;\n}\n","import isString from './isString';\n\nexport default function toKebabCase(str: string): string {\n // convert snake, camel and pascal cases to kebab case\n return isString(str)\n ? str\n .replace(/(_)/g, '-')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .toLowerCase()\n : str;\n}\n","export default function toMs(value: string | number): number {\n if (value === 'auto') return 0;\n\n if (typeof value === 'number') return value;\n\n return Number(value.replace(/[^\\d.]/g, '').replace(',', '.')) * 1000;\n}\n","import isString from './isString';\n\nexport default function toTokenKey(str: string): string {\n return isString(str) ? str.replace(/[A-Z]/g, (c, i) => (i === 0 ? c : '.' + c.toLowerCase())).toLowerCase() : str;\n}\n","import resolve from './resolve';\n\ntype ReactRef = { current: unknown };\ntype VueRef = { value: unknown };\n\nexport default function toValue(value: unknown): unknown {\n if (value && typeof value === 'object') {\n if (Object.hasOwn(value, 'current')) {\n // For React\n return (value as ReactRef).current;\n } else if (Object.hasOwn(value, 'value')) {\n // For Vue\n return (value as VueRef).value;\n }\n }\n\n // For Angular signals and functions usage\n return resolve(value);\n}\n"],"mappings":"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","names":["isEmpty","value","compare","value1","value2","comparator","order","result","emptyValue1","isEmpty","emptyValue2","_deepEquals","obj1","obj2","visited","arrObj1","arrObj2","i","length","key","dateObj1","dateObj2","regexpObj1","regexpObj2","keys","deepEquals","isFunction","value","isNotEmpty","value","isEmpty","resolveFieldData","data","field","value","isNotEmpty","isFunction","fields","i","len","equals","obj1","obj2","field","resolveFieldData","deepEquals","contains","value","list","val","equals","isObject","value","empty","_deepMerge","target","source","mergedObj","key","typedKey","isObject","deepMerge","args","acc","obj","i","filter","value","fields","filterValue","filteredItems","item","field","resolveFieldData","findIndexInList","value","list","index","i","findLast","arr","callback","item","isNotEmpty","findLastIndex","arr","callback","index","isNotEmpty","resolve","obj","params","isFunction","isString","value","empty","toFlatCase","str","isString","getKeyValue","obj","key","params","fKeys","toFlatCase","fKey","isObject","matchedKey","k","resolve","insertIntoOrderedArray","item","index","arr","sourceArr","injected","i","findIndexInList","isArray","value","empty","isDate","value","isLetter","char","isNumber","value","isNotEmpty","isPrintableCharacter","char","isNotEmpty","isScalar","value","localeComparator","matchRegex","str","regex","match","mergeKeys","args","deepMerge","minifyCSS","css","nestedKeys","obj","parentKey","o","key","value","currentKey","isObject","omit","obj","keys","isObject","copy","key","removeAccents","str","accentsMap","key","reorderArray","value","from","to","shallowEqualProps","propsA","propsB","keysA","keysB","key","valueA","valueB","shallowEquals","objA","objB","i","keysA","keysB","key","sort","value1","value2","order","comparator","nullSortOrder","result","compare","finalSortOrder","isEmpty","stringify","value","indent","currentIndent","currentIndentStr","nextIndentStr","isArray","v","isDate","isFunction","isObject","k","toCamelCase","str","isString","_","c","toCapitalCase","str","isString","toKebabCase","str","isString","toMs","value","toTokenKey","str","isString","c","i","toValue","value","resolve"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/uuid/index.ts"],"sourcesContent":["const lastIds: { [key: string]: number } = {};\n\nexport function uuid(prefix: string = 'pui_id_'): string {\n if (!Object.hasOwn(lastIds, prefix)) {\n lastIds[prefix] = 0;\n }\n\n lastIds[prefix]++;\n\n return `${prefix}${lastIds[prefix]}`;\n}\n"],"mappings":"AAAA,IAAMA,EAAqC,CAAC,EAErC,SAASC,EAAKC,EAAiB,UAAmB,CACrD,OAAK,OAAO,OAAOF,EAASE,CAAM,IAC9BF,EAAQE,CAAM,EAAI,GAGtBF,EAAQE,CAAM,IAEP,GAAGA,CAAM,GAAGF,EAAQE,CAAM,CAAC,EACtC","names":["lastIds","uuid","prefix"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface ZIndexOptions {
|
|
2
|
+
get(element?: HTMLElement): number;
|
|
3
|
+
set(key: string, element: HTMLElement, baseZIndex?: number): void;
|
|
4
|
+
clear(element: HTMLElement): void;
|
|
5
|
+
getCurrent(key: string): number;
|
|
6
|
+
}
|
|
7
|
+
declare const ZIndex: ZIndexOptions;
|
|
8
|
+
|
|
9
|
+
export { ZIndex, type ZIndexOptions };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function g(){let r=[],i=(e,n,t=999)=>{let s=u(e,n,t),o=s.value+(s.key===e?0:t)+1;return r.push({key:e,value:o}),o},d=e=>{r=r.filter(n=>n.value!==e)},a=(e,n)=>u(e,n).value,u=(e,n,t=0)=>[...r].reverse().find(s=>n?!0:s.key===e)||{key:e,value:t},l=e=>e&&parseInt(e.style.zIndex,10)||0;return{get:l,set:(e,n,t)=>{n&&(n.style.zIndex=String(i(e,!0,t)))},clear:e=>{e&&(d(l(e)),e.style.zIndex="")},getCurrent:e=>a(e,!0)}}var x=g();export{x as ZIndex};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/zindex/index.ts"],"sourcesContent":["export interface ZIndexOptions {\n get(element?: HTMLElement): number;\n set(key: string, element: HTMLElement, baseZIndex?: number): void;\n clear(element: HTMLElement): void;\n getCurrent(key: string): number;\n}\n\nfunction handler(): ZIndexOptions {\n let zIndexes: { key: string; value: number }[] = [];\n\n const generateZIndex = (key: string, autoZIndex: boolean, baseZIndex: number = 999) => {\n const lastZIndex = getLastZIndex(key, autoZIndex, baseZIndex);\n const newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 1;\n\n zIndexes.push({ key, value: newZIndex });\n\n return newZIndex;\n };\n\n const revertZIndex = (zIndex: number) => {\n zIndexes = zIndexes.filter((obj) => obj.value !== zIndex);\n };\n\n const getCurrentZIndex = (key: string, autoZIndex: boolean) => {\n return getLastZIndex(key, autoZIndex).value;\n };\n\n const getLastZIndex = (key: string, autoZIndex: boolean, baseZIndex: number = 0) => {\n return [...zIndexes].reverse().find((obj) => (autoZIndex ? true : obj.key === key)) || { key, value: baseZIndex };\n };\n\n const getZIndex = (element?: HTMLElement): number => {\n return element ? parseInt(element.style.zIndex, 10) || 0 : 0;\n };\n\n return {\n get: getZIndex,\n set: (key: string, element?: HTMLElement, baseZIndex?: number) => {\n if (element) {\n element.style.zIndex = String(generateZIndex(key, true, baseZIndex));\n }\n },\n clear: (element?: HTMLElement) => {\n if (element) {\n revertZIndex(getZIndex(element));\n element.style.zIndex = '';\n }\n },\n getCurrent: (key: string) => getCurrentZIndex(key, true)\n };\n}\n\nexport const ZIndex: ZIndexOptions = handler();\n"],"mappings":"AAOA,SAASA,GAAyB,CAC9B,IAAIC,EAA6C,CAAC,EAE5CC,EAAiB,CAACC,EAAaC,EAAqBC,EAAqB,MAAQ,CACnF,IAAMC,EAAaC,EAAcJ,EAAKC,EAAYC,CAAU,EACtDG,EAAYF,EAAW,OAASA,EAAW,MAAQH,EAAM,EAAIE,GAAc,EAEjF,OAAAJ,EAAS,KAAK,CAAE,IAAAE,EAAK,MAAOK,CAAU,CAAC,EAEhCA,CACX,EAEMC,EAAgBC,GAAmB,CACrCT,EAAWA,EAAS,OAAQU,GAAQA,EAAI,QAAUD,CAAM,CAC5D,EAEME,EAAmB,CAACT,EAAaC,IAC5BG,EAAcJ,EAAKC,CAAU,EAAE,MAGpCG,EAAgB,CAACJ,EAAaC,EAAqBC,EAAqB,IACnE,CAAC,GAAGJ,CAAQ,EAAE,QAAQ,EAAE,KAAMU,GAASP,EAAa,GAAOO,EAAI,MAAQR,CAAI,GAAK,CAAE,IAAAA,EAAK,MAAOE,CAAW,EAG9GQ,EAAaC,GACRA,GAAU,SAASA,EAAQ,MAAM,OAAQ,EAAE,GAAK,EAG3D,MAAO,CACH,IAAKD,EACL,IAAK,CAACV,EAAaW,EAAuBT,IAAwB,CAC1DS,IACAA,EAAQ,MAAM,OAAS,OAAOZ,EAAeC,EAAK,GAAME,CAAU,CAAC,EAE3E,EACA,MAAQS,GAA0B,CAC1BA,IACAL,EAAaI,EAAUC,CAAO,CAAC,EAC/BA,EAAQ,MAAM,OAAS,GAE/B,EACA,WAAaX,GAAgBS,EAAiBT,EAAK,EAAI,CAC3D,CACJ,CAEO,IAAMY,EAAwBf,EAAQ","names":["handler","zIndexes","generateZIndex","key","autoZIndex","baseZIndex","lastZIndex","getLastZIndex","newZIndex","revertZIndex","zIndex","obj","getCurrentZIndex","getZIndex","element","ZIndex"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "angulux-utils",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"author": "PrimeTek Informatics",
|
|
5
|
+
"description": "Framework-agnostic DOM, object and type utilities used by angulux.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"utilities",
|
|
8
|
+
"helpers",
|
|
9
|
+
"primeng",
|
|
10
|
+
"primereact",
|
|
11
|
+
"primevue",
|
|
12
|
+
"primeuix"
|
|
13
|
+
],
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/anguless-com/angulux.git",
|
|
18
|
+
"directory": "packages/angulux-utils"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/anguless-com/angulux/issues"
|
|
22
|
+
},
|
|
23
|
+
"main": "./dist/index.mjs",
|
|
24
|
+
"module": "./dist/index.mjs",
|
|
25
|
+
"types": "./dist/index.d.mts",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/index.d.mts",
|
|
29
|
+
"import": "./dist/index.mjs",
|
|
30
|
+
"default": "./dist/index.mjs"
|
|
31
|
+
},
|
|
32
|
+
"./*": {
|
|
33
|
+
"types": "./dist/*/index.d.mts",
|
|
34
|
+
"import": "./dist/*/index.mjs",
|
|
35
|
+
"default": "./dist/*/index.mjs"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"publishConfig": {
|
|
39
|
+
"access": "public"
|
|
40
|
+
},
|
|
41
|
+
"sideEffects": false,
|
|
42
|
+
"files": [
|
|
43
|
+
"dist",
|
|
44
|
+
"README.md",
|
|
45
|
+
"LICENSE"
|
|
46
|
+
],
|
|
47
|
+
"engines": {
|
|
48
|
+
"node": ">=12.11.0"
|
|
49
|
+
},
|
|
50
|
+
"private": false,
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "cross-env NODE_ENV=production tsup",
|
|
53
|
+
"build:dev": "tsup --watch"
|
|
54
|
+
}
|
|
55
|
+
}
|