@odx/angular 1.0.4 → 2.1.1
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 +17 -0
- package/breakpoints/README.md +3 -0
- package/breakpoints/index.d.ts +7 -0
- package/breakpoints/lib/breakpoints.config.d.ts +21 -0
- package/breakpoints/lib/breakpoints.module.d.ts +7 -0
- package/breakpoints/lib/breakpoints.service.d.ts +13 -0
- package/breakpoints/lib/breakpoints.typings.d.ts +8 -0
- package/breakpoints/lib/directives/index.d.ts +1 -0
- package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +16 -0
- package/breakpoints/lib/helpers/configure-breakpoint.d.ts +4 -0
- package/breakpoints/lib/helpers/index.d.ts +1 -0
- package/breakpoints/lib/models/breakpoint.d.ts +5 -0
- package/breakpoints/lib/models/index.d.ts +1 -0
- package/cdk/autocomplete-control/README.md +3 -0
- package/cdk/autocomplete-control/index.d.ts +3 -0
- package/cdk/autocomplete-control/lib/abstract/base-search-field.directive.d.ts +13 -0
- package/cdk/autocomplete-control/lib/abstract/index.d.ts +1 -0
- package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +39 -0
- package/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.d.ts +11 -0
- package/cdk/autocomplete-control/lib/pipes/index.d.ts +1 -0
- package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +1 -1
- package/cdk/option-control/README.md +3 -0
- package/cdk/option-control/index.d.ts +1 -0
- package/cdk/option-control/lib/option-control.d.ts +17 -0
- package/components/autocomplete/README.md +3 -0
- package/components/autocomplete/index.d.ts +6 -0
- package/components/autocomplete/lib/autocomplete.component.d.ts +30 -0
- package/components/autocomplete/lib/autocomplete.module.d.ts +11 -0
- package/components/autocomplete/lib/autocomplete.tokens.d.ts +3 -0
- package/components/autocomplete/lib/components/index.d.ts +1 -0
- package/components/autocomplete/lib/components/option/autocomplete-option.component.d.ts +9 -0
- package/components/autocomplete/lib/directives/autocomplete-search-field.directive.d.ts +9 -0
- package/components/autocomplete/lib/directives/index.d.ts +1 -0
- package/components/autocomplete/lib/pipes/autocomplete-search-filter.pipe.d.ts +12 -0
- package/components/autocomplete/lib/pipes/index.d.ts +1 -0
- package/components/chip/index.d.ts +1 -1
- package/components/chip/lib/{chip.component.d.ts → components/chip/chip.component.d.ts} +1 -1
- package/components/chip/lib/components/chip-list/chip-list.component.d.ts +6 -0
- package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +6 -0
- package/components/chip/lib/components/index.d.ts +3 -0
- package/components/dropdown/lib/dropdown.directive.d.ts +2 -1
- package/components/form-field/lib/models/form-field-variant.d.ts +1 -0
- package/components/main-menu/lib/directives/index.d.ts +1 -0
- package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +7 -0
- package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +3 -4
- package/components/main-menu/lib/main-menu.module.d.ts +3 -2
- package/components/menu/lib/directives/menu-item.directive.d.ts +1 -1
- package/components/menu/lib/menu.module.d.ts +3 -2
- package/components/rail-navigation/index.d.ts +2 -1
- package/components/rail-navigation/lib/components/index.d.ts +1 -0
- package/components/rail-navigation/lib/models/index.d.ts +1 -0
- package/components/rail-navigation/lib/models/rail-navigation-variant.d.ts +5 -0
- package/components/rail-navigation/lib/rail-navigation.component.d.ts +4 -2
- package/components/rail-navigation/lib/rail-navigation.module.d.ts +2 -2
- package/components/select/index.d.ts +0 -1
- package/components/select/lib/components/index.d.ts +1 -1
- package/components/select/lib/components/select-option/select-option.component.d.ts +19 -0
- package/components/select/lib/directives/select-search-field.directive.d.ts +3 -7
- package/components/select/lib/pipes/select-search-filter.pipe.d.ts +8 -8
- package/components/select/lib/select.component.d.ts +15 -30
- package/components/select/lib/select.module.d.ts +2 -2
- package/components/select/lib/select.tokens.d.ts +2 -2
- package/components/table/README.md +3 -0
- package/components/table/index.d.ts +5 -0
- package/components/table/lib/components/check-cell/check-cell.component.d.ts +11 -0
- package/components/table/lib/components/header-title/header-title.component.d.ts +28 -0
- package/components/table/lib/components/index.d.ts +2 -0
- package/components/table/lib/directives/index.d.ts +2 -0
- package/components/table/lib/directives/table-cell.directive.d.ts +6 -0
- package/components/table/lib/directives/table-row.directive.d.ts +6 -0
- package/components/table/lib/interfaces/index.d.ts +3 -0
- package/components/table/lib/models/index.d.ts +2 -0
- package/components/table/lib/models/sort-variant.d.ts +6 -0
- package/components/table/lib/models/table-variant.d.ts +5 -0
- package/components/table/lib/table.component.d.ts +29 -0
- package/components/table/lib/table.config.d.ts +4 -0
- package/components/table/lib/table.module.d.ts +11 -0
- package/components/wizard/README.md +3 -0
- package/components/wizard/index.d.ts +3 -0
- package/components/wizard/lib/components/index.d.ts +1 -0
- package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +17 -0
- package/components/wizard/lib/wizard.component.d.ts +31 -0
- package/components/wizard/lib/wizard.module.d.ts +9 -0
- package/esm2020/breakpoints/index.mjs +8 -0
- package/esm2020/breakpoints/lib/breakpoints.config.mjs +13 -0
- package/esm2020/breakpoints/lib/breakpoints.module.mjs +17 -0
- package/esm2020/breakpoints/lib/breakpoints.service.mjs +34 -0
- package/esm2020/breakpoints/lib/breakpoints.typings.mjs +2 -0
- package/esm2020/breakpoints/lib/directives/index.mjs +2 -0
- package/esm2020/breakpoints/lib/directives/match-breakpoints.directive.mjs +48 -0
- package/esm2020/breakpoints/lib/helpers/configure-breakpoint.mjs +8 -0
- package/esm2020/breakpoints/lib/helpers/index.mjs +2 -0
- package/esm2020/breakpoints/lib/models/breakpoint.mjs +2 -0
- package/esm2020/breakpoints/lib/models/index.mjs +2 -0
- package/esm2020/breakpoints/odx-angular-breakpoints.mjs +5 -0
- package/esm2020/cdk/autocomplete-control/index.mjs +4 -0
- package/esm2020/cdk/autocomplete-control/lib/abstract/base-search-field.directive.mjs +38 -0
- package/esm2020/cdk/autocomplete-control/lib/abstract/index.mjs +2 -0
- package/esm2020/cdk/autocomplete-control/lib/autocomplete-control.mjs +90 -0
- package/esm2020/cdk/autocomplete-control/lib/pipes/base-search-filter-pipe.mjs +32 -0
- package/esm2020/cdk/autocomplete-control/lib/pipes/index.mjs +2 -0
- package/esm2020/cdk/autocomplete-control/odx-angular-cdk-autocomplete-control.mjs +5 -0
- package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +5 -5
- package/esm2020/cdk/option-control/index.mjs +2 -0
- package/esm2020/cdk/option-control/lib/option-control.mjs +47 -0
- package/esm2020/cdk/option-control/odx-angular-cdk-option-control.mjs +5 -0
- package/esm2020/components/autocomplete/index.mjs +7 -0
- package/esm2020/components/autocomplete/lib/autocomplete.component.mjs +162 -0
- package/esm2020/components/autocomplete/lib/autocomplete.module.mjs +21 -0
- package/esm2020/components/autocomplete/lib/autocomplete.tokens.mjs +3 -0
- package/esm2020/components/autocomplete/lib/components/index.mjs +2 -0
- package/esm2020/components/autocomplete/lib/components/option/autocomplete-option.component.mjs +33 -0
- package/esm2020/components/autocomplete/lib/directives/autocomplete-search-field.directive.mjs +26 -0
- package/esm2020/components/autocomplete/lib/directives/index.mjs +2 -0
- package/esm2020/components/autocomplete/lib/pipes/autocomplete-search-filter.pipe.mjs +30 -0
- package/esm2020/components/autocomplete/lib/pipes/index.mjs +2 -0
- package/esm2020/components/autocomplete/odx-angular-components-autocomplete.mjs +5 -0
- package/esm2020/components/card/lib/card.component.mjs +2 -2
- package/esm2020/components/checkbox/lib/checkbox.component.mjs +2 -2
- package/esm2020/components/chip/index.mjs +2 -2
- package/esm2020/components/chip/lib/{chip.component.mjs → components/chip/chip.component.mjs} +2 -2
- package/esm2020/components/chip/lib/components/chip-list/chip-list.component.mjs +21 -0
- package/esm2020/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +21 -0
- package/esm2020/components/chip/lib/components/index.mjs +4 -0
- package/esm2020/components/dropdown/lib/dropdown.component.mjs +3 -3
- package/esm2020/components/dropdown/lib/dropdown.directive.mjs +10 -2
- package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +3 -3
- package/esm2020/components/form-field/lib/form-field.component.mjs +3 -3
- package/esm2020/components/form-field/lib/form-field.service.mjs +2 -2
- package/esm2020/components/form-field/lib/models/form-field-variant.mjs +2 -1
- package/esm2020/components/main-menu/lib/directives/index.mjs +2 -1
- package/esm2020/components/main-menu/lib/directives/main-menu-close.directive.mjs +24 -0
- package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +6 -12
- package/esm2020/components/main-menu/lib/main-menu.module.mjs +4 -4
- package/esm2020/components/main-menu/lib/main-menu.service.mjs +2 -11
- package/esm2020/components/menu/lib/directives/menu-item.directive.mjs +3 -3
- package/esm2020/components/menu/lib/menu.module.mjs +5 -4
- package/esm2020/components/rail-navigation/index.mjs +3 -2
- package/esm2020/components/rail-navigation/lib/components/index.mjs +2 -0
- package/esm2020/components/rail-navigation/lib/components/{rail-navigation-item.component.mjs → rail-navigation-item/rail-navigation-item.component.mjs} +3 -3
- package/esm2020/components/rail-navigation/lib/models/index.mjs +2 -0
- package/esm2020/components/rail-navigation/lib/models/rail-navigation-variant.mjs +5 -0
- package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +19 -11
- package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +4 -4
- package/esm2020/components/select/index.mjs +1 -2
- package/esm2020/components/select/lib/components/index.mjs +2 -2
- package/esm2020/components/select/lib/components/select-option/select-option.component.mjs +75 -0
- package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +9 -21
- package/esm2020/components/select/lib/pipes/select-search-filter.pipe.mjs +12 -33
- package/esm2020/components/select/lib/select.component.mjs +44 -86
- package/esm2020/components/select/lib/select.module.mjs +5 -5
- package/esm2020/components/select/lib/select.tokens.mjs +2 -2
- package/esm2020/components/table/index.mjs +6 -0
- package/esm2020/components/table/lib/components/check-cell/check-cell.component.mjs +29 -0
- package/esm2020/components/table/lib/components/header-title/header-title.component.mjs +86 -0
- package/esm2020/components/table/lib/components/index.mjs +3 -0
- package/esm2020/components/table/lib/directives/index.mjs +3 -0
- package/esm2020/components/table/lib/directives/table-cell.directive.mjs +27 -0
- package/esm2020/components/table/lib/directives/table-row.directive.mjs +28 -0
- package/esm2020/components/table/lib/interfaces/index.mjs +4 -0
- package/esm2020/components/table/lib/models/index.mjs +3 -0
- package/esm2020/components/table/lib/models/sort-variant.mjs +6 -0
- package/esm2020/components/table/lib/models/table-variant.mjs +5 -0
- package/esm2020/components/table/lib/table.component.mjs +86 -0
- package/esm2020/components/table/lib/table.config.mjs +3 -0
- package/esm2020/components/table/lib/table.module.mjs +21 -0
- package/esm2020/components/table/odx-angular-components-table.mjs +5 -0
- package/esm2020/components/wizard/index.mjs +4 -0
- package/esm2020/components/wizard/lib/components/index.mjs +2 -0
- package/esm2020/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +73 -0
- package/esm2020/components/wizard/lib/wizard.component.mjs +155 -0
- package/esm2020/components/wizard/lib/wizard.module.mjs +19 -0
- package/esm2020/components/wizard/odx-angular-components-wizard.mjs +5 -0
- package/esm2020/internal/decorators/css-component.mjs +1 -1
- package/esm2020/internal/decorators/css-modifier.mjs +16 -21
- package/esm2020/internal/helpers/get-css-variables.mjs +12 -19
- package/esm2020/lib/services/window-ref.mjs +4 -1
- package/fesm2015/odx-angular-breakpoints.mjs +111 -0
- package/fesm2015/odx-angular-breakpoints.mjs.map +1 -0
- package/fesm2015/odx-angular-cdk-autocomplete-control.mjs +164 -0
- package/fesm2015/odx-angular-cdk-autocomplete-control.mjs.map +1 -0
- package/fesm2015/odx-angular-cdk-expandable.mjs +4 -4
- package/fesm2015/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-option-control.mjs +55 -0
- package/fesm2015/odx-angular-cdk-option-control.mjs.map +1 -0
- package/fesm2015/odx-angular-components-autocomplete.mjs +263 -0
- package/fesm2015/odx-angular-components-autocomplete.mjs.map +1 -0
- package/fesm2015/odx-angular-components-card.mjs +1 -1
- package/fesm2015/odx-angular-components-card.mjs.map +1 -1
- package/fesm2015/odx-angular-components-checkbox.mjs +1 -1
- package/fesm2015/odx-angular-components-checkbox.mjs.map +1 -1
- package/fesm2015/odx-angular-components-chip.mjs +35 -5
- package/fesm2015/odx-angular-components-chip.mjs.map +1 -1
- package/fesm2015/odx-angular-components-dropdown.mjs +11 -3
- package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -1
- package/fesm2015/odx-angular-components-form-field.mjs +5 -4
- package/fesm2015/odx-angular-components-form-field.mjs.map +1 -1
- package/fesm2015/odx-angular-components-main-menu.mjs +30 -24
- package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2015/odx-angular-components-menu.mjs +6 -5
- package/fesm2015/odx-angular-components-menu.mjs.map +1 -1
- package/fesm2015/odx-angular-components-rail-navigation.mjs +23 -11
- package/fesm2015/odx-angular-components-rail-navigation.mjs.map +1 -1
- package/fesm2015/odx-angular-components-select.mjs +80 -175
- package/fesm2015/odx-angular-components-select.mjs.map +1 -1
- package/fesm2015/odx-angular-components-table.mjs +264 -0
- package/fesm2015/odx-angular-components-table.mjs.map +1 -0
- package/fesm2015/odx-angular-components-wizard.mjs +242 -0
- package/fesm2015/odx-angular-components-wizard.mjs.map +1 -0
- package/fesm2015/odx-angular-internal.mjs +27 -40
- package/fesm2015/odx-angular-internal.mjs.map +1 -1
- package/fesm2015/odx-angular.mjs +3 -0
- package/fesm2015/odx-angular.mjs.map +1 -1
- package/fesm2020/odx-angular-breakpoints.mjs +117 -0
- package/fesm2020/odx-angular-breakpoints.mjs.map +1 -0
- package/fesm2020/odx-angular-cdk-autocomplete-control.mjs +160 -0
- package/fesm2020/odx-angular-cdk-autocomplete-control.mjs.map +1 -0
- package/fesm2020/odx-angular-cdk-expandable.mjs +4 -4
- package/fesm2020/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-option-control.mjs +54 -0
- package/fesm2020/odx-angular-cdk-option-control.mjs.map +1 -0
- package/fesm2020/odx-angular-components-autocomplete.mjs +254 -0
- package/fesm2020/odx-angular-components-autocomplete.mjs.map +1 -0
- package/fesm2020/odx-angular-components-card.mjs +1 -1
- package/fesm2020/odx-angular-components-card.mjs.map +1 -1
- package/fesm2020/odx-angular-components-checkbox.mjs +1 -1
- package/fesm2020/odx-angular-components-checkbox.mjs.map +1 -1
- package/fesm2020/odx-angular-components-chip.mjs +35 -5
- package/fesm2020/odx-angular-components-chip.mjs.map +1 -1
- package/fesm2020/odx-angular-components-dropdown.mjs +11 -3
- package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -1
- package/fesm2020/odx-angular-components-form-field.mjs +5 -4
- package/fesm2020/odx-angular-components-form-field.mjs.map +1 -1
- package/fesm2020/odx-angular-components-main-menu.mjs +30 -24
- package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2020/odx-angular-components-menu.mjs +6 -5
- package/fesm2020/odx-angular-components-menu.mjs.map +1 -1
- package/fesm2020/odx-angular-components-rail-navigation.mjs +23 -11
- package/fesm2020/odx-angular-components-rail-navigation.mjs.map +1 -1
- package/fesm2020/odx-angular-components-select.mjs +77 -170
- package/fesm2020/odx-angular-components-select.mjs.map +1 -1
- package/fesm2020/odx-angular-components-table.mjs +259 -0
- package/fesm2020/odx-angular-components-table.mjs.map +1 -0
- package/fesm2020/odx-angular-components-wizard.mjs +239 -0
- package/fesm2020/odx-angular-components-wizard.mjs.map +1 -0
- package/fesm2020/odx-angular-internal.mjs +26 -38
- package/fesm2020/odx-angular-internal.mjs.map +1 -1
- package/fesm2020/odx-angular.mjs +3 -0
- package/fesm2020/odx-angular.mjs.map +1 -1
- package/internal/decorators/css-component.d.ts +1 -1
- package/internal/decorators/css-modifier.d.ts +2 -2
- package/internal/helpers/get-css-variables.d.ts +2 -3
- package/lib/services/window-ref.d.ts +1 -0
- package/package.json +52 -4
- package/components/select/lib/abstract/index.d.ts +0 -2
- package/components/select/lib/abstract/select-control-option.d.ts +0 -9
- package/components/select/lib/abstract/select-control.d.ts +0 -12
- package/components/select/lib/components/option/option.component.d.ts +0 -26
- package/esm2020/components/select/lib/abstract/index.mjs +0 -3
- package/esm2020/components/select/lib/abstract/select-control-option.mjs +0 -2
- package/esm2020/components/select/lib/abstract/select-control.mjs +0 -2
- package/esm2020/components/select/lib/components/option/option.component.mjs +0 -95
- /package/components/rail-navigation/lib/components/{rail-navigation-item.component.d.ts → rail-navigation-item/rail-navigation-item.component.d.ts} +0 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, inject, Input, Output, QueryList, Renderer2, ViewEncapsulation, } from '@angular/core';
|
|
4
|
+
import { WindowRef } from '@odx/angular';
|
|
5
|
+
import { CSSComponent, CSSModifier } from '@odx/angular/internal';
|
|
6
|
+
import { injectElement, Transform, untilDestroyed } from '@odx/angular/utils';
|
|
7
|
+
import { debounceTime, fromEvent, merge, tap } from 'rxjs';
|
|
8
|
+
import { WizardStepComponent } from './components';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
let WizardComponent = class WizardComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.destroyed = untilDestroyed();
|
|
13
|
+
this.renderer = inject(Renderer2);
|
|
14
|
+
this.visibleStepsSegments = 0;
|
|
15
|
+
this.dottedLineStart = this.renderer.createElement('div');
|
|
16
|
+
this.dottedLineEnd = this.renderer.createElement('div');
|
|
17
|
+
this.windowRef = inject(WindowRef);
|
|
18
|
+
this.activeStep = 0;
|
|
19
|
+
this.element = injectElement();
|
|
20
|
+
this.vertical = false;
|
|
21
|
+
this.activeStepChanged = new EventEmitter();
|
|
22
|
+
}
|
|
23
|
+
ngAfterViewInit() {
|
|
24
|
+
if (!this.steps)
|
|
25
|
+
return;
|
|
26
|
+
[this.dottedLineStart, this.dottedLineEnd].forEach((l) => this.renderer.addClass(l, 'odx-wizard-step__dotted-line'));
|
|
27
|
+
this.visibleStepsSegments = this.calculateVisibleStepsSegments();
|
|
28
|
+
this.setActiveStep();
|
|
29
|
+
merge(fromEvent(this.windowRef.nativeWindow, 'resize'), this.steps.changes)
|
|
30
|
+
.pipe(this.destroyed(), debounceTime(600))
|
|
31
|
+
.subscribe(() => {
|
|
32
|
+
this.visibleStepsSegments = this.calculateVisibleStepsSegments();
|
|
33
|
+
this.setHiddenSteps();
|
|
34
|
+
});
|
|
35
|
+
this.clickStepSubscriber();
|
|
36
|
+
}
|
|
37
|
+
nextStep() {
|
|
38
|
+
this.activeStep < this.steps.length - 1 && this.changeStepHandler(this.steps.get(this.activeStep + 1));
|
|
39
|
+
}
|
|
40
|
+
previousStep() {
|
|
41
|
+
this.activeStep > 0 && this.changeStepHandler(this.steps.get(this.activeStep - 1));
|
|
42
|
+
}
|
|
43
|
+
setActiveStepValid() {
|
|
44
|
+
this.steps.get(this.activeStep)?.setValid(true);
|
|
45
|
+
}
|
|
46
|
+
calculateVisibleStepsSegments() {
|
|
47
|
+
const container = this.element.nativeElement;
|
|
48
|
+
const { width, height } = container.getBoundingClientRect();
|
|
49
|
+
const containerSize = this.vertical ? height : width;
|
|
50
|
+
let visibleSteps = 0;
|
|
51
|
+
let summaryStepsSize = 0;
|
|
52
|
+
const prop = this.vertical ? 'flex-basis' : 'min-width';
|
|
53
|
+
const minStepSize = parseInt(this.getStyleFromCSS(this.steps.first.element.nativeElement, prop));
|
|
54
|
+
this.steps.forEach(() => {
|
|
55
|
+
summaryStepsSize += minStepSize;
|
|
56
|
+
if (summaryStepsSize < containerSize)
|
|
57
|
+
visibleSteps++;
|
|
58
|
+
});
|
|
59
|
+
return visibleSteps;
|
|
60
|
+
}
|
|
61
|
+
getStyleFromCSS(el, prop) {
|
|
62
|
+
return this.windowRef.nativeWindow.getComputedStyle(el).getPropertyValue(prop);
|
|
63
|
+
}
|
|
64
|
+
setActiveStep() {
|
|
65
|
+
const touched = [];
|
|
66
|
+
this.steps.forEach((step, index) => {
|
|
67
|
+
step.active = false;
|
|
68
|
+
step.isLastTouched = false;
|
|
69
|
+
if (this.activeStep === index)
|
|
70
|
+
step.touched = true;
|
|
71
|
+
step.touched && touched.push(step);
|
|
72
|
+
this.activeStep === index && (step.active = true);
|
|
73
|
+
step.passed = index <= this.activeStep;
|
|
74
|
+
});
|
|
75
|
+
const lastTouched = touched.pop();
|
|
76
|
+
lastTouched && (lastTouched.isLastTouched = true);
|
|
77
|
+
this.setHiddenSteps();
|
|
78
|
+
}
|
|
79
|
+
clickStepSubscriber() {
|
|
80
|
+
merge(...this.steps.map((step) => step.stepChosen$))
|
|
81
|
+
.pipe(this.destroyed(), tap((step) => this.changeStepHandler(step)))
|
|
82
|
+
.subscribe();
|
|
83
|
+
}
|
|
84
|
+
changeStepHandler(step) {
|
|
85
|
+
const index = this.steps.toArray().indexOf(step);
|
|
86
|
+
const isPreviousStepValid = this.steps.get(index - 1)?.valid;
|
|
87
|
+
const isFirstStepTarget = index === 0;
|
|
88
|
+
if ((isPreviousStepValid || isFirstStepTarget) && index !== this.activeStep) {
|
|
89
|
+
this.activeStep = index;
|
|
90
|
+
this.activeStepChanged.emit(this.activeStep);
|
|
91
|
+
this.setActiveStep();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
setHiddenSteps() {
|
|
95
|
+
const length = this.steps.length;
|
|
96
|
+
[this.dottedLineStart, this.dottedLineEnd].forEach((l) => this.setDottedLineActive(l, true));
|
|
97
|
+
this.renderer.insertBefore(this.element.nativeElement, this.dottedLineStart, this.steps.get(1)?.element.nativeElement);
|
|
98
|
+
this.renderer.insertBefore(this.element.nativeElement, this.dottedLineEnd, this.steps.get(length - 1)?.element.nativeElement);
|
|
99
|
+
const start = this.activeStep < length / 2;
|
|
100
|
+
const stepsForHide = this.steps.toArray().slice(1, -1);
|
|
101
|
+
const visibleStepsSegments = this.visibleStepsSegments - 2;
|
|
102
|
+
stepsForHide.forEach((step, i) => {
|
|
103
|
+
if (length > this.visibleStepsSegments) {
|
|
104
|
+
step.visible = start
|
|
105
|
+
? i < visibleStepsSegments - 1 || this.isNeighbors(i, stepsForHide)
|
|
106
|
+
: i > stepsForHide.length - (visibleStepsSegments - 1) || this.isNeighbors(i, stepsForHide);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
step.visible = true;
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
const filteredVisibleSteps = stepsForHide.filter((s) => s.visible);
|
|
113
|
+
if (visibleStepsSegments - 1 < filteredVisibleSteps.length && length > this.visibleStepsSegments) {
|
|
114
|
+
const overflowSize = filteredVisibleSteps.length - visibleStepsSegments + 1;
|
|
115
|
+
const index = start ? overflowSize : filteredVisibleSteps.length - overflowSize - 1;
|
|
116
|
+
filteredVisibleSteps.forEach((s, i) => {
|
|
117
|
+
(start ? i <= index : i >= index) && !this.isNeighbors(i, filteredVisibleSteps) && (s.visible = false);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
this.steps.last.active && (stepsForHide[stepsForHide.length - 1].visible = true);
|
|
121
|
+
this.steps.first.active && (stepsForHide[0].visible = true);
|
|
122
|
+
!this.steps.get(1)?.visible && this.setDottedLineActive(this.dottedLineStart);
|
|
123
|
+
!this.steps.get(length - 2)?.visible && this.setDottedLineActive(this.dottedLineEnd);
|
|
124
|
+
}
|
|
125
|
+
isNeighbors(index, steps) {
|
|
126
|
+
const activeStep = steps.indexOf(steps.find((s) => s.active));
|
|
127
|
+
return activeStep !== -1 && (index === activeStep - 1 || index === activeStep + 1 || index === activeStep);
|
|
128
|
+
}
|
|
129
|
+
setDottedLineActive(line, unset) {
|
|
130
|
+
unset ? this.renderer.removeClass(line, 'odx-wizard-step__dotted-line--active') : this.renderer.addClass(line, 'odx-wizard-step__dotted-line--active');
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
WizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
134
|
+
WizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: WizardComponent, isStandalone: true, selector: "odx-wizard", inputs: { vertical: "vertical" }, outputs: { activeStepChanged: "activeStepChanged" }, queries: [{ propertyName: "steps", predicate: WizardStepComponent }], ngImport: i0, template: "<ng-content select=\"odx-wizard-step\"></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
135
|
+
__decorate([
|
|
136
|
+
CSSModifier(),
|
|
137
|
+
Transform(coerceBooleanProperty),
|
|
138
|
+
__metadata("design:type", Object)
|
|
139
|
+
], WizardComponent.prototype, "vertical", void 0);
|
|
140
|
+
WizardComponent = __decorate([
|
|
141
|
+
CSSComponent('wizard')
|
|
142
|
+
], WizardComponent);
|
|
143
|
+
export { WizardComponent };
|
|
144
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardComponent, decorators: [{
|
|
145
|
+
type: Component,
|
|
146
|
+
args: [{ selector: 'odx-wizard', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-content select=\"odx-wizard-step\"></ng-content>\n" }]
|
|
147
|
+
}], propDecorators: { steps: [{
|
|
148
|
+
type: ContentChildren,
|
|
149
|
+
args: [WizardStepComponent]
|
|
150
|
+
}], vertical: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], activeStepChanged: [{
|
|
153
|
+
type: Output
|
|
154
|
+
}] } });
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3dpemFyZC9zcmMvbGliL3dpemFyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy93aXphcmQvc3JjL2xpYi93aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFVNUMsSUFBTSxlQUFlLEdBQXJCLE1BQU0sZUFBZTtJQUFyQjtRQUtZLGNBQVMsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUNoQixvQkFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtB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QTBKM0I7U0ExSlksZUFBZTsyRkFBZixlQUFlO2tCQVAzQixTQUFTOytCQUNFLFlBQVksY0FFVixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OEJBTXBCLEtBQUs7c0JBRHJCLGVBQWU7dUJBQUMsbUJBQW1CO2dCQWlCN0IsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NNb2RpZmllciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCBUcmFuc2Zvcm0sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZnJvbUV2ZW50LCBtZXJnZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXaXphcmRTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcblxuQENTU0NvbXBvbmVudCgnd2l6YXJkJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC13aXphcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2l6YXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3ZlcnRpY2FsOiBCb29sZWFuSW5wdXQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihXaXphcmRTdGVwQ29tcG9uZW50KVxuICBwcml2YXRlIHJlYWRvbmx5IHN0ZXBzITogUXVlcnlMaXN0PFdpemFyZFN0ZXBDb21wb25lbnQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICBwcml2YXRlIHZpc2libGVTdGVwc1NlZ21lbnRzID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBkb3R0ZWRMaW5lU3RhcnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvdHRlZExpbmVFbmQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93UmVmID0gaW5qZWN0KFdpbmRvd1JlZik7XG4gIHByaXZhdGUgYWN0aXZlU3RlcCA9IDA7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgQENTU01vZGlmaWVyKClcbiAgQFRyYW5zZm9ybShjb2VyY2VCb29sZWFuUHJvcGVydHkpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2ZXJ0aWNhbCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWN0aXZlU3RlcENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN0ZXBzKSByZXR1cm47XG4gICAgW3RoaXMuZG90dGVkTGluZVN0YXJ0LCB0aGlzLmRvdHRlZExpbmVFbmRdLmZvckVhY2goKGwpID0+IHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobCwgJ29keC13aXphcmQtc3RlcF9fZG90dGVkLWxpbmUnKSk7XG4gICAgdGhpcy52aXNpYmxlU3RlcHNTZWdtZW50cyA9IHRoaXMuY2FsY3VsYXRlVmlzaWJsZVN0ZXBzU2VnbWVudHMoKTtcbiAgICB0aGlzLnNldEFjdGl2ZVN0ZXAoKTtcblxuICAgIG1lcmdlKGZyb21FdmVudCh0aGlzLndpbmRvd1JlZi5uYXRpdmVXaW5kb3csICdyZXNpemUnKSwgdGhpcy5zdGVwcy5jaGFuZ2VzKVxuICAgICAgLnBpcGUodGhpcy5kZXN0cm95ZWQoKSwgZGVib3VuY2VUaW1lKDYwMCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy52aXNpYmxlU3RlcHNTZWdtZW50cyA9IHRoaXMuY2FsY3VsYXRlVmlzaWJsZVN0ZXBzU2VnbWVudHMoKTtcbiAgICAgICAgdGhpcy5zZXRIaWRkZW5TdGVwcygpO1xuICAgICAgfSk7XG4gICAgdGhpcy5jbGlja1N0ZXBTdWJzY3JpYmVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmV4dFN0ZXAoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVTdGVwIDwgdGhpcy5zdGVwcy5sZW5ndGggLSAxICYmIHRoaXMuY2hhbmdlU3RlcEhhbmRsZXIodGhpcy5zdGVwcy5nZXQodGhpcy5hY3RpdmVTdGVwICsgMSkgYXMgV2l6YXJkU3RlcENvbXBvbmVudCk7XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXNTdGVwKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlU3RlcCA+IDAgJiYgdGhpcy5jaGFuZ2VTdGVwSGFuZGxlcih0aGlzLnN0ZXBzLmdldCh0aGlzLmFjdGl2ZVN0ZXAgLSAxKSBhcyBXaXphcmRTdGVwQ29tcG9uZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmVTdGVwVmFsaWQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5nZXQodGhpcy5hY3RpdmVTdGVwKT8uc2V0VmFsaWQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZVZpc2libGVTdGVwc1NlZ21lbnRzKCk6IG51bWJlciB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgY29udGFpbmVyU2l6ZSA9IHRoaXMudmVydGljYWwgPyBoZWlnaHQgOiB3aWR0aDtcblxuICAgIGxldCB2aXNpYmxlU3RlcHMgPSAwO1xuICAgIGxldCBzdW1tYXJ5U3RlcHNTaXplID0gMDtcbiAgICBjb25zdCBwcm9wID0gdGhpcy52ZXJ0aWNhbCA/ICdmbGV4LWJhc2lzJyA6ICdtaW4td2lkdGgnO1xuICAgIGNvbnN0IG1pblN0ZXBTaXplID0gcGFyc2VJbnQodGhpcy5nZXRTdHlsZUZyb21DU1ModGhpcy5zdGVwcy5maXJzdC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHByb3ApKTtcblxuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoKSA9PiB7XG4gICAgICBzdW1tYXJ5U3RlcHNTaXplICs9IG1pblN0ZXBTaXplO1xuICAgICAgaWYgKHN1bW1hcnlTdGVwc1NpemUgPCBjb250YWluZXJTaXplKSB2aXNpYmxlU3RlcHMrKztcbiAgICB9KTtcblxuICAgIHJldHVybiB2aXNpYmxlU3RlcHM7XG4gIH1cblxuICBwcml2YXRlIGdldFN0eWxlRnJvbUNTUyhlbDogSFRNTEVsZW1lbnQsIHByb3A6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKS5nZXRQcm9wZXJ0eVZhbHVlKHByb3ApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVTdGVwKCk6IHZvaWQge1xuICAgIGNvbnN0IHRvdWNoZWQ6IFdpemFyZFN0ZXBDb21wb25lbnRbXSA9IFtdO1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgIHN0ZXAuYWN0aXZlID0gZmFsc2U7XG4gICAgICBzdGVwLmlzTGFzdFRvdWNoZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVN0ZXAgPT09IGluZGV4KSBzdGVwLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgc3RlcC50b3VjaGVkICYmIHRvdWNoZWQucHVzaChzdGVwKTtcbiAgICAgIHRoaXMuYWN0aXZlU3RlcCA9PT0gaW5kZXggJiYgKHN0ZXAuYWN0aXZlID0gdHJ1ZSk7XG4gICAgICBzdGVwLnBhc3NlZCA9IGluZGV4IDw9IHRoaXMuYWN0aXZlU3RlcDtcbiAgICB9KTtcbiAgICBjb25zdCBsYXN0VG91Y2hlZCA9IHRvdWNoZWQucG9wKCk7XG4gICAgbGFzdFRvdWNoZWQgJiYgKGxhc3RUb3VjaGVkLmlzTGFzdFRvdWNoZWQgPSB0cnVlKTtcbiAgICB0aGlzLnNldEhpZGRlblN0ZXBzKCk7XG4gIH1cblxuICBwcml2YXRlIGNsaWNrU3RlcFN1YnNjcmliZXIoKTogdm9pZCB7XG4gICAgbWVyZ2UoLi4udGhpcy5zdGVwcy5tYXAoKHN0ZXApID0+IHN0ZXAuc3RlcENob3NlbiQpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRoaXMuZGVzdHJveWVkKCksXG4gICAgICAgIHRhcCgoc3RlcCkgPT4gdGhpcy5jaGFuZ2VTdGVwSGFuZGxlcihzdGVwKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlU3RlcEhhbmRsZXIoc3RlcDogV2l6YXJkU3RlcENvbXBvbmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdGVwcy50b0FycmF5KCkuaW5kZXhPZihzdGVwKTtcbiAgICBjb25zdCBpc1ByZXZpb3VzU3RlcFZhbGlkID0gdGhpcy5zdGVwcy5nZXQoaW5kZXggLSAxKT8udmFsaWQ7XG4gICAgY29uc3QgaXNGaXJzdFN0ZXBUYXJnZXQgPSBpbmRleCA9PT0gMDtcblxuICAgIGlmICgoaXNQcmV2aW91c1N0ZXBWYWxpZCB8fCBpc0ZpcnN0U3RlcFRhcmdldCkgJiYgaW5kZXggIT09IHRoaXMuYWN0aXZlU3RlcCkge1xuICAgICAgdGhpcy5hY3RpdmVTdGVwID0gaW5kZXg7XG4gICAgICB0aGlzLmFjdGl2ZVN0ZXBDaGFuZ2VkLmVtaXQodGhpcy5hY3RpdmVTdGVwKTtcbiAgICAgIHRoaXMuc2V0QWN0aXZlU3RlcCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SGlkZGVuU3RlcHMoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5zdGVwcy5sZW5ndGg7XG5cbiAgICBbdGhpcy5kb3R0ZWRMaW5lU3RhcnQsIHRoaXMuZG90dGVkTGluZUVuZF0uZm9yRWFjaCgobCkgPT4gdGhpcy5zZXREb3R0ZWRMaW5lQWN0aXZlKGwsIHRydWUpKTtcblxuICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCB0aGlzLmRvdHRlZExpbmVTdGFydCwgdGhpcy5zdGVwcy5nZXQoMSk/LmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuZG90dGVkTGluZUVuZCwgdGhpcy5zdGVwcy5nZXQobGVuZ3RoIC0gMSk/LmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLmFjdGl2ZVN0ZXAgPCBsZW5ndGggLyAyO1xuICAgIGNvbnN0IHN0ZXBzRm9ySGlkZSA9IHRoaXMuc3RlcHMudG9BcnJheSgpLnNsaWNlKDEsIC0xKTtcbiAgICBjb25zdCB2aXNpYmxlU3RlcHNTZWdtZW50cyA9IHRoaXMudmlzaWJsZVN0ZXBzU2VnbWVudHMgLSAyO1xuICAgIHN0ZXBzRm9ySGlkZS5mb3JFYWNoKChzdGVwLCBpKSA9PiB7XG4gICAgICBpZiAobGVuZ3RoID4gdGhpcy52aXNpYmxlU3RlcHNTZWdtZW50cykge1xuICAgICAgICBzdGVwLnZpc2libGUgPSBzdGFydFxuICAgICAgICAgID8gaSA8IHZpc2libGVTdGVwc1NlZ21lbnRzIC0gMSB8fCB0aGlzLmlzTmVpZ2hib3JzKGksIHN0ZXBzRm9ySGlkZSlcbiAgICAgICAgICA6IGkgPiBzdGVwc0ZvckhpZGUubGVuZ3RoIC0gKHZpc2libGVTdGVwc1NlZ21lbnRzIC0gMSkgfHwgdGhpcy5pc05laWdoYm9ycyhpLCBzdGVwc0ZvckhpZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RlcC52aXNpYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBmaWx0ZXJlZFZpc2libGVTdGVwcyA9IHN0ZXBzRm9ySGlkZS5maWx0ZXIoKHMpID0+IHMudmlzaWJsZSk7XG4gICAgaWYgKHZpc2libGVTdGVwc1NlZ21lbnRzIC0gMSA8IGZpbHRlcmVkVmlzaWJsZVN0ZXBzLmxlbmd0aCAmJiBsZW5ndGggPiB0aGlzLnZpc2libGVTdGVwc1NlZ21lbnRzKSB7XG4gICAgICBjb25zdCBvdmVyZmxvd1NpemUgPSBmaWx0ZXJlZFZpc2libGVTdGVwcy5sZW5ndGggLSB2aXNpYmxlU3RlcHNTZWdtZW50cyArIDE7XG4gICAgICBjb25zdCBpbmRleCA9IHN0YXJ0ID8gb3ZlcmZsb3dTaXplIDogZmlsdGVyZWRWaXNpYmxlU3RlcHMubGVuZ3RoIC0gb3ZlcmZsb3dTaXplIC0gMTtcblxuICAgICAgZmlsdGVyZWRWaXNpYmxlU3RlcHMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgICAoc3RhcnQgPyBpIDw9IGluZGV4IDogaSA+PSBpbmRleCkgJiYgIXRoaXMuaXNOZWlnaGJvcnMoaSwgZmlsdGVyZWRWaXNpYmxlU3RlcHMpICYmIChzLnZpc2libGUgPSBmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnN0ZXBzLmxhc3QuYWN0aXZlICYmIChzdGVwc0ZvckhpZGVbc3RlcHNGb3JIaWRlLmxlbmd0aCAtIDFdLnZpc2libGUgPSB0cnVlKTtcbiAgICB0aGlzLnN0ZXBzLmZpcnN0LmFjdGl2ZSAmJiAoc3RlcHNGb3JIaWRlWzBdLnZpc2libGUgPSB0cnVlKTtcblxuICAgICF0aGlzLnN0ZXBzLmdldCgxKT8udmlzaWJsZSAmJiB0aGlzLnNldERvdHRlZExpbmVBY3RpdmUodGhpcy5kb3R0ZWRMaW5lU3RhcnQpO1xuICAgICF0aGlzLnN0ZXBzLmdldChsZW5ndGggLSAyKT8udmlzaWJsZSAmJiB0aGlzLnNldERvdHRlZExpbmVBY3RpdmUodGhpcy5kb3R0ZWRMaW5lRW5kKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNOZWlnaGJvcnMoaW5kZXg6IG51bWJlciwgc3RlcHM6IFdpemFyZFN0ZXBDb21wb25lbnRbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFjdGl2ZVN0ZXAgPSBzdGVwcy5pbmRleE9mKHN0ZXBzLmZpbmQoKHMpID0+IHMuYWN0aXZlKSBhcyBXaXphcmRTdGVwQ29tcG9uZW50KTtcbiAgICByZXR1cm4gYWN0aXZlU3RlcCAhPT0gLTEgJiYgKGluZGV4ID09PSBhY3RpdmVTdGVwIC0gMSB8fCBpbmRleCA9PT0gYWN0aXZlU3RlcCArIDEgfHwgaW5kZXggPT09IGFjdGl2ZVN0ZXApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREb3R0ZWRMaW5lQWN0aXZlKGxpbmU6IEhUTUxFbGVtZW50LCB1bnNldD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB1bnNldCA/IHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobGluZSwgJ29keC13aXphcmQtc3RlcF9fZG90dGVkLWxpbmUtLWFjdGl2ZScpIDogdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhsaW5lLCAnb2R4LXdpemFyZC1zdGVwX19kb3R0ZWQtbGluZS0tYWN0aXZlJyk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cIm9keC13aXphcmQtc3RlcFwiPjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CoreModule } from '@odx/angular';
|
|
3
|
+
import { WizardStepComponent } from './components';
|
|
4
|
+
import { WizardComponent } from './wizard.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
const modules = [WizardComponent, WizardStepComponent];
|
|
7
|
+
export class WizardModule {
|
|
8
|
+
}
|
|
9
|
+
WizardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
WizardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: WizardModule, imports: [WizardComponent, WizardStepComponent], exports: [CoreModule, WizardComponent, WizardStepComponent] });
|
|
11
|
+
WizardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardModule, imports: [modules, CoreModule] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WizardModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
imports: modules,
|
|
16
|
+
exports: [CoreModule, ...modules],
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3dpemFyZC9zcmMvbGliL3dpemFyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXJELE1BQU0sT0FBTyxHQUFHLENBQUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFNdkQsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7MEdBQVosWUFBWSxZQU5SLGVBQWUsRUFBRSxtQkFBbUIsYUFJekMsVUFBVSxFQUpMLGVBQWUsRUFBRSxtQkFBbUI7MEdBTXhDLFlBQVksWUFIZCxPQUFPLEVBQ04sVUFBVTsyRkFFVCxZQUFZO2tCQUp4QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgV2l6YXJkU3RlcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBXaXphcmRDb21wb25lbnQgfSBmcm9tICcuL3dpemFyZC5jb21wb25lbnQnO1xuXG5jb25zdCBtb2R1bGVzID0gW1dpemFyZENvbXBvbmVudCwgV2l6YXJkU3RlcENvbXBvbmVudF07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IG1vZHVsZXMsXG4gIGV4cG9ydHM6IFtDb3JlTW9kdWxlLCAuLi5tb2R1bGVzXSxcbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY29tcG9uZW50cy13aXphcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy93aXphcmQvc3JjL29keC1hbmd1bGFyLWNvbXBvbmVudHMtd2l6YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -16,4 +16,4 @@ export function CSSComponent(name, prefix = 'odx') {
|
|
|
16
16
|
})(target.prototype.ngOnInit);
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9pbnRlcm5hbC9zcmMvZGVjb3JhdG9ycy9jc3MtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFPaEYsZ0JBQWdCO0FBQ2hCLDBCQUEwQjtBQUMxQixNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVksRUFBRSxNQUFNLEdBQUcsS0FBSztJQUN2RCxPQUFPLENBQUMsTUFBMEIsRUFBRSxFQUFFO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLEdBQUcsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRTtZQUMxRCxLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUM7UUFFSCxDQUFDLFVBQXlCLFFBQXFCO1lBQzdDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHO2dCQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRCxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlY29yYXRvclByb3BlcnR5TmFtZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5leHBvcnQgY29uc3QgQ1NTX0NPTVBPTkVOVF9OQU1FID0gZGVjb3JhdG9yUHJvcGVydHlOYW1lKCdDU1NDb21wb25lbnQnLCAnbmFtZScpO1xuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgaW50ZXJmYWNlIENTU0NvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xufVxuXG4vKiogQGludGVybmFsICovXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZXhwb3J0IGZ1bmN0aW9uIENTU0NvbXBvbmVudChuYW1lOiBzdHJpbmcsIHByZWZpeCA9ICdvZHgnKSB7XG4gIHJldHVybiAodGFyZ2V0OiBUeXBlPENTU0NvbXBvbmVudD4pID0+IHtcbiAgICBjb25zdCBjc3NDbGFzcyA9IGAke3ByZWZpeH0tJHtuYW1lfWA7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldC5wcm90b3R5cGUsIENTU19DT01QT05FTlRfTkFNRSwge1xuICAgICAgdmFsdWU6IGNzc0NsYXNzLFxuICAgIH0pO1xuXG4gICAgKGZ1bmN0aW9uICh0aGlzOiB1bmtub3duLCBuZ09uSW5pdD86ICgpID0+IHZvaWQpIHtcbiAgICAgIHRhcmdldC5wcm90b3R5cGUubmdPbkluaXQgPSBmdW5jdGlvbiAodGhpczogQ1NTQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoY3NzQ2xhc3MpO1xuICAgICAgICBuZ09uSW5pdD8uY2FsbCh0aGlzKTtcbiAgICAgIH07XG4gICAgfSkodGFyZ2V0LnByb3RvdHlwZS5uZ09uSW5pdCk7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
1
|
import { camelToKebabCase, decoratorPropertyName, ɵwithMultipleDescriptors } from '../helpers';
|
|
3
2
|
import { CSS_COMPONENT_NAME } from './css-component';
|
|
4
3
|
/** @internal */
|
|
@@ -23,32 +22,28 @@ export function CSSModifier(options) {
|
|
|
23
22
|
}
|
|
24
23
|
return null;
|
|
25
24
|
}
|
|
25
|
+
function getter() {
|
|
26
|
+
return this[propertySymbol];
|
|
27
|
+
}
|
|
26
28
|
function setter(value) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
this[propertySymbol][i] = nextValue;
|
|
39
|
-
const newModifierClass = createModifierClass.apply(this, [nextValue]);
|
|
40
|
-
if (newModifierClass !== null && (typeof nextValue === 'boolean' ? nextValue : true)) {
|
|
41
|
-
this.element.nativeElement.classList.add(newModifierClass);
|
|
42
|
-
}
|
|
29
|
+
this[propertyDefaultValue] ?? (this[propertyDefaultValue] = value);
|
|
30
|
+
const currentValue = this[propertySymbol] ?? null;
|
|
31
|
+
const nextValue = value ?? this[propertyDefaultValue] ?? null;
|
|
32
|
+
if (nextValue !== currentValue) {
|
|
33
|
+
const currentModifierClass = createModifierClass.call(this, currentValue);
|
|
34
|
+
if (currentModifierClass !== null) {
|
|
35
|
+
this.element.nativeElement.classList.remove(currentModifierClass);
|
|
36
|
+
}
|
|
37
|
+
const newModifierClass = createModifierClass.call(this, nextValue);
|
|
38
|
+
if (newModifierClass !== null && (typeof nextValue === 'boolean' ? nextValue : true)) {
|
|
39
|
+
this.element.nativeElement.classList.add(newModifierClass);
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
|
-
|
|
46
|
-
function getter() {
|
|
47
|
-
return options?.isArray ? this[propertySymbol] : this[propertySymbol]?.[0];
|
|
42
|
+
this[propertySymbol] = nextValue;
|
|
48
43
|
}
|
|
49
44
|
descriptors.addSetter(setter);
|
|
50
45
|
descriptors.addGetter(getter);
|
|
51
46
|
descriptors.init();
|
|
52
47
|
};
|
|
53
48
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLW1vZGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2ludGVybmFsL3NyYy9kZWNvcmF0b3JzL2Nzcy1tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0YsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBVW5FLGdCQUFnQjtBQUNoQiwwQkFBMEI7QUFDMUIsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxPQUFPLENBQUMsTUFBb0IsRUFBRSxXQUF3QixFQUFFLEVBQUU7UUFDeEQsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9DLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0QsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sb0JBQW9CLEdBQUcscUJBQXFCLENBQUMsYUFBYSxFQUFFLEdBQUcsZUFBZSxVQUFVLENBQUMsQ0FBQztRQUNoRyxNQUFNLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRWxGLFNBQVMsbUJBQW1CLENBQTZCLEtBQWM7WUFDckUsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDakYsSUFBSSxRQUFRLEdBQUcsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN6RSxJQUFJLE9BQU8sRUFBRSxVQUFVLEVBQUU7b0JBQ3ZCLFFBQVEsR0FBRyxHQUFHLGVBQWUsSUFBSSxRQUFRLEVBQUUsQ0FBQztpQkFDN0M7Z0JBQ0QsSUFBSSxPQUFPLEVBQUUsbUJBQW1CLElBQUksSUFBSSxFQUFFO29CQUN4QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7aUJBQ25EO2dCQUNELE9BQU8sUUFBUSxDQUFDO2FBQ2pCO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsU0FBUyxNQUFNO1lBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELFNBQVMsTUFBTSxDQUE2QixLQUFjO1lBQ3hELElBQUksQ0FBQyxvQkFBb0IsTUFBekIsSUFBSSxDQUFDLG9CQUFvQixJQUFNLEtBQUssRUFBQztZQUNyQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ2xELE1BQU0sU0FBUyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxJQUFJLENBQUM7WUFFOUQsSUFBSSxTQUFTLEtBQUssWUFBWSxFQUFFO2dCQUM5QixNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQzFFLElBQUksb0JBQW9CLEtBQUssSUFBSSxFQUFFO29CQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7aUJBQ25FO2dCQUNELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxnQkFBZ0IsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3BGLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpQkFDNUQ7YUFDRjtZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDbkMsQ0FBQztRQUVELFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsVG9LZWJhYkNhc2UsIGRlY29yYXRvclByb3BlcnR5TmFtZSwgybV3aXRoTXVsdGlwbGVEZXNjcmlwdG9ycyB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NfQ09NUE9ORU5UX05BTUUgfSBmcm9tICcuL2Nzcy1jb21wb25lbnQnO1xuXG4vKiogQGludGVybmFsICovXG5pbnRlcmZhY2UgQ1NTTW9kaWZpZXJPcHRpb25zIHtcbiAgd2l0aENvbXBvbmVudFByZWZpeD86IGJvb2xlYW47XG4gIHdpdGhQcmVmaXg/OiBib29sZWFuO1xufVxuXG50eXBlIENTU0NvbXBvbmVudEluc3RhbmNlID0gQ1NTQ29tcG9uZW50ICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbi8qKiBAaW50ZXJuYWwgKi9cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgZnVuY3Rpb24gQ1NTTW9kaWZpZXIob3B0aW9ucz86IENTU01vZGlmaWVyT3B0aW9ucykge1xuICByZXR1cm4gKHRhcmdldDogQ1NTQ29tcG9uZW50LCBwcm9wZXJ0eUtleTogUHJvcGVydHlLZXkpID0+IHtcbiAgICBjb25zdCBwcm9wZXJ0eUtleU5hbWUgPSBwcm9wZXJ0eUtleS50b1N0cmluZygpO1xuICAgIGNvbnN0IHByb3BlcnR5S2V5S2ViYWJDYXNlID0gY2FtZWxUb0tlYmFiQ2FzZShwcm9wZXJ0eUtleU5hbWUpO1xuICAgIGNvbnN0IHByb3BlcnR5U3ltYm9sID0gZGVjb3JhdG9yUHJvcGVydHlOYW1lKCdDU1NNb2RpZmllcicsIHByb3BlcnR5S2V5TmFtZSk7XG4gICAgY29uc3QgcHJvcGVydHlEZWZhdWx0VmFsdWUgPSBkZWNvcmF0b3JQcm9wZXJ0eU5hbWUoJ0NTU01vZGlmaWVyJywgYCR7cHJvcGVydHlLZXlOYW1lfV9kZWZhdWx0YCk7XG4gICAgY29uc3QgZGVzY3JpcHRvcnMgPSDJtXdpdGhNdWx0aXBsZURlc2NyaXB0b3JzKHRhcmdldCwgcHJvcGVydHlLZXksIHByb3BlcnR5U3ltYm9sKTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZU1vZGlmaWVyQ2xhc3ModGhpczogQ1NTQ29tcG9uZW50SW5zdGFuY2UsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHwgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gMCkpIHtcbiAgICAgICAgbGV0IG1vZGlmaWVyID0gdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgPyBwcm9wZXJ0eUtleUtlYmFiQ2FzZSA6IHZhbHVlO1xuICAgICAgICBpZiAob3B0aW9ucz8ud2l0aFByZWZpeCkge1xuICAgICAgICAgIG1vZGlmaWVyID0gYCR7cHJvcGVydHlLZXlOYW1lfS0ke21vZGlmaWVyfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnM/LndpdGhDb21wb25lbnRQcmVmaXggPz8gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiBgJHt0aGlzW0NTU19DT01QT05FTlRfTkFNRV19LS0ke21vZGlmaWVyfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGlmaWVyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0dGVyKHRoaXM6IENTU0NvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICByZXR1cm4gdGhpc1twcm9wZXJ0eVN5bWJvbF07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0dGVyKHRoaXM6IENTU0NvbXBvbmVudEluc3RhbmNlLCB2YWx1ZTogdW5rbm93bikge1xuICAgICAgdGhpc1twcm9wZXJ0eURlZmF1bHRWYWx1ZV0gPz89IHZhbHVlO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpc1twcm9wZXJ0eVN5bWJvbF0gPz8gbnVsbDtcbiAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHZhbHVlID8/IHRoaXNbcHJvcGVydHlEZWZhdWx0VmFsdWVdID8/IG51bGw7XG5cbiAgICAgIGlmIChuZXh0VmFsdWUgIT09IGN1cnJlbnRWYWx1ZSkge1xuICAgICAgICBjb25zdCBjdXJyZW50TW9kaWZpZXJDbGFzcyA9IGNyZWF0ZU1vZGlmaWVyQ2xhc3MuY2FsbCh0aGlzLCBjdXJyZW50VmFsdWUpO1xuICAgICAgICBpZiAoY3VycmVudE1vZGlmaWVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGN1cnJlbnRNb2RpZmllckNsYXNzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdNb2RpZmllckNsYXNzID0gY3JlYXRlTW9kaWZpZXJDbGFzcy5jYWxsKHRoaXMsIG5leHRWYWx1ZSk7XG4gICAgICAgIGlmIChuZXdNb2RpZmllckNsYXNzICE9PSBudWxsICYmICh0eXBlb2YgbmV4dFZhbHVlID09PSAnYm9vbGVhbicgPyBuZXh0VmFsdWUgOiB0cnVlKSkge1xuICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQobmV3TW9kaWZpZXJDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXNbcHJvcGVydHlTeW1ib2xdID0gbmV4dFZhbHVlO1xuICAgIH1cblxuICAgIGRlc2NyaXB0b3JzLmFkZFNldHRlcihzZXR0ZXIpO1xuICAgIGRlc2NyaXB0b3JzLmFkZEdldHRlcihnZXR0ZXIpO1xuICAgIGRlc2NyaXB0b3JzLmluaXQoKTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,29 +1,22 @@
|
|
|
1
1
|
/* istanbul ignore next */
|
|
2
|
-
function isSameDomain(
|
|
3
|
-
|
|
4
|
-
return true;
|
|
5
|
-
}
|
|
6
|
-
return styleSheet.href.indexOf(window.location.origin) === 0;
|
|
2
|
+
function isSameDomain({ href }) {
|
|
3
|
+
return !href || href.startsWith(window.location.origin);
|
|
7
4
|
}
|
|
8
5
|
/** @internal */
|
|
9
6
|
/* istanbul ignore next */
|
|
10
|
-
export function getCSSVariables(filter) {
|
|
11
|
-
const stylesheets = Array.from(document.styleSheets).filter(isSameDomain);
|
|
7
|
+
export function getCSSVariables(filter, doc) {
|
|
8
|
+
const stylesheets = Array.from((doc ?? document).styleSheets).filter(isSameDomain);
|
|
12
9
|
return stylesheets.reduce((variables, { cssRules }) => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
value: style.getPropertyValue(prop).trim(),
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
10
|
+
const rules = Array.from(cssRules).filter(({ type }) => type === CSSRule.STYLE_RULE);
|
|
11
|
+
for (const { style } of rules) {
|
|
12
|
+
for (const propName of Array.from(style)) {
|
|
13
|
+
const name = propName.trim();
|
|
14
|
+
if (!name.startsWith('--') || !filter.test(name))
|
|
15
|
+
continue;
|
|
16
|
+
variables.push({ name, value: style.getPropertyValue(propName).trim() });
|
|
24
17
|
}
|
|
25
18
|
}
|
|
26
19
|
return variables;
|
|
27
20
|
}, []);
|
|
28
21
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNzcy12YXJpYWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvc3JjL2hlbHBlcnMvZ2V0LWNzcy12YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsMEJBQTBCO0FBQzFCLFNBQVMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFjO0lBQ3hDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFRCxnQkFBZ0I7QUFDaEIsMEJBQTBCO0FBQzFCLE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBYyxFQUFFLEdBQWM7SUFDNUQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFbkYsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUEwQixDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7UUFDN0UsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBbUIsQ0FBQztRQUN2RyxLQUFLLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLEVBQUU7WUFDN0IsS0FBSyxNQUFNLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQUUsU0FBUztnQkFDM0QsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzthQUMxRTtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBDU1NWYXJpYWJsZURlZmluaXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5mdW5jdGlvbiBpc1NhbWVEb21haW4oeyBocmVmIH06IFN0eWxlU2hlZXQpOiBib29sZWFuIHtcbiAgcmV0dXJuICFocmVmIHx8IGhyZWYuc3RhcnRzV2l0aCh3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtcbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDU1NWYXJpYWJsZXMoZmlsdGVyOiBSZWdFeHAsIGRvYz86IERvY3VtZW50KTogQ1NTVmFyaWFibGVEZWZpbml0aW9uW10ge1xuICBjb25zdCBzdHlsZXNoZWV0cyA9IEFycmF5LmZyb20oKGRvYyA/PyBkb2N1bWVudCkuc3R5bGVTaGVldHMpLmZpbHRlcihpc1NhbWVEb21haW4pO1xuXG4gIHJldHVybiBzdHlsZXNoZWV0cy5yZWR1Y2U8Q1NTVmFyaWFibGVEZWZpbml0aW9uW10+KCh2YXJpYWJsZXMsIHsgY3NzUnVsZXMgfSkgPT4ge1xuICAgIGNvbnN0IHJ1bGVzID0gQXJyYXkuZnJvbShjc3NSdWxlcykuZmlsdGVyKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gQ1NTUnVsZS5TVFlMRV9SVUxFKSBhcyBDU1NTdHlsZVJ1bGVbXTtcbiAgICBmb3IgKGNvbnN0IHsgc3R5bGUgfSBvZiBydWxlcykge1xuICAgICAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBBcnJheS5mcm9tKHN0eWxlKSkge1xuICAgICAgICBjb25zdCBuYW1lID0gcHJvcE5hbWUudHJpbSgpO1xuICAgICAgICBpZiAoIW5hbWUuc3RhcnRzV2l0aCgnLS0nKSB8fCAhZmlsdGVyLnRlc3QobmFtZSkpIGNvbnRpbnVlO1xuICAgICAgICB2YXJpYWJsZXMucHVzaCh7IG5hbWUsIHZhbHVlOiBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BOYW1lKS50cmltKCkgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH0sIFtdKTtcbn1cbiJdfQ==
|
|
@@ -21,6 +21,9 @@ export class WindowRef {
|
|
|
21
21
|
getLanguage() {
|
|
22
22
|
return this.nativeWindow.navigator.language;
|
|
23
23
|
}
|
|
24
|
+
getLanguageCode() {
|
|
25
|
+
return this.getLanguage().split(/-|_/)[0].toLowerCase();
|
|
26
|
+
}
|
|
24
27
|
getOrigin() {
|
|
25
28
|
return this.location.origin;
|
|
26
29
|
}
|
|
@@ -40,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
40
43
|
providedIn: 'root',
|
|
41
44
|
}]
|
|
42
45
|
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RHLE1BQU0sT0FBTyxTQUFTO0lBSHRCO1FBSW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsaUJBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQztRQUN0RCxjQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDakYsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDMUIsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7UUFDYyxlQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckYsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLEVBQ2pELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ2YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDaEMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ2hDLENBQUM7S0ErQkg7SUE3QkMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBSSxJQUFhO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpELE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakcsQ0FBQzs7c0dBN0NVLFNBQVM7MEdBQVQsU0FBUyxjQUZSLE1BQU07MkZBRVAsU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIHJlZmxlY3RDb21wb25lbnRUeXBlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZyb21FdmVudHMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvcnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBFTVBUWSwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdpbmRvd1JlZiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICBwdWJsaWMgcmVhZG9ubHkgbmF0aXZlV2luZG93ID0gaW5qZWN0KERPQ1VNRU5UKS5kZWZhdWx0VmlldyA/PyB3aW5kb3c7XG4gIHB1YmxpYyByZWFkb25seSBpc09ubGluZSQgPSBmcm9tRXZlbnRzKHRoaXMubmF0aXZlV2luZG93LCAnb2ZmbGluZScsICdvbmxpbmUnKS5waXBlKFxuICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICBtYXAoKCkgPT4gdGhpcy5pc09ubGluZSgpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2VUaXRsZSQgPSAoaW5qZWN0KFJvdXRlciwgeyBvcHRpb25hbDogdHJ1ZSB9KT8uZXZlbnRzID8/IEVNUFRZKS5waXBlKFxuICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgc3RhcnRXaXRoKG51bGwpLFxuICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICBtYXAoKCkgPT4gdGhpcy50aXRsZS5nZXRUaXRsZSgpKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgcHVibGljIGdldCBsb2NhdGlvbigpOiBMb2NhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93LmxvY2F0aW9uO1xuICB9XG5cbiAgcHVibGljIGlzT25saW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hdGl2ZVdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO1xuICB9XG5cbiAgcHVibGljIGdldExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlV2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYW5ndWFnZUNvZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRMYW5ndWFnZSgpLnNwbGl0KC8tfF8vKVswXS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHVibGljIGdldE9yaWdpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLm9yaWdpbjtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRQYWdlKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5QnlDb21wb25lbnQ8VD4odHlwZTogVHlwZTxUPik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHJlZmxlY3RDb21wb25lbnRUeXBlKHR5cGUpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFR5cGUgPyB0aGlzLm5hdGl2ZVdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbXBvbmVudFR5cGUuc2VsZWN0b3IpIDogbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { createConfigTokens, untilDestroyed } from '@odx/angular/utils';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { inject, Injectable, TemplateRef, ViewContainerRef, Directive, Input, NgModule } from '@angular/core';
|
|
4
|
+
import { coerceArray } from '@angular/cdk/coercion';
|
|
5
|
+
import { of, map, distinctUntilChanged, shareReplay, BehaviorSubject, switchMap, tap } from 'rxjs';
|
|
6
|
+
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
7
|
+
|
|
8
|
+
function configureBreakpoint(name, min, max) {
|
|
9
|
+
return {
|
|
10
|
+
[`<${name}`]: `(max-width: ${min - 1}px)`,
|
|
11
|
+
[`=${name}`]: `(min-width: ${min}px) and (max-width: ${max - 1}px)`,
|
|
12
|
+
[`>${name}`]: `(min-width: ${min}px)`,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const DEFAULT_BREAKPOINTS = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, configureBreakpoint('phone-s', 360, 480)), configureBreakpoint('phone', 480, 768)), configureBreakpoint('tablet', 768, 960)), configureBreakpoint('desktop-s', 960, 1200)), configureBreakpoint('desktop', 1200, 9999));
|
|
17
|
+
const { BreakpointsConfig, BreakpointsDefaultConfig, injectBreakpointsConfig, provideBreakpointsConfig } = createConfigTokens('Breakpoints', '@odx/angular/breakpoints', {
|
|
18
|
+
breakpoints: DEFAULT_BREAKPOINTS,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
class BreakpointsService {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.breakpointObserver = inject(BreakpointObserver);
|
|
24
|
+
this.config = injectBreakpointsConfig();
|
|
25
|
+
}
|
|
26
|
+
observe(breakpoints) {
|
|
27
|
+
const mediaQueries = this.getMediaQueries(breakpoints);
|
|
28
|
+
return this.createBreakpointObserver(mediaQueries);
|
|
29
|
+
}
|
|
30
|
+
matches(breakpoints) {
|
|
31
|
+
const mediaQueries = this.getMediaQueries(breakpoints);
|
|
32
|
+
return this.breakpointObserver.isMatched(mediaQueries);
|
|
33
|
+
}
|
|
34
|
+
getMediaQueries(breakpointNames) {
|
|
35
|
+
return breakpointNames.map((name) => this.config.breakpoints[name]).filter(Boolean);
|
|
36
|
+
}
|
|
37
|
+
createBreakpointObserver(mediaQueries) {
|
|
38
|
+
if (mediaQueries.length < 1)
|
|
39
|
+
return of(false);
|
|
40
|
+
return this.breakpointObserver.observe(mediaQueries).pipe(map(({ matches }) => matches), distinctUntilChanged(), shareReplay({ refCount: true }));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
BreakpointsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
44
|
+
BreakpointsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsService, providedIn: 'root' });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsService, decorators: [{
|
|
46
|
+
type: Injectable,
|
|
47
|
+
args: [{ providedIn: 'root' }]
|
|
48
|
+
}] });
|
|
49
|
+
|
|
50
|
+
class MatchBreakpointsDirective {
|
|
51
|
+
constructor() {
|
|
52
|
+
this.breakpoints$$ = new BehaviorSubject([]);
|
|
53
|
+
this.breakpointsService = inject(BreakpointsService);
|
|
54
|
+
this.takeUntilDestroyed = untilDestroyed();
|
|
55
|
+
this.template = inject(TemplateRef);
|
|
56
|
+
this.viewContainer = inject(ViewContainerRef);
|
|
57
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
58
|
+
this.elseTemplate = null;
|
|
59
|
+
}
|
|
60
|
+
set breakpoints(value) {
|
|
61
|
+
this.breakpoints$$.next(coerceArray(value !== null && value !== void 0 ? value : []));
|
|
62
|
+
}
|
|
63
|
+
ngOnInit() {
|
|
64
|
+
this.breakpoints$$
|
|
65
|
+
.pipe(switchMap((breakpoints) => this.breakpointsService.observe(breakpoints)), tap((matchesBreakpoints) => this.render(matchesBreakpoints)), this.takeUntilDestroyed())
|
|
66
|
+
.subscribe();
|
|
67
|
+
}
|
|
68
|
+
render(matchesBreakpoints) {
|
|
69
|
+
this.viewContainer.clear();
|
|
70
|
+
const template = matchesBreakpoints ? this.template : this.elseTemplate;
|
|
71
|
+
if (template) {
|
|
72
|
+
this.viewContainer.createEmbeddedView(template);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
MatchBreakpointsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatchBreakpointsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
77
|
+
MatchBreakpointsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MatchBreakpointsDirective, isStandalone: true, selector: "ng-template[odxMatchBreakpoints]", inputs: { breakpoints: ["odxMatchBreakpoints", "breakpoints"], elseTemplate: ["odxMatchBreakpointsElse", "elseTemplate"] }, ngImport: i0 });
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatchBreakpointsDirective, decorators: [{
|
|
79
|
+
type: Directive,
|
|
80
|
+
args: [{
|
|
81
|
+
standalone: true,
|
|
82
|
+
selector: 'ng-template[odxMatchBreakpoints]',
|
|
83
|
+
}]
|
|
84
|
+
}], propDecorators: { breakpoints: [{
|
|
85
|
+
type: Input,
|
|
86
|
+
args: ['odxMatchBreakpoints']
|
|
87
|
+
}], elseTemplate: [{
|
|
88
|
+
type: Input,
|
|
89
|
+
args: ['odxMatchBreakpointsElse']
|
|
90
|
+
}] } });
|
|
91
|
+
|
|
92
|
+
const modules = [MatchBreakpointsDirective];
|
|
93
|
+
class BreakpointsModule {
|
|
94
|
+
}
|
|
95
|
+
BreakpointsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
96
|
+
BreakpointsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsModule, imports: [MatchBreakpointsDirective], exports: [MatchBreakpointsDirective] });
|
|
97
|
+
BreakpointsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsModule });
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BreakpointsModule, decorators: [{
|
|
99
|
+
type: NgModule,
|
|
100
|
+
args: [{
|
|
101
|
+
imports: modules,
|
|
102
|
+
exports: modules,
|
|
103
|
+
}]
|
|
104
|
+
}] });
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Generated bundle index. Do not edit.
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
export { BreakpointsConfig, BreakpointsDefaultConfig, BreakpointsModule, BreakpointsService, DEFAULT_BREAKPOINTS, MatchBreakpointsDirective, configureBreakpoint, injectBreakpointsConfig, provideBreakpointsConfig };
|
|
111
|
+
//# sourceMappingURL=odx-angular-breakpoints.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"odx-angular-breakpoints.mjs","sources":["../../../../libs/angular/breakpoints/src/lib/helpers/configure-breakpoint.ts","../../../../libs/angular/breakpoints/src/lib/breakpoints.config.ts","../../../../libs/angular/breakpoints/src/lib/breakpoints.service.ts","../../../../libs/angular/breakpoints/src/lib/directives/match-breakpoints.directive.ts","../../../../libs/angular/breakpoints/src/lib/breakpoints.module.ts","../../../../libs/angular/breakpoints/src/odx-angular-breakpoints.ts"],"sourcesContent":["type BreakpointOperators = '<' | '=' | '>';\ntype BreakpointConfig<T extends string> = Record<`${BreakpointOperators}${T}`, string>;\n\nexport function configureBreakpoint<T extends string>(name: T, min: number, max: number): BreakpointConfig<T> {\n return {\n [`<${name}` as const]: `(max-width: ${min - 1}px)`,\n [`=${name}` as const]: `(min-width: ${min}px) and (max-width: ${max - 1}px)`,\n [`>${name}` as const]: `(min-width: ${min}px)`,\n } as BreakpointConfig<T>;\n}\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { configureBreakpoint } from './helpers/configure-breakpoint';\n\nexport const DEFAULT_BREAKPOINTS = {\n ...configureBreakpoint('phone-s', 360, 480),\n ...configureBreakpoint('phone', 480, 768),\n ...configureBreakpoint('tablet', 768, 960),\n ...configureBreakpoint('desktop-s', 960, 1200),\n ...configureBreakpoint('desktop', 1200, 9999),\n} as const;\n\nexport interface BreakpointsConfig {\n breakpoints: Partial<OdxAngular.Breakpoints>;\n}\n\nexport const { BreakpointsConfig, BreakpointsDefaultConfig, injectBreakpointsConfig, provideBreakpointsConfig } = createConfigTokens(\n 'Breakpoints',\n '@odx/angular/breakpoints',\n {\n breakpoints: DEFAULT_BREAKPOINTS,\n } as BreakpointsConfig\n);\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { inject, Injectable } from '@angular/core';\nimport { distinctUntilChanged, map, Observable, of, shareReplay } from 'rxjs';\nimport { injectBreakpointsConfig } from './breakpoints.config';\nimport { BreakpointName } from './models';\n\n@Injectable({ providedIn: 'root' })\nexport class BreakpointsService {\n private readonly breakpointObserver = inject(BreakpointObserver);\n private readonly config = injectBreakpointsConfig();\n\n public observe(breakpoints: BreakpointName[]): Observable<boolean> {\n const mediaQueries = this.getMediaQueries(breakpoints);\n\n return this.createBreakpointObserver(mediaQueries);\n }\n\n public matches(breakpoints: BreakpointName[]): boolean {\n const mediaQueries = this.getMediaQueries(breakpoints);\n\n return this.breakpointObserver.isMatched(mediaQueries);\n }\n\n private getMediaQueries(breakpointNames: BreakpointName[]): string[] {\n return breakpointNames.map((name) => this.config.breakpoints[name] as string).filter(Boolean);\n }\n\n private createBreakpointObserver(mediaQueries: string[]): Observable<boolean> {\n if (mediaQueries.length < 1) return of(false);\n\n return this.breakpointObserver.observe(mediaQueries).pipe(\n map(({ matches }) => matches),\n distinctUntilChanged(),\n shareReplay({ refCount: true })\n );\n }\n}\n","import { coerceArray } from '@angular/cdk/coercion';\nimport { Directive, inject, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { untilDestroyed } from '@odx/angular/utils';\nimport { BehaviorSubject, switchMap, tap } from 'rxjs';\nimport { BreakpointsService } from '../breakpoints.service';\nimport { BreakpointName } from '../models';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[odxMatchBreakpoints]',\n})\nexport class MatchBreakpointsDirective implements OnInit {\n private readonly breakpoints$$ = new BehaviorSubject<BreakpointName[]>([]);\n private readonly breakpointsService = inject(BreakpointsService);\n private readonly takeUntilDestroyed = untilDestroyed();\n private readonly template = inject(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n @Input('odxMatchBreakpoints')\n public set breakpoints(value: BreakpointName | BreakpointName[] | null | undefined) {\n this.breakpoints$$.next(coerceArray(value ?? []));\n }\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('odxMatchBreakpointsElse')\n public elseTemplate?: TemplateRef<unknown> | null = null;\n\n public ngOnInit(): void {\n this.breakpoints$$\n .pipe(\n switchMap((breakpoints) => this.breakpointsService.observe(breakpoints)),\n tap((matchesBreakpoints) => this.render(matchesBreakpoints)),\n this.takeUntilDestroyed()\n )\n .subscribe();\n }\n\n private render(matchesBreakpoints: boolean): void {\n this.viewContainer.clear();\n const template = matchesBreakpoints ? this.template : this.elseTemplate;\n if (template) {\n this.viewContainer.createEmbeddedView(template);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MatchBreakpointsDirective } from './directives';\n\nconst modules = [MatchBreakpointsDirective];\n\n@NgModule({\n imports: modules,\n exports: modules,\n})\nexport class BreakpointsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|