@decaf-ts/for-angular 0.0.25 → 0.0.27
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/fesm2022/decaf-ts-for-angular.mjs +1486 -1505
- package/fesm2022/decaf-ts-for-angular.mjs.map +1 -1
- package/index.d.ts +7482 -3
- package/package.json +15 -18
- package/components/component-renderer/component-renderer.component.d.ts +0 -278
- package/components/crud-field/crud-field.component.d.ts +0 -611
- package/components/crud-form/constants.d.ts +0 -5
- package/components/crud-form/crud-form.component.d.ts +0 -288
- package/components/crud-form/types.d.ts +0 -17
- package/components/empty-state/empty-state.component.d.ts +0 -300
- package/components/fieldset/fieldset.component.d.ts +0 -555
- package/components/filter/filter.component.d.ts +0 -514
- package/components/for-angular-components.module.d.ts +0 -20
- package/components/index.d.ts +0 -16
- package/components/layout/layout.component.d.ts +0 -110
- package/components/list/list.component.d.ts +0 -848
- package/components/list-item/list-item.component.d.ts +0 -390
- package/components/model-renderer/model-renderer.component.d.ts +0 -97
- package/components/pagination/constants.d.ts +0 -7
- package/components/pagination/pagination.component.d.ts +0 -264
- package/components/searchbar/searchbar.component.d.ts +0 -407
- package/components/stepped-form/stepped-form.component.d.ts +0 -255
- package/directives/collapsable.directive.d.ts +0 -9
- package/directives/index.d.ts +0 -1
- package/engine/DynamicModule.d.ts +0 -17
- package/engine/NgxBaseComponent.d.ts +0 -541
- package/engine/NgxCrudFormField.d.ts +0 -123
- package/engine/NgxFormService.d.ts +0 -601
- package/engine/NgxRenderingEngine.d.ts +0 -282
- package/engine/ValidatorFactory.d.ts +0 -15
- package/engine/constants.d.ts +0 -168
- package/engine/decorators.d.ts +0 -25
- package/engine/index.d.ts +0 -18
- package/engine/interfaces.d.ts +0 -271
- package/engine/types.d.ts +0 -200
- package/esm2022/components/component-renderer/component-renderer.component.mjs +0 -321
- package/esm2022/components/crud-field/crud-field.component.mjs +0 -518
- package/esm2022/components/crud-form/constants.mjs +0 -14
- package/esm2022/components/crud-form/crud-form.component.mjs +0 -259
- package/esm2022/components/crud-form/types.mjs +0 -2
- package/esm2022/components/empty-state/empty-state.component.mjs +0 -345
- package/esm2022/components/fieldset/fieldset.component.mjs +0 -677
- package/esm2022/components/filter/filter.component.mjs +0 -700
- package/esm2022/components/for-angular-components.module.mjs +0 -84
- package/esm2022/components/index.mjs +0 -20
- package/esm2022/components/layout/layout.component.mjs +0 -150
- package/esm2022/components/list/list.component.mjs +0 -1238
- package/esm2022/components/list-item/list-item.component.mjs +0 -405
- package/esm2022/components/model-renderer/model-renderer.component.mjs +0 -144
- package/esm2022/components/pagination/constants.mjs +0 -2
- package/esm2022/components/pagination/pagination.component.mjs +0 -321
- package/esm2022/components/searchbar/searchbar.component.mjs +0 -491
- package/esm2022/components/stepped-form/stepped-form.component.mjs +0 -306
- package/esm2022/decaf-ts-for-angular.mjs +0 -5
- package/esm2022/directives/collapsable.directive.mjs +0 -29
- package/esm2022/directives/index.mjs +0 -2
- package/esm2022/engine/DynamicModule.mjs +0 -18
- package/esm2022/engine/NgxBaseComponent.mjs +0 -541
- package/esm2022/engine/NgxCrudFormField.mjs +0 -137
- package/esm2022/engine/NgxFormService.mjs +0 -917
- package/esm2022/engine/NgxRenderingEngine.mjs +0 -376
- package/esm2022/engine/ValidatorFactory.mjs +0 -106
- package/esm2022/engine/constants.mjs +0 -170
- package/esm2022/engine/decorators.mjs +0 -38
- package/esm2022/engine/index.mjs +0 -19
- package/esm2022/engine/interfaces.mjs +0 -4
- package/esm2022/engine/types.mjs +0 -2
- package/esm2022/for-angular-common.module.mjs +0 -84
- package/esm2022/helpers/index.mjs +0 -13
- package/esm2022/helpers/utils.mjs +0 -436
- package/esm2022/i18n/Loader.mjs +0 -86
- package/esm2022/i18n/data/en.json +0 -85
- package/esm2022/public-apis.mjs +0 -15
- package/for-angular-common.module.d.ts +0 -50
- package/helpers/index.d.ts +0 -12
- package/helpers/utils.d.ts +0 -279
- package/i18n/Loader.d.ts +0 -43
- package/public-apis.d.ts +0 -14
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
3
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { IonButton, IonIcon, IonSkeletonText, IonText } from '@ionic/angular/standalone';
|
|
5
|
-
import { arrowForwardOutline, arrowBackOutline } from 'ionicons/icons';
|
|
6
|
-
import { addIcons } from 'ionicons';
|
|
7
|
-
import { OperationKeys } from '@decaf-ts/db-decorators';
|
|
8
|
-
import { Dynamic, EventConstants, NgxFormService } from '../../engine';
|
|
9
|
-
import { ComponentRendererComponent } from '../component-renderer/component-renderer.component';
|
|
10
|
-
import { ModelRendererComponent } from '../model-renderer/model-renderer.component';
|
|
11
|
-
import { timer } from 'rxjs';
|
|
12
|
-
import { getLocaleContext } from '../../i18n/Loader';
|
|
13
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "@angular/forms";
|
|
16
|
-
let SteppedFormComponent = class SteppedFormComponent {
|
|
17
|
-
/**
|
|
18
|
-
* @description Creates an instance of SteppedFormComponent.
|
|
19
|
-
* @summary Initializes a new SteppedFormComponent instance and registers the required
|
|
20
|
-
* Ionic icons for navigation buttons (forward and back arrows).
|
|
21
|
-
*
|
|
22
|
-
* @memberOf SteppedFormComponent
|
|
23
|
-
*/
|
|
24
|
-
constructor() {
|
|
25
|
-
/**
|
|
26
|
-
* @description Number of pages in the stepped form.
|
|
27
|
-
* @summary Represents the total number of steps/pages in the multi-step form.
|
|
28
|
-
* This value is automatically calculated based on the page properties of the children
|
|
29
|
-
* or can be explicitly set. Each page represents a logical group of form fields.
|
|
30
|
-
*
|
|
31
|
-
* @type {number}
|
|
32
|
-
* @default 1
|
|
33
|
-
* @memberOf SteppedFormComponent
|
|
34
|
-
*/
|
|
35
|
-
this.pages = 1;
|
|
36
|
-
/**
|
|
37
|
-
* @description The CRUD operation type for this form.
|
|
38
|
-
* @summary Defines the type of operation being performed (CREATE, READ, UPDATE, DELETE).
|
|
39
|
-
* This affects form behavior, validation rules, and field accessibility. For example,
|
|
40
|
-
* READ operations might disable form fields, while CREATE operations enable all fields.
|
|
41
|
-
*
|
|
42
|
-
* @type {CrudOperations}
|
|
43
|
-
* @default OperationKeys.CREATE
|
|
44
|
-
* @memberOf SteppedFormComponent
|
|
45
|
-
*/
|
|
46
|
-
this.operation = OperationKeys.CREATE;
|
|
47
|
-
/**
|
|
48
|
-
* @description The initial page to display when the form loads.
|
|
49
|
-
* @summary Specifies which page of the multi-step form should be shown first.
|
|
50
|
-
* This allows starting the form at any step, useful for scenarios like editing
|
|
51
|
-
* existing data where you might want to jump to a specific section.
|
|
52
|
-
*
|
|
53
|
-
* @type {number}
|
|
54
|
-
* @default 1
|
|
55
|
-
* @memberOf SteppedFormComponent
|
|
56
|
-
*/
|
|
57
|
-
this.startPage = 1;
|
|
58
|
-
/**
|
|
59
|
-
* @description Array of UI model metadata for the currently active page.
|
|
60
|
-
* @summary Contains only the UI model metadata for fields that should be displayed
|
|
61
|
-
* on the currently active page. This is a filtered subset of the children array,
|
|
62
|
-
* updated whenever the user navigates between pages.
|
|
63
|
-
*
|
|
64
|
-
* @type {UIModelMetadata[] | undefined}
|
|
65
|
-
* @memberOf SteppedFormComponent
|
|
66
|
-
*/
|
|
67
|
-
this.activeChildren = undefined;
|
|
68
|
-
/**
|
|
69
|
-
* @description FormGroup for the currently active page.
|
|
70
|
-
* @summary The FormGroup instance that manages form controls and validation
|
|
71
|
-
* for the current page only. This is extracted from the main formGroup
|
|
72
|
-
* when using FormArray structure.
|
|
73
|
-
*
|
|
74
|
-
* @type {FormGroup | undefined}
|
|
75
|
-
* @memberOf SteppedFormComponent
|
|
76
|
-
*/
|
|
77
|
-
this.activeFormGroup = undefined;
|
|
78
|
-
/**
|
|
79
|
-
* @description The currently active page number.
|
|
80
|
-
* @summary Tracks which page of the multi-step form is currently being displayed.
|
|
81
|
-
* This property is updated as users navigate through the form steps using
|
|
82
|
-
* the next/back buttons or programmatic navigation.
|
|
83
|
-
*
|
|
84
|
-
* @type {number}
|
|
85
|
-
* @memberOf SteppedFormComponent
|
|
86
|
-
*/
|
|
87
|
-
this.activePage = 1;
|
|
88
|
-
/**
|
|
89
|
-
* @description Array representing the structure of pages.
|
|
90
|
-
* @summary Contains metadata about each page, including page numbers and indices.
|
|
91
|
-
* This array is built during initialization to organize the form fields into
|
|
92
|
-
* logical pages and provide navigation structure.
|
|
93
|
-
*
|
|
94
|
-
* @type {UIModelMetadata[]}
|
|
95
|
-
* @memberOf SteppedFormComponent
|
|
96
|
-
*/
|
|
97
|
-
this.pagesArray = [];
|
|
98
|
-
/**
|
|
99
|
-
* @description Event emitter for form submission.
|
|
100
|
-
* @summary Emits events when the form is submitted, typically on the last page
|
|
101
|
-
* when all validation passes. The emitted event contains the form data and
|
|
102
|
-
* event type information for parent components to handle.
|
|
103
|
-
*
|
|
104
|
-
* @type {EventEmitter<BaseCustomEvent>}
|
|
105
|
-
* @memberOf SteppedFormComponent
|
|
106
|
-
*/
|
|
107
|
-
this.submitEvent = new EventEmitter();
|
|
108
|
-
addIcons({ arrowForwardOutline, arrowBackOutline });
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* @description Initializes the component after Angular first displays the data-bound properties.
|
|
112
|
-
* @summary Sets up the stepped form by organizing children into pages, calculating the total
|
|
113
|
-
* number of pages, and initializing the active page. This method processes the UI model metadata
|
|
114
|
-
* to create a logical page structure and ensures proper page assignments for all form fields.
|
|
115
|
-
*
|
|
116
|
-
* @mermaid
|
|
117
|
-
* sequenceDiagram
|
|
118
|
-
* participant A as Angular Lifecycle
|
|
119
|
-
* participant S as SteppedFormComponent
|
|
120
|
-
* participant F as Form Service
|
|
121
|
-
*
|
|
122
|
-
* A->>S: ngOnInit()
|
|
123
|
-
* S->>S: Set activePage = startPage
|
|
124
|
-
* S->>S: Process children into pagesArray
|
|
125
|
-
* S->>S: Calculate total pages
|
|
126
|
-
* S->>S: Assign page props to children
|
|
127
|
-
* S->>S: getCurrentFormGroup(activePage)
|
|
128
|
-
* S->>F: Extract FormGroup for active page
|
|
129
|
-
* F-->>S: Return activeFormGroup
|
|
130
|
-
*
|
|
131
|
-
* @memberOf SteppedFormComponent
|
|
132
|
-
*/
|
|
133
|
-
ngOnInit() {
|
|
134
|
-
if (!this.locale)
|
|
135
|
-
this.locale = getLocaleContext("SteppedFormComponent");
|
|
136
|
-
this.activePage = this.startPage;
|
|
137
|
-
this.pagesArray = this.children.reduce((acc, curr, index) => {
|
|
138
|
-
const page = curr.props?.['page'] || index + 1;
|
|
139
|
-
if (!acc[page])
|
|
140
|
-
acc[page] = [];
|
|
141
|
-
acc[page].push({ index: page });
|
|
142
|
-
return acc;
|
|
143
|
-
}, []).filter(Boolean);
|
|
144
|
-
this.pages = this.pagesArray.length;
|
|
145
|
-
this.children = [...this.children.map((c) => {
|
|
146
|
-
if (!c.props)
|
|
147
|
-
c.props = {};
|
|
148
|
-
const page = c.props['page'] || 1;
|
|
149
|
-
// prevent page overflow
|
|
150
|
-
c.props['page'] = page > this.pages ? this.pages : page;
|
|
151
|
-
return c;
|
|
152
|
-
})];
|
|
153
|
-
this.getCurrentFormGroup(this.activePage);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* @description Cleanup method called when the component is destroyed.
|
|
157
|
-
* @summary Unsubscribes from any active timer subscriptions to prevent memory leaks.
|
|
158
|
-
* This is part of Angular's component lifecycle and ensures proper resource cleanup.
|
|
159
|
-
*
|
|
160
|
-
* @memberOf SteppedFormComponent
|
|
161
|
-
*/
|
|
162
|
-
ngOnDestroy() {
|
|
163
|
-
if (this.timerSubscription)
|
|
164
|
-
this.timerSubscription.unsubscribe();
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* @description Handles navigation to the next page or form submission.
|
|
168
|
-
* @summary Validates the current page's form fields and either navigates to the next page
|
|
169
|
-
* or submits the entire form if on the last page. Form validation must pass before
|
|
170
|
-
* proceeding. On successful submission, emits a submit event with form data.
|
|
171
|
-
*
|
|
172
|
-
* @param {boolean} lastPage - Whether this is the last page of the form
|
|
173
|
-
* @return {void}
|
|
174
|
-
*
|
|
175
|
-
* @mermaid
|
|
176
|
-
* sequenceDiagram
|
|
177
|
-
* participant U as User
|
|
178
|
-
* participant S as SteppedFormComponent
|
|
179
|
-
* participant F as Form Service
|
|
180
|
-
* participant P as Parent Component
|
|
181
|
-
*
|
|
182
|
-
* U->>S: Click Next/Submit
|
|
183
|
-
* S->>F: validateFields(activeFormGroup)
|
|
184
|
-
* F-->>S: Return validation result
|
|
185
|
-
* alt Not last page and valid
|
|
186
|
-
* S->>S: activePage++
|
|
187
|
-
* S->>S: getCurrentFormGroup(activePage)
|
|
188
|
-
* else Last page and valid
|
|
189
|
-
* S->>F: getFormData(formGroup)
|
|
190
|
-
* F-->>S: Return form data
|
|
191
|
-
* S->>P: submitEvent.emit({data, name: SUBMIT})
|
|
192
|
-
* end
|
|
193
|
-
*
|
|
194
|
-
* @memberOf SteppedFormComponent
|
|
195
|
-
*/
|
|
196
|
-
handleNext(lastPage = false) {
|
|
197
|
-
const isValid = NgxFormService.validateFields(this.activeFormGroup);
|
|
198
|
-
if (!lastPage) {
|
|
199
|
-
if (isValid) {
|
|
200
|
-
this.activePage = this.activePage + 1;
|
|
201
|
-
this.getCurrentFormGroup(this.activePage);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
if (isValid) {
|
|
206
|
-
const data = Object.assign({}, ...Object.values(NgxFormService.getFormData(this.formGroup)));
|
|
207
|
-
this.submitEvent.emit({
|
|
208
|
-
data,
|
|
209
|
-
name: EventConstants.SUBMIT,
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* @description Handles navigation to the previous page.
|
|
216
|
-
* @summary Moves the user back to the previous page in the stepped form.
|
|
217
|
-
* This method decrements the active page number and updates the form
|
|
218
|
-
* group and children to display the previous page's content.
|
|
219
|
-
*
|
|
220
|
-
* @return {void}
|
|
221
|
-
*
|
|
222
|
-
* @mermaid
|
|
223
|
-
* sequenceDiagram
|
|
224
|
-
* participant U as User
|
|
225
|
-
* participant S as SteppedFormComponent
|
|
226
|
-
*
|
|
227
|
-
* U->>S: Click Back
|
|
228
|
-
* S->>S: activePage--
|
|
229
|
-
* S->>S: getCurrentFormGroup(activePage)
|
|
230
|
-
* Note over S: Update active form and children
|
|
231
|
-
*
|
|
232
|
-
* @memberOf SteppedFormComponent
|
|
233
|
-
*/
|
|
234
|
-
handleBack() {
|
|
235
|
-
this.activePage = this.activePage - 1;
|
|
236
|
-
this.getCurrentFormGroup(this.activePage);
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* @description Updates the active form group and children for the specified page.
|
|
240
|
-
* @summary Extracts the FormGroup for the given page from the FormArray and filters
|
|
241
|
-
* the children to show only fields belonging to that page. Uses a timer to ensure
|
|
242
|
-
* proper Angular change detection when updating the activeChildren.
|
|
243
|
-
*
|
|
244
|
-
* @param {number} page - The page number to activate
|
|
245
|
-
* @return {void}
|
|
246
|
-
*
|
|
247
|
-
* @private
|
|
248
|
-
* @mermaid
|
|
249
|
-
* sequenceDiagram
|
|
250
|
-
* participant S as SteppedFormComponent
|
|
251
|
-
* participant F as FormArray
|
|
252
|
-
* participant T as Timer
|
|
253
|
-
*
|
|
254
|
-
* S->>F: Extract FormGroup at index (page - 1)
|
|
255
|
-
* F-->>S: Return page FormGroup
|
|
256
|
-
* S->>S: Set activeChildren = undefined
|
|
257
|
-
* S->>T: timer(10).subscribe()
|
|
258
|
-
* T-->>S: Filter children for active page
|
|
259
|
-
* S->>S: Set activeChildren
|
|
260
|
-
*
|
|
261
|
-
* @memberOf SteppedFormComponent
|
|
262
|
-
*/
|
|
263
|
-
getCurrentFormGroup(page) {
|
|
264
|
-
this.activeFormGroup = this.formGroup.at(page - 1);
|
|
265
|
-
this.activeChildren = undefined;
|
|
266
|
-
this.timerSubscription = timer(10).subscribe(() => {
|
|
267
|
-
this.activeChildren = this.children.filter(c => c.props?.['page'] === page);
|
|
268
|
-
console.log(this.activeChildren);
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SteppedFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
272
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SteppedFormComponent, isStandalone: true, selector: "ngx-decaf-stepped-form", inputs: { locale: "locale", pages: "pages", operation: "operation", startPage: "startPage", children: "children", formGroup: "formGroup" }, outputs: { submitEvent: "submitEvent" }, ngImport: i0, template: "<form class=\"dcf-steped-form\" novalidate>\n <div class=\"dcf-page-steps\">\n <div>\n @for(page of pagesArray; track $index;) {\n <div [class.dcf-active]=\"activePage === $index + 1\" [class.dcf-passed]=\"($index + 1) < activePage\">{{ $index + 1 }}</div>\n }\n </div>\n </div>\n @if(formGroup) {\n @for(child of activeChildren; track $index) {\n <ngx-decaf-component-renderer\n [tag]=\"child?.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [children]=\"child?.children || []\"\n [globals]=\"{props: child.props}\"\n />\n }\n } @else {\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n <br />\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n }\n\n <div class=\"dcf-buttons-container dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left\">\n <div class=\"dcf-width-1-2@s\">\n <ion-button fill=\"clear\" (click)=\"handleBack()\" [disabled]=\"activePage <= 1\">\n <ion-icon aria-hidden=\"true\" name=\"arrow-back-outline\"></ion-icon>\n {{locale + '.previous' | translate}}\n </ion-button>\n </div>\n\n <div class=\"dcf-width-1-2@s\">\n <ion-button [fill]=\"activePage === pages ? 'solid' : 'outline'\" (click)=\"handleNext(activePage === pages ? true : false)\">\n @if(activePage === pages) {\n {{locale + '.submit' | translate}}\n } @else {\n {{locale + '.next' | translate}}\n <ion-icon aria-hidden=\"true\" name=\"arrow-forward-outline\"></ion-icon>\n }\n </ion-button>\n </div>\n </div>\n</form>\n", styles: [".dcf-buttons-container{margin-top:1.8rem;margin-bottom:0}@media (min-width: 639px){.dcf-buttons-container.dcf-flex div:nth-child(2){display:flex;justify-content:flex-end}}@media (max-width: 638px){.dcf-buttons-container.dcf-flex div{width:100%}.dcf-buttons-container.dcf-flex ion-button{width:100%;margin-bottom:1rem}}.dcf-steped-form{padding:2rem 1rem}.dcf-page-steps{display:flex;justify-content:center;margin-bottom:2rem}.dcf-page-steps>div{justify-content:center;min-width:200px;max-width:200px;column-gap:.25em;display:flex}.dcf-page-steps>div>div{width:30px;text-align:center;border-bottom:solid var(--dcf-color-gray-3);box-sizing:border-box;border-width:3px;font-size:0px;font-weight:600}.dcf-page-steps>div>div.dcf-active{border-width:5px;font-size:1rem;color:var(--ion-color-gray-7);border-color:var(--ion-color-primary);line-height:1rem}.dcf-page-steps>div>div.dcf-passed{border-width:4px;font-size:.5rem;line-height:1.2rem;border-color:var(--dcf-color-gray-5);color:var(--ion-color-primary)}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: ComponentRendererComponent, selector: "ngx-decaf-component-renderer", inputs: ["tag", "globals", "children", "model", "parent"], outputs: ["listenEvent"] }] }); }
|
|
273
|
-
};
|
|
274
|
-
SteppedFormComponent = __decorate([
|
|
275
|
-
Dynamic(),
|
|
276
|
-
__metadata("design:paramtypes", [])
|
|
277
|
-
], SteppedFormComponent);
|
|
278
|
-
export { SteppedFormComponent };
|
|
279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SteppedFormComponent, decorators: [{
|
|
280
|
-
type: Component,
|
|
281
|
-
args: [{ selector: 'ngx-decaf-stepped-form', imports: [
|
|
282
|
-
TranslatePipe,
|
|
283
|
-
ReactiveFormsModule,
|
|
284
|
-
IonSkeletonText,
|
|
285
|
-
IonText,
|
|
286
|
-
IonButton,
|
|
287
|
-
IonIcon,
|
|
288
|
-
ModelRendererComponent,
|
|
289
|
-
ComponentRendererComponent
|
|
290
|
-
], standalone: true, template: "<form class=\"dcf-steped-form\" novalidate>\n <div class=\"dcf-page-steps\">\n <div>\n @for(page of pagesArray; track $index;) {\n <div [class.dcf-active]=\"activePage === $index + 1\" [class.dcf-passed]=\"($index + 1) < activePage\">{{ $index + 1 }}</div>\n }\n </div>\n </div>\n @if(formGroup) {\n @for(child of activeChildren; track $index) {\n <ngx-decaf-component-renderer\n [tag]=\"child?.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [children]=\"child?.children || []\"\n [globals]=\"{props: child.props}\"\n />\n }\n } @else {\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n <br />\n <ion-skeleton-text [animated]=\"true\"></ion-skeleton-text>\n <ion-text class=\"date\" style=\"width: 20%;\"><ion-skeleton-text [animated]=\"true\"></ion-skeleton-text></ion-text>\n }\n\n <div class=\"dcf-buttons-container dcf-grid dcf-grid-collapse dcf-flex dcf-flex-left\">\n <div class=\"dcf-width-1-2@s\">\n <ion-button fill=\"clear\" (click)=\"handleBack()\" [disabled]=\"activePage <= 1\">\n <ion-icon aria-hidden=\"true\" name=\"arrow-back-outline\"></ion-icon>\n {{locale + '.previous' | translate}}\n </ion-button>\n </div>\n\n <div class=\"dcf-width-1-2@s\">\n <ion-button [fill]=\"activePage === pages ? 'solid' : 'outline'\" (click)=\"handleNext(activePage === pages ? true : false)\">\n @if(activePage === pages) {\n {{locale + '.submit' | translate}}\n } @else {\n {{locale + '.next' | translate}}\n <ion-icon aria-hidden=\"true\" name=\"arrow-forward-outline\"></ion-icon>\n }\n </ion-button>\n </div>\n </div>\n</form>\n", styles: [".dcf-buttons-container{margin-top:1.8rem;margin-bottom:0}@media (min-width: 639px){.dcf-buttons-container.dcf-flex div:nth-child(2){display:flex;justify-content:flex-end}}@media (max-width: 638px){.dcf-buttons-container.dcf-flex div{width:100%}.dcf-buttons-container.dcf-flex ion-button{width:100%;margin-bottom:1rem}}.dcf-steped-form{padding:2rem 1rem}.dcf-page-steps{display:flex;justify-content:center;margin-bottom:2rem}.dcf-page-steps>div{justify-content:center;min-width:200px;max-width:200px;column-gap:.25em;display:flex}.dcf-page-steps>div>div{width:30px;text-align:center;border-bottom:solid var(--dcf-color-gray-3);box-sizing:border-box;border-width:3px;font-size:0px;font-weight:600}.dcf-page-steps>div>div.dcf-active{border-width:5px;font-size:1rem;color:var(--ion-color-gray-7);border-color:var(--ion-color-primary);line-height:1rem}.dcf-page-steps>div>div.dcf-passed{border-width:4px;font-size:.5rem;line-height:1.2rem;border-color:var(--dcf-color-gray-5);color:var(--ion-color-primary)}\n"] }]
|
|
291
|
-
}], ctorParameters: () => [], propDecorators: { locale: [{
|
|
292
|
-
type: Input
|
|
293
|
-
}], pages: [{
|
|
294
|
-
type: Input
|
|
295
|
-
}], operation: [{
|
|
296
|
-
type: Input
|
|
297
|
-
}], startPage: [{
|
|
298
|
-
type: Input
|
|
299
|
-
}], children: [{
|
|
300
|
-
type: Input
|
|
301
|
-
}], formGroup: [{
|
|
302
|
-
type: Input
|
|
303
|
-
}], submitEvent: [{
|
|
304
|
-
type: Output
|
|
305
|
-
}] } });
|
|
306
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlZC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zdGVwcGVkLWZvcm0vc3RlcHBlZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zdGVwcGVkLWZvcm0vc3RlcHBlZC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBRyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQXdCLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQW1CLE9BQU8sRUFBRSxjQUFjLEVBQVksY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBb0I3QyxJQUFNLG9CQUFvQixHQUExQixNQUFNLG9CQUFvQjtJQXFKL0I7Ozs7OztPQU1HO0lBQ0g7UUEzSUE7Ozs7Ozs7OztXQVNHO1FBRUgsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUVsQjs7Ozs7Ozs7O1dBU0c7UUFFSCxjQUFTLEdBQW1CLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFFakQ7Ozs7Ozs7OztXQVNHO1FBRUgsY0FBUyxHQUFXLENBQUMsQ0FBQztRQTJCdEI7Ozs7Ozs7O1dBUUc7UUFDSCxtQkFBYyxHQUFrQyxTQUFTLENBQUM7UUFFMUQ7Ozs7Ozs7O1dBUUc7UUFDSCxvQkFBZSxHQUEwQixTQUFTLENBQUM7UUFFbkQ7Ozs7Ozs7O1dBUUc7UUFDSCxlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBRXZCOzs7Ozs7OztXQVFHO1FBQ0gsZUFBVSxHQUFzQixFQUFFLENBQUM7UUFjbkM7Ozs7Ozs7O1dBUUc7UUFFSCxnQkFBVyxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQVUvRSxRQUFRLENBQUMsRUFBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JHO0lBQ0gsUUFBUTtRQUNOLElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtRQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFakMsSUFBSSxDQUFDLFVBQVUsR0FBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDL0MsSUFBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ1gsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNqQixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7WUFDOUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBYyxDQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDM0MsSUFBRyxDQUFDLENBQUMsQ0FBQyxLQUFLO29CQUNULENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNmLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQyx3QkFBd0I7Z0JBQ3hCLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDeEQsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsV0FBVztRQUNULElBQUcsSUFBSSxDQUFDLGlCQUFpQjtZQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTZCRztJQUNILFVBQVUsQ0FBQyxXQUFvQixLQUFLO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQTRCLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDYixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLElBQUk7b0JBQ0osSUFBSSxFQUFFLGNBQWMsQ0FBQyxNQUFNO2lCQUM1QixDQUFDLENBQUM7WUFDSixDQUFDO1FBQ0YsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW1CRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFDSyxtQkFBbUIsQ0FBQyxJQUFZO1FBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUksSUFBSSxDQUFDLFNBQXVCLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQWMsQ0FBQztRQUMvRSxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUM1RSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBclVVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHVRQ2hDakMsazBEQTZDQSxpaUNEeEJJLGFBQWEsaURBQ2IsbUJBQW1CLG9TQUNuQixlQUFlLG9GQUNmLE9BQU8sZ0ZBQ1AsU0FBUyxvUEFDVCxPQUFPLDJKQUVQLDBCQUEwQjs7QUFJakIsb0JBQW9CO0lBakJoQyxPQUFPLEVBQUU7O0dBaUJHLG9CQUFvQixDQXVVaEM7OzRGQXZVWSxvQkFBb0I7a0JBaEJoQyxTQUFTOytCQUNFLHdCQUF3QixXQUd6Qjt3QkFDUCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxzQkFBc0I7d0JBQ3RCLDBCQUEwQjtxQkFDM0IsY0FDVyxJQUFJO3dEQWdCaEIsTUFBTTtzQkFETCxLQUFLO2dCQWVOLEtBQUs7c0JBREosS0FBSztnQkFjTixTQUFTO3NCQURSLEtBQUs7Z0JBY04sU0FBUztzQkFEUixLQUFLO2dCQWNOLFFBQVE7c0JBRFAsS0FBSztnQkFhTixTQUFTO3NCQURSLEtBQUs7Z0JBcUVOLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95LCBPdXRwdXQsIEV2ZW50RW1pdHRlciAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25Ta2VsZXRvblRleHQsIElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFycm93Rm9yd2FyZE91dGxpbmUsIGFycm93QmFja091dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IFVJTW9kZWxNZXRhZGF0YX0gZnJvbSAnQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgQ3J1ZE9wZXJhdGlvbnMsIE9wZXJhdGlvbktleXMgfSBmcm9tICdAZGVjYWYtdHMvZGItZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBCYXNlQ3VzdG9tRXZlbnQsIER5bmFtaWMsIEV2ZW50Q29uc3RhbnRzLCBLZXlWYWx1ZSwgTmd4Rm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbmdpbmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQtcmVuZGVyZXIvY29tcG9uZW50LXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RlbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kZWwtcmVuZGVyZXIvbW9kZWwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldExvY2FsZUNvbnRleHQgfSBmcm9tICcuLi8uLi9pMThuL0xvYWRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cblxuQER5bmFtaWMoKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWRlY2FmLXN0ZXBwZWQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwcGVkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdGVwcGVkLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJb25Ta2VsZXRvblRleHQsXG4gICAgSW9uVGV4dCxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgICBNb2RlbFJlbmRlcmVyQ29tcG9uZW50LFxuICAgIENvbXBvbmVudFJlbmRlcmVyQ29tcG9uZW50XG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBwZWRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgbG9jYWxlIHRvIGJlIHVzZWQgZm9yIHRyYW5zbGF0aW9ucy5cbiAgICogQHN1bW1hcnkgU3BlY2lmaWVzIHRoZSBsb2NhbGUgaWRlbnRpZmllciB0byB1c2Ugd2hlbiB0cmFuc2xhdGluZyBjb21wb25lbnQgdGV4dC5cbiAgICogVGhpcyBjYW4gYmUgc2V0IGV4cGxpY2l0bHkgdmlhIGlucHV0IHByb3BlcnR5IHRvIG92ZXJyaWRlIHRoZSBhdXRvbWF0aWNhbGx5IGRlcml2ZWRcbiAgICogbG9jYWxlIGZyb20gdGhlIGNvbXBvbmVudCBuYW1lLiBUaGUgbG9jYWxlIGlzIHR5cGljYWxseSBhIGxhbmd1YWdlIGNvZGUgKGUuZy4sICdlbicsICdmcicpXG4gICAqIG9yIGEgbGFuZ3VhZ2UtcmVnaW9uIGNvZGUgKGUuZy4sICdlbi1VUycsICdmci1DQScpIHRoYXQgZGV0ZXJtaW5lcyB3aGljaCB0cmFuc2xhdGlvblxuICAgKiBzZXQgdG8gdXNlIGZvciB0aGUgY29tcG9uZW50J3MgdGV4dCBjb250ZW50LlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyT2YgU3RlcHBlZEZvcm1Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGxvY2FsZSE6IHN0cmluZztcblxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBzdGVwcGVkIGZvcm0uXG4gICAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGVwcy9wYWdlcyBpbiB0aGUgbXVsdGktc3RlcCBmb3JtLlxuICAgKiBUaGlzIHZhbHVlIGlzIGF1dG9tYXRpY2FsbHkgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgcGFnZSBwcm9wZXJ0aWVzIG9mIHRoZSBjaGlsZHJlblxuICAgKiBvciBjYW4gYmUgZXhwbGljaXRseSBzZXQuIEVhY2ggcGFnZSByZXByZXNlbnRzIGEgbG9naWNhbCBncm91cCBvZiBmb3JtIGZpZWxkcy5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQGRlZmF1bHQgMVxuICAgKiBAbWVtYmVyT2YgU3RlcHBlZEZvcm1Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHBhZ2VzOiBudW1iZXIgPSAxO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIENSVUQgb3BlcmF0aW9uIHR5cGUgZm9yIHRoaXMgZm9ybS5cbiAgICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgdHlwZSBvZiBvcGVyYXRpb24gYmVpbmcgcGVyZm9ybWVkIChDUkVBVEUsIFJFQUQsIFVQREFURSwgREVMRVRFKS5cbiAgICogVGhpcyBhZmZlY3RzIGZvcm0gYmVoYXZpb3IsIHZhbGlkYXRpb24gcnVsZXMsIGFuZCBmaWVsZCBhY2Nlc3NpYmlsaXR5LiBGb3IgZXhhbXBsZSxcbiAgICogUkVBRCBvcGVyYXRpb25zIG1pZ2h0IGRpc2FibGUgZm9ybSBmaWVsZHMsIHdoaWxlIENSRUFURSBvcGVyYXRpb25zIGVuYWJsZSBhbGwgZmllbGRzLlxuICAgKlxuICAgKiBAdHlwZSB7Q3J1ZE9wZXJhdGlvbnN9XG4gICAqIEBkZWZhdWx0IE9wZXJhdGlvbktleXMuQ1JFQVRFXG4gICAqIEBtZW1iZXJPZiBTdGVwcGVkRm9ybUNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgb3BlcmF0aW9uOiBDcnVkT3BlcmF0aW9ucyA9IE9wZXJhdGlvbktleXMuQ1JFQVRFO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGluaXRpYWwgcGFnZSB0byBkaXNwbGF5IHdoZW4gdGhlIGZvcm0gbG9hZHMuXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB3aGljaCBwYWdlIG9mIHRoZSBtdWx0aS1zdGVwIGZvcm0gc2hvdWxkIGJlIHNob3duIGZpcnN0LlxuICAgKiBUaGlzIGFsbG93cyBzdGFydGluZyB0aGUgZm9ybSBhdCBhbnkgc3RlcCwgdXNlZnVsIGZvciBzY2VuYXJpb3MgbGlrZSBlZGl0aW5nXG4gICAqIGV4aXN0aW5nIGRhdGEgd2hlcmUgeW91IG1pZ2h0IHdhbnQgdG8ganVtcCB0byBhIHNwZWNpZmljIHNlY3Rpb24uXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDFcbiAgICogQG1lbWJlck9mIFN0ZXBwZWRGb3JtQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBzdGFydFBhZ2U6IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBcnJheSBvZiBVSSBtb2RlbCBtZXRhZGF0YSBmb3IgYWxsIGZvcm0gZmllbGRzLlxuICAgKiBAc3VtbWFyeSBDb250YWlucyB0aGUgY29tcGxldGUgY29sbGVjdGlvbiBvZiBVSSBtb2RlbCBtZXRhZGF0YSB0aGF0IGRlZmluZXNcbiAgICogdGhlIHN0cnVjdHVyZSwgdmFsaWRhdGlvbiwgYW5kIHByZXNlbnRhdGlvbiBvZiBmb3JtIGZpZWxkcyBhY3Jvc3MgYWxsIHBhZ2VzLlxuICAgKiBFYWNoIG1ldGFkYXRhIG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBmaWVsZCB0eXBlLCB2YWxpZGF0aW9uIHJ1bGVzLFxuICAgKiBwYWdlIGFzc2lnbm1lbnQsIGFuZCBkaXNwbGF5IHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEB0eXBlIHtVSU1vZGVsTWV0YWRhdGFbXX1cbiAgICogQG1lbWJlck9mIFN0ZXBwZWRGb3JtQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBjaGlsZHJlbiE6IFVJTW9kZWxNZXRhZGF0YVtdO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQW5ndWxhciByZWFjdGl2ZSBGb3JtR3JvdXAgb3IgRm9ybUFycmF5IGZvciBmb3JtIHN0YXRlIG1hbmFnZW1lbnQuXG4gICAqIEBzdW1tYXJ5IFRoZSBmb3JtIGluc3RhbmNlIHRoYXQgbWFuYWdlcyBhbGwgZm9ybSBjb250cm9scywgdmFsaWRhdGlvbiwgYW5kIGZvcm0gc3RhdGUuXG4gICAqIFdoZW4gdXNpbmcgRm9ybUFycmF5LCBlYWNoIGFycmF5IGVsZW1lbnQgcmVwcmVzZW50cyBhIHBhZ2UncyBGb3JtR3JvdXAuIFdoZW4gdXNpbmdcbiAgICogRm9ybUdyb3VwLCBpdCBjb250YWlucyBhbGwgZm9ybSBjb250cm9scyBmb3IgdGhlIGVudGlyZSBzdGVwcGVkIGZvcm0uXG4gICAqXG4gICAqIEB0eXBlIHtGb3JtR3JvdXAgfCBGb3JtQXJyYXkgfCB1bmRlZmluZWR9XG4gICAqIEBtZW1iZXJPZiBTdGVwcGVkRm9ybUNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgZm9ybUdyb3VwITogRm9ybUdyb3VwIHwgRm9ybUFycmF5IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXJyYXkgb2YgVUkgbW9kZWwgbWV0YWRhdGEgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHBhZ2UuXG4gICAqIEBzdW1tYXJ5IENvbnRhaW5zIG9ubHkgdGhlIFVJIG1vZGVsIG1ldGFkYXRhIGZvciBmaWVsZHMgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkXG4gICAqIG9uIHRoZSBjdXJyZW50bHkgYWN0aXZlIHBhZ2UuIFRoaXMgaXMgYSBmaWx0ZXJlZCBzdWJzZXQgb2YgdGhlIGNoaWxkcmVuIGFycmF5LFxuICAgKiB1cGRhdGVkIHdoZW5ldmVyIHRoZSB1c2VyIG5hdmlnYXRlcyBiZXR3ZWVuIHBhZ2VzLlxuICAgKlxuICAgKiBAdHlwZSB7VUlNb2RlbE1ldGFkYXRhW10gfCB1bmRlZmluZWR9XG4gICAqIEBtZW1iZXJPZiBTdGVwcGVkRm9ybUNvbXBvbmVudFxuICAgKi9cbiAgYWN0aXZlQ2hpbGRyZW46IFVJTW9kZWxNZXRhZGF0YVtdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRm9ybUdyb3VwIGZvciB0aGUgY3VycmVudGx5IGFjdGl2ZSBwYWdlLlxuICAgKiBAc3VtbWFyeSBUaGUgRm9ybUdyb3VwIGluc3RhbmNlIHRoYXQgbWFuYWdlcyBmb3JtIGNvbnRyb2xzIGFuZCB2YWxpZGF0aW9uXG4gICAqIGZvciB0aGUgY3VycmVudCBwYWdlIG9ubHkuIFRoaXMgaXMgZXh0cmFjdGVkIGZyb20gdGhlIG1haW4gZm9ybUdyb3VwXG4gICAqIHdoZW4gdXNpbmcgRm9ybUFycmF5IHN0cnVjdHVyZS5cbiAgICpcbiAgICogQHR5cGUge0Zvcm1Hcm91cCB8IHVuZGVmaW5lZH1cbiAgICogQG1lbWJlck9mIFN0ZXBwZWRGb3JtQ29tcG9uZW50XG4gICAqL1xuICBhY3RpdmVGb3JtR3JvdXA6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50bHkgYWN0aXZlIHBhZ2UgbnVtYmVyLlxuICAgKiBAc3VtbWFyeSBUcmFja3Mgd2hpY2ggcGFnZSBvZiB0aGUgbXVsdGktc3RlcCBmb3JtIGlzIGN1cnJlbnRseSBiZWluZyBkaXNwbGF5ZWQuXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgdXBkYXRlZCBhcyB1c2VycyBuYXZpZ2F0ZSB0aHJvdWdoIHRoZSBmb3JtIHN0ZXBzIHVzaW5nXG4gICAqIHRoZSBuZXh0L2JhY2sgYnV0dG9ucyBvciBwcm9ncmFtbWF0aWMgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQG1lbWJlck9mIFN0ZXBwZWRGb3JtQ29tcG9uZW50XG4gICAqL1xuICBhY3RpdmVQYWdlOiBudW1iZXIgPSAxO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXJyYXkgcmVwcmVzZW50aW5nIHRoZSBzdHJ1Y3R1cmUgb2YgcGFnZXMuXG4gICAqIEBzdW1tYXJ5IENvbnRhaW5zIG1ldGFkYXRhIGFib3V0IGVhY2ggcGFnZSwgaW5jbHVkaW5nIHBhZ2UgbnVtYmVycyBhbmQgaW5kaWNlcy5cbiAgICogVGhpcyBhcnJheSBpcyBidWlsdCBkdXJpbmcgaW5pdGlhbGl6YXRpb24gdG8gb3JnYW5pemUgdGhlIGZvcm0gZmllbGRzIGludG9cbiAgICogbG9naWNhbCBwYWdlcyBhbmQgcHJvdmlkZSBuYXZpZ2F0aW9uIHN0cnVjdHVyZS5cbiAgICpcbiAgICogQHR5cGUge1VJTW9kZWxNZXRhZGF0YVtdfVxuICAgKiBAbWVtYmVyT2YgU3RlcHBlZEZvcm1Db21wb25lbnRcbiAgICovXG4gIHBhZ2VzQXJyYXk6IFVJTW9kZWxNZXRhZGF0YVtdID0gW107XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTdWJzY3JpcHRpb24gZm9yIHRpbWVyLWJhc2VkIG9wZXJhdGlvbnMuXG4gICAqIEBzdW1tYXJ5IE1hbmFnZXMgdGhlIHRpbWVyIHN1YnNjcmlwdGlvbiB1c2VkIGZvciBhc3luY2hyb25vdXMgb3BlcmF0aW9uc1xuICAgKiBsaWtlIHVwZGF0aW5nIGFjdGl2ZSBjaGlsZHJlbiBhZnRlciBwYWdlIHRyYW5zaXRpb25zLiBUaGlzIHN1YnNjcmlwdGlvblxuICAgKiBpcyBjbGVhbmVkIHVwIGluIG5nT25EZXN0cm95IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAdHlwZSB7U3Vic2NyaXB0aW9ufVxuICAgKiBAbWVtYmVyT2YgU3RlcHBlZEZvcm1Db21wb25lbnRcbiAgICovXG4gIHByaXZhdGUgdGltZXJTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmVudCBlbWl0dGVyIGZvciBmb3JtIHN1Ym1pc3Npb24uXG4gICAqIEBzdW1tYXJ5IEVtaXRzIGV2ZW50cyB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgdHlwaWNhbGx5IG9uIHRoZSBsYXN0IHBhZ2VcbiAgICogd2hlbiBhbGwgdmFsaWRhdGlvbiBwYXNzZXMuIFRoZSBlbWl0dGVkIGV2ZW50IGNvbnRhaW5zIHRoZSBmb3JtIGRhdGEgYW5kXG4gICAqIGV2ZW50IHR5cGUgaW5mb3JtYXRpb24gZm9yIHBhcmVudCBjb21wb25lbnRzIHRvIGhhbmRsZS5cbiAgICpcbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxCYXNlQ3VzdG9tRXZlbnQ+fVxuICAgKiBAbWVtYmVyT2YgU3RlcHBlZEZvcm1Db21wb25lbnRcbiAgICovXG4gIEBPdXRwdXQoKVxuICBzdWJtaXRFdmVudDogRXZlbnRFbWl0dGVyPEJhc2VDdXN0b21FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEJhc2VDdXN0b21FdmVudD4oKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgU3RlcHBlZEZvcm1Db21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgbmV3IFN0ZXBwZWRGb3JtQ29tcG9uZW50IGluc3RhbmNlIGFuZCByZWdpc3RlcnMgdGhlIHJlcXVpcmVkXG4gICAqIElvbmljIGljb25zIGZvciBuYXZpZ2F0aW9uIGJ1dHRvbnMgKGZvcndhcmQgYW5kIGJhY2sgYXJyb3dzKS5cbiAgICpcbiAgICogQG1lbWJlck9mIFN0ZXBwZWRGb3JtQ29tcG9uZW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7YXJyb3dGb3J3YXJkT3V0bGluZSwgYXJyb3dCYWNrT3V0bGluZX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplcyB0aGUgY29tcG9uZW50IGFmdGVyIEFuZ3VsYXIgZmlyc3QgZGlzcGxheXMgdGhlIGRhdGEtYm91bmQgcHJvcGVydGllcy5cbiAgICogQHN1bW1hcnkgU2V0cyB1cCB0aGUgc3RlcHBlZCBmb3JtIGJ5IG9yZ2FuaXppbmcgY2hpbGRyZW4gaW50byBwYWdlcywgY2FsY3VsYXRpbmcgdGhlIHRvdGFsXG4gICAqIG51bWJlciBvZiBwYWdlcywgYW5kIGluaXRpYWxpemluZyB0aGUgYWN0aXZlIHBhZ2UuIFRoaXMgbWV0aG9kIHByb2Nlc3NlcyB0aGUgVUkgbW9kZWwgbWV0YWRhdGFcbiAgICogdG8gY3JlYXRlIGEgbG9naWNhbCBwYWdlIHN0cnVjdHVyZSBhbmQgZW5zdXJlcyBwcm9wZXIgcGFnZSBhc3NpZ25tZW50cyBmb3IgYWxsIGZvcm0gZmllbGRzLlxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBBIGFzIEFuZ3VsYXIgTGlmZWN5Y2xlXG4gICAqICAgcGFydGljaXBhbnQgUyBhcyBTdGVwcGVkRm9ybUNvbXBvbmVudFxuICAgKiAgIHBhcnRpY2lwYW50IEYgYXMgRm9ybSBTZXJ2aWNlXG4gICAqXG4gICAqICAgQS0+PlM6IG5nT25Jbml0KClcbiAgICogICBTLT4+UzogU2V0IGFjdGl2ZVBhZ2UgPSBzdGFydFBhZ2VcbiAgICogICBTLT4+UzogUHJvY2VzcyBjaGlsZHJlbiBpbnRvIHBhZ2VzQXJyYXlcbiAgICogICBTLT4+UzogQ2FsY3VsYXRlIHRvdGFsIHBhZ2VzXG4gICAqICAgUy0+PlM6IEFzc2lnbiBwYWdlIHByb3BzIHRvIGNoaWxkcmVuXG4gICAqICAgUy0+PlM6IGdldEN1cnJlbnRGb3JtR3JvdXAoYWN0aXZlUGFnZSlcbiAgICogICBTLT4+RjogRXh0cmFjdCBGb3JtR3JvdXAgZm9yIGFjdGl2ZSBwYWdlXG4gICAqICAgRi0tPj5TOiBSZXR1cm4gYWN0aXZlRm9ybUdyb3VwXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTdGVwcGVkRm9ybUNvbXBvbmVudFxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCAge1xuICAgIGlmKCF0aGlzLmxvY2FsZSlcbiAgICAgIHRoaXMubG9jYWxlID0gZ2V0TG9jYWxlQ29udGV4dChcIlN0ZXBwZWRGb3JtQ29tcG9uZW50XCIpXG4gICAgdGhpcy5hY3RpdmVQYWdlID0gdGhpcy5zdGFydFBhZ2U7XG5cbiAgICB0aGlzLnBhZ2VzQXJyYXkgPSAodGhpcy5jaGlsZHJlbi5yZWR1Y2UoKGFjYywgY3VyciwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBjdXJyLnByb3BzPy5bJ3BhZ2UnXSB8fCBpbmRleCArIDE7XG4gICAgICBpZighYWNjW3BhZ2VdKVxuICAgICAgICBhY2NbcGFnZV0gPSBbXTtcbiAgICAgIGFjY1twYWdlXS5wdXNoKHtpbmRleDogcGFnZX0pO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSBhcyBLZXlWYWx1ZSkgYXMgW10pLmZpbHRlcihCb29sZWFuKTtcblxuICAgIHRoaXMucGFnZXMgPSB0aGlzLnBhZ2VzQXJyYXkubGVuZ3RoO1xuICAgIHRoaXMuY2hpbGRyZW4gPSBbLi4uIHRoaXMuY2hpbGRyZW4ubWFwKChjKSA9PiB7XG4gICAgICBpZighYy5wcm9wcylcbiAgICAgICAgYy5wcm9wcyA9IHt9O1xuICAgICAgY29uc3QgcGFnZSA9IGMucHJvcHNbJ3BhZ2UnXSB8fCAxO1xuICAgICAgLy8gcHJldmVudCBwYWdlIG92ZXJmbG93XG4gICAgICBjLnByb3BzWydwYWdlJ10gPSBwYWdlID4gdGhpcy5wYWdlcyA/IHRoaXMucGFnZXMgOiBwYWdlO1xuICAgICAgcmV0dXJuIGM7XG4gICAgfSldO1xuICAgIHRoaXMuZ2V0Q3VycmVudEZvcm1Hcm91cCh0aGlzLmFjdGl2ZVBhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDbGVhbnVwIG1ldGhvZCBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC5cbiAgICogQHN1bW1hcnkgVW5zdWJzY3JpYmVzIGZyb20gYW55IGFjdGl2ZSB0aW1lciBzdWJzY3JpcHRpb25zIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLlxuICAgKiBUaGlzIGlzIHBhcnQgb2YgQW5ndWxhcidzIGNvbXBvbmVudCBsaWZlY3ljbGUgYW5kIGVuc3VyZXMgcHJvcGVyIHJlc291cmNlIGNsZWFudXAuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTdGVwcGVkRm9ybUNvbXBvbmVudFxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYodGhpcy50aW1lclN1YnNjcmlwdGlvbilcbiAgICAgIHRoaXMudGltZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBuYXZpZ2F0aW9uIHRvIHRoZSBuZXh0IHBhZ2Ugb3IgZm9ybSBzdWJtaXNzaW9uLlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgdGhlIGN1cnJlbnQgcGFnZSdzIGZvcm0gZmllbGRzIGFuZCBlaXRoZXIgbmF2aWdhdGVzIHRvIHRoZSBuZXh0IHBhZ2VcbiAgICogb3Igc3VibWl0cyB0aGUgZW50aXJlIGZvcm0gaWYgb24gdGhlIGxhc3QgcGFnZS4gRm9ybSB2YWxpZGF0aW9uIG11c3QgcGFzcyBiZWZvcmVcbiAgICogcHJvY2VlZGluZy4gT24gc3VjY2Vzc2Z1bCBzdWJtaXNzaW9uLCBlbWl0cyBhIHN1Ym1pdCBldmVudCB3aXRoIGZvcm0gZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBsYXN0UGFnZSAtIFdoZXRoZXIgdGhpcyBpcyB0aGUgbGFzdCBwYWdlIG9mIHRoZSBmb3JtXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IFUgYXMgVXNlclxuICAgKiAgIHBhcnRpY2lwYW50IFMgYXMgU3RlcHBlZEZvcm1Db21wb25lbnRcbiAgICogICBwYXJ0aWNpcGFudCBGIGFzIEZvcm0gU2VydmljZVxuICAgKiAgIHBhcnRpY2lwYW50IFAgYXMgUGFyZW50IENvbXBvbmVudFxuICAgKlxuICAgKiAgIFUtPj5TOiBDbGljayBOZXh0L1N1Ym1pdFxuICAgKiAgIFMtPj5GOiB2YWxpZGF0ZUZpZWxkcyhhY3RpdmVGb3JtR3JvdXApXG4gICAqICAgRi0tPj5TOiBSZXR1cm4gdmFsaWRhdGlvbiByZXN1bHRcbiAgICogICBhbHQgTm90IGxhc3QgcGFnZSBhbmQgdmFsaWRcbiAgICogICAgIFMtPj5TOiBhY3RpdmVQYWdlKytcbiAgICogICAgIFMtPj5TOiBnZXRDdXJyZW50Rm9ybUdyb3VwKGFjdGl2ZVBhZ2UpXG4gICAqICAgZWxzZSBMYXN0IHBhZ2UgYW5kIHZhbGlkXG4gICAqICAgICBTLT4+RjogZ2V0Rm9ybURhdGEoZm9ybUdyb3VwKVxuICAgKiAgICAgRi0tPj5TOiBSZXR1cm4gZm9ybSBkYXRhXG4gICAqICAgICBTLT4+UDogc3VibWl0RXZlbnQuZW1pdCh7ZGF0YSwgbmFtZTogU1VCTUlUfSlcbiAgICogICBlbmRcbiAgICpcbiAgICogQG1lbWJlck9mIFN0ZXBwZWRGb3JtQ29tcG9uZW50XG4gICAqL1xuICBoYW5kbGVOZXh0KGxhc3RQYWdlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICBjb25zdCBpc1ZhbGlkID0gTmd4Rm9ybVNlcnZpY2UudmFsaWRhdGVGaWVsZHModGhpcy5hY3RpdmVGb3JtR3JvdXAgYXMgRm9ybUdyb3VwKTtcbiAgICBpZiAoIWxhc3RQYWdlKSB7XG4gICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICB0aGlzLmFjdGl2ZVBhZ2UgPSB0aGlzLmFjdGl2ZVBhZ2UgKyAxO1xuICAgICAgICB0aGlzLmdldEN1cnJlbnRGb3JtR3JvdXAodGhpcy5hY3RpdmVQYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgY29uc3QgZGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIC4uLk9iamVjdC52YWx1ZXMoTmd4Rm9ybVNlcnZpY2UuZ2V0Rm9ybURhdGEodGhpcy5mb3JtR3JvdXAgYXMgRm9ybUdyb3VwKSkpO1xuICAgICAgdGhpcy5zdWJtaXRFdmVudC5lbWl0KHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgbmFtZTogRXZlbnRDb25zdGFudHMuU1VCTUlULFxuICAgICAgfSk7XG4gICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgbmF2aWdhdGlvbiB0byB0aGUgcHJldmlvdXMgcGFnZS5cbiAgICogQHN1bW1hcnkgTW92ZXMgdGhlIHVzZXIgYmFjayB0byB0aGUgcHJldmlvdXMgcGFnZSBpbiB0aGUgc3RlcHBlZCBmb3JtLlxuICAgKiBUaGlzIG1ldGhvZCBkZWNyZW1lbnRzIHRoZSBhY3RpdmUgcGFnZSBudW1iZXIgYW5kIHVwZGF0ZXMgdGhlIGZvcm1cbiAgICogZ3JvdXAgYW5kIGNoaWxkcmVuIHRvIGRpc3BsYXkgdGhlIHByZXZpb3VzIHBhZ2UncyBjb250ZW50LlxuICAgKlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKlxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAgICogICBwYXJ0aWNpcGFudCBTIGFzIFN0ZXBwZWRGb3JtQ29tcG9uZW50XG4gICAqXG4gICAqICAgVS0+PlM6IENsaWNrIEJhY2tcbiAgICogICBTLT4+UzogYWN0aXZlUGFnZS0tXG4gICAqICAgUy0+PlM6IGdldEN1cnJlbnRGb3JtR3JvdXAoYWN0aXZlUGFnZSlcbiAgICogICBOb3RlIG92ZXIgUzogVXBkYXRlIGFjdGl2ZSBmb3JtIGFuZCBjaGlsZHJlblxuICAgKlxuICAgKiBAbWVtYmVyT2YgU3RlcHBlZEZvcm1Db21wb25lbnRcbiAgICovXG4gIGhhbmRsZUJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVQYWdlID0gdGhpcy5hY3RpdmVQYWdlIC0gMTtcbiAgICB0aGlzLmdldEN1cnJlbnRGb3JtR3JvdXAodGhpcy5hY3RpdmVQYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyB0aGUgYWN0aXZlIGZvcm0gZ3JvdXAgYW5kIGNoaWxkcmVuIGZvciB0aGUgc3BlY2lmaWVkIHBhZ2UuXG4gICAqIEBzdW1tYXJ5IEV4dHJhY3RzIHRoZSBGb3JtR3JvdXAgZm9yIHRoZSBnaXZlbiBwYWdlIGZyb20gdGhlIEZvcm1BcnJheSBhbmQgZmlsdGVyc1xuICAgKiB0aGUgY2hpbGRyZW4gdG8gc2hvdyBvbmx5IGZpZWxkcyBiZWxvbmdpbmcgdG8gdGhhdCBwYWdlLiBVc2VzIGEgdGltZXIgdG8gZW5zdXJlXG4gICAqIHByb3BlciBBbmd1bGFyIGNoYW5nZSBkZXRlY3Rpb24gd2hlbiB1cGRhdGluZyB0aGUgYWN0aXZlQ2hpbGRyZW4uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBwYWdlIC0gVGhlIHBhZ2UgbnVtYmVyIHRvIGFjdGl2YXRlXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IFMgYXMgU3RlcHBlZEZvcm1Db21wb25lbnRcbiAgICogICBwYXJ0aWNpcGFudCBGIGFzIEZvcm1BcnJheVxuICAgKiAgIHBhcnRpY2lwYW50IFQgYXMgVGltZXJcbiAgICpcbiAgICogICBTLT4+RjogRXh0cmFjdCBGb3JtR3JvdXAgYXQgaW5kZXggKHBhZ2UgLSAxKVxuICAgKiAgIEYtLT4+UzogUmV0dXJuIHBhZ2UgRm9ybUdyb3VwXG4gICAqICAgUy0+PlM6IFNldCBhY3RpdmVDaGlsZHJlbiA9IHVuZGVmaW5lZFxuICAgKiAgIFMtPj5UOiB0aW1lcigxMCkuc3Vic2NyaWJlKClcbiAgICogICBULS0+PlM6IEZpbHRlciBjaGlsZHJlbiBmb3IgYWN0aXZlIHBhZ2VcbiAgICogICBTLT4+UzogU2V0IGFjdGl2ZUNoaWxkcmVuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBTdGVwcGVkRm9ybUNvbXBvbmVudFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDdXJyZW50Rm9ybUdyb3VwKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlRm9ybUdyb3VwID0gKHRoaXMuZm9ybUdyb3VwIGFzIEZvcm1BcnJheSkuYXQocGFnZSAtIDEpIGFzIEZvcm1Hcm91cDtcbiAgICB0aGlzLmFjdGl2ZUNoaWxkcmVuID0gdW5kZWZpbmVkO1xuICAgIHRoaXMudGltZXJTdWJzY3JpcHRpb24gPSB0aW1lcigxMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlQ2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuLmZpbHRlcihjID0+IGMucHJvcHM/LlsncGFnZSddID09PSBwYWdlKTtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuYWN0aXZlQ2hpbGRyZW4pO1xuICAgIH0pO1xuICB9XG5cbn1cbiIsIjxmb3JtIGNsYXNzPVwiZGNmLXN0ZXBlZC1mb3JtXCIgbm92YWxpZGF0ZT5cbiAgPGRpdiBjbGFzcz1cImRjZi1wYWdlLXN0ZXBzXCI+XG4gICAgPGRpdj5cbiAgICAgICAgQGZvcihwYWdlIG9mIHBhZ2VzQXJyYXk7IHRyYWNrICRpbmRleDspIHtcbiAgICAgICAgPGRpdiBbY2xhc3MuZGNmLWFjdGl2ZV09XCJhY3RpdmVQYWdlID09PSAkaW5kZXggKyAxXCIgW2NsYXNzLmRjZi1wYXNzZWRdPVwiKCRpbmRleCArIDEpIDwgYWN0aXZlUGFnZVwiPnt7ICRpbmRleCArIDEgfX08L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIEBpZihmb3JtR3JvdXApIHtcbiAgICBAZm9yKGNoaWxkIG9mIGFjdGl2ZUNoaWxkcmVuOyAgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8bmd4LWRlY2FmLWNvbXBvbmVudC1yZW5kZXJlclxuICAgICAgICBbdGFnXT1cImNoaWxkPy50YWdcIlxuICAgICAgICAobGlzdGVuRXZlbnQpPVwiaGFuZGxlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgIFtjaGlsZHJlbl09XCJjaGlsZD8uY2hpbGRyZW4gfHwgW11cIlxuICAgICAgICBbZ2xvYmFsc109XCJ7cHJvcHM6IGNoaWxkLnByb3BzfVwiXG4gICAgICAvPlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPGlvbi1za2VsZXRvbi10ZXh0IFthbmltYXRlZF09XCJ0cnVlXCI+PC9pb24tc2tlbGV0b24tdGV4dD5cbiAgICA8aW9uLXRleHQgY2xhc3M9XCJkYXRlXCIgc3R5bGU9XCJ3aWR0aDogMjAlO1wiPjxpb24tc2tlbGV0b24tdGV4dCBbYW5pbWF0ZWRdPVwidHJ1ZVwiPjwvaW9uLXNrZWxldG9uLXRleHQ+PC9pb24tdGV4dD5cbiAgICA8YnIgLz5cbiAgICA8aW9uLXNrZWxldG9uLXRleHQgW2FuaW1hdGVkXT1cInRydWVcIj48L2lvbi1za2VsZXRvbi10ZXh0PlxuICAgIDxpb24tdGV4dCBjbGFzcz1cImRhdGVcIiBzdHlsZT1cIndpZHRoOiAyMCU7XCI+PGlvbi1za2VsZXRvbi10ZXh0IFthbmltYXRlZF09XCJ0cnVlXCI+PC9pb24tc2tlbGV0b24tdGV4dD48L2lvbi10ZXh0PlxuICB9XG5cbiAgPGRpdiBjbGFzcz1cImRjZi1idXR0b25zLWNvbnRhaW5lciBkY2YtZ3JpZCBkY2YtZ3JpZC1jb2xsYXBzZSBkY2YtZmxleCBkY2YtZmxleC1sZWZ0XCI+XG4gICAgPGRpdiBjbGFzcz1cImRjZi13aWR0aC0xLTJAc1wiPlxuICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cImhhbmRsZUJhY2soKVwiIFtkaXNhYmxlZF09XCJhY3RpdmVQYWdlIDw9IDFcIj5cbiAgICAgICAgPGlvbi1pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIG5hbWU9XCJhcnJvdy1iYWNrLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICAgIHt7bG9jYWxlICsgJy5wcmV2aW91cycgfCB0cmFuc2xhdGV9fVxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImRjZi13aWR0aC0xLTJAc1wiPlxuICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiYWN0aXZlUGFnZSA9PT0gcGFnZXMgPyAnc29saWQnIDogJ291dGxpbmUnXCIgIChjbGljayk9XCJoYW5kbGVOZXh0KGFjdGl2ZVBhZ2UgPT09IHBhZ2VzID8gdHJ1ZSA6IGZhbHNlKVwiPlxuICAgICAgICBAaWYoYWN0aXZlUGFnZSA9PT0gcGFnZXMpIHtcbiAgICAgICAgICB7e2xvY2FsZSArICcuc3VibWl0JyB8IHRyYW5zbGF0ZX19XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIHt7bG9jYWxlICsgJy5uZXh0JyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgPGlvbi1pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIG5hbWU9XCJhcnJvdy1mb3J3YXJkLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICB9XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-apis';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjYWYtdHMtZm9yLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2RlY2FmLXRzLWZvci1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaXMnO1xuIl19
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, inject, Injector } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CollapsableDirective {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.element = inject(ElementRef);
|
|
6
|
-
this.injector = inject(Injector);
|
|
7
|
-
}
|
|
8
|
-
// constructor() {}
|
|
9
|
-
ngOnInit() {
|
|
10
|
-
const element = this.element?.nativeElement;
|
|
11
|
-
if (element) {
|
|
12
|
-
const requiredFields = element.querySelectorAll('[required]');
|
|
13
|
-
if (requiredFields.length) {
|
|
14
|
-
const accordion = element?.closest('ion-accordion-group');
|
|
15
|
-
accordion.setAttribute('value', 'open');
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CollapsableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CollapsableDirective, isStandalone: true, selector: "[decafCollapsable]", ngImport: i0 }); }
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CollapsableDirective, decorators: [{
|
|
23
|
-
type: Directive,
|
|
24
|
-
args: [{
|
|
25
|
-
selector: '[decafCollapsable]',
|
|
26
|
-
standalone: true
|
|
27
|
-
}]
|
|
28
|
-
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9kaXJlY3RpdmVzL2NvbGxhcHNhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9oRixNQUFNLE9BQU8sb0JBQW9CO0lBSmpDO1FBTVUsWUFBTyxHQUE0QixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQTBDckM7SUF6Q0MsbUJBQW1CO0lBRW5CLFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQztRQUM1QyxJQUFHLE9BQU8sRUFBRSxDQUFDO1lBQ1gsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBd0IsQ0FBQztZQUNyRixJQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxTQUFTLEdBQUcsT0FBTyxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBZ0IsQ0FBQztnQkFDekUsU0FBUyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQWZVLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkluaXQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RlY2FmQ29sbGFwc2FibGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDb2xsYXBzYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdHtcblxuICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgLy8gY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYoZWxlbWVudCkge1xuICAgICAgY29uc3QgcmVxdWlyZWRGaWVsZHMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyZXF1aXJlZF0nKSBhcyBOb2RlTGlzdE9mPEVsZW1lbnQ+O1xuICAgICAgaWYocmVxdWlyZWRGaWVsZHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGFjY29yZGlvbiA9IGVsZW1lbnQ/LmNsb3Nlc3QoJ2lvbi1hY2NvcmRpb24tZ3JvdXAnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgYWNjb3JkaW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnb3BlbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIC8vIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAvLyBuZ09uSW5pdCgpIHtcbiAgLy8gICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50Py5uYXRpdmVFbGVtZW50O1xuICAvLyAgIGlmKGVsZW1lbnQpIHtcbiAgLy8gICAgIGNvbnN0IHJlcXVpcmVkRmllbGRzID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbcmVxdWlyZWRdJykgYXMgTm9kZUxpc3RPZjxFbGVtZW50PjtcblxuICAvLyAgICAgLy8gRmluZCB0aGUgcGFyZW50IGZpZWxkc2V0IGNvbXBvbmVudCBhbmQgc2V0IHJlcXVpcmVkIGF0dHJpYnV0ZSBpZiB0aGVyZSBhcmUgcmVxdWlyZWQgZmllbGRzXG4gIC8vICAgICBjb25zdCBmaWVsZHNldEVsZW1lbnQgPSBlbGVtZW50LmNsb3Nlc3QoJ25neC1kZWNhZi1maWVsZHNldCcpO1xuICAvLyAgICAgaWYgKGZpZWxkc2V0RWxlbWVudCAmJiByZXF1aXJlZEZpZWxkcy5sZW5ndGggPiAwKSB7XG4gIC8vICAgICAgIC8vIFNldCBhIGRhdGEgYXR0cmlidXRlIHRoYXQgdGhlIGZpZWxkc2V0IGNvbXBvbmVudCBjYW4gcmVhZFxuICAvLyAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShmaWVsZHNldEVsZW1lbnQsICdkYXRhLWhhcy1yZXF1aXJlZC1maWVsZHMnLCAndHJ1ZScpO1xuXG4gIC8vICAgICAgIC8vIERpc3BhdGNoIGEgY3VzdG9tIGV2ZW50IHRvIG5vdGlmeSB0aGUgZmllbGRzZXQgY29tcG9uZW50XG4gIC8vICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdyZXF1aXJlZEZpZWxkc0RldGVjdGVkJywge1xuICAvLyAgICAgICAgIGRldGFpbDogeyBoYXNSZXF1aXJlZEZpZWxkczogdHJ1ZSwgY291bnQ6IHJlcXVpcmVkRmllbGRzLmxlbmd0aCB9LFxuICAvLyAgICAgICAgIGJ1YmJsZXM6IHRydWVcbiAgLy8gICAgICAgfSk7XG4gIC8vICAgICAgIGZpZWxkc2V0RWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcblxuICAvLyAgICAgICBjb25zdCBhY2NvcmRpb24gPSBlbGVtZW50Py5jbG9zZXN0KCdpb24tYWNjb3JkaW9uLWdyb3VwJykgYXMgSFRNTEVsZW1lbnQ7XG4gIC8vICAgICAgIGlmIChhY2NvcmRpb24pIHtcbiAgLy8gICAgICAgICBhY2NvcmRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICdvcGVuJyk7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './collapsable.directive';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29sbGFwc2FibGUuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description Abstract base class for dynamic Angular modules
|
|
3
|
-
* @summary The DynamicModule serves as a base class for Angular modules that need to be
|
|
4
|
-
* dynamically loaded or configured at runtime. It provides a common type for the rendering
|
|
5
|
-
* engine to identify and work with dynamic modules.
|
|
6
|
-
* @class DynamicModule
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* @NgModule({
|
|
10
|
-
* declarations: [MyComponent],
|
|
11
|
-
* imports: [CommonModule]
|
|
12
|
-
* })
|
|
13
|
-
* export class MyDynamicModule extends DynamicModule {}
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
export class DynamicModule {
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL0R5bmFtaWNNb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLE9BQWdCLGFBQWE7Q0FBRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGR5bmFtaWMgQW5ndWxhciBtb2R1bGVzXG4gKiBAc3VtbWFyeSBUaGUgRHluYW1pY01vZHVsZSBzZXJ2ZXMgYXMgYSBiYXNlIGNsYXNzIGZvciBBbmd1bGFyIG1vZHVsZXMgdGhhdCBuZWVkIHRvIGJlXG4gKiBkeW5hbWljYWxseSBsb2FkZWQgb3IgY29uZmlndXJlZCBhdCBydW50aW1lLiBJdCBwcm92aWRlcyBhIGNvbW1vbiB0eXBlIGZvciB0aGUgcmVuZGVyaW5nXG4gKiBlbmdpbmUgdG8gaWRlbnRpZnkgYW5kIHdvcmsgd2l0aCBkeW5hbWljIG1vZHVsZXMuXG4gKiBAY2xhc3MgRHluYW1pY01vZHVsZVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGRlY2xhcmF0aW9uczogW015Q29tcG9uZW50XSxcbiAqICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgTXlEeW5hbWljTW9kdWxlIGV4dGVuZHMgRHluYW1pY01vZHVsZSB7fVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEeW5hbWljTW9kdWxlIHt9XG4iXX0=
|