@cuby-ui/cdk 0.0.167 → 0.0.169
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 +24 -24
- package/constants/index.d.ts +1 -1
- package/constants/svg-node-filter.d.ts +1 -1
- package/date-time/index.d.ts +1 -1
- package/date-time/time.d.ts +14 -14
- package/directives/auto-resizing.directive.d.ts +18 -18
- package/directives/click-outside.directive.d.ts +9 -9
- package/directives/content-editable-value-accessor.directive.d.ts +17 -17
- package/directives/dimensions-observer.directive.d.ts +13 -13
- package/directives/element.directive.d.ts +8 -8
- package/directives/focus-trap.directive.d.ts +14 -14
- package/directives/index.d.ts +10 -10
- package/directives/item.directive.d.ts +5 -5
- package/directives/let.context.d.ts +7 -7
- package/directives/let.directive.d.ts +9 -9
- package/directives/target.directive.d.ts +14 -14
- package/esm2020/constants/index.mjs +1 -1
- package/esm2020/constants/svg-node-filter.mjs +8 -8
- package/esm2020/cuby-ui-cdk.mjs +4 -4
- package/esm2020/date-time/index.mjs +2 -2
- package/esm2020/date-time/time.mjs +72 -72
- package/esm2020/directives/auto-resizing.directive.mjs +68 -68
- package/esm2020/directives/click-outside.directive.mjs +29 -29
- package/esm2020/directives/content-editable-value-accessor.directive.mjs +44 -44
- package/esm2020/directives/dimensions-observer.directive.mjs +32 -32
- package/esm2020/directives/element.directive.mjs +19 -19
- package/esm2020/directives/focus-trap.directive.mjs +50 -50
- package/esm2020/directives/index.mjs +11 -11
- package/esm2020/directives/item.directive.mjs +14 -14
- package/esm2020/directives/let.context.mjs +12 -12
- package/esm2020/directives/let.directive.mjs +23 -23
- package/esm2020/directives/target.directive.mjs +35 -35
- package/esm2020/index.mjs +10 -10
- package/esm2020/interfaces/dimensions.mjs +2 -2
- package/esm2020/interfaces/index.mjs +4 -4
- package/esm2020/interfaces/on-change.mjs +2 -2
- package/esm2020/interfaces/on-touched.mjs +2 -2
- package/esm2020/pipes/filter.pipe.mjs +17 -17
- package/esm2020/pipes/index.mjs +2 -2
- package/esm2020/services/destroy.service.mjs +15 -15
- package/esm2020/services/id.service.mjs +18 -18
- package/esm2020/services/index.mjs +4 -4
- package/esm2020/services/popover.service.mjs +38 -38
- package/esm2020/tokens/history.mjs +5 -5
- package/esm2020/tokens/index.mjs +5 -5
- package/esm2020/tokens/local-storage.mjs +5 -5
- package/esm2020/tokens/session-storage.mjs +5 -5
- package/esm2020/tokens/window.mjs +11 -11
- package/esm2020/types/date-time.mjs +2 -2
- package/esm2020/types/index.mjs +7 -7
- package/esm2020/types/input-type.mjs +2 -2
- package/esm2020/types/mapper.mjs +2 -2
- package/esm2020/types/matcher.mjs +2 -2
- package/esm2020/types/nullable.mjs +2 -2
- package/esm2020/types/value-of.mjs +1 -1
- package/esm2020/utils/dom/contains-or-after.mjs +10 -10
- package/esm2020/utils/dom/index.mjs +3 -3
- package/esm2020/utils/dom/is-html-element.mjs +4 -4
- package/esm2020/utils/focus/blur-native-focused.mjs +9 -9
- package/esm2020/utils/focus/get-closest-focusable.mjs +22 -22
- package/esm2020/utils/focus/get-native-focused.mjs +11 -11
- package/esm2020/utils/focus/index.mjs +6 -6
- package/esm2020/utils/focus/is-native-keyboard-focusable.mjs +27 -27
- package/esm2020/utils/focus/is-native-mouse-focusable.mjs +7 -7
- package/esm2020/utils/index.mjs +4 -4
- package/esm2020/utils/token/create-token.mjs +8 -8
- package/esm2020/utils/token/index.mjs +3 -3
- package/esm2020/utils/token/provide.mjs +4 -4
- package/fesm2015/cuby-ui-cdk.mjs +501 -501
- package/fesm2015/cuby-ui-cdk.mjs.map +1 -1
- package/fesm2020/cuby-ui-cdk.mjs +508 -508
- package/fesm2020/cuby-ui-cdk.mjs.map +1 -1
- package/index.d.ts +9 -9
- package/interfaces/dimensions.d.ts +4 -4
- package/interfaces/index.d.ts +3 -3
- package/interfaces/on-change.d.ts +3 -3
- package/interfaces/on-touched.d.ts +3 -3
- package/package.json +1 -1
- package/pipes/filter.pipe.d.ts +8 -8
- package/pipes/index.d.ts +1 -1
- package/services/destroy.service.d.ts +8 -8
- package/services/id.service.d.ts +7 -7
- package/services/index.d.ts +3 -3
- package/services/popover.service.d.ts +22 -22
- package/tokens/history.d.ts +1 -1
- package/tokens/index.d.ts +4 -4
- package/tokens/local-storage.d.ts +1 -1
- package/tokens/session-storage.d.ts +1 -1
- package/tokens/window.d.ts +1 -1
- package/types/date-time.d.ts +1 -1
- package/types/index.d.ts +6 -6
- package/types/input-type.d.ts +1 -1
- package/types/mapper.d.ts +1 -1
- package/types/matcher.d.ts +2 -2
- package/types/nullable.d.ts +1 -1
- package/types/value-of.d.ts +1 -1
- package/utils/dom/contains-or-after.d.ts +1 -1
- package/utils/dom/index.d.ts +2 -2
- package/utils/dom/is-html-element.d.ts +1 -1
- package/utils/focus/blur-native-focused.d.ts +1 -1
- package/utils/focus/get-closest-focusable.d.ts +7 -7
- package/utils/focus/get-native-focused.d.ts +1 -1
- package/utils/focus/index.d.ts +5 -5
- package/utils/focus/is-native-keyboard-focusable.d.ts +1 -1
- package/utils/focus/is-native-mouse-focusable.d.ts +1 -1
- package/utils/index.d.ts +3 -3
- package/utils/token/create-token.d.ts +3 -3
- package/utils/token/index.d.ts +2 -2
- package/utils/token/provide.d.ts +3 -3
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostListener, inject } from '@angular/core';
|
|
2
|
-
import { NgControl, NgModel } from '@angular/forms';
|
|
3
|
-
import { takeUntil } from 'rxjs';
|
|
4
|
-
import { CUI_WINDOW } from '../tokens';
|
|
5
|
-
import { CuiDestroyService } from '../services';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class CuiAutoResizingDirective {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.window = inject(CUI_WINDOW);
|
|
10
|
-
this.element = inject(ElementRef).nativeElement;
|
|
11
|
-
this.ngControl = inject(NgControl, { self: true, optional: true });
|
|
12
|
-
this.ngModel = inject(NgModel, { self: true, optional: true });
|
|
13
|
-
this.destroy$ = inject(CuiDestroyService, { self: true });
|
|
14
|
-
this.elementStyles = this.element.style;
|
|
15
|
-
}
|
|
16
|
-
ngOnInit() {
|
|
17
|
-
this.initNgControlValueChangeSubscription();
|
|
18
|
-
this.initNgModelValueChangeSubscription();
|
|
19
|
-
}
|
|
20
|
-
ngAfterViewChecked() {
|
|
21
|
-
this.resize();
|
|
22
|
-
}
|
|
23
|
-
onInput() {
|
|
24
|
-
this.resize();
|
|
25
|
-
}
|
|
26
|
-
initNgControlValueChangeSubscription() {
|
|
27
|
-
if (!this.ngControl) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
this.ngControl.valueChanges
|
|
31
|
-
.pipe(takeUntil(this.destroy$))
|
|
32
|
-
.subscribe(this.resize.bind(this));
|
|
33
|
-
}
|
|
34
|
-
initNgModelValueChangeSubscription() {
|
|
35
|
-
if (!this.ngModel) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
this.ngModel.valueChanges
|
|
39
|
-
.pipe(takeUntil(this.destroy$))
|
|
40
|
-
.subscribe(this.resize.bind(this));
|
|
41
|
-
}
|
|
42
|
-
resize() {
|
|
43
|
-
const { maxHeight: computedMaxHeight, borderTopWidth, borderBottomWidth } = this.window.getComputedStyle(this.element);
|
|
44
|
-
this.elementStyles.height = 'auto';
|
|
45
|
-
this.elementStyles.height =
|
|
46
|
-
this.element.scrollHeight + parseFloat(borderTopWidth) + parseFloat(borderBottomWidth) + 'px';
|
|
47
|
-
if (parseFloat(this.element.style.height) < parseFloat(computedMaxHeight)) {
|
|
48
|
-
this.elementStyles.overflow = 'hidden';
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
this.elementStyles.overflowY = 'scroll';
|
|
52
|
-
this.elementStyles.height = computedMaxHeight;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
CuiAutoResizingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAutoResizingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
56
|
-
CuiAutoResizingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiAutoResizingDirective, isStandalone: true, selector: "textarea[cuiAutoResizing]", host: { listeners: { "input": "onInput()" } }, providers: [CuiDestroyService], ngImport: i0 });
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAutoResizingDirective, decorators: [{
|
|
58
|
-
type: Directive,
|
|
59
|
-
args: [{
|
|
60
|
-
standalone: true,
|
|
61
|
-
selector: 'textarea[cuiAutoResizing]',
|
|
62
|
-
providers: [CuiDestroyService]
|
|
63
|
-
}]
|
|
64
|
-
}], propDecorators: { onInput: [{
|
|
65
|
-
type: HostListener,
|
|
66
|
-
args: ['input']
|
|
67
|
-
}] } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, ElementRef, HostListener, inject } from '@angular/core';
|
|
2
|
+
import { NgControl, NgModel } from '@angular/forms';
|
|
3
|
+
import { takeUntil } from 'rxjs';
|
|
4
|
+
import { CUI_WINDOW } from '../tokens';
|
|
5
|
+
import { CuiDestroyService } from '../services';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class CuiAutoResizingDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.window = inject(CUI_WINDOW);
|
|
10
|
+
this.element = inject(ElementRef).nativeElement;
|
|
11
|
+
this.ngControl = inject(NgControl, { self: true, optional: true });
|
|
12
|
+
this.ngModel = inject(NgModel, { self: true, optional: true });
|
|
13
|
+
this.destroy$ = inject(CuiDestroyService, { self: true });
|
|
14
|
+
this.elementStyles = this.element.style;
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
this.initNgControlValueChangeSubscription();
|
|
18
|
+
this.initNgModelValueChangeSubscription();
|
|
19
|
+
}
|
|
20
|
+
ngAfterViewChecked() {
|
|
21
|
+
this.resize();
|
|
22
|
+
}
|
|
23
|
+
onInput() {
|
|
24
|
+
this.resize();
|
|
25
|
+
}
|
|
26
|
+
initNgControlValueChangeSubscription() {
|
|
27
|
+
if (!this.ngControl) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.ngControl.valueChanges
|
|
31
|
+
.pipe(takeUntil(this.destroy$))
|
|
32
|
+
.subscribe(this.resize.bind(this));
|
|
33
|
+
}
|
|
34
|
+
initNgModelValueChangeSubscription() {
|
|
35
|
+
if (!this.ngModel) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.ngModel.valueChanges
|
|
39
|
+
.pipe(takeUntil(this.destroy$))
|
|
40
|
+
.subscribe(this.resize.bind(this));
|
|
41
|
+
}
|
|
42
|
+
resize() {
|
|
43
|
+
const { maxHeight: computedMaxHeight, borderTopWidth, borderBottomWidth } = this.window.getComputedStyle(this.element);
|
|
44
|
+
this.elementStyles.height = 'auto';
|
|
45
|
+
this.elementStyles.height =
|
|
46
|
+
this.element.scrollHeight + parseFloat(borderTopWidth) + parseFloat(borderBottomWidth) + 'px';
|
|
47
|
+
if (parseFloat(this.element.style.height) < parseFloat(computedMaxHeight)) {
|
|
48
|
+
this.elementStyles.overflow = 'hidden';
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
this.elementStyles.overflowY = 'scroll';
|
|
52
|
+
this.elementStyles.height = computedMaxHeight;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
CuiAutoResizingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAutoResizingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
56
|
+
CuiAutoResizingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiAutoResizingDirective, isStandalone: true, selector: "textarea[cuiAutoResizing]", host: { listeners: { "input": "onInput()" } }, providers: [CuiDestroyService], ngImport: i0 });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAutoResizingDirective, decorators: [{
|
|
58
|
+
type: Directive,
|
|
59
|
+
args: [{
|
|
60
|
+
standalone: true,
|
|
61
|
+
selector: 'textarea[cuiAutoResizing]',
|
|
62
|
+
providers: [CuiDestroyService]
|
|
63
|
+
}]
|
|
64
|
+
}], propDecorators: { onInput: [{
|
|
65
|
+
type: HostListener,
|
|
66
|
+
args: ['input']
|
|
67
|
+
}] } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1yZXNpemluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9hdXRvLXJlc2l6aW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFPaEQsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQU1tQixXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBNEIsQ0FBQztRQUMxRCxjQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUQsWUFBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELGFBQVEsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVyRCxrQkFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0tBd0RyRDtJQXREUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUdTLE9BQU87UUFDZixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLG9DQUFvQztRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQWE7YUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGtDQUFrQztRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQWE7YUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLE1BQU07UUFDWixNQUFNLEVBQ0osU0FBUyxFQUFDLGlCQUFpQixFQUMzQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2xCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTTtZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRWhHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ3pFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUV2QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUM7SUFDaEQsQ0FBQzs7c0hBOURVLHdCQUF3QjswR0FBeEIsd0JBQXdCLHVIQUZ4QixDQUFDLGlCQUFpQixDQUFDOzRGQUVuQix3QkFBd0I7a0JBTHBDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUMvQjs4QkFvQlcsT0FBTztzQkFEaEIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBZnRlclZpZXdDaGVja2VkLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCwgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBDVUlfV0lORE9XIH0gZnJvbSAnLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgQ3VpRGVzdHJveVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAndGV4dGFyZWFbY3VpQXV0b1Jlc2l6aW5nXScsXHJcbiAgcHJvdmlkZXJzOiBbQ3VpRGVzdHJveVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlBdXRvUmVzaXppbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93ID0gaW5qZWN0KENVSV9XSU5ET1cpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwgeyBzZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IG5nTW9kZWwgPSBpbmplY3QoTmdNb2RlbCwgeyBzZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9KTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gaW5qZWN0KEN1aURlc3Ryb3lTZXJ2aWNlLCB7IHNlbGY6IHRydWUgfSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFN0eWxlcyA9IHRoaXMuZWxlbWVudC5zdHlsZTtcclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0TmdDb250cm9sVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24oKTtcclxuICAgIHRoaXMuaW5pdE5nTW9kZWxWYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXHJcbiAgcHJvdGVjdGVkIG9uSW5wdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlc2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0TmdDb250cm9sVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24oKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUNoYW5nZXMhXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh0aGlzLnJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdE5nTW9kZWxWYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5uZ01vZGVsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm5nTW9kZWwudmFsdWVDaGFuZ2VzIVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5yZXNpemUuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2l6ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgbWF4SGVpZ2h0OmNvbXB1dGVkTWF4SGVpZ2h0LFxyXG4gICAgICBib3JkZXJUb3BXaWR0aCxcclxuICAgICAgYm9yZGVyQm90dG9tV2lkdGhcclxuICAgIH0gPSB0aGlzLndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxlbWVudCk7XHJcblxyXG4gICAgdGhpcy5lbGVtZW50U3R5bGVzLmhlaWdodCA9ICdhdXRvJztcclxuICAgIHRoaXMuZWxlbWVudFN0eWxlcy5oZWlnaHQgPVxyXG4gICAgICB0aGlzLmVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgcGFyc2VGbG9hdChib3JkZXJUb3BXaWR0aCkgKyBwYXJzZUZsb2F0KGJvcmRlckJvdHRvbVdpZHRoKSArICdweCc7XHJcblxyXG4gICAgaWYgKHBhcnNlRmxvYXQodGhpcy5lbGVtZW50LnN0eWxlLmhlaWdodCkgPCBwYXJzZUZsb2F0KGNvbXB1dGVkTWF4SGVpZ2h0KSkge1xyXG4gICAgICB0aGlzLmVsZW1lbnRTdHlsZXMub3ZlcmZsb3cgPSAnaGlkZGVuJztcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVsZW1lbnRTdHlsZXMub3ZlcmZsb3dZID0gJ3Njcm9sbCc7XHJcbiAgICB0aGlzLmVsZW1lbnRTdHlsZXMuaGVpZ2h0ID0gY29tcHV0ZWRNYXhIZWlnaHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { Directive, ElementRef, EventEmitter, HostListener, inject, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CuiClickOutsideDirective {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.element = inject(ElementRef).nativeElement;
|
|
6
|
-
this.cuiClickOutside = new EventEmitter();
|
|
7
|
-
}
|
|
8
|
-
onClickOutside(target) {
|
|
9
|
-
if (this.element.contains(target)) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
this.cuiClickOutside.emit(target);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
CuiClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
-
CuiClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiClickOutsideDirective, isStandalone: true, selector: "(cuiClickOutside)", outputs: { cuiClickOutside: "cuiClickOutside" }, host: { listeners: { "document:click": "onClickOutside($event.target)" } }, ngImport: i0 });
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiClickOutsideDirective, decorators: [{
|
|
18
|
-
type: Directive,
|
|
19
|
-
args: [{
|
|
20
|
-
standalone: true,
|
|
21
|
-
selector: '(cuiClickOutside)'
|
|
22
|
-
}]
|
|
23
|
-
}], propDecorators: { cuiClickOutside: [{
|
|
24
|
-
type: Output
|
|
25
|
-
}], onClickOutside: [{
|
|
26
|
-
type: HostListener,
|
|
27
|
-
args: ['document:click', ['$event.target']]
|
|
28
|
-
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, HostListener, inject, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CuiClickOutsideDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.element = inject(ElementRef).nativeElement;
|
|
6
|
+
this.cuiClickOutside = new EventEmitter();
|
|
7
|
+
}
|
|
8
|
+
onClickOutside(target) {
|
|
9
|
+
if (this.element.contains(target)) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
this.cuiClickOutside.emit(target);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
CuiClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
+
CuiClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiClickOutsideDirective, isStandalone: true, selector: "(cuiClickOutside)", outputs: { cuiClickOutside: "cuiClickOutside" }, host: { listeners: { "document:click": "onClickOutside($event.target)" } }, ngImport: i0 });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiClickOutsideDirective, decorators: [{
|
|
18
|
+
type: Directive,
|
|
19
|
+
args: [{
|
|
20
|
+
standalone: true,
|
|
21
|
+
selector: '(cuiClickOutside)'
|
|
22
|
+
}]
|
|
23
|
+
}], propDecorators: { cuiClickOutside: [{
|
|
24
|
+
type: Output
|
|
25
|
+
}], onClickOutside: [{
|
|
26
|
+
type: HostListener,
|
|
27
|
+
args: ['document:click', ['$event.target']]
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9jbGljay1vdXRzaWRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTWxHLE1BQU0sT0FBTyx3QkFBd0I7SUFKckM7UUFLbUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFHckQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO0tBVTFEO0lBUFcsY0FBYyxDQUFDLE1BQW1CO1FBQzFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7c0hBYlUsd0JBQXdCOzBHQUF4Qix3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7OEJBS1EsZUFBZTtzQkFEckIsTUFBTTtnQkFJRyxjQUFjO3NCQUR2QixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2VsZWN0b3I6ICcoY3VpQ2xpY2tPdXRzaWRlKSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjdWlDbGlja091dHNpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPEhUTUxFbGVtZW50PigpO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxyXG4gIHByb3RlY3RlZCBvbkNsaWNrT3V0c2lkZSh0YXJnZXQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY3VpQ2xpY2tPdXRzaWRlLmVtaXQodGFyZ2V0KTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -1,44 +1,44 @@
|
|
|
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
|
-
}
|
|
28
|
-
CuiContentEditableValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContentEditableValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
-
CuiContentEditableValueAccessorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", 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 });
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", 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,
|
|
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
|
+
}
|
|
28
|
+
CuiContentEditableValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContentEditableValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
+
CuiContentEditableValueAccessorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", 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 });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1lZGl0YWJsZS12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9jb250ZW50LWVkaXRhYmxlLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSW5ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFPNUMsTUFBTSxPQUFPLHdDQUF3QztJQUxyRDtRQU1tQixZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQTRCLENBQUM7S0E4QjVFO0lBekJRLFVBQVUsQ0FBQyxLQUEwQjtRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUF1QjtRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBZ0I7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFVBQW1CO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFHUyxPQUFPO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBR1MsTUFBTTtRQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDOztzSUE5QlUsd0NBQXdDOzBIQUF4Qyx3Q0FBd0MsZ05BRnhDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLHdDQUF3QyxFQUFFLElBQUksQ0FBQyxDQUFDOzRGQUUvRSx3Q0FBd0M7a0JBTHBELFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnR0FBZ0c7b0JBQzFHLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsNENBQTRDLElBQUksQ0FBQyxDQUFDO2lCQUMzRjs4QkF3QlcsT0FBTztzQkFEaEIsWUFBWTt1QkFBQyxPQUFPO2dCQU1YLE1BQU07c0JBRGYsWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgdHlwZSB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpT25DaGFuZ2UsIEN1aU9uVG91Y2hlZCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBjdWlQcm92aWRlIH0gZnJvbSAnLi4vdXRpbHMvdG9rZW4nO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ1tjb250ZW50ZWRpdGFibGVdW2Zvcm1Db250cm9sTmFtZV0sIFtjb250ZW50ZWRpdGFibGVdW2Zvcm1Db250cm9sXSwgW2NvbnRlbnRlZGl0YWJsZV1bbmdNb2RlbF0nLFxyXG4gIHByb3ZpZGVyczogW2N1aVByb3ZpZGUoTkdfVkFMVUVfQUNDRVNTT1IsIEN1aUNvbnRlbnRFZGl0YWJsZVZhbHVlQWNjZXNzb3JEaXJlY3RpdmUsIHRydWUpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpQ29udGVudEVkaXRhYmxlVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgcHJvdGVjdGVkIG9uQ2hhbmdlITogQ3VpT25DaGFuZ2U8c3RyaW5nPjtcclxuICBwcm90ZWN0ZWQgb25Ub3VjaGVkITogQ3VpT25Ub3VjaGVkO1xyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogQ3VpTnVsbGFibGU8c3RyaW5nPik6IHZvaWQge1xyXG4gICAgdGhpcy5lbGVtZW50LmlubmVyVGV4dCA9IHZhbHVlID8/ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEN1aU9uQ2hhbmdlPHN0cmluZz4pOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogQ3VpT25Ub3VjaGVkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5lbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9IFN0cmluZyghaXNEaXNhYmxlZCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXHJcbiAgcHJvdGVjdGVkIG9uSW5wdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPT09ICc8YnI+JyA/ICcnIDogdGhpcy5lbGVtZW50LmlubmVyVGV4dCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdibHVyJylcclxuICBwcm90ZWN0ZWQgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -1,32 +1,32 @@
|
|
|
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
|
-
}
|
|
21
|
-
CuiDimensionsObserverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDimensionsObserverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
22
|
-
CuiDimensionsObserverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiDimensionsObserverDirective, isStandalone: true, selector: "[cuiResizeObserver]", outputs: { cuiResizeObserver: "cuiResizeObserver" }, ngImport: i0 });
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", 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,
|
|
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
|
+
}
|
|
21
|
+
CuiDimensionsObserverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDimensionsObserverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
22
|
+
CuiDimensionsObserverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiDimensionsObserverDirective, isStandalone: true, selector: "[cuiResizeObserver]", outputs: { cuiResizeObserver: "cuiResizeObserver" }, ngImport: i0 });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9ucy1vYnNlcnZlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9kaW1lbnNpb25zLW9ic2VydmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRcEYsTUFBTSxPQUFPLDhCQUE4QjtJQUozQztRQUttQixZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQTRCLENBQUM7UUFFMUQsYUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDekQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2dCQUNoRCxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO2dCQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFHSSxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztLQVM5RDtJQVBRLFFBQVE7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzdCLENBQUM7OzRIQW5CVSw4QkFBOEI7Z0hBQTlCLDhCQUE4Qjs0RkFBOUIsOEJBQThCO2tCQUoxQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs4QkFZUSxpQkFBaUI7c0JBRHZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBDdWlEaW1lbnNpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnW2N1aVJlc2l6ZU9ic2VydmVyXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aURpbWVuc2lvbnNPYnNlcnZlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xyXG4gICAgZW50cmllcy5mb3JFYWNoKCgpID0+IHRoaXMuY3VpUmVzaXplT2JzZXJ2ZXIuZW1pdCh7XHJcbiAgICAgIHdpZHRoOiB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGgsXHJcbiAgICAgIGhlaWdodDogdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodFxyXG4gICAgfSkpO1xyXG4gIH0pO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY3VpUmVzaXplT2JzZXJ2ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1aURpbWVuc2lvbnM+KCk7XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -1,19 +1,19 @@
|
|
|
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
|
-
}
|
|
9
|
-
CuiElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
-
CuiElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiElementDirective, isStandalone: true, selector: "[cuiElement]", exportAs: ["elementRef"], ngImport: i0 });
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiElementDirective, decorators: [{
|
|
12
|
-
type: Directive,
|
|
13
|
-
args: [{
|
|
14
|
-
standalone: true,
|
|
15
|
-
selector: '[cuiElement]',
|
|
16
|
-
exportAs: 'elementRef',
|
|
17
|
-
}]
|
|
18
|
-
}], ctorParameters: function () { return []; } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
+
}
|
|
9
|
+
CuiElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
+
CuiElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiElementDirective, isStandalone: true, selector: "[cuiElement]", exportAs: ["elementRef"], ngImport: i0 });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiElementDirective, decorators: [{
|
|
12
|
+
type: Directive,
|
|
13
|
+
args: [{
|
|
14
|
+
standalone: true,
|
|
15
|
+
selector: '[cuiElement]',
|
|
16
|
+
exportAs: 'elementRef',
|
|
17
|
+
}]
|
|
18
|
+
}], ctorParameters: function () { return []; } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzlELE1BQU0sT0FBTyxtQkFBbUI7SUFHOUI7UUFGTyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQWEsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBR3pELE9BQU8sSUFBSSxVQUFVLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7O2lIQUxVLG1CQUFtQjtxR0FBbkIsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxjQUFjO29CQUN4QixRQUFRLEVBQUUsWUFBWTtpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ1tjdWlFbGVtZW50XScsXHJcbiAgZXhwb3J0QXM6ICdlbGVtZW50UmVmJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aUVsZW1lbnREaXJlY3RpdmU8VCBleHRlbmRzIEVsZW1lbnQgPSBIVE1MRWxlbWVudD4gaW1wbGVtZW50cyBFbGVtZW50UmVmPFQ+IHtcclxuICBwdWJsaWMgbmF0aXZlRWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmPFQ+KS5uYXRpdmVFbGVtZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHJldHVybiBuZXcgRWxlbWVudFJlZjxUPih0aGlzLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,50 +1,50 @@
|
|
|
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
|
-
}
|
|
35
|
-
CuiFocusTrapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFocusTrapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
36
|
-
CuiFocusTrapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiFocusTrapDirective, isStandalone: true, selector: "[cuiFocusTrap]", host: { listeners: { "window:focusin": "onFocusIn($event.target)" }, properties: { "tabIndex": "this.tabIndex" } }, ngImport: i0 });
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFocusTrapDirective, decorators: [{
|
|
38
|
-
type: Directive,
|
|
39
|
-
args: [{
|
|
40
|
-
standalone: true,
|
|
41
|
-
selector: '[cuiFocusTrap]',
|
|
42
|
-
}]
|
|
43
|
-
}], ctorParameters: function () { return []; }, 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,
|
|
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
|
+
}
|
|
35
|
+
CuiFocusTrapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFocusTrapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
36
|
+
CuiFocusTrapDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiFocusTrapDirective, isStandalone: true, selector: "[cuiFocusTrap]", host: { listeners: { "window:focusin": "onFocusIn($event.target)" }, properties: { "tabIndex": "this.tabIndex" } }, ngImport: i0 });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFocusTrapDirective, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{
|
|
40
|
+
standalone: true,
|
|
41
|
+
selector: '[cuiFocusTrap]',
|
|
42
|
+
}]
|
|
43
|
+
}], ctorParameters: function () { return []; }, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9mb2N1cy10cmFwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDakIsTUFBTSxVQUFVLENBQUM7O0FBTWxCLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEM7UUFKaUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMzQyxrQkFBYSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQW1CakQsYUFBUSxHQUFHLENBQUMsQ0FBQztRQWhCOUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ3pDLE9BQU87YUFDUjtZQUVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBTVMsU0FBUyxDQUFDLElBQVU7UUFDNUIsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQzFDLE9BQU87U0FDUjtRQUVELHNCQUFzQixDQUFDO1lBQ3JCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDbkIsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDOzttSEF0Q1UscUJBQXFCO3VHQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7MEVBdUJvQixRQUFRO3NCQUQxQixXQUFXO3VCQUFDLFVBQVU7Z0JBSWIsU0FBUztzQkFEbEIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7XHJcbiAgY3VpQmx1ck5hdGl2ZUZvY3VzZWQsXHJcbiAgY3VpQ29udGFpbnNPckFmdGVyLFxyXG4gIGN1aUdldENsb3Nlc3RGb2N1c2FibGUsXHJcbiAgY3VpR2V0TmF0aXZlRm9jdXNlZCxcclxuICBjdWlJc0hUTUxFbGVtZW50XHJcbn0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBzZWxlY3RvcjogJ1tjdWlGb2N1c1RyYXBdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aUZvY3VzVHJhcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmVFbGVtZW50ID0gY3VpR2V0TmF0aXZlRm9jdXNlZCh0aGlzLmRvY3VtZW50KTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmluaXRFbGVtZW50Rm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGN1aUJsdXJOYXRpdmVGb2N1c2VkKHRoaXMuZG9jdW1lbnQpO1xyXG5cclxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBpZiAoIWN1aUlzSFRNTEVsZW1lbnQodGhpcy5hY3RpdmVFbGVtZW50KSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5hY3RpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygndGFiSW5kZXgnKVxyXG4gIHByb3RlY3RlZCByZWFkb25seSB0YWJJbmRleCA9IDA7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpmb2N1c2luJywgWyckZXZlbnQudGFyZ2V0J10pXHJcbiAgcHJvdGVjdGVkIG9uRm9jdXNJbihub2RlOiBOb2RlKTogdm9pZCB7XHJcbiAgICBpZiAoY3VpQ29udGFpbnNPckFmdGVyKHRoaXMuZWxlbWVudCwgbm9kZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGN1aUdldENsb3Nlc3RGb2N1c2FibGUoe1xyXG4gICAgICBpbml0aWFsOiB0aGlzLmVsZW1lbnQsXHJcbiAgICAgIHJvb3Q6IHRoaXMuZWxlbWVudCxcclxuICAgIH0pPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RWxlbWVudEZvY3VzKCk6IHZvaWQge1xyXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLmVsZW1lbnQuZm9jdXMoKSk7XHJcbiAgfVxyXG59Il19
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export * from './auto-resizing.directive';
|
|
2
|
-
export * from './click-outside.directive';
|
|
3
|
-
export * from './dimensions-observer.directive';
|
|
4
|
-
export * from './content-editable-value-accessor.directive';
|
|
5
|
-
export * from './element.directive';
|
|
6
|
-
export * from './focus-trap.directive';
|
|
7
|
-
export * from './item.directive';
|
|
8
|
-
export * from './let.context';
|
|
9
|
-
export * from './let.directive';
|
|
10
|
-
export * from './target.directive';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './auto-resizing.directive';
|
|
2
|
+
export * from './click-outside.directive';
|
|
3
|
+
export * from './dimensions-observer.directive';
|
|
4
|
+
export * from './content-editable-value-accessor.directive';
|
|
5
|
+
export * from './element.directive';
|
|
6
|
+
export * from './focus-trap.directive';
|
|
7
|
+
export * from './item.directive';
|
|
8
|
+
export * from './let.context';
|
|
9
|
+
export * from './let.directive';
|
|
10
|
+
export * from './target.directive';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0by1yZXNpemluZy5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaW1lbnNpb25zLW9ic2VydmVyLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGVudC1lZGl0YWJsZS12YWx1ZS1hY2Nlc3Nvci5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VsZW1lbnQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9mb2N1cy10cmFwLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaXRlbS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xldC5jb250ZXh0JztcclxuZXhwb3J0ICogZnJvbSAnLi9sZXQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi90YXJnZXQuZGlyZWN0aXZlJztcclxuIl19
|