@cuby-ui/cdk 0.0.146 → 0.0.148
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/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/directives/auto-resizing.directive.mjs +67 -67
- 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 +8 -8
- 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/index.mjs +6 -6
- 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 +430 -430
- package/fesm2015/cuby-ui-cdk.mjs.map +1 -1
- package/fesm2020/cuby-ui-cdk.mjs +437 -437
- package/fesm2020/cuby-ui-cdk.mjs.map +1 -1
- package/index.d.ts +7 -7
- 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/index.d.ts +5 -5
- 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
package/fesm2020/cuby-ui-cdk.mjs
CHANGED
|
@@ -4,23 +4,23 @@ import { NgControl, NgModel, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
|
4
4
|
import { Subject, Observable, takeUntil } from 'rxjs';
|
|
5
5
|
import { DOCUMENT } from '@angular/common';
|
|
6
6
|
|
|
7
|
-
function cuiCreateToken(defaults) {
|
|
8
|
-
return cuiCreateTokenFromFactory(() => defaults);
|
|
9
|
-
}
|
|
10
|
-
function cuiCreateTokenFromFactory(factory) {
|
|
11
|
-
return new InjectionToken('', { factory });
|
|
7
|
+
function cuiCreateToken(defaults) {
|
|
8
|
+
return cuiCreateTokenFromFactory(() => defaults);
|
|
9
|
+
}
|
|
10
|
+
function cuiCreateTokenFromFactory(factory) {
|
|
11
|
+
return new InjectionToken('', { factory });
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
function cuiProvide(provide, useExisting, multi = false) {
|
|
15
|
-
return { provide, useExisting, multi };
|
|
14
|
+
function cuiProvide(provide, useExisting, multi = false) {
|
|
15
|
+
return { provide, useExisting, multi };
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
const CUI_WINDOW = cuiCreateTokenFromFactory(() => {
|
|
19
|
-
const { defaultView } = inject(DOCUMENT);
|
|
20
|
-
if (!defaultView) {
|
|
21
|
-
throw new Error('Window is not available');
|
|
22
|
-
}
|
|
23
|
-
return defaultView;
|
|
18
|
+
const CUI_WINDOW = cuiCreateTokenFromFactory(() => {
|
|
19
|
+
const { defaultView } = inject(DOCUMENT);
|
|
20
|
+
if (!defaultView) {
|
|
21
|
+
throw new Error('Window is not available');
|
|
22
|
+
}
|
|
23
|
+
return defaultView;
|
|
24
24
|
});
|
|
25
25
|
|
|
26
26
|
const CUI_HISTORY = cuiCreateTokenFromFactory(() => inject(CUI_WINDOW).history);
|
|
@@ -29,474 +29,474 @@ const CUI_LOCAL_STORAGE = cuiCreateTokenFromFactory(() => inject(CUI_WINDOW).loc
|
|
|
29
29
|
|
|
30
30
|
const CUI_SESSION_STORAGE = cuiCreateTokenFromFactory(() => inject(CUI_WINDOW).sessionStorage);
|
|
31
31
|
|
|
32
|
-
class CuiDestroyService extends Subject {
|
|
33
|
-
ngOnDestroy() {
|
|
34
|
-
this.next();
|
|
35
|
-
this.complete();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
CuiDestroyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDestroyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
|
-
CuiDestroyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDestroyService });
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDestroyService, decorators: [{
|
|
41
|
-
type: Injectable
|
|
32
|
+
class CuiDestroyService extends Subject {
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
this.next();
|
|
35
|
+
this.complete();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
CuiDestroyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDestroyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
|
+
CuiDestroyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDestroyService });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDestroyService, decorators: [{
|
|
41
|
+
type: Injectable
|
|
42
42
|
}] });
|
|
43
43
|
|
|
44
|
-
const CUI = 'cui_';
|
|
45
|
-
class CuiIdService {
|
|
46
|
-
generate() {
|
|
47
|
-
return `${CUI}${CuiIdService.autoId++}${Date.now()}`;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
CuiIdService.autoId = 0;
|
|
51
|
-
CuiIdService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
52
|
-
CuiIdService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiIdService, providedIn: 'root' });
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiIdService, decorators: [{
|
|
54
|
-
type: Injectable,
|
|
55
|
-
args: [{
|
|
56
|
-
providedIn: 'root'
|
|
57
|
-
}]
|
|
44
|
+
const CUI = 'cui_';
|
|
45
|
+
class CuiIdService {
|
|
46
|
+
generate() {
|
|
47
|
+
return `${CUI}${CuiIdService.autoId++}${Date.now()}`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
CuiIdService.autoId = 0;
|
|
51
|
+
CuiIdService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
52
|
+
CuiIdService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiIdService, providedIn: 'root' });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiIdService, decorators: [{
|
|
54
|
+
type: Injectable,
|
|
55
|
+
args: [{
|
|
56
|
+
providedIn: 'root'
|
|
57
|
+
}]
|
|
58
58
|
}] });
|
|
59
59
|
|
|
60
|
-
class CuiPopoverService {
|
|
61
|
-
constructor(items, component, options = {}) {
|
|
62
|
-
this.options = options;
|
|
63
|
-
this.cuiIdService = inject(CuiIdService);
|
|
64
|
-
this.items$ = inject(items);
|
|
65
|
-
this.component = component;
|
|
66
|
-
}
|
|
67
|
-
open(content, options = {}) {
|
|
68
|
-
return new Observable(observer => {
|
|
69
|
-
const item = {
|
|
70
|
-
...this.options,
|
|
71
|
-
...options,
|
|
72
|
-
$implicit: observer,
|
|
73
|
-
id: this.cuiIdService.generate(),
|
|
74
|
-
component: this.component,
|
|
75
|
-
content: content,
|
|
76
|
-
completeWith: (result) => {
|
|
77
|
-
observer.next(result);
|
|
78
|
-
observer.complete();
|
|
79
|
-
},
|
|
80
|
-
};
|
|
81
|
-
this.items$.next([...this.items$.value, item]);
|
|
82
|
-
return () => {
|
|
83
|
-
this.items$.next(this.items$.value.filter(value => value !== item));
|
|
84
|
-
};
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
CuiPopoverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiPopoverService, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
89
|
-
CuiPopoverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiPopoverService });
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiPopoverService, decorators: [{
|
|
91
|
-
type: Injectable
|
|
60
|
+
class CuiPopoverService {
|
|
61
|
+
constructor(items, component, options = {}) {
|
|
62
|
+
this.options = options;
|
|
63
|
+
this.cuiIdService = inject(CuiIdService);
|
|
64
|
+
this.items$ = inject(items);
|
|
65
|
+
this.component = component;
|
|
66
|
+
}
|
|
67
|
+
open(content, options = {}) {
|
|
68
|
+
return new Observable(observer => {
|
|
69
|
+
const item = {
|
|
70
|
+
...this.options,
|
|
71
|
+
...options,
|
|
72
|
+
$implicit: observer,
|
|
73
|
+
id: this.cuiIdService.generate(),
|
|
74
|
+
component: this.component,
|
|
75
|
+
content: content,
|
|
76
|
+
completeWith: (result) => {
|
|
77
|
+
observer.next(result);
|
|
78
|
+
observer.complete();
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
this.items$.next([...this.items$.value, item]);
|
|
82
|
+
return () => {
|
|
83
|
+
this.items$.next(this.items$.value.filter(value => value !== item));
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
CuiPopoverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiPopoverService, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
89
|
+
CuiPopoverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiPopoverService });
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiPopoverService, decorators: [{
|
|
91
|
+
type: Injectable
|
|
92
92
|
}], ctorParameters: function () { return [{ type: undefined }, { type: undefined }, { type: undefined }]; } });
|
|
93
93
|
|
|
94
|
-
class CuiAutoResizingDirective {
|
|
95
|
-
constructor() {
|
|
96
|
-
this.window = inject(CUI_WINDOW);
|
|
97
|
-
this.element = inject(ElementRef).nativeElement;
|
|
98
|
-
this.ngControl = inject(NgControl, { self: true, optional: true });
|
|
99
|
-
this.ngModel = inject(NgModel, { self: true, optional: true });
|
|
100
|
-
this.destroy$ = inject(CuiDestroyService, { self: true });
|
|
101
|
-
this.elementStyles = this.element.style;
|
|
102
|
-
}
|
|
103
|
-
ngOnInit() {
|
|
104
|
-
this.initNgControlValueChangeSubscription();
|
|
105
|
-
this.initNgModelValueChangeSubscription();
|
|
106
|
-
}
|
|
107
|
-
ngAfterViewInit() {
|
|
108
|
-
this.resize();
|
|
109
|
-
}
|
|
110
|
-
onInput() {
|
|
111
|
-
this.resize();
|
|
112
|
-
}
|
|
113
|
-
initNgControlValueChangeSubscription() {
|
|
114
|
-
if (!this.ngControl) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
this.ngControl.valueChanges
|
|
118
|
-
.pipe(takeUntil(this.destroy$))
|
|
119
|
-
.subscribe(this.resize.bind(this));
|
|
120
|
-
}
|
|
121
|
-
initNgModelValueChangeSubscription() {
|
|
122
|
-
if (!this.ngModel) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
this.ngModel.valueChanges
|
|
126
|
-
.pipe(takeUntil(this.destroy$))
|
|
127
|
-
.subscribe(this.resize.bind(this));
|
|
128
|
-
}
|
|
129
|
-
resize() {
|
|
130
|
-
const computedMaxHeight = this.window.getComputedStyle(this.element).maxHeight;
|
|
131
|
-
this.elementStyles.height = 'auto';
|
|
132
|
-
this.elementStyles.height = this.element.scrollHeight + 'px';
|
|
133
|
-
if (parseFloat(this.element.style.height) < parseFloat(computedMaxHeight)) {
|
|
134
|
-
this.elementStyles.overflow = 'hidden';
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
this.elementStyles.overflowY = 'scroll';
|
|
138
|
-
this.elementStyles.height = computedMaxHeight;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
CuiAutoResizingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAutoResizingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
142
|
-
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 });
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAutoResizingDirective, decorators: [{
|
|
144
|
-
type: Directive,
|
|
145
|
-
args: [{
|
|
146
|
-
standalone: true,
|
|
147
|
-
selector: 'textarea[cuiAutoResizing]',
|
|
148
|
-
providers: [CuiDestroyService]
|
|
149
|
-
}]
|
|
150
|
-
}], propDecorators: { onInput: [{
|
|
151
|
-
type: HostListener,
|
|
152
|
-
args: ['input']
|
|
94
|
+
class CuiAutoResizingDirective {
|
|
95
|
+
constructor() {
|
|
96
|
+
this.window = inject(CUI_WINDOW);
|
|
97
|
+
this.element = inject(ElementRef).nativeElement;
|
|
98
|
+
this.ngControl = inject(NgControl, { self: true, optional: true });
|
|
99
|
+
this.ngModel = inject(NgModel, { self: true, optional: true });
|
|
100
|
+
this.destroy$ = inject(CuiDestroyService, { self: true });
|
|
101
|
+
this.elementStyles = this.element.style;
|
|
102
|
+
}
|
|
103
|
+
ngOnInit() {
|
|
104
|
+
this.initNgControlValueChangeSubscription();
|
|
105
|
+
this.initNgModelValueChangeSubscription();
|
|
106
|
+
}
|
|
107
|
+
ngAfterViewInit() {
|
|
108
|
+
this.resize();
|
|
109
|
+
}
|
|
110
|
+
onInput() {
|
|
111
|
+
this.resize();
|
|
112
|
+
}
|
|
113
|
+
initNgControlValueChangeSubscription() {
|
|
114
|
+
if (!this.ngControl) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
this.ngControl.valueChanges
|
|
118
|
+
.pipe(takeUntil(this.destroy$))
|
|
119
|
+
.subscribe(this.resize.bind(this));
|
|
120
|
+
}
|
|
121
|
+
initNgModelValueChangeSubscription() {
|
|
122
|
+
if (!this.ngModel) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
this.ngModel.valueChanges
|
|
126
|
+
.pipe(takeUntil(this.destroy$))
|
|
127
|
+
.subscribe(this.resize.bind(this));
|
|
128
|
+
}
|
|
129
|
+
resize() {
|
|
130
|
+
const computedMaxHeight = this.window.getComputedStyle(this.element).maxHeight;
|
|
131
|
+
this.elementStyles.height = 'auto';
|
|
132
|
+
this.elementStyles.height = this.element.scrollHeight + 'px';
|
|
133
|
+
if (parseFloat(this.element.style.height) < parseFloat(computedMaxHeight)) {
|
|
134
|
+
this.elementStyles.overflow = 'hidden';
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
this.elementStyles.overflowY = 'scroll';
|
|
138
|
+
this.elementStyles.height = computedMaxHeight;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
CuiAutoResizingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAutoResizingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
142
|
+
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 });
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiAutoResizingDirective, decorators: [{
|
|
144
|
+
type: Directive,
|
|
145
|
+
args: [{
|
|
146
|
+
standalone: true,
|
|
147
|
+
selector: 'textarea[cuiAutoResizing]',
|
|
148
|
+
providers: [CuiDestroyService]
|
|
149
|
+
}]
|
|
150
|
+
}], propDecorators: { onInput: [{
|
|
151
|
+
type: HostListener,
|
|
152
|
+
args: ['input']
|
|
153
153
|
}] } });
|
|
154
154
|
|
|
155
|
-
class CuiClickOutsideDirective {
|
|
156
|
-
constructor() {
|
|
157
|
-
this.element = inject(ElementRef).nativeElement;
|
|
158
|
-
this.cuiClickOutside = new EventEmitter();
|
|
159
|
-
}
|
|
160
|
-
onClickOutside(target) {
|
|
161
|
-
if (this.element.contains(target)) {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
this.cuiClickOutside.emit(target);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
CuiClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
168
|
-
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 });
|
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiClickOutsideDirective, decorators: [{
|
|
170
|
-
type: Directive,
|
|
171
|
-
args: [{
|
|
172
|
-
standalone: true,
|
|
173
|
-
selector: '(cuiClickOutside)'
|
|
174
|
-
}]
|
|
175
|
-
}], propDecorators: { cuiClickOutside: [{
|
|
176
|
-
type: Output
|
|
177
|
-
}], onClickOutside: [{
|
|
178
|
-
type: HostListener,
|
|
179
|
-
args: ['document:click', ['$event.target']]
|
|
155
|
+
class CuiClickOutsideDirective {
|
|
156
|
+
constructor() {
|
|
157
|
+
this.element = inject(ElementRef).nativeElement;
|
|
158
|
+
this.cuiClickOutside = new EventEmitter();
|
|
159
|
+
}
|
|
160
|
+
onClickOutside(target) {
|
|
161
|
+
if (this.element.contains(target)) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
this.cuiClickOutside.emit(target);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
CuiClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
168
|
+
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 });
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiClickOutsideDirective, decorators: [{
|
|
170
|
+
type: Directive,
|
|
171
|
+
args: [{
|
|
172
|
+
standalone: true,
|
|
173
|
+
selector: '(cuiClickOutside)'
|
|
174
|
+
}]
|
|
175
|
+
}], propDecorators: { cuiClickOutside: [{
|
|
176
|
+
type: Output
|
|
177
|
+
}], onClickOutside: [{
|
|
178
|
+
type: HostListener,
|
|
179
|
+
args: ['document:click', ['$event.target']]
|
|
180
180
|
}] } });
|
|
181
181
|
|
|
182
|
-
class CuiDimensionsObserverDirective {
|
|
183
|
-
constructor() {
|
|
184
|
-
this.element = inject(ElementRef).nativeElement;
|
|
185
|
-
this.observer = new ResizeObserver((entries) => {
|
|
186
|
-
entries.forEach(() => this.cuiResizeObserver.emit({
|
|
187
|
-
width: this.element.offsetWidth,
|
|
188
|
-
height: this.element.offsetHeight
|
|
189
|
-
}));
|
|
190
|
-
});
|
|
191
|
-
this.cuiResizeObserver = new EventEmitter();
|
|
192
|
-
}
|
|
193
|
-
ngOnInit() {
|
|
194
|
-
this.observer.observe(this.element);
|
|
195
|
-
}
|
|
196
|
-
ngOnDestroy() {
|
|
197
|
-
this.observer.disconnect();
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
CuiDimensionsObserverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDimensionsObserverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
201
|
-
CuiDimensionsObserverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiDimensionsObserverDirective, isStandalone: true, selector: "[cuiResizeObserver]", outputs: { cuiResizeObserver: "cuiResizeObserver" }, ngImport: i0 });
|
|
202
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDimensionsObserverDirective, decorators: [{
|
|
203
|
-
type: Directive,
|
|
204
|
-
args: [{
|
|
205
|
-
standalone: true,
|
|
206
|
-
selector: '[cuiResizeObserver]'
|
|
207
|
-
}]
|
|
208
|
-
}], propDecorators: { cuiResizeObserver: [{
|
|
209
|
-
type: Output
|
|
182
|
+
class CuiDimensionsObserverDirective {
|
|
183
|
+
constructor() {
|
|
184
|
+
this.element = inject(ElementRef).nativeElement;
|
|
185
|
+
this.observer = new ResizeObserver((entries) => {
|
|
186
|
+
entries.forEach(() => this.cuiResizeObserver.emit({
|
|
187
|
+
width: this.element.offsetWidth,
|
|
188
|
+
height: this.element.offsetHeight
|
|
189
|
+
}));
|
|
190
|
+
});
|
|
191
|
+
this.cuiResizeObserver = new EventEmitter();
|
|
192
|
+
}
|
|
193
|
+
ngOnInit() {
|
|
194
|
+
this.observer.observe(this.element);
|
|
195
|
+
}
|
|
196
|
+
ngOnDestroy() {
|
|
197
|
+
this.observer.disconnect();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
CuiDimensionsObserverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDimensionsObserverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
201
|
+
CuiDimensionsObserverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiDimensionsObserverDirective, isStandalone: true, selector: "[cuiResizeObserver]", outputs: { cuiResizeObserver: "cuiResizeObserver" }, ngImport: i0 });
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiDimensionsObserverDirective, decorators: [{
|
|
203
|
+
type: Directive,
|
|
204
|
+
args: [{
|
|
205
|
+
standalone: true,
|
|
206
|
+
selector: '[cuiResizeObserver]'
|
|
207
|
+
}]
|
|
208
|
+
}], propDecorators: { cuiResizeObserver: [{
|
|
209
|
+
type: Output
|
|
210
210
|
}] } });
|
|
211
211
|
|
|
212
|
-
class CuiContentEditableValueAccessorDirective {
|
|
213
|
-
constructor() {
|
|
214
|
-
this.element = inject(ElementRef).nativeElement;
|
|
215
|
-
}
|
|
216
|
-
writeValue(value) {
|
|
217
|
-
this.element.innerText = value ?? '';
|
|
218
|
-
}
|
|
219
|
-
registerOnChange(fn) {
|
|
220
|
-
this.onChange = fn;
|
|
221
|
-
}
|
|
222
|
-
registerOnTouched(fn) {
|
|
223
|
-
this.onTouched = fn;
|
|
224
|
-
}
|
|
225
|
-
setDisabledState(isDisabled) {
|
|
226
|
-
this.element.contentEditable = String(!isDisabled);
|
|
227
|
-
}
|
|
228
|
-
onInput() {
|
|
229
|
-
this.onChange(this.element.innerText);
|
|
230
|
-
}
|
|
231
|
-
onBlur() {
|
|
232
|
-
this.onTouched();
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
CuiContentEditableValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContentEditableValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
236
|
-
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 });
|
|
237
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContentEditableValueAccessorDirective, decorators: [{
|
|
238
|
-
type: Directive,
|
|
239
|
-
args: [{
|
|
240
|
-
standalone: true,
|
|
241
|
-
selector: '[contenteditable][formControlName], [contenteditable][formControl], [contenteditable][ngModel]',
|
|
242
|
-
providers: [cuiProvide(NG_VALUE_ACCESSOR, CuiContentEditableValueAccessorDirective, true)]
|
|
243
|
-
}]
|
|
244
|
-
}], propDecorators: { onInput: [{
|
|
245
|
-
type: HostListener,
|
|
246
|
-
args: ['input']
|
|
247
|
-
}], onBlur: [{
|
|
248
|
-
type: HostListener,
|
|
249
|
-
args: ['blur']
|
|
212
|
+
class CuiContentEditableValueAccessorDirective {
|
|
213
|
+
constructor() {
|
|
214
|
+
this.element = inject(ElementRef).nativeElement;
|
|
215
|
+
}
|
|
216
|
+
writeValue(value) {
|
|
217
|
+
this.element.innerText = value ?? '';
|
|
218
|
+
}
|
|
219
|
+
registerOnChange(fn) {
|
|
220
|
+
this.onChange = fn;
|
|
221
|
+
}
|
|
222
|
+
registerOnTouched(fn) {
|
|
223
|
+
this.onTouched = fn;
|
|
224
|
+
}
|
|
225
|
+
setDisabledState(isDisabled) {
|
|
226
|
+
this.element.contentEditable = String(!isDisabled);
|
|
227
|
+
}
|
|
228
|
+
onInput() {
|
|
229
|
+
this.onChange(this.element.innerHTML === '<br>' ? '' : this.element.innerText);
|
|
230
|
+
}
|
|
231
|
+
onBlur() {
|
|
232
|
+
this.onTouched();
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
CuiContentEditableValueAccessorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContentEditableValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
236
|
+
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 });
|
|
237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContentEditableValueAccessorDirective, decorators: [{
|
|
238
|
+
type: Directive,
|
|
239
|
+
args: [{
|
|
240
|
+
standalone: true,
|
|
241
|
+
selector: '[contenteditable][formControlName], [contenteditable][formControl], [contenteditable][ngModel]',
|
|
242
|
+
providers: [cuiProvide(NG_VALUE_ACCESSOR, CuiContentEditableValueAccessorDirective, true)]
|
|
243
|
+
}]
|
|
244
|
+
}], propDecorators: { onInput: [{
|
|
245
|
+
type: HostListener,
|
|
246
|
+
args: ['input']
|
|
247
|
+
}], onBlur: [{
|
|
248
|
+
type: HostListener,
|
|
249
|
+
args: ['blur']
|
|
250
250
|
}] } });
|
|
251
251
|
|
|
252
|
-
class CuiElementDirective {
|
|
253
|
-
constructor() {
|
|
254
|
-
this.nativeElement = inject((ElementRef)).nativeElement;
|
|
255
|
-
return new ElementRef(this.nativeElement);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
CuiElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
259
|
-
CuiElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiElementDirective, isStandalone: true, selector: "[cuiElement]", exportAs: ["elementRef"], ngImport: i0 });
|
|
260
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiElementDirective, decorators: [{
|
|
261
|
-
type: Directive,
|
|
262
|
-
args: [{
|
|
263
|
-
standalone: true,
|
|
264
|
-
selector: '[cuiElement]',
|
|
265
|
-
exportAs: 'elementRef',
|
|
266
|
-
}]
|
|
252
|
+
class CuiElementDirective {
|
|
253
|
+
constructor() {
|
|
254
|
+
this.nativeElement = inject((ElementRef)).nativeElement;
|
|
255
|
+
return new ElementRef(this.nativeElement);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
CuiElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
259
|
+
CuiElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiElementDirective, isStandalone: true, selector: "[cuiElement]", exportAs: ["elementRef"], ngImport: i0 });
|
|
260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiElementDirective, decorators: [{
|
|
261
|
+
type: Directive,
|
|
262
|
+
args: [{
|
|
263
|
+
standalone: true,
|
|
264
|
+
selector: '[cuiElement]',
|
|
265
|
+
exportAs: 'elementRef',
|
|
266
|
+
}]
|
|
267
267
|
}], ctorParameters: function () { return []; } });
|
|
268
268
|
|
|
269
|
-
function cuiContainsOrAfter(current, node) {
|
|
270
|
-
try {
|
|
271
|
-
return (current.contains(node) ||
|
|
272
|
-
!!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING));
|
|
273
|
-
}
|
|
274
|
-
catch {
|
|
275
|
-
return false;
|
|
276
|
-
}
|
|
269
|
+
function cuiContainsOrAfter(current, node) {
|
|
270
|
+
try {
|
|
271
|
+
return (current.contains(node) ||
|
|
272
|
+
!!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING));
|
|
273
|
+
}
|
|
274
|
+
catch {
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
277
|
}
|
|
278
278
|
|
|
279
|
-
function cuiIsHTMLElement(node) {
|
|
280
|
-
return !!node && node instanceof node.ownerDocument.defaultView.HTMLElement;
|
|
279
|
+
function cuiIsHTMLElement(node) {
|
|
280
|
+
return !!node && node instanceof node.ownerDocument.defaultView.HTMLElement;
|
|
281
281
|
}
|
|
282
282
|
|
|
283
|
-
function cuiGetNativeFocused({ activeElement }) {
|
|
284
|
-
if (!activeElement?.shadowRoot) {
|
|
285
|
-
return activeElement;
|
|
286
|
-
}
|
|
287
|
-
let element = activeElement.shadowRoot.activeElement;
|
|
288
|
-
while (element?.shadowRoot) {
|
|
289
|
-
element = element.shadowRoot.activeElement;
|
|
290
|
-
}
|
|
291
|
-
return element;
|
|
283
|
+
function cuiGetNativeFocused({ activeElement }) {
|
|
284
|
+
if (!activeElement?.shadowRoot) {
|
|
285
|
+
return activeElement;
|
|
286
|
+
}
|
|
287
|
+
let element = activeElement.shadowRoot.activeElement;
|
|
288
|
+
while (element?.shadowRoot) {
|
|
289
|
+
element = element.shadowRoot.activeElement;
|
|
290
|
+
}
|
|
291
|
+
return element;
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
-
function cuiBlurNativeFocused(document) {
|
|
295
|
-
const activeElement = cuiGetNativeFocused(document);
|
|
296
|
-
if (cuiIsHTMLElement(activeElement)) {
|
|
297
|
-
activeElement.blur();
|
|
298
|
-
}
|
|
294
|
+
function cuiBlurNativeFocused(document) {
|
|
295
|
+
const activeElement = cuiGetNativeFocused(document);
|
|
296
|
+
if (cuiIsHTMLElement(activeElement)) {
|
|
297
|
+
activeElement.blur();
|
|
298
|
+
}
|
|
299
299
|
}
|
|
300
300
|
|
|
301
|
-
function cuiIsNativeKeyboardFocusable(element) {
|
|
302
|
-
if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {
|
|
303
|
-
return false;
|
|
304
|
-
}
|
|
305
|
-
if ((cuiIsHTMLElement(element) && element.isContentEditable) ||
|
|
306
|
-
element.getAttribute('tabIndex') === '0') {
|
|
307
|
-
return true;
|
|
308
|
-
}
|
|
309
|
-
switch (element.tagName) {
|
|
310
|
-
case 'BUTTON':
|
|
311
|
-
case 'SELECT':
|
|
312
|
-
case 'TEXTAREA':
|
|
313
|
-
return true;
|
|
314
|
-
case 'VIDEO':
|
|
315
|
-
case 'AUDIO':
|
|
316
|
-
return element.hasAttribute('controls');
|
|
317
|
-
case 'INPUT':
|
|
318
|
-
return element.getAttribute('type') !== 'hidden';
|
|
319
|
-
case 'A':
|
|
320
|
-
case 'LINK':
|
|
321
|
-
return element.hasAttribute('href');
|
|
322
|
-
default:
|
|
323
|
-
return false;
|
|
324
|
-
}
|
|
301
|
+
function cuiIsNativeKeyboardFocusable(element) {
|
|
302
|
+
if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
if ((cuiIsHTMLElement(element) && element.isContentEditable) ||
|
|
306
|
+
element.getAttribute('tabIndex') === '0') {
|
|
307
|
+
return true;
|
|
308
|
+
}
|
|
309
|
+
switch (element.tagName) {
|
|
310
|
+
case 'BUTTON':
|
|
311
|
+
case 'SELECT':
|
|
312
|
+
case 'TEXTAREA':
|
|
313
|
+
return true;
|
|
314
|
+
case 'VIDEO':
|
|
315
|
+
case 'AUDIO':
|
|
316
|
+
return element.hasAttribute('controls');
|
|
317
|
+
case 'INPUT':
|
|
318
|
+
return element.getAttribute('type') !== 'hidden';
|
|
319
|
+
case 'A':
|
|
320
|
+
case 'LINK':
|
|
321
|
+
return element.hasAttribute('href');
|
|
322
|
+
default:
|
|
323
|
+
return false;
|
|
324
|
+
}
|
|
325
325
|
}
|
|
326
326
|
|
|
327
|
-
function cuiIsNativeMouseFocusable(element) {
|
|
328
|
-
return (!element.hasAttribute('disabled') &&
|
|
329
|
-
(element.getAttribute('tabIndex') === '-1' ||
|
|
330
|
-
cuiIsNativeKeyboardFocusable(element)));
|
|
327
|
+
function cuiIsNativeMouseFocusable(element) {
|
|
328
|
+
return (!element.hasAttribute('disabled') &&
|
|
329
|
+
(element.getAttribute('tabIndex') === '-1' ||
|
|
330
|
+
cuiIsNativeKeyboardFocusable(element)));
|
|
331
331
|
}
|
|
332
332
|
|
|
333
|
-
const svgNodeFilter = {
|
|
334
|
-
acceptNode(node) {
|
|
335
|
-
return 'ownerSVGElement' in node
|
|
336
|
-
? NodeFilter.FILTER_REJECT
|
|
337
|
-
: NodeFilter.FILTER_ACCEPT;
|
|
338
|
-
},
|
|
333
|
+
const svgNodeFilter = {
|
|
334
|
+
acceptNode(node) {
|
|
335
|
+
return 'ownerSVGElement' in node
|
|
336
|
+
? NodeFilter.FILTER_REJECT
|
|
337
|
+
: NodeFilter.FILTER_ACCEPT;
|
|
338
|
+
},
|
|
339
339
|
};
|
|
340
340
|
|
|
341
|
-
function cuiGetClosestFocusable({ initial, root, previous = false, keyboard = true, }) {
|
|
342
|
-
if (!root.ownerDocument) {
|
|
343
|
-
return null;
|
|
344
|
-
}
|
|
345
|
-
const check = keyboard ? cuiIsNativeKeyboardFocusable : cuiIsNativeMouseFocusable;
|
|
346
|
-
const treeWalker = root.ownerDocument.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, svgNodeFilter);
|
|
347
|
-
treeWalker.currentNode = initial;
|
|
348
|
-
while (previous ? treeWalker.previousNode() : treeWalker.nextNode()) {
|
|
349
|
-
if (cuiIsHTMLElement(treeWalker.currentNode)) {
|
|
350
|
-
initial = treeWalker.currentNode;
|
|
351
|
-
}
|
|
352
|
-
if (cuiIsHTMLElement(initial) && check(initial)) {
|
|
353
|
-
return initial;
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
return null;
|
|
341
|
+
function cuiGetClosestFocusable({ initial, root, previous = false, keyboard = true, }) {
|
|
342
|
+
if (!root.ownerDocument) {
|
|
343
|
+
return null;
|
|
344
|
+
}
|
|
345
|
+
const check = keyboard ? cuiIsNativeKeyboardFocusable : cuiIsNativeMouseFocusable;
|
|
346
|
+
const treeWalker = root.ownerDocument.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, svgNodeFilter);
|
|
347
|
+
treeWalker.currentNode = initial;
|
|
348
|
+
while (previous ? treeWalker.previousNode() : treeWalker.nextNode()) {
|
|
349
|
+
if (cuiIsHTMLElement(treeWalker.currentNode)) {
|
|
350
|
+
initial = treeWalker.currentNode;
|
|
351
|
+
}
|
|
352
|
+
if (cuiIsHTMLElement(initial) && check(initial)) {
|
|
353
|
+
return initial;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
return null;
|
|
357
357
|
}
|
|
358
358
|
|
|
359
|
-
class CuiFocusTrapDirective {
|
|
360
|
-
constructor() {
|
|
361
|
-
this.document = inject(DOCUMENT);
|
|
362
|
-
this.element = inject(ElementRef).nativeElement;
|
|
363
|
-
this.activeElement = cuiGetNativeFocused(this.document);
|
|
364
|
-
this.tabIndex = 0;
|
|
365
|
-
this.initElementFocus();
|
|
366
|
-
}
|
|
367
|
-
ngOnDestroy() {
|
|
368
|
-
cuiBlurNativeFocused(this.document);
|
|
369
|
-
Promise.resolve().then(() => {
|
|
370
|
-
if (!cuiIsHTMLElement(this.activeElement)) {
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
this.activeElement.focus();
|
|
374
|
-
});
|
|
375
|
-
}
|
|
376
|
-
onFocusIn(node) {
|
|
377
|
-
if (cuiContainsOrAfter(this.element, node)) {
|
|
378
|
-
return;
|
|
379
|
-
}
|
|
380
|
-
cuiGetClosestFocusable({
|
|
381
|
-
initial: this.element,
|
|
382
|
-
root: this.element,
|
|
383
|
-
})?.focus();
|
|
384
|
-
}
|
|
385
|
-
initElementFocus() {
|
|
386
|
-
Promise.resolve().then(() => this.element.focus());
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
CuiFocusTrapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFocusTrapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
390
|
-
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 });
|
|
391
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFocusTrapDirective, decorators: [{
|
|
392
|
-
type: Directive,
|
|
393
|
-
args: [{
|
|
394
|
-
standalone: true,
|
|
395
|
-
selector: '[cuiFocusTrap]',
|
|
396
|
-
}]
|
|
397
|
-
}], ctorParameters: function () { return []; }, propDecorators: { tabIndex: [{
|
|
398
|
-
type: HostBinding,
|
|
399
|
-
args: ['tabIndex']
|
|
400
|
-
}], onFocusIn: [{
|
|
401
|
-
type: HostListener,
|
|
402
|
-
args: ['window:focusin', ['$event.target']]
|
|
359
|
+
class CuiFocusTrapDirective {
|
|
360
|
+
constructor() {
|
|
361
|
+
this.document = inject(DOCUMENT);
|
|
362
|
+
this.element = inject(ElementRef).nativeElement;
|
|
363
|
+
this.activeElement = cuiGetNativeFocused(this.document);
|
|
364
|
+
this.tabIndex = 0;
|
|
365
|
+
this.initElementFocus();
|
|
366
|
+
}
|
|
367
|
+
ngOnDestroy() {
|
|
368
|
+
cuiBlurNativeFocused(this.document);
|
|
369
|
+
Promise.resolve().then(() => {
|
|
370
|
+
if (!cuiIsHTMLElement(this.activeElement)) {
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
this.activeElement.focus();
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
onFocusIn(node) {
|
|
377
|
+
if (cuiContainsOrAfter(this.element, node)) {
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
cuiGetClosestFocusable({
|
|
381
|
+
initial: this.element,
|
|
382
|
+
root: this.element,
|
|
383
|
+
})?.focus();
|
|
384
|
+
}
|
|
385
|
+
initElementFocus() {
|
|
386
|
+
Promise.resolve().then(() => this.element.focus());
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
CuiFocusTrapDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFocusTrapDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
390
|
+
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 });
|
|
391
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFocusTrapDirective, decorators: [{
|
|
392
|
+
type: Directive,
|
|
393
|
+
args: [{
|
|
394
|
+
standalone: true,
|
|
395
|
+
selector: '[cuiFocusTrap]',
|
|
396
|
+
}]
|
|
397
|
+
}], ctorParameters: function () { return []; }, propDecorators: { tabIndex: [{
|
|
398
|
+
type: HostBinding,
|
|
399
|
+
args: ['tabIndex']
|
|
400
|
+
}], onFocusIn: [{
|
|
401
|
+
type: HostListener,
|
|
402
|
+
args: ['window:focusin', ['$event.target']]
|
|
403
403
|
}] } });
|
|
404
404
|
|
|
405
|
-
class CuiItemDirective {
|
|
406
|
-
}
|
|
407
|
-
CuiItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
408
|
-
CuiItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiItemDirective, isStandalone: true, selector: "[cuiItem]", ngImport: i0 });
|
|
409
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiItemDirective, decorators: [{
|
|
410
|
-
type: Directive,
|
|
411
|
-
args: [{
|
|
412
|
-
standalone: true,
|
|
413
|
-
selector: '[cuiItem]'
|
|
414
|
-
}]
|
|
405
|
+
class CuiItemDirective {
|
|
406
|
+
}
|
|
407
|
+
CuiItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
408
|
+
CuiItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiItemDirective, isStandalone: true, selector: "[cuiItem]", ngImport: i0 });
|
|
409
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiItemDirective, decorators: [{
|
|
410
|
+
type: Directive,
|
|
411
|
+
args: [{
|
|
412
|
+
standalone: true,
|
|
413
|
+
selector: '[cuiItem]'
|
|
414
|
+
}]
|
|
415
415
|
}] });
|
|
416
416
|
|
|
417
|
-
class CuiLetContext {
|
|
418
|
-
constructor(internalDirectiveInstance) {
|
|
419
|
-
this.internalDirectiveInstance = internalDirectiveInstance;
|
|
420
|
-
}
|
|
421
|
-
get $implicit() {
|
|
422
|
-
return this.internalDirectiveInstance.cuiLet;
|
|
423
|
-
}
|
|
424
|
-
get cuiLet() {
|
|
425
|
-
return this.internalDirectiveInstance.cuiLet;
|
|
426
|
-
}
|
|
417
|
+
class CuiLetContext {
|
|
418
|
+
constructor(internalDirectiveInstance) {
|
|
419
|
+
this.internalDirectiveInstance = internalDirectiveInstance;
|
|
420
|
+
}
|
|
421
|
+
get $implicit() {
|
|
422
|
+
return this.internalDirectiveInstance.cuiLet;
|
|
423
|
+
}
|
|
424
|
+
get cuiLet() {
|
|
425
|
+
return this.internalDirectiveInstance.cuiLet;
|
|
426
|
+
}
|
|
427
427
|
}
|
|
428
428
|
|
|
429
|
-
class CuiLetDirective {
|
|
430
|
-
constructor() {
|
|
431
|
-
inject(ViewContainerRef).createEmbeddedView(inject((TemplateRef)), new CuiLetContext(this));
|
|
432
|
-
}
|
|
433
|
-
static ngTemplateContextGuard(_dir, _ctx) {
|
|
434
|
-
return true;
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
CuiLetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiLetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
438
|
-
CuiLetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiLetDirective, isStandalone: true, selector: "[cuiLet]", inputs: { cuiLet: "cuiLet" }, ngImport: i0 });
|
|
439
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiLetDirective, decorators: [{
|
|
440
|
-
type: Directive,
|
|
441
|
-
args: [{
|
|
442
|
-
standalone: true,
|
|
443
|
-
selector: '[cuiLet]'
|
|
444
|
-
}]
|
|
445
|
-
}], ctorParameters: function () { return []; }, propDecorators: { cuiLet: [{
|
|
446
|
-
type: Input
|
|
429
|
+
class CuiLetDirective {
|
|
430
|
+
constructor() {
|
|
431
|
+
inject(ViewContainerRef).createEmbeddedView(inject((TemplateRef)), new CuiLetContext(this));
|
|
432
|
+
}
|
|
433
|
+
static ngTemplateContextGuard(_dir, _ctx) {
|
|
434
|
+
return true;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
CuiLetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiLetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
438
|
+
CuiLetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiLetDirective, isStandalone: true, selector: "[cuiLet]", inputs: { cuiLet: "cuiLet" }, ngImport: i0 });
|
|
439
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiLetDirective, decorators: [{
|
|
440
|
+
type: Directive,
|
|
441
|
+
args: [{
|
|
442
|
+
standalone: true,
|
|
443
|
+
selector: '[cuiLet]'
|
|
444
|
+
}]
|
|
445
|
+
}], ctorParameters: function () { return []; }, propDecorators: { cuiLet: [{
|
|
446
|
+
type: Input
|
|
447
447
|
}] } });
|
|
448
448
|
|
|
449
|
-
class CuiTargetDirective {
|
|
450
|
-
constructor() {
|
|
451
|
-
this.clickListener = (event) => {
|
|
452
|
-
this.clicked.emit(event);
|
|
453
|
-
};
|
|
454
|
-
this.clicked = new EventEmitter();
|
|
455
|
-
}
|
|
456
|
-
ngOnInit() {
|
|
457
|
-
this.initClickListener();
|
|
458
|
-
}
|
|
459
|
-
ngOnDestroy() {
|
|
460
|
-
this.destroyClickListener();
|
|
461
|
-
}
|
|
462
|
-
initClickListener() {
|
|
463
|
-
this.ccTarget.addEventListener('click', this.clickListener);
|
|
464
|
-
}
|
|
465
|
-
destroyClickListener() {
|
|
466
|
-
this.ccTarget.removeEventListener('click', this.clickListener);
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
CuiTargetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
470
|
-
CuiTargetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiTargetDirective, isStandalone: true, selector: "[ccTarget]", inputs: { ccTarget: "ccTarget" }, outputs: { clicked: "clicked" }, ngImport: i0 });
|
|
471
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTargetDirective, decorators: [{
|
|
472
|
-
type: Directive,
|
|
473
|
-
args: [{
|
|
474
|
-
standalone: true,
|
|
475
|
-
selector: '[ccTarget]',
|
|
476
|
-
}]
|
|
477
|
-
}], propDecorators: { ccTarget: [{
|
|
478
|
-
type: Input
|
|
479
|
-
}], clicked: [{
|
|
480
|
-
type: Output
|
|
449
|
+
class CuiTargetDirective {
|
|
450
|
+
constructor() {
|
|
451
|
+
this.clickListener = (event) => {
|
|
452
|
+
this.clicked.emit(event);
|
|
453
|
+
};
|
|
454
|
+
this.clicked = new EventEmitter();
|
|
455
|
+
}
|
|
456
|
+
ngOnInit() {
|
|
457
|
+
this.initClickListener();
|
|
458
|
+
}
|
|
459
|
+
ngOnDestroy() {
|
|
460
|
+
this.destroyClickListener();
|
|
461
|
+
}
|
|
462
|
+
initClickListener() {
|
|
463
|
+
this.ccTarget.addEventListener('click', this.clickListener);
|
|
464
|
+
}
|
|
465
|
+
destroyClickListener() {
|
|
466
|
+
this.ccTarget.removeEventListener('click', this.clickListener);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
CuiTargetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
470
|
+
CuiTargetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: CuiTargetDirective, isStandalone: true, selector: "[ccTarget]", inputs: { ccTarget: "ccTarget" }, outputs: { clicked: "clicked" }, ngImport: i0 });
|
|
471
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiTargetDirective, decorators: [{
|
|
472
|
+
type: Directive,
|
|
473
|
+
args: [{
|
|
474
|
+
standalone: true,
|
|
475
|
+
selector: '[ccTarget]',
|
|
476
|
+
}]
|
|
477
|
+
}], propDecorators: { ccTarget: [{
|
|
478
|
+
type: Input
|
|
479
|
+
}], clicked: [{
|
|
480
|
+
type: Output
|
|
481
481
|
}] } });
|
|
482
482
|
|
|
483
|
-
class CuiFilterPipe {
|
|
484
|
-
transform(items, matcher, ...args) {
|
|
485
|
-
return items.filter(item => matcher(item, ...args));
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
CuiFilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
489
|
-
CuiFilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CuiFilterPipe, isStandalone: true, name: "cuiFilter" });
|
|
490
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFilterPipe, decorators: [{
|
|
491
|
-
type: Pipe,
|
|
492
|
-
args: [{
|
|
493
|
-
standalone: true,
|
|
494
|
-
name: 'cuiFilter'
|
|
495
|
-
}]
|
|
483
|
+
class CuiFilterPipe {
|
|
484
|
+
transform(items, matcher, ...args) {
|
|
485
|
+
return items.filter(item => matcher(item, ...args));
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
CuiFilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
489
|
+
CuiFilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: CuiFilterPipe, isStandalone: true, name: "cuiFilter" });
|
|
490
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiFilterPipe, decorators: [{
|
|
491
|
+
type: Pipe,
|
|
492
|
+
args: [{
|
|
493
|
+
standalone: true,
|
|
494
|
+
name: 'cuiFilter'
|
|
495
|
+
}]
|
|
496
496
|
}] });
|
|
497
497
|
|
|
498
|
-
/**
|
|
499
|
-
* Generated bundle index. Do not edit.
|
|
498
|
+
/**
|
|
499
|
+
* Generated bundle index. Do not edit.
|
|
500
500
|
*/
|
|
501
501
|
|
|
502
502
|
export { CUI_HISTORY, CUI_LOCAL_STORAGE, CUI_SESSION_STORAGE, CUI_WINDOW, CuiAutoResizingDirective, CuiClickOutsideDirective, CuiContentEditableValueAccessorDirective, CuiDestroyService, CuiDimensionsObserverDirective, CuiElementDirective, CuiFilterPipe, CuiFocusTrapDirective, CuiIdService, CuiItemDirective, CuiLetContext, CuiLetDirective, CuiPopoverService, CuiTargetDirective, cuiBlurNativeFocused, cuiContainsOrAfter, cuiCreateToken, cuiCreateTokenFromFactory, cuiGetClosestFocusable, cuiGetNativeFocused, cuiIsHTMLElement, cuiIsNativeKeyboardFocusable, cuiIsNativeMouseFocusable, cuiProvide };
|