@cuby-ui/cdk 0.0.180 → 0.0.181
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/constants/empty.d.ts +10 -0
- package/constants/handlers.d.ts +8 -0
- package/constants/index.d.ts +2 -0
- package/directives/let.directive.d.ts +1 -1
- package/directives/target.directive.d.ts +1 -1
- package/esm2022/constants/empty.mjs +24 -0
- package/esm2022/constants/handlers.mjs +11 -0
- package/esm2022/constants/index.mjs +4 -0
- package/{esm2020 → esm2022}/directives/auto-resizing.directive.mjs +4 -4
- package/{esm2020 → esm2022}/directives/click-outside.directive.mjs +4 -4
- package/{esm2020 → esm2022}/directives/content-editable-value-accessor.directive.mjs +4 -4
- package/{esm2020 → esm2022}/directives/dimensions-observer.directive.mjs +4 -4
- package/{esm2020 → esm2022}/directives/element.directive.mjs +4 -4
- package/{esm2020 → esm2022}/directives/focus-trap.directive.mjs +4 -4
- package/{esm2020 → esm2022}/directives/item.directive.mjs +4 -4
- package/{esm2020 → esm2022}/directives/let.directive.mjs +4 -4
- package/{esm2020 → esm2022}/directives/target.directive.mjs +4 -4
- package/esm2022/observables/if-map.mjs +5 -0
- package/esm2022/observables/index.mjs +5 -0
- package/esm2022/observables/typed-from-event.mjs +9 -0
- package/esm2022/observables/watch.mjs +6 -0
- package/esm2022/observables/zone.mjs +34 -0
- package/{esm2020 → esm2022}/pipes/filter.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/services/destroy.service.mjs +4 -4
- package/esm2022/services/id.service.mjs +18 -0
- package/{esm2020 → esm2022}/services/popover.service.mjs +4 -4
- package/esm2022/tokens/active-element.mjs +54 -0
- package/esm2022/tokens/environment.mjs +45 -0
- package/esm2022/tokens/index.mjs +10 -0
- package/esm2022/tokens/navigator.mjs +6 -0
- package/esm2022/tokens/removed-element.mjs +19 -0
- package/esm2022/tokens/user-agent.mjs +6 -0
- package/esm2022/types/context.mjs +2 -0
- package/esm2022/types/handler.mjs +2 -0
- package/esm2022/types/index.mjs +9 -0
- package/esm2022/utils/dom/element-checks.mjs +20 -0
- package/esm2022/utils/dom/get-actual-target.mjs +7 -0
- package/esm2022/utils/dom/get-document-or-shadow-root.mjs +6 -0
- package/esm2022/utils/dom/get-element-obscurers.mjs +44 -0
- package/esm2022/utils/dom/index.mjs +7 -0
- package/esm2022/utils/dom/inject-element.mjs +5 -0
- package/esm2022/utils/index.mjs +7 -0
- package/esm2022/utils/math/clamp.mjs +11 -0
- package/esm2022/utils/math/index.mjs +2 -0
- package/esm2022/utils/miscellaneous/array-remove.mjs +4 -0
- package/esm2022/utils/miscellaneous/index.mjs +5 -0
- package/esm2022/utils/miscellaneous/is-present.mjs +4 -0
- package/esm2022/utils/miscellaneous/pure.mjs +81 -0
- package/esm2022/utils/miscellaneous/px.mjs +7 -0
- package/esm2022/utils/platform/index.mjs +2 -0
- package/esm2022/utils/platform/is-ios.mjs +6 -0
- package/fesm2022/cuby-ui-cdk.mjs +958 -0
- package/fesm2022/cuby-ui-cdk.mjs.map +1 -0
- package/observables/if-map.d.ts +3 -0
- package/observables/index.d.ts +4 -0
- package/observables/typed-from-event.d.ts +16 -0
- package/observables/watch.d.ts +3 -0
- package/observables/zone.d.ts +7 -0
- package/package.json +8 -14
- package/tokens/active-element.d.ts +5 -0
- package/tokens/environment.d.ts +19 -0
- package/tokens/index.d.ts +5 -0
- package/tokens/navigator.d.ts +2 -0
- package/tokens/removed-element.d.ts +4 -0
- package/tokens/user-agent.d.ts +2 -0
- package/types/context.d.ts +3 -0
- package/types/handler.d.ts +4 -0
- package/types/index.d.ts +2 -0
- package/utils/dom/element-checks.d.ts +6 -0
- package/utils/dom/get-actual-target.d.ts +4 -0
- package/utils/dom/get-document-or-shadow-root.d.ts +1 -0
- package/utils/dom/get-element-obscurers.d.ts +9 -0
- package/utils/dom/index.d.ts +5 -1
- package/utils/dom/inject-element.d.ts +1 -0
- package/utils/index.d.ts +3 -0
- package/utils/math/clamp.d.ts +8 -0
- package/utils/math/index.d.ts +1 -0
- package/utils/miscellaneous/array-remove.d.ts +1 -0
- package/utils/miscellaneous/index.d.ts +4 -0
- package/utils/miscellaneous/is-present.d.ts +1 -0
- package/utils/miscellaneous/pure.d.ts +21 -0
- package/utils/miscellaneous/px.d.ts +4 -0
- package/utils/platform/index.d.ts +1 -0
- package/utils/platform/is-ios.d.ts +3 -0
- package/esm2020/constants/index.mjs +0 -2
- package/esm2020/services/id.service.mjs +0 -18
- package/esm2020/tokens/index.mjs +0 -5
- package/esm2020/types/index.mjs +0 -7
- package/esm2020/utils/dom/index.mjs +0 -3
- package/esm2020/utils/dom/is-html-element.mjs +0 -4
- package/esm2020/utils/index.mjs +0 -4
- package/fesm2015/cuby-ui-cdk.mjs +0 -572
- package/fesm2015/cuby-ui-cdk.mjs.map +0 -1
- package/fesm2020/cuby-ui-cdk.mjs +0 -579
- package/fesm2020/cuby-ui-cdk.mjs.map +0 -1
- package/utils/dom/is-html-element.d.ts +0 -1
- /package/{esm2020 → esm2022}/constants/svg-node-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/cuby-ui-cdk.mjs +0 -0
- /package/{esm2020 → esm2022}/date-time/index.mjs +0 -0
- /package/{esm2020 → esm2022}/date-time/time.mjs +0 -0
- /package/{esm2020 → esm2022}/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/directives/let.context.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/dimensions.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/on-change.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/on-touched.mjs +0 -0
- /package/{esm2020 → esm2022}/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/tokens/history.mjs +0 -0
- /package/{esm2020 → esm2022}/tokens/local-storage.mjs +0 -0
- /package/{esm2020 → esm2022}/tokens/session-storage.mjs +0 -0
- /package/{esm2020 → esm2022}/tokens/window.mjs +0 -0
- /package/{esm2020 → esm2022}/types/date-time.mjs +0 -0
- /package/{esm2020 → esm2022}/types/input-type.mjs +0 -0
- /package/{esm2020 → esm2022}/types/mapper.mjs +0 -0
- /package/{esm2020 → esm2022}/types/matcher.mjs +0 -0
- /package/{esm2020 → esm2022}/types/nullable.mjs +0 -0
- /package/{esm2020 → esm2022}/types/value-of.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/dom/contains-or-after.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/focus/blur-native-focused.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/focus/get-closest-focusable.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/focus/get-native-focused.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/focus/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/focus/is-native-keyboard-focusable.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/focus/is-native-mouse-focusable.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/token/create-token.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/token/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/token/provide.mjs +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { inject, NgZone } from '@angular/core';
|
|
3
|
+
import { CUI_WINDOW } from './window';
|
|
4
|
+
import { cuiTypedFromEvent, cuiZonefreeScheduler } from '../observables';
|
|
5
|
+
import { cuiCreateTokenFromFactory, cuiGetActualTarget, cuiGetDocumentOrShadowRoot, cuiIsNativeMouseFocusable, } from '../utils';
|
|
6
|
+
import { distinctUntilChanged, filter, map, merge, of, repeat, share, startWith, switchMap, take, takeUntil, timer, withLatestFrom, } from 'rxjs';
|
|
7
|
+
import { CUI_REMOVED_ELEMENT } from './removed-element';
|
|
8
|
+
// Checks if focusout event should be considered leaving active zone
|
|
9
|
+
function isValidFocusout(target, removedElement = null) {
|
|
10
|
+
return (
|
|
11
|
+
// Not due to switching tabs/going to DevTools
|
|
12
|
+
cuiGetDocumentOrShadowRoot(target).activeElement !== target &&
|
|
13
|
+
// Not due to button/input becoming disabled or under disabled fieldset
|
|
14
|
+
!target.matches(':disabled') &&
|
|
15
|
+
// Not due to element being removed from DOM
|
|
16
|
+
!removedElement?.contains(target) &&
|
|
17
|
+
// Not due to scrollable element became non-scrollable
|
|
18
|
+
cuiIsNativeMouseFocusable(target));
|
|
19
|
+
}
|
|
20
|
+
function shadowRootActiveElement(root) {
|
|
21
|
+
return merge(cuiTypedFromEvent(root, 'focusin').pipe(map(({ target }) => target)), cuiTypedFromEvent(root, 'focusout').pipe(filter(({ target, relatedTarget }) => !!relatedTarget && isValidFocusout(target)), map(({ relatedTarget }) => relatedTarget)));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Active element on the document for ActiveZone
|
|
25
|
+
*/
|
|
26
|
+
export const CUI_ACTIVE_ELEMENT = cuiCreateTokenFromFactory(() => {
|
|
27
|
+
const removedElement$ = inject(CUI_REMOVED_ELEMENT);
|
|
28
|
+
const win = inject(CUI_WINDOW);
|
|
29
|
+
const doc = inject(DOCUMENT);
|
|
30
|
+
const zone = inject(NgZone);
|
|
31
|
+
const focusout$ = cuiTypedFromEvent(win, 'focusout', { capture: true });
|
|
32
|
+
const focusin$ = cuiTypedFromEvent(win, 'focusin', { capture: true });
|
|
33
|
+
const blur$ = cuiTypedFromEvent(win, 'blur');
|
|
34
|
+
const mousedown$ = cuiTypedFromEvent(win, 'mousedown');
|
|
35
|
+
const mouseup$ = cuiTypedFromEvent(win, 'mouseup');
|
|
36
|
+
return merge(focusout$.pipe(takeUntil(mousedown$), repeat({ delay: () => mouseup$ }), withLatestFrom(removedElement$), filter(([event, removedElement]) => isValidFocusout(cuiGetActualTarget(event), removedElement)), map(([{ relatedTarget }]) => relatedTarget)), blur$.pipe(map(() => doc.activeElement), filter((element) => !!element?.matches('iframe'))), focusin$.pipe(switchMap((event) => {
|
|
37
|
+
const target = cuiGetActualTarget(event);
|
|
38
|
+
const root = cuiGetDocumentOrShadowRoot(target);
|
|
39
|
+
return root === doc
|
|
40
|
+
? of(target)
|
|
41
|
+
: shadowRootActiveElement(root).pipe(startWith(target));
|
|
42
|
+
})), mousedown$.pipe(switchMap((event) => {
|
|
43
|
+
const actualTargetInCurrentTime = cuiGetActualTarget(event);
|
|
44
|
+
return !doc.activeElement || doc.activeElement === doc.body
|
|
45
|
+
? of(actualTargetInCurrentTime)
|
|
46
|
+
: focusout$.pipe(take(1), map(
|
|
47
|
+
/**
|
|
48
|
+
* Do not use `map(() => cuiGetActualTarget(event))`
|
|
49
|
+
* because we have different result in runtime
|
|
50
|
+
*/
|
|
51
|
+
() => actualTargetInCurrentTime), takeUntil(timer(0, cuiZonefreeScheduler(zone))));
|
|
52
|
+
}))).pipe(distinctUntilChanged(), share());
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdG9rZW5zL2FjdGl2ZS1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUM1Qix5QkFBeUIsR0FDMUIsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUNILG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILEtBQUssRUFDTCxFQUFFLEVBQ0YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsS0FBSyxFQUNMLGNBQWMsR0FDakIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxvRUFBb0U7QUFDcEUsU0FBUyxlQUFlLENBQUMsTUFBVyxFQUFFLGlCQUFpQyxJQUFJO0lBQ3ZFLE9BQU87SUFDSCw4Q0FBOEM7SUFDOUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxLQUFLLE1BQU07UUFDM0QsdUVBQXVFO1FBQ3ZFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDNUIsNENBQTRDO1FBQzVDLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDakMsc0RBQXNEO1FBQ3RELHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUNwQyxDQUFDO0FBQ04sQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsSUFBYztJQUMzQyxPQUFPLEtBQUssQ0FDUixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ2xFLGlCQUFpQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQ3BDLE1BQU0sQ0FDRixDQUFDLEVBQUMsTUFBTSxFQUFFLGFBQWEsRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FDMUUsRUFDRCxHQUFHLENBQUMsQ0FBQyxFQUFDLGFBQWEsRUFBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FDMUMsQ0FDSixDQUFDO0FBQ04sQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcseUJBQXlCLENBRXpELEdBQUcsRUFBRTtJQUNILE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUN0RSxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDcEUsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2RCxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFbkQsT0FBTyxLQUFLLENBQ1IsU0FBUyxDQUFDLElBQUksQ0FDVixTQUFTLENBQUMsVUFBVSxDQUFDLEVBQ3JCLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxFQUMvQixjQUFjLENBQUMsZUFBZSxDQUFDLEVBQy9CLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FDL0IsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUM3RCxFQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxhQUFhLEVBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FDNUMsRUFDRCxLQUFLLENBQUMsSUFBSSxDQUNOLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQzVCLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDcEQsRUFDRCxRQUFRLENBQUMsSUFBSSxDQUNULFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLDBCQUEwQixDQUFDLE1BQU0sQ0FBYSxDQUFDO1FBRTVELE9BQU8sSUFBSSxLQUFLLEdBQUc7WUFDZixDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNaLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDLENBQ0wsRUFDRCxVQUFVLENBQUMsSUFBSSxDQUNYLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2hCLE1BQU0seUJBQXlCLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksR0FBRyxDQUFDLGFBQWEsS0FBSyxHQUFHLENBQUMsSUFBSTtZQUN2RCxDQUFDLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQy9CLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHO1lBQ0M7OztlQUdHO1lBQ0gsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQ2xDLEVBQ0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNsRCxDQUFDO0lBQ1osQ0FBQyxDQUFDLENBQ0wsQ0FDSixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtpbmplY3QsIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDVUlfV0lORE9XIH0gZnJvbSAnLi93aW5kb3cnO1xuaW1wb3J0IHtjdWlUeXBlZEZyb21FdmVudCwgY3VpWm9uZWZyZWVTY2hlZHVsZXJ9IGZyb20gJy4uL29ic2VydmFibGVzJztcbmltcG9ydCB7XG4gICAgY3VpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSxcbiAgICBjdWlHZXRBY3R1YWxUYXJnZXQsXG4gICAgY3VpR2V0RG9jdW1lbnRPclNoYWRvd1Jvb3QsXG4gIGN1aUlzTmF0aXZlTW91c2VGb2N1c2FibGUsXG59IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB0eXBlIHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBtZXJnZSxcbiAgICBvZixcbiAgICByZXBlYXQsXG4gICAgc2hhcmUsXG4gICAgc3RhcnRXaXRoLFxuICAgIHN3aXRjaE1hcCxcbiAgICB0YWtlLFxuICAgIHRha2VVbnRpbCxcbiAgICB0aW1lcixcbiAgICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7Q1VJX1JFTU9WRURfRUxFTUVOVH0gZnJvbSAnLi9yZW1vdmVkLWVsZW1lbnQnO1xuXG4vLyBDaGVja3MgaWYgZm9jdXNvdXQgZXZlbnQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgbGVhdmluZyBhY3RpdmUgem9uZVxuZnVuY3Rpb24gaXNWYWxpZEZvY3Vzb3V0KHRhcmdldDogYW55LCByZW1vdmVkRWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgLy8gTm90IGR1ZSB0byBzd2l0Y2hpbmcgdGFicy9nb2luZyB0byBEZXZUb29sc1xuICAgICAgICBjdWlHZXREb2N1bWVudE9yU2hhZG93Um9vdCh0YXJnZXQpLmFjdGl2ZUVsZW1lbnQgIT09IHRhcmdldCAmJlxuICAgICAgICAvLyBOb3QgZHVlIHRvIGJ1dHRvbi9pbnB1dCBiZWNvbWluZyBkaXNhYmxlZCBvciB1bmRlciBkaXNhYmxlZCBmaWVsZHNldFxuICAgICAgICAhdGFyZ2V0Lm1hdGNoZXMoJzpkaXNhYmxlZCcpICYmXG4gICAgICAgIC8vIE5vdCBkdWUgdG8gZWxlbWVudCBiZWluZyByZW1vdmVkIGZyb20gRE9NXG4gICAgICAgICFyZW1vdmVkRWxlbWVudD8uY29udGFpbnModGFyZ2V0KSAmJlxuICAgICAgICAvLyBOb3QgZHVlIHRvIHNjcm9sbGFibGUgZWxlbWVudCBiZWNhbWUgbm9uLXNjcm9sbGFibGVcbiAgICAgICAgY3VpSXNOYXRpdmVNb3VzZUZvY3VzYWJsZSh0YXJnZXQpXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gc2hhZG93Um9vdEFjdGl2ZUVsZW1lbnQocm9vdDogRG9jdW1lbnQpOiBPYnNlcnZhYmxlPEV2ZW50VGFyZ2V0IHwgbnVsbD4ge1xuICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgY3VpVHlwZWRGcm9tRXZlbnQocm9vdCwgJ2ZvY3VzaW4nKS5waXBlKG1hcCgoe3RhcmdldH0pID0+IHRhcmdldCkpLFxuICAgICAgICBjdWlUeXBlZEZyb21FdmVudChyb290LCAnZm9jdXNvdXQnKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgICAgICh7dGFyZ2V0LCByZWxhdGVkVGFyZ2V0fSkgPT4gISFyZWxhdGVkVGFyZ2V0ICYmIGlzVmFsaWRGb2N1c291dCh0YXJnZXQpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hcCgoe3JlbGF0ZWRUYXJnZXR9KSA9PiByZWxhdGVkVGFyZ2V0KSxcbiAgICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEFjdGl2ZSBlbGVtZW50IG9uIHRoZSBkb2N1bWVudCBmb3IgQWN0aXZlWm9uZVxuICovXG5leHBvcnQgY29uc3QgQ1VJX0FDVElWRV9FTEVNRU5UID0gY3VpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeTxcbiAgICBPYnNlcnZhYmxlPEV2ZW50VGFyZ2V0IHwgbnVsbD5cbj4oKCkgPT4ge1xuICAgIGNvbnN0IHJlbW92ZWRFbGVtZW50JCA9IGluamVjdChDVUlfUkVNT1ZFRF9FTEVNRU5UKTtcbiAgICBjb25zdCB3aW4gPSBpbmplY3QoQ1VJX1dJTkRPVyk7XG4gICAgY29uc3QgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBjb25zdCB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgY29uc3QgZm9jdXNvdXQkID0gY3VpVHlwZWRGcm9tRXZlbnQod2luLCAnZm9jdXNvdXQnLCB7Y2FwdHVyZTogdHJ1ZX0pO1xuICAgIGNvbnN0IGZvY3VzaW4kID0gY3VpVHlwZWRGcm9tRXZlbnQod2luLCAnZm9jdXNpbicsIHtjYXB0dXJlOiB0cnVlfSk7XG4gICAgY29uc3QgYmx1ciQgPSBjdWlUeXBlZEZyb21FdmVudCh3aW4sICdibHVyJyk7XG4gICAgY29uc3QgbW91c2Vkb3duJCA9IGN1aVR5cGVkRnJvbUV2ZW50KHdpbiwgJ21vdXNlZG93bicpO1xuICAgIGNvbnN0IG1vdXNldXAkID0gY3VpVHlwZWRGcm9tRXZlbnQod2luLCAnbW91c2V1cCcpO1xuXG4gICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICBmb2N1c291dCQucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbChtb3VzZWRvd24kKSxcbiAgICAgICAgICAgIHJlcGVhdCh7ZGVsYXk6ICgpID0+IG1vdXNldXAkfSksXG4gICAgICAgICAgICB3aXRoTGF0ZXN0RnJvbShyZW1vdmVkRWxlbWVudCQpLFxuICAgICAgICAgICAgZmlsdGVyKChbZXZlbnQsIHJlbW92ZWRFbGVtZW50XSkgPT5cbiAgICAgICAgICAgICAgICBpc1ZhbGlkRm9jdXNvdXQoY3VpR2V0QWN0dWFsVGFyZ2V0KGV2ZW50KSwgcmVtb3ZlZEVsZW1lbnQpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hcCgoW3tyZWxhdGVkVGFyZ2V0fV0pID0+IHJlbGF0ZWRUYXJnZXQpLFxuICAgICAgICApLFxuICAgICAgICBibHVyJC5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IGRvYy5hY3RpdmVFbGVtZW50KSxcbiAgICAgICAgICAgIGZpbHRlcigoZWxlbWVudCkgPT4gISFlbGVtZW50Py5tYXRjaGVzKCdpZnJhbWUnKSksXG4gICAgICAgICksXG4gICAgICAgIGZvY3VzaW4kLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gY3VpR2V0QWN0dWFsVGFyZ2V0KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCByb290ID0gY3VpR2V0RG9jdW1lbnRPclNoYWRvd1Jvb3QodGFyZ2V0KSBhcyBEb2N1bWVudDtcblxuICAgICAgICAgICAgICAgIHJldHVybiByb290ID09PSBkb2NcbiAgICAgICAgICAgICAgICAgICAgPyBvZih0YXJnZXQpXG4gICAgICAgICAgICAgICAgICAgIDogc2hhZG93Um9vdEFjdGl2ZUVsZW1lbnQocm9vdCkucGlwZShzdGFydFdpdGgodGFyZ2V0KSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICAgbW91c2Vkb3duJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbFRhcmdldEluQ3VycmVudFRpbWUgPSBjdWlHZXRBY3R1YWxUYXJnZXQoZXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICFkb2MuYWN0aXZlRWxlbWVudCB8fCBkb2MuYWN0aXZlRWxlbWVudCA9PT0gZG9jLmJvZHlcbiAgICAgICAgICAgICAgICAgICAgPyBvZihhY3R1YWxUYXJnZXRJbkN1cnJlbnRUaW1lKVxuICAgICAgICAgICAgICAgICAgICA6IGZvY3Vzb3V0JC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIERvIG5vdCB1c2UgYG1hcCgoKSA9PiBjdWlHZXRBY3R1YWxUYXJnZXQoZXZlbnQpKWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJlY2F1c2Ugd2UgaGF2ZSBkaWZmZXJlbnQgcmVzdWx0IGluIHJ1bnRpbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gYWN0dWFsVGFyZ2V0SW5DdXJyZW50VGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRpbWVyKDAsIGN1aVpvbmVmcmVlU2NoZWR1bGVyKHpvbmUpKSksXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZSgpKTtcbn0pO1xuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { CUI_NAVIGATOR, CUI_USER_AGENT, CUI_WINDOW } from '../tokens';
|
|
4
|
+
import { cuiIsIos } from '../utils';
|
|
5
|
+
import { CUI_FALSE_HANDLER } from '../constants';
|
|
6
|
+
import { cuiCreateTokenFromFactory } from '../utils';
|
|
7
|
+
import { fromEvent, map } from 'rxjs';
|
|
8
|
+
// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/
|
|
9
|
+
const firstRegex =
|
|
10
|
+
// eslint-disable-next-line sonarjs/regex-complexity
|
|
11
|
+
/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series([46])0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;
|
|
12
|
+
const secondRegex =
|
|
13
|
+
// eslint-disable-next-line sonarjs/regex-complexity
|
|
14
|
+
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br([ev])w|bumb|bw-([nu])|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do([cp])o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly([-_])|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-([mpt])|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c([- _agpst])|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac([ \-/])|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja([tv])a|jbro|jemu|jigs|kddi|keji|kgt([ /])|klon|kpt |kwc-|kyo([ck])|le(no|xi)|lg( g|\/([klu])|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t([- ov])|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30([02])|n50([025])|n7(0([01])|10)|ne(([cm])-|on|tf|wf|wg|wt)|nok([6i])|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan([adt])|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c([-01])|47|mc|nd|ri)|sgh-|shar|sie([-m])|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel([im])|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c([- ])|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/;
|
|
15
|
+
export const CUI_IS_MOBILE = cuiCreateTokenFromFactory(() => firstRegex.test(inject(CUI_USER_AGENT).toLowerCase()) ||
|
|
16
|
+
secondRegex.test(inject(CUI_USER_AGENT).slice(0, 4).toLowerCase()));
|
|
17
|
+
export const CUI_IS_IOS = cuiCreateTokenFromFactory(() => cuiIsIos(inject(CUI_NAVIGATOR)));
|
|
18
|
+
export const CUI_IS_ANDROID = cuiCreateTokenFromFactory(() => inject(CUI_IS_MOBILE) && !inject(CUI_IS_IOS));
|
|
19
|
+
export const CUI_IS_WEBKIT = cuiCreateTokenFromFactory(() => !!inject(CUI_WINDOW)?.webkitConvertPointFromNodeToPage);
|
|
20
|
+
export const CUI_PLATFORM = cuiCreateTokenFromFactory(() => {
|
|
21
|
+
if (inject(CUI_IS_IOS)) {
|
|
22
|
+
return 'ios';
|
|
23
|
+
}
|
|
24
|
+
return inject(CUI_IS_ANDROID) ? 'android' : 'web';
|
|
25
|
+
});
|
|
26
|
+
export const CUI_IS_TOUCH = cuiCreateTokenFromFactory(() => {
|
|
27
|
+
const media = inject(CUI_WINDOW).matchMedia('(pointer: coarse)');
|
|
28
|
+
return toSignal(fromEvent(media, 'change').pipe(map(() => media.matches)), {
|
|
29
|
+
initialValue: media.matches,
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Detect if app is running under Cypress
|
|
34
|
+
* {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}
|
|
35
|
+
*/
|
|
36
|
+
export const CUI_IS_CYPRESS = cuiCreateTokenFromFactory(() => !!inject(CUI_WINDOW).Cypress);
|
|
37
|
+
/**
|
|
38
|
+
* Manually provide `true` when running tests in Playwright
|
|
39
|
+
*/
|
|
40
|
+
export const CUI_IS_PLAYWRIGHT = cuiCreateTokenFromFactory(CUI_FALSE_HANDLER);
|
|
41
|
+
/**
|
|
42
|
+
* Detect if app is running under any of test frameworks
|
|
43
|
+
*/
|
|
44
|
+
export const CUI_IS_E2E = cuiCreateTokenFromFactory(() => inject(CUI_IS_CYPRESS) || inject(CUI_IS_PLAYWRIGHT));
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdG9rZW5zL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFcEMsZ0ZBQWdGO0FBQ2hGLE1BQU0sVUFBVTtBQUNaLG9EQUFvRDtBQUNwRCwwVEFBMFQsQ0FBQztBQUMvVCxNQUFNLFdBQVc7QUFDYixvREFBb0Q7QUFDcEQsaWlEQUFpaUQsQ0FBQztBQUV0aUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLHlCQUF5QixDQUNsRCxHQUFHLEVBQUUsQ0FDRCxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyRCxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3pFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcseUJBQXlCLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFM0YsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLHlCQUF5QixDQUNuRCxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQ3JELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcseUJBQXlCLENBQ2xELEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQU0sVUFBVSxDQUFDLEVBQUUsZ0NBQWdDLENBQ3BFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcseUJBQXlCLENBQTRCLEdBQUcsRUFBRTtJQUNsRixJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUNwQixPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUN0RCxDQUFDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUU7SUFDdkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBRSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRWxFLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRTtRQUN2RSxZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU87S0FDOUIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcseUJBQXlCLENBQ25ELEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQU0sVUFBVSxDQUFDLENBQUMsT0FBTyxDQUMxQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBVSxpQkFBaUIsQ0FBQyxDQUFDO0FBRXZGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLHlCQUF5QixDQUMvQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3RvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDVUlfTkFWSUdBVE9SLCBDVUlfVVNFUl9BR0VOVCwgQ1VJX1dJTkRPVyB9IGZyb20gJy4uL3Rva2Vucyc7XG5pbXBvcnQge2N1aUlzSW9zfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge0NVSV9GQUxTRV9IQU5ETEVSfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5fSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWFwfSBmcm9tICdyeGpzJztcblxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzExMzgxNzMwLzI3MDY0MjYgaHR0cDovL2RldGVjdG1vYmlsZWJyb3dzZXJzLmNvbS9cbmNvbnN0IGZpcnN0UmVnZXggPVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL3JlZ2V4LWNvbXBsZXhpdHlcbiAgICAvKGFuZHJvaWR8YmJcXGQrfG1lZWdvKS4rbW9iaWxlfGF2YW50Z298YmFkYVxcL3xibGFja2JlcnJ5fGJsYXplcnxjb21wYWx8ZWxhaW5lfGZlbm5lY3xoaXB0b3B8aWVtb2JpbGV8aXAoaG9uZXxvZCl8aXJpc3xraW5kbGV8bGdlIHxtYWVtb3xtaWRwfG1tcHxtb2JpbGUuK2ZpcmVmb3h8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXFwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoWzQ2XSkwfHN5bWJpYW58dHJlb3x1cFxcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIGNlfHhkYXx4aWluby87XG5jb25zdCBzZWNvbmRSZWdleCA9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvcmVnZXgtY29tcGxleGl0eVxuICAgIC8xMjA3fDYzMTB8NjU5MHwzZ3NvfDR0aHB8NTBbMS02XWl8Nzcwc3w4MDJzfGEgd2F8YWJhY3xhYyhlcnxvb3xzLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihbZXZdKXd8YnVtYnxidy0oW251XSl8YzU1XFwvfGNhcGl8Y2N3YXxjZG0tfGNlbGx8Y2h0bXxjbGRjfGNtZC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGMtc3xkZXZpfGRpY2F8ZG1vYnxkbyhbY3BdKW98ZHMoMTJ8LWQpfGVsKDQ5fGFpKXxlbShsMnx1bCl8ZXIoaWN8azApfGVzbDh8ZXooWzQtN10wfG9zfHdhfHplKXxmZXRjfGZseShbLV9dKXxnMSB1fGc1NjB8Z2VuZXxnZi01fGctbW98Z28oXFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZC0oW21wdF0pfGhlaS18aGkocHR8dGEpfGhwKCBpfGlwKXxocy1jfGh0KGMoWy0gX2FncHN0XSl8dHApfGh1KGF3fHRjKXxpLSgyMHxnb3xtYSl8aTIzMHxpYWMoWyBcXC0vXSl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKFt0dl0pYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KFsgL10pfGtsb258a3B0IHxrd2MtfGt5byhbY2tdKXxsZShub3x4aSl8bGcoIGd8XFwvKFtrbHVdKXw1MHw1NHwtW2Etd10pfGxpYnd8bHlueHxtMS13fG0zZ2F8bTUwXFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bS1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChbLSBvdl0pfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMChbMDJdKXxuNTAoWzAyNV0pfG43KDAoWzAxXSl8MTApfG5lKChbY21dKS18b258dGZ8d2Z8d2d8d3QpfG5vayhbNmldKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihbYWR0XSl8cGR4Z3xwZygxM3wtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuLTJ8cG8oY2t8cnR8c2UpfHByb3h8cHNpb3xwdC1nfHFhLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8LVsyLTddfGktKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVxcL3xzYShnZXxtYXxtbXxtc3xueXx2YSl8c2MoMDF8aC18b298cC0pfHNka1xcL3xzZShjKFstMDFdKXw0N3xtY3xuZHxyaSl8c2doLXxzaGFyfHNpZShbLW1dKXxzay0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGgtfHYtfHYgKXxzeSgwMXxtYil8dDIoMTh8NTApfHQ2KDAwfDEwfDE4KXx0YShndHxsayl8dGNsLXx0ZGctfHRlbChbaW1dKXx0aW0tfHQtbW98dG8ocGx8c2gpfHRzKDcwfG0tfG0zfG01KXx0eC05fHVwKFxcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhbLSBdKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhcy18eW91cnx6ZXRvfHp0ZS0vO1xuXG5leHBvcnQgY29uc3QgQ1VJX0lTX01PQklMRSA9IGN1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoXG4gICAgKCkgPT5cbiAgICAgICAgZmlyc3RSZWdleC50ZXN0KGluamVjdChDVUlfVVNFUl9BR0VOVCkudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgICAgc2Vjb25kUmVnZXgudGVzdChpbmplY3QoQ1VJX1VTRVJfQUdFTlQpLnNsaWNlKDAsIDQpLnRvTG93ZXJDYXNlKCkpLFxuKTtcblxuZXhwb3J0IGNvbnN0IENVSV9JU19JT1MgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5KCgpID0+IGN1aUlzSW9zKGluamVjdChDVUlfTkFWSUdBVE9SKSkpO1xuXG5leHBvcnQgY29uc3QgQ1VJX0lTX0FORFJPSUQgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5KFxuICAgICgpID0+IGluamVjdChDVUlfSVNfTU9CSUxFKSAmJiAhaW5qZWN0KENVSV9JU19JT1MpLFxuKTtcblxuZXhwb3J0IGNvbnN0IENVSV9JU19XRUJLSVQgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5KFxuICAgICgpID0+ICEhaW5qZWN0PGFueT4oQ1VJX1dJTkRPVyk/LndlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlLFxuKTtcblxuZXhwb3J0IGNvbnN0IENVSV9QTEFURk9STSA9IGN1aUNyZWF0ZVRva2VuRnJvbUZhY3Rvcnk8J2FuZHJvaWQnIHwgJ2lvcycgfCAnd2ViJz4oKCkgPT4ge1xuICAgIGlmIChpbmplY3QoQ1VJX0lTX0lPUykpIHtcbiAgICAgICAgcmV0dXJuICdpb3MnO1xuICAgIH1cblxuICAgIHJldHVybiBpbmplY3QoQ1VJX0lTX0FORFJPSUQpID8gJ2FuZHJvaWQnIDogJ3dlYic7XG59KTtcblxuZXhwb3J0IGNvbnN0IENVSV9JU19UT1VDSCA9IGN1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoKCkgPT4ge1xuICAgIGNvbnN0IG1lZGlhID0gaW5qZWN0KENVSV9XSU5ET1cgKS5tYXRjaE1lZGlhKCcocG9pbnRlcjogY29hcnNlKScpO1xuXG4gICAgcmV0dXJuIHRvU2lnbmFsKGZyb21FdmVudChtZWRpYSwgJ2NoYW5nZScpLnBpcGUobWFwKCgpID0+IG1lZGlhLm1hdGNoZXMpKSwge1xuICAgICAgICBpbml0aWFsVmFsdWU6IG1lZGlhLm1hdGNoZXMsXG4gICAgfSk7XG59KTtcblxuLyoqXG4gKiBEZXRlY3QgaWYgYXBwIGlzIHJ1bm5pbmcgdW5kZXIgQ3lwcmVzc1xuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5jeXByZXNzLmlvL2ZhcS9xdWVzdGlvbnMvdXNpbmctY3lwcmVzcy1mYXEjSXMtdGhlcmUtYW55LXdheS10by1kZXRlY3QtaWYtbXktYXBwLWlzLXJ1bm5pbmctdW5kZXItQ3lwcmVzcyBDeXByZXNzIGRvY3N9XG4gKi9cbmV4cG9ydCBjb25zdCBDVUlfSVNfQ1lQUkVTUyA9IGN1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoXG4gICAgKCkgPT4gISFpbmplY3Q8YW55PihDVUlfV0lORE9XKS5DeXByZXNzLFxuKTtcblxuLyoqXG4gKiBNYW51YWxseSBwcm92aWRlIGB0cnVlYCB3aGVuIHJ1bm5pbmcgdGVzdHMgaW4gUGxheXdyaWdodFxuICovXG5leHBvcnQgY29uc3QgQ1VJX0lTX1BMQVlXUklHSFQgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5PGJvb2xlYW4+KENVSV9GQUxTRV9IQU5ETEVSKTtcblxuLyoqXG4gKiBEZXRlY3QgaWYgYXBwIGlzIHJ1bm5pbmcgdW5kZXIgYW55IG9mIHRlc3QgZnJhbWV3b3Jrc1xuICovXG5leHBvcnQgY29uc3QgQ1VJX0lTX0UyRSA9IGN1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoXG4gICAgKCkgPT4gaW5qZWN0KENVSV9JU19DWVBSRVNTKSB8fCBpbmplY3QoQ1VJX0lTX1BMQVlXUklHSFQpLFxuKTtcbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './active-element';
|
|
2
|
+
export * from './environment';
|
|
3
|
+
export * from './history';
|
|
4
|
+
export * from './local-storage';
|
|
5
|
+
export * from './navigator';
|
|
6
|
+
export * from './removed-element';
|
|
7
|
+
export * from './session-storage';
|
|
8
|
+
export * from './user-agent';
|
|
9
|
+
export * from './window';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGl2ZS1lbGVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZW52aXJvbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwtc3RvcmFnZSc7XG5leHBvcnQgKiBmcm9tICcuL25hdmlnYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3JlbW92ZWQtZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24tc3RvcmFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItYWdlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi93aW5kb3cnO1xuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
+
import { CUI_WINDOW } from './window';
|
|
3
|
+
export const CUI_NAVIGATOR = new InjectionToken('[CUI_NAVIGATOR]', {
|
|
4
|
+
factory: () => inject(CUI_WINDOW).navigator,
|
|
5
|
+
});
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9uYXZpZ2F0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVwQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQVksaUJBQWlCLEVBQUU7SUFDNUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTO0NBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7Q1VJX1dJTkRPV30gZnJvbSAnLi93aW5kb3cnO1xuXG5leHBvcnQgY29uc3QgQ1VJX05BVklHQVRPUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOYXZpZ2F0b3I+KCdbQ1VJX05BVklHQVRPUl0nLCB7XG4gIGZhY3Rvcnk6ICgpID0+IGluamVjdChDVUlfV0lORE9XKS5uYXZpZ2F0b3IsXG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ɵAnimationEngine as AnimationEngine } from '@angular/animations/browser';
|
|
2
|
+
import { inject } from '@angular/core';
|
|
3
|
+
import { cuiCreateTokenFromFactory } from '../utils';
|
|
4
|
+
import { BehaviorSubject, map, share, startWith, switchMap, timer } from 'rxjs';
|
|
5
|
+
/**
|
|
6
|
+
* Element currently being removed by AnimationEngine
|
|
7
|
+
*/
|
|
8
|
+
export const CUI_REMOVED_ELEMENT = cuiCreateTokenFromFactory(() => {
|
|
9
|
+
const stub = { onRemovalComplete: () => { } };
|
|
10
|
+
const element$ = new BehaviorSubject(null);
|
|
11
|
+
const engine = inject(AnimationEngine, { optional: true }) || stub;
|
|
12
|
+
const { onRemovalComplete = stub.onRemovalComplete } = engine;
|
|
13
|
+
engine.onRemovalComplete = (element, context) => {
|
|
14
|
+
element$.next(element);
|
|
15
|
+
onRemovalComplete.call(engine, element, context);
|
|
16
|
+
};
|
|
17
|
+
return element$.pipe(switchMap((element) => timer(0).pipe(map(() => null), startWith(element))), share());
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlZC1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9yZW1vdmVkLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixJQUFJLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU5RTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHlCQUF5QixDQUFDLEdBQUcsRUFBRTtJQUM5RCxNQUFNLElBQUksR0FBRyxFQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQyxDQUFDO0lBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxDQUFpQixJQUFJLENBQUMsQ0FBQztJQUMzRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ2pFLE1BQU0sRUFBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUMsR0FBRyxNQUFNLENBQUM7SUFFNUQsTUFBTSxDQUFDLGlCQUFpQixHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDO0lBRUYsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUNoQixTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNsQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNULEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDZixTQUFTLENBQUMsT0FBTyxDQUFDLENBQ3JCLENBQ0osRUFDRCxLQUFLLEVBQUUsQ0FDVixDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge8m1QW5pbWF0aW9uRW5naW5lIGFzIEFuaW1hdGlvbkVuZ2luZX0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucy9icm93c2VyJztcbmltcG9ydCB7aW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGN1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgbWFwLCBzaGFyZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRpbWVyfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBFbGVtZW50IGN1cnJlbnRseSBiZWluZyByZW1vdmVkIGJ5IEFuaW1hdGlvbkVuZ2luZVxuICovXG5leHBvcnQgY29uc3QgQ1VJX1JFTU9WRURfRUxFTUVOVCA9IGN1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoKCkgPT4ge1xuICAgIGNvbnN0IHN0dWIgPSB7b25SZW1vdmFsQ29tcGxldGU6ICgpID0+IHt9fTtcbiAgICBjb25zdCBlbGVtZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IGVuZ2luZSA9IGluamVjdChBbmltYXRpb25FbmdpbmUsIHtvcHRpb25hbDogdHJ1ZX0pIHx8IHN0dWI7XG4gICAgY29uc3Qge29uUmVtb3ZhbENvbXBsZXRlID0gc3R1Yi5vblJlbW92YWxDb21wbGV0ZX0gPSBlbmdpbmU7XG5cbiAgICBlbmdpbmUub25SZW1vdmFsQ29tcGxldGUgPSAoZWxlbWVudCwgY29udGV4dCkgPT4ge1xuICAgICAgICBlbGVtZW50JC5uZXh0KGVsZW1lbnQpO1xuICAgICAgICBvblJlbW92YWxDb21wbGV0ZS5jYWxsKGVuZ2luZSwgZWxlbWVudCwgY29udGV4dCk7XG4gICAgfTtcblxuICAgIHJldHVybiBlbGVtZW50JC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGVsZW1lbnQpID0+XG4gICAgICAgICAgICB0aW1lcigwKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiBudWxsKSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgoZWxlbWVudCksXG4gICAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpLFxuICAgICk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
+
import { CUI_NAVIGATOR } from './navigator';
|
|
3
|
+
export const CUI_USER_AGENT = new InjectionToken('[CUI_USER_AGENT]', {
|
|
4
|
+
factory: () => inject(CUI_NAVIGATOR).userAgent,
|
|
5
|
+
});
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90b2tlbnMvdXNlci1hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBUyxrQkFBa0IsRUFBRTtJQUMzRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVM7Q0FDL0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtDVUlfTkFWSUdBVE9SfSBmcm9tICcuL25hdmlnYXRvcic7XG5cbmV4cG9ydCBjb25zdCBDVUlfVVNFUl9BR0VOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdbQ1VJX1VTRVJfQUdFTlRdJywge1xuICBmYWN0b3J5OiAoKSA9PiBpbmplY3QoQ1VJX05BVklHQVRPUikudXNlckFnZW50LFxufSk7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90eXBlcy9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEN1aUNvbnRleHQ8VD4ge1xuICAkaW1wbGljaXQ6IFQ7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90eXBlcy9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDdWlIYW5kbGVyPFQsIEc+ID0gKGl0ZW06IFQpID0+IEc7XG5leHBvcnQgdHlwZSBDdWlCb29sZWFuSGFuZGxlcjxUPiA9IEN1aUhhbmRsZXI8VCwgYm9vbGVhbj47XG5leHBvcnQgdHlwZSBDdWlTdHJpbmdIYW5kbGVyPFQ+ID0gQ3VpSGFuZGxlcjxULCBzdHJpbmc+O1xuZXhwb3J0IHR5cGUgQ3VpTnVtYmVySGFuZGxlcjxUPiA9IEN1aUhhbmRsZXI8VCwgbnVtYmVyPjtcbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './context';
|
|
2
|
+
export * from './date-time';
|
|
3
|
+
export * from './handler';
|
|
4
|
+
export * from './input-type';
|
|
5
|
+
export * from './mapper';
|
|
6
|
+
export * from './matcher';
|
|
7
|
+
export * from './nullable';
|
|
8
|
+
export * from './value-of';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXRpbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9oYW5kbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcHBlcic7XG5leHBvcnQgKiBmcm9tICcuL21hdGNoZXInO1xuZXhwb3J0ICogZnJvbSAnLi9udWxsYWJsZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbHVlLW9mJztcbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function cuiIsInput(element) {
|
|
2
|
+
return element.matches('input');
|
|
3
|
+
}
|
|
4
|
+
export function cuiIsTextarea(element) {
|
|
5
|
+
return element.matches('textarea');
|
|
6
|
+
}
|
|
7
|
+
export function cuiIsTextfield(element) {
|
|
8
|
+
return cuiIsInput(element) || cuiIsTextarea(element);
|
|
9
|
+
}
|
|
10
|
+
export function cuiIsElement(node) {
|
|
11
|
+
return !!node && 'nodeType' in node && node.nodeType === Node.ELEMENT_NODE;
|
|
12
|
+
}
|
|
13
|
+
export function cuiIsHTMLElement(node) {
|
|
14
|
+
const defaultView = node?.ownerDocument.defaultView;
|
|
15
|
+
return !!node && !!defaultView && node instanceof defaultView.HTMLElement;
|
|
16
|
+
}
|
|
17
|
+
export function cuiIsTextNode(node) {
|
|
18
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1jaGVja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL2VsZW1lbnQtY2hlY2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBZ0I7SUFDdkMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWdCO0lBQzFDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FDMUIsT0FBZ0I7SUFFaEIsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUN4QixJQUEwQztJQUUxQyxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUM7QUFDL0UsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFhO0lBQzFDLE1BQU0sV0FBVyxHQUFJLElBQTRCLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUU3RSxPQUFPLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxJQUFJLFlBQVksV0FBVyxDQUFDLFdBQVcsQ0FBQztBQUM5RSxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFVO0lBQ3BDLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY3VpSXNJbnB1dChlbGVtZW50OiBFbGVtZW50KTogZWxlbWVudCBpcyBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudC5tYXRjaGVzKCdpbnB1dCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3VpSXNUZXh0YXJlYShlbGVtZW50OiBFbGVtZW50KTogZWxlbWVudCBpcyBIVE1MVGV4dEFyZWFFbGVtZW50IHtcbiAgICByZXR1cm4gZWxlbWVudC5tYXRjaGVzKCd0ZXh0YXJlYScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3VpSXNUZXh0ZmllbGQoXG4gICAgZWxlbWVudDogRWxlbWVudCxcbik6IGVsZW1lbnQgaXMgSFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQge1xuICAgIHJldHVybiBjdWlJc0lucHV0KGVsZW1lbnQpIHx8IGN1aUlzVGV4dGFyZWEoZWxlbWVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlJc0VsZW1lbnQoXG4gICAgbm9kZT86IEVsZW1lbnQgfCBFdmVudFRhcmdldCB8IE5vZGUgfCBudWxsLFxuKTogbm9kZSBpcyBFbGVtZW50IHtcbiAgICByZXR1cm4gISFub2RlICYmICdub2RlVHlwZScgaW4gbm9kZSAmJiBub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGN1aUlzSFRNTEVsZW1lbnQobm9kZTogdW5rbm93bik6IG5vZGUgaXMgSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IGRlZmF1bHRWaWV3ID0gKG5vZGUgYXMgRWxlbWVudCB8IHVuZGVmaW5lZCk/Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XG5cbiAgICByZXR1cm4gISFub2RlICYmICEhZGVmYXVsdFZpZXcgJiYgbm9kZSBpbnN0YW5jZW9mIGRlZmF1bHRWaWV3LkhUTUxFbGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3VpSXNUZXh0Tm9kZShub2RlOiBOb2RlKTogbm9kZSBpcyBUZXh0IHtcbiAgICByZXR1cm4gbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREU7XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets actual target from open Shadow DOM if event happened within it
|
|
3
|
+
*/
|
|
4
|
+
export function cuiGetActualTarget(event) {
|
|
5
|
+
return event.composedPath()[0];
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFjdHVhbC10YXJnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL2dldC1hY3R1YWwtdGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQVk7SUFDM0MsT0FBTyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFTLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2V0cyBhY3R1YWwgdGFyZ2V0IGZyb20gb3BlbiBTaGFkb3cgRE9NIGlmIGV2ZW50IGhhcHBlbmVkIHdpdGhpbiBpdFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3VpR2V0QWN0dWFsVGFyZ2V0KGV2ZW50OiBFdmVudCk6IE5vZGUge1xuICAgIHJldHVybiBldmVudC5jb21wb3NlZFBhdGgoKVswXSBhcyBOb2RlO1xufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export function cuiGetDocumentOrShadowRoot(node) {
|
|
2
|
+
return 'getRootNode' in node && node.isConnected
|
|
3
|
+
? node.getRootNode()
|
|
4
|
+
: node.ownerDocument;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWRvY3VtZW50LW9yLXNoYWRvdy1yb290LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL2RvbS9nZXQtZG9jdW1lbnQtb3Itc2hhZG93LXJvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLDBCQUEwQixDQUFDLElBQVU7SUFDakQsT0FBTyxhQUFhLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXO1FBQzVDLENBQUMsQ0FBRSxJQUFJLENBQUMsV0FBVyxFQUFlO1FBQ2xDLENBQUMsQ0FBRSxJQUFJLENBQUMsYUFBc0MsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGN1aUdldERvY3VtZW50T3JTaGFkb3dSb290KG5vZGU6IE5vZGUpOiBEb2N1bWVudE9yU2hhZG93Um9vdCB7XG4gICAgcmV0dXJuICdnZXRSb290Tm9kZScgaW4gbm9kZSAmJiBub2RlLmlzQ29ubmVjdGVkXG4gICAgICAgID8gKG5vZGUuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudClcbiAgICAgICAgOiAobm9kZS5vd25lckRvY3VtZW50IGFzIERvY3VtZW50T3JTaGFkb3dSb290KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { cuiClamp } from '../math';
|
|
2
|
+
import { cuiIsPresent } from '../miscellaneous';
|
|
3
|
+
import { cuiGetDocumentOrShadowRoot } from './get-document-or-shadow-root';
|
|
4
|
+
/**
|
|
5
|
+
* Returns array of Elements covering edges of given element or null if at least one edge middle point is visible
|
|
6
|
+
*
|
|
7
|
+
* CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered
|
|
8
|
+
* ```ts
|
|
9
|
+
* function cuiGetElementObscures(element: Element): readonly [Element, Element, Element, Element] | [] | null
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export function cuiGetElementObscures(element) {
|
|
13
|
+
const { ownerDocument } = element;
|
|
14
|
+
if (!ownerDocument?.defaultView || !element.getBoundingClientRect) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const { innerWidth, innerHeight } = ownerDocument.defaultView;
|
|
18
|
+
const doc = cuiGetDocumentOrShadowRoot(element);
|
|
19
|
+
const rect = element.getBoundingClientRect();
|
|
20
|
+
if (rect.width === 0 && rect.height === 0) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const left = cuiClamp(Math.round(rect.left) + 2, 0, innerWidth);
|
|
24
|
+
const top = cuiClamp(Math.round(rect.top) + 2, 0, innerHeight);
|
|
25
|
+
const right = cuiClamp(Math.round(rect.right) - 2, 0, innerWidth);
|
|
26
|
+
const bottom = cuiClamp(Math.round(rect.bottom) - 2, 0, innerHeight);
|
|
27
|
+
const horizontalMiddle = cuiClamp(Math.round(rect.left + rect.width / 2), 0, innerWidth);
|
|
28
|
+
const verticalMiddle = cuiClamp(Math.round(rect.top + rect.height / 2), 0, innerHeight);
|
|
29
|
+
const elements = [
|
|
30
|
+
doc.elementFromPoint(horizontalMiddle, top),
|
|
31
|
+
doc.elementFromPoint(horizontalMiddle, bottom),
|
|
32
|
+
doc.elementFromPoint(left, verticalMiddle),
|
|
33
|
+
doc.elementFromPoint(right, verticalMiddle),
|
|
34
|
+
];
|
|
35
|
+
const nonNull = elements.filter(cuiIsPresent);
|
|
36
|
+
if (!nonNull.length) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
const filtered = nonNull.filter((el) => !element.contains(el) && !el.contains(element));
|
|
40
|
+
return filtered.length === 4
|
|
41
|
+
? filtered
|
|
42
|
+
: null;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWVsZW1lbnQtb2JzY3VyZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL2RvbS9nZXQtZWxlbWVudC1vYnNjdXJlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFekU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDakMsT0FBZ0I7SUFFaEIsTUFBTSxFQUFDLGFBQWEsRUFBQyxHQUFHLE9BQU8sQ0FBQztJQUVoQyxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtRQUMvRCxPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsTUFBTSxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUMsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQzVELE1BQU0sR0FBRyxHQUFHLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBRTdDLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdkMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFDdEMsQ0FBQyxFQUNELFVBQVUsQ0FDYixDQUFDO0lBQ0YsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFDdEMsQ0FBQyxFQUNELFdBQVcsQ0FDZCxDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUc7UUFDYixHQUFHLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDO1FBQzNDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7UUFDOUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxjQUFjLENBQUM7UUFDMUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxjQUFjLENBQUM7S0FDOUMsQ0FBQztJQUNGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDakIsT0FBTyxFQUFFLENBQUM7S0FDYjtJQUVELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQzNCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUN6RCxDQUFDO0lBRUYsT0FBTyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUM7UUFDeEIsQ0FBQyxDQUFFLFFBQWlEO1FBQ3BELENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjdWlDbGFtcH0gZnJvbSAnLi4vbWF0aCc7XG5pbXBvcnQge2N1aUlzUHJlc2VudH0gZnJvbSAnLi4vbWlzY2VsbGFuZW91cyc7XG5cbmltcG9ydCB7Y3VpR2V0RG9jdW1lbnRPclNoYWRvd1Jvb3R9IGZyb20gJy4vZ2V0LWRvY3VtZW50LW9yLXNoYWRvdy1yb290JztcblxuLyoqXG4gKiBSZXR1cm5zIGFycmF5IG9mIEVsZW1lbnRzIGNvdmVyaW5nIGVkZ2VzIG9mIGdpdmVuIGVsZW1lbnQgb3IgbnVsbCBpZiBhdCBsZWFzdCBvbmUgZWRnZSBtaWRkbGUgcG9pbnQgaXMgdmlzaWJsZVxuICpcbiAqIENBVVRJT046IEVtcHR5IGFycmF5IG1lYW5zIGVsZW1lbnQgaWYgb2Zmc2NyZWVuIGkuZS4gY292ZXJlZCBieSBubyBlbGVtZW50cywgcmF0aGVyIHRoYW4gbm90IGNvdmVyZWRcbiAqIGBgYHRzXG4gKiBmdW5jdGlvbiBjdWlHZXRFbGVtZW50T2JzY3VyZXMoZWxlbWVudDogRWxlbWVudCk6IHJlYWRvbmx5IFtFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50XSB8IFtdIHwgbnVsbFxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjdWlHZXRFbGVtZW50T2JzY3VyZXMoXG4gICAgZWxlbWVudDogRWxlbWVudCxcbik6IHJlYWRvbmx5IFtFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50XSB8IFtdIHwgbnVsbCB7XG4gICAgY29uc3Qge293bmVyRG9jdW1lbnR9ID0gZWxlbWVudDtcblxuICAgIGlmICghb3duZXJEb2N1bWVudD8uZGVmYXVsdFZpZXcgfHwgIWVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHtpbm5lcldpZHRoLCBpbm5lckhlaWdodH0gPSBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgIGNvbnN0IGRvYyA9IGN1aUdldERvY3VtZW50T3JTaGFkb3dSb290KGVsZW1lbnQpO1xuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgaWYgKHJlY3Qud2lkdGggPT09IDAgJiYgcmVjdC5oZWlnaHQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbGVmdCA9IGN1aUNsYW1wKE1hdGgucm91bmQocmVjdC5sZWZ0KSArIDIsIDAsIGlubmVyV2lkdGgpO1xuICAgIGNvbnN0IHRvcCA9IGN1aUNsYW1wKE1hdGgucm91bmQocmVjdC50b3ApICsgMiwgMCwgaW5uZXJIZWlnaHQpO1xuICAgIGNvbnN0IHJpZ2h0ID0gY3VpQ2xhbXAoTWF0aC5yb3VuZChyZWN0LnJpZ2h0KSAtIDIsIDAsIGlubmVyV2lkdGgpO1xuICAgIGNvbnN0IGJvdHRvbSA9IGN1aUNsYW1wKE1hdGgucm91bmQocmVjdC5ib3R0b20pIC0gMiwgMCwgaW5uZXJIZWlnaHQpO1xuICAgIGNvbnN0IGhvcml6b250YWxNaWRkbGUgPSBjdWlDbGFtcChcbiAgICAgICAgTWF0aC5yb3VuZChyZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMiksXG4gICAgICAgIDAsXG4gICAgICAgIGlubmVyV2lkdGgsXG4gICAgKTtcbiAgICBjb25zdCB2ZXJ0aWNhbE1pZGRsZSA9IGN1aUNsYW1wKFxuICAgICAgICBNYXRoLnJvdW5kKHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyKSxcbiAgICAgICAgMCxcbiAgICAgICAgaW5uZXJIZWlnaHQsXG4gICAgKTtcbiAgICBjb25zdCBlbGVtZW50cyA9IFtcbiAgICAgICAgZG9jLmVsZW1lbnRGcm9tUG9pbnQoaG9yaXpvbnRhbE1pZGRsZSwgdG9wKSxcbiAgICAgICAgZG9jLmVsZW1lbnRGcm9tUG9pbnQoaG9yaXpvbnRhbE1pZGRsZSwgYm90dG9tKSxcbiAgICAgICAgZG9jLmVsZW1lbnRGcm9tUG9pbnQobGVmdCwgdmVydGljYWxNaWRkbGUpLFxuICAgICAgICBkb2MuZWxlbWVudEZyb21Qb2ludChyaWdodCwgdmVydGljYWxNaWRkbGUpLFxuICAgIF07XG4gICAgY29uc3Qgbm9uTnVsbCA9IGVsZW1lbnRzLmZpbHRlcihjdWlJc1ByZXNlbnQpO1xuXG4gICAgaWYgKCFub25OdWxsLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWQgPSBub25OdWxsLmZpbHRlcihcbiAgICAgICAgKGVsKSA9PiAhZWxlbWVudC5jb250YWlucyhlbCkgJiYgIWVsLmNvbnRhaW5zKGVsZW1lbnQpLFxuICAgICk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWQubGVuZ3RoID09PSA0XG4gICAgICAgID8gKGZpbHRlcmVkIGFzIFtFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50LCBFbGVtZW50XSlcbiAgICAgICAgOiBudWxsO1xufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './contains-or-after';
|
|
2
|
+
export * from './element-checks';
|
|
3
|
+
export * from './get-actual-target';
|
|
4
|
+
export * from './get-document-or-shadow-root';
|
|
5
|
+
export * from './get-element-obscurers';
|
|
6
|
+
export * from './inject-element';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250YWlucy1vci1hZnRlcic7XG5leHBvcnQgKiBmcm9tICcuL2VsZW1lbnQtY2hlY2tzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWFjdHVhbC10YXJnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZG9jdW1lbnQtb3Itc2hhZG93LXJvb3QnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXQtZWxlbWVudC1vYnNjdXJlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmplY3QtZWxlbWVudCc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ElementRef, inject } from '@angular/core';
|
|
2
|
+
export function cuiInjectElement() {
|
|
3
|
+
return inject(ElementRef).nativeElement;
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL2luamVjdC1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpELE1BQU0sVUFBVSxnQkFBZ0I7SUFDNUIsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VsZW1lbnRSZWYsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlJbmplY3RFbGVtZW50PFQgPSBIVE1MRWxlbWVudD4oKTogVCB7XG4gICAgcmV0dXJuIGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './dom';
|
|
2
|
+
export * from './focus';
|
|
3
|
+
export * from './math';
|
|
4
|
+
export * from './miscellaneous';
|
|
5
|
+
export * from './platform';
|
|
6
|
+
export * from './token';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZG9tJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRoJztcbmV4cG9ydCAqIGZyb20gJy4vbWlzY2VsbGFuZW91cyc7XG5leHBvcnQgKiBmcm9tICcuL3BsYXRmb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4nO1xuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clamps a value between two inclusive limits
|
|
3
|
+
*
|
|
4
|
+
* @param value
|
|
5
|
+
* @param min lower limit
|
|
6
|
+
* @param max upper limit
|
|
7
|
+
*/
|
|
8
|
+
export function cuiClamp(value, min, max) {
|
|
9
|
+
return Math.min(max, Math.max(min, value));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhbXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWF0aC9jbGFtcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWEsRUFBRSxHQUFXLEVBQUUsR0FBVztJQUM5RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xhbXBzIGEgdmFsdWUgYmV0d2VlbiB0d28gaW5jbHVzaXZlIGxpbWl0c1xuICpcbiAqIEBwYXJhbSB2YWx1ZVxuICogQHBhcmFtIG1pbiBsb3dlciBsaW1pdFxuICogQHBhcmFtIG1heCB1cHBlciBsaW1pdFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3VpQ2xhbXAodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGgubWluKG1heCwgTWF0aC5tYXgobWluLCB2YWx1ZSkpO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './clamp';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWF0aC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2xhbXAnOyJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export function cuiArrayRemove(array, index) {
|
|
2
|
+
return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktcmVtb3ZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvYXJyYXktcmVtb3ZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxjQUFjLENBQUksS0FBbUIsRUFBRSxLQUFhO0lBQ2hFLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY3VpQXJyYXlSZW1vdmU8VD4oYXJyYXk6IHJlYWRvbmx5IFRbXSwgaW5kZXg6IG51bWJlcik6IFRbXSB7XG4gICAgcmV0dXJuIGFycmF5LnNsaWNlKDAsIE1hdGgubWF4KGluZGV4LCAwKSkuY29uY2F0KGFycmF5LnNsaWNlKE1hdGgubWF4KGluZGV4ICsgMSwgMCkpKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './array-remove';
|
|
2
|
+
export * from './is-present';
|
|
3
|
+
export * from './pure';
|
|
4
|
+
export * from './px';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcnJheS1yZW1vdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1wcmVzZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL3B4JztcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export function cuiIsPresent(value) {
|
|
2
|
+
return value !== null && value !== undefined;
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtcHJlc2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay91dGlscy9taXNjZWxsYW5lb3VzL2lzLXByZXNlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFlBQVksQ0FBSSxLQUFnQjtJQUM1QyxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGN1aUlzUHJlc2VudDxUPih2YWx1ZT86IFQgfCBudWxsKTogdmFsdWUgaXMgVCB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
function decorateMethod(originalMethod) {
|
|
2
|
+
let previousArgs = [];
|
|
3
|
+
let originalFnWasCalledLeastAtOnce = false;
|
|
4
|
+
let pureValue;
|
|
5
|
+
return function cuiPureMethodPatched(...args) {
|
|
6
|
+
const isPure = originalFnWasCalledLeastAtOnce &&
|
|
7
|
+
previousArgs.length === args.length &&
|
|
8
|
+
args.every((arg, index) => arg === previousArgs[index]);
|
|
9
|
+
if (isPure) {
|
|
10
|
+
return pureValue;
|
|
11
|
+
}
|
|
12
|
+
previousArgs = args;
|
|
13
|
+
pureValue = originalMethod.apply(this, args);
|
|
14
|
+
originalFnWasCalledLeastAtOnce = true;
|
|
15
|
+
return pureValue;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function decorateGetter(originalGetter, propertyKey, enumerable = true) {
|
|
19
|
+
return function cuiPureGetterPatched() {
|
|
20
|
+
const value = originalGetter.call(this);
|
|
21
|
+
Object.defineProperty(this, propertyKey, { enumerable, value });
|
|
22
|
+
return value;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function cuiPure(target, propertyKeyOrContext, descriptor) {
|
|
26
|
+
if (typeof target === 'function') {
|
|
27
|
+
const context = propertyKeyOrContext;
|
|
28
|
+
if (context.kind === 'getter') {
|
|
29
|
+
return decorateGetter(target, context.name);
|
|
30
|
+
}
|
|
31
|
+
if (context.kind === 'method') {
|
|
32
|
+
return decorateMethod(target);
|
|
33
|
+
}
|
|
34
|
+
throw new CuiPureException();
|
|
35
|
+
}
|
|
36
|
+
const { get, enumerable, value } = descriptor;
|
|
37
|
+
const propertyKey = propertyKeyOrContext;
|
|
38
|
+
if (get) {
|
|
39
|
+
return {
|
|
40
|
+
configurable: true,
|
|
41
|
+
enumerable,
|
|
42
|
+
get: decorateGetter(get, propertyKey, enumerable),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
if (typeof value !== 'function') {
|
|
46
|
+
throw new CuiPureException();
|
|
47
|
+
}
|
|
48
|
+
const original = value;
|
|
49
|
+
return {
|
|
50
|
+
configurable: true,
|
|
51
|
+
enumerable,
|
|
52
|
+
get() {
|
|
53
|
+
let previousArgs = [];
|
|
54
|
+
let originalFnWasCalledLeastAtOnce = false;
|
|
55
|
+
let pureValue;
|
|
56
|
+
const patched = (...args) => {
|
|
57
|
+
const isPure = originalFnWasCalledLeastAtOnce &&
|
|
58
|
+
previousArgs.length === args.length &&
|
|
59
|
+
args.every((arg, index) => arg === previousArgs[index]);
|
|
60
|
+
if (isPure) {
|
|
61
|
+
return pureValue;
|
|
62
|
+
}
|
|
63
|
+
previousArgs = args;
|
|
64
|
+
pureValue = original.apply(this, args);
|
|
65
|
+
originalFnWasCalledLeastAtOnce = true;
|
|
66
|
+
return pureValue;
|
|
67
|
+
};
|
|
68
|
+
Object.defineProperty(this, propertyKey, {
|
|
69
|
+
configurable: true,
|
|
70
|
+
value: patched,
|
|
71
|
+
});
|
|
72
|
+
return patched;
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export class CuiPureException extends Error {
|
|
77
|
+
constructor() {
|
|
78
|
+
super('cuiPure can only be used with functions or getters');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay91dGlscy9taXNjZWxsYW5lb3VzL3B1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxjQUFjLENBQ3JCLGNBQStDO0lBRS9DLElBQUksWUFBWSxHQUF1QixFQUFFLENBQUM7SUFDMUMsSUFBSSw4QkFBOEIsR0FBRyxLQUFLLENBQUM7SUFDM0MsSUFBSSxTQUFrQixDQUFDO0lBRXZCLE9BQU8sU0FBUyxvQkFBb0IsQ0FBZSxHQUFHLElBQWU7UUFDbkUsTUFBTSxNQUFNLEdBQ1YsOEJBQThCO1lBQzlCLFlBQVksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU07WUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUxRCxJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsWUFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixTQUFTLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0MsOEJBQThCLEdBQUcsSUFBSSxDQUFDO1FBRXRDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDckIsY0FBNkIsRUFDN0IsV0FBNEIsRUFDNUIsVUFBVSxHQUFHLElBQUk7SUFFakIsT0FBTyxTQUFTLG9CQUFvQjtRQUNsQyxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBRTlELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQTZCRCxNQUFNLFVBQVUsT0FBTyxDQUNyQixNQUFrRCxFQUNsRCxvQkFFVSxFQUNWLFVBQXFFO0lBRXJFLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxFQUFFO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLG9CQUNYLENBQUM7UUFFTixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzdCLE9BQU8sY0FBYyxDQUFDLE1BQXVCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM3QixPQUFPLGNBQWMsQ0FBQyxNQUF5QyxDQUFDLENBQUM7U0FDbEU7UUFFRCxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztLQUM5QjtJQUVELE1BQU0sRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBQyxHQUFHLFVBQVcsQ0FBQztJQUM3QyxNQUFNLFdBQVcsR0FBRyxvQkFBOEIsQ0FBQztJQUVuRCxJQUFJLEdBQUcsRUFBRTtRQUNQLE9BQU87WUFDTCxZQUFZLEVBQUUsSUFBSTtZQUNsQixVQUFVO1lBQ1YsR0FBRyxFQUFFLGNBQWMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQztTQUNsRCxDQUFDO0tBQ0g7SUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRTtRQUMvQixNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztLQUM5QjtJQUVELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV2QixPQUFPO1FBQ0wsWUFBWSxFQUFFLElBQUk7UUFDbEIsVUFBVTtRQUNWLEdBQUc7WUFDRCxJQUFJLFlBQVksR0FBdUIsRUFBRSxDQUFDO1lBQzFDLElBQUksOEJBQThCLEdBQUcsS0FBSyxDQUFDO1lBQzNDLElBQUksU0FBa0IsQ0FBQztZQUV2QixNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBZSxFQUFXLEVBQUU7Z0JBQzlDLE1BQU0sTUFBTSxHQUNWLDhCQUE4QjtvQkFDOUIsWUFBWSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTTtvQkFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFFMUQsSUFBSSxNQUFNLEVBQUU7b0JBQ1YsT0FBTyxTQUFTLENBQUM7aUJBQ2xCO2dCQUVELFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdkMsOEJBQThCLEdBQUcsSUFBSSxDQUFDO2dCQUV0QyxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDLENBQUM7WUFFRixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ3ZDLFlBQVksRUFBRSxJQUFJO2dCQUNsQixLQUFLLEVBQUUsT0FBTzthQUNmLENBQUMsQ0FBQztZQUVILE9BQU8sT0FBa0IsQ0FBQztRQUM1QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsS0FBSztJQUN6QztRQUNFLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGRlY29yYXRlTWV0aG9kKFxuICBvcmlnaW5hbE1ldGhvZDogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bixcbik6ICh0aGlzOiBvYmplY3QsIC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93biB7XG4gIGxldCBwcmV2aW91c0FyZ3M6IHJlYWRvbmx5IHVua25vd25bXSA9IFtdO1xuICBsZXQgb3JpZ2luYWxGbldhc0NhbGxlZExlYXN0QXRPbmNlID0gZmFsc2U7XG4gIGxldCBwdXJlVmFsdWU6IHVua25vd247XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIGN1aVB1cmVNZXRob2RQYXRjaGVkKHRoaXM6IG9iamVjdCwgLi4uYXJnczogdW5rbm93bltdKTogdW5rbm93biB7XG4gICAgY29uc3QgaXNQdXJlID1cbiAgICAgIG9yaWdpbmFsRm5XYXNDYWxsZWRMZWFzdEF0T25jZSAmJlxuICAgICAgcHJldmlvdXNBcmdzLmxlbmd0aCA9PT0gYXJncy5sZW5ndGggJiZcbiAgICAgIGFyZ3MuZXZlcnkoKGFyZywgaW5kZXgpID0+IGFyZyA9PT0gcHJldmlvdXNBcmdzW2luZGV4XSk7XG5cbiAgICBpZiAoaXNQdXJlKSB7XG4gICAgICByZXR1cm4gcHVyZVZhbHVlO1xuICAgIH1cblxuICAgIHByZXZpb3VzQXJncyA9IGFyZ3M7XG4gICAgcHVyZVZhbHVlID0gb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncyk7XG4gICAgb3JpZ2luYWxGbldhc0NhbGxlZExlYXN0QXRPbmNlID0gdHJ1ZTtcblxuICAgIHJldHVybiBwdXJlVmFsdWU7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGRlY29yYXRlR2V0dGVyKFxuICBvcmlnaW5hbEdldHRlcjogKCkgPT4gdW5rbm93bixcbiAgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCxcbiAgZW51bWVyYWJsZSA9IHRydWUsXG4pOiAodGhpczogb2JqZWN0KSA9PiB1bmtub3duIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGN1aVB1cmVHZXR0ZXJQYXRjaGVkKHRoaXM6IG9iamVjdCk6IHVua25vd24ge1xuICAgIGNvbnN0IHZhbHVlID0gb3JpZ2luYWxHZXR0ZXIuY2FsbCh0aGlzKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBwcm9wZXJ0eUtleSwge2VudW1lcmFibGUsIHZhbHVlfSk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBsYXp5IGluaXRpYWxpemF0aW9uIGZvciBnZXR0ZXIgb3IgbWVtb2l6YXRpb24gb2YgYSBmdW5jdGlvbiBjYWxsIHNpbWlsYXIgdG8gcHVyZSB7QGxpbms6IFBpcGV9LlxuICogUmVwbGFjZXMgZ2V0dGVyIHdpdGggaXRzIGNhbGN1bGF0ZWQgdmFsdWUgdXBvbiBmaXJzdCBjYWxsIG9yIGtlZXBzIHRyYWNrIG9mIGxhc3QgY2FsbCBhcmd1bWVudHMgYW5kIHJldHVybmVkXG4gKiB2YWx1ZSBmb3IgZnVuY3Rpb24sIHNraXBwaW5nIGNhbGN1bGF0aW9uIHdoZW4gYXJndW1lbnRzIGFyZSBzdHJpY3RseSB0aGUgc2FtZS5cbiAqXG4gKiBAdGhyb3dzIGVycm9yIGlmIHVzZWQgbm90IG9uIGdldHRlciBvciBmdW5jdGlvblxuICpcbiAqIENBVVRJT046IHRoZXkgbXVzdCBiZSBwdXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3VpUHVyZTxUPihcbiAgdGFyZ2V0OiBvYmplY3QsXG4gIHByb3BlcnR5S2V5OiBzdHJpbmcsXG4gIHtnZXQsIGVudW1lcmFibGUsIHZhbHVlfTogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8VD4sXG4pOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxUPjtcblxuLyoqXG4gKiBJbXBsZW1lbnRzIGxhenkgaW5pdGlhbGl6YXRpb24gZm9yIGdldHRlciBvciBtZW1vaXphdGlvbiBvZiBhIGZ1bmN0aW9uIGNhbGwgc2ltaWxhciB0byBwdXJlIHtAbGluazogUGlwZX0uXG4gKiBSZXBsYWNlcyBnZXR0ZXIgd2l0aCBpdHMgY2FsY3VsYXRlZCB2YWx1ZSB1cG9uIGZpcnN0IGNhbGwgb3Iga2VlcHMgdHJhY2sgb2YgbGFzdCBjYWxsIGFyZ3VtZW50cyBhbmQgcmV0dXJuZWRcbiAqIHZhbHVlIGZvciBmdW5jdGlvbiwgc2tpcHBpbmcgY2FsY3VsYXRpb24gd2hlbiBhcmd1bWVudHMgYXJlIHN0cmljdGx5IHRoZSBzYW1lLlxuICpcbiAqIENBVVRJT046IHRoZXkgbXVzdCBiZSBwdXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3VpUHVyZTxBIGV4dGVuZHMgdW5rbm93bltdLCBSPihcbiAgdGFyZ2V0OiAoLi4uYXJnczogQSkgPT4gUixcbiAgY29udGV4dDogYW55XG4pOiAoLi4uYXJnczogQSkgPT4gUjtcblxuZXhwb3J0IGZ1bmN0aW9uIGN1aVB1cmUoXG4gIHRhcmdldDogb2JqZWN0IHwgKCguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24pLFxuICBwcm9wZXJ0eUtleU9yQ29udGV4dDpcbiAgICBhbnlcbiAgICB8IHN0cmluZyxcbiAgZGVzY3JpcHRvcj86IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPCguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24+LFxuKTogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8dW5rbm93bj4gfCAoKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bikge1xuICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IGNvbnRleHQgPSBwcm9wZXJ0eUtleU9yQ29udGV4dCBhc1xuICAgICAgYW55O1xuXG4gICAgaWYgKGNvbnRleHQua2luZCA9PT0gJ2dldHRlcicpIHtcbiAgICAgIHJldHVybiBkZWNvcmF0ZUdldHRlcih0YXJnZXQgYXMgKCkgPT4gdW5rbm93biwgY29udGV4dC5uYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dC5raW5kID09PSAnbWV0aG9kJykge1xuICAgICAgcmV0dXJuIGRlY29yYXRlTWV0aG9kKHRhcmdldCBhcyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgQ3VpUHVyZUV4Y2VwdGlvbigpO1xuICB9XG5cbiAgY29uc3Qge2dldCwgZW51bWVyYWJsZSwgdmFsdWV9ID0gZGVzY3JpcHRvciE7XG4gIGNvbnN0IHByb3BlcnR5S2V5ID0gcHJvcGVydHlLZXlPckNvbnRleHQgYXMgc3RyaW5nO1xuXG4gIGlmIChnZXQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZSxcbiAgICAgIGdldDogZGVjb3JhdGVHZXR0ZXIoZ2V0LCBwcm9wZXJ0eUtleSwgZW51bWVyYWJsZSksXG4gICAgfTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgQ3VpUHVyZUV4Y2VwdGlvbigpO1xuICB9XG5cbiAgY29uc3Qgb3JpZ2luYWwgPSB2YWx1ZTtcblxuICByZXR1cm4ge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICBlbnVtZXJhYmxlLFxuICAgIGdldCgpOiB1bmtub3duIHtcbiAgICAgIGxldCBwcmV2aW91c0FyZ3M6IHJlYWRvbmx5IHVua25vd25bXSA9IFtdO1xuICAgICAgbGV0IG9yaWdpbmFsRm5XYXNDYWxsZWRMZWFzdEF0T25jZSA9IGZhbHNlO1xuICAgICAgbGV0IHB1cmVWYWx1ZTogdW5rbm93bjtcblxuICAgICAgY29uc3QgcGF0Y2hlZCA9ICguLi5hcmdzOiB1bmtub3duW10pOiB1bmtub3duID0+IHtcbiAgICAgICAgY29uc3QgaXNQdXJlID1cbiAgICAgICAgICBvcmlnaW5hbEZuV2FzQ2FsbGVkTGVhc3RBdE9uY2UgJiZcbiAgICAgICAgICBwcmV2aW91c0FyZ3MubGVuZ3RoID09PSBhcmdzLmxlbmd0aCAmJlxuICAgICAgICAgIGFyZ3MuZXZlcnkoKGFyZywgaW5kZXgpID0+IGFyZyA9PT0gcHJldmlvdXNBcmdzW2luZGV4XSk7XG5cbiAgICAgICAgaWYgKGlzUHVyZSkge1xuICAgICAgICAgIHJldHVybiBwdXJlVmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBwcmV2aW91c0FyZ3MgPSBhcmdzO1xuICAgICAgICBwdXJlVmFsdWUgPSBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgb3JpZ2luYWxGbldhc0NhbGxlZExlYXN0QXRPbmNlID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gcHVyZVZhbHVlO1xuICAgICAgfTtcblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIHByb3BlcnR5S2V5LCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHBhdGNoZWQsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHBhdGNoZWQgYXMgdW5rbm93bjtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgQ3VpUHVyZUV4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ2N1aVB1cmUgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGZ1bmN0aW9ucyBvciBnZXR0ZXJzJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adds 'px' to the number and turns it into a string
|
|
3
|
+
*/
|
|
4
|
+
export function cuiPx(value) {
|
|
5
|
+
return `${value}px`;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cy9weC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsS0FBYTtJQUNqQyxPQUFPLEdBQUcsS0FBSyxJQUFJLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWRkcyAncHgnIHRvIHRoZSBudW1iZXIgYW5kIHR1cm5zIGl0IGludG8gYSBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGN1aVB4KHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7dmFsdWV9cHhgO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './is-ios';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvcGxhdGZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lzLWlvcyc7Il19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const CUI_SAFARI_REG_EXP = /^((?!chrome|android).)*safari/i;
|
|
2
|
+
export const CUI_IOS_REG_EXP = /ipad|iphone|ipod/i;
|
|
3
|
+
export function cuiIsIos({ userAgent, maxTouchPoints }) {
|
|
4
|
+
return CUI_SAFARI_REG_EXP.test(userAgent) || (CUI_IOS_REG_EXP.test(userAgent) && maxTouchPoints > 1);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL3BsYXRmb3JtL2lzLWlvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxFQUFDLFNBQVMsRUFBRSxjQUFjLEVBQVk7SUFDN0QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENVSV9TQUZBUklfUkVHX0VYUCA9IC9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pO1xuZXhwb3J0IGNvbnN0IENVSV9JT1NfUkVHX0VYUCA9IC9pcGFkfGlwaG9uZXxpcG9kL2k7XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlJc0lvcyh7dXNlckFnZW50LCBtYXhUb3VjaFBvaW50c306IE5hdmlnYXRvcik6IGJvb2xlYW4ge1xuICByZXR1cm4gQ1VJX1NBRkFSSV9SRUdfRVhQLnRlc3QodXNlckFnZW50KSB8fCAoQ1VJX0lPU19SRUdfRVhQLnRlc3QodXNlckFnZW50KSAmJiBtYXhUb3VjaFBvaW50cyA+IDEpO1xufVxuIl19
|