@cuby-ui/cdk 0.0.485 → 0.0.487
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/README.md +380 -13
- package/package.json +4 -1
- package/constants/empty.d.ts +0 -10
- package/constants/handlers.d.ts +0 -8
- package/constants/index.d.ts +0 -4
- package/constants/svg-node-filter.d.ts +0 -1
- package/constants/units.d.ts +0 -17
- package/date-time/index.d.ts +0 -1
- package/date-time/time.d.ts +0 -14
- package/directives/active-zone/active-zone.directive.d.ts +0 -22
- package/directives/active-zone/index.d.ts +0 -1
- package/directives/auto-resizing.directive.d.ts +0 -18
- package/directives/click-outside.directive.d.ts +0 -9
- package/directives/content-editable-value-accessor.directive.d.ts +0 -17
- package/directives/dimensions-observer.directive.d.ts +0 -13
- package/directives/drag-drop/drag-drop.directive.d.ts +0 -42
- package/directives/drag-drop/drag-drop.options.d.ts +0 -11
- package/directives/drag-drop/drag-list.directive.d.ts +0 -10
- package/directives/drag-drop/drag-pointer.directive.d.ts +0 -8
- package/directives/drag-drop/index.d.ts +0 -4
- package/directives/element.directive.d.ts +0 -8
- package/directives/focus-trap.directive.d.ts +0 -14
- package/directives/handle-scroll.directive.d.ts +0 -23
- package/directives/hovered/hovered.directive.d.ts +0 -7
- package/directives/hovered/hovered.service.d.ts +0 -12
- package/directives/hovered/index.d.ts +0 -2
- package/directives/index.d.ts +0 -17
- package/directives/item.directive.d.ts +0 -5
- package/directives/ladder-list.directive.d.ts +0 -13
- package/directives/let.context.d.ts +0 -9
- package/directives/let.directive.d.ts +0 -9
- package/directives/target.directive.d.ts +0 -14
- package/directives/typed-template.directive.d.ts +0 -13
- package/directives/typed-template.options.d.ts +0 -3
- package/esm2022/constants/empty.mjs +0 -24
- package/esm2022/constants/handlers.mjs +0 -11
- package/esm2022/constants/index.mjs +0 -5
- package/esm2022/constants/svg-node-filter.mjs +0 -6
- package/esm2022/constants/units.mjs +0 -64
- package/esm2022/cuby-ui-cdk.mjs +0 -5
- package/esm2022/date-time/index.mjs +0 -2
- package/esm2022/date-time/time.mjs +0 -72
- package/esm2022/directives/active-zone/active-zone.directive.mjs +0 -75
- package/esm2022/directives/active-zone/index.mjs +0 -2
- package/esm2022/directives/auto-resizing.directive.mjs +0 -64
- package/esm2022/directives/click-outside.directive.mjs +0 -29
- package/esm2022/directives/content-editable-value-accessor.directive.mjs +0 -44
- package/esm2022/directives/dimensions-observer.directive.mjs +0 -32
- package/esm2022/directives/drag-drop/drag-drop.directive.mjs +0 -184
- package/esm2022/directives/drag-drop/drag-drop.options.mjs +0 -2
- package/esm2022/directives/drag-drop/drag-list.directive.mjs +0 -22
- package/esm2022/directives/drag-drop/drag-pointer.directive.mjs +0 -20
- package/esm2022/directives/drag-drop/index.mjs +0 -4
- package/esm2022/directives/element.directive.mjs +0 -19
- package/esm2022/directives/focus-trap.directive.mjs +0 -50
- package/esm2022/directives/handle-scroll.directive.mjs +0 -81
- package/esm2022/directives/hovered/hovered.directive.mjs +0 -21
- package/esm2022/directives/hovered/hovered.service.mjs +0 -32
- package/esm2022/directives/hovered/index.mjs +0 -3
- package/esm2022/directives/index.mjs +0 -18
- package/esm2022/directives/item.directive.mjs +0 -14
- package/esm2022/directives/ladder-list.directive.mjs +0 -42
- package/esm2022/directives/let.context.mjs +0 -12
- package/esm2022/directives/let.directive.mjs +0 -23
- package/esm2022/directives/target.directive.mjs +0 -36
- package/esm2022/directives/typed-template.directive.mjs +0 -27
- package/esm2022/directives/typed-template.options.mjs +0 -2
- package/esm2022/index.mjs +0 -12
- package/esm2022/interfaces/dimensions.mjs +0 -2
- package/esm2022/interfaces/index.mjs +0 -4
- package/esm2022/interfaces/on-change.mjs +0 -2
- package/esm2022/interfaces/on-touched.mjs +0 -2
- package/esm2022/models/consumption-units.mjs +0 -2
- package/esm2022/models/index.mjs +0 -2
- package/esm2022/observables/if-map.mjs +0 -5
- package/esm2022/observables/index.mjs +0 -5
- package/esm2022/observables/typed-from-event.mjs +0 -9
- package/esm2022/observables/watch.mjs +0 -6
- package/esm2022/observables/zone.mjs +0 -34
- package/esm2022/pipes/filter.pipe.mjs +0 -17
- package/esm2022/pipes/index.mjs +0 -2
- package/esm2022/services/consumption-units.service.mjs +0 -67
- package/esm2022/services/destroy.service.mjs +0 -15
- package/esm2022/services/id.service.mjs +0 -21
- package/esm2022/services/index.mjs +0 -5
- package/esm2022/services/popover.service.mjs +0 -41
- package/esm2022/tokens/active-element.mjs +0 -52
- package/esm2022/tokens/animation-frame.mjs +0 -21
- package/esm2022/tokens/environment.mjs +0 -47
- package/esm2022/tokens/history.mjs +0 -5
- package/esm2022/tokens/index.mjs +0 -11
- package/esm2022/tokens/local-storage.mjs +0 -5
- package/esm2022/tokens/navigator.mjs +0 -6
- package/esm2022/tokens/removed-element.mjs +0 -19
- package/esm2022/tokens/session-storage.mjs +0 -5
- package/esm2022/tokens/user-agent.mjs +0 -6
- package/esm2022/tokens/window.mjs +0 -11
- package/esm2022/types/context.mjs +0 -2
- package/esm2022/types/date-time.mjs +0 -2
- package/esm2022/types/handler.mjs +0 -2
- package/esm2022/types/index.mjs +0 -9
- package/esm2022/types/input-type.mjs +0 -2
- package/esm2022/types/mapper.mjs +0 -2
- package/esm2022/types/matcher.mjs +0 -2
- package/esm2022/types/nullable.mjs +0 -2
- package/esm2022/types/value-of.mjs +0 -2
- package/esm2022/utils/dom/contains-or-after.mjs +0 -9
- package/esm2022/utils/dom/element-checks.mjs +0 -20
- package/esm2022/utils/dom/get-actual-target.mjs +0 -7
- package/esm2022/utils/dom/get-document-or-shadow-root.mjs +0 -6
- package/esm2022/utils/dom/get-element-obscurers.mjs +0 -42
- package/esm2022/utils/dom/index.mjs +0 -8
- package/esm2022/utils/dom/inject-element.mjs +0 -5
- package/esm2022/utils/dom/point-to-client-rect.mjs +0 -17
- package/esm2022/utils/files/files.uploader.mjs +0 -19
- package/esm2022/utils/files/index.mjs +0 -3
- package/esm2022/utils/files/take-capture-from-video.mjs +0 -25
- package/esm2022/utils/focus/blur-native-focused.mjs +0 -9
- package/esm2022/utils/focus/get-closest-focusable.mjs +0 -22
- package/esm2022/utils/focus/get-native-focused.mjs +0 -11
- package/esm2022/utils/focus/index.mjs +0 -7
- package/esm2022/utils/focus/is-native-focused.mjs +0 -13
- package/esm2022/utils/focus/is-native-keyboard-focusable.mjs +0 -26
- package/esm2022/utils/focus/is-native-mouse-focusable.mjs +0 -6
- package/esm2022/utils/index.mjs +0 -8
- package/esm2022/utils/math/clamp.mjs +0 -11
- package/esm2022/utils/math/index.mjs +0 -2
- package/esm2022/utils/miscellaneous/array-remove.mjs +0 -4
- package/esm2022/utils/miscellaneous/index.mjs +0 -6
- package/esm2022/utils/miscellaneous/is-present.mjs +0 -4
- package/esm2022/utils/miscellaneous/move-item-in-array.mjs +0 -10
- package/esm2022/utils/miscellaneous/pure.mjs +0 -81
- package/esm2022/utils/miscellaneous/px.mjs +0 -7
- package/esm2022/utils/platform/index.mjs +0 -2
- package/esm2022/utils/platform/is-ios.mjs +0 -6
- package/esm2022/utils/token/create-token.mjs +0 -8
- package/esm2022/utils/token/index.mjs +0 -3
- package/esm2022/utils/token/provide.mjs +0 -4
- package/fesm2022/cuby-ui-cdk.mjs +0 -1644
- package/fesm2022/cuby-ui-cdk.mjs.map +0 -1
- package/index.d.ts +0 -11
- package/interfaces/dimensions.d.ts +0 -4
- package/interfaces/index.d.ts +0 -3
- package/interfaces/on-change.d.ts +0 -3
- package/interfaces/on-touched.d.ts +0 -3
- package/models/consumption-units.d.ts +0 -14
- package/models/index.d.ts +0 -1
- package/observables/if-map.d.ts +0 -3
- package/observables/index.d.ts +0 -4
- package/observables/typed-from-event.d.ts +0 -16
- package/observables/watch.d.ts +0 -3
- package/observables/zone.d.ts +0 -7
- package/pipes/filter.pipe.d.ts +0 -8
- package/pipes/index.d.ts +0 -1
- package/services/consumption-units.service.d.ts +0 -13
- package/services/destroy.service.d.ts +0 -8
- package/services/id.service.d.ts +0 -8
- package/services/index.d.ts +0 -4
- package/services/popover.service.d.ts +0 -23
- package/tokens/active-element.d.ts +0 -5
- package/tokens/animation-frame.d.ts +0 -3
- package/tokens/environment.d.ts +0 -19
- package/tokens/history.d.ts +0 -1
- package/tokens/index.d.ts +0 -10
- package/tokens/local-storage.d.ts +0 -1
- package/tokens/navigator.d.ts +0 -2
- package/tokens/removed-element.d.ts +0 -4
- package/tokens/session-storage.d.ts +0 -1
- package/tokens/user-agent.d.ts +0 -2
- package/tokens/window.d.ts +0 -1
- package/types/context.d.ts +0 -3
- package/types/date-time.d.ts +0 -1
- package/types/handler.d.ts +0 -4
- package/types/index.d.ts +0 -8
- package/types/input-type.d.ts +0 -1
- package/types/mapper.d.ts +0 -1
- package/types/matcher.d.ts +0 -2
- package/types/nullable.d.ts +0 -1
- package/types/value-of.d.ts +0 -1
- package/utils/dom/contains-or-after.d.ts +0 -1
- package/utils/dom/element-checks.d.ts +0 -6
- package/utils/dom/get-actual-target.d.ts +0 -4
- package/utils/dom/get-document-or-shadow-root.d.ts +0 -1
- package/utils/dom/get-element-obscurers.d.ts +0 -9
- package/utils/dom/index.d.ts +0 -7
- package/utils/dom/inject-element.d.ts +0 -1
- package/utils/dom/point-to-client-rect.d.ts +0 -1
- package/utils/files/files.uploader.d.ts +0 -5
- package/utils/files/index.d.ts +0 -2
- package/utils/files/take-capture-from-video.d.ts +0 -1
- package/utils/focus/blur-native-focused.d.ts +0 -1
- package/utils/focus/get-closest-focusable.d.ts +0 -7
- package/utils/focus/get-native-focused.d.ts +0 -1
- package/utils/focus/index.d.ts +0 -6
- package/utils/focus/is-native-focused.d.ts +0 -9
- package/utils/focus/is-native-keyboard-focusable.d.ts +0 -1
- package/utils/focus/is-native-mouse-focusable.d.ts +0 -1
- package/utils/index.d.ts +0 -7
- package/utils/math/clamp.d.ts +0 -8
- package/utils/math/index.d.ts +0 -1
- package/utils/miscellaneous/array-remove.d.ts +0 -1
- package/utils/miscellaneous/index.d.ts +0 -5
- package/utils/miscellaneous/is-present.d.ts +0 -1
- package/utils/miscellaneous/move-item-in-array.d.ts +0 -1
- package/utils/miscellaneous/pure.d.ts +0 -21
- package/utils/miscellaneous/px.d.ts +0 -4
- package/utils/platform/index.d.ts +0 -1
- package/utils/platform/is-ios.d.ts +0 -3
- package/utils/token/create-token.d.ts +0 -3
- package/utils/token/index.d.ts +0 -2
- package/utils/token/provide.d.ts +0 -3
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostListener, inject } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { cuiProvide } from '../utils/token';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class CuiContentEditableValueAccessorDirective {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.element = inject(ElementRef).nativeElement;
|
|
8
|
-
}
|
|
9
|
-
writeValue(value) {
|
|
10
|
-
this.element.innerText = value ?? '';
|
|
11
|
-
}
|
|
12
|
-
registerOnChange(fn) {
|
|
13
|
-
this.onChange = fn;
|
|
14
|
-
}
|
|
15
|
-
registerOnTouched(fn) {
|
|
16
|
-
this.onTouched = fn;
|
|
17
|
-
}
|
|
18
|
-
setDisabledState(isDisabled) {
|
|
19
|
-
this.element.contentEditable = String(!isDisabled);
|
|
20
|
-
}
|
|
21
|
-
onInput() {
|
|
22
|
-
this.onChange(this.element.innerHTML === '<br>' ? '' : this.element.innerText);
|
|
23
|
-
}
|
|
24
|
-
onBlur() {
|
|
25
|
-
this.onTouched();
|
|
26
|
-
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiContentEditableValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
28
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CuiContentEditableValueAccessorDirective, isStandalone: true, selector: "[contenteditable][formControlName], [contenteditable][formControl], [contenteditable][ngModel]", host: { listeners: { "input": "onInput()", "blur": "onBlur()" } }, providers: [cuiProvide(NG_VALUE_ACCESSOR, CuiContentEditableValueAccessorDirective, true)], ngImport: i0 }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiContentEditableValueAccessorDirective, decorators: [{
|
|
31
|
-
type: Directive,
|
|
32
|
-
args: [{
|
|
33
|
-
standalone: true,
|
|
34
|
-
selector: '[contenteditable][formControlName], [contenteditable][formControl], [contenteditable][ngModel]',
|
|
35
|
-
providers: [cuiProvide(NG_VALUE_ACCESSOR, CuiContentEditableValueAccessorDirective, true)]
|
|
36
|
-
}]
|
|
37
|
-
}], propDecorators: { onInput: [{
|
|
38
|
-
type: HostListener,
|
|
39
|
-
args: ['input']
|
|
40
|
-
}], onBlur: [{
|
|
41
|
-
type: HostListener,
|
|
42
|
-
args: ['blur']
|
|
43
|
-
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1lZGl0YWJsZS12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9jb250ZW50LWVkaXRhYmxlLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSW5ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFPNUMsTUFBTSxPQUFPLHdDQUF3QztJQUxyRDtRQU1xQixZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQTRCLENBQUM7S0E4QjlFO0lBekJVLFVBQVUsQ0FBQyxLQUEwQjtRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUF1QjtRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBZ0I7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFVBQW1CO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFHUyxPQUFPO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBR1MsTUFBTTtRQUNaLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQTlCUSx3Q0FBd0M7bUdBQXhDLHdDQUF3QyxnTkFGdEMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsd0NBQXdDLEVBQUUsSUFBSSxDQUFDLENBQUM7OzRGQUVqRix3Q0FBd0M7a0JBTHBELFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnR0FBZ0c7b0JBQzFHLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsNENBQTRDLElBQUksQ0FBQyxDQUFDO2lCQUM3Rjs4QkF3QmEsT0FBTztzQkFEaEIsWUFBWTt1QkFBQyxPQUFPO2dCQU1YLE1BQU07c0JBRGYsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBDdWlPbkNoYW5nZSwgQ3VpT25Ub3VjaGVkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjdWlQcm92aWRlIH0gZnJvbSAnLi4vdXRpbHMvdG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2NvbnRlbnRlZGl0YWJsZV1bZm9ybUNvbnRyb2xOYW1lXSwgW2NvbnRlbnRlZGl0YWJsZV1bZm9ybUNvbnRyb2xdLCBbY29udGVudGVkaXRhYmxlXVtuZ01vZGVsXScsXG4gICAgcHJvdmlkZXJzOiBbY3VpUHJvdmlkZShOR19WQUxVRV9BQ0NFU1NPUiwgQ3VpQ29udGVudEVkaXRhYmxlVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSwgdHJ1ZSldXG59KVxuZXhwb3J0IGNsYXNzIEN1aUNvbnRlbnRFZGl0YWJsZVZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2UhOiBDdWlPbkNoYW5nZTxzdHJpbmc+O1xuICAgIHByb3RlY3RlZCBvblRvdWNoZWQhOiBDdWlPblRvdWNoZWQ7XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogQ3VpTnVsbGFibGU8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnQuaW5uZXJUZXh0ID0gdmFsdWUgPz8gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEN1aU9uQ2hhbmdlPHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogQ3VpT25Ub3VjaGVkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnQuY29udGVudEVkaXRhYmxlID0gU3RyaW5nKCFpc0Rpc2FibGVkKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gICAgcHJvdGVjdGVkIG9uSW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5lbGVtZW50LmlubmVySFRNTCA9PT0gJzxicj4nID8gJycgOiB0aGlzLmVsZW1lbnQuaW5uZXJUZXh0KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBwcm90ZWN0ZWQgb25CbHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, EventEmitter, inject, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CuiDimensionsObserverDirective {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.element = inject(ElementRef).nativeElement;
|
|
6
|
-
this.observer = new ResizeObserver((entries) => {
|
|
7
|
-
entries.forEach(() => this.cuiResizeObserver.emit({
|
|
8
|
-
width: this.element.offsetWidth,
|
|
9
|
-
height: this.element.offsetHeight
|
|
10
|
-
}));
|
|
11
|
-
});
|
|
12
|
-
this.cuiResizeObserver = new EventEmitter();
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
this.observer.observe(this.element);
|
|
16
|
-
}
|
|
17
|
-
ngOnDestroy() {
|
|
18
|
-
this.observer.disconnect();
|
|
19
|
-
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDimensionsObserverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CuiDimensionsObserverDirective, isStandalone: true, selector: "[cuiResizeObserver]", outputs: { cuiResizeObserver: "cuiResizeObserver" }, ngImport: i0 }); }
|
|
22
|
-
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDimensionsObserverDirective, decorators: [{
|
|
24
|
-
type: Directive,
|
|
25
|
-
args: [{
|
|
26
|
-
standalone: true,
|
|
27
|
-
selector: '[cuiResizeObserver]'
|
|
28
|
-
}]
|
|
29
|
-
}], propDecorators: { cuiResizeObserver: [{
|
|
30
|
-
type: Output
|
|
31
|
-
}] } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9ucy1vYnNlcnZlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9kaW1lbnNpb25zLW9ic2VydmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRcEYsTUFBTSxPQUFPLDhCQUE4QjtJQUozQztRQUtxQixZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQTRCLENBQUM7UUFFMUQsYUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdkQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDeEIsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVztnQkFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWTthQUNwQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBR0ksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7S0FTaEU7SUFQVSxRQUFRO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMvQixDQUFDOytHQXJCUSw4QkFBOEI7bUdBQTlCLDhCQUE4Qjs7NEZBQTlCLDhCQUE4QjtrQkFKMUMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHFCQUFxQjtpQkFDbEM7OEJBY1UsaUJBQWlCO3NCQUR2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgQ3VpRGltZW5zaW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2N1aVJlc2l6ZU9ic2VydmVyXSdcbn0pXG5leHBvcnQgY2xhc3MgQ3VpRGltZW5zaW9uc09ic2VydmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgICBlbnRyaWVzLmZvckVhY2goKCkgPT5cbiAgICAgICAgICAgIHRoaXMuY3VpUmVzaXplT2JzZXJ2ZXIuZW1pdCh7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuZWxlbWVudC5vZmZzZXRXaWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHRcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfSk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY3VpUmVzaXplT2JzZXJ2ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1aURpbWVuc2lvbnM+KCk7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Directive, ElementRef, inject, input, NgZone, output, Renderer2, signal } from '@angular/core';
|
|
3
|
-
import { CuiDragListDirective } from './drag-list.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class CuiDragDropDirective {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.zone = inject(NgZone);
|
|
8
|
-
this.document = inject(DOCUMENT);
|
|
9
|
-
this.renderer = inject(Renderer2);
|
|
10
|
-
this.element = inject(ElementRef).nativeElement;
|
|
11
|
-
this.dragListDirective = inject(CuiDragListDirective);
|
|
12
|
-
this.PLACEHOLDER_CLASS = 'cui-drag-drop-placeholder';
|
|
13
|
-
this.listId = this.dragListDirective.listId;
|
|
14
|
-
this.itemAttribute = `${this.listId}-drag-item`;
|
|
15
|
-
this.abortController = new AbortController();
|
|
16
|
-
this.hostAbortController = new AbortController();
|
|
17
|
-
this.draggingElement = signal(null);
|
|
18
|
-
this.placeholderElement = signal(null);
|
|
19
|
-
this.dragData = signal({});
|
|
20
|
-
this.disabled = input(false);
|
|
21
|
-
this.elementDragged = output();
|
|
22
|
-
this.initDragItem();
|
|
23
|
-
this.initPointerEvents(this.element);
|
|
24
|
-
}
|
|
25
|
-
ngOnDestroy() {
|
|
26
|
-
this.destroyEvents();
|
|
27
|
-
}
|
|
28
|
-
changePointerEvents(element) {
|
|
29
|
-
this.hostAbortController.abort();
|
|
30
|
-
this.hostAbortController = new AbortController();
|
|
31
|
-
this.initPointerEvents(element);
|
|
32
|
-
}
|
|
33
|
-
onDrag(clientX, clientY) {
|
|
34
|
-
if (!this.draggingElement()) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
const elementsFromPoint = this.document.elementsFromPoint(clientX, clientY);
|
|
38
|
-
const elementFromPoint = elementsFromPoint.find((element) => element.closest(`#${this.listId}`));
|
|
39
|
-
if (!elementFromPoint) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
const targetElement = elementFromPoint.closest(`[${this.itemAttribute}]`);
|
|
43
|
-
if (!targetElement || targetElement === this.draggingElement()) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
this.configurateDragData(targetElement, clientY);
|
|
47
|
-
}
|
|
48
|
-
onDragStart(event) {
|
|
49
|
-
if (this.disabled()) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
let isClicked = true;
|
|
53
|
-
const elementClientRect = this.element.getBoundingClientRect();
|
|
54
|
-
const shiftX = event.clientX - elementClientRect.left;
|
|
55
|
-
const shiftY = event.clientY - elementClientRect.top;
|
|
56
|
-
this.prevIndex = this.calculatePreviousIndex();
|
|
57
|
-
this.document.addEventListener('pointermove', ({ clientX, clientY }) => {
|
|
58
|
-
if (isClicked) {
|
|
59
|
-
this.prepareMoving();
|
|
60
|
-
isClicked = false;
|
|
61
|
-
}
|
|
62
|
-
const draggingElement = this.draggingElement();
|
|
63
|
-
this.renderer.setStyle(draggingElement, 'left', clientX - shiftX + 'px');
|
|
64
|
-
this.renderer.setStyle(draggingElement, 'top', clientY - shiftY + 'px');
|
|
65
|
-
this.onDrag(clientX, clientY);
|
|
66
|
-
}, { signal: this.abortController.signal });
|
|
67
|
-
}
|
|
68
|
-
onDragEnd() {
|
|
69
|
-
const { targetElement, pointer } = this.dragData();
|
|
70
|
-
if (targetElement && pointer) {
|
|
71
|
-
this.elementDragged.emit({
|
|
72
|
-
index: this.index,
|
|
73
|
-
prevIndex: this.prevIndex,
|
|
74
|
-
targetElement,
|
|
75
|
-
pointer
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
// remove document events
|
|
79
|
-
this.abortController.abort();
|
|
80
|
-
this.abortController = new AbortController();
|
|
81
|
-
this.removeDragElement();
|
|
82
|
-
this.removePlaceholder();
|
|
83
|
-
this.dragData.set({});
|
|
84
|
-
}
|
|
85
|
-
initDragItem() {
|
|
86
|
-
this.renderer.setAttribute(this.element, this.itemAttribute, 'true');
|
|
87
|
-
}
|
|
88
|
-
initPointerEvents(element) {
|
|
89
|
-
const signal = this.hostAbortController.signal;
|
|
90
|
-
this.zone.runOutsideAngular(() => {
|
|
91
|
-
element.addEventListener('pointerup', this.onDragEnd.bind(this), { signal });
|
|
92
|
-
element.addEventListener('pointerdown', this.onDragStart.bind(this), { signal });
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
destroyEvents() {
|
|
96
|
-
this.hostAbortController.abort();
|
|
97
|
-
this.abortController.abort();
|
|
98
|
-
}
|
|
99
|
-
prepareMoving() {
|
|
100
|
-
const placeholderElement = this.createPlaceholderElement();
|
|
101
|
-
const draggingElement = this.createDragElement();
|
|
102
|
-
this.document.addEventListener('pointerup', this.onDragEnd.bind(this), {
|
|
103
|
-
signal: this.abortController.signal
|
|
104
|
-
});
|
|
105
|
-
this.element.after(placeholderElement);
|
|
106
|
-
this.draggingElement.set(draggingElement);
|
|
107
|
-
this.element.remove();
|
|
108
|
-
this.document.body.append(draggingElement);
|
|
109
|
-
}
|
|
110
|
-
configurateDragData(targetElement, clientY) {
|
|
111
|
-
const placeholderElement = this.placeholderElement();
|
|
112
|
-
const boundingRect = targetElement.getBoundingClientRect();
|
|
113
|
-
const middleY = boundingRect.top + boundingRect.height / 2;
|
|
114
|
-
if (clientY < middleY) {
|
|
115
|
-
targetElement.before(placeholderElement);
|
|
116
|
-
this.dragData.set({ targetElement, pointer: 'BEFORE' });
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
targetElement.after(placeholderElement);
|
|
120
|
-
this.dragData.set({ targetElement, pointer: 'AFTER' });
|
|
121
|
-
}
|
|
122
|
-
this.index = this.calculateIndex(placeholderElement);
|
|
123
|
-
}
|
|
124
|
-
createDragElement() {
|
|
125
|
-
const width = this.element.clientWidth;
|
|
126
|
-
const draggingElement = this.element.cloneNode(true);
|
|
127
|
-
this.renderer.setStyle(draggingElement, 'position', 'fixed');
|
|
128
|
-
this.renderer.setStyle(draggingElement, 'display', 'block');
|
|
129
|
-
this.renderer.setStyle(draggingElement, 'margin', '0');
|
|
130
|
-
this.renderer.setStyle(draggingElement, 'width', `${width}px`);
|
|
131
|
-
return draggingElement;
|
|
132
|
-
}
|
|
133
|
-
createPlaceholderElement() {
|
|
134
|
-
const element = this.placeholderElement();
|
|
135
|
-
if (element) {
|
|
136
|
-
return element;
|
|
137
|
-
}
|
|
138
|
-
const placeholderElement = this.renderer.createElement('div');
|
|
139
|
-
this.renderer.addClass(placeholderElement, this.PLACEHOLDER_CLASS);
|
|
140
|
-
this.placeholderElement.set(placeholderElement);
|
|
141
|
-
return placeholderElement;
|
|
142
|
-
}
|
|
143
|
-
removeDragElement() {
|
|
144
|
-
const draggingElement = this.draggingElement();
|
|
145
|
-
if (!draggingElement) {
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
draggingElement.remove();
|
|
149
|
-
this.draggingElement.set(null);
|
|
150
|
-
}
|
|
151
|
-
removePlaceholder() {
|
|
152
|
-
const placeholderElement = this.placeholderElement();
|
|
153
|
-
if (!placeholderElement) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
placeholderElement.after(this.element);
|
|
157
|
-
placeholderElement.remove();
|
|
158
|
-
this.placeholderElement.set(null);
|
|
159
|
-
}
|
|
160
|
-
calculateIndex(placeholderElement) {
|
|
161
|
-
const childNodes = placeholderElement.parentElement.childNodes;
|
|
162
|
-
const elements = Array.from(childNodes).filter((node) => node instanceof HTMLElement);
|
|
163
|
-
return elements.indexOf(placeholderElement);
|
|
164
|
-
}
|
|
165
|
-
calculatePreviousIndex() {
|
|
166
|
-
let index = 0;
|
|
167
|
-
let currentElement = this.element;
|
|
168
|
-
while (currentElement && currentElement.previousElementSibling) {
|
|
169
|
-
index++;
|
|
170
|
-
currentElement = currentElement.previousElementSibling;
|
|
171
|
-
}
|
|
172
|
-
return index;
|
|
173
|
-
}
|
|
174
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDragDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
175
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: CuiDragDropDirective, isStandalone: true, selector: "[cuiDragDrop]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { elementDragged: "elementDragged" }, ngImport: i0 }); }
|
|
176
|
-
}
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDragDropDirective, decorators: [{
|
|
178
|
-
type: Directive,
|
|
179
|
-
args: [{
|
|
180
|
-
selector: '[cuiDragDrop]',
|
|
181
|
-
standalone: true
|
|
182
|
-
}]
|
|
183
|
-
}], ctorParameters: () => [] });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9kaXJlY3RpdmVzL2RyYWctZHJvcC9kcmFnLWRyb3AuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl4RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNN0QsTUFBTSxPQUFPLG9CQUFvQjtJQXlCN0I7UUF4QmlCLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzNDLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRWpELHNCQUFpQixHQUFHLDJCQUEyQixDQUFDO1FBRWhELFdBQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLGtCQUFhLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxZQUFZLENBQUM7UUFJcEQsb0JBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3hDLHdCQUFtQixHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFFakMsb0JBQWUsR0FBRyxNQUFNLENBQTJCLElBQUksQ0FBQyxDQUFDO1FBQ3pELHVCQUFrQixHQUFHLE1BQU0sQ0FBMkIsSUFBSSxDQUFD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QztRQUNoRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLFdBQVcsQ0FBQyxDQUFDO1FBRXRGLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQkFBbUIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxzQkFBc0I7UUFDMUIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxjQUFjLEdBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUUzQyxPQUFPLGNBQWMsSUFBSSxjQUFjLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM3RCxLQUFLLEVBQUUsQ0FBQztZQUNSLGNBQWMsR0FBRyxjQUFjLENBQUMsc0JBQXNCLENBQUM7UUFDM0QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7K0dBdk9RLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB0eXBlIHsgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgTmdab25lLCBvdXRwdXQsIFJlbmRlcmVyMiwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XHJcblxyXG5pbXBvcnQgdHlwZSB7IEN1aURyYWdEYXRhLCBDdWlEcmFnRHJvcERhdGEgfSBmcm9tICcuL2RyYWctZHJvcC5vcHRpb25zJztcclxuaW1wb3J0IHsgQ3VpRHJhZ0xpc3REaXJlY3RpdmUgfSBmcm9tICcuL2RyYWctbGlzdC5kaXJlY3RpdmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tjdWlEcmFnRHJvcF0nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpRHJhZ0Ryb3BEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcmFnTGlzdERpcmVjdGl2ZSA9IGluamVjdChDdWlEcmFnTGlzdERpcmVjdGl2ZSk7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBQTEFDRUhPTERFUl9DTEFTUyA9ICdjdWktZHJhZy1kcm9wLXBsYWNlaG9sZGVyJztcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RJZCA9IHRoaXMuZHJhZ0xpc3REaXJlY3RpdmUubGlzdElkO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpdGVtQXR0cmlidXRlID0gYCR7dGhpcy5saXN0SWR9LWRyYWctaXRlbWA7XHJcblxyXG4gICAgcHJpdmF0ZSBpbmRleCE6IG51bWJlcjtcclxuICAgIHByaXZhdGUgcHJldkluZGV4ITogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcbiAgICBwcml2YXRlIGhvc3RBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyYWdnaW5nRWxlbWVudCA9IHNpZ25hbDxDdWlOdWxsYWJsZTxIVE1MRWxlbWVudD4+KG51bGwpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsYWNlaG9sZGVyRWxlbWVudCA9IHNpZ25hbDxDdWlOdWxsYWJsZTxIVE1MRWxlbWVudD4+KG51bGwpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyYWdEYXRhID0gc2lnbmFsPEN1aURyYWdEYXRhPih7fSk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQoZmFsc2UpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50RHJhZ2dlZCA9IG91dHB1dDxDdWlEcmFnRHJvcERhdGE+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0RHJhZ0l0ZW0oKTtcclxuICAgICAgICB0aGlzLmluaXRQb2ludGVyRXZlbnRzKHRoaXMuZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveUV2ZW50cygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2VQb2ludGVyRXZlbnRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ob3N0QWJvcnRDb250cm9sbGVyLmFib3J0KCk7XHJcbiAgICAgICAgdGhpcy5ob3N0QWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRQb2ludGVyRXZlbnRzKGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25EcmFnKGNsaWVudFg6IG51bWJlciwgY2xpZW50WTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRyYWdnaW5nRWxlbWVudCgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGVsZW1lbnRzRnJvbVBvaW50ID0gdGhpcy5kb2N1bWVudC5lbGVtZW50c0Zyb21Qb2ludChjbGllbnRYLCBjbGllbnRZKTtcclxuICAgICAgICBjb25zdCBlbGVtZW50RnJvbVBvaW50ID0gZWxlbWVudHNGcm9tUG9pbnQuZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5jbG9zZXN0KGAjJHt0aGlzLmxpc3RJZH1gKSk7XHJcblxyXG4gICAgICAgIGlmICghZWxlbWVudEZyb21Qb2ludCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZWxlbWVudEZyb21Qb2ludC5jbG9zZXN0PEhUTUxFbGVtZW50PihgWyR7dGhpcy5pdGVtQXR0cmlidXRlfV1gKTtcclxuXHJcbiAgICAgICAgaWYgKCF0YXJnZXRFbGVtZW50IHx8IHRhcmdldEVsZW1lbnQgPT09IHRoaXMuZHJhZ2dpbmdFbGVtZW50KCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0ZURyYWdEYXRhKHRhcmdldEVsZW1lbnQsIGNsaWVudFkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25EcmFnU3RhcnQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBpc0NsaWNrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICBjb25zdCBlbGVtZW50Q2xpZW50UmVjdCA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBjb25zdCBzaGlmdFggPSBldmVudC5jbGllbnRYIC0gZWxlbWVudENsaWVudFJlY3QubGVmdDtcclxuICAgICAgICBjb25zdCBzaGlmdFkgPSBldmVudC5jbGllbnRZIC0gZWxlbWVudENsaWVudFJlY3QudG9wO1xyXG5cclxuICAgICAgICB0aGlzLnByZXZJbmRleCA9IHRoaXMuY2FsY3VsYXRlUHJldmlvdXNJbmRleCgpO1xyXG5cclxuICAgICAgICB0aGlzLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXHJcbiAgICAgICAgICAgICdwb2ludGVybW92ZScsXHJcbiAgICAgICAgICAgICh7IGNsaWVudFgsIGNsaWVudFkgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzQ2xpY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZU1vdmluZygpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpc0NsaWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBkcmFnZ2luZ0VsZW1lbnQgPSB0aGlzLmRyYWdnaW5nRWxlbWVudCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJhZ2dpbmdFbGVtZW50LCAnbGVmdCcsIGNsaWVudFggLSBzaGlmdFggKyAncHgnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJhZ2dpbmdFbGVtZW50LCAndG9wJywgY2xpZW50WSAtIHNoaWZ0WSArICdweCcpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkRyYWcoY2xpZW50WCwgY2xpZW50WSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgc2lnbmFsOiB0aGlzLmFib3J0Q29udHJvbGxlci5zaWduYWwgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvbkRyYWdFbmQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgeyB0YXJnZXRFbGVtZW50LCBwb2ludGVyIH0gPSB0aGlzLmRyYWdEYXRhKCk7XHJcblxyXG4gICAgICAgIGlmICh0YXJnZXRFbGVtZW50ICYmIHBvaW50ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50RHJhZ2dlZC5lbWl0KHtcclxuICAgICAgICAgICAgICAgIGluZGV4OiB0aGlzLmluZGV4LFxyXG4gICAgICAgICAgICAgICAgcHJldkluZGV4OiB0aGlzLnByZXZJbmRleCxcclxuICAgICAgICAgICAgICAgIHRhcmdldEVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICBwb2ludGVyXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gcmVtb3ZlIGRvY3VtZW50IGV2ZW50c1xyXG4gICAgICAgIHRoaXMuYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XHJcbiAgICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMucmVtb3ZlRHJhZ0VsZW1lbnQoKTtcclxuICAgICAgICB0aGlzLnJlbW92ZVBsYWNlaG9sZGVyKCk7XHJcbiAgICAgICAgdGhpcy5kcmFnRGF0YS5zZXQoe30pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdERyYWdJdGVtKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudCwgdGhpcy5pdGVtQXR0cmlidXRlLCAndHJ1ZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFBvaW50ZXJFdmVudHMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzaWduYWwgPSB0aGlzLmhvc3RBYm9ydENvbnRyb2xsZXIuc2lnbmFsO1xyXG5cclxuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMub25EcmFnRW5kLmJpbmQodGhpcyksIHsgc2lnbmFsIH0pO1xyXG4gICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5vbkRyYWdTdGFydC5iaW5kKHRoaXMpLCB7IHNpZ25hbCB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRlc3Ryb3lFdmVudHMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ob3N0QWJvcnRDb250cm9sbGVyLmFib3J0KCk7XHJcbiAgICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByZXBhcmVNb3ZpbmcoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJFbGVtZW50ID0gdGhpcy5jcmVhdGVQbGFjZWhvbGRlckVsZW1lbnQoKTtcclxuICAgICAgICBjb25zdCBkcmFnZ2luZ0VsZW1lbnQgPSB0aGlzLmNyZWF0ZURyYWdFbGVtZW50KCk7XHJcblxyXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5vbkRyYWdFbmQuYmluZCh0aGlzKSwge1xyXG4gICAgICAgICAgICBzaWduYWw6IHRoaXMuYWJvcnRDb250cm9sbGVyLnNpZ25hbFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmVsZW1lbnQuYWZ0ZXIocGxhY2Vob2xkZXJFbGVtZW50KTtcclxuICAgICAgICB0aGlzLmRyYWdnaW5nRWxlbWVudC5zZXQoZHJhZ2dpbmdFbGVtZW50KTtcclxuXHJcbiAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5hcHBlbmQoZHJhZ2dpbmdFbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRlRHJhZ0RhdGEodGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQsIGNsaWVudFk6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyRWxlbWVudCA9IHRoaXMucGxhY2Vob2xkZXJFbGVtZW50KCk7XHJcbiAgICAgICAgY29uc3QgYm91bmRpbmdSZWN0ID0gdGFyZ2V0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBjb25zdCBtaWRkbGVZID0gYm91bmRpbmdSZWN0LnRvcCArIGJvdW5kaW5nUmVjdC5oZWlnaHQgLyAyO1xyXG5cclxuICAgICAgICBpZiAoY2xpZW50WSA8IG1pZGRsZVkpIHtcclxuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudC5iZWZvcmUocGxhY2Vob2xkZXJFbGVtZW50ISk7XHJcbiAgICAgICAgICAgIHRoaXMuZHJhZ0RhdGEuc2V0KHsgdGFyZ2V0RWxlbWVudCwgcG9pbnRlcjogJ0JFRk9SRScgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudC5hZnRlcihwbGFjZWhvbGRlckVsZW1lbnQhKTtcclxuICAgICAgICAgICAgdGhpcy5kcmFnRGF0YS5zZXQoeyB0YXJnZXRFbGVtZW50LCBwb2ludGVyOiAnQUZURVInIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pbmRleCA9IHRoaXMuY2FsY3VsYXRlSW5kZXgocGxhY2Vob2xkZXJFbGVtZW50ISk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVEcmFnRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XHJcbiAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmVsZW1lbnQuY2xpZW50V2lkdGg7XHJcbiAgICAgICAgY29uc3QgZHJhZ2dpbmdFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNsb25lTm9kZSh0cnVlKSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcmFnZ2luZ0VsZW1lbnQsICdwb3NpdGlvbicsICdmaXhlZCcpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJhZ2dpbmdFbGVtZW50LCAnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJhZ2dpbmdFbGVtZW50LCAnbWFyZ2luJywgJzAnKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyYWdnaW5nRWxlbWVudCwgJ3dpZHRoJywgYCR7d2lkdGh9cHhgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRyYWdnaW5nRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZVBsYWNlaG9sZGVyRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMucGxhY2Vob2xkZXJFbGVtZW50KCk7XHJcblxyXG4gICAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhwbGFjZWhvbGRlckVsZW1lbnQsIHRoaXMuUExBQ0VIT0xERVJfQ0xBU1MpO1xyXG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LnNldChwbGFjZWhvbGRlckVsZW1lbnQpO1xyXG5cclxuICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXJFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVtb3ZlRHJhZ0VsZW1lbnQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZHJhZ2dpbmdFbGVtZW50ID0gdGhpcy5kcmFnZ2luZ0VsZW1lbnQoKTtcclxuXHJcbiAgICAgICAgaWYgKCFkcmFnZ2luZ0VsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZHJhZ2dpbmdFbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgICAgIHRoaXMuZHJhZ2dpbmdFbGVtZW50LnNldChudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbW92ZVBsYWNlaG9sZGVyKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyRWxlbWVudCA9IHRoaXMucGxhY2Vob2xkZXJFbGVtZW50KCk7XHJcblxyXG4gICAgICAgIGlmICghcGxhY2Vob2xkZXJFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBsYWNlaG9sZGVyRWxlbWVudC5hZnRlcih0aGlzLmVsZW1lbnQpO1xyXG4gICAgICAgIHBsYWNlaG9sZGVyRWxlbWVudC5yZW1vdmUoKTtcclxuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWxlbWVudC5zZXQobnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVJbmRleChwbGFjZWhvbGRlckVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBjaGlsZE5vZGVzID0gcGxhY2Vob2xkZXJFbGVtZW50LnBhcmVudEVsZW1lbnQhLmNoaWxkTm9kZXM7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBBcnJheS5mcm9tKGNoaWxkTm9kZXMpLmZpbHRlcigobm9kZSkgPT4gbm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmluZGV4T2YocGxhY2Vob2xkZXJFbGVtZW50ISk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQcmV2aW91c0luZGV4KCk6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgICBsZXQgY3VycmVudEVsZW1lbnQ6IEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7XHJcblxyXG4gICAgICAgIHdoaWxlIChjdXJyZW50RWxlbWVudCAmJiBjdXJyZW50RWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKSB7XHJcbiAgICAgICAgICAgIGluZGV4Kys7XHJcbiAgICAgICAgICAgIGN1cnJlbnRFbGVtZW50ID0gY3VycmVudEVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBpbmRleDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9kcmFnLWRyb3AvZHJhZy1kcm9wLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ3VpRHJhZ0Ryb3BEYXRhIHtcclxuICAgIHJlYWRvbmx5IGluZGV4OiBudW1iZXI7XHJcbiAgICByZWFkb25seSBwcmV2SW5kZXg6IG51bWJlcjtcclxuICAgIHJlYWRvbmx5IHBvaW50ZXI6IEN1aURyb3BQb2ludGVyO1xyXG4gICAgcmVhZG9ubHkgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpRHJhZ0RhdGEge1xyXG4gICAgcmVhZG9ubHkgcG9pbnRlcj86IEN1aURyb3BQb2ludGVyO1xyXG4gICAgcmVhZG9ubHkgdGFyZ2V0RWxlbWVudD86IEhUTUxFbGVtZW50O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDdWlEcm9wUG9pbnRlciA9ICdCRUZPUkUnIHwgJ0FGVEVSJztcclxuIl19
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, inject, Renderer2 } from '@angular/core';
|
|
2
|
-
import { CuiIdService } from '../../services';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class CuiDragListDirective {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.renderer = inject(Renderer2);
|
|
7
|
-
this.element = inject(ElementRef).nativeElement;
|
|
8
|
-
this.id = inject(CuiIdService).generate();
|
|
9
|
-
this.listId = `${this.id}-list`;
|
|
10
|
-
this.renderer.setAttribute(this.element, 'id', this.listId);
|
|
11
|
-
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDragListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CuiDragListDirective, isStandalone: true, selector: "[cuiDragList]", ngImport: i0 }); }
|
|
14
|
-
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDragListDirective, decorators: [{
|
|
16
|
-
type: Directive,
|
|
17
|
-
args: [{
|
|
18
|
-
selector: '[cuiDragList]',
|
|
19
|
-
standalone: true
|
|
20
|
-
}]
|
|
21
|
-
}], ctorParameters: () => [] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1saXN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9kaXJlY3RpdmVzL2RyYWctZHJvcC9kcmFnLWxpc3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU05QyxNQUFNLE9BQU8sb0JBQW9CO0lBTzdCO1FBTmlCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDNUMsT0FBRSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVyQyxXQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7UUFHdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7K0dBVFEsb0JBQW9CO21HQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEN1aUlkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbY3VpRHJhZ0xpc3RdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aURyYWdMaXN0RGlyZWN0aXZlIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGlkID0gaW5qZWN0KEN1aUlkU2VydmljZSkuZ2VuZXJhdGUoKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdElkID0gYCR7dGhpcy5pZH0tbGlzdGA7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50LCAnaWQnLCB0aGlzLmxpc3RJZCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, inject } from '@angular/core';
|
|
2
|
-
import { CuiDragDropDirective } from './drag-drop.directive';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class CuiDragPointerDirective {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.dragDropDirective = inject(CuiDragDropDirective);
|
|
7
|
-
this.element = inject(ElementRef).nativeElement;
|
|
8
|
-
this.dragDropDirective.changePointerEvents(this.element);
|
|
9
|
-
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDragPointerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CuiDragPointerDirective, isStandalone: true, selector: "[cuiDragPointer]", ngImport: i0 }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiDragPointerDirective, decorators: [{
|
|
14
|
-
type: Directive,
|
|
15
|
-
args: [{
|
|
16
|
-
selector: '[cuiDragPointer]',
|
|
17
|
-
standalone: true
|
|
18
|
-
}]
|
|
19
|
-
}], ctorParameters: () => [] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1wb2ludGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9kaXJlY3RpdmVzL2RyYWctZHJvcC9kcmFnLXBvaW50ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNN0QsTUFBTSxPQUFPLHVCQUF1QjtJQUloQztRQUhpQixzQkFBaUIsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNqRCxZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUd4RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7K0dBTlEsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEN1aURyYWdEcm9wRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmFnLWRyb3AuZGlyZWN0aXZlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbY3VpRHJhZ1BvaW50ZXJdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aURyYWdQb2ludGVyRGlyZWN0aXZlIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZHJhZ0Ryb3BEaXJlY3RpdmUgPSBpbmplY3QoQ3VpRHJhZ0Ryb3BEaXJlY3RpdmUpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5kcmFnRHJvcERpcmVjdGl2ZS5jaGFuZ2VQb2ludGVyRXZlbnRzKHRoaXMuZWxlbWVudCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { CuiDragDropDirective } from './drag-drop.directive';
|
|
2
|
-
export { CuiDragListDirective } from './drag-list.directive';
|
|
3
|
-
export { CuiDragPointerDirective } from './drag-pointer.directive';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9kcmFnLWRyb3AvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlEcmFnRHJvcERhdGEsIEN1aURyYWdEYXRhLCBDdWlEcm9wUG9pbnRlciB9IGZyb20gJy4vZHJhZy1kcm9wLm9wdGlvbnMnO1xuZXhwb3J0IHsgQ3VpRHJhZ0Ryb3BEaXJlY3RpdmUgfSBmcm9tICcuL2RyYWctZHJvcC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgQ3VpRHJhZ0xpc3REaXJlY3RpdmUgfSBmcm9tICcuL2RyYWctbGlzdC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgQ3VpRHJhZ1BvaW50ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RyYWctcG9pbnRlci5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, inject } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CuiElementDirective {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.nativeElement = inject((ElementRef)).nativeElement;
|
|
6
|
-
return new ElementRef(this.nativeElement);
|
|
7
|
-
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CuiElementDirective, isStandalone: true, selector: "[cuiElement]", exportAs: ["elementRef"], ngImport: i0 }); }
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiElementDirective, decorators: [{
|
|
12
|
-
type: Directive,
|
|
13
|
-
args: [{
|
|
14
|
-
standalone: true,
|
|
15
|
-
selector: '[cuiElement]',
|
|
16
|
-
exportAs: 'elementRef'
|
|
17
|
-
}]
|
|
18
|
-
}], ctorParameters: () => [] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzlELE1BQU0sT0FBTyxtQkFBbUI7SUFHNUI7UUFGTyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQWEsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBR3ZELE9BQU8sSUFBSSxVQUFVLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7K0dBTFEsbUJBQW1CO21HQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxjQUFjO29CQUN4QixRQUFRLEVBQUUsWUFBWTtpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2N1aUVsZW1lbnRdJyxcbiAgICBleHBvcnRBczogJ2VsZW1lbnRSZWYnXG59KVxuZXhwb3J0IGNsYXNzIEN1aUVsZW1lbnREaXJlY3RpdmU8VCBleHRlbmRzIEVsZW1lbnQgPSBIVE1MRWxlbWVudD4gaW1wbGVtZW50cyBFbGVtZW50UmVmPFQ+IHtcbiAgICBwdWJsaWMgbmF0aXZlRWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmPFQ+KS5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHJldHVybiBuZXcgRWxlbWVudFJlZjxUPih0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostBinding, HostListener, inject } from '@angular/core';
|
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import { cuiBlurNativeFocused, cuiContainsOrAfter, cuiGetClosestFocusable, cuiGetNativeFocused, cuiIsHTMLElement } from '../utils';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class CuiFocusTrapDirective {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.document = inject(DOCUMENT);
|
|
8
|
-
this.element = inject(ElementRef).nativeElement;
|
|
9
|
-
this.activeElement = cuiGetNativeFocused(this.document);
|
|
10
|
-
this.tabIndex = 0;
|
|
11
|
-
this.initElementFocus();
|
|
12
|
-
}
|
|
13
|
-
ngOnDestroy() {
|
|
14
|
-
cuiBlurNativeFocused(this.document);
|
|
15
|
-
Promise.resolve().then(() => {
|
|
16
|
-
if (!cuiIsHTMLElement(this.activeElement)) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
this.activeElement.focus();
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
onFocusIn(node) {
|
|
23
|
-
if (cuiContainsOrAfter(this.element, node)) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
cuiGetClosestFocusable({
|
|
27
|
-
initial: this.element,
|
|
28
|
-
root: this.element
|
|
29
|
-
})?.focus();
|
|
30
|
-
}
|
|
31
|
-
initElementFocus() {
|
|
32
|
-
Promise.resolve().then(() => this.element.focus());
|
|
33
|
-
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFocusTrapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CuiFocusTrapDirective, isStandalone: true, selector: "[cuiFocusTrap]", host: { listeners: { "window:focusin": "onFocusIn($event.target)" }, properties: { "tabIndex": "this.tabIndex" } }, ngImport: i0 }); }
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiFocusTrapDirective, decorators: [{
|
|
38
|
-
type: Directive,
|
|
39
|
-
args: [{
|
|
40
|
-
standalone: true,
|
|
41
|
-
selector: '[cuiFocusTrap]'
|
|
42
|
-
}]
|
|
43
|
-
}], ctorParameters: () => [], propDecorators: { tabIndex: [{
|
|
44
|
-
type: HostBinding,
|
|
45
|
-
args: ['tabIndex']
|
|
46
|
-
}], onFocusIn: [{
|
|
47
|
-
type: HostListener,
|
|
48
|
-
args: ['window:focusin', ['$event.target']]
|
|
49
|
-
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9mb2N1cy10cmFwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUNILG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDbkIsTUFBTSxVQUFVLENBQUM7O0FBTWxCLE1BQU0sT0FBTyxxQkFBcUI7SUFLOUI7UUFKaUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMzQyxrQkFBYSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQW1CakQsYUFBUSxHQUFHLENBQUMsQ0FBQztRQWhCNUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVc7UUFDZCxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxPQUFPO1lBQ1gsQ0FBQztZQUVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBTVMsU0FBUyxDQUFDLElBQVU7UUFDMUIsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTztRQUNYLENBQUM7UUFFRCxzQkFBc0IsQ0FBQztZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3JCLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBdENRLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZ0JBQWdCO2lCQUM3Qjt3REF1QnNCLFFBQVE7c0JBRDFCLFdBQVc7dUJBQUMsVUFBVTtnQkFJYixTQUFTO3NCQURsQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7XG4gICAgY3VpQmx1ck5hdGl2ZUZvY3VzZWQsXG4gICAgY3VpQ29udGFpbnNPckFmdGVyLFxuICAgIGN1aUdldENsb3Nlc3RGb2N1c2FibGUsXG4gICAgY3VpR2V0TmF0aXZlRm9jdXNlZCxcbiAgICBjdWlJc0hUTUxFbGVtZW50XG59IGZyb20gJy4uL3V0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1tjdWlGb2N1c1RyYXBdJ1xufSlcbmV4cG9ydCBjbGFzcyBDdWlGb2N1c1RyYXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlRWxlbWVudCA9IGN1aUdldE5hdGl2ZUZvY3VzZWQodGhpcy5kb2N1bWVudCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbml0RWxlbWVudEZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBjdWlCbHVyTmF0aXZlRm9jdXNlZCh0aGlzLmRvY3VtZW50KTtcblxuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghY3VpSXNIVE1MRWxlbWVudCh0aGlzLmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCd0YWJJbmRleCcpXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhYkluZGV4ID0gMDtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpmb2N1c2luJywgWyckZXZlbnQudGFyZ2V0J10pXG4gICAgcHJvdGVjdGVkIG9uRm9jdXNJbihub2RlOiBOb2RlKTogdm9pZCB7XG4gICAgICAgIGlmIChjdWlDb250YWluc09yQWZ0ZXIodGhpcy5lbGVtZW50LCBub2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VpR2V0Q2xvc2VzdEZvY3VzYWJsZSh7XG4gICAgICAgICAgICBpbml0aWFsOiB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICByb290OiB0aGlzLmVsZW1lbnRcbiAgICAgICAgfSk/LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RWxlbWVudEZvY3VzKCk6IHZvaWQge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuZWxlbWVudC5mb2N1cygpKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Directive, inject, input, NgZone, Renderer2, signal } from '@angular/core';
|
|
3
|
-
import { interval } from 'rxjs';
|
|
4
|
-
import { CUI_WINDOW } from '../tokens';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class CuiHandleScrollDirective {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.window = inject(CUI_WINDOW);
|
|
9
|
-
this.document = inject(DOCUMENT);
|
|
10
|
-
this.renderer = inject(Renderer2);
|
|
11
|
-
this.zone = inject(NgZone);
|
|
12
|
-
this.abortController = new AbortController();
|
|
13
|
-
this.SCROLL_AREA_HEIGHT = 100;
|
|
14
|
-
this.scrollGapElements = signal(null);
|
|
15
|
-
this.scrollSpeed = input(100);
|
|
16
|
-
}
|
|
17
|
-
ngOnDestroy() {
|
|
18
|
-
this.removeSubscription();
|
|
19
|
-
}
|
|
20
|
-
onTargetMove() {
|
|
21
|
-
const signal = this.abortController.signal;
|
|
22
|
-
this.zone.runOutsideAngular(this.initScrollEvent.bind(this, signal));
|
|
23
|
-
}
|
|
24
|
-
initScrollEvent(signal) {
|
|
25
|
-
this.document.addEventListener('pointermove', ({ clientY }) => this.handleScroll(clientY), { signal });
|
|
26
|
-
this.document.addEventListener('pointerup', () => {
|
|
27
|
-
this.scrollGapElements()?.forEach((element) => element.remove());
|
|
28
|
-
this.scrollGapElements.set(null);
|
|
29
|
-
this.removeSubscription();
|
|
30
|
-
this.abortController.abort();
|
|
31
|
-
this.abortController = new AbortController();
|
|
32
|
-
}, { signal });
|
|
33
|
-
}
|
|
34
|
-
handleScroll(clientY) {
|
|
35
|
-
const windowHeight = this.document.documentElement.clientHeight;
|
|
36
|
-
const scrollSpeed = this.scrollSpeed();
|
|
37
|
-
if (!this.scrollGapElements()) {
|
|
38
|
-
this.setScrollGapElements();
|
|
39
|
-
}
|
|
40
|
-
if (clientY <= this.SCROLL_AREA_HEIGHT) {
|
|
41
|
-
this.startScrolling(-scrollSpeed);
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if (clientY >= windowHeight - this.SCROLL_AREA_HEIGHT) {
|
|
45
|
-
this.startScrolling(scrollSpeed);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
this.removeSubscription();
|
|
49
|
-
}
|
|
50
|
-
setScrollGapElements() {
|
|
51
|
-
const scrollGapElement = this.renderer.createElement('div');
|
|
52
|
-
this.renderer.setStyle(scrollGapElement, 'position', 'fixed');
|
|
53
|
-
this.renderer.setStyle(scrollGapElement, 'width', '100%');
|
|
54
|
-
this.renderer.setStyle(scrollGapElement, 'height', '48px');
|
|
55
|
-
this.renderer.setStyle(scrollGapElement, 'top', '0');
|
|
56
|
-
const scrollGapBottomElement = scrollGapElement.cloneNode(true);
|
|
57
|
-
this.renderer.appendChild(this.document.body, scrollGapElement);
|
|
58
|
-
this.renderer.appendChild(this.document.body, scrollGapBottomElement);
|
|
59
|
-
this.scrollGapElements.set([scrollGapElement, scrollGapBottomElement]);
|
|
60
|
-
}
|
|
61
|
-
startScrolling(speed) {
|
|
62
|
-
this.removeSubscription();
|
|
63
|
-
this.scrollSubscription = interval(this.scrollSpeed()).subscribe(() => this.window.scrollBy({ top: speed, behavior: 'smooth' }));
|
|
64
|
-
}
|
|
65
|
-
removeSubscription() {
|
|
66
|
-
this.scrollSubscription?.unsubscribe();
|
|
67
|
-
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiHandleScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
69
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: CuiHandleScrollDirective, isStandalone: true, selector: "[cuiHandleScroll]", inputs: { scrollSpeed: { classPropertyName: "scrollSpeed", publicName: "scrollSpeed", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "pointerdown": "onTargetMove()" } }, ngImport: i0 }); }
|
|
70
|
-
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiHandleScrollDirective, decorators: [{
|
|
72
|
-
type: Directive,
|
|
73
|
-
args: [{
|
|
74
|
-
selector: '[cuiHandleScroll]',
|
|
75
|
-
standalone: true,
|
|
76
|
-
host: {
|
|
77
|
-
'(pointerdown)': 'onTargetMove()'
|
|
78
|
-
}
|
|
79
|
-
}]
|
|
80
|
-
}] });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLXNjcm9sbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9oYW5kbGUtc2Nyb2xsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFTdkMsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVFxQixXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLG9CQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUc3Qix1QkFBa0IsR0FBRyxHQUFHLENBQUM7UUFFekIsc0JBQWlCLEdBQUcsTUFBTSxDQUFnQyxJQUFJLENBQUMsQ0FBQztRQUVuRSxnQkFBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztLQThFNUM7SUE1RVUsV0FBVztRQUNkLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxZQUFZO1FBQ2YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7UUFFM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxD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O1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQzNELENBQUM7SUFDTixDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMzQyxDQUFDOytHQTFGUSx3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFQcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLGVBQWUsRUFBRSxnQkFBZ0I7cUJBQ3BDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgdHlwZSB7IE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQsIE5nWm9uZSwgUmVuZGVyZXIyLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IENVSV9XSU5ET1cgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tjdWlIYW5kbGVTY3JvbGxdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgJyhwb2ludGVyZG93biknOiAnb25UYXJnZXRNb3ZlKCknXHJcbiAgICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlIYW5kbGVTY3JvbGxEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3cgPSBpbmplY3QoQ1VJX1dJTkRPVyk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZSA9IGluamVjdChOZ1pvbmUpO1xyXG5cclxuICAgIHByaXZhdGUgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xyXG4gICAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IFNDUk9MTF9BUkVBX0hFSUdIVCA9IDEwMDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsR2FwRWxlbWVudHMgPSBzaWduYWw8Q3VpTnVsbGFibGU8SFRNTERpdkVsZW1lbnRbXT4+KG51bGwpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBzY3JvbGxTcGVlZCA9IGlucHV0KDEwMCk7XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uVGFyZ2V0TW92ZSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzaWduYWwgPSB0aGlzLmFib3J0Q29udHJvbGxlci5zaWduYWw7XHJcblxyXG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcih0aGlzLmluaXRTY3JvbGxFdmVudC5iaW5kKHRoaXMsIHNpZ25hbCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFNjcm9sbEV2ZW50KHNpZ25hbDogQWJvcnRTaWduYWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgKHsgY2xpZW50WSB9KSA9PiB0aGlzLmhhbmRsZVNjcm9sbChjbGllbnRZKSwgeyBzaWduYWwgfSk7XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxyXG4gICAgICAgICAgICAncG9pbnRlcnVwJyxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxHYXBFbGVtZW50cygpPy5mb3JFYWNoKChlbGVtZW50KSA9PiBlbGVtZW50LnJlbW92ZSgpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsR2FwRWxlbWVudHMuc2V0KG51bGwpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgc2lnbmFsIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlU2Nyb2xsKGNsaWVudFk6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICBjb25zdCBzY3JvbGxTcGVlZCA9IHRoaXMuc2Nyb2xsU3BlZWQoKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnNjcm9sbEdhcEVsZW1lbnRzKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGxHYXBFbGVtZW50cygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNsaWVudFkgPD0gdGhpcy5TQ1JPTExfQVJFQV9IRUlHSFQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFNjcm9sbGluZygtc2Nyb2xsU3BlZWQpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNsaWVudFkgPj0gd2luZG93SGVpZ2h0IC0gdGhpcy5TQ1JPTExfQVJFQV9IRUlHSFQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFNjcm9sbGluZyhzY3JvbGxTcGVlZCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlbW92ZVN1YnNjcmlwdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0U2Nyb2xsR2FwRWxlbWVudHMoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsR2FwRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2Nyb2xsR2FwRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzY3JvbGxHYXBFbGVtZW50LCAnd2lkdGgnLCAnMTAwJScpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2Nyb2xsR2FwRWxlbWVudCwgJ2hlaWdodCcsICc0OHB4Jyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzY3JvbGxHYXBFbGVtZW50LCAndG9wJywgJzAnKTtcclxuXHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsR2FwQm90dG9tRWxlbWVudCA9IHNjcm9sbEdhcEVsZW1lbnQuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxEaXZFbGVtZW50O1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSwgc2Nyb2xsR2FwRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmJvZHksIHNjcm9sbEdhcEJvdHRvbUVsZW1lbnQpO1xyXG5cclxuICAgICAgICB0aGlzLnNjcm9sbEdhcEVsZW1lbnRzLnNldChbc2Nyb2xsR2FwRWxlbWVudCwgc2Nyb2xsR2FwQm90dG9tRWxlbWVudF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhcnRTY3JvbGxpbmcoc3BlZWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uID0gaW50ZXJ2YWwodGhpcy5zY3JvbGxTcGVlZCgpKS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICAgICAgdGhpcy53aW5kb3cuc2Nyb2xsQnkoeyB0b3A6IHNwZWVkLCBiZWhhdmlvcjogJ3Ntb290aCcgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVtb3ZlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Directive, inject, Output } from '@angular/core';
|
|
2
|
-
import { CuiHoveredService } from './hovered.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class CuiHovered {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.cuiHoveredChange = inject(CuiHoveredService);
|
|
7
|
-
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiHovered, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CuiHovered, isStandalone: true, selector: "[cuiHoveredChange]", outputs: { cuiHoveredChange: "cuiHoveredChange" }, providers: [CuiHoveredService], ngImport: i0 }); }
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiHovered, decorators: [{
|
|
12
|
-
type: Directive,
|
|
13
|
-
args: [{
|
|
14
|
-
standalone: true,
|
|
15
|
-
selector: '[cuiHoveredChange]',
|
|
16
|
-
providers: [CuiHoveredService]
|
|
17
|
-
}]
|
|
18
|
-
}], propDecorators: { cuiHoveredChange: [{
|
|
19
|
-
type: Output
|
|
20
|
-
}] } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXJlZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9ob3ZlcmVkL2hvdmVyZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFPdEQsTUFBTSxPQUFPLFVBQVU7SUFMdkI7UUFPb0IscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDaEU7K0dBSFksVUFBVTttR0FBVixVQUFVLG9IQUZSLENBQUMsaUJBQWlCLENBQUM7OzRGQUVyQixVQUFVO2tCQUx0QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDakM7OEJBR21CLGdCQUFnQjtzQkFEL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ3VpSG92ZXJlZFNlcnZpY2UgfSBmcm9tICcuL2hvdmVyZWQuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbY3VpSG92ZXJlZENoYW5nZV0nLFxuICAgIHByb3ZpZGVyczogW0N1aUhvdmVyZWRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBDdWlIb3ZlcmVkIHtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgY3VpSG92ZXJlZENoYW5nZSA9IGluamVjdChDdWlIb3ZlcmVkU2VydmljZSk7XG59XG4iXX0=
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { inject, Injectable, NgZone } from '@angular/core';
|
|
2
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { CUI_FALSE_HANDLER, CUI_TRUE_HANDLER } from '../../constants';
|
|
4
|
-
import { cuiTypedFromEvent, cuiWatch, cuiZoneOptimized } from '../../observables';
|
|
5
|
-
import { CUI_IS_MOBILE } from '../../tokens';
|
|
6
|
-
import { cuiInjectElement, cuiIsElement } from '../../utils';
|
|
7
|
-
import { distinctUntilChanged, filter, map, merge, Observable, of } from 'rxjs';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
function movedOut({ currentTarget, relatedTarget }) {
|
|
10
|
-
return !cuiIsElement(relatedTarget) || !cuiIsElement(currentTarget) || !currentTarget.contains(relatedTarget);
|
|
11
|
-
}
|
|
12
|
-
export class CuiHoveredService extends Observable {
|
|
13
|
-
constructor() {
|
|
14
|
-
super((subscriber) => this.stream$.subscribe(subscriber));
|
|
15
|
-
this.el = cuiInjectElement();
|
|
16
|
-
this.zone = inject(NgZone);
|
|
17
|
-
this.stream$ = merge(cuiTypedFromEvent(this.el, 'mouseenter').pipe(map(CUI_TRUE_HANDLER)), cuiTypedFromEvent(this.el, 'mouseleave').pipe(map(CUI_FALSE_HANDLER)),
|
|
18
|
-
// Hello, Safari
|
|
19
|
-
cuiTypedFromEvent(this.el, 'mouseout').pipe(filter(movedOut), map(CUI_FALSE_HANDLER))).pipe(distinctUntilChanged(), cuiZoneOptimized(this.zone));
|
|
20
|
-
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiHoveredService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiHoveredService }); }
|
|
23
|
-
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiHoveredService, decorators: [{
|
|
25
|
-
type: Injectable
|
|
26
|
-
}], ctorParameters: () => [] });
|
|
27
|
-
export function cuiHovered() {
|
|
28
|
-
return toSignal(inject(CUI_IS_MOBILE) ? of(false) : inject(CuiHoveredService).pipe(cuiWatch()), {
|
|
29
|
-
initialValue: false
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXJlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2RpcmVjdGl2ZXMvaG92ZXJlZC9ob3ZlcmVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUVoRixTQUFTLFFBQVEsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQWM7SUFDMUQsT0FBTyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDbEgsQ0FBQztBQUdELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxVQUFtQjtJQVd0RDtRQUNJLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQVg3QyxPQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRCLFlBQU8sR0FBRyxLQUFLLENBQzVCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQ3BFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JFLGdCQUFnQjtRQUNoQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FDeEYsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUk1RCxDQUFDOytHQWJRLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVOztBQWlCWCxNQUFNLFVBQVUsVUFBVTtJQUN0QixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUU7UUFDNUYsWUFBWSxFQUFFLEtBQUs7S0FDdEIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDVUlfRkFMU0VfSEFORExFUiwgQ1VJX1RSVUVfSEFORExFUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjdWlUeXBlZEZyb21FdmVudCwgY3VpV2F0Y2gsIGN1aVpvbmVPcHRpbWl6ZWQgfSBmcm9tICcuLi8uLi9vYnNlcnZhYmxlcyc7XG5pbXBvcnQgeyBDVUlfSVNfTU9CSUxFIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcbmltcG9ydCB7IGN1aUluamVjdEVsZW1lbnQsIGN1aUlzRWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmZ1bmN0aW9uIG1vdmVkT3V0KHsgY3VycmVudFRhcmdldCwgcmVsYXRlZFRhcmdldCB9OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFjdWlJc0VsZW1lbnQocmVsYXRlZFRhcmdldCkgfHwgIWN1aUlzRWxlbWVudChjdXJyZW50VGFyZ2V0KSB8fCAhY3VycmVudFRhcmdldC5jb250YWlucyhyZWxhdGVkVGFyZ2V0KTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEN1aUhvdmVyZWRTZXJ2aWNlIGV4dGVuZHMgT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IGN1aUluamVjdEVsZW1lbnQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHpvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtJCA9IG1lcmdlKFxuICAgICAgICBjdWlUeXBlZEZyb21FdmVudCh0aGlzLmVsLCAnbW91c2VlbnRlcicpLnBpcGUobWFwKENVSV9UUlVFX0hBTkRMRVIpKSxcbiAgICAgICAgY3VpVHlwZWRGcm9tRXZlbnQodGhpcy5lbCwgJ21vdXNlbGVhdmUnKS5waXBlKG1hcChDVUlfRkFMU0VfSEFORExFUikpLFxuICAgICAgICAvLyBIZWxsbywgU2FmYXJpXG4gICAgICAgIGN1aVR5cGVkRnJvbUV2ZW50KHRoaXMuZWwsICdtb3VzZW91dCcpLnBpcGUoZmlsdGVyKG1vdmVkT3V0KSwgbWFwKENVSV9GQUxTRV9IQU5ETEVSKSlcbiAgICApLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgY3VpWm9uZU9wdGltaXplZCh0aGlzLnpvbmUpKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigoc3Vic2NyaWJlcikgPT4gdGhpcy5zdHJlYW0kLnN1YnNjcmliZShzdWJzY3JpYmVyKSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3VpSG92ZXJlZCgpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0b1NpZ25hbChpbmplY3QoQ1VJX0lTX01PQklMRSkgPyBvZihmYWxzZSkgOiBpbmplY3QoQ3VpSG92ZXJlZFNlcnZpY2UpLnBpcGUoY3VpV2F0Y2goKSksIHtcbiAgICAgICAgaW5pdGlhbFZhbHVlOiBmYWxzZVxuICAgIH0pO1xufVxuIl19
|