@odx/angular 2.6.1 → 2.8.0
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/CHANGELOG.md +47 -0
- package/cdk/autocomplete-control/index.d.ts +0 -1
- package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +2 -3
- package/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.d.ts +3 -3
- package/cdk/custom-form-control/index.d.ts +1 -0
- package/cdk/{autocomplete-control/lib/abstract/base-search-field.directive.d.ts → custom-form-control/lib/input-control.directive.d.ts} +3 -3
- package/cdk/expandable/lib/directives/extandable-container.directive.d.ts +1 -0
- package/cdk/expandable/lib/expandable.tokens.d.ts +1 -1
- package/cdk/expandable/lib/facade/expandable-container.d.ts +1 -0
- package/charts-config/index.d.ts +1 -1
- package/charts-config/lib/charts-theme.directive.d.ts +2 -2
- package/charts-config/lib/charts-theme.service.d.ts +3 -3
- package/components/autocomplete/lib/autocomplete.component.d.ts +2 -2
- package/components/autocomplete/lib/autocomplete.module.d.ts +2 -2
- package/components/autocomplete/lib/directives/autocomplete-input-control.directive.d.ts +9 -0
- package/components/autocomplete/lib/directives/index.d.ts +1 -1
- package/components/calendar/README.md +3 -0
- package/components/calendar/index.d.ts +5 -0
- package/components/calendar/lib/calendar.component.d.ts +18 -0
- package/components/calendar/lib/calendar.config.d.ts +100 -0
- package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +27 -0
- package/components/calendar/lib/components/calendar-header/index.d.ts +1 -0
- package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +21 -0
- package/components/calendar/lib/components/calendar-month/index.d.ts +1 -0
- package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +18 -0
- package/components/calendar/lib/components/calendar-year/index.d.ts +1 -0
- package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +20 -0
- package/components/calendar/lib/components/calendar-years/index.d.ts +1 -0
- package/components/calendar/lib/components/index.d.ts +4 -0
- package/components/calendar/lib/directives/calendar-cell.directive.d.ts +34 -0
- package/components/calendar/lib/directives/calendar-view.directive.d.ts +29 -0
- package/components/calendar/lib/directives/index.d.ts +2 -0
- package/components/calendar/lib/enums/calendar-view.enum.d.ts +5 -0
- package/components/calendar/lib/enums/index.d.ts +1 -0
- package/components/calendar/lib/models/date-filter.d.ts +1 -0
- package/components/calendar/lib/models/date-type.d.ts +1 -0
- package/components/calendar/lib/models/date-validator.d.ts +1 -0
- package/components/calendar/lib/models/index.d.ts +3 -0
- package/components/calendar/lib/pipes/date-label.pipe.d.ts +18 -0
- package/components/calendar/lib/pipes/index.d.ts +1 -0
- package/components/calendar/lib/services/calendar-month.service.d.ts +13 -0
- package/components/calendar/lib/services/calendar-year.service.d.ts +11 -0
- package/components/calendar/lib/services/calendar-years.service.d.ts +9 -0
- package/components/calendar/lib/services/calendar.service.d.ts +25 -0
- package/components/calendar/lib/services/index.d.ts +4 -0
- package/components/calendar/lib/utils/check-identical-date.d.ts +2 -0
- package/components/calendar/lib/utils/get-A11y-label.d.ts +3 -0
- package/components/calendar/lib/utils/index.d.ts +7 -0
- package/components/calendar/lib/utils/parse-date.d.ts +2 -0
- package/components/calendar/lib/utils/validate-max-date.d.ts +2 -0
- package/components/calendar/lib/utils/validate-min-date.d.ts +2 -0
- package/components/calendar/lib/utils/validate-next-date-set.d.ts +2 -0
- package/components/calendar/lib/utils/validate-previous-date-set.d.ts +2 -0
- package/components/datepicker/README.md +3 -0
- package/components/datepicker/index.d.ts +5 -0
- package/components/datepicker/lib/datepicker.component.d.ts +37 -0
- package/components/datepicker/lib/datepicker.config.d.ts +29 -0
- package/components/datepicker/lib/datepicker.module.d.ts +9 -0
- package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +24 -0
- package/components/datepicker/lib/directives/index.d.ts +1 -0
- package/components/datepicker/lib/models/datepicker-input-date-order.d.ts +6 -0
- package/components/datepicker/lib/models/datepicker-input-pattern.d.ts +11 -0
- package/components/datepicker/lib/models/index.d.ts +2 -0
- package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +3 -0
- package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +2 -0
- package/components/datepicker/lib/utils/index.d.ts +2 -0
- package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +2 -1
- package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +2 -1
- package/components/select/lib/directives/index.d.ts +1 -1
- package/components/select/lib/directives/select-input-control.directive.d.ts +9 -0
- package/components/select/lib/select.component.d.ts +2 -2
- package/components/select/lib/select.module.d.ts +2 -2
- package/esm2020/cdk/autocomplete-control/index.mjs +1 -2
- package/esm2020/cdk/autocomplete-control/lib/autocomplete-control.mjs +1 -1
- package/esm2020/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.mjs +1 -1
- package/esm2020/cdk/custom-form-control/index.mjs +2 -1
- package/esm2020/cdk/custom-form-control/lib/input-control.directive.mjs +35 -0
- package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +4 -4
- package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +17 -2
- package/esm2020/cdk/expandable/lib/expandable.tokens.mjs +2 -2
- package/esm2020/cdk/expandable/lib/facade/expandable-container.mjs +1 -1
- package/esm2020/charts-config/index.mjs +2 -2
- package/esm2020/charts-config/lib/charts-theme.directive.mjs +7 -7
- package/esm2020/charts-config/lib/charts-theme.module.mjs +4 -4
- package/esm2020/charts-config/lib/charts-theme.service.mjs +5 -5
- package/esm2020/components/accordion/lib/accordion.component.mjs +4 -4
- package/esm2020/components/autocomplete/lib/autocomplete.component.mjs +4 -5
- package/esm2020/components/autocomplete/lib/autocomplete.module.mjs +4 -4
- package/esm2020/components/autocomplete/lib/directives/autocomplete-input-control.directive.mjs +32 -0
- package/esm2020/components/autocomplete/lib/directives/index.mjs +2 -2
- package/esm2020/components/calendar/index.mjs +6 -0
- package/esm2020/components/calendar/lib/calendar.component.mjs +57 -0
- package/esm2020/components/calendar/lib/calendar.config.mjs +15 -0
- package/esm2020/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +51 -0
- package/esm2020/components/calendar/lib/components/calendar-header/index.mjs +2 -0
- package/esm2020/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +59 -0
- package/esm2020/components/calendar/lib/components/calendar-month/index.mjs +2 -0
- package/esm2020/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +57 -0
- package/esm2020/components/calendar/lib/components/calendar-year/index.mjs +2 -0
- package/esm2020/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +65 -0
- package/esm2020/components/calendar/lib/components/calendar-years/index.mjs +2 -0
- package/esm2020/components/calendar/lib/components/index.mjs +5 -0
- package/esm2020/components/calendar/lib/directives/calendar-cell.directive.mjs +92 -0
- package/esm2020/components/calendar/lib/directives/calendar-view.directive.mjs +39 -0
- package/esm2020/components/calendar/lib/directives/index.mjs +3 -0
- package/esm2020/components/calendar/lib/enums/calendar-view.enum.mjs +7 -0
- package/esm2020/components/calendar/lib/enums/index.mjs +2 -0
- package/esm2020/components/calendar/lib/models/date-filter.mjs +2 -0
- package/esm2020/components/calendar/lib/models/date-type.mjs +2 -0
- package/esm2020/components/calendar/lib/models/date-validator.mjs +2 -0
- package/esm2020/components/calendar/lib/models/index.mjs +4 -0
- package/esm2020/components/calendar/lib/pipes/date-label.pipe.mjs +25 -0
- package/esm2020/components/calendar/lib/pipes/index.mjs +2 -0
- package/esm2020/components/calendar/lib/services/calendar-month.service.mjs +38 -0
- package/esm2020/components/calendar/lib/services/calendar-year.service.mjs +31 -0
- package/esm2020/components/calendar/lib/services/calendar-years.service.mjs +33 -0
- package/esm2020/components/calendar/lib/services/calendar.service.mjs +74 -0
- package/esm2020/components/calendar/lib/services/index.mjs +5 -0
- package/esm2020/components/calendar/lib/utils/check-identical-date.mjs +11 -0
- package/esm2020/components/calendar/lib/utils/get-A11y-label.mjs +10 -0
- package/esm2020/components/calendar/lib/utils/index.mjs +8 -0
- package/esm2020/components/calendar/lib/utils/parse-date.mjs +15 -0
- package/esm2020/components/calendar/lib/utils/validate-max-date.mjs +11 -0
- package/esm2020/components/calendar/lib/utils/validate-min-date.mjs +11 -0
- package/esm2020/components/calendar/lib/utils/validate-next-date-set.mjs +12 -0
- package/esm2020/components/calendar/lib/utils/validate-previous-date-set.mjs +12 -0
- package/esm2020/components/calendar/odx-angular-components-calendar.mjs +5 -0
- package/esm2020/components/datepicker/index.mjs +6 -0
- package/esm2020/components/datepicker/lib/datepicker.component.mjs +118 -0
- package/esm2020/components/datepicker/lib/datepicker.config.mjs +7 -0
- package/esm2020/components/datepicker/lib/datepicker.module.mjs +19 -0
- package/esm2020/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +60 -0
- package/esm2020/components/datepicker/lib/directives/index.mjs +2 -0
- package/esm2020/components/datepicker/lib/models/datepicker-input-date-order.mjs +6 -0
- package/esm2020/components/datepicker/lib/models/datepicker-input-pattern.mjs +11 -0
- package/esm2020/components/datepicker/lib/models/index.mjs +3 -0
- package/esm2020/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +16 -0
- package/esm2020/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +30 -0
- package/esm2020/components/datepicker/lib/utils/index.mjs +3 -0
- package/esm2020/components/datepicker/odx-angular-components-datepicker.mjs +5 -0
- package/esm2020/components/list/lib/list.component.mjs +4 -4
- package/esm2020/components/modal/lib/components/basic-modal/basic-modal.component.mjs +2 -2
- package/esm2020/components/modal/lib/components/modal-hero/modal-hero.component.mjs +6 -3
- package/esm2020/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +8 -5
- package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +1 -1
- package/esm2020/components/rich-list/lib/rich-list.component.mjs +4 -4
- package/esm2020/components/select/lib/directives/index.mjs +2 -2
- package/esm2020/components/select/lib/directives/select-input-control.directive.mjs +35 -0
- package/esm2020/components/select/lib/select.component.mjs +4 -4
- package/esm2020/components/select/lib/select.module.mjs +4 -4
- package/esm2020/utils/lib/helpers/index.mjs +2 -2
- package/fesm2015/odx-angular-cdk-autocomplete-control.mjs +4 -39
- package/fesm2015/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-custom-form-control.mjs +34 -2
- package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-expandable.mjs +18 -4
- package/fesm2015/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2015/odx-angular-charts-config.mjs +13 -13
- package/fesm2015/odx-angular-charts-config.mjs.map +1 -1
- package/fesm2015/odx-angular-components-accordion.mjs +3 -3
- package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2015/odx-angular-components-autocomplete.mjs +15 -12
- package/fesm2015/odx-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2015/odx-angular-components-calendar.mjs +623 -0
- package/fesm2015/odx-angular-components-calendar.mjs.map +1 -0
- package/fesm2015/odx-angular-components-datepicker.mjs +249 -0
- package/fesm2015/odx-angular-components-datepicker.mjs.map +1 -0
- package/fesm2015/odx-angular-components-list.mjs +3 -3
- package/fesm2015/odx-angular-components-list.mjs.map +1 -1
- package/fesm2015/odx-angular-components-modal.mjs +6 -3
- package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2015/odx-angular-components-rail-navigation.mjs +6 -3
- package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -1
- package/fesm2015/odx-angular-components-rich-list.mjs +3 -3
- package/fesm2015/odx-angular-components-rich-list.mjs.map +1 -1
- package/fesm2015/odx-angular-components-select.mjs +14 -13
- package/fesm2015/odx-angular-components-select.mjs.map +1 -1
- package/fesm2015/odx-angular-utils.mjs +21 -21
- package/fesm2015/odx-angular-utils.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-autocomplete-control.mjs +4 -39
- package/fesm2020/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-custom-form-control.mjs +34 -2
- package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-expandable.mjs +18 -4
- package/fesm2020/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2020/odx-angular-charts-config.mjs +13 -13
- package/fesm2020/odx-angular-charts-config.mjs.map +1 -1
- package/fesm2020/odx-angular-components-accordion.mjs +3 -3
- package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2020/odx-angular-components-autocomplete.mjs +15 -12
- package/fesm2020/odx-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2020/odx-angular-components-calendar.mjs +621 -0
- package/fesm2020/odx-angular-components-calendar.mjs.map +1 -0
- package/fesm2020/odx-angular-components-datepicker.mjs +249 -0
- package/fesm2020/odx-angular-components-datepicker.mjs.map +1 -0
- package/fesm2020/odx-angular-components-list.mjs +3 -3
- package/fesm2020/odx-angular-components-list.mjs.map +1 -1
- package/fesm2020/odx-angular-components-modal.mjs +6 -3
- package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2020/odx-angular-components-rail-navigation.mjs +6 -3
- package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -1
- package/fesm2020/odx-angular-components-rich-list.mjs +3 -3
- package/fesm2020/odx-angular-components-rich-list.mjs.map +1 -1
- package/fesm2020/odx-angular-components-select.mjs +14 -13
- package/fesm2020/odx-angular-components-select.mjs.map +1 -1
- package/fesm2020/odx-angular-utils.mjs +21 -21
- package/fesm2020/odx-angular-utils.mjs.map +1 -1
- package/package.json +29 -7
- package/utils/lib/helpers/index.d.ts +1 -1
- package/cdk/autocomplete-control/lib/abstract/index.d.ts +0 -1
- package/components/autocomplete/lib/directives/autocomplete-search-field.directive.d.ts +0 -9
- package/components/select/lib/directives/select-search-field.directive.d.ts +0 -9
- package/esm2020/cdk/autocomplete-control/lib/abstract/base-search-field.directive.mjs +0 -38
- package/esm2020/cdk/autocomplete-control/lib/abstract/index.mjs +0 -2
- package/esm2020/components/autocomplete/lib/directives/autocomplete-search-field.directive.mjs +0 -26
- package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +0 -35
|
@@ -1,47 +1,12 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, inject, ChangeDetectorRef, EventEmitter, ViewChild, Input, Output, HostListener, InjectionToken } from '@angular/core';
|
|
3
|
-
import { untilDestroyed, injectElement, isFunction, Transform, Pure } from '@odx/angular/utils';
|
|
4
|
-
import { fromEvent, distinctUntilChanged, map } from 'rxjs';
|
|
5
1
|
import { __decorate, __metadata } from 'tslib';
|
|
6
2
|
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
7
3
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
import { inject, ChangeDetectorRef, EventEmitter, Directive, ViewChild, Input, Output, HostListener, InjectionToken } from '@angular/core';
|
|
8
6
|
import { detectControllerChanges, ODX_STRING_SEARCH_HANDLER, ODX_STRINGIFY } from '@odx/angular';
|
|
9
7
|
import { CustomFormControl } from '@odx/angular/cdk/custom-form-control';
|
|
10
8
|
import { DropdownDirective } from '@odx/angular/components/dropdown';
|
|
11
|
-
|
|
12
|
-
class BaseSearchFieldDirective {
|
|
13
|
-
constructor() {
|
|
14
|
-
this.takeUntilDestroyed = untilDestroyed();
|
|
15
|
-
this.element = injectElement();
|
|
16
|
-
this.valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(distinctUntilChanged(), map(() => this.nativeElementValue), this.takeUntilDestroyed());
|
|
17
|
-
}
|
|
18
|
-
get nativeElementValue() {
|
|
19
|
-
return this.element.nativeElement.value;
|
|
20
|
-
}
|
|
21
|
-
set nativeElementValue(value) {
|
|
22
|
-
this.element.nativeElement.value = value;
|
|
23
|
-
}
|
|
24
|
-
focus() {
|
|
25
|
-
this.element.nativeElement.focus();
|
|
26
|
-
}
|
|
27
|
-
blur() {
|
|
28
|
-
this.element.nativeElement.blur();
|
|
29
|
-
}
|
|
30
|
-
reset() {
|
|
31
|
-
this.element.nativeElement.value = '';
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
BaseSearchFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseSearchFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
35
|
-
BaseSearchFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: BaseSearchFieldDirective, isStandalone: true, host: { properties: { "class.odx-form-field-control": "true" } }, ngImport: i0 });
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseSearchFieldDirective, decorators: [{
|
|
37
|
-
type: Directive,
|
|
38
|
-
args: [{
|
|
39
|
-
standalone: true,
|
|
40
|
-
host: {
|
|
41
|
-
'[class.odx-form-field-control]': 'true',
|
|
42
|
-
},
|
|
43
|
-
}]
|
|
44
|
-
}] });
|
|
9
|
+
import { untilDestroyed, injectElement, isFunction, Transform, Pure } from '@odx/angular/utils';
|
|
45
10
|
|
|
46
11
|
class AutocompleteControl extends CustomFormControl {
|
|
47
12
|
get hasOptions() {
|
|
@@ -173,5 +138,5 @@ __decorate([
|
|
|
173
138
|
* Generated bundle index. Do not edit.
|
|
174
139
|
*/
|
|
175
140
|
|
|
176
|
-
export { AutocompleteControl,
|
|
141
|
+
export { AutocompleteControl, BaseSearchFilterPipe, ODX_SEARCH_FILTER_HOST };
|
|
177
142
|
//# sourceMappingURL=odx-angular-cdk-autocomplete-control.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-cdk-autocomplete-control.mjs","sources":["../../../../libs/angular/cdk/autocomplete-control/src/lib/abstract/base-search-field.directive.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/autocomplete-control.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/pipes/base-search-filter-pipe.ts","../../../../libs/angular/cdk/autocomplete-control/src/odx-angular-cdk-autocomplete-control.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { distinctUntilChanged, fromEvent, map } from 'rxjs';\n\n@Directive({\n standalone: true,\n host: {\n '[class.odx-form-field-control]': 'true',\n },\n})\nexport abstract class BaseSearchFieldDirective {\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement<HTMLInputElement>();\n\n public valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n distinctUntilChanged(),\n map(() => this.nativeElementValue),\n this.takeUntilDestroyed()\n );\n\n public get nativeElementValue(): string {\n return this.element.nativeElement.value;\n }\n\n public set nativeElementValue(value: string) {\n this.element.nativeElement.value = value;\n }\n\n public focus(): void {\n this.element.nativeElement.focus();\n }\n\n public blur(): void {\n this.element.nativeElement.blur();\n }\n\n public reset(): void {\n this.element.nativeElement.value = '';\n }\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AfterViewInit, ChangeDetectorRef, Directive, EventEmitter, HostListener, inject, Input, Output, QueryList, ViewChild } from '@angular/core';\nimport { detectControllerChanges, StringifyFn } from '@odx/angular';\nimport { CustomFormControl } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { injectElement, isFunction, Transform, untilDestroyed } from '@odx/angular/utils';\nimport { BaseSearchFieldDirective } from './abstract';\n\n@Directive({\n standalone: true,\n host: {\n '[class.is-open]': 'isOpen',\n '[attr.aria-disabled]': 'isDisabled || null',\n },\n})\nexport abstract class AutocompleteControl<T> extends CustomFormControl<T | null> implements AfterViewInit {\n public static ngAcceptInputType_isLoading: BooleanInput;\n\n protected keyManager?: ActiveDescendantKeyManager<OptionControl<T>>;\n\n protected smoothScrollEnabled = false;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n protected abstract readonly options?: QueryList<OptionControl<T>>;\n\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected readonly changeDetector = inject(ChangeDetectorRef);\n\n public abstract searchField?: BaseSearchFieldDirective;\n\n public readonly element = injectElement();\n\n public get hasOptions(): boolean {\n return !!this.options?.length;\n }\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n @Transform(coerceBooleanProperty)\n @Input()\n public isLoading = false;\n\n @Input()\n public stringify?: StringifyFn<T>;\n\n @Output()\n public optionSelected = new EventEmitter<T>();\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n public scrollOptionIntoView({ element }: OptionControl<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n if (isFunction(element.nativeElement.scrollIntoView)) {\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n }\n\n protected abstract handleQueryListOption(options: QueryList<OptionControl<T>>): void;\n\n protected abstract handleSearchFieldChanges(): void;\n\n protected abstract activateSelectedOption(): void;\n\n protected initKeyManager(options: QueryList<OptionControl<T>>): void {\n this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n protected openDropdown(): void {\n this.dropdown?.open();\n }\n\n protected closeDropdown(): void {\n this.dropdown?.close();\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n}\n","import { inject, InjectionToken, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringifyFn, StringSearchHandler } from '@odx/angular';\nimport { Pure } from '@odx/angular/utils';\nimport { BaseSearchFieldDirective } from '../abstract';\n\ninterface HostController {\n searchField?: BaseSearchFieldDirective;\n stringify?: StringifyFn<unknown>;\n}\n\nexport const ODX_SEARCH_FILTER_HOST = new InjectionToken<HostController>('@odx/angular/cdk/autocomplete-control::SearchFilterHost');\n\nexport abstract class BaseSearchFilterPipe implements PipeTransform {\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n private readonly defaultStringify = inject(ODX_STRINGIFY);\n protected readonly hostController = inject(ODX_SEARCH_FILTER_HOST, { optional: true });\n\n protected get searchField(): BaseSearchFieldDirective | undefined {\n return this.hostController?.searchField;\n }\n\n protected get stringify(): StringifyFn<unknown> {\n return this.hostController?.stringify ?? this.defaultStringify;\n }\n\n public transform<T>(items: T[] | null, searchHandler?: StringSearchHandler): T[] | null {\n if (this.searchField) {\n return this.filter(items, this.searchField.nativeElementValue, searchHandler);\n }\n return items;\n }\n\n protected queryHandler(query: string): string {\n return query?.trim() || '';\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, searchHandler?: StringSearchHandler): T[] | null {\n if (!items) return null;\n\n query = this.queryHandler(query);\n\n if (query === '') return items;\n\n const search = searchHandler ?? this.stringSearchHandler;\n\n return items.filter((item) => search(this.stringify(item), query));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-cdk-autocomplete-control.mjs","sources":["../../../../libs/angular/cdk/autocomplete-control/src/lib/autocomplete-control.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/pipes/base-search-filter-pipe.ts","../../../../libs/angular/cdk/autocomplete-control/src/odx-angular-cdk-autocomplete-control.ts"],"sourcesContent":["import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AfterViewInit, ChangeDetectorRef, Directive, EventEmitter, HostListener, inject, Input, Output, QueryList, ViewChild } from '@angular/core';\nimport { detectControllerChanges, StringifyFn } from '@odx/angular';\nimport { CustomFormControl, InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { injectElement, isFunction, Transform, untilDestroyed } from '@odx/angular/utils';\n\n@Directive({\n standalone: true,\n host: {\n '[class.is-open]': 'isOpen',\n '[attr.aria-disabled]': 'isDisabled || null',\n },\n})\nexport abstract class AutocompleteControl<T> extends CustomFormControl<T | null> implements AfterViewInit {\n public static ngAcceptInputType_isLoading: BooleanInput;\n\n protected keyManager?: ActiveDescendantKeyManager<OptionControl<T>>;\n\n protected smoothScrollEnabled = false;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n protected abstract readonly options?: QueryList<OptionControl<T>>;\n\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected readonly changeDetector = inject(ChangeDetectorRef);\n\n public abstract searchField?: InputControlDirective;\n\n public readonly element = injectElement();\n\n public get hasOptions(): boolean {\n return !!this.options?.length;\n }\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n @Transform(coerceBooleanProperty)\n @Input()\n public isLoading = false;\n\n @Input()\n public stringify?: StringifyFn<T>;\n\n @Output()\n public optionSelected = new EventEmitter<T>();\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n public scrollOptionIntoView({ element }: OptionControl<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n if (isFunction(element.nativeElement.scrollIntoView)) {\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n }\n\n protected abstract handleQueryListOption(options: QueryList<OptionControl<T>>): void;\n\n protected abstract handleSearchFieldChanges(): void;\n\n protected abstract activateSelectedOption(): void;\n\n protected initKeyManager(options: QueryList<OptionControl<T>>): void {\n this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n protected openDropdown(): void {\n this.dropdown?.open();\n }\n\n protected closeDropdown(): void {\n this.dropdown?.close();\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n}\n","import { inject, InjectionToken, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringifyFn, StringSearchHandler } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { Pure } from '@odx/angular/utils';\n\ninterface HostController {\n searchField?: InputControlDirective;\n stringify?: StringifyFn<unknown>;\n}\n\nexport const ODX_SEARCH_FILTER_HOST = new InjectionToken<HostController>('@odx/angular/cdk/autocomplete-control::SearchFilterHost');\n\nexport abstract class BaseSearchFilterPipe implements PipeTransform {\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n private readonly defaultStringify = inject(ODX_STRINGIFY);\n protected readonly hostController = inject(ODX_SEARCH_FILTER_HOST, { optional: true });\n\n protected get searchField(): InputControlDirective | undefined {\n return this.hostController?.searchField;\n }\n\n protected get stringify(): StringifyFn<unknown> {\n return this.hostController?.stringify ?? this.defaultStringify;\n }\n\n public transform<T>(items: T[] | null, searchHandler?: StringSearchHandler): T[] | null {\n if (this.searchField) {\n return this.filter(items, this.searchField.nativeElementValue, searchHandler);\n }\n return items;\n }\n\n protected queryHandler(query: string): string {\n return query?.trim() || '';\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, searchHandler?: StringSearchHandler): T[] | null {\n if (!items) return null;\n\n query = this.queryHandler(query);\n\n if (query === '') return items;\n\n const search = searchHandler ?? this.stringSearchHandler;\n\n return items.filter((item) => search(this.stringify(item), query));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Directive, inject, Input, ViewChild } from '@angular/core';
|
|
3
|
-
import { injectElement, Transform, Pure } from '@odx/angular/utils';
|
|
3
|
+
import { injectElement, Transform, Pure, untilDestroyed } from '@odx/angular/utils';
|
|
4
4
|
import { __decorate, __metadata } from 'tslib';
|
|
5
5
|
import { coerceArray } from '@angular/cdk/coercion';
|
|
6
6
|
import { Validators, RequiredValidator, NgControl } from '@angular/forms';
|
|
7
7
|
import { Controller, DisabledController, ReadonlyController } from '@odx/angular';
|
|
8
|
+
import { fromEvent, distinctUntilChanged, map } from 'rxjs';
|
|
8
9
|
|
|
9
10
|
class ControlDirective {
|
|
10
11
|
constructor() {
|
|
@@ -138,9 +139,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
138
139
|
args: [ControlDirective]
|
|
139
140
|
}], hasNonIgnoredError: [] } });
|
|
140
141
|
|
|
142
|
+
class InputControlDirective {
|
|
143
|
+
constructor() {
|
|
144
|
+
this.takeUntilDestroyed = untilDestroyed();
|
|
145
|
+
this.element = injectElement();
|
|
146
|
+
this.valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(distinctUntilChanged(), map(() => this.nativeElementValue));
|
|
147
|
+
}
|
|
148
|
+
get nativeElementValue() {
|
|
149
|
+
return this.element.nativeElement.value;
|
|
150
|
+
}
|
|
151
|
+
set nativeElementValue(value) {
|
|
152
|
+
this.element.nativeElement.value = value;
|
|
153
|
+
}
|
|
154
|
+
focus() {
|
|
155
|
+
this.element.nativeElement.focus();
|
|
156
|
+
}
|
|
157
|
+
blur() {
|
|
158
|
+
this.element.nativeElement.blur();
|
|
159
|
+
}
|
|
160
|
+
reset() {
|
|
161
|
+
this.element.nativeElement.value = '';
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
InputControlDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: InputControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
165
|
+
InputControlDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: InputControlDirective, isStandalone: true, ngImport: i0 });
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: InputControlDirective, decorators: [{
|
|
167
|
+
type: Directive,
|
|
168
|
+
args: [{
|
|
169
|
+
standalone: true,
|
|
170
|
+
}]
|
|
171
|
+
}] });
|
|
172
|
+
|
|
141
173
|
/**
|
|
142
174
|
* Generated bundle index. Do not edit.
|
|
143
175
|
*/
|
|
144
176
|
|
|
145
|
-
export { ControlDirective, CustomFormControl };
|
|
177
|
+
export { ControlDirective, CustomFormControl, InputControlDirective };
|
|
146
178
|
//# sourceMappingURL=odx-angular-cdk-custom-form-control.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-cdk-custom-form-control.mjs","sources":["../../../../libs/angular/cdk/custom-form-control/src/lib/control.directive.ts","../../../../libs/angular/cdk/custom-form-control/src/lib/custom-form-control.ts","../../../../libs/angular/cdk/custom-form-control/src/odx-angular-cdk-custom-form-control.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\n\n@Directive({\n standalone: true,\n selector: '[odxControl]',\n exportAs: 'odxControl',\n})\nexport class ControlDirective {\n public readonly element = injectElement();\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { Directive, inject, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgControl, RequiredValidator, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { Controller, DisabledController, ReadonlyController } from '@odx/angular';\nimport { Pure, Transform } from '@odx/angular/utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n host: {\n '[class.has-error]': 'hasError',\n '[class.is-disabled]': 'isDisabled',\n '[class.is-readonly]': 'isReadonly',\n '[class.is-required]': 'required',\n },\n})\nexport abstract class CustomFormControl<T> extends Controller implements ControlValueAccessor {\n private static CURRENT_INDEX = 0;\n public static ngAcceptInputType_ignoreErrors: string | string[];\n\n private readonly requiredValidator = inject(RequiredValidator, { optional: true, self: true });\n private internalValue: T;\n protected readonly disabledController = DisabledController.inject();\n protected readonly readonlyController = ReadonlyController.inject();\n protected readonly ngControl = inject(NgControl, { self: true, optional: true });\n\n @Input()\n public id: string | null = null;\n\n @Input()\n public name = `odx-form-control-${CustomFormControl.CURRENT_INDEX++}`;\n\n @Input()\n public tabindex: string | null = null;\n\n @Transform(coerceArray)\n @Input()\n public ignoreErrors: string[] = [];\n\n public set value(value: T) {\n if (this.internalValue !== value) {\n this.internalValue = value;\n this.triggerControllerChange();\n }\n }\n public get value(): T {\n return this.internalValue;\n }\n\n public get hasError(): boolean {\n return !!this.ngControl?.touched && !!this.ngControl?.invalid && this.hasNonIgnoredError(this.ngControl.errors);\n }\n\n public get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n public get isReadonly(): boolean {\n return !!this.readonlyController?.readonly;\n }\n\n public get isRequired(): boolean {\n return !!this.requiredValidator?.required || this.hasValidator(Validators.required) || this.hasValidator(Validators.requiredTrue);\n }\n\n @ViewChild(ControlDirective)\n public readonly control: ControlDirective | null = null;\n\n constructor(initialValue: T) {\n super();\n this.internalValue = initialValue;\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public onTouched() {\n // implemented by control value accessor\n }\n\n public onChange(_value: T) {\n // implemented by control value accessor\n }\n\n public registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabledController?.setDisabledState(isDisabled);\n }\n\n public writeValue(value: T): void {\n if (this.isDisabled) return;\n this.value = value;\n this.onChange(value);\n }\n\n public updateValue(value: T): void {\n if (this.isDisabled) return;\n this.writeValue(value);\n this.onTouched();\n }\n\n protected hasValidator(validator: ValidatorFn): boolean {\n return !!this.ngControl?.control?.hasValidator(validator);\n }\n\n @Pure\n private hasNonIgnoredError(errors: ValidationErrors | null): boolean {\n if (!errors) return false;\n\n return Object.keys(errors).some((error) => !this.ignoreErrors.includes(error));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-cdk-custom-form-control.mjs","sources":["../../../../libs/angular/cdk/custom-form-control/src/lib/control.directive.ts","../../../../libs/angular/cdk/custom-form-control/src/lib/custom-form-control.ts","../../../../libs/angular/cdk/custom-form-control/src/lib/input-control.directive.ts","../../../../libs/angular/cdk/custom-form-control/src/odx-angular-cdk-custom-form-control.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\n\n@Directive({\n standalone: true,\n selector: '[odxControl]',\n exportAs: 'odxControl',\n})\nexport class ControlDirective {\n public readonly element = injectElement();\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { Directive, inject, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgControl, RequiredValidator, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { Controller, DisabledController, ReadonlyController } from '@odx/angular';\nimport { Pure, Transform } from '@odx/angular/utils';\nimport { ControlDirective } from './control.directive';\n\n@Directive({\n host: {\n '[class.has-error]': 'hasError',\n '[class.is-disabled]': 'isDisabled',\n '[class.is-readonly]': 'isReadonly',\n '[class.is-required]': 'required',\n },\n})\nexport abstract class CustomFormControl<T> extends Controller implements ControlValueAccessor {\n private static CURRENT_INDEX = 0;\n public static ngAcceptInputType_ignoreErrors: string | string[];\n\n private readonly requiredValidator = inject(RequiredValidator, { optional: true, self: true });\n private internalValue: T;\n protected readonly disabledController = DisabledController.inject();\n protected readonly readonlyController = ReadonlyController.inject();\n protected readonly ngControl = inject(NgControl, { self: true, optional: true });\n\n @Input()\n public id: string | null = null;\n\n @Input()\n public name = `odx-form-control-${CustomFormControl.CURRENT_INDEX++}`;\n\n @Input()\n public tabindex: string | null = null;\n\n @Transform(coerceArray)\n @Input()\n public ignoreErrors: string[] = [];\n\n public set value(value: T) {\n if (this.internalValue !== value) {\n this.internalValue = value;\n this.triggerControllerChange();\n }\n }\n public get value(): T {\n return this.internalValue;\n }\n\n public get hasError(): boolean {\n return !!this.ngControl?.touched && !!this.ngControl?.invalid && this.hasNonIgnoredError(this.ngControl.errors);\n }\n\n public get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n public get isReadonly(): boolean {\n return !!this.readonlyController?.readonly;\n }\n\n public get isRequired(): boolean {\n return !!this.requiredValidator?.required || this.hasValidator(Validators.required) || this.hasValidator(Validators.requiredTrue);\n }\n\n @ViewChild(ControlDirective)\n public readonly control: ControlDirective | null = null;\n\n constructor(initialValue: T) {\n super();\n this.internalValue = initialValue;\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public onTouched() {\n // implemented by control value accessor\n }\n\n public onChange(_value: T) {\n // implemented by control value accessor\n }\n\n public registerOnChange(fn: (value: T) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabledController?.setDisabledState(isDisabled);\n }\n\n public writeValue(value: T): void {\n if (this.isDisabled) return;\n this.value = value;\n this.onChange(value);\n }\n\n public updateValue(value: T): void {\n if (this.isDisabled) return;\n this.writeValue(value);\n this.onTouched();\n }\n\n protected hasValidator(validator: ValidatorFn): boolean {\n return !!this.ngControl?.control?.hasValidator(validator);\n }\n\n @Pure\n private hasNonIgnoredError(errors: ValidationErrors | null): boolean {\n if (!errors) return false;\n\n return Object.keys(errors).some((error) => !this.ignoreErrors.includes(error));\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectElement, untilDestroyed } from '@odx/angular/utils';\nimport { distinctUntilChanged, fromEvent, map } from 'rxjs';\n\n@Directive({\n standalone: true,\n})\nexport abstract class InputControlDirective {\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n public readonly element = injectElement<HTMLInputElement>();\n\n public valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(\n distinctUntilChanged(),\n map(() => this.nativeElementValue),\n );\n\n public get nativeElementValue(): string {\n return this.element.nativeElement.value;\n }\n\n public set nativeElementValue(value: string) {\n this.element.nativeElement.value = value;\n }\n\n public focus(): void {\n this.element.nativeElement.focus();\n }\n\n public blur(): void {\n this.element.nativeElement.blur();\n }\n\n public reset(): void {\n this.element.nativeElement.value = '';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,11 @@ import { InjectionToken, inject, ChangeDetectorRef, Directive, Input, NgModule }
|
|
|
4
4
|
import { getUniqueId, Transform } from '@odx/angular/utils';
|
|
5
5
|
import { __decorate, __metadata } from 'tslib';
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const ODX_EXPANDABLE_CONTAINER = new InjectionToken('@odx/angular/cdk/expandable::ExpandableContainer');
|
|
8
8
|
|
|
9
9
|
class ExpandableItemDirective {
|
|
10
10
|
constructor() {
|
|
11
|
-
this.container = inject(
|
|
11
|
+
this.container = inject(ODX_EXPANDABLE_CONTAINER, { optional: true, skipSelf: true });
|
|
12
12
|
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
13
13
|
this._expanded = false;
|
|
14
14
|
this.id = getUniqueId('odx-expandable-item');
|
|
@@ -68,9 +68,17 @@ class ExpandableContainerDirective {
|
|
|
68
68
|
}
|
|
69
69
|
this.openItems[item.id] = item;
|
|
70
70
|
}
|
|
71
|
+
hasExpandedItem() {
|
|
72
|
+
return Object.values(this.openItems).length > 0;
|
|
73
|
+
}
|
|
71
74
|
}
|
|
72
75
|
ExpandableContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ExpandableContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
73
|
-
ExpandableContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ExpandableContainerDirective, isStandalone: true, selector: "[odxExpandableContainer]", inputs: { multiple: "multiple" },
|
|
76
|
+
ExpandableContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ExpandableContainerDirective, isStandalone: true, selector: "[odxExpandableContainer]", inputs: { multiple: "multiple" }, providers: [
|
|
77
|
+
{
|
|
78
|
+
provide: ODX_EXPANDABLE_CONTAINER,
|
|
79
|
+
useExisting: ExpandableContainerDirective,
|
|
80
|
+
},
|
|
81
|
+
], ngImport: i0 });
|
|
74
82
|
__decorate([
|
|
75
83
|
Transform(coerceBooleanProperty),
|
|
76
84
|
__metadata("design:type", Object)
|
|
@@ -80,6 +88,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
80
88
|
args: [{
|
|
81
89
|
standalone: true,
|
|
82
90
|
selector: '[odxExpandableContainer]',
|
|
91
|
+
providers: [
|
|
92
|
+
{
|
|
93
|
+
provide: ODX_EXPANDABLE_CONTAINER,
|
|
94
|
+
useExisting: ExpandableContainerDirective,
|
|
95
|
+
},
|
|
96
|
+
],
|
|
83
97
|
}]
|
|
84
98
|
}], propDecorators: { multiple: [{
|
|
85
99
|
type: Input
|
|
@@ -103,5 +117,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
103
117
|
* Generated bundle index. Do not edit.
|
|
104
118
|
*/
|
|
105
119
|
|
|
106
|
-
export {
|
|
120
|
+
export { ExpandableContainerDirective, ExpandableItemDirective, ExpandableModule, ODX_EXPANDABLE_CONTAINER };
|
|
107
121
|
//# sourceMappingURL=odx-angular-cdk-expandable.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-cdk-expandable.mjs","sources":["../../../../libs/angular/cdk/expandable/src/lib/expandable.tokens.ts","../../../../libs/angular/cdk/expandable/src/lib/directives/expandable-item.directive.ts","../../../../libs/angular/cdk/expandable/src/lib/directives/extandable-container.directive.ts","../../../../libs/angular/cdk/expandable/src/lib/expandable.module.ts","../../../../libs/angular/cdk/expandable/src/odx-angular-cdk-expandable.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ExpandableContainer } from './facade';\n\nexport const
|
|
1
|
+
{"version":3,"file":"odx-angular-cdk-expandable.mjs","sources":["../../../../libs/angular/cdk/expandable/src/lib/expandable.tokens.ts","../../../../libs/angular/cdk/expandable/src/lib/directives/expandable-item.directive.ts","../../../../libs/angular/cdk/expandable/src/lib/directives/extandable-container.directive.ts","../../../../libs/angular/cdk/expandable/src/lib/expandable.module.ts","../../../../libs/angular/cdk/expandable/src/odx-angular-cdk-expandable.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ExpandableContainer } from './facade';\n\nexport const ODX_EXPANDABLE_CONTAINER = new InjectionToken<ExpandableContainer>('@odx/angular/cdk/expandable::ExpandableContainer');\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectorRef, Directive, inject, Input } from '@angular/core';\nimport { getUniqueId } from '@odx/angular/utils';\nimport { ODX_EXPANDABLE_CONTAINER } from '../expandable.tokens';\nimport { ExpandableItem } from '../facade';\n\n@Directive({\n standalone: true,\n selector: '[odxExpandableItem]',\n})\nexport class ExpandableItemDirective implements ExpandableItem {\n public static ngAcceptInputType_expanded: BooleanInput;\n\n private readonly container = inject(ODX_EXPANDABLE_CONTAINER, { optional: true, skipSelf: true });\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private _expanded = false;\n\n public readonly id = getUniqueId('odx-expandable-item');\n\n @Input()\n public set expanded(value: boolean) {\n this._expanded = coerceBooleanProperty(value);\n if (this._expanded) {\n this.container?.open(this);\n } else {\n this.container?.close(this);\n }\n this.changeDetectorRef.markForCheck();\n }\n public get expanded(): boolean {\n return this._expanded;\n }\n\n public toggle(forceState?: boolean): void {\n this.expanded = forceState ?? !this.expanded;\n }\n\n public open(): void {\n this.toggle(true);\n }\n\n public close(): void {\n this.toggle(false);\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, Input } from '@angular/core';\nimport { Transform } from '@odx/angular/utils';\nimport { ODX_EXPANDABLE_CONTAINER } from '../expandable.tokens';\nimport { ExpandableContainer, ExpandableItem } from '../facade';\n\n@Directive({\n standalone: true,\n selector: '[odxExpandableContainer]',\n providers: [\n {\n provide: ODX_EXPANDABLE_CONTAINER,\n useExisting: ExpandableContainerDirective,\n },\n ],\n})\nexport class ExpandableContainerDirective implements ExpandableContainer {\n public static ngAcceptInputType_multiple: BooleanInput;\n\n private openItems: Record<string, ExpandableItem> = {};\n\n @Transform(coerceBooleanProperty)\n @Input()\n public multiple = false;\n\n public close(item: ExpandableItem): void {\n delete this.openItems[item.id];\n }\n\n public closeAll(): void {\n for (const item of Object.values(this.openItems)) {\n item.close();\n }\n }\n\n public open(item: ExpandableItem): void {\n if (!this.multiple) {\n this.closeAll();\n }\n this.openItems[item.id] = item;\n }\n\n public hasExpandedItem(): boolean {\n return Object.values(this.openItems).length > 0;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ExpandableContainerDirective, ExpandableItemDirective } from './directives';\n\nconst modules = [ExpandableContainerDirective, ExpandableItemDirective];\n\n@NgModule({\n imports: modules,\n exports: modules,\n})\nexport class ExpandableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import { createMutationObserver, untilDestroyed } from '@odx/angular/utils';
|
|
3
4
|
import * as i1 from 'ng2-charts';
|
|
4
5
|
import { ThemeService, BaseChartDirective, NgChartsModule, NgChartsConfiguration } from 'ng2-charts';
|
|
5
|
-
import { createMutationObserver, untilDestroyed } from '@odx/angular/utils';
|
|
6
6
|
import { DOCUMENT } from '@angular/common';
|
|
7
7
|
import { WindowRef } from '@odx/angular';
|
|
8
8
|
import { ThemingService } from '@odx/angular/theming';
|
|
9
9
|
import { distinctUntilChanged, Observable } from 'rxjs';
|
|
10
10
|
|
|
11
11
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
12
|
-
class
|
|
12
|
+
class ChartsThemeService {
|
|
13
13
|
constructor() {
|
|
14
14
|
this.coreChartThemeService = inject(ThemeService);
|
|
15
15
|
this.document = inject(DOCUMENT);
|
|
@@ -107,22 +107,22 @@ class ChartsThemeServise {
|
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type:
|
|
110
|
+
ChartsThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
111
|
+
ChartsThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeService, providedIn: 'root' });
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartsThemeService, decorators: [{
|
|
113
113
|
type: Injectable,
|
|
114
114
|
args: [{ providedIn: 'root' }]
|
|
115
115
|
}] });
|
|
116
116
|
|
|
117
117
|
class ChartThemeDirective extends BaseChartDirective {
|
|
118
|
-
constructor(element, ngzone,
|
|
119
|
-
super(element, ngzone,
|
|
120
|
-
this.
|
|
118
|
+
constructor(element, ngzone, themeService) {
|
|
119
|
+
super(element, ngzone, themeService);
|
|
120
|
+
this.chartsThemeService = inject(ChartsThemeService);
|
|
121
121
|
this.takeUntilDestroyed = untilDestroyed();
|
|
122
|
-
this.
|
|
122
|
+
this.chartsThemeService.observeThemeChanging$
|
|
123
123
|
.pipe(this.takeUntilDestroyed())
|
|
124
124
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
125
|
-
.subscribe(() => { var _a; return this.
|
|
125
|
+
.subscribe(() => { var _a; return this.chartsThemeService.setTheme((_a = this.chart) === null || _a === void 0 ? void 0 : _a.config); });
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
ChartThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ChartThemeDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -143,7 +143,7 @@ ChartThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
|
|
|
143
143
|
{
|
|
144
144
|
provide: NgChartsConfiguration,
|
|
145
145
|
useFactory: (service) => ({ defaults: service.getOverrides, generateColors: false }),
|
|
146
|
-
deps: [
|
|
146
|
+
deps: [ChartsThemeService],
|
|
147
147
|
},
|
|
148
148
|
BaseChartDirective,
|
|
149
149
|
], imports: [NgChartsModule, NgChartsModule] });
|
|
@@ -155,7 +155,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
155
155
|
{
|
|
156
156
|
provide: NgChartsConfiguration,
|
|
157
157
|
useFactory: (service) => ({ defaults: service.getOverrides, generateColors: false }),
|
|
158
|
-
deps: [
|
|
158
|
+
deps: [ChartsThemeService],
|
|
159
159
|
},
|
|
160
160
|
BaseChartDirective,
|
|
161
161
|
],
|
|
@@ -167,5 +167,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
167
167
|
* Generated bundle index. Do not edit.
|
|
168
168
|
*/
|
|
169
169
|
|
|
170
|
-
export { ChartThemeDirective, ChartThemeModule,
|
|
170
|
+
export { ChartThemeDirective, ChartThemeModule, ChartsThemeService };
|
|
171
171
|
//# sourceMappingURL=odx-angular-charts-config.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-charts-config.mjs","sources":["../../../../libs/angular/charts-config/src/lib/charts-theme.service.ts","../../../../libs/angular/charts-config/src/lib/charts-theme.directive.ts","../../../../libs/angular/charts-config/src/lib/charts-theme.module.ts","../../../../libs/angular/charts-config/src/odx-angular-charts-config.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { Theme, ThemingService } from '@odx/angular/theming';\nimport { createMutationObserver } from '@odx/angular/utils';\nimport { ChartConfiguration, ChartType, Color } from 'chart.js';\nimport { ThemeService } from 'ng2-charts';\nimport { distinctUntilChanged, Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ChartsThemeServise {\n private readonly coreChartThemeService = inject(ThemeService);\n private readonly document = inject(DOCUMENT);\n private readonly windowRef = inject(WindowRef);\n private readonly themingService = inject(ThemingService);\n\n public getOverrides = {\n borderColor: this.windowRef.getCSSVariable('gray-200'),\n backgroundColor: 'rgba(0,0,0,0)',\n color: this.windowRef.getCSSVariable('blue-700'),\n font: {\n family: 'Pangea',\n size: 13.333,\n },\n plugins: {\n colors: { enabled: false },\n tooltip: {\n backgroundColor: this.windowRef.getCSSVariable('blue-800'),\n cornerRadius: 3,\n },\n },\n datasets: {\n line: {\n backgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}66`,\n borderColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n pointBackgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n pointBorderColor: '#fff',\n },\n bar: {\n backgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}99`,\n borderColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n },\n doughnut: {\n backgroundColor: (context: any) => `${this.seriesColors[context.dataIndex]}`,\n borderColor: this.windowRef.getCSSVariable('gray-200'),\n },\n polarArea: {\n backgroundColor: (context: any) => `${this.seriesColors[context.dataIndex]}99`,\n borderColor: (context: any) => `${this.seriesColors[context.dataIndex]}`,\n },\n get pie(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get bubble(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get scatter(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get area(): Record<string, ((context: any) => Color) | Color> {\n return this.polarArea;\n },\n get radar(): Record<string, ((context: any) => Color) | Color> {\n return this.line;\n },\n },\n };\n\n public seriesColors = Object.values(this.windowRef.getCSSColorStyles('charts-series'));\n public observeThemeChanging$: Observable<MutationRecord | Theme> = this.document.body.className.includes('sb-')\n ? this.buildBodyObserver().pipe(distinctUntilChanged())\n : this.themingService.theme$;\n\n public setTheme(chartConf: ChartConfiguration) {\n const type: ChartType = (chartConf && chartConf['type']) || 'bar';\n this.coreChartThemeService.setColorschemesOptions(this.themeColorsOverrides(type));\n }\n\n private themeColorsOverrides(type?: ChartType): ChartConfiguration['options'] {\n const scales =\n type === 'pie' || type === 'doughnut'\n ? undefined\n : {\n x: {\n ticks: { color: this.windowRef.getCSSVariable('blue-700') },\n grid: { color: this.windowRef.getCSSVariable('gray-200') },\n },\n y: {\n ticks: { color: this.windowRef.getCSSVariable('blue-700') },\n grid: { color: this.windowRef.getCSSVariable('gray-200') },\n },\n };\n return {\n color: this.windowRef.getCSSVariable('blue-700'),\n scales,\n plugins: {\n colors: {\n forceOverride: true,\n },\n legend: {},\n },\n };\n }\n\n private buildBodyObserver(): Observable<MutationRecord> {\n return new Observable((observer) => {\n const mutation: MutationObserver = createMutationObserver(observer, (mutations) => mutations.some(({ type }) => type === 'attributes'));\n mutation.observe(this.document.body, { attributes: true });\n return () => mutation.disconnect();\n });\n }\n}\n","import { Directive, ElementRef, inject, NgZone } from '@angular/core';\nimport { untilDestroyed } from '@odx/angular/utils';\nimport { BaseChartDirective, ThemeService } from 'ng2-charts';\nimport { ChartsThemeServise } from './charts-theme.service';\n\n@Directive({\n selector: 'canvas[odxChart]',\n standalone: true,\n})\nexport class ChartThemeDirective extends BaseChartDirective {\n private readonly chartsThemeServise = inject(ChartsThemeServise);\n private readonly takeUntilDestroyed = untilDestroyed();\n\n constructor(element: ElementRef, ngzone: NgZone, parentThemeService: ThemeService) {\n super(element, ngzone, parentThemeService);\n this.chartsThemeServise.observeThemeChanging$\n .pipe(this.takeUntilDestroyed())\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .subscribe(() => this.chartsThemeServise.setTheme(this.chart?.config as any));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BaseChartDirective, NgChartsConfiguration, NgChartsModule } from 'ng2-charts';\nimport { ChartThemeDirective } from './charts-theme.directive';\nimport { ChartsThemeServise } from './charts-theme.service';\n\n@NgModule({\n imports: [NgChartsModule, ChartThemeDirective],\n providers: [\n {\n provide: NgChartsConfiguration,\n useFactory: (service: ChartsThemeServise) => ({ defaults: service.getOverrides, generateColors: false }),\n deps: [ChartsThemeServise],\n },\n BaseChartDirective,\n ],\n exports: [NgChartsModule, ChartThemeDirective],\n})\nexport class ChartThemeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-charts-config.mjs","sources":["../../../../libs/angular/charts-config/src/lib/charts-theme.service.ts","../../../../libs/angular/charts-config/src/lib/charts-theme.directive.ts","../../../../libs/angular/charts-config/src/lib/charts-theme.module.ts","../../../../libs/angular/charts-config/src/odx-angular-charts-config.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { WindowRef } from '@odx/angular';\nimport { Theme, ThemingService } from '@odx/angular/theming';\nimport { createMutationObserver } from '@odx/angular/utils';\nimport { ChartConfiguration, ChartType, Color } from 'chart.js';\nimport { ThemeService } from 'ng2-charts';\nimport { distinctUntilChanged, Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ChartsThemeService {\n private readonly coreChartThemeService = inject(ThemeService);\n private readonly document = inject(DOCUMENT);\n private readonly windowRef = inject(WindowRef);\n private readonly themingService = inject(ThemingService);\n\n public getOverrides = {\n borderColor: this.windowRef.getCSSVariable('gray-200'),\n backgroundColor: 'rgba(0,0,0,0)',\n color: this.windowRef.getCSSVariable('blue-700'),\n font: {\n family: 'Pangea',\n size: 13.333,\n },\n plugins: {\n colors: { enabled: false },\n tooltip: {\n backgroundColor: this.windowRef.getCSSVariable('blue-800'),\n cornerRadius: 3,\n },\n },\n datasets: {\n line: {\n backgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}66`,\n borderColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n pointBackgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n pointBorderColor: '#fff',\n },\n bar: {\n backgroundColor: (context: any) => `${this.seriesColors[context.datasetIndex]}99`,\n borderColor: (context: any) => `${this.seriesColors[context.datasetIndex]}`,\n },\n doughnut: {\n backgroundColor: (context: any) => `${this.seriesColors[context.dataIndex]}`,\n borderColor: this.windowRef.getCSSVariable('gray-200'),\n },\n polarArea: {\n backgroundColor: (context: any) => `${this.seriesColors[context.dataIndex]}99`,\n borderColor: (context: any) => `${this.seriesColors[context.dataIndex]}`,\n },\n get pie(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get bubble(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get scatter(): Record<string, ((context: any) => Color) | Color> {\n return this.doughnut;\n },\n get area(): Record<string, ((context: any) => Color) | Color> {\n return this.polarArea;\n },\n get radar(): Record<string, ((context: any) => Color) | Color> {\n return this.line;\n },\n },\n };\n\n public seriesColors = Object.values(this.windowRef.getCSSColorStyles('charts-series'));\n public observeThemeChanging$: Observable<MutationRecord | Theme> = this.document.body.className.includes('sb-')\n ? this.buildBodyObserver().pipe(distinctUntilChanged())\n : this.themingService.theme$;\n\n public setTheme(chartConf: ChartConfiguration) {\n const type: ChartType = (chartConf && chartConf['type']) || 'bar';\n this.coreChartThemeService.setColorschemesOptions(this.themeColorsOverrides(type));\n }\n\n private themeColorsOverrides(type?: ChartType): ChartConfiguration['options'] {\n const scales =\n type === 'pie' || type === 'doughnut'\n ? undefined\n : {\n x: {\n ticks: { color: this.windowRef.getCSSVariable('blue-700') },\n grid: { color: this.windowRef.getCSSVariable('gray-200') },\n },\n y: {\n ticks: { color: this.windowRef.getCSSVariable('blue-700') },\n grid: { color: this.windowRef.getCSSVariable('gray-200') },\n },\n };\n return {\n color: this.windowRef.getCSSVariable('blue-700'),\n scales,\n plugins: {\n colors: {\n forceOverride: true,\n },\n legend: {},\n },\n };\n }\n\n private buildBodyObserver(): Observable<MutationRecord> {\n return new Observable((observer) => {\n const mutation: MutationObserver = createMutationObserver(observer, (mutations) => mutations.some(({ type }) => type === 'attributes'));\n mutation.observe(this.document.body, { attributes: true });\n return () => mutation.disconnect();\n });\n }\n}\n","import { Directive, ElementRef, inject, NgZone } from '@angular/core';\nimport { untilDestroyed } from '@odx/angular/utils';\nimport { BaseChartDirective, ThemeService } from 'ng2-charts';\nimport { ChartsThemeService } from './charts-theme.service';\n\n@Directive({\n selector: 'canvas[odxChart]',\n standalone: true,\n})\nexport class ChartThemeDirective extends BaseChartDirective {\n private readonly chartsThemeService = inject(ChartsThemeService);\n private readonly takeUntilDestroyed = untilDestroyed();\n\n constructor(element: ElementRef, ngzone: NgZone, themeService: ThemeService) {\n super(element, ngzone, themeService);\n this.chartsThemeService.observeThemeChanging$\n .pipe(this.takeUntilDestroyed())\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .subscribe(() => this.chartsThemeService.setTheme(this.chart?.config as any));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BaseChartDirective, NgChartsConfiguration, NgChartsModule } from 'ng2-charts';\nimport { ChartThemeDirective } from './charts-theme.directive';\nimport { ChartsThemeService } from './charts-theme.service';\n\n@NgModule({\n imports: [NgChartsModule, ChartThemeDirective],\n providers: [\n {\n provide: NgChartsConfiguration,\n useFactory: (service: ChartsThemeService) => ({ defaults: service.getOverrides, generateColors: false }),\n deps: [ChartsThemeService],\n },\n BaseChartDirective,\n ],\n exports: [NgChartsModule, ChartThemeDirective],\n})\nexport class ChartThemeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAAA;MAWa,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC9B,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAElD,IAAA,CAAA,YAAY,GAAG;YACpB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;AACtD,YAAA,eAAe,EAAE,eAAe;YAChC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;AAChD,YAAA,IAAI,EAAE;AACJ,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,IAAI,EAAE,MAAM;AACb,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC1B,gBAAA,OAAO,EAAE;oBACP,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;AAC1D,oBAAA,YAAY,EAAE,CAAC;AAChB,iBAAA;AACF,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE;AACJ,oBAAA,eAAe,EAAE,CAAC,OAAY,KAAK,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAI,EAAA,CAAA;AACjF,oBAAA,WAAW,EAAE,CAAC,OAAY,KAAK,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAE,CAAA;AAC3E,oBAAA,oBAAoB,EAAE,CAAC,OAAY,KAAK,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAE,CAAA;AACpF,oBAAA,gBAAgB,EAAE,MAAM;AACzB,iBAAA;AACD,gBAAA,GAAG,EAAE;AACH,oBAAA,eAAe,EAAE,CAAC,OAAY,KAAK,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAI,EAAA,CAAA;AACjF,oBAAA,WAAW,EAAE,CAAC,OAAY,KAAK,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAE,CAAA;AAC5E,iBAAA;AACD,gBAAA,QAAQ,EAAE;AACR,oBAAA,eAAe,EAAE,CAAC,OAAY,KAAK,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAE,CAAA;oBAC5E,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;AACvD,iBAAA;AACD,gBAAA,SAAS,EAAE;AACT,oBAAA,eAAe,EAAE,CAAC,OAAY,KAAK,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAI,EAAA,CAAA;AAC9E,oBAAA,WAAW,EAAE,CAAC,OAAY,KAAK,CAAA,EAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAE,CAAA;AACzE,iBAAA;AACD,gBAAA,IAAI,GAAG,GAAA;oBACL,OAAO,IAAI,CAAC,QAAQ,CAAC;iBACtB;AACD,gBAAA,IAAI,MAAM,GAAA;oBACR,OAAO,IAAI,CAAC,QAAQ,CAAC;iBACtB;AACD,gBAAA,IAAI,OAAO,GAAA;oBACT,OAAO,IAAI,CAAC,QAAQ,CAAC;iBACtB;AACD,gBAAA,IAAI,IAAI,GAAA;oBACN,OAAO,IAAI,CAAC,SAAS,CAAC;iBACvB;AACD,gBAAA,IAAI,KAAK,GAAA;oBACP,OAAO,IAAI,CAAC,IAAI,CAAC;iBAClB;AACF,aAAA;SACF,CAAC;AAEK,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;AAChF,QAAA,IAAA,CAAA,qBAAqB,GAAuC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;cAC3G,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACvD,cAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;KAwChC;AAtCQ,IAAA,QAAQ,CAAC,SAA6B,EAAA;AAC3C,QAAA,MAAM,IAAI,GAAc,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC;AAClE,QAAA,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;KACpF;AAEO,IAAA,oBAAoB,CAAC,IAAgB,EAAA;QAC3C,MAAM,MAAM,GACV,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,UAAU;AACnC,cAAE,SAAS;AACX,cAAE;AACE,gBAAA,CAAC,EAAE;AACD,oBAAA,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AAC3D,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AAC3D,iBAAA;AACD,gBAAA,CAAC,EAAE;AACD,oBAAA,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AAC3D,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AAC3D,iBAAA;aACF,CAAC;QACR,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;YAChD,MAAM;AACN,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE;AACN,oBAAA,aAAa,EAAE,IAAI;AACpB,iBAAA;AACD,gBAAA,MAAM,EAAE,EAAE;AACX,aAAA;SACF,CAAC;KACH;IAEO,iBAAiB,GAAA;AACvB,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAI;YACjC,MAAM,QAAQ,GAAqB,sBAAsB,CAAC,QAAQ,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;AACxI,YAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,YAAA,OAAO,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;AACrC,SAAC,CAAC,CAAC;KACJ;;+GApGU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA,CAAA;2FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACD5B,MAAO,mBAAoB,SAAQ,kBAAkB,CAAA;AAIzD,IAAA,WAAA,CAAY,OAAmB,EAAE,MAAc,EAAE,YAA0B,EAAA;AACzE,QAAA,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAJtB,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChD,QAAA,IAAkB,CAAA,kBAAA,GAAG,cAAc,EAAE,CAAC;QAIrD,IAAI,CAAC,kBAAkB,CAAC,qBAAqB;AAC1C,aAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;;aAE/B,SAAS,CAAC,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAa,CAAC,CAAA,EAAA,CAAC,CAAC;KACjF;;gHAVU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;iBACjB,CAAA;;;MCSY,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAXjB,cAAc,EAAE,mBAAmB,CASnC,EAAA,OAAA,EAAA,CAAA,cAAc,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAElC,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAVhB,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,qBAAqB;AAC9B,YAAA,UAAU,EAAE,CAAC,OAA2B,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;YACxG,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,SAAA;QACD,kBAAkB;KACnB,EARS,OAAA,EAAA,CAAA,cAAc,EASd,cAAc,CAAA,EAAA,CAAA,CAAA;2FAEb,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;AAC9C,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;AAC9B,4BAAA,UAAU,EAAE,CAAC,OAA2B,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;4BACxG,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;wBACD,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,mBAAmB,CAAC;iBAC/C,CAAA;;;AChBD;;AAEG;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, EventEmitter, Input, Output, Directive, NgModule } from '@angular/core';
|
|
4
|
-
import { ExpandableContainerDirective,
|
|
4
|
+
import { ExpandableContainerDirective, ODX_EXPANDABLE_CONTAINER, ExpandableItemDirective } from '@odx/angular/cdk/expandable';
|
|
5
5
|
import { CSSComponent } from '@odx/angular/internal';
|
|
6
6
|
import { injectElement, getUniqueId } from '@odx/angular/utils';
|
|
7
7
|
import { DisabledController, CoreModule } from '@odx/angular';
|
|
@@ -20,13 +20,13 @@ let AccordionComponent = AccordionComponent_1 = class AccordionComponent extends
|
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
AccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
-
AccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AccordionComponent, isStandalone: true, selector: "odx-accordion", providers: [{ provide:
|
|
23
|
+
AccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AccordionComponent, isStandalone: true, selector: "odx-accordion", providers: [{ provide: ODX_EXPANDABLE_CONTAINER, useExisting: forwardRef(() => AccordionComponent_1) }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"odx-accordion-item\"></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
24
24
|
AccordionComponent = AccordionComponent_1 = __decorate([
|
|
25
25
|
CSSComponent('accordion')
|
|
26
26
|
], AccordionComponent);
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AccordionComponent, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
|
-
args: [{ selector: 'odx-accordion', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide:
|
|
29
|
+
args: [{ selector: 'odx-accordion', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: ODX_EXPANDABLE_CONTAINER, useExisting: forwardRef(() => AccordionComponent) }], template: "<ng-content select=\"odx-accordion-item\"></ng-content>\n" }]
|
|
30
30
|
}] });
|
|
31
31
|
|
|
32
32
|
let AccordionItemComponent = class AccordionItemComponent extends ExpandableItemDirective {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-components-accordion.mjs","sources":["../../../../libs/angular/components/accordion/src/lib/accordion.component.ts","../../../../libs/angular/components/accordion/src/lib/accordion.component.html","../../../../libs/angular/components/accordion/src/lib/components/accordion-item/accordion-item.component.ts","../../../../libs/angular/components/accordion/src/lib/components/accordion-item/accordion-item.component.html","../../../../libs/angular/components/accordion/src/lib/directives/accordion-item-title.ts","../../../../libs/angular/components/accordion/src/lib/accordion.module.ts","../../../../libs/angular/components/accordion/src/odx-angular-components-accordion.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { ExpandableContainerDirective,
|
|
1
|
+
{"version":3,"file":"odx-angular-components-accordion.mjs","sources":["../../../../libs/angular/components/accordion/src/lib/accordion.component.ts","../../../../libs/angular/components/accordion/src/lib/accordion.component.html","../../../../libs/angular/components/accordion/src/lib/components/accordion-item/accordion-item.component.ts","../../../../libs/angular/components/accordion/src/lib/components/accordion-item/accordion-item.component.html","../../../../libs/angular/components/accordion/src/lib/directives/accordion-item-title.ts","../../../../libs/angular/components/accordion/src/lib/accordion.module.ts","../../../../libs/angular/components/accordion/src/odx-angular-components-accordion.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { ExpandableContainerDirective, ODX_EXPANDABLE_CONTAINER } from '@odx/angular/cdk/expandable';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\n\n@CSSComponent('accordion')\n@Component({\n selector: 'odx-accordion',\n templateUrl: './accordion.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: ODX_EXPANDABLE_CONTAINER, useExisting: forwardRef(() => AccordionComponent) }],\n})\nexport class AccordionComponent extends ExpandableContainerDirective {\n public readonly element = injectElement();\n}\n","<ng-content select=\"odx-accordion-item\"></ng-content>\n","import { transition, trigger, useAnimation } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, DisabledController } from '@odx/angular';\nimport { collapse, expand } from '@odx/angular/animations';\nimport { A11yModule } from '@odx/angular/cdk/a11y';\nimport { ExpandableItemDirective } from '@odx/angular/cdk/expandable';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { getUniqueId, injectElement } from '@odx/angular/utils';\n\n@CSSComponent('accordion-item')\n@Component({\n selector: 'odx-accordion-item',\n templateUrl: './accordion-item.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [A11yModule, CoreModule, IconComponent],\n providers: [DisabledController.connect()],\n host: {\n '[class.is-disabled]': 'isDisabled',\n '[class.odx-accordion-item--expanded]': 'isExpanded',\n '[attr.id]': 'id',\n '[attr.title]': 'null',\n },\n animations: [trigger('expandSlotAnimation', [transition(':enter', [useAnimation(expand)]), transition(':leave', [useAnimation(collapse)])])],\n})\nexport class AccordionItemComponent extends ExpandableItemDirective {\n private readonly disabledController = DisabledController.inject();\n public readonly element = injectElement();\n public override readonly id = getUniqueId('odx-accordion-item');\n\n @Input()\n public title?: string | null;\n\n @Output()\n public expandedChange: EventEmitter<boolean> = new EventEmitter();\n\n public get isDisabled(): boolean {\n return !!this.disabledController?.disabled;\n }\n\n public get isExpanded(): boolean {\n return !this.isDisabled && this.expanded;\n }\n\n public get titleId(): string {\n return `${this.id}-title`;\n }\n\n public get slotId(): string {\n return `${this.id}-slot`;\n }\n\n public onAnimationEnd(): void {\n this.expandedChange.emit(this.expanded);\n }\n}\n","<div\n role=\"button\"\n class=\"odx-accordion-item__panel\"\n [attr.id]=\"titleId\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"slotId\"\n (odxCdkInteractive)=\"toggle()\"\n>\n <div *ngIf=\"title; else titleTpl\">\n {{ title }}\n </div>\n <ng-template #titleTpl>\n <ng-content select=\"odx-accordion-item-title\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-accordion-item__icon\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<div\n class=\"odx-accordion-item__slot\"\n [attr.id]=\"slotId\"\n [attr.aria-labelledby]=\"titleId\"\n @expandSlotAnimation\n (@expandSlotAnimation.done)=\"onAnimationEnd()\"\n *ngIf=\"isExpanded\"\n>\n <ng-content></ng-content>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'odx-accordion-item-title',\n})\nexport class AccordionItemTitleDirective {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionItemComponent } from './components';\nimport { AccordionItemTitleDirective } from './directives';\n\nconst modules = [AccordionComponent, AccordionItemComponent, AccordionItemTitleDirective];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class AccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|