@cuby-ui/cdk 0.0.487 → 0.0.488
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 +4 -0
- package/constants/svg-node-filter.d.ts +1 -0
- package/constants/units.d.ts +17 -0
- package/date-time/index.d.ts +1 -0
- package/date-time/time.d.ts +14 -0
- package/directives/active-zone/active-zone.directive.d.ts +22 -0
- package/directives/active-zone/index.d.ts +1 -0
- package/directives/auto-resizing.directive.d.ts +18 -0
- package/directives/click-outside.directive.d.ts +9 -0
- package/directives/content-editable-value-accessor.directive.d.ts +17 -0
- package/directives/dimensions-observer.directive.d.ts +13 -0
- package/directives/drag-drop/drag-drop.directive.d.ts +42 -0
- package/directives/drag-drop/drag-drop.options.d.ts +11 -0
- package/directives/drag-drop/drag-list.directive.d.ts +10 -0
- package/directives/drag-drop/drag-pointer.directive.d.ts +8 -0
- package/directives/drag-drop/index.d.ts +4 -0
- package/directives/element.directive.d.ts +8 -0
- package/directives/focus-trap.directive.d.ts +14 -0
- package/directives/handle-scroll.directive.d.ts +23 -0
- package/directives/hovered/hovered.directive.d.ts +7 -0
- package/directives/hovered/hovered.service.d.ts +12 -0
- package/directives/hovered/index.d.ts +2 -0
- package/directives/index.d.ts +17 -0
- package/directives/item.directive.d.ts +5 -0
- package/directives/ladder-list.directive.d.ts +13 -0
- package/directives/let.context.d.ts +9 -0
- package/directives/let.directive.d.ts +9 -0
- package/directives/target.directive.d.ts +14 -0
- package/directives/typed-template.directive.d.ts +13 -0
- package/directives/typed-template.options.d.ts +3 -0
- package/esm2022/constants/empty.mjs +24 -0
- package/esm2022/constants/handlers.mjs +11 -0
- package/esm2022/constants/index.mjs +5 -0
- package/esm2022/constants/svg-node-filter.mjs +6 -0
- package/esm2022/constants/units.mjs +64 -0
- package/esm2022/cuby-ui-cdk.mjs +5 -0
- package/esm2022/date-time/index.mjs +2 -0
- package/esm2022/date-time/time.mjs +72 -0
- package/esm2022/directives/active-zone/active-zone.directive.mjs +75 -0
- package/esm2022/directives/active-zone/index.mjs +2 -0
- package/esm2022/directives/auto-resizing.directive.mjs +64 -0
- package/esm2022/directives/click-outside.directive.mjs +29 -0
- package/esm2022/directives/content-editable-value-accessor.directive.mjs +44 -0
- package/esm2022/directives/dimensions-observer.directive.mjs +32 -0
- package/esm2022/directives/drag-drop/drag-drop.directive.mjs +184 -0
- package/esm2022/directives/drag-drop/drag-drop.options.mjs +2 -0
- package/esm2022/directives/drag-drop/drag-list.directive.mjs +22 -0
- package/esm2022/directives/drag-drop/drag-pointer.directive.mjs +20 -0
- package/esm2022/directives/drag-drop/index.mjs +4 -0
- package/esm2022/directives/element.directive.mjs +19 -0
- package/esm2022/directives/focus-trap.directive.mjs +50 -0
- package/esm2022/directives/handle-scroll.directive.mjs +81 -0
- package/esm2022/directives/hovered/hovered.directive.mjs +21 -0
- package/esm2022/directives/hovered/hovered.service.mjs +32 -0
- package/esm2022/directives/hovered/index.mjs +3 -0
- package/esm2022/directives/index.mjs +18 -0
- package/esm2022/directives/item.directive.mjs +14 -0
- package/esm2022/directives/ladder-list.directive.mjs +42 -0
- package/esm2022/directives/let.context.mjs +12 -0
- package/esm2022/directives/let.directive.mjs +23 -0
- package/esm2022/directives/target.directive.mjs +36 -0
- package/esm2022/directives/typed-template.directive.mjs +27 -0
- package/esm2022/directives/typed-template.options.mjs +2 -0
- package/esm2022/index.mjs +12 -0
- package/esm2022/interfaces/dimensions.mjs +2 -0
- package/esm2022/interfaces/index.mjs +4 -0
- package/esm2022/interfaces/on-change.mjs +2 -0
- package/esm2022/interfaces/on-touched.mjs +2 -0
- package/esm2022/models/consumption-units.mjs +2 -0
- package/esm2022/models/index.mjs +2 -0
- 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/esm2022/pipes/filter.pipe.mjs +17 -0
- package/esm2022/pipes/index.mjs +2 -0
- package/esm2022/services/consumption-units.service.mjs +67 -0
- package/esm2022/services/destroy.service.mjs +15 -0
- package/esm2022/services/id.service.mjs +21 -0
- package/esm2022/services/index.mjs +5 -0
- package/esm2022/services/popover.service.mjs +41 -0
- package/esm2022/tokens/active-element.mjs +52 -0
- package/esm2022/tokens/animation-frame.mjs +21 -0
- package/esm2022/tokens/environment.mjs +47 -0
- package/esm2022/tokens/history.mjs +5 -0
- package/esm2022/tokens/index.mjs +11 -0
- package/esm2022/tokens/local-storage.mjs +5 -0
- package/esm2022/tokens/navigator.mjs +6 -0
- package/esm2022/tokens/removed-element.mjs +19 -0
- package/esm2022/tokens/session-storage.mjs +5 -0
- package/esm2022/tokens/user-agent.mjs +6 -0
- package/esm2022/tokens/window.mjs +11 -0
- package/esm2022/types/context.mjs +2 -0
- package/esm2022/types/date-time.mjs +2 -0
- package/esm2022/types/handler.mjs +2 -0
- package/esm2022/types/index.mjs +9 -0
- package/esm2022/types/input-type.mjs +2 -0
- package/esm2022/types/mapper.mjs +2 -0
- package/esm2022/types/matcher.mjs +2 -0
- package/esm2022/types/nullable.mjs +2 -0
- package/esm2022/types/value-of.mjs +2 -0
- package/esm2022/utils/dom/contains-or-after.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 +42 -0
- package/esm2022/utils/dom/index.mjs +8 -0
- package/esm2022/utils/dom/inject-element.mjs +5 -0
- package/esm2022/utils/dom/point-to-client-rect.mjs +17 -0
- package/esm2022/utils/files/files.uploader.mjs +19 -0
- package/esm2022/utils/files/index.mjs +3 -0
- package/esm2022/utils/files/take-capture-from-video.mjs +25 -0
- package/esm2022/utils/focus/blur-native-focused.mjs +9 -0
- package/esm2022/utils/focus/get-closest-focusable.mjs +22 -0
- package/esm2022/utils/focus/get-native-focused.mjs +11 -0
- package/esm2022/utils/focus/index.mjs +7 -0
- package/esm2022/utils/focus/is-native-focused.mjs +13 -0
- package/esm2022/utils/focus/is-native-keyboard-focusable.mjs +26 -0
- package/esm2022/utils/focus/is-native-mouse-focusable.mjs +6 -0
- package/esm2022/utils/index.mjs +8 -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 +6 -0
- package/esm2022/utils/miscellaneous/is-present.mjs +4 -0
- package/esm2022/utils/miscellaneous/move-item-in-array.mjs +10 -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/esm2022/utils/token/create-token.mjs +8 -0
- package/esm2022/utils/token/index.mjs +3 -0
- package/esm2022/utils/token/provide.mjs +4 -0
- package/fesm2022/cuby-ui-cdk.mjs +1644 -0
- package/fesm2022/cuby-ui-cdk.mjs.map +1 -0
- package/index.d.ts +11 -0
- package/interfaces/dimensions.d.ts +4 -0
- package/interfaces/index.d.ts +3 -0
- package/interfaces/on-change.d.ts +3 -0
- package/interfaces/on-touched.d.ts +3 -0
- package/models/consumption-units.d.ts +14 -0
- package/models/index.d.ts +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 +1 -4
- package/pipes/filter.pipe.d.ts +8 -0
- package/pipes/index.d.ts +1 -0
- package/services/consumption-units.service.d.ts +13 -0
- package/services/destroy.service.d.ts +8 -0
- package/services/id.service.d.ts +8 -0
- package/services/index.d.ts +4 -0
- package/services/popover.service.d.ts +23 -0
- package/tokens/active-element.d.ts +5 -0
- package/tokens/animation-frame.d.ts +3 -0
- package/tokens/environment.d.ts +19 -0
- package/tokens/history.d.ts +1 -0
- package/tokens/index.d.ts +10 -0
- package/tokens/local-storage.d.ts +1 -0
- package/tokens/navigator.d.ts +2 -0
- package/tokens/removed-element.d.ts +4 -0
- package/tokens/session-storage.d.ts +1 -0
- package/tokens/user-agent.d.ts +2 -0
- package/tokens/window.d.ts +1 -0
- package/types/context.d.ts +3 -0
- package/types/date-time.d.ts +1 -0
- package/types/handler.d.ts +4 -0
- package/types/index.d.ts +8 -0
- package/types/input-type.d.ts +1 -0
- package/types/mapper.d.ts +1 -0
- package/types/matcher.d.ts +2 -0
- package/types/nullable.d.ts +1 -0
- package/types/value-of.d.ts +1 -0
- package/utils/dom/contains-or-after.d.ts +1 -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 +7 -0
- package/utils/dom/inject-element.d.ts +1 -0
- package/utils/dom/point-to-client-rect.d.ts +1 -0
- package/utils/files/files.uploader.d.ts +5 -0
- package/utils/files/index.d.ts +2 -0
- package/utils/files/take-capture-from-video.d.ts +1 -0
- package/utils/focus/blur-native-focused.d.ts +1 -0
- package/utils/focus/get-closest-focusable.d.ts +7 -0
- package/utils/focus/get-native-focused.d.ts +1 -0
- package/utils/focus/index.d.ts +6 -0
- package/utils/focus/is-native-focused.d.ts +9 -0
- package/utils/focus/is-native-keyboard-focusable.d.ts +1 -0
- package/utils/focus/is-native-mouse-focusable.d.ts +1 -0
- package/utils/index.d.ts +7 -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 +5 -0
- package/utils/miscellaneous/is-present.d.ts +1 -0
- package/utils/miscellaneous/move-item-in-array.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/utils/token/create-token.d.ts +3 -0
- package/utils/token/index.d.ts +2 -0
- package/utils/token/provide.d.ts +3 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { inject, NgZone } from '@angular/core';
|
|
2
|
+
import { asyncScheduler, Observable, pipe } from 'rxjs';
|
|
3
|
+
export function cuiZonefull(zone = inject(NgZone)) {
|
|
4
|
+
return (source) => new Observable((subscriber) => source.subscribe({
|
|
5
|
+
next: (value) => zone.run(() => subscriber.next(value)),
|
|
6
|
+
error: (error) => zone.run(() => subscriber.error(error)),
|
|
7
|
+
complete: () => zone.run(() => subscriber.complete())
|
|
8
|
+
}));
|
|
9
|
+
}
|
|
10
|
+
export function cuiZonefree(zone = inject(NgZone)) {
|
|
11
|
+
return (source) => new Observable((subscriber) => zone.runOutsideAngular(() => source.subscribe(subscriber)));
|
|
12
|
+
}
|
|
13
|
+
export function cuiZoneOptimized(zone = inject(NgZone)) {
|
|
14
|
+
return pipe(cuiZonefree(zone), cuiZonefull(zone));
|
|
15
|
+
}
|
|
16
|
+
class CuiZoneScheduler {
|
|
17
|
+
constructor(zoneConditionFn, scheduler = asyncScheduler) {
|
|
18
|
+
this.zoneConditionFn = zoneConditionFn;
|
|
19
|
+
this.scheduler = scheduler;
|
|
20
|
+
}
|
|
21
|
+
now() {
|
|
22
|
+
return this.scheduler.now();
|
|
23
|
+
}
|
|
24
|
+
schedule(...args) {
|
|
25
|
+
return this.zoneConditionFn(() => this.scheduler.schedule(...args));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function cuiZonefreeScheduler(zone = inject(NgZone), scheduler = asyncScheduler) {
|
|
29
|
+
return new CuiZoneScheduler(zone.runOutsideAngular.bind(zone), scheduler);
|
|
30
|
+
}
|
|
31
|
+
export function cuiZonefullScheduler(zone = inject(NgZone), scheduler = asyncScheduler) {
|
|
32
|
+
return new CuiZoneScheduler(zone.run.bind(zone), scheduler);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9vYnNlcnZhYmxlcy96b25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4RCxNQUFNLFVBQVUsV0FBVyxDQUFJLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hELE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNiLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELEtBQUssRUFBRSxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUN4RCxDQUFDLENBQ0wsQ0FBQztBQUNWLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFJLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hELE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEgsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNyRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELE1BQU0sZ0JBQWdCO0lBQ2xCLFlBQ3FCLGVBQXdELEVBQ3hELFlBQTJCLGNBQWM7UUFEekMsb0JBQWUsR0FBZixlQUFlLENBQXlDO1FBQ3hELGNBQVMsR0FBVCxTQUFTLENBQWdDO0lBQzNELENBQUM7SUFFRyxHQUFHO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxRQUFRLENBQUMsR0FBRyxJQUEyQztRQUMxRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQTJCLGNBQWM7SUFDakcsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQTJCLGNBQWM7SUFDakcsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIFNjaGVkdWxlckxpa2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIsIE9ic2VydmFibGUsIHBpcGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGN1aVpvbmVmdWxsPFQ+KHpvbmUgPSBpbmplY3QoTmdab25lKSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gICAgcmV0dXJuIChzb3VyY2UpID0+XG4gICAgICAgIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PlxuICAgICAgICAgICAgc291cmNlLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKHZhbHVlKSA9PiB6b25lLnJ1bigoKSA9PiBzdWJzY3JpYmVyLm5leHQodmFsdWUpKSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yOiB1bmtub3duKSA9PiB6b25lLnJ1bigoKSA9PiBzdWJzY3JpYmVyLmVycm9yKGVycm9yKSksXG4gICAgICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHpvbmUucnVuKCgpID0+IHN1YnNjcmliZXIuY29tcGxldGUoKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlab25lZnJlZTxUPih6b25lID0gaW5qZWN0KE5nWm9uZSkpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICAgIHJldHVybiAoc291cmNlKSA9PiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBzb3VyY2Uuc3Vic2NyaWJlKHN1YnNjcmliZXIpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlab25lT3B0aW1pemVkPFQ+KHpvbmUgPSBpbmplY3QoTmdab25lKSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gICAgcmV0dXJuIHBpcGUoY3VpWm9uZWZyZWUoem9uZSksIGN1aVpvbmVmdWxsKHpvbmUpKTtcbn1cblxuY2xhc3MgQ3VpWm9uZVNjaGVkdWxlciBpbXBsZW1lbnRzIFNjaGVkdWxlckxpa2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHpvbmVDb25kaXRpb25GbjogPFQ+KGZuOiAoLi4uYXJnczogdW5rbm93bltdKSA9PiBUKSA9PiBULFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSA9IGFzeW5jU2NoZWR1bGVyXG4gICAgKSB7fVxuXG4gICAgcHVibGljIG5vdygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZXIubm93KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNjaGVkdWxlKC4uLmFyZ3M6IFBhcmFtZXRlcnM8U2NoZWR1bGVyTGlrZVsnc2NoZWR1bGUnXT4pOiBTdWJzY3JpcHRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy56b25lQ29uZGl0aW9uRm4oKCkgPT4gdGhpcy5zY2hlZHVsZXIuc2NoZWR1bGUoLi4uYXJncykpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGN1aVpvbmVmcmVlU2NoZWR1bGVyKHpvbmUgPSBpbmplY3QoTmdab25lKSwgc2NoZWR1bGVyOiBTY2hlZHVsZXJMaWtlID0gYXN5bmNTY2hlZHVsZXIpOiBTY2hlZHVsZXJMaWtlIHtcbiAgICByZXR1cm4gbmV3IEN1aVpvbmVTY2hlZHVsZXIoem9uZS5ydW5PdXRzaWRlQW5ndWxhci5iaW5kKHpvbmUpLCBzY2hlZHVsZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3VpWm9uZWZ1bGxTY2hlZHVsZXIoem9uZSA9IGluamVjdChOZ1pvbmUpLCBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UgPSBhc3luY1NjaGVkdWxlcik6IFNjaGVkdWxlckxpa2Uge1xuICAgIHJldHVybiBuZXcgQ3VpWm9uZVNjaGVkdWxlcih6b25lLnJ1bi5iaW5kKHpvbmUpLCBzY2hlZHVsZXIpO1xufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CuiFilterPipe {
|
|
4
|
+
transform(items, matcher, ...args) {
|
|
5
|
+
return items.filter((item) => matcher(item, ...args));
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterPipe, isStandalone: true, name: "cuiFilter" }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFilterPipe, decorators: [{
|
|
11
|
+
type: Pipe,
|
|
12
|
+
args: [{
|
|
13
|
+
standalone: true,
|
|
14
|
+
name: 'cuiFilter'
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvcGlwZXMvZmlsdGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRckMsTUFBTSxPQUFPLGFBQWE7SUFDdEIsU0FBUyxDQUF5QixLQUF1QixFQUFFLE9BQThCLEVBQUUsR0FBRyxJQUFPO1FBQ2pHLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQzsrR0FIUSxhQUFhOzZHQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBSnpCLElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxXQUFXO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDdWlNYXRjaGVyIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5AUGlwZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBuYW1lOiAnY3VpRmlsdGVyJ1xufSlcbmV4cG9ydCBjbGFzcyBDdWlGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtPFQsIFUgZXh0ZW5kcyB1bmtub3duW10+KGl0ZW1zOiBSZWFkb25seUFycmF5PFQ+LCBtYXRjaGVyOiBDdWlNYXRjaGVyPFtULCAuLi5VXT4sIC4uLmFyZ3M6IFUpOiBUW10ge1xuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBtYXRjaGVyKGl0ZW0sIC4uLmFyZ3MpKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './filter.pipe';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvcGlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbHRlci5waXBlJztcbiJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { SystemUnits } from '../constants';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CuiConsumptionUnitsService {
|
|
5
|
+
getConsumptionsUnits(material) {
|
|
6
|
+
let consumptionsUnits = {};
|
|
7
|
+
const consumptionsUnitsSystem = this.getConsumptionsUnitsSystem(material);
|
|
8
|
+
const consumptions = material.consumption;
|
|
9
|
+
consumptions.forEach((consumption) => {
|
|
10
|
+
consumptionsUnits = {
|
|
11
|
+
...consumptionsUnits,
|
|
12
|
+
[consumption]: this.getConsumptionUnits(consumption, consumptionsUnitsSystem)
|
|
13
|
+
};
|
|
14
|
+
});
|
|
15
|
+
return consumptionsUnits;
|
|
16
|
+
}
|
|
17
|
+
getConsumptionByUnit(unit) {
|
|
18
|
+
const unitsSystem = this.getUnitsSystemByUnit(unit);
|
|
19
|
+
const consumption = Object.entries(SystemUnits[unitsSystem]).find(([consumption, consumptionUnits]) => consumptionUnits.find((consumptionUnit) => consumptionUnit.value === unit))?.[0];
|
|
20
|
+
return consumption ?? "LENGTH" /* Consumption.Length */;
|
|
21
|
+
}
|
|
22
|
+
getUnitsSystemByUnit(consumptionUnit) {
|
|
23
|
+
return Object.entries(SystemUnits).find(([unitsSystem, consumptionUnits]) => Object.entries(consumptionUnits).find(([consumption, units]) => units.find((unit) => unit.value === consumptionUnit)))?.[0];
|
|
24
|
+
}
|
|
25
|
+
getConsumptionsUnitsSystem(material) {
|
|
26
|
+
let specifications = {};
|
|
27
|
+
if (material.specifications) {
|
|
28
|
+
specifications = material.specifications;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
specifications = this.prepareParametersToSpecifications(material);
|
|
32
|
+
}
|
|
33
|
+
const weightValue = specifications.weight.unit;
|
|
34
|
+
const unitsSystem = Object.entries(SystemUnits).find(([key, value]) => value.WEIGHT?.includes(weightValue));
|
|
35
|
+
if (!unitsSystem) {
|
|
36
|
+
return "METRIC" /* UnitsSystem.Metric */;
|
|
37
|
+
}
|
|
38
|
+
return unitsSystem[0];
|
|
39
|
+
}
|
|
40
|
+
prepareParametersToSpecifications(material) {
|
|
41
|
+
const arrayFromParameters = material.parameters.map((param) => {
|
|
42
|
+
return {
|
|
43
|
+
[param.measure.toLowerCase()]: { value: param.value, unit: param.unit }
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
return arrayFromParameters.reduce((result, item) => {
|
|
47
|
+
for (const key in item) {
|
|
48
|
+
if (Object.prototype.hasOwnProperty.call(item, key)) {
|
|
49
|
+
result[key] = item[key];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}, {});
|
|
54
|
+
}
|
|
55
|
+
getConsumptionUnits(consumption, unitsSystem) {
|
|
56
|
+
return SystemUnits[unitsSystem][consumption] ?? [];
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiConsumptionUnitsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
59
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiConsumptionUnitsService, providedIn: 'root' }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiConsumptionUnitsService, decorators: [{
|
|
62
|
+
type: Injectable,
|
|
63
|
+
args: [{
|
|
64
|
+
providedIn: 'root'
|
|
65
|
+
}]
|
|
66
|
+
}] });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3VtcHRpb24tdW5pdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zZXJ2aWNlcy9jb25zdW1wdGlvbi11bml0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBZSxNQUFNLGNBQWMsQ0FBQzs7QUFLeEQsTUFBTSxPQUFPLDBCQUEwQjtJQUM1QixvQkFBb0IsQ0FBQyxRQUFhO1FBQ3JDLElBQUksaUJBQWlCLEdBQXFCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRSxNQUFNLFlBQVksR0FBa0IsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUV6RCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFO1lBQzlDLGlCQUFpQixHQUFHO2dCQUNoQixHQUFHLGlCQUFpQjtnQkFDcEIsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLHVCQUF1QixDQUFDO2FBQ2hGLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQztJQUVNLG9CQUFvQixDQUFDLElBQVk7UUFDcEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQ2xHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFF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J0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3VtcHRpb24sIENvbnN1bXB0aW9uVW5pdHMsIFVuaXQgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgU3lzdGVtVW5pdHMsIFVuaXRzU3lzdGVtIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDdWlDb25zdW1wdGlvblVuaXRzU2VydmljZSB7XG4gICAgcHVibGljIGdldENvbnN1bXB0aW9uc1VuaXRzKG1hdGVyaWFsOiBhbnkpOiBDb25zdW1wdGlvblVuaXRzIHtcbiAgICAgICAgbGV0IGNvbnN1bXB0aW9uc1VuaXRzOiBDb25zdW1wdGlvblVuaXRzID0ge307XG4gICAgICAgIGNvbnN0IGNvbnN1bXB0aW9uc1VuaXRzU3lzdGVtID0gdGhpcy5nZXRDb25zdW1wdGlvbnNVbml0c1N5c3RlbShtYXRlcmlhbCk7XG4gICAgICAgIGNvbnN0IGNvbnN1bXB0aW9uczogQ29uc3VtcHRpb25bXSA9IG1hdGVyaWFsLmNvbnN1bXB0aW9uO1xuXG4gICAgICAgIGNvbnN1bXB0aW9ucy5mb3JFYWNoKChjb25zdW1wdGlvbjogQ29uc3VtcHRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN1bXB0aW9uc1VuaXRzID0ge1xuICAgICAgICAgICAgICAgIC4uLmNvbnN1bXB0aW9uc1VuaXRzLFxuICAgICAgICAgICAgICAgIFtjb25zdW1wdGlvbl06IHRoaXMuZ2V0Q29uc3VtcHRpb25Vbml0cyhjb25zdW1wdGlvbiwgY29uc3VtcHRpb25zVW5pdHNTeXN0ZW0pXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY29uc3VtcHRpb25zVW5pdHM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnN1bXB0aW9uQnlVbml0KHVuaXQ6IHN0cmluZyk6IENvbnN1bXB0aW9uIHtcbiAgICAgICAgY29uc3QgdW5pdHNTeXN0ZW0gPSB0aGlzLmdldFVuaXRzU3lzdGVtQnlVbml0KHVuaXQpO1xuICAgICAgICBjb25zdCBjb25zdW1wdGlvbiA9IE9iamVjdC5lbnRyaWVzKFN5c3RlbVVuaXRzW3VuaXRzU3lzdGVtXSkuZmluZCgoW2NvbnN1bXB0aW9uLCBjb25zdW1wdGlvblVuaXRzXSkgPT5cbiAgICAgICAgICAgIGNvbnN1bXB0aW9uVW5pdHMuZmluZCgoY29uc3VtcHRpb25Vbml0KSA9PiBjb25zdW1wdGlvblVuaXQudmFsdWUgPT09IHVuaXQpXG4gICAgICAgICk/LlswXTtcblxuICAgICAgICByZXR1cm4gKGNvbnN1bXB0aW9uIGFzIENvbnN1bXB0aW9uKSA/PyBDb25zdW1wdGlvbi5MZW5ndGg7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFVuaXRzU3lzdGVtQnlVbml0KGNvbnN1bXB0aW9uVW5pdDogc3RyaW5nKTogVW5pdHNTeXN0ZW0ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoU3lzdGVtVW5pdHMpLmZpbmQoKFt1bml0c1N5c3RlbSwgY29uc3VtcHRpb25Vbml0c10pID0+XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhjb25zdW1wdGlvblVuaXRzKS5maW5kKChbY29uc3VtcHRpb24sIHVuaXRzXSkgPT5cbiAgICAgICAgICAgICAgICB1bml0cy5maW5kKCh1bml0KSA9PiB1bml0LnZhbHVlID09PSBjb25zdW1wdGlvblVuaXQpXG4gICAgICAgICAgICApXG4gICAgICAgICk/LlswXSBhcyBVbml0c1N5c3RlbTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbnN1bXB0aW9uc1VuaXRzU3lzdGVtKG1hdGVyaWFsOiBhbnkpOiBVbml0c1N5c3RlbSB7XG4gICAgICAgIGxldCBzcGVjaWZpY2F0aW9uczogYW55ID0ge307XG5cbiAgICAgICAgaWYgKG1hdGVyaWFsLnNwZWNpZmljYXRpb25zKSB7XG4gICAgICAgICAgICBzcGVjaWZpY2F0aW9ucyA9IG1hdGVyaWFsLnNwZWNpZmljYXRpb25zO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3BlY2lmaWNhdGlvbnMgPSB0aGlzLnByZXBhcmVQYXJhbWV0ZXJzVG9TcGVjaWZpY2F0aW9ucyhtYXRlcmlhbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB3ZWlnaHRWYWx1ZSA9IHNwZWNpZmljYXRpb25zLndlaWdodC51bml0O1xuICAgICAgICBjb25zdCB1bml0c1N5c3RlbSA9IE9iamVjdC5lbnRyaWVzKFN5c3RlbVVuaXRzKS5maW5kKChba2V5LCB2YWx1ZV0pID0+IHZhbHVlLldFSUdIVD8uaW5jbHVkZXMod2VpZ2h0VmFsdWUpKTtcblxuICAgICAgICBpZiAoIXVuaXRzU3lzdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gVW5pdHNTeXN0ZW0uTWV0cmljO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuaXRzU3lzdGVtWzBdIGFzIFVuaXRzU3lzdGVtO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJlcGFyZVBhcmFtZXRlcnNUb1NwZWNpZmljYXRpb25zKG1hdGVyaWFsOiBhbnkpOiBhbnkge1xuICAgICAgICBjb25zdCBhcnJheUZyb21QYXJhbWV0ZXJzID0gbWF0ZXJpYWwucGFyYW1ldGVycy5tYXAoKHBhcmFtOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgW3BhcmFtLm1lYXN1cmUudG9Mb3dlckNhc2UoKV06IHsgdmFsdWU6IHBhcmFtLnZhbHVlLCB1bml0OiBwYXJhbS51bml0IH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhcnJheUZyb21QYXJhbWV0ZXJzLnJlZHVjZSgocmVzdWx0OiBhbnksIGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaXRlbSkge1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbSwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGl0ZW1ba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbnN1bXB0aW9uVW5pdHMoY29uc3VtcHRpb246IENvbnN1bXB0aW9uLCB1bml0c1N5c3RlbTogVW5pdHNTeXN0ZW0pOiBVbml0W10ge1xuICAgICAgICByZXR1cm4gU3lzdGVtVW5pdHNbdW5pdHNTeXN0ZW1dW2NvbnN1bXB0aW9uXSA/PyBbXTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CuiDestroyService extends Subject {
|
|
5
|
+
ngOnDestroy() {
|
|
6
|
+
this.next();
|
|
7
|
+
this.complete();
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDestroyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDestroyService }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDestroyService, decorators: [{
|
|
13
|
+
type: Injectable
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NlcnZpY2VzL2Rlc3Ryb3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRy9CLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxPQUFhO0lBQ3pDLFdBQVc7UUFDZCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQzsrR0FKUSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDdWlEZXN0cm95U2VydmljZSBleHRlbmRzIFN1YmplY3Q8dm9pZD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZXh0KCk7XG4gICAgICAgIHRoaXMuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
const CUI = 'cui_';
|
|
4
|
+
export class CuiIdService {
|
|
5
|
+
static { this.autoId = 0; }
|
|
6
|
+
generate() {
|
|
7
|
+
return `${CUI}${CuiIdService.autoId++}${Date.now()}`;
|
|
8
|
+
}
|
|
9
|
+
checkIdGenerated(id) {
|
|
10
|
+
return id.startsWith(CUI);
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
13
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiIdService, providedIn: 'root' }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiIdService, decorators: [{
|
|
16
|
+
type: Injectable,
|
|
17
|
+
args: [{
|
|
18
|
+
providedIn: 'root'
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zZXJ2aWNlcy9pZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQztBQUtuQixNQUFNLE9BQU8sWUFBWTthQUNOLFdBQU0sR0FBRyxDQUFDLEFBQUosQ0FBSztJQUVuQixRQUFRO1FBQ1gsT0FBTyxHQUFHLEdBQUcsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQVU7UUFDOUIsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBVFEsWUFBWTttSEFBWixZQUFZLGNBRlQsTUFBTTs7NEZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IENVSSA9ICdjdWlfJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDdWlJZFNlcnZpY2Uge1xuICAgIHByaXZhdGUgc3RhdGljIGF1dG9JZCA9IDA7XG5cbiAgICBwdWJsaWMgZ2VuZXJhdGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke0NVSX0ke0N1aUlkU2VydmljZS5hdXRvSWQrK30ke0RhdGUubm93KCl9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tJZEdlbmVyYXRlZChpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpZC5zdGFydHNXaXRoKENVSSk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './consumption-units.service';
|
|
2
|
+
export * from './destroy.service';
|
|
3
|
+
export * from './id.service';
|
|
4
|
+
export * from './popover.service';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnN1bXB0aW9uLXVuaXRzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXN0cm95LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcG9wb3Zlci5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { CuiIdService } from './id.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class CuiPopoverService {
|
|
6
|
+
constructor(items, component, options = {}) {
|
|
7
|
+
this.options = options;
|
|
8
|
+
this.cuiIdService = inject(CuiIdService);
|
|
9
|
+
this.items$ = inject(items);
|
|
10
|
+
this.component = component;
|
|
11
|
+
}
|
|
12
|
+
open(content, options = {}) {
|
|
13
|
+
return new Observable((observer) => {
|
|
14
|
+
const item = {
|
|
15
|
+
...this.options,
|
|
16
|
+
...options,
|
|
17
|
+
$implicit: observer,
|
|
18
|
+
id: this.cuiIdService.generate(),
|
|
19
|
+
component: this.component,
|
|
20
|
+
content: content,
|
|
21
|
+
completeWith: (result) => {
|
|
22
|
+
observer.next(result);
|
|
23
|
+
observer.complete();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
this.items$.next([...this.items$.value, item]);
|
|
27
|
+
return () => {
|
|
28
|
+
this.items$.next(this.items$.value.filter((value) => value !== item));
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
closeAll() {
|
|
33
|
+
this.items$.next([]);
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiPopoverService, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiPopoverService }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiPopoverService, decorators: [{
|
|
39
|
+
type: Injectable
|
|
40
|
+
}], ctorParameters: () => [{ type: undefined }, { type: undefined }, { type: undefined }] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NlcnZpY2VzL3BvcG92ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBYzVDLE1BQU0sT0FBZ0IsaUJBQWlCO0lBS25DLFlBQ0ksS0FBbUUsRUFDbkUsU0FBb0IsRUFDSCxVQUFhLEVBQU87UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQVB4QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQVNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRU0sSUFBSSxDQUFDLE9BQXFDLEVBQUUsVUFBc0IsRUFBRTtRQUN2RSxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEdBQWtCO2dCQUN4QixHQUFHLElBQUksQ0FBQyxPQUFPO2dCQUNmLEdBQUcsT0FBTztnQkFDVixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFO2dCQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDckIsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QixDQUFDO2FBQ0osQ0FBQztZQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRS9DLE9BQU8sR0FBRyxFQUFFO2dCQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDMUUsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7K0dBdkNpQixpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvdmlkZXJUb2tlbiwgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEN1aUlkU2VydmljZSB9IGZyb20gJy4vaWQuc2VydmljZSc7XG5cbi8vIFRPRE86IENvbnRlbnQg0LTQvtC70LbQtdC9INCx0YvRgtGMINGC0LjQv9C+0Lwg0LjQtyDQtNC40YDQtdC60YLQuNCy0YsgKmNvbnRlbnRcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpUG9wb3ZlckNvbnRleHQge1xuICAgIHJlYWRvbmx5ICRpbXBsaWNpdDogT2JzZXJ2ZXI8YW55PjtcbiAgICByZWFkb25seSBpZDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGNvbXBvbmVudDogVHlwZTx1bmtub3duPjtcbiAgICByZWFkb25seSBjb250ZW50OiBUeXBlPHVua25vd24+IHwgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc7XG4gICAgcmVhZG9ubHkgY29tcGxldGVXaXRoOiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIEN1aVBvcG92ZXI8VD4gPSBUICYgQ3VpUG9wb3ZlckNvbnRleHQ7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdWlQb3BvdmVyU2VydmljZTxUPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlJZFNlcnZpY2UgPSBpbmplY3QoQ3VpSWRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zJDogQmVoYXZpb3JTdWJqZWN0PFJlYWRvbmx5QXJyYXk8Q3VpUG9wb3ZlcjxUPj4+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50OiBUeXBlPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaXRlbXM6IFByb3ZpZGVyVG9rZW48QmVoYXZpb3JTdWJqZWN0PFJlYWRvbmx5QXJyYXk8Q3VpUG9wb3ZlcjxUPj4+PixcbiAgICAgICAgY29tcG9uZW50OiBUeXBlPGFueT4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVCA9IHt9IGFzIFRcbiAgICApIHtcbiAgICAgICAgdGhpcy5pdGVtcyQgPSBpbmplY3QoaXRlbXMpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3Blbihjb250ZW50OiBDdWlQb3BvdmVyQ29udGV4dFsnY29udGVudCddLCBvcHRpb25zOiBQYXJ0aWFsPFQ+ID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdGVtOiBDdWlQb3BvdmVyPFQ+ID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogb2JzZXJ2ZXIsXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuY3VpSWRTZXJ2aWNlLmdlbmVyYXRlKCksXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLmNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb250ZW50LFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlV2l0aDogKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5pdGVtcyQubmV4dChbLi4udGhpcy5pdGVtcyQudmFsdWUsIGl0ZW1dKTtcblxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zJC5uZXh0KHRoaXMuaXRlbXMkLnZhbHVlLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSBpdGVtKSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbXMkLm5leHQoW10pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
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 ? of(target) : shadowRootActiveElement(root).pipe(startWith(target));
|
|
40
|
+
})), mousedown$.pipe(switchMap((event) => {
|
|
41
|
+
const actualTargetInCurrentTime = cuiGetActualTarget(event);
|
|
42
|
+
return !doc.activeElement || doc.activeElement === doc.body
|
|
43
|
+
? of(actualTargetInCurrentTime)
|
|
44
|
+
: focusout$.pipe(take(1), map(
|
|
45
|
+
/**
|
|
46
|
+
* Do not use `map(() => cuiGetActualTarget(event))`
|
|
47
|
+
* because we have different result in runtime
|
|
48
|
+
*/
|
|
49
|
+
() => actualTargetInCurrentTime), takeUntil(timer(0, cuiZonefreeScheduler(zone))));
|
|
50
|
+
}))).pipe(distinctUntilChanged(), share());
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdG9rZW5zL2FjdGl2ZS1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDSCx5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDNUIsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUNILG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILEtBQUssRUFDTCxFQUFFLEVBQ0YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsS0FBSyxFQUNMLGNBQWMsRUFDakIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RCxvRUFBb0U7QUFDcEUsU0FBUyxlQUFlLENBQUMsTUFBVyxFQUFFLGlCQUFpQyxJQUFJO0lBQ3ZFLE9BQU87SUFDSCw4Q0FBOEM7SUFDOUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxLQUFLLE1BQU07UUFDM0QsdUVBQXVFO1FBQ3ZFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDNUIsNENBQTRDO1FBQzVDLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDakMsc0RBQXNEO1FBQ3RELHlCQUF5QixDQUFDLE1BQU0sQ0FB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Q0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQyxDQUFDLENBQ0wsRUFDRCxVQUFVLENBQUMsSUFBSSxDQUNYLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2hCLE1BQU0seUJBQXlCLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksR0FBRyxDQUFDLGFBQWEsS0FBSyxHQUFHLENBQUMsSUFBSTtZQUN2RCxDQUFDLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQy9CLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHO1lBQ0M7OztlQUdHO1lBQ0gsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQ2xDLEVBQ0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNsRCxDQUFDO0lBQ1osQ0FBQyxDQUFDLENBQ0wsQ0FDSixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ1VJX1dJTkRPVyB9IGZyb20gJy4vd2luZG93JztcbmltcG9ydCB7IGN1aVR5cGVkRnJvbUV2ZW50LCBjdWlab25lZnJlZVNjaGVkdWxlciB9IGZyb20gJy4uL29ic2VydmFibGVzJztcbmltcG9ydCB7XG4gICAgY3VpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSxcbiAgICBjdWlHZXRBY3R1YWxUYXJnZXQsXG4gICAgY3VpR2V0RG9jdW1lbnRPclNoYWRvd1Jvb3QsXG4gICAgY3VpSXNOYXRpdmVNb3VzZUZvY3VzYWJsZVxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBtZXJnZSxcbiAgICBvZixcbiAgICByZXBlYXQsXG4gICAgc2hhcmUsXG4gICAgc3RhcnRXaXRoLFxuICAgIHN3aXRjaE1hcCxcbiAgICB0YWtlLFxuICAgIHRha2VVbnRpbCxcbiAgICB0aW1lcixcbiAgICB3aXRoTGF0ZXN0RnJvbVxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ1VJX1JFTU9WRURfRUxFTUVOVCB9IGZyb20gJy4vcmVtb3ZlZC1lbGVtZW50JztcblxuLy8gQ2hlY2tzIGlmIGZvY3Vzb3V0IGV2ZW50IHNob3VsZCBiZSBjb25zaWRlcmVkIGxlYXZpbmcgYWN0aXZlIHpvbmVcbmZ1bmN0aW9uIGlzVmFsaWRGb2N1c291dCh0YXJnZXQ6IGFueSwgcmVtb3ZlZEVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIC8vIE5vdCBkdWUgdG8gc3dpdGNoaW5nIHRhYnMvZ29pbmcgdG8gRGV2VG9vbHNcbiAgICAgICAgY3VpR2V0RG9jdW1lbnRPclNoYWRvd1Jvb3QodGFyZ2V0KS5hY3RpdmVFbGVtZW50ICE9PSB0YXJnZXQgJiZcbiAgICAgICAgLy8gTm90IGR1ZSB0byBidXR0b24vaW5wdXQgYmVjb21pbmcgZGlzYWJsZWQgb3IgdW5kZXIgZGlzYWJsZWQgZmllbGRzZXRcbiAgICAgICAgIXRhcmdldC5tYXRjaGVzKCc6ZGlzYWJsZWQnKSAmJlxuICAgICAgICAvLyBOb3QgZHVlIHRvIGVsZW1lbnQgYmVpbmcgcmVtb3ZlZCBmcm9tIERPTVxuICAgICAgICAhcmVtb3ZlZEVsZW1lbnQ/LmNvbnRhaW5zKHRhcmdldCkgJiZcbiAgICAgICAgLy8gTm90IGR1ZSB0byBzY3JvbGxhYmxlIGVsZW1lbnQgYmVjYW1lIG5vbi1zY3JvbGxhYmxlXG4gICAgICAgIGN1aUlzTmF0aXZlTW91c2VGb2N1c2FibGUodGFyZ2V0KVxuICAgICk7XG59XG5cbmZ1bmN0aW9uIHNoYWRvd1Jvb3RBY3RpdmVFbGVtZW50KHJvb3Q6IERvY3VtZW50KTogT2JzZXJ2YWJsZTxFdmVudFRhcmdldCB8IG51bGw+IHtcbiAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgIGN1aVR5cGVkRnJvbUV2ZW50KHJvb3QsICdmb2N1c2luJykucGlwZShtYXAoKHsgdGFyZ2V0IH0pID0+IHRhcmdldCkpLFxuICAgICAgICBjdWlUeXBlZEZyb21FdmVudChyb290LCAnZm9jdXNvdXQnKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKCh7IHRhcmdldCwgcmVsYXRlZFRhcmdldCB9KSA9PiAhIXJlbGF0ZWRUYXJnZXQgJiYgaXNWYWxpZEZvY3Vzb3V0KHRhcmdldCkpLFxuICAgICAgICAgICAgbWFwKCh7IHJlbGF0ZWRUYXJnZXQgfSkgPT4gcmVsYXRlZFRhcmdldClcbiAgICAgICAgKVxuICAgICk7XG59XG5cbi8qKlxuICogQWN0aXZlIGVsZW1lbnQgb24gdGhlIGRvY3VtZW50IGZvciBBY3RpdmVab25lXG4gKi9cbmV4cG9ydCBjb25zdCBDVUlfQUNUSVZFX0VMRU1FTlQgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5PE9ic2VydmFibGU8RXZlbnRUYXJnZXQgfCBudWxsPj4oKCkgPT4ge1xuICAgIGNvbnN0IHJlbW92ZWRFbGVtZW50JCA9IGluamVjdChDVUlfUkVNT1ZFRF9FTEVNRU5UKTtcbiAgICBjb25zdCB3aW4gPSBpbmplY3QoQ1VJX1dJTkRPVyk7XG4gICAgY29uc3QgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBjb25zdCB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgY29uc3QgZm9jdXNvdXQkID0gY3VpVHlwZWRGcm9tRXZlbnQod2luLCAnZm9jdXNvdXQnLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgY29uc3QgZm9jdXNpbiQgPSBjdWlUeXBlZEZyb21FdmVudCh3aW4sICdmb2N1c2luJywgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIGNvbnN0IGJsdXIkID0gY3VpVHlwZWRGcm9tRXZlbnQod2luLCAnYmx1cicpO1xuICAgIGNvbnN0IG1vdXNlZG93biQgPSBjdWlUeXBlZEZyb21FdmVudCh3aW4sICdtb3VzZWRvd24nKTtcbiAgICBjb25zdCBtb3VzZXVwJCA9IGN1aVR5cGVkRnJvbUV2ZW50KHdpbiwgJ21vdXNldXAnKTtcblxuICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgZm9jdXNvdXQkLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwobW91c2Vkb3duJCksXG4gICAgICAgICAgICByZXBlYXQoeyBkZWxheTogKCkgPT4gbW91c2V1cCQgfSksXG4gICAgICAgICAgICB3aXRoTGF0ZXN0RnJvbShyZW1vdmVkRWxlbWVudCQpLFxuICAgICAgICAgICAgZmlsdGVyKChbZXZlbnQsIHJlbW92ZWRFbGVtZW50XSkgPT4gaXNWYWxpZEZvY3Vzb3V0KGN1aUdldEFjdHVhbFRhcmdldChldmVudCksIHJlbW92ZWRFbGVtZW50KSksXG4gICAgICAgICAgICBtYXAoKFt7IHJlbGF0ZWRUYXJnZXQgfV0pID0+IHJlbGF0ZWRUYXJnZXQpXG4gICAgICAgICksXG4gICAgICAgIGJsdXIkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKCkgPT4gZG9jLmFjdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICAgZmlsdGVyKChlbGVtZW50KSA9PiAhIWVsZW1lbnQ/Lm1hdGNoZXMoJ2lmcmFtZScpKVxuICAgICAgICApLFxuICAgICAgICBmb2N1c2luJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGN1aUdldEFjdHVhbFRhcmdldChldmVudCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9vdCA9IGN1aUdldERvY3VtZW50T3JTaGFkb3dSb290KHRhcmdldCkgYXMgRG9jdW1lbnQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcm9vdCA9PT0gZG9jID8gb2YodGFyZ2V0KSA6IHNoYWRvd1Jvb3RBY3RpdmVFbGVtZW50KHJvb3QpLnBpcGUoc3RhcnRXaXRoKHRhcmdldCkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgICAgbW91c2Vkb3duJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFjdHVhbFRhcmdldEluQ3VycmVudFRpbWUgPSBjdWlHZXRBY3R1YWxUYXJnZXQoZXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICFkb2MuYWN0aXZlRWxlbWVudCB8fCBkb2MuYWN0aXZlRWxlbWVudCA9PT0gZG9jLmJvZHlcbiAgICAgICAgICAgICAgICAgICAgPyBvZihhY3R1YWxUYXJnZXRJbkN1cnJlbnRUaW1lKVxuICAgICAgICAgICAgICAgICAgICA6IGZvY3Vzb3V0JC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIERvIG5vdCB1c2UgYG1hcCgoKSA9PiBjdWlHZXRBY3R1YWxUYXJnZXQoZXZlbnQpKWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJlY2F1c2Ugd2UgaGF2ZSBkaWZmZXJlbnQgcmVzdWx0IGluIHJ1bnRpbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gYWN0dWFsVGFyZ2V0SW5DdXJyZW50VGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGltZXIoMCwgY3VpWm9uZWZyZWVTY2hlZHVsZXIoem9uZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlKCkpO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
+
import { Observable, share } from 'rxjs';
|
|
3
|
+
import { CUI_WINDOW } from './window';
|
|
4
|
+
export const CUI_ANIMATION_FRAME = new InjectionToken('[CUI_ANIMATION_FRAME]', {
|
|
5
|
+
factory: () => {
|
|
6
|
+
const { requestAnimationFrame, cancelAnimationFrame } = inject(CUI_WINDOW);
|
|
7
|
+
const animationFrame$ = new Observable((subscriber) => {
|
|
8
|
+
let id = NaN;
|
|
9
|
+
const callback = (timestamp) => {
|
|
10
|
+
subscriber.next(timestamp);
|
|
11
|
+
id = requestAnimationFrame(callback);
|
|
12
|
+
};
|
|
13
|
+
id = requestAnimationFrame(callback);
|
|
14
|
+
return () => {
|
|
15
|
+
cancelAnimationFrame(id);
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
return animationFrame$.pipe(share());
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWZyYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9hbmltYXRpb24tZnJhbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0MsdUJBQXVCLEVBQUU7SUFDNUcsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRSxNQUFNLGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBc0IsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN2RSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDYixNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQThCLEVBQVEsRUFBRTtnQkFDdEQsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDM0IsRUFBRSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQztZQUVGLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVyQyxPQUFPLEdBQUcsRUFBRTtnQkFDUixvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDVUlfV0lORE9XIH0gZnJvbSAnLi93aW5kb3cnO1xuXG5leHBvcnQgY29uc3QgQ1VJX0FOSU1BVElPTl9GUkFNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPERPTUhpZ2hSZXNUaW1lU3RhbXA+PignW0NVSV9BTklNQVRJT05fRlJBTUVdJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgeyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUsIGNhbmNlbEFuaW1hdGlvbkZyYW1lIH0gPSBpbmplY3QoQ1VJX1dJTkRPVyk7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbkZyYW1lJCA9IG5ldyBPYnNlcnZhYmxlPERPTUhpZ2hSZXNUaW1lU3RhbXA+KChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAgICAgICBsZXQgaWQgPSBOYU47XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9ICh0aW1lc3RhbXA6IERPTUhpZ2hSZXNUaW1lU3RhbXApOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodGltZXN0YW1wKTtcbiAgICAgICAgICAgICAgICBpZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayk7XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbkZyYW1lJC5waXBlKHNoYXJlKCkpO1xuICAgIH1cbn0pO1xuIl19
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { CUI_NAVIGATOR } from './navigator';
|
|
4
|
+
import { cuiIsIos } from '../utils';
|
|
5
|
+
import { CUI_FALSE_HANDLER } from '../constants';
|
|
6
|
+
import { cuiCreateTokenFromFactory } from '../utils';
|
|
7
|
+
import { fromEvent, map } from 'rxjs';
|
|
8
|
+
import { CUI_USER_AGENT } from './user-agent';
|
|
9
|
+
import { CUI_WINDOW } from './window';
|
|
10
|
+
// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/
|
|
11
|
+
const firstRegex =
|
|
12
|
+
// eslint-disable-next-line sonarjs/regex-complexity
|
|
13
|
+
/(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/;
|
|
14
|
+
const secondRegex =
|
|
15
|
+
// eslint-disable-next-line sonarjs/regex-complexity
|
|
16
|
+
/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-/;
|
|
17
|
+
export const CUI_IS_MOBILE = cuiCreateTokenFromFactory(() => firstRegex.test(inject(CUI_USER_AGENT).toLowerCase()) ||
|
|
18
|
+
secondRegex.test(inject(CUI_USER_AGENT).slice(0, 4).toLowerCase()));
|
|
19
|
+
export const CUI_IS_IOS = cuiCreateTokenFromFactory(() => cuiIsIos(inject(CUI_NAVIGATOR)));
|
|
20
|
+
export const CUI_IS_ANDROID = cuiCreateTokenFromFactory(() => inject(CUI_IS_MOBILE) && !inject(CUI_IS_IOS));
|
|
21
|
+
export const CUI_IS_WEBKIT = cuiCreateTokenFromFactory(() => !!inject(CUI_WINDOW)?.webkitConvertPointFromNodeToPage);
|
|
22
|
+
export const CUI_PLATFORM = cuiCreateTokenFromFactory(() => {
|
|
23
|
+
if (inject(CUI_IS_IOS)) {
|
|
24
|
+
return 'ios';
|
|
25
|
+
}
|
|
26
|
+
return inject(CUI_IS_ANDROID) ? 'android' : 'web';
|
|
27
|
+
});
|
|
28
|
+
export const CUI_IS_TOUCH = cuiCreateTokenFromFactory(() => {
|
|
29
|
+
const media = inject(CUI_WINDOW).matchMedia('(pointer: coarse)');
|
|
30
|
+
return toSignal(fromEvent(media, 'change').pipe(map(() => media.matches)), {
|
|
31
|
+
initialValue: media.matches
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* Detect if app is running under Cypress
|
|
36
|
+
* {@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}
|
|
37
|
+
*/
|
|
38
|
+
export const CUI_IS_CYPRESS = cuiCreateTokenFromFactory(() => !!inject(CUI_WINDOW).Cypress);
|
|
39
|
+
/**
|
|
40
|
+
* Manually provide `true` when running tests in Playwright
|
|
41
|
+
*/
|
|
42
|
+
export const CUI_IS_PLAYWRIGHT = cuiCreateTokenFromFactory(CUI_FALSE_HANDLER);
|
|
43
|
+
/**
|
|
44
|
+
* Detect if app is running under any of test frameworks
|
|
45
|
+
*/
|
|
46
|
+
export const CUI_IS_E2E = cuiCreateTokenFromFactory(() => inject(CUI_IS_CYPRESS) || inject(CUI_IS_PLAYWRIGHT));
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdG9rZW5zL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0QyxnRkFBZ0Y7QUFDaEYsTUFBTSxVQUFVO0FBQ1osb0RBQW9EO0FBQ3BELDBUQUEwVCxDQUFDO0FBQy9ULE1BQU0sV0FBVztBQUNiLG9EQUFvRDtBQUNwRCxpaURBQWlpRCxDQUFDO0FBRXRpRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcseUJBQXlCLENBQ2xELEdBQUcsRUFBRSxDQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JELFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDekUsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUUzRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcseUJBQXlCLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFFNUcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLHlCQUF5QixDQUNsRCxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFNLFVBQVUsQ0FBQyxFQUFFLGdDQUFnQyxDQUNwRSxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHlCQUF5QixDQUE0QixHQUFHLEVBQUU7SUFDbEYsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUNyQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHlCQUF5QixDQUFDLEdBQUcsRUFBRTtJQUN2RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFakUsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO1FBQ3ZFLFlBQVksRUFBRSxLQUFLLENBQUMsT0FBTztLQUM5QixDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFNLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRWpHOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcseUJBQXlCLENBQVUsaUJBQWlCLENBQUMsQ0FBQztBQUV2Rjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDVUlfTkFWSUdBVE9SIH0gZnJvbSAnLi9uYXZpZ2F0b3InO1xuaW1wb3J0IHsgY3VpSXNJb3MgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBDVUlfRkFMU0VfSEFORExFUiB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENVSV9VU0VSX0FHRU5UIH0gZnJvbSAnLi91c2VyLWFnZW50JztcbmltcG9ydCB7IENVSV9XSU5ET1cgfSBmcm9tICcuL3dpbmRvdyc7XG5cbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xMTM4MTczMC8yNzA2NDI2IGh0dHA6Ly9kZXRlY3Rtb2JpbGVicm93c2Vycy5jb20vXG5jb25zdCBmaXJzdFJlZ2V4ID1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9yZWdleC1jb21wbGV4aXR5XG4gICAgLyhhbmRyb2lkfGJiXFxkK3xtZWVnbykuK21vYmlsZXxhdmFudGdvfGJhZGFcXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVxcL3xwbHVja2VyfHBvY2tldHxwc3B8c2VyaWVzKFs0Nl0pMHxzeW1iaWFufHRyZW98dXBcXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyBjZXx4ZGF8eGlpbm8vO1xuY29uc3Qgc2Vjb25kUmVnZXggPVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL3JlZ2V4LWNvbXBsZXhpdHlcbiAgICAvMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298cy0pfGFpKGtvfHJuKXxhbChhdnxjYXxjbyl8YW1vaXxhbihleHxueXx5dyl8YXB0dXxhcihjaHxnbyl8YXModGV8dXMpfGF0dHd8YXUoZGl8LW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoW2V2XSl3fGJ1bWJ8YnctKFtudV0pfGM1NVxcL3xjYXBpfGNjd2F8Y2RtLXxjZWxsfGNodG18Y2xkY3xjbWQtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oW2NwXSlvfGRzKDEyfC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoWy1fXSl8ZzEgdXxnNTYwfGdlbmV8Z2YtNXxnLW1vfGdvKFxcLnd8b2QpfGdyKGFkfHVuKXxoYWllfGhjaXR8aGQtKFttcHRdKXxoZWktfGhpKHB0fHRhKXxocCggaXxpcCl8aHMtY3xodChjKFstIF9hZ3BzdF0pfHRwKXxodShhd3x0Yyl8aS0oMjB8Z298bWEpfGkyMzB8aWFjKFsgXFwtL10pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYShbdHZdKWF8amJyb3xqZW11fGppZ3N8a2RkaXxrZWppfGtndChbIC9dKXxrbG9ufGtwdCB8a3djLXxreW8oW2NrXSl8bGUobm98eGkpfGxnKCBnfFxcLyhba2x1XSl8NTB8NTR8LVthLXddKXxsaWJ3fGx5bnh8bTEtd3xtM2dhfG01MFxcL3xtYSh0ZXx1aXx4byl8bWMoMDF8MjF8Y2EpfG0tY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoWy0gb3ZdKXx6eil8bXQoNTB8cDF8diApfG13YnB8bXl3YXxuMTBbMC0yXXxuMjBbMi0zXXxuMzAoWzAyXSl8bjUwKFswMjVdKXxuNygwKFswMV0pfDEwKXxuZSgoW2NtXSktfG9ufHRmfHdmfHdnfHd0KXxub2soWzZpXSl8bnpwaHxvMmltfG9wKHRpfHd2KXxvcmFufG93ZzF8cDgwMHxwYW4oW2FkdF0pfHBkeGd8cGcoMTN8LShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwbi0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHQtZ3xxYS1hfHFjKDA3fDEyfDIxfDMyfDYwfC1bMi03XXxpLSl8cXRla3xyMzgwfHI2MDB8cmFrc3xyaW05fHJvKHZlfHpvKXxzNTVcXC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGgtfG9vfHAtKXxzZGtcXC98c2UoYyhbLTAxXSl8NDd8bWN8bmR8cmkpfHNnaC18c2hhcnxzaWUoWy1tXSl8c2stMHxzbCg0NXxpZCl8c20oYWx8YXJ8YjN8aXR8dDUpfHNvKGZ0fG55KXxzcCgwMXxoLXx2LXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbC18dGRnLXx0ZWwoW2ltXSl8dGltLXx0LW1vfHRvKHBsfHNoKXx0cyg3MHxtLXxtM3xtNSl8dHgtOXx1cChcXC5ifGcxfHNpKXx1dHN0fHY0MDB8djc1MHx2ZXJpfHZpKHJnfHRlKXx2ayg0MHw1WzAtM118LXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoWy0gXSl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXMtfHlvdXJ8emV0b3x6dGUtLztcblxuZXhwb3J0IGNvbnN0IENVSV9JU19NT0JJTEUgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5KFxuICAgICgpID0+XG4gICAgICAgIGZpcnN0UmVnZXgudGVzdChpbmplY3QoQ1VJX1VTRVJfQUdFTlQpLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICAgIHNlY29uZFJlZ2V4LnRlc3QoaW5qZWN0KENVSV9VU0VSX0FHRU5UKS5zbGljZSgwLCA0KS50b0xvd2VyQ2FzZSgpKVxuKTtcblxuZXhwb3J0IGNvbnN0IENVSV9JU19JT1MgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5KCgpID0+IGN1aUlzSW9zKGluamVjdChDVUlfTkFWSUdBVE9SKSkpO1xuXG5leHBvcnQgY29uc3QgQ1VJX0lTX0FORFJPSUQgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5KCgpID0+IGluamVjdChDVUlfSVNfTU9CSUxFKSAmJiAhaW5qZWN0KENVSV9JU19JT1MpKTtcblxuZXhwb3J0IGNvbnN0IENVSV9JU19XRUJLSVQgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5KFxuICAgICgpID0+ICEhaW5qZWN0PGFueT4oQ1VJX1dJTkRPVyk/LndlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlXG4pO1xuXG5leHBvcnQgY29uc3QgQ1VJX1BMQVRGT1JNID0gY3VpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeTwnYW5kcm9pZCcgfCAnaW9zJyB8ICd3ZWInPigoKSA9PiB7XG4gICAgaWYgKGluamVjdChDVUlfSVNfSU9TKSkge1xuICAgICAgICByZXR1cm4gJ2lvcyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluamVjdChDVUlfSVNfQU5EUk9JRCkgPyAnYW5kcm9pZCcgOiAnd2ViJztcbn0pO1xuXG5leHBvcnQgY29uc3QgQ1VJX0lTX1RPVUNIID0gY3VpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSgoKSA9PiB7XG4gICAgY29uc3QgbWVkaWEgPSBpbmplY3QoQ1VJX1dJTkRPVykubWF0Y2hNZWRpYSgnKHBvaW50ZXI6IGNvYXJzZSknKTtcblxuICAgIHJldHVybiB0b1NpZ25hbChmcm9tRXZlbnQobWVkaWEsICdjaGFuZ2UnKS5waXBlKG1hcCgoKSA9PiBtZWRpYS5tYXRjaGVzKSksIHtcbiAgICAgICAgaW5pdGlhbFZhbHVlOiBtZWRpYS5tYXRjaGVzXG4gICAgfSk7XG59KTtcblxuLyoqXG4gKiBEZXRlY3QgaWYgYXBwIGlzIHJ1bm5pbmcgdW5kZXIgQ3lwcmVzc1xuICoge0BsaW5rIGh0dHBzOi8vZG9jcy5jeXByZXNzLmlvL2ZhcS9xdWVzdGlvbnMvdXNpbmctY3lwcmVzcy1mYXEjSXMtdGhlcmUtYW55LXdheS10by1kZXRlY3QtaWYtbXktYXBwLWlzLXJ1bm5pbmctdW5kZXItQ3lwcmVzcyBDeXByZXNzIGRvY3N9XG4gKi9cbmV4cG9ydCBjb25zdCBDVUlfSVNfQ1lQUkVTUyA9IGN1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoKCkgPT4gISFpbmplY3Q8YW55PihDVUlfV0lORE9XKS5DeXByZXNzKTtcblxuLyoqXG4gKiBNYW51YWxseSBwcm92aWRlIGB0cnVlYCB3aGVuIHJ1bm5pbmcgdGVzdHMgaW4gUGxheXdyaWdodFxuICovXG5leHBvcnQgY29uc3QgQ1VJX0lTX1BMQVlXUklHSFQgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5PGJvb2xlYW4+KENVSV9GQUxTRV9IQU5ETEVSKTtcblxuLyoqXG4gKiBEZXRlY3QgaWYgYXBwIGlzIHJ1bm5pbmcgdW5kZXIgYW55IG9mIHRlc3QgZnJhbWV3b3Jrc1xuICovXG5leHBvcnQgY29uc3QgQ1VJX0lTX0UyRSA9IGN1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoKCkgPT4gaW5qZWN0KENVSV9JU19DWVBSRVNTKSB8fCBpbmplY3QoQ1VJX0lTX1BMQVlXUklHSFQpKTtcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { CUI_WINDOW } from './window';
|
|
3
|
+
import { cuiCreateTokenFromFactory } from '../utils/token';
|
|
4
|
+
export const CUI_HISTORY = cuiCreateTokenFromFactory(() => inject(CUI_WINDOW).history);
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90b2tlbnMvaGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLHlCQUF5QixDQUFVLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDVUlfV0lORE9XIH0gZnJvbSAnLi93aW5kb3cnO1xuaW1wb3J0IHsgY3VpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSB9IGZyb20gJy4uL3V0aWxzL3Rva2VuJztcblxuZXhwb3J0IGNvbnN0IENVSV9ISVNUT1JZID0gY3VpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeTxIaXN0b3J5PigoKSA9PiBpbmplY3QoQ1VJX1dJTkRPVykuaGlzdG9yeSk7XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './active-element';
|
|
2
|
+
export * from './animation-frame';
|
|
3
|
+
export * from './environment';
|
|
4
|
+
export * from './history';
|
|
5
|
+
export * from './local-storage';
|
|
6
|
+
export * from './navigator';
|
|
7
|
+
export * from './removed-element';
|
|
8
|
+
export * from './session-storage';
|
|
9
|
+
export * from './user-agent';
|
|
10
|
+
export * from './window';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aXZlLWVsZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hbmltYXRpb24tZnJhbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2hpc3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbC1zdG9yYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcmVtb3ZlZC1lbGVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2Vzc2lvbi1zdG9yYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1hZ2VudCc7XG5leHBvcnQgKiBmcm9tICcuL3dpbmRvdyc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { CUI_WINDOW } from './window';
|
|
3
|
+
import { cuiCreateTokenFromFactory } from '../utils/token';
|
|
4
|
+
export const CUI_LOCAL_STORAGE = cuiCreateTokenFromFactory(() => inject(CUI_WINDOW).localStorage);
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90b2tlbnMvbG9jYWwtc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcseUJBQXlCLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENVSV9XSU5ET1cgfSBmcm9tICcuL3dpbmRvdyc7XG5pbXBvcnQgeyBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5IH0gZnJvbSAnLi4vdXRpbHMvdG9rZW4nO1xuXG5leHBvcnQgY29uc3QgQ1VJX0xPQ0FMX1NUT1JBR0UgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5KCgpID0+IGluamVjdChDVUlfV0lORE9XKS5sb2NhbFN0b3JhZ2UpO1xuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9uYXZpZ2F0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQVksaUJBQWlCLEVBQUU7SUFDMUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTO0NBQzlDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ1VJX1dJTkRPVyB9IGZyb20gJy4vd2luZG93JztcblxuZXhwb3J0IGNvbnN0IENVSV9OQVZJR0FUT1IgPSBuZXcgSW5qZWN0aW9uVG9rZW48TmF2aWdhdG9yPignW0NVSV9OQVZJR0FUT1JdJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IGluamVjdChDVUlfV0lORE9XKS5uYXZpZ2F0b3Jcbn0pO1xuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlZC1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9yZW1vdmVkLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixJQUFJLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHlCQUF5QixDQUFDLEdBQUcsRUFBRTtJQUM5RCxNQUFNLElBQUksR0FBRyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxDQUFDO0lBQzdDLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxDQUFpQixJQUFJLENBQUMsQ0FBQztJQUMzRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ25FLE1BQU0sRUFBRSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFOUQsTUFBTSxDQUFDLGlCQUFpQixHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDO0lBRUYsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUNoQixTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNsQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNULEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDZixTQUFTLENBQUMsT0FBTyxDQUFDLENBQ3JCLENBQ0osRUFDRCxLQUFLLEVBQUUsQ0FDVixDQUFDO0FBQ04sQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyDJtUFuaW1hdGlvbkVuZ2luZSBhcyBBbmltYXRpb25FbmdpbmUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zL2Jyb3dzZXInO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIHNoYXJlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGltZXIgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBFbGVtZW50IGN1cnJlbnRseSBiZWluZyByZW1vdmVkIGJ5IEFuaW1hdGlvbkVuZ2luZVxuICovXG5leHBvcnQgY29uc3QgQ1VJX1JFTU9WRURfRUxFTUVOVCA9IGN1aUNyZWF0ZVRva2VuRnJvbUZhY3RvcnkoKCkgPT4ge1xuICAgIGNvbnN0IHN0dWIgPSB7IG9uUmVtb3ZhbENvbXBsZXRlOiAoKSA9PiB7fSB9O1xuICAgIGNvbnN0IGVsZW1lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgZW5naW5lID0gaW5qZWN0KEFuaW1hdGlvbkVuZ2luZSwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBzdHViO1xuICAgIGNvbnN0IHsgb25SZW1vdmFsQ29tcGxldGUgPSBzdHViLm9uUmVtb3ZhbENvbXBsZXRlIH0gPSBlbmdpbmU7XG5cbiAgICBlbmdpbmUub25SZW1vdmFsQ29tcGxldGUgPSAoZWxlbWVudCwgY29udGV4dCkgPT4ge1xuICAgICAgICBlbGVtZW50JC5uZXh0KGVsZW1lbnQpO1xuICAgICAgICBvblJlbW92YWxDb21wbGV0ZS5jYWxsKGVuZ2luZSwgZWxlbWVudCwgY29udGV4dCk7XG4gICAgfTtcblxuICAgIHJldHVybiBlbGVtZW50JC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGVsZW1lbnQpID0+XG4gICAgICAgICAgICB0aW1lcigwKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiBudWxsKSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgoZWxlbWVudClcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { CUI_WINDOW } from './window';
|
|
3
|
+
import { cuiCreateTokenFromFactory } from '../utils/token';
|
|
4
|
+
export const CUI_SESSION_STORAGE = cuiCreateTokenFromFactory(() => inject(CUI_WINDOW).sessionStorage);
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9zZXNzaW9uLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDVUlfV0lORE9XIH0gZnJvbSAnLi93aW5kb3cnO1xuaW1wb3J0IHsgY3VpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSB9IGZyb20gJy4uL3V0aWxzL3Rva2VuJztcblxuZXhwb3J0IGNvbnN0IENVSV9TRVNTSU9OX1NUT1JBR0UgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5KCgpID0+IGluamVjdChDVUlfV0lORE9XKS5zZXNzaW9uU3RvcmFnZSk7XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90b2tlbnMvdXNlci1hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBUyxrQkFBa0IsRUFBRTtJQUN6RSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVM7Q0FDakQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDVUlfTkFWSUdBVE9SIH0gZnJvbSAnLi9uYXZpZ2F0b3InO1xuXG5leHBvcnQgY29uc3QgQ1VJX1VTRVJfQUdFTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignW0NVSV9VU0VSX0FHRU5UXScsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBpbmplY3QoQ1VJX05BVklHQVRPUikudXNlckFnZW50XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import { cuiCreateTokenFromFactory } from '../utils/token';
|
|
4
|
+
export const CUI_WINDOW = cuiCreateTokenFromFactory(() => {
|
|
5
|
+
const { defaultView } = inject(DOCUMENT);
|
|
6
|
+
if (!defaultView) {
|
|
7
|
+
throw new Error('Window is not available');
|
|
8
|
+
}
|
|
9
|
+
return defaultView;
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy93aW5kb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLHlCQUF5QixDQUFTLEdBQUcsRUFBRTtJQUM3RCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXpDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgY3VpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSB9IGZyb20gJy4uL3V0aWxzL3Rva2VuJztcblxuZXhwb3J0IGNvbnN0IENVSV9XSU5ET1cgPSBjdWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5PFdpbmRvdz4oKCkgPT4ge1xuICAgIGNvbnN0IHsgZGVmYXVsdFZpZXcgfSA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgICBpZiAoIWRlZmF1bHRWaWV3KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignV2luZG93IGlzIG5vdCBhdmFpbGFibGUnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFZpZXc7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90eXBlcy9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEN1aUNvbnRleHQ8VD4ge1xuICAgICRpbXBsaWNpdDogVDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3R5cGVzL2RhdGUtdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ3VpVGltZU1vZGUgPSAnSEg6TU06U1MuTVNTJyB8ICdISDpNTTpTUycgfCAnSEg6TU0nO1xuIl19
|
|
@@ -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,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90eXBlcy9pbnB1dC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDdWlJbnB1dFR5cGUgPSAndGV4dCcgfCAncGFzc3dvcmQnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3R5cGVzL21hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTWFwcGVyPFQgZXh0ZW5kcyB1bmtub3duW10sIEc+ID0gKC4uLmFyZ3M6IFQpID0+IEc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay90eXBlcy9tYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1hcHBlciB9IGZyb20gJy4vbWFwcGVyJztcblxuZXhwb3J0IHR5cGUgQ3VpTWF0Y2hlcjxJIGV4dGVuZHMgdW5rbm93bltdPiA9IE1hcHBlcjxJLCBib29sZWFuPjtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVsbGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdHlwZXMvbnVsbGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEN1aU51bGxhYmxlPFQgPSB2b2lkPiA9IFQgfCBudWxsIHwgdW5kZWZpbmVkO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtb2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdHlwZXMvdmFsdWUtb2YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEN1aVZhbHVlT2Y8VD4gPSBUW2tleW9mIFRdO1xuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function cuiContainsOrAfter(current, node) {
|
|
2
|
+
try {
|
|
3
|
+
return current.contains(node) || !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING);
|
|
4
|
+
}
|
|
5
|
+
catch {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbnMtb3ItYWZ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvZG9tL2NvbnRhaW5zLW9yLWFmdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFhLEVBQUUsSUFBVTtJQUN4RCxJQUFJLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFBQyxNQUFNLENBQUM7UUFDTCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjdWlDb250YWluc09yQWZ0ZXIoY3VycmVudDogTm9kZSwgbm9kZTogTm9kZSk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50LmNvbnRhaW5zKG5vZGUpIHx8ICEhKG5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oY3VycmVudCkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
|