@design-factory/design-factory 15.2.3 → 16.0.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/README.md +17 -1
- package/assets/fonts/amadeus-neue/bold/AmadeusNeue-Bold.ttf +0 -0
- package/assets/fonts/amadeus-neue/bold/AmadeusNeue-Bold.woff +0 -0
- package/assets/fonts/amadeus-neue/bold/AmadeusNeue-Bold.woff2 +0 -0
- package/assets/fonts/amadeus-neue/bold/AmadeusNeue-BoldItalic.ttf +0 -0
- package/assets/fonts/amadeus-neue/bold/AmadeusNeue-BoldItalic.woff +0 -0
- package/assets/fonts/amadeus-neue/bold/AmadeusNeue-BoldItalic.woff2 +0 -0
- package/assets/fonts/amadeus-neue/light/AmadeusNeue-Light.ttf +0 -0
- package/assets/fonts/amadeus-neue/light/AmadeusNeue-Light.woff +0 -0
- package/assets/fonts/amadeus-neue/light/AmadeusNeue-Light.woff2 +0 -0
- package/assets/fonts/amadeus-neue/light/AmadeusNeue-LightItalic.ttf +0 -0
- package/assets/fonts/amadeus-neue/light/AmadeusNeue-LightItalic.woff +0 -0
- package/assets/fonts/amadeus-neue/light/AmadeusNeue-LightItalic.woff2 +0 -0
- package/assets/fonts/amadeus-neue/medium/AmadeusNeue-Medium.ttf +0 -0
- package/assets/fonts/amadeus-neue/medium/AmadeusNeue-Medium.woff +0 -0
- package/assets/fonts/amadeus-neue/medium/AmadeusNeue-Medium.woff2 +0 -0
- package/assets/fonts/amadeus-neue/medium/AmadeusNeue-MediumItalic.ttf +0 -0
- package/assets/fonts/amadeus-neue/medium/AmadeusNeue-MediumItalic.woff +0 -0
- package/assets/fonts/amadeus-neue/medium/AmadeusNeue-MediumItalic.woff2 +0 -0
- package/assets/fonts/amadeus-neue/regular/AmadeusNeue-Regular.ttf +0 -0
- package/assets/fonts/amadeus-neue/regular/AmadeusNeue-Regular.woff +0 -0
- package/assets/fonts/amadeus-neue/regular/AmadeusNeue-Regular.woff2 +0 -0
- package/assets/fonts/amadeus-neue/regular/AmadeusNeue-RegularItalic.ttf +0 -0
- package/assets/fonts/amadeus-neue/regular/AmadeusNeue-RegularItalic.woff +0 -0
- package/assets/fonts/amadeus-neue/regular/AmadeusNeue-RegularItalic.woff2 +0 -0
- package/design-factory-initial-branding.css +1 -0
- package/design-factory-initial-branding.scss +1 -0
- package/design-factory.css +1 -3
- package/design-factory.scss +1 -0
- package/esm2022/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.mjs +3 -3
- package/esm2022/lib/angular/df.module.mjs +102 -0
- package/esm2022/lib/angular/icon/amadeus-icon.mjs +2 -2
- package/esm2022/lib/angular/sidenav/sidenavlist.component.mjs +3 -12
- package/esm2022/lib/angular/stepper/stepper.component.mjs +65 -0
- package/esm2022/lib/angular/stepper/stepper.directive.mjs +174 -0
- package/esm2022/lib/angular/stepper/stepper.module.mjs +17 -0
- package/esm2022/lib/angular/stepper/stepper.service.mjs +213 -0
- package/esm2022/lib/angular/tooltip/truncate/tooltipTruncate.directive.mjs +5 -3
- package/esm2022/lib/index.mjs +9 -96
- package/fesm2022/design-factory.mjs +1838 -1427
- package/fesm2022/design-factory.mjs.map +1 -1
- package/lib/angular/df.module.d.ts +26 -0
- package/lib/angular/stepper/stepper.component.d.ts +31 -0
- package/lib/angular/stepper/stepper.directive.d.ts +37 -0
- package/lib/angular/stepper/stepper.module.d.ts +8 -0
- package/lib/angular/stepper/stepper.service.d.ts +126 -0
- package/lib/angular/tooltip/truncate/tooltipTruncate.directive.d.ts +1 -0
- package/lib/index.d.ts +7 -23
- package/package.json +23 -4
- package/schematics/migrations/15_0_0/remove-ngx-slider/index.js +0 -1
- package/schematics/migrations/16_0_0/navbar-logo-dark/index.d.ts +9 -0
- package/schematics/migrations/16_0_0/navbar-logo-dark/index.js +43 -0
- package/schematics/migrations/16_0_0/revert-to-old-brand/index.d.ts +7 -0
- package/schematics/migrations/16_0_0/revert-to-old-brand/index.js +115 -0
- package/schematics/migrations/16_0_0/scss-var/files/removed.json +55 -0
- package/schematics/migrations/16_0_0/scss-var/files/renames.json +76 -0
- package/schematics/migrations/16_0_0/scss-var/index.d.ts +7 -0
- package/schematics/migrations/16_0_0/scss-var/index.js +57 -0
- package/schematics/migrations/16_0_0/stepper-classes/index.d.ts +13 -0
- package/schematics/migrations/16_0_0/stepper-classes/index.js +63 -0
- package/schematics/migrations/helpers.js +0 -1
- package/schematics/migrations/migration.json +23 -1
- package/schematics/migrations/utils/component-resource-collector.d.ts +44 -0
- package/schematics/migrations/utils/component-resource-collector.js +166 -0
- package/schematics/migrations/utils/project_tsconfig_paths.js +0 -1
- package/schematics/migrations/utils/style-updater.d.ts +9 -0
- package/schematics/migrations/utils/style-updater.js +38 -0
- package/schematics/migrations/utils/template-updater.d.ts +9 -0
- package/schematics/migrations/utils/template-updater.js +38 -0
- package/schematics/migrations/utils/typescript/compiler_host.js +0 -1
- package/schematics/migrations/utils/typescript/decorators.d.ts +22 -0
- package/schematics/migrations/utils/typescript/decorators.js +41 -0
- package/schematics/migrations/utils/typescript/functions.d.ts +14 -0
- package/schematics/migrations/utils/typescript/functions.js +20 -0
- package/schematics/migrations/utils/typescript/imports.d.ts +17 -0
- package/schematics/migrations/utils/typescript/imports.js +110 -0
- package/schematics/migrations/utils/typescript/line-mappings.d.ts +21 -0
- package/schematics/migrations/utils/typescript/line-mappings.js +75 -0
- package/schematics/migrations/utils/typescript/parse_tsconfig.js +0 -1
- package/schematics/migrations/utils/typescript/property-name.d.ts +18 -0
- package/schematics/migrations/utils/typescript/property-name.js +27 -0
- package/schematics/ng-add/index.js +0 -1
- package/schematics/ng-add/schema.js +0 -1
- package/styles/scss/_common.root.scss +37 -0
- package/styles/scss/_common.scss +3 -9
- package/styles/scss/_common.variables.scss +16 -6
- package/styles/scss/_variables.scss +0 -1
- package/styles/scss/bootstrap/_maps.scss +10 -9
- package/styles/scss/bootstrap/_mixins-override.scss +26 -0
- package/styles/scss/bootstrap/_variables.scss +927 -267
- package/styles/scss/components/accordion/_accordion.scss +31 -14
- package/styles/scss/components/accordion/_accordion.variables.scss +5 -5
- package/styles/scss/components/alert/_alert.scss +130 -228
- package/styles/scss/components/alert/_alert.variables.scss +22 -33
- package/styles/scss/components/badge/_badge.scss +130 -118
- package/styles/scss/components/badge/_badge.variables.scss +14 -8
- package/styles/scss/components/brand-color/_brand-color.mixins.scss +19 -4
- package/styles/scss/components/brand-color/_brand-color.scss +4 -6
- package/styles/scss/components/brand-color/_brand-color.variables.scss +1 -7
- package/styles/scss/components/brand-color/_brand-color_container.scss +28 -0
- package/styles/scss/components/breadcrumbs/_breadcrumbs.scss +77 -65
- package/styles/scss/components/breadcrumbs/_breadcrumbs.variables.scss +6 -4
- package/styles/scss/components/button/_button.scss +120 -55
- package/styles/scss/components/button/_button.variables.scss +18 -4
- package/styles/scss/components/button/_button_container.scss +9 -45
- package/styles/scss/components/card/_card.scss +90 -58
- package/styles/scss/components/card/_card.variables.scss +13 -13
- package/styles/scss/components/carousel/_carousel.scss +22 -23
- package/styles/scss/components/carousel/_carousel.variables.scss +2 -1
- package/styles/scss/components/checkbox/_checkbox.scss +14 -8
- package/styles/scss/components/checkbox/_checkbox.variables.scss +2 -2
- package/styles/scss/components/collapse/_collapse.scss +15 -7
- package/styles/scss/components/collapse/_collapse.variables.scss +3 -3
- package/styles/scss/components/datepicker/_datepicker.scss +178 -122
- package/styles/scss/components/datepicker/_datepicker.variables.scss +22 -15
- package/styles/scss/components/dropdown/_dropdown.mixins.scss +4 -4
- package/styles/scss/components/dropdown/_dropdown.scss +39 -19
- package/styles/scss/components/dropdown/_dropdown.variables.scss +4 -4
- package/styles/scss/components/fieldset/_fieldset.scss +4 -2
- package/styles/scss/components/fonts/_fonts-family.scss +112 -29
- package/styles/scss/components/fonts/_fonts.root.scss +27 -0
- package/styles/scss/components/fonts/_fonts.scss +25 -26
- package/styles/scss/components/fonts/_fonts.variables.scss +2 -2
- package/styles/scss/components/footer/_footer.scss +48 -18
- package/styles/scss/components/footer/_footer.variables.scss +4 -2
- package/styles/scss/components/form/_form.scss +69 -16
- package/styles/scss/components/form/_form.variables.scss +23 -3
- package/styles/scss/components/icon/_amadeus-icon.scss +2 -2
- package/styles/scss/components/icon/_amadeus-icon.variables.scss +1 -0
- package/styles/scss/components/inputs/_inputs.mixin.scss +8 -4
- package/styles/scss/components/inputs/_inputs.root.scss +8 -0
- package/styles/scss/components/inputs/_inputs.scss +159 -118
- package/styles/scss/components/inputs/_inputs.variables.scss +2 -1
- package/styles/scss/components/link/_link.mixins.scss +49 -49
- package/styles/scss/components/link/_link.scss +84 -22
- package/styles/scss/components/link/_link.variables.scss +6 -6
- package/styles/scss/components/list/_list.scss +10 -5
- package/styles/scss/components/list-group/_list-group.scss +54 -48
- package/styles/scss/components/list-group/_list-group.variables.scss +6 -14
- package/styles/scss/components/media/_media.scss +17 -9
- package/styles/scss/components/media/_media.variables.scss +2 -1
- package/styles/scss/components/modal/_modal.scss +88 -39
- package/styles/scss/components/modal/_modal.variables.scss +4 -5
- package/styles/scss/components/navbar/_navbar.scss +298 -115
- package/styles/scss/components/navbar/_navbar.variables.scss +29 -18
- package/styles/scss/components/pagination/_pagination.scss +68 -82
- package/styles/scss/components/pagination/_pagination.variables.scss +5 -8
- package/styles/scss/components/pagination/_pagination_container.scss +3 -0
- package/styles/scss/components/popover/_popover.mixin.scss +20 -33
- package/styles/scss/components/popover/_popover.scss +25 -7
- package/styles/scss/components/popover/_popover_container.scss +123 -74
- package/styles/scss/components/progressbar/_progressbar.scss +15 -7
- package/styles/scss/components/progressbar/_progressbar.variables.scss +3 -2
- package/styles/scss/components/radio/_radio.scss +19 -14
- package/styles/scss/components/rating/_rating.scss +41 -22
- package/styles/scss/components/rating/_rating.variables.scss +5 -5
- package/styles/scss/components/scrollspy/_scrollspy.scss +30 -13
- package/styles/scss/components/scrollspy/_scrollspy.variables.scss +2 -1
- package/styles/scss/components/select/_select.scss +232 -166
- package/styles/scss/components/select/_select.variables.scss +15 -15
- package/styles/scss/components/separator/_separator.scss +2 -1
- package/styles/scss/components/sidenav/_sidenav.scss +208 -135
- package/styles/scss/components/sidenav/_sidenav.variables.scss +19 -20
- package/styles/scss/components/skip-links/_skip-links.scss +31 -16
- package/styles/scss/components/skip-links/_skip-links.variables.scss +6 -6
- package/styles/scss/components/slider/_slider.scss +11 -10
- package/styles/scss/components/slider/_slider.variables.scss +8 -8
- package/styles/scss/components/speechbubble/_speechbubble.scss +50 -30
- package/styles/scss/components/speechbubble/_speechbubble.variables.scss +4 -2
- package/styles/scss/components/spinner/_spinner.scss +34 -29
- package/styles/scss/components/stepper/_stepper.mixins.scss +111 -151
- package/styles/scss/components/stepper/_stepper.scss +163 -69
- package/styles/scss/components/stepper/_stepper.variables.scss +23 -17
- package/styles/scss/components/table/_advancedtables.scss +50 -31
- package/styles/scss/components/table/_table.variables.scss +3 -2
- package/styles/scss/components/tabs/_tabs.scss +98 -49
- package/styles/scss/components/tabs/_tabs.variables.scss +11 -10
- package/styles/scss/components/toast/_toast.scss +136 -68
- package/styles/scss/components/toast/_toast.variables.scss +4 -4
- package/styles/scss/components/toggle/_toggle.scss +90 -44
- package/styles/scss/components/toggle/_toggle.variables.scss +7 -5
- package/styles/scss/components/typeahead/_typeahead.scss +18 -8
- package/styles/scss/components/typeahead/_typeahead.variables.scss +1 -1
- package/styles/scss/df-styles-namespace.scss +8 -11
- package/styles/scss/df-styles.scss +6 -3
- package/styles/scss/themes/brand2023/_variables.scss +585 -0
- package/styles/scss/utilities/_common.utilities.scss +112 -32
- package/assets/fonts/amadeus-light/amadeus-light.svg +0 -8658
- package/assets/fonts/amadeus-light/amadeus-light.ttf +0 -0
- package/assets/fonts/amadeus-light/amadeus-light.woff +0 -0
- package/assets/fonts/amadeus-light/amadeus-light.woff2 +0 -0
- package/assets/icon-amadeus.svg +0 -1
- package/esm2022/lib/angular/utils/html-element-helper.mjs +0 -8
- package/esm2022/lib/angular/utils/titleTruncate.directive.mjs +0 -39
- package/lib/angular/utils/html-element-helper.d.ts +0 -5
- package/lib/angular/utils/titleTruncate.directive.d.ts +0 -16
- package/schematics/migrations/15_0_0/remove-ngx-slider/index.js.map +0 -1
- package/schematics/migrations/helpers.js.map +0 -1
- package/schematics/migrations/utils/project_tsconfig_paths.js.map +0 -1
- package/schematics/migrations/utils/typescript/compiler_host.js.map +0 -1
- package/schematics/migrations/utils/typescript/parse_tsconfig.js.map +0 -1
- package/schematics/ng-add/index.js.map +0 -1
- package/schematics/ng-add/schema.js.map +0 -1
- package/styles/scss/components/tooltip/_tooltip.scss +0 -3
- package/styles/scss/components/tooltip/_tooltip.variables.scss +0 -5
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener, Renderer2, inject } from '@angular/core';
|
|
2
|
+
import { DfDirectionDetectionService, RightToLeftDirectionEnum } from '../right-to-left/directionDetection.service';
|
|
3
|
+
import { DfStepperService } from './stepper.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export const DF_STEP_CLASS = 'df-stepper-step';
|
|
6
|
+
export class DfStepperStepDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.unlistener = [];
|
|
9
|
+
this.renderer2 = inject(Renderer2);
|
|
10
|
+
this.element = inject(ElementRef);
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this.unlistener.push(this.renderer2.listen(this.element.nativeElement, 'focus', () => {
|
|
14
|
+
this.handleFocusTabIndex();
|
|
15
|
+
}));
|
|
16
|
+
this.unlistener.push(this.renderer2.listen(this.element.nativeElement, 'blur', (event) => {
|
|
17
|
+
this.handleBlurTabIndex(event);
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
handleFocusTabIndex() {
|
|
21
|
+
this.element.nativeElement.tabIndex = 0;
|
|
22
|
+
}
|
|
23
|
+
handleBlurTabIndex(event) {
|
|
24
|
+
if (event.relatedTarget &&
|
|
25
|
+
'classList' in event.relatedTarget &&
|
|
26
|
+
event.relatedTarget.classList.contains(DF_STEP_CLASS)) {
|
|
27
|
+
this.element.nativeElement.tabIndex = -1;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
ngOnDestroy() {
|
|
31
|
+
this.unlistener.forEach((ul) => ul());
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfStepperStepDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
34
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DfStepperStepDirective, isStandalone: true, selector: "[dfStepperStep]", exportAs: ["dfStepperStep"], ngImport: i0 }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfStepperStepDirective, decorators: [{
|
|
37
|
+
type: Directive,
|
|
38
|
+
args: [{
|
|
39
|
+
selector: '[dfStepperStep]',
|
|
40
|
+
exportAs: 'dfStepperStep',
|
|
41
|
+
standalone: true
|
|
42
|
+
}]
|
|
43
|
+
}] });
|
|
44
|
+
export class DfStepperDirective {
|
|
45
|
+
constructor() {
|
|
46
|
+
this.stepperService = inject(DfStepperService);
|
|
47
|
+
this.element = inject(ElementRef);
|
|
48
|
+
this.rtlDirectionService = inject(DfDirectionDetectionService);
|
|
49
|
+
}
|
|
50
|
+
ngOnInit() {
|
|
51
|
+
this.direction = this.rtlDirectionService.getPageDirection(this.element);
|
|
52
|
+
}
|
|
53
|
+
handleEnterDown() {
|
|
54
|
+
this.handleSelect();
|
|
55
|
+
}
|
|
56
|
+
handleSpaceDown() {
|
|
57
|
+
this.handleSelect();
|
|
58
|
+
}
|
|
59
|
+
handleGoPrevious() {
|
|
60
|
+
if (this.direction === RightToLeftDirectionEnum.LeftToRight) {
|
|
61
|
+
this.arrowLeftInnerHandler();
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
this.arrowRightInnerHandler();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
handleGoNext() {
|
|
68
|
+
if (this.direction === RightToLeftDirectionEnum.LeftToRight) {
|
|
69
|
+
this.arrowRightInnerHandler();
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.arrowLeftInnerHandler();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
handleKeyDownRight(event) {
|
|
76
|
+
if (!this.stepperService.state.isVertical) {
|
|
77
|
+
this.handleGoNext();
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
handleKeyDown(event) {
|
|
82
|
+
if (!this.stepperService.state.isVertical) {
|
|
83
|
+
this.handleGoPrevious();
|
|
84
|
+
event.preventDefault();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
handleKeyDownUp(event) {
|
|
88
|
+
if (this.stepperService.state.isVertical) {
|
|
89
|
+
this.handleGoNext();
|
|
90
|
+
event.preventDefault();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
handleKeyDownDown(event) {
|
|
94
|
+
if (this.stepperService.state.isVertical) {
|
|
95
|
+
this.handleGoPrevious();
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
getSteps() {
|
|
100
|
+
return this.element.nativeElement.querySelectorAll(`:scope .${DF_STEP_CLASS}`);
|
|
101
|
+
}
|
|
102
|
+
handleSelect() {
|
|
103
|
+
const listStep = this.getSteps();
|
|
104
|
+
const currentPos = Array.prototype.indexOf.call(listStep, document.activeElement);
|
|
105
|
+
if (currentPos !== -1) {
|
|
106
|
+
listStep[currentPos].click();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
arrowRightInnerHandler() {
|
|
110
|
+
const listStep = this.getSteps();
|
|
111
|
+
const currentPos = Array.prototype.indexOf.call(listStep, document.activeElement);
|
|
112
|
+
// Test if the focus is in the list (otherwise we do nothing)
|
|
113
|
+
if (currentPos !== -1) {
|
|
114
|
+
// we put the focus on the next element.
|
|
115
|
+
if (currentPos === listStep.length - 1) {
|
|
116
|
+
listStep[0].focus();
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
listStep[currentPos + 1].focus();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
arrowLeftInnerHandler() {
|
|
124
|
+
const listStep = this.getSteps();
|
|
125
|
+
const currentPos = Array.prototype.indexOf.call(listStep, document.activeElement);
|
|
126
|
+
// Test if the focus is in the list (otherwise we do nothing)
|
|
127
|
+
if (currentPos !== -1) {
|
|
128
|
+
// we put the focus on the next element.
|
|
129
|
+
if (currentPos === 0) {
|
|
130
|
+
listStep[listStep.length - 1].focus();
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
listStep[currentPos - 1].focus();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
ngAfterViewChecked() {
|
|
138
|
+
// Put back the focus on the active elements
|
|
139
|
+
if (this.stepperService.setFocus) {
|
|
140
|
+
const listStep = this.getSteps();
|
|
141
|
+
listStep[this.stepperService.state.active].focus();
|
|
142
|
+
this.stepperService.resetFocus();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfStepperDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
146
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DfStepperDirective, isStandalone: true, selector: "[dfStepperLogic]", host: { listeners: { "keydown.Enter": "handleEnterDown()", "keydown.Space": "handleSpaceDown()", "keydown.arrowRight": "handleKeyDownRight($event)", "keydown.arrowLeft": "handleKeyDown($event)", "keydown.arrowDown": "handleKeyDownUp($event)", "keydown.arrowUp": "handleKeyDownDown($event)" } }, exportAs: ["dfStepperLogic"], ngImport: i0 }); }
|
|
147
|
+
}
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfStepperDirective, decorators: [{
|
|
149
|
+
type: Directive,
|
|
150
|
+
args: [{
|
|
151
|
+
selector: '[dfStepperLogic]',
|
|
152
|
+
exportAs: 'dfStepperLogic',
|
|
153
|
+
standalone: true
|
|
154
|
+
}]
|
|
155
|
+
}], propDecorators: { handleEnterDown: [{
|
|
156
|
+
type: HostListener,
|
|
157
|
+
args: ['keydown.Enter']
|
|
158
|
+
}], handleSpaceDown: [{
|
|
159
|
+
type: HostListener,
|
|
160
|
+
args: ['keydown.Space']
|
|
161
|
+
}], handleKeyDownRight: [{
|
|
162
|
+
type: HostListener,
|
|
163
|
+
args: ['keydown.arrowRight', ['$event']]
|
|
164
|
+
}], handleKeyDown: [{
|
|
165
|
+
type: HostListener,
|
|
166
|
+
args: ['keydown.arrowLeft', ['$event']]
|
|
167
|
+
}], handleKeyDownUp: [{
|
|
168
|
+
type: HostListener,
|
|
169
|
+
args: ['keydown.arrowDown', ['$event']]
|
|
170
|
+
}], handleKeyDownDown: [{
|
|
171
|
+
type: HostListener,
|
|
172
|
+
args: ['keydown.arrowUp', ['$event']]
|
|
173
|
+
}] } });
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc3RlcHBlci9zdGVwcGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBR1osU0FBUyxFQUNULE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFDckQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDO0FBTy9DLE1BQU0sT0FBTyxzQkFBc0I7SUFMbkM7UUFNbUIsZUFBVSxHQUFzQixFQUFFLENBQUM7UUFFbkMsY0FBUyxHQUFjLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxZQUFPLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBZ0MzRDtJQTlCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDOUQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDOUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUss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Q0FBQztnQkFTN0MsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVM3QyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGZEaXJlY3Rpb25EZXRlY3Rpb25TZXJ2aWNlLCBSaWdodFRvTGVmdERpcmVjdGlvbkVudW0gfSBmcm9tICcuLi9yaWdodC10by1sZWZ0L2RpcmVjdGlvbkRldGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IERmU3RlcHBlclNlcnZpY2UgfSBmcm9tICcuL3N0ZXBwZXIuc2VydmljZSc7XG5leHBvcnQgY29uc3QgREZfU1RFUF9DTEFTUyA9ICdkZi1zdGVwcGVyLXN0ZXAnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGZTdGVwcGVyU3RlcF0nLFxuICBleHBvcnRBczogJ2RmU3RlcHBlclN0ZXAnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERmU3RlcHBlclN0ZXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5saXN0ZW5lcjogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyMjogUmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVubGlzdGVuZXIucHVzaChcbiAgICAgIHRoaXMucmVuZGVyZXIyLmxpc3Rlbih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUZvY3VzVGFiSW5kZXgoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnVubGlzdGVuZXIucHVzaChcbiAgICAgIHRoaXMucmVuZGVyZXIyLmxpc3Rlbih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2JsdXInLCAoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVCbHVyVGFiSW5kZXgoZXZlbnQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgaGFuZGxlRm9jdXNUYWJJbmRleCgpIHtcbiAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC50YWJJbmRleCA9IDA7XG4gIH1cblxuICBoYW5kbGVCbHVyVGFiSW5kZXgoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICAnY2xhc3NMaXN0JyBpbiBldmVudC5yZWxhdGVkVGFyZ2V0ICYmXG4gICAgICAoZXZlbnQucmVsYXRlZFRhcmdldC5jbGFzc0xpc3QgYXMgRE9NVG9rZW5MaXN0KS5jb250YWlucyhERl9TVEVQX0NMQVNTKVxuICAgICkge1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPSAtMTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVubGlzdGVuZXIuZm9yRWFjaCgodWwpID0+IHVsKCkpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkZlN0ZXBwZXJMb2dpY10nLFxuICBleHBvcnRBczogJ2RmU3RlcHBlckxvZ2ljJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEZlN0ZXBwZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuICBwcml2YXRlIGRpcmVjdGlvbiE6IHN0cmluZztcbiAgc3RlcHBlclNlcnZpY2UgPSBpbmplY3QoRGZTdGVwcGVyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBydGxEaXJlY3Rpb25TZXJ2aWNlOiBEZkRpcmVjdGlvbkRldGVjdGlvblNlcnZpY2UgPSBpbmplY3QoRGZEaXJlY3Rpb25EZXRlY3Rpb25TZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpcmVjdGlvbiA9IHRoaXMucnRsRGlyZWN0aW9uU2VydmljZS5nZXRQYWdlRGlyZWN0aW9uKHRoaXMuZWxlbWVudCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLkVudGVyJylcbiAgaGFuZGxlRW50ZXJEb3duKCkge1xuICAgIHRoaXMuaGFuZGxlU2VsZWN0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLlNwYWNlJylcbiAgaGFuZGxlU3BhY2VEb3duKCkge1xuICAgIHRoaXMuaGFuZGxlU2VsZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUdvUHJldmlvdXMoKSB7XG4gICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSBSaWdodFRvTGVmdERpcmVjdGlvbkVudW0uTGVmdFRvUmlnaHQpIHtcbiAgICAgIHRoaXMuYXJyb3dMZWZ0SW5uZXJIYW5kbGVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXJyb3dSaWdodElubmVySGFuZGxlcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlR29OZXh0KCkge1xuICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gUmlnaHRUb0xlZnREaXJlY3Rpb25FbnVtLkxlZnRUb1JpZ2h0KSB7XG4gICAgICB0aGlzLmFycm93UmlnaHRJbm5lckhhbmRsZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hcnJvd0xlZnRJbm5lckhhbmRsZXIoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93UmlnaHQnLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlEb3duUmlnaHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuc3RlcHBlclNlcnZpY2Uuc3RhdGUuaXNWZXJ0aWNhbCkge1xuICAgICAgdGhpcy5oYW5kbGVHb05leHQoKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd0xlZnQnLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLnN0ZXBwZXJTZXJ2aWNlLnN0YXRlLmlzVmVydGljYWwpIHtcbiAgICAgIHRoaXMuaGFuZGxlR29QcmV2aW91cygpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93RG93bicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleURvd25VcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLnN0ZXBwZXJTZXJ2aWNlLnN0YXRlLmlzVmVydGljYWwpIHtcbiAgICAgIHRoaXMuaGFuZGxlR29OZXh0KCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dVcCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleURvd25Eb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc3RlcHBlclNlcnZpY2Uuc3RhdGUuaXNWZXJ0aWNhbCkge1xuICAgICAgdGhpcy5oYW5kbGVHb1ByZXZpb3VzKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldFN0ZXBzKCk6IEhUTUxCdXR0b25FbGVtZW50W10ge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKGA6c2NvcGUgLiR7REZfU1RFUF9DTEFTU31gKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0KCkge1xuICAgIGNvbnN0IGxpc3RTdGVwID0gdGhpcy5nZXRTdGVwcygpO1xuICAgIGNvbnN0IGN1cnJlbnRQb3MgPSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGxpc3RTdGVwLCBkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcbiAgICBpZiAoY3VycmVudFBvcyAhPT0gLTEpIHtcbiAgICAgIGxpc3RTdGVwW2N1cnJlbnRQb3NdLmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcnJvd1JpZ2h0SW5uZXJIYW5kbGVyKCkge1xuICAgIGNvbnN0IGxpc3RTdGVwID0gdGhpcy5nZXRTdGVwcygpO1xuICAgIGNvbnN0IGN1cnJlbnRQb3MgPSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGxpc3RTdGVwLCBkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcbiAgICAvLyBUZXN0IGlmIHRoZSBmb2N1cyBpcyBpbiB0aGUgbGlzdCAob3RoZXJ3aXNlIHdlIGRvIG5vdGhpbmcpXG4gICAgaWYgKGN1cnJlbnRQb3MgIT09IC0xKSB7XG4gICAgICAvLyB3ZSBwdXQgdGhlIGZvY3VzIG9uIHRoZSBuZXh0IGVsZW1lbnQuXG4gICAgICBpZiAoY3VycmVudFBvcyA9PT0gbGlzdFN0ZXAubGVuZ3RoIC0gMSkge1xuICAgICAgICBsaXN0U3RlcFswXS5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGlzdFN0ZXBbY3VycmVudFBvcyArIDFdLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcnJvd0xlZnRJbm5lckhhbmRsZXIoKSB7XG4gICAgY29uc3QgbGlzdFN0ZXAgPSB0aGlzLmdldFN0ZXBzKCk7XG4gICAgY29uc3QgY3VycmVudFBvcyA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwobGlzdFN0ZXAsIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xuICAgIC8vIFRlc3QgaWYgdGhlIGZvY3VzIGlzIGluIHRoZSBsaXN0IChvdGhlcndpc2Ugd2UgZG8gbm90aGluZylcbiAgICBpZiAoY3VycmVudFBvcyAhPT0gLTEpIHtcbiAgICAgIC8vIHdlIHB1dCB0aGUgZm9jdXMgb24gdGhlIG5leHQgZWxlbWVudC5cbiAgICAgIGlmIChjdXJyZW50UG9zID09PSAwKSB7XG4gICAgICAgIGxpc3RTdGVwW2xpc3RTdGVwLmxlbmd0aCAtIDFdLmZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsaXN0U3RlcFtjdXJyZW50UG9zIC0gMV0uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgLy8gUHV0IGJhY2sgdGhlIGZvY3VzIG9uIHRoZSBhY3RpdmUgZWxlbWVudHNcbiAgICBpZiAodGhpcy5zdGVwcGVyU2VydmljZS5zZXRGb2N1cykge1xuICAgICAgY29uc3QgbGlzdFN0ZXA6IEhUTUxCdXR0b25FbGVtZW50W10gPSB0aGlzLmdldFN0ZXBzKCk7XG4gICAgICBsaXN0U3RlcFt0aGlzLnN0ZXBwZXJTZXJ2aWNlLnN0YXRlLmFjdGl2ZV0uZm9jdXMoKTtcbiAgICAgIHRoaXMuc3RlcHBlclNlcnZpY2UucmVzZXRGb2N1cygpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DfStepperDirective, DfStepperStepDirective } from './stepper.directive';
|
|
3
|
+
import { DfStepperComponent, DfStepperStepContentDirective } from './stepper.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DfStepperModule {
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: DfStepperModule, imports: [DfStepperDirective, DfStepperStepDirective, DfStepperComponent, DfStepperStepContentDirective], exports: [DfStepperDirective, DfStepperStepDirective, DfStepperComponent, DfStepperStepContentDirective] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfStepperModule, imports: [DfStepperComponent] }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfStepperModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
imports: [DfStepperDirective, DfStepperStepDirective, DfStepperComponent, DfStepperStepContentDirective],
|
|
14
|
+
exports: [DfStepperDirective, DfStepperStepDirective, DfStepperComponent, DfStepperStepContentDirective]
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc3RlcHBlci9zdGVwcGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQU12RixNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsWUFIaEIsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsNkJBQTZCLGFBQzdGLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLDZCQUE2QjsrR0FFNUYsZUFBZSxZQUg0QixrQkFBa0I7OzJGQUc3RCxlQUFlO2tCQUozQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLDZCQUE2QixDQUFDO29CQUN4RyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSw2QkFBNkIsQ0FBQztpQkFDekciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGZTdGVwcGVyRGlyZWN0aXZlLCBEZlN0ZXBwZXJTdGVwRGlyZWN0aXZlfSBmcm9tICcuL3N0ZXBwZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IERmU3RlcHBlckNvbXBvbmVudCwgRGZTdGVwcGVyU3RlcENvbnRlbnREaXJlY3RpdmV9IGZyb20gJy4vc3RlcHBlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbRGZTdGVwcGVyRGlyZWN0aXZlLCBEZlN0ZXBwZXJTdGVwRGlyZWN0aXZlLCBEZlN0ZXBwZXJDb21wb25lbnQsIERmU3RlcHBlclN0ZXBDb250ZW50RGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0RmU3RlcHBlckRpcmVjdGl2ZSwgRGZTdGVwcGVyU3RlcERpcmVjdGl2ZSwgRGZTdGVwcGVyQ29tcG9uZW50LCBEZlN0ZXBwZXJTdGVwQ29udGVudERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRGZTdGVwcGVyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DfStepperService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.setFocus = false;
|
|
7
|
+
this._stepperState$ = new BehaviorSubject({
|
|
8
|
+
steps: [],
|
|
9
|
+
active: 0,
|
|
10
|
+
isLinear: false,
|
|
11
|
+
isInline: false,
|
|
12
|
+
isVertical: false
|
|
13
|
+
});
|
|
14
|
+
this._state = {
|
|
15
|
+
steps: [],
|
|
16
|
+
active: 0,
|
|
17
|
+
isLinear: false,
|
|
18
|
+
isInline: false,
|
|
19
|
+
isVertical: false
|
|
20
|
+
};
|
|
21
|
+
this._completedLabel = 'Completed';
|
|
22
|
+
this._warningLabel = 'Warning';
|
|
23
|
+
this._stepperAriaLabel = 'Stepper';
|
|
24
|
+
}
|
|
25
|
+
get stepperState$() {
|
|
26
|
+
return this._stepperState$.asObservable();
|
|
27
|
+
}
|
|
28
|
+
// initState must be used to push new Steps to the service
|
|
29
|
+
get state() {
|
|
30
|
+
return this._state;
|
|
31
|
+
}
|
|
32
|
+
dispatchStepperState() {
|
|
33
|
+
this._stepperState$.next(this._state);
|
|
34
|
+
}
|
|
35
|
+
updateStepperState() {
|
|
36
|
+
this._state = this.normalizeState(this._state);
|
|
37
|
+
this.dispatchStepperState();
|
|
38
|
+
}
|
|
39
|
+
// API
|
|
40
|
+
/**
|
|
41
|
+
* Use this to init the list of Elements from your stepper
|
|
42
|
+
*
|
|
43
|
+
* Here we are not deep copying the array --> the function will change it
|
|
44
|
+
*/
|
|
45
|
+
initStepperState(state) {
|
|
46
|
+
// normalize the steps here
|
|
47
|
+
this._state = this.normalizeState(state);
|
|
48
|
+
this.dispatchStepperState();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Use this to normalize the state of the stepper (completed, warning, current, future)
|
|
52
|
+
* @param state
|
|
53
|
+
* @returns
|
|
54
|
+
*/
|
|
55
|
+
normalizeState(state) {
|
|
56
|
+
const stepsList = [];
|
|
57
|
+
for (let i = 0; i < state.steps.length; i++) {
|
|
58
|
+
if (state.steps[i].warning) {
|
|
59
|
+
stepsList.push({ ...state.steps[i], type: 'warning' });
|
|
60
|
+
}
|
|
61
|
+
else if (i === state.active) {
|
|
62
|
+
stepsList.push({ ...state.steps[i], type: 'current' });
|
|
63
|
+
}
|
|
64
|
+
else if (state.steps[i].completed) {
|
|
65
|
+
stepsList.push({ ...state.steps[i], type: 'completed' });
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
stepsList.push({ ...state.steps[i], type: 'future' });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return { ...state, steps: stepsList };
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Internal to get the stepper aria label in the template
|
|
75
|
+
*/
|
|
76
|
+
get stepperAriaLabel() {
|
|
77
|
+
return this._stepperAriaLabel;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Use this to set the stepper aria label (i18n)
|
|
81
|
+
*/
|
|
82
|
+
set stepperAriaLabel(label) {
|
|
83
|
+
this._stepperAriaLabel = label;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Internal to get the completed label in the template
|
|
87
|
+
*/
|
|
88
|
+
get completedLabel() {
|
|
89
|
+
return this._completedLabel;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Internal to get the waring label in the template
|
|
93
|
+
*/
|
|
94
|
+
get warningLabel() {
|
|
95
|
+
return this._warningLabel;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Use this to set the completed label (i18n)
|
|
99
|
+
*/
|
|
100
|
+
set completedLabel(label) {
|
|
101
|
+
this._completedLabel = label;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Use this to set the warning label (i18n)
|
|
105
|
+
*/
|
|
106
|
+
set warningLabel(label) {
|
|
107
|
+
this._warningLabel = label;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* TODO make it customizable
|
|
111
|
+
* @param index - index of the step
|
|
112
|
+
* @returns - string of the step number to display
|
|
113
|
+
*/
|
|
114
|
+
getStepNumberLabel(index) {
|
|
115
|
+
return `${index + 1}`;
|
|
116
|
+
}
|
|
117
|
+
resetFocus() {
|
|
118
|
+
this.setFocus = false;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
*
|
|
122
|
+
* @param isLinear - true if the stepper is linear
|
|
123
|
+
*/
|
|
124
|
+
setLinear(isLinear) {
|
|
125
|
+
this._state.isLinear = isLinear;
|
|
126
|
+
this.dispatchStepperState();
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
*
|
|
130
|
+
* @param isInline - true if the stepper is inline
|
|
131
|
+
*/
|
|
132
|
+
setInline(isInline) {
|
|
133
|
+
this._state.isInline = isInline;
|
|
134
|
+
this.dispatchStepperState();
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
*
|
|
138
|
+
* @param index - index of the step to select start at 0
|
|
139
|
+
*/
|
|
140
|
+
selectStep(index) {
|
|
141
|
+
if (index < 0 || index >= this._state.steps.length) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
this._state.active = index;
|
|
145
|
+
this.updateStepperState();
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Same as selectStep but with focus on the step selected
|
|
149
|
+
* @param index - index of the step to select start at 0
|
|
150
|
+
*/
|
|
151
|
+
selectWithFocus(index) {
|
|
152
|
+
if (index < 0 || index >= this._state.steps.length) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
this.setFocus = true;
|
|
156
|
+
this.selectStep(index);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
*
|
|
160
|
+
* @param index - index of the step to complete start at 0
|
|
161
|
+
*/
|
|
162
|
+
completeStep(index) {
|
|
163
|
+
if (index < 0 || index >= this._state.steps.length) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
this._state.steps[index].completed = true;
|
|
167
|
+
this._state.steps[index].warning = false;
|
|
168
|
+
this.updateStepperState();
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
*
|
|
172
|
+
* @param index - index of the step to complete start at 0
|
|
173
|
+
*/
|
|
174
|
+
completeStepAndGoNext(index) {
|
|
175
|
+
this.completeStep(index);
|
|
176
|
+
this.selectStep(index + 1);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Attention if the step was completed it will be uncompleted after.
|
|
180
|
+
* @param index - index of the step to make Warning start at 0
|
|
181
|
+
* @param warningLabel - label to display in the warning by default it will take the warningLabel if it exists or the label
|
|
182
|
+
*/
|
|
183
|
+
makeWarning(index, warningLabel) {
|
|
184
|
+
if (index < 0 || index >= this._state.steps.length) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
this._state.steps[index].warning = true;
|
|
188
|
+
this._state.steps[index].completed = false;
|
|
189
|
+
this._state.steps[index].warningLabel = warningLabel
|
|
190
|
+
? warningLabel
|
|
191
|
+
: this._state.steps[index].warningLabel
|
|
192
|
+
? this._state.steps[index].warningLabel
|
|
193
|
+
: this._state.steps[index].label;
|
|
194
|
+
this.updateStepperState();
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
*
|
|
198
|
+
* @param index - index of the step to remove Warning start at 0
|
|
199
|
+
*/
|
|
200
|
+
removeWarning(index) {
|
|
201
|
+
if (index < 0 || index >= this._state.steps.length) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
this._state.steps[index].warning = false;
|
|
205
|
+
this.updateStepperState();
|
|
206
|
+
}
|
|
207
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfStepperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
208
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfStepperService }); }
|
|
209
|
+
}
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfStepperService, decorators: [{
|
|
211
|
+
type: Injectable
|
|
212
|
+
}] });
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3N0ZXBwZXIvc3RlcHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFnQ25ELE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFRSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ0EsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBMkI7WUFDOUUsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsQ0FBQztZQUNULFFBQVEsRUFBRSxLQUFLO1lBQ2YsUUFBUSxFQUFFLEtBQUs7WUFDZixVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFDLENBQUM7UUFDSyxXQUFNLEdBQTZCO1lBQ3pDLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLENBQUM7WUFDVCxRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxLQUFLO1lBQ2YsVUFBVSxFQUFFLEtBQUs7U0FDbEIsQ0FBQztRQUNNLG9CQUFlLEdBQUcsV0FBVyxDQUFDO1FBQzlCLGtCQUFhLEdBQUcsU0FBUyxDQUFDO1FBQzFCLHNCQUFpQixHQUFHLFNBQVMsQ0FBQztLQXlNdkM7SUF2TUMsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFDRCwwREFBMEQ7SUFDMUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hD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LElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQzs4R0ExTlUsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBEZlN0ZXBwZXJTdGVwIHtcbiAgd2FybmluZzogYm9vbGVhbjtcbiAgY29tcGxldGVkOiBib29sZWFuO1xuICBsYWJlbDogc3RyaW5nO1xuICBhcmlhQ29udHJvbDogc3RyaW5nO1xuICB3YXJuaW5nTGFiZWw/OiBzdHJpbmc7XG4gIG9wdGlvbmFsTGFiZWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIERmU3RlcFR5cGUgPSAnd2FybmluZycgfCAnY3VycmVudCcgfCAnY29tcGxldGVkJyB8ICdmdXR1cmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERmU3RlcHBlck5vcm1hbGl6ZWRTdGVwIGV4dGVuZHMgRGZTdGVwcGVyU3RlcCB7XG4gIHR5cGU6IERmU3RlcFR5cGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIERmU3RlcHBlclN0YXRlIHtcbiAgc3RlcHM6IERmU3RlcHBlclN0ZXBbXTtcbiAgYWN0aXZlOiBudW1iZXI7XG4gIGlzTGluZWFyOiBib29sZWFuO1xuICBpc0lubGluZTogYm9vbGVhbjtcbiAgaXNWZXJ0aWNhbDogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGZTdGVwcGVyTm9ybWFsaXplZFN0YXRlIHtcbiAgc3RlcHM6IERmU3RlcHBlck5vcm1hbGl6ZWRTdGVwW107XG4gIGFjdGl2ZTogbnVtYmVyO1xuICBpc0xpbmVhcjogYm9vbGVhbjtcbiAgaXNJbmxpbmU6IGJvb2xlYW47XG4gIGlzVmVydGljYWw6IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZlN0ZXBwZXJTZXJ2aWNlIHtcbiAgc2V0Rm9jdXMgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RlcHBlclN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGZTdGVwcGVyTm9ybWFsaXplZFN0YXRlPih7XG4gICAgc3RlcHM6IFtdLFxuICAgIGFjdGl2ZTogMCxcbiAgICBpc0xpbmVhcjogZmFsc2UsXG4gICAgaXNJbmxpbmU6IGZhbHNlLFxuICAgIGlzVmVydGljYWw6IGZhbHNlXG4gIH0pO1xuICBwcml2YXRlIF9zdGF0ZTogRGZTdGVwcGVyTm9ybWFsaXplZFN0YXRlID0ge1xuICAgIHN0ZXBzOiBbXSxcbiAgICBhY3RpdmU6IDAsXG4gICAgaXNMaW5lYXI6IGZhbHNlLFxuICAgIGlzSW5saW5lOiBmYWxzZSxcbiAgICBpc1ZlcnRpY2FsOiBmYWxzZVxuICB9O1xuICBwcml2YXRlIF9jb21wbGV0ZWRMYWJlbCA9ICdDb21wbGV0ZWQnO1xuICBwcml2YXRlIF93YXJuaW5nTGFiZWwgPSAnV2FybmluZyc7XG4gIHByaXZhdGUgX3N0ZXBwZXJBcmlhTGFiZWwgPSAnU3RlcHBlcic7XG5cbiAgZ2V0IHN0ZXBwZXJTdGF0ZSQoKTogT2JzZXJ2YWJsZTxEZlN0ZXBwZXJOb3JtYWxpemVkU3RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RlcHBlclN0YXRlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuICAvLyBpbml0U3RhdGUgbXVzdCBiZSB1c2VkIHRvIHB1c2ggbmV3IFN0ZXBzIHRvIHRoZSBzZXJ2aWNlXG4gIGdldCBzdGF0ZSgpOiBEZlN0ZXBwZXJOb3JtYWxpemVkU3RhdGUge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGF0Y2hTdGVwcGVyU3RhdGUoKSB7XG4gICAgdGhpcy5fc3RlcHBlclN0YXRlJC5uZXh0KHRoaXMuX3N0YXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RlcHBlclN0YXRlKCkge1xuICAgIHRoaXMuX3N0YXRlID0gdGhpcy5ub3JtYWxpemVTdGF0ZSh0aGlzLl9zdGF0ZSBhcyBEZlN0ZXBwZXJTdGF0ZSk7XG4gICAgdGhpcy5kaXNwYXRjaFN0ZXBwZXJTdGF0ZSgpO1xuICB9XG5cbiAgLy8gQVBJXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBpbml0IHRoZSBsaXN0IG9mIEVsZW1lbnRzIGZyb20geW91ciBzdGVwcGVyXG4gICAqXG4gICAqIEhlcmUgd2UgYXJlIG5vdCBkZWVwIGNvcHlpbmcgdGhlIGFycmF5IC0tPiB0aGUgZnVuY3Rpb24gd2lsbCBjaGFuZ2UgaXRcbiAgICovXG4gIGluaXRTdGVwcGVyU3RhdGUoc3RhdGU6IERmU3RlcHBlclN0YXRlKSB7XG4gICAgLy8gbm9ybWFsaXplIHRoZSBzdGVwcyBoZXJlXG4gICAgdGhpcy5fc3RhdGUgPSB0aGlzLm5vcm1hbGl6ZVN0YXRlKHN0YXRlKTtcbiAgICB0aGlzLmRpc3BhdGNoU3RlcHBlclN0YXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gbm9ybWFsaXplIHRoZSBzdGF0ZSBvZiB0aGUgc3RlcHBlciAoY29tcGxldGVkLCB3YXJuaW5nLCBjdXJyZW50LCBmdXR1cmUpXG4gICAqIEBwYXJhbSBzdGF0ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgbm9ybWFsaXplU3RhdGUoc3RhdGU6IERmU3RlcHBlclN0YXRlKTogRGZTdGVwcGVyTm9ybWFsaXplZFN0YXRlIHtcbiAgICBjb25zdCBzdGVwc0xpc3Q6IERmU3RlcHBlck5vcm1hbGl6ZWRTdGVwW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0YXRlLnN0ZXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoc3RhdGUuc3RlcHNbaV0ud2FybmluZykge1xuICAgICAgICBzdGVwc0xpc3QucHVzaCh7IC4uLnN0YXRlLnN0ZXBzW2ldLCB0eXBlOiAnd2FybmluZycgfSk7XG4gICAgICB9IGVsc2UgaWYgKGkgPT09IHN0YXRlLmFjdGl2ZSkge1xuICAgICAgICBzdGVwc0xpc3QucHVzaCh7IC4uLnN0YXRlLnN0ZXBzW2ldLCB0eXBlOiAnY3VycmVudCcgfSk7XG4gICAgICB9IGVsc2UgaWYgKHN0YXRlLnN0ZXBzW2ldLmNvbXBsZXRlZCkge1xuICAgICAgICBzdGVwc0xpc3QucHVzaCh7IC4uLnN0YXRlLnN0ZXBzW2ldLCB0eXBlOiAnY29tcGxldGVkJyB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0ZXBzTGlzdC5wdXNoKHsgLi4uc3RhdGUuc3RlcHNbaV0sIHR5cGU6ICdmdXR1cmUnIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyAuLi5zdGF0ZSwgc3RlcHM6IHN0ZXBzTGlzdCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVybmFsIHRvIGdldCB0aGUgc3RlcHBlciBhcmlhIGxhYmVsIGluIHRoZSB0ZW1wbGF0ZVxuICAgKi9cbiAgZ2V0IHN0ZXBwZXJBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RlcHBlckFyaWFMYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBzZXQgdGhlIHN0ZXBwZXIgYXJpYSBsYWJlbCAoaTE4bilcbiAgICovXG4gIHNldCBzdGVwcGVyQXJpYUxhYmVsKGxhYmVsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zdGVwcGVyQXJpYUxhYmVsID0gbGFiZWw7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgdG8gZ2V0IHRoZSBjb21wbGV0ZWQgbGFiZWwgaW4gdGhlIHRlbXBsYXRlXG4gICAqL1xuICBnZXQgY29tcGxldGVkTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcGxldGVkTGFiZWw7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgdG8gZ2V0IHRoZSB3YXJpbmcgbGFiZWwgaW4gdGhlIHRlbXBsYXRlXG4gICAqL1xuICBnZXQgd2FybmluZ0xhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3dhcm5pbmdMYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBzZXQgdGhlIGNvbXBsZXRlZCBsYWJlbCAoaTE4bilcbiAgICovXG4gIHNldCBjb21wbGV0ZWRMYWJlbChsYWJlbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fY29tcGxldGVkTGFiZWwgPSBsYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBzZXQgdGhlIHdhcm5pbmcgbGFiZWwgKGkxOG4pXG4gICAqL1xuICBzZXQgd2FybmluZ0xhYmVsKGxhYmVsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl93YXJuaW5nTGFiZWwgPSBsYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPIG1ha2UgaXQgY3VzdG9taXphYmxlXG4gICAqIEBwYXJhbSBpbmRleCAtIGluZGV4IG9mIHRoZSBzdGVwXG4gICAqIEByZXR1cm5zIC0gc3RyaW5nIG9mIHRoZSBzdGVwIG51bWJlciB0byBkaXNwbGF5XG4gICAqL1xuICBnZXRTdGVwTnVtYmVyTGFiZWwoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2luZGV4ICsgMX1gO1xuICB9XG5cbiAgcmVzZXRGb2N1cygpIHtcbiAgICB0aGlzLnNldEZvY3VzID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGlzTGluZWFyIC0gdHJ1ZSBpZiB0aGUgc3RlcHBlciBpcyBsaW5lYXJcbiAgICovXG4gIHNldExpbmVhcihpc0xpbmVhcjogYm9vbGVhbikge1xuICAgIHRoaXMuX3N0YXRlLmlzTGluZWFyID0gaXNMaW5lYXI7XG4gICAgdGhpcy5kaXNwYXRjaFN0ZXBwZXJTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpc0lubGluZSAtIHRydWUgaWYgdGhlIHN0ZXBwZXIgaXMgaW5saW5lXG4gICAqL1xuICBzZXRJbmxpbmUoaXNJbmxpbmU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zdGF0ZS5pc0lubGluZSA9IGlzSW5saW5lO1xuICAgIHRoaXMuZGlzcGF0Y2hTdGVwcGVyU3RhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggLSBpbmRleCBvZiB0aGUgc3RlcCB0byBzZWxlY3Qgc3RhcnQgYXQgMFxuICAgKi9cbiAgc2VsZWN0U3RlcChpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLl9zdGF0ZS5zdGVwcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc3RhdGUuYWN0aXZlID0gaW5kZXg7XG4gICAgdGhpcy51cGRhdGVTdGVwcGVyU3RhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYW1lIGFzIHNlbGVjdFN0ZXAgYnV0IHdpdGggZm9jdXMgb24gdGhlIHN0ZXAgc2VsZWN0ZWRcbiAgICogQHBhcmFtIGluZGV4IC0gaW5kZXggb2YgdGhlIHN0ZXAgdG8gc2VsZWN0IHN0YXJ0IGF0IDBcbiAgICovXG4gIHNlbGVjdFdpdGhGb2N1cyhpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLl9zdGF0ZS5zdGVwcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZXRGb2N1cyA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RTdGVwKGluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggLSBpbmRleCBvZiB0aGUgc3RlcCB0byBjb21wbGV0ZSBzdGFydCBhdCAwXG4gICAqL1xuICBjb21wbGV0ZVN0ZXAoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fc3RhdGUuc3RlcHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3N0YXRlLnN0ZXBzW2luZGV4XS5jb21wbGV0ZWQgPSB0cnVlO1xuICAgIHRoaXMuX3N0YXRlLnN0ZXBzW2luZGV4XS53YXJuaW5nID0gZmFsc2U7XG4gICAgdGhpcy51cGRhdGVTdGVwcGVyU3RhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggLSBpbmRleCBvZiB0aGUgc3RlcCB0byBjb21wbGV0ZSBzdGFydCBhdCAwXG4gICAqL1xuICBjb21wbGV0ZVN0ZXBBbmRHb05leHQoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY29tcGxldGVTdGVwKGluZGV4KTtcbiAgICB0aGlzLnNlbGVjdFN0ZXAoaW5kZXggKyAxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbnRpb24gaWYgdGhlIHN0ZXAgd2FzIGNvbXBsZXRlZCBpdCB3aWxsIGJlIHVuY29tcGxldGVkIGFmdGVyLlxuICAgKiBAcGFyYW0gaW5kZXggLSBpbmRleCBvZiB0aGUgc3RlcCB0byBtYWtlIFdhcm5pbmcgc3RhcnQgYXQgMFxuICAgKiBAcGFyYW0gd2FybmluZ0xhYmVsIC0gbGFiZWwgdG8gZGlzcGxheSBpbiB0aGUgd2FybmluZyBieSBkZWZhdWx0IGl0IHdpbGwgdGFrZSB0aGUgd2FybmluZ0xhYmVsIGlmIGl0IGV4aXN0cyBvciB0aGUgbGFiZWxcbiAgICovXG4gIG1ha2VXYXJuaW5nKGluZGV4OiBudW1iZXIsIHdhcm5pbmdMYWJlbD86IHN0cmluZykge1xuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fc3RhdGUuc3RlcHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3N0YXRlLnN0ZXBzW2luZGV4XS53YXJuaW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9zdGF0ZS5zdGVwc1tpbmRleF0uY29tcGxldGVkID0gZmFsc2U7XG4gICAgdGhpcy5fc3RhdGUuc3RlcHNbaW5kZXhdLndhcm5pbmdMYWJlbCA9IHdhcm5pbmdMYWJlbFxuICAgICAgPyB3YXJuaW5nTGFiZWxcbiAgICAgIDogdGhpcy5fc3RhdGUuc3RlcHNbaW5kZXhdLndhcm5pbmdMYWJlbFxuICAgICAgPyB0aGlzLl9zdGF0ZS5zdGVwc1tpbmRleF0ud2FybmluZ0xhYmVsXG4gICAgICA6IHRoaXMuX3N0YXRlLnN0ZXBzW2luZGV4XS5sYWJlbDtcbiAgICB0aGlzLnVwZGF0ZVN0ZXBwZXJTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpbmRleCAtIGluZGV4IG9mIHRoZSBzdGVwIHRvIHJlbW92ZSBXYXJuaW5nIHN0YXJ0IGF0IDBcbiAgICovXG4gIHJlbW92ZVdhcm5pbmcoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fc3RhdGUuc3RlcHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3N0YXRlLnN0ZXBzW2luZGV4XS53YXJuaW5nID0gZmFsc2U7XG4gICAgdGhpcy51cGRhdGVTdGVwcGVyU3RhdGUoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Directive } from '@angular/core';
|
|
2
|
-
import { hasOverflow } from '../../utils/html-element-helper';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
5
4
|
/**
|
|
@@ -15,7 +14,10 @@ export class DfTooltipTruncateDirective {
|
|
|
15
14
|
this.renderer.addClass(this.elementRef.nativeElement, 'text-truncate');
|
|
16
15
|
}
|
|
17
16
|
ngDoCheck() {
|
|
18
|
-
this.tooltip.disableTooltip = !hasOverflow(this.elementRef.nativeElement);
|
|
17
|
+
this.tooltip.disableTooltip = !this.hasOverflow(this.elementRef.nativeElement);
|
|
18
|
+
}
|
|
19
|
+
hasOverflow(element) {
|
|
20
|
+
return element?.offsetHeight < element?.scrollHeight || element?.offsetWidth < element?.scrollWidth;
|
|
19
21
|
}
|
|
20
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfTooltipTruncateDirective, deps: [{ token: i1.NgbTooltip }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
23
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DfTooltipTruncateDirective, isStandalone: true, selector: "[dfTooltipTruncate]", exportAs: ["dfTooltipTruncate"], ngImport: i0 }); }
|
|
@@ -28,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImpor
|
|
|
28
30
|
standalone: true
|
|
29
31
|
}]
|
|
30
32
|
}], ctorParameters: function () { return [{ type: i1.NgbTooltip }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcFRydW5jYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci90b29sdGlwL3RydW5jYXRlL3Rvb2x0aXBUcnVuY2F0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBMEMsTUFBTSxlQUFlLENBQUM7OztBQUdsRjs7R0FFRztBQU1ILE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFDbUIsT0FBbUIsRUFDbkIsVUFBbUMsRUFDbkMsUUFBbUI7UUFGbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQ25DLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQW9CO1FBQ3RDLE9BQU8sT0FBTyxFQUFFLFlBQVksR0FBRyxPQUFPLEVBQUUsWUFBWSxJQUFJLE9BQU8sRUFBRSxXQUFXLEdBQUcsT0FBTyxFQUFFLFdBQVcsQ0FBQztJQUN0RyxDQUFDOzhHQWpCVSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIERvQ2hlY2ssIEVsZW1lbnRSZWYsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JUb29sdGlwIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG4vKipcbiAqIE15IGRmVG9vbHRpcFRydW5jYXRlIGRpcmVjdGl2ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgZXhwb3J0QXM6ICdkZlRvb2x0aXBUcnVuY2F0ZScsXG4gIHNlbGVjdG9yOiAnW2RmVG9vbHRpcFRydW5jYXRlXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGZUb29sdGlwVHJ1bmNhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIERvQ2hlY2sge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2x0aXA6IE5nYlRvb2x0aXAsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0ZXh0LXRydW5jYXRlJyk7XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgdGhpcy50b29sdGlwLmRpc2FibGVUb29sdGlwID0gIXRoaXMuaGFzT3ZlcmZsb3codGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNPdmVyZmxvdyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBlbGVtZW50Py5vZmZzZXRIZWlnaHQgPCBlbGVtZW50Py5zY3JvbGxIZWlnaHQgfHwgZWxlbWVudD8ub2Zmc2V0V2lkdGggPCBlbGVtZW50Py5zY3JvbGxXaWR0aDtcbiAgfVxufVxuIl19
|