@ng-atomic/components 17.6.1 → 17.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/esm2022/atoms/icon/icon.atom.mjs +2 -2
  2. package/esm2022/frames/app/app.frame.mjs +12 -9
  3. package/esm2022/frames/auto-layout/auto-layout.frame.mjs +2 -2
  4. package/esm2022/frames/columns/columns.frame.mjs +2 -2
  5. package/esm2022/frames/divider/divider.frame.mjs +2 -2
  6. package/esm2022/frames/drawer/drawer.frame.mjs +2 -2
  7. package/esm2022/frames/entrance/entrance.frame.mjs +2 -2
  8. package/esm2022/frames/fab/fab.frame.mjs +2 -2
  9. package/esm2022/frames/line-up/line-up.frame.mjs +2 -2
  10. package/esm2022/frames/loading/loading.frame.mjs +2 -2
  11. package/esm2022/frames/router-outlet/router-outlet.frame.mjs +2 -2
  12. package/esm2022/frames/scroll/scroll.frame.mjs +2 -2
  13. package/esm2022/frames/scroll-v2/scroll.frame.mjs +2 -2
  14. package/esm2022/frames/side-nav/side-nav.frame.mjs +2 -2
  15. package/esm2022/frames/smart-menu/smart-menu.frame.mjs +2 -2
  16. package/esm2022/frames/vertical-hide/vertical-hide.frame.mjs +2 -2
  17. package/esm2022/molecules/date-input-field/date-input-field.molecule.mjs +2 -2
  18. package/esm2022/molecules/date-range-input-field/date-range-input-field.molecule.mjs +2 -2
  19. package/esm2022/molecules/grid-item/grid-item.molecule.mjs +2 -2
  20. package/esm2022/molecules/loading-box/loading-box.molecule.mjs +2 -2
  21. package/esm2022/molecules/navigation-list-item/navigation-list-item.molecule.mjs +2 -2
  22. package/esm2022/molecules/select-input-field/select-input-field.molecule.mjs +2 -2
  23. package/esm2022/organisms/action-buttons-section/action-buttons-section.organism.mjs +2 -2
  24. package/esm2022/organisms/action-input-section/action-input-section.organism.mjs +2 -2
  25. package/esm2022/organisms/card-input-section/card-input-section.organism.mjs +2 -2
  26. package/esm2022/organisms/cvc-and-exp-input-section/cvc-and-exp-input-section.organism.mjs +2 -2
  27. package/esm2022/organisms/date-input-section/date-input-section.organism.mjs +2 -2
  28. package/esm2022/organisms/date-range-input-section/date-range-input-section.organism.mjs +2 -2
  29. package/esm2022/organisms/definition-list/definition-list.organism.mjs +2 -2
  30. package/esm2022/organisms/file-input-section/file-input-section.organism.mjs +2 -2
  31. package/esm2022/organisms/grid-cards-section/grid-cards-section.organism.mjs +2 -2
  32. package/esm2022/organisms/heading/heading.organism.mjs +2 -2
  33. package/esm2022/organisms/menu-footer/menu-footer.organism.mjs +2 -2
  34. package/esm2022/organisms/menu-header/menu-header.organism.mjs +2 -2
  35. package/esm2022/organisms/messages-section/messages-section.organism.mjs +2 -2
  36. package/esm2022/organisms/navigation-list/navigation-list.organism.mjs +2 -2
  37. package/esm2022/organisms/navigator/navigator.organism.mjs +2 -2
  38. package/esm2022/organisms/number-input-section/number-input-section.organism.mjs +2 -2
  39. package/esm2022/organisms/paginator/paginator.organism.mjs +2 -2
  40. package/esm2022/organisms/password-input-section/password-input-section.organism.mjs +2 -2
  41. package/esm2022/organisms/select-input-section/select-input-section.organism.mjs +2 -2
  42. package/esm2022/organisms/slider-input-section/slider-input-section.organism.mjs +2 -2
  43. package/esm2022/organisms/social-login-section/social-login-section.organism.mjs +2 -2
  44. package/esm2022/organisms/table/table.organism.mjs +2 -2
  45. package/esm2022/organisms/text-input-section/text-input-section.organism.mjs +2 -2
  46. package/esm2022/organisms/textarea-section/textarea-section.organism.mjs +2 -2
  47. package/esm2022/organisms/thread-messages-section/thread-messages-section.organism.mjs +2 -2
  48. package/esm2022/pages/_index/index.page.mjs +24 -6
  49. package/esm2022/pages/form/form.page.mjs +23 -5
  50. package/esm2022/templates/_index/index.template.mjs +2 -2
  51. package/esm2022/templates/background/background.template.mjs +2 -2
  52. package/esm2022/templates/entrance/entrance.template.mjs +22 -36
  53. package/esm2022/templates/form/form.builder.mjs +415 -0
  54. package/esm2022/templates/form/form.template.mjs +24 -364
  55. package/esm2022/templates/form/index.mjs +2 -1
  56. package/esm2022/templates/icon-button-menu/icon-button-menu.template.mjs +2 -2
  57. package/esm2022/templates/menu/menu.template.mjs +2 -2
  58. package/esm2022/templates/selection/selection.template.mjs +2 -2
  59. package/esm2022/templates/settings/settings.template.mjs +2 -2
  60. package/fesm2022/ng-atomic-components-atoms-icon.mjs +2 -2
  61. package/fesm2022/ng-atomic-components-frames-app.mjs +11 -8
  62. package/fesm2022/ng-atomic-components-frames-app.mjs.map +1 -1
  63. package/fesm2022/ng-atomic-components-frames-auto-layout.mjs +2 -2
  64. package/fesm2022/ng-atomic-components-frames-columns.mjs +2 -2
  65. package/fesm2022/ng-atomic-components-frames-divider.mjs +2 -2
  66. package/fesm2022/ng-atomic-components-frames-drawer.mjs +2 -2
  67. package/fesm2022/ng-atomic-components-frames-entrance.mjs +2 -2
  68. package/fesm2022/ng-atomic-components-frames-entrance.mjs.map +1 -1
  69. package/fesm2022/ng-atomic-components-frames-fab.mjs +2 -2
  70. package/fesm2022/ng-atomic-components-frames-line-up.mjs +2 -2
  71. package/fesm2022/ng-atomic-components-frames-loading.mjs +2 -2
  72. package/fesm2022/ng-atomic-components-frames-router-outlet.mjs +2 -2
  73. package/fesm2022/ng-atomic-components-frames-scroll-v2.mjs +2 -2
  74. package/fesm2022/ng-atomic-components-frames-scroll.mjs +2 -2
  75. package/fesm2022/ng-atomic-components-frames-side-nav.mjs +2 -2
  76. package/fesm2022/ng-atomic-components-frames-smart-menu.mjs +2 -2
  77. package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs +2 -2
  78. package/fesm2022/ng-atomic-components-molecules-date-input-field.mjs +2 -2
  79. package/fesm2022/ng-atomic-components-molecules-date-range-input-field.mjs +2 -2
  80. package/fesm2022/ng-atomic-components-molecules-grid-item.mjs +2 -2
  81. package/fesm2022/ng-atomic-components-molecules-loading-box.mjs +2 -2
  82. package/fesm2022/ng-atomic-components-molecules-navigation-list-item.mjs +2 -2
  83. package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs +2 -2
  84. package/fesm2022/ng-atomic-components-organisms-action-buttons-section.mjs +2 -2
  85. package/fesm2022/ng-atomic-components-organisms-action-input-section.mjs +2 -2
  86. package/fesm2022/ng-atomic-components-organisms-card-input-section.mjs +2 -2
  87. package/fesm2022/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs +2 -2
  88. package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs +2 -2
  89. package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs +2 -2
  90. package/fesm2022/ng-atomic-components-organisms-definition-list.mjs +2 -2
  91. package/fesm2022/ng-atomic-components-organisms-file-input-section.mjs +2 -2
  92. package/fesm2022/ng-atomic-components-organisms-grid-cards-section.mjs +2 -2
  93. package/fesm2022/ng-atomic-components-organisms-heading.mjs +2 -2
  94. package/fesm2022/ng-atomic-components-organisms-menu-footer.mjs +2 -2
  95. package/fesm2022/ng-atomic-components-organisms-menu-header.mjs +2 -2
  96. package/fesm2022/ng-atomic-components-organisms-messages-section.mjs +2 -2
  97. package/fesm2022/ng-atomic-components-organisms-navigation-list.mjs +2 -2
  98. package/fesm2022/ng-atomic-components-organisms-navigator.mjs +2 -2
  99. package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs +2 -2
  100. package/fesm2022/ng-atomic-components-organisms-paginator.mjs +2 -2
  101. package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs +2 -2
  102. package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs +2 -2
  103. package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs +2 -2
  104. package/fesm2022/ng-atomic-components-organisms-social-login-section.mjs +2 -2
  105. package/fesm2022/ng-atomic-components-organisms-table.mjs +2 -2
  106. package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs +2 -2
  107. package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs +2 -2
  108. package/fesm2022/ng-atomic-components-organisms-thread-messages-section.mjs +2 -2
  109. package/fesm2022/ng-atomic-components-pages-_index.mjs +23 -5
  110. package/fesm2022/ng-atomic-components-pages-_index.mjs.map +1 -1
  111. package/fesm2022/ng-atomic-components-pages-form.mjs +22 -4
  112. package/fesm2022/ng-atomic-components-pages-form.mjs.map +1 -1
  113. package/fesm2022/ng-atomic-components-templates-_index.mjs +2 -2
  114. package/fesm2022/ng-atomic-components-templates-background.mjs +2 -2
  115. package/fesm2022/ng-atomic-components-templates-entrance.mjs +21 -35
  116. package/fesm2022/ng-atomic-components-templates-entrance.mjs.map +1 -1
  117. package/fesm2022/ng-atomic-components-templates-form.mjs +408 -337
  118. package/fesm2022/ng-atomic-components-templates-form.mjs.map +1 -1
  119. package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs +2 -2
  120. package/fesm2022/ng-atomic-components-templates-menu.mjs +2 -2
  121. package/fesm2022/ng-atomic-components-templates-selection.mjs +2 -2
  122. package/fesm2022/ng-atomic-components-templates-settings.mjs +2 -2
  123. package/frames/app/app.frame.d.ts +7 -4
  124. package/package.json +3 -3
  125. package/pages/_index/index.page.d.ts +5 -2
  126. package/pages/form/form.page.d.ts +3 -0
  127. package/templates/entrance/entrance.template.d.ts +3 -1
  128. package/templates/form/form.builder.d.ts +33 -0
  129. package/templates/form/form.template.d.ts +7 -13
  130. package/templates/form/index.d.ts +1 -0
@@ -1,52 +1,17 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, computed, inject, input } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, inject, input } from '@angular/core';
3
3
  import { FormBuilder } from '@angular/forms';
4
4
  import { ScrollFrame } from '@ng-atomic/components/frames/scroll-v2';
5
5
  import { AutoLayoutFrame } from '@ng-atomic/components/frames/auto-layout';
6
6
  import { HeaderMoleculeStore } from '@ng-atomic/components/molecules/header';
7
7
  import { ActionButtonsSectionOrganismStore } from '@ng-atomic/components/organisms/action-buttons-section';
8
8
  import { NavigatorOrganismStore } from '@ng-atomic/components/organisms/navigator';
9
- import { TextareaSectionOrganismStore } from '@ng-atomic/components/organisms/textarea-section';
10
- import { TextInputSectionOrganismStore } from '@ng-atomic/components/organisms/text-input-section';
11
- import { DateInputSectionOrganism } from '@ng-atomic/components/organisms/date-input-section';
12
- import { SelectInputSectionOrganismStore } from '@ng-atomic/components/organisms/select-input-section';
13
- import { DomainPipe } from '@ng-atomic/common/pipes/domain';
14
9
  import { Effect, InjectableComponent, _computed } from '@ng-atomic/core';
15
- import { ActionInputSectionOrganismStore } from '@ng-atomic/components/organisms/action-input-section';
16
10
  import { NgAtomicComponent } from '@ng-atomic/core';
17
- import { FileInputSectionOrganism, FileInputSectionOrganismStore } from '@ng-atomic/components/organisms/file-input-section';
18
- import { AgreementInputSectionOrganism } from '@ng-atomic/components/organisms/agreement-input-section';
19
- import { VideoSectionOrganism } from '@ng-atomic/components/organisms/video-section';
20
11
  import { NavActionId, injectIsRootPage, injectNavStartActions, makeConfig } from '@ng-atomic/common/services/ui';
21
- import { get } from 'lodash-es';
22
- import { NumberInputSectionOrganismStore } from '@ng-atomic/components/organisms/number-input-section';
23
- import { ImagePreviewSectionOrganism } from '@ng-atomic/components/organisms/image-preview-section';
24
- import { PasswordInputSectionOrganismStore } from '@ng-atomic/components/organisms/password-input-section';
25
- import { DateRangeInputSectionOrganism } from '@ng-atomic/components/organisms/date-range-input-section';
26
- import { SliderInputSectionOrganismStore } from '@ng-atomic/components/organisms/slider-input-section';
12
+ import { NgAtomicFormSectionBuilder } from './form.builder';
27
13
  import * as i0 from "@angular/core";
28
- function walkControls(controls, cb, excludes = [], name = '') {
29
- Object.entries(controls).forEach(([key, control]) => {
30
- const path = name === '' ? key : `${name}.${key}`;
31
- if (excludes.includes(path)) {
32
- cb(path, control);
33
- }
34
- else if (control.controls) {
35
- walkControls(control.controls, cb, excludes, path);
36
- }
37
- else {
38
- cb(path, control);
39
- }
40
- });
41
- }
42
- function flatControls(form, excludes) {
43
- const controlMap = new Map();
44
- walkControls(form?.controls, (name, control) => controlMap.set(name, control), [
45
- ...excludes,
46
- ]);
47
- return [...controlMap.entries()];
48
- }
49
- export var ActionId;
14
+ var ActionId;
50
15
  (function (ActionId) {
51
16
  ActionId["BACK"] = "[@ng-atomic/components/templates/form] Back";
52
17
  ActionId["CREATE"] = "[@ng-atomic/components/templates/form] Create";
@@ -66,12 +31,8 @@ export class FormTemplateStore extends InjectableComponent {
66
31
  this.formFlatExcludes = input(_computed(() => this.config().formFlatExcludes));
67
32
  this.actions = input(_computed(() => this.config().actions));
68
33
  this.fieldMap = input(_computed(() => this.config().fieldMap));
69
- this.controlEntries = computed(() => {
70
- return flatControls(this.form(), this.formFlatExcludes()).map(([name, control]) => ({
71
- name, control, field: get(this.fieldMap(), name) ?? { type: 'text' },
72
- }));
73
- });
74
34
  }
35
+ static { this.ActionId = ActionId; }
75
36
  static { this.Config = makeConfig(() => {
76
37
  const isRootPage = injectIsRootPage();
77
38
  const navStartActions = injectNavStartActions(isRootPage);
@@ -103,16 +64,6 @@ export class FormTemplate extends NgAtomicComponent {
103
64
  this.cd = inject(ChangeDetectorRef);
104
65
  }
105
66
  static { this.ActionId = ActionId; }
106
- dispatchFileInputAction(action, name) {
107
- switch (action.id) {
108
- case FileInputSectionOrganism.ActionId.FILE_SELECTED: {
109
- return this.dispatch({ id: ActionId.FILE_SELECTED, payload: { scope: name, files: action.payload } });
110
- }
111
- case FileInputSectionOrganism.ActionId.CANCEL: {
112
- return this.dispatch({ id: ActionId.CANCEL, payload: { scope: name } });
113
- }
114
- }
115
- }
116
67
  ngOnInit() {
117
68
  this.store.form().statusChanges.subscribe(() => this.cd.markForCheck());
118
69
  }
@@ -120,7 +71,7 @@ export class FormTemplate extends NgAtomicComponent {
120
71
  this.dispatch({ id: ActionId.BACK });
121
72
  }
122
73
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FormTemplate, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
123
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: FormTemplate, isStandalone: true, selector: "templates-form", host: { classAttribute: "template" }, usesInheritance: true, hostDirectives: [{ directive: FormTemplateStore, inputs: ["navStartActions", "navStartActions", "navEndActions", "navEndActions", "title", "title", "form", "form", "formFlatExcludes", "formFlatExcludes", "actions", "actions", "fieldMap", "fieldMap"] }], ngImport: i0, template: `
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: FormTemplate, isStandalone: true, selector: "templates-form", host: { classAttribute: "template" }, usesInheritance: true, hostDirectives: [{ directive: FormTemplateStore, inputs: ["navStartActions", "navStartActions", "navEndActions", "navEndActions", "title", "title", "form", "form", "formFlatExcludes", "formFlatExcludes", "actions", "actions", "fieldMap", "fieldMap"] }], ngImport: i0, template: `
124
75
  <frames-scroll>
125
76
  <organisms-navigator injectable
126
77
  [startActions]="store.navStartActions()"
@@ -131,158 +82,19 @@ export class FormTemplate extends NgAtomicComponent {
131
82
  <molecules-header injectable [title]="store.title()" [description]="''"/>
132
83
  </organisms-navigator>
133
84
  <frames-auto-layout vertical>
134
- @for (entry of store.controlEntries(); track entry.name;) {
135
- @switch (entry.field.type) {
136
- @case ('select') {
137
- @defer {
138
- <organisms-select-input-section injectable
139
- [label]="entry.name | domain"
140
- [control]="entry.control"
141
- [hint]="entry.field.hint"
142
- [options]="entry.field.options"
143
- [placeholder]="entry.field.placeholder"
144
- [actions]="entry.field.actions"
145
- [multiple]="entry.field?.multiple"
146
- (action)="dispatch($event)"
147
- />
148
- }
149
- }
150
- @case ('date') {
151
- <!-- @defer { -->
152
- <organisms-date-input-section
153
- [label]="entry.name | domain"
154
- [hint]="entry.field.hint"
155
- [control]="entry.control"
156
- [actions]="entry.field.actions"
157
- (action)="dispatch($event)"
158
- />
159
- <!-- } -->
160
- }
161
- @case ('date-range') {
162
- <organisms-date-range-input-section
163
- [label]="entry.name | domain"
164
- [hint]="entry.field.hint"
165
- [control]="entry.control"
166
- [actions]="entry.field.actions"
167
- (action)="dispatch($event)"
168
- />
169
- }
170
- @case ('text') {
171
- @defer {
172
- <organisms-text-input-section injectable
173
- [label]="entry.name | domain"
174
- [control]="entry.control"
175
- [actions]="entry.field.actions"
176
- [hint]="entry.field.hint"
177
- [placeholder]="entry.field.placeholder"
178
- [autoComplete]="entry.field.autoComplete"
179
- (action)="dispatch($event)"
180
- />
181
- }
182
- }
183
- @case ('number') {
184
- @defer {
185
- <organisms-number-input-section injectable
186
- [label]="entry.name | domain"
187
- [control]="entry.control"
188
- [actions]="entry.field.actions"
189
- [hint]="entry.field.hint"
190
- [placeholder]="entry.field.placeholder"
191
- (action)="dispatch($event)"
192
- />
193
- }
194
- }
195
- @case ('textarea') {
196
- @defer {
197
- <organisms-textarea-section injectable
198
- [label]="entry.name | domain"
199
- [control]="entry.control"
200
- [hint]="entry.field.hint"
201
- [rows]="entry.field.rows"
202
- [placeholder]="entry.field.placeholder"
203
- (action)="dispatch($event)"
204
- />
205
- }
206
- }
207
- @case ('password') {
208
- @defer {
209
- <organisms-password-input-section injectable
210
- [label]="entry.name | domain"
211
- [control]="entry.control"
212
- [hint]="entry.field.hint"
213
- [placeholder]="entry.field.placeholder"
214
- [actions]="entry.field.actions"
215
- (action)="dispatch($event)"
216
- />
217
- }
218
- }
219
- @case ('action') {
220
- @defer {
221
- <organisms-action-input-section injectable
222
- [label]="entry.name | domain"
223
- [control]="entry.control"
224
- [hint]="entry.field.hint"
225
- [actions]="entry.field.actions"
226
- (action)="dispatch($event)"
227
- />
228
- }
229
- }
230
- @case ('file') {
231
- @defer {
232
- <organisms-file-input-section injectable
233
- [label]="entry.name | domain"
234
- [control]="entry.control"
235
- [hint]="entry.field.hint"
236
- [progress]="entry.field?.progress"
237
- (action)="dispatchFileInputAction($event, entry.name)"
238
- />
239
- }
240
- }
241
- @case ('slider') {
242
- @defer {
243
- <organisms-slider-input-section injectable
244
- [label]="entry.name | domain"
245
- [control]="entry.control"
246
- [max]="entry.field?.slider?.max"
247
- [min]="entry.field?.slider?.min"
248
- [step]="entry.field?.slider?.step"
249
- (action)="dispatch($event)"
250
- />
251
- }
252
- }
253
- @case ('agreement') {
254
- @defer {
255
- <organisms-agreement-input-section injectable
256
- [control]="entry.control"
257
- [labelTemp]="entry.field?.labelTemp"
258
- />
259
- }
260
- }
261
- @case ('preview') {
262
- @defer {
263
- <organisms-video-section injectable
264
- [src]="entry.control.value"
265
- [autoplay]="false"
266
- />
267
- }
268
- }
269
- @case ('preview:image') {
270
- @defer {
271
- <organisms-image-preview-section
272
- [src]="entry.control.value"
273
- />
274
- }
275
- }
276
- @case ('hidden') { }
277
- }
278
- }
85
+ <ng-atomic-form-section-builder
86
+ [form]="store.form()"
87
+ [formFlatExcludes]="store.formFlatExcludes()"
88
+ [fieldMap]="store.fieldMap()"
89
+ (action)="dispatch($event)"
90
+ />
279
91
  <organisms-action-buttons-section injectable
280
92
  [actions]="store.actions()"
281
93
  (action)="dispatch($event)"
282
94
  />
283
95
  </frames-auto-layout>
284
96
  </frames-scroll>
285
- `, isInline: true, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-form-o05L: var(--horizontal-padding);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-form-o05L: var(--vertical-padding);--gap: 16px;--gap-SCOPED-IN-form-o05L: var(--gap);--primary-color: #404040;--primary-color-SCOPED-IN-form-o05L: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-form-o05L: var(--on-primary-color);--secondary-color: #f0f0f0;--secondary-color-SCOPED-IN-form-o05L: var(--secondary-color);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-form-o05L: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-form-o05L: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-form-o05L: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-form-o05L: var(--on-background-color);--navigator-background-color: var(--primary-color-SCOPED-IN-form-o05L);--navigator-background-color-SCOPED-IN-form-o05L: var(--navigator-background-color);--navigator-on-background-color: var(--on-primary-color-SCOPED-IN-form-o05L);--navigator-on-background-color-SCOPED-IN-form-o05L: var(--navigator-on-background-color)}:host{display:block;width:100%;height:100%;background:var(--background-color-SCOPED-IN-form-o05L);color:var(--on-background-color-SCOPED-IN-form-o05L)}:host frames-auto-layout{height:-moz-fit-content;height:fit-content;--gap: var(--gap-SCOPED-IN-form-o05L);--vertical-padding: var(--vertical-padding-SCOPED-IN-form-o05L)}:host frames-auto-layout *{--horizontal-padding: var(--horizontal-padding-SCOPED-IN-form-o05L)}:host organisms-navigator{--background-color: var(--navigator-background-color-SCOPED-IN-form-o05L);--on-background-color: var(--navigator-on-background-color-SCOPED-IN-form-o05L)}:host *{--primary-color: var(--primary-color-SCOPED-IN-form-o05L);--on-primary-color: var(--on-primary-color-SCOPED-IN-form-o05L);--surface-color: var(--surface-color-SCOPED-IN-form-o05L);--on-surface-color: var(--on-surface-color-SCOPED-IN-form-o05L);--background-color: var(--background-color-SCOPED-IN-form-o05L);--on-background-color: var(--on-background-color-SCOPED-IN-form-o05L)}\n"], dependencies: [{ kind: "pipe", type: DomainPipe, name: "domain" }, { kind: "component", type: AutoLayoutFrame, selector: "frames-auto-layout" }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "directive", type: ActionButtonsSectionOrganismStore, selector: "organisms-action-buttons-section", inputs: ["actions", "type"] }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }, { kind: "component", type: DateInputSectionOrganism, selector: "organisms-date-input-section" }, { kind: "component", type: DateRangeInputSectionOrganism, selector: "organisms-date-range-input-section" }, { kind: "directive", type: HeaderMoleculeStore, selector: "molecules-header", inputs: ["title", "description"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
+ `, isInline: true, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-form-uWa2: var(--horizontal-padding);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-form-uWa2: var(--vertical-padding);--gap: 16px;--gap-SCOPED-IN-form-uWa2: var(--gap);--primary-color: #404040;--primary-color-SCOPED-IN-form-uWa2: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-form-uWa2: var(--on-primary-color);--secondary-color: #f0f0f0;--secondary-color-SCOPED-IN-form-uWa2: var(--secondary-color);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-form-uWa2: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-form-uWa2: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-form-uWa2: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-form-uWa2: var(--on-background-color);--navigator-background-color: var(--primary-color-SCOPED-IN-form-uWa2);--navigator-background-color-SCOPED-IN-form-uWa2: var(--navigator-background-color);--navigator-on-background-color: var(--on-primary-color-SCOPED-IN-form-uWa2);--navigator-on-background-color-SCOPED-IN-form-uWa2: var(--navigator-on-background-color)}:host{display:block;width:100%;height:100%;background:var(--background-color-SCOPED-IN-form-uWa2);color:var(--on-background-color-SCOPED-IN-form-uWa2)}:host frames-auto-layout{height:-moz-fit-content;height:fit-content;--gap: var(--gap-SCOPED-IN-form-uWa2);--vertical-padding: var(--vertical-padding-SCOPED-IN-form-uWa2)}:host frames-auto-layout *{--horizontal-padding: var(--horizontal-padding-SCOPED-IN-form-uWa2)}:host organisms-navigator{--background-color: var(--navigator-background-color-SCOPED-IN-form-uWa2);--on-background-color: var(--navigator-on-background-color-SCOPED-IN-form-uWa2)}:host *{--primary-color: var(--primary-color-SCOPED-IN-form-uWa2);--on-primary-color: var(--on-primary-color-SCOPED-IN-form-uWa2);--surface-color: var(--surface-color-SCOPED-IN-form-uWa2);--on-surface-color: var(--on-surface-color-SCOPED-IN-form-uWa2);--background-color: var(--background-color-SCOPED-IN-form-uWa2);--on-background-color: var(--on-background-color-SCOPED-IN-form-uWa2)}\n"], dependencies: [{ kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap"] }, { kind: "directive", type: HeaderMoleculeStore, selector: "molecules-header", inputs: ["title", "description"] }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }, { kind: "component", type: AutoLayoutFrame, selector: "frames-auto-layout" }, { kind: "directive", type: ActionButtonsSectionOrganismStore, selector: "organisms-action-buttons-section", inputs: ["actions", "type"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
286
98
  }
287
99
  __decorate([
288
100
  Effect(NavActionId.BACK),
@@ -293,25 +105,12 @@ __decorate([
293
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FormTemplate, decorators: [{
294
106
  type: Component,
295
107
  args: [{ standalone: true, imports: [
296
- DomainPipe,
297
- AgreementInputSectionOrganism,
298
- AutoLayoutFrame,
108
+ NgAtomicFormSectionBuilder,
109
+ HeaderMoleculeStore,
299
110
  ScrollFrame,
300
- ActionButtonsSectionOrganismStore,
301
- ActionInputSectionOrganismStore,
302
- FileInputSectionOrganismStore,
303
111
  NavigatorOrganismStore,
304
- DateInputSectionOrganism,
305
- DateRangeInputSectionOrganism,
306
- TextInputSectionOrganismStore,
307
- NumberInputSectionOrganismStore,
308
- TextareaSectionOrganismStore,
309
- SelectInputSectionOrganismStore,
310
- SliderInputSectionOrganismStore,
311
- HeaderMoleculeStore,
312
- VideoSectionOrganism,
313
- ImagePreviewSectionOrganism,
314
- PasswordInputSectionOrganismStore,
112
+ AutoLayoutFrame,
113
+ ActionButtonsSectionOrganismStore,
315
114
  ], selector: 'templates-form', template: `
316
115
  <frames-scroll>
317
116
  <organisms-navigator injectable
@@ -323,151 +122,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
323
122
  <molecules-header injectable [title]="store.title()" [description]="''"/>
324
123
  </organisms-navigator>
325
124
  <frames-auto-layout vertical>
326
- @for (entry of store.controlEntries(); track entry.name;) {
327
- @switch (entry.field.type) {
328
- @case ('select') {
329
- @defer {
330
- <organisms-select-input-section injectable
331
- [label]="entry.name | domain"
332
- [control]="entry.control"
333
- [hint]="entry.field.hint"
334
- [options]="entry.field.options"
335
- [placeholder]="entry.field.placeholder"
336
- [actions]="entry.field.actions"
337
- [multiple]="entry.field?.multiple"
338
- (action)="dispatch($event)"
339
- />
340
- }
341
- }
342
- @case ('date') {
343
- <!-- @defer { -->
344
- <organisms-date-input-section
345
- [label]="entry.name | domain"
346
- [hint]="entry.field.hint"
347
- [control]="entry.control"
348
- [actions]="entry.field.actions"
349
- (action)="dispatch($event)"
350
- />
351
- <!-- } -->
352
- }
353
- @case ('date-range') {
354
- <organisms-date-range-input-section
355
- [label]="entry.name | domain"
356
- [hint]="entry.field.hint"
357
- [control]="entry.control"
358
- [actions]="entry.field.actions"
359
- (action)="dispatch($event)"
360
- />
361
- }
362
- @case ('text') {
363
- @defer {
364
- <organisms-text-input-section injectable
365
- [label]="entry.name | domain"
366
- [control]="entry.control"
367
- [actions]="entry.field.actions"
368
- [hint]="entry.field.hint"
369
- [placeholder]="entry.field.placeholder"
370
- [autoComplete]="entry.field.autoComplete"
371
- (action)="dispatch($event)"
372
- />
373
- }
374
- }
375
- @case ('number') {
376
- @defer {
377
- <organisms-number-input-section injectable
378
- [label]="entry.name | domain"
379
- [control]="entry.control"
380
- [actions]="entry.field.actions"
381
- [hint]="entry.field.hint"
382
- [placeholder]="entry.field.placeholder"
383
- (action)="dispatch($event)"
384
- />
385
- }
386
- }
387
- @case ('textarea') {
388
- @defer {
389
- <organisms-textarea-section injectable
390
- [label]="entry.name | domain"
391
- [control]="entry.control"
392
- [hint]="entry.field.hint"
393
- [rows]="entry.field.rows"
394
- [placeholder]="entry.field.placeholder"
395
- (action)="dispatch($event)"
396
- />
397
- }
398
- }
399
- @case ('password') {
400
- @defer {
401
- <organisms-password-input-section injectable
402
- [label]="entry.name | domain"
403
- [control]="entry.control"
404
- [hint]="entry.field.hint"
405
- [placeholder]="entry.field.placeholder"
406
- [actions]="entry.field.actions"
407
- (action)="dispatch($event)"
408
- />
409
- }
410
- }
411
- @case ('action') {
412
- @defer {
413
- <organisms-action-input-section injectable
414
- [label]="entry.name | domain"
415
- [control]="entry.control"
416
- [hint]="entry.field.hint"
417
- [actions]="entry.field.actions"
418
- (action)="dispatch($event)"
419
- />
420
- }
421
- }
422
- @case ('file') {
423
- @defer {
424
- <organisms-file-input-section injectable
425
- [label]="entry.name | domain"
426
- [control]="entry.control"
427
- [hint]="entry.field.hint"
428
- [progress]="entry.field?.progress"
429
- (action)="dispatchFileInputAction($event, entry.name)"
430
- />
431
- }
432
- }
433
- @case ('slider') {
434
- @defer {
435
- <organisms-slider-input-section injectable
436
- [label]="entry.name | domain"
437
- [control]="entry.control"
438
- [max]="entry.field?.slider?.max"
439
- [min]="entry.field?.slider?.min"
440
- [step]="entry.field?.slider?.step"
441
- (action)="dispatch($event)"
442
- />
443
- }
444
- }
445
- @case ('agreement') {
446
- @defer {
447
- <organisms-agreement-input-section injectable
448
- [control]="entry.control"
449
- [labelTemp]="entry.field?.labelTemp"
450
- />
451
- }
452
- }
453
- @case ('preview') {
454
- @defer {
455
- <organisms-video-section injectable
456
- [src]="entry.control.value"
457
- [autoplay]="false"
458
- />
459
- }
460
- }
461
- @case ('preview:image') {
462
- @defer {
463
- <organisms-image-preview-section
464
- [src]="entry.control.value"
465
- />
466
- }
467
- }
468
- @case ('hidden') { }
469
- }
470
- }
125
+ <ng-atomic-form-section-builder
126
+ [form]="store.form()"
127
+ [formFlatExcludes]="store.formFlatExcludes()"
128
+ [fieldMap]="store.fieldMap()"
129
+ (action)="dispatch($event)"
130
+ />
471
131
  <organisms-action-buttons-section injectable
472
132
  [actions]="store.actions()"
473
133
  (action)="dispatch($event)"
@@ -487,6 +147,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
487
147
  'fieldMap',
488
148
  ],
489
149
  },
490
- ], host: { class: 'template' }, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-form-o05L: var(--horizontal-padding);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-form-o05L: var(--vertical-padding);--gap: 16px;--gap-SCOPED-IN-form-o05L: var(--gap);--primary-color: #404040;--primary-color-SCOPED-IN-form-o05L: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-form-o05L: var(--on-primary-color);--secondary-color: #f0f0f0;--secondary-color-SCOPED-IN-form-o05L: var(--secondary-color);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-form-o05L: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-form-o05L: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-form-o05L: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-form-o05L: var(--on-background-color);--navigator-background-color: var(--primary-color-SCOPED-IN-form-o05L);--navigator-background-color-SCOPED-IN-form-o05L: var(--navigator-background-color);--navigator-on-background-color: var(--on-primary-color-SCOPED-IN-form-o05L);--navigator-on-background-color-SCOPED-IN-form-o05L: var(--navigator-on-background-color)}:host{display:block;width:100%;height:100%;background:var(--background-color-SCOPED-IN-form-o05L);color:var(--on-background-color-SCOPED-IN-form-o05L)}:host frames-auto-layout{height:-moz-fit-content;height:fit-content;--gap: var(--gap-SCOPED-IN-form-o05L);--vertical-padding: var(--vertical-padding-SCOPED-IN-form-o05L)}:host frames-auto-layout *{--horizontal-padding: var(--horizontal-padding-SCOPED-IN-form-o05L)}:host organisms-navigator{--background-color: var(--navigator-background-color-SCOPED-IN-form-o05L);--on-background-color: var(--navigator-on-background-color-SCOPED-IN-form-o05L)}:host *{--primary-color: var(--primary-color-SCOPED-IN-form-o05L);--on-primary-color: var(--on-primary-color-SCOPED-IN-form-o05L);--surface-color: var(--surface-color-SCOPED-IN-form-o05L);--on-surface-color: var(--on-surface-color-SCOPED-IN-form-o05L);--background-color: var(--background-color-SCOPED-IN-form-o05L);--on-background-color: var(--on-background-color-SCOPED-IN-form-o05L)}\n"] }]
150
+ ], host: { class: 'template' }, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-form-uWa2: var(--horizontal-padding);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-form-uWa2: var(--vertical-padding);--gap: 16px;--gap-SCOPED-IN-form-uWa2: var(--gap);--primary-color: #404040;--primary-color-SCOPED-IN-form-uWa2: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-form-uWa2: var(--on-primary-color);--secondary-color: #f0f0f0;--secondary-color-SCOPED-IN-form-uWa2: var(--secondary-color);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-form-uWa2: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-form-uWa2: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-form-uWa2: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-form-uWa2: var(--on-background-color);--navigator-background-color: var(--primary-color-SCOPED-IN-form-uWa2);--navigator-background-color-SCOPED-IN-form-uWa2: var(--navigator-background-color);--navigator-on-background-color: var(--on-primary-color-SCOPED-IN-form-uWa2);--navigator-on-background-color-SCOPED-IN-form-uWa2: var(--navigator-on-background-color)}:host{display:block;width:100%;height:100%;background:var(--background-color-SCOPED-IN-form-uWa2);color:var(--on-background-color-SCOPED-IN-form-uWa2)}:host frames-auto-layout{height:-moz-fit-content;height:fit-content;--gap: var(--gap-SCOPED-IN-form-uWa2);--vertical-padding: var(--vertical-padding-SCOPED-IN-form-uWa2)}:host frames-auto-layout *{--horizontal-padding: var(--horizontal-padding-SCOPED-IN-form-uWa2)}:host organisms-navigator{--background-color: var(--navigator-background-color-SCOPED-IN-form-uWa2);--on-background-color: var(--navigator-on-background-color-SCOPED-IN-form-uWa2)}:host *{--primary-color: var(--primary-color-SCOPED-IN-form-uWa2);--on-primary-color: var(--on-primary-color-SCOPED-IN-form-uWa2);--surface-color: var(--surface-color-SCOPED-IN-form-uWa2);--on-surface-color: var(--on-surface-color-SCOPED-IN-form-uWa2);--background-color: var(--background-color-SCOPED-IN-form-uWa2);--on-background-color: var(--on-background-color-SCOPED-IN-form-uWa2)}\n"] }]
491
151
  }], propDecorators: { back: [] } });
492
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS50ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tcG9uZW50cy9zcmMvbGliL3RlbXBsYXRlcy9mb3JtL2Zvcm0udGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRXZHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU1RCxPQUFPLEVBQVUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3ZHLE9BQU8sRUFB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aW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIERpcmVjdGl2ZSwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTY3JvbGxGcmFtZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9mcmFtZXMvc2Nyb2xsLXYyJztcbmltcG9ydCB7IEF1dG9MYXlvdXRGcmFtZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9mcmFtZXMvYXV0by1sYXlvdXQnO1xuaW1wb3J0IHsgSGVhZGVyTW9sZWN1bGVTdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9tb2xlY3VsZXMvaGVhZGVyJztcbmltcG9ydCB7IEFjdGlvbkJ1dHRvbnNTZWN0aW9uT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvYWN0aW9uLWJ1dHRvbnMtc2VjdGlvbic7XG5pbXBvcnQgeyBOYXZpZ2F0b3JPcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9uYXZpZ2F0b3InO1xuaW1wb3J0IHsgVGV4dGFyZWFTZWN0aW9uT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvdGV4dGFyZWEtc2VjdGlvbic7XG5pbXBvcnQgeyBUZXh0SW5wdXRTZWN0aW9uT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvdGV4dC1pbnB1dC1zZWN0aW9uJztcbmltcG9ydCB7IERhdGVJbnB1dFNlY3Rpb25PcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvZGF0ZS1pbnB1dC1zZWN0aW9uJztcbmltcG9ydCB7IFNlbGVjdElucHV0U2VjdGlvbk9yZ2FuaXNtU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3NlbGVjdC1pbnB1dC1zZWN0aW9uJztcbmltcG9ydCB7IEZvcm1GaWVsZE1hcCB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL3NtYXJ0LWZpZWxkJztcbmltcG9ydCB7IERvbWFpblBpcGUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9kb21haW4nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aW9uLCBFZmZlY3QsIEluamVjdGFibGVDb21wb25lbnQsIF9jb21wdXRlZCB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25JbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9hY3Rpb24taW5wdXQtc2VjdGlvbic7XG5pbXBvcnQgeyBOZ0F0b21pY0NvbXBvbmVudCB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBGaWxlSW5wdXRTZWN0aW9uT3JnYW5pc20sIEZpbGVJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9maWxlLWlucHV0LXNlY3Rpb24nO1xuaW1wb3J0IHsgQWdyZWVtZW50SW5wdXRTZWN0aW9uT3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2FncmVlbWVudC1pbnB1dC1zZWN0aW9uJztcbmltcG9ydCB7IFZpZGVvU2VjdGlvbk9yZ2FuaXNtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy92aWRlby1zZWN0aW9uJztcbmltcG9ydCB7IE5hdkFjdGlvbklkLCBpbmplY3RJc1Jvb3RQYWdlLCBpbmplY3ROYXZTdGFydEFjdGlvbnMsIG1ha2VDb25maWcgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aSc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgTnVtYmVySW5wdXRTZWN0aW9uT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvbnVtYmVyLWlucHV0LXNlY3Rpb24nO1xuaW1wb3J0IHsgSW1hZ2VQcmV2aWV3U2VjdGlvbk9yZ2FuaXNtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9pbWFnZS1wcmV2aWV3LXNlY3Rpb24nO1xuaW1wb3J0IHsgUGFzc3dvcmRJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9wYXNzd29yZC1pbnB1dC1zZWN0aW9uJztcbmltcG9ydCB7IERhdGVSYW5nZUlucHV0U2VjdGlvbk9yZ2FuaXNtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9kYXRlLXJhbmdlLWlucHV0LXNlY3Rpb24nO1xuaW1wb3J0IHsgU2xpZGVySW5wdXRTZWN0aW9uT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvc2xpZGVyLWlucHV0LXNlY3Rpb24nO1xuXG5mdW5jdGlvbiB3YWxrQ29udHJvbHMoY29udHJvbHM6IGFueSwgY2I6IChuYW1lOiBzdHJpbmcsIGNvbnRyb2w6IGFueSkgPT4gdm9pZCwgZXhjbHVkZXM6IHN0cmluZ1tdID0gW10sIG5hbWUgPSAnJykge1xuICBPYmplY3QuZW50cmllcyhjb250cm9scykuZm9yRWFjaCgoW2tleSwgY29udHJvbF06IGFueSkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBuYW1lID09PSAnJyA/IGtleSA6IGAke25hbWV9LiR7a2V5fWA7XG4gICAgaWYgKGV4Y2x1ZGVzLmluY2x1ZGVzKHBhdGgpKSB7XG4gICAgICBjYihwYXRoLCBjb250cm9sKTtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wuY29udHJvbHMpIHtcbiAgICAgIHdhbGtDb250cm9scyhjb250cm9sLmNvbnRyb2xzLCBjYiwgZXhjbHVkZXMsIHBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYihwYXRoLCBjb250cm9sKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBmbGF0Q29udHJvbHMoZm9ybTogRm9ybUdyb3VwLCBleGNsdWRlczogc3RyaW5nW10pOiBbc3RyaW5nLCBBYnN0cmFjdENvbnRyb2xdW10ge1xuICBjb25zdCBjb250cm9sTWFwID0gbmV3IE1hcDxzdHJpbmcsIEFic3RyYWN0Q29udHJvbD4oKTtcbiAgd2Fsa0NvbnRyb2xzKGZvcm0/LmNvbnRyb2xzLCAobmFtZSwgY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiBjb250cm9sTWFwLnNldChuYW1lLCBjb250cm9sKSwgW1xuICAgIC4uLmV4Y2x1ZGVzLFxuICBdKTtcbiAgcmV0dXJuIFsuLi5jb250cm9sTWFwLmVudHJpZXMoKV07XG59XG5cbmV4cG9ydCBlbnVtIEFjdGlvbklkIHtcbiAgQkFDSyA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9mb3JtXSBCYWNrJyxcbiAgQ1JFQVRFID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvdGVtcGxhdGVzL2Zvcm1dIENyZWF0ZScsXG4gIFVQREFURSA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9mb3JtXSBVcGRhdGUnLFxuICBERUxFVEUgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy90ZW1wbGF0ZXMvZm9ybV0gRGVsZXRlJyxcbiAgRklMRV9TRUxFQ1RFRCA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9mb3JtXSBGaWxlIHNlbGVjdGVkJyxcbiAgQ0FOQ0VMID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvdGVtcGxhdGVzL2Zvcm1dIENhbmNlbCcsXG59XG5cbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgRm9ybVRlbXBsYXRlU3RvcmUgZXh0ZW5kcyBJbmplY3RhYmxlQ29tcG9uZW50IHtcbiAgc3RhdGljIHJlYWRvbmx5IENvbmZpZyA9IG1ha2VDb25maWcoKCkgPT4ge1xuICAgIGNvbnN0IGlzUm9vdFBhZ2UgPSBpbmplY3RJc1Jvb3RQYWdlKCk7XG4gICAgY29uc3QgbmF2U3RhcnRBY3Rpb25zID0gaW5qZWN0TmF2U3RhcnRBY3Rpb25zKGlzUm9vdFBhZ2UpO1xuICAgIHJldHVybiAoKSA9PiAoe1xuICAgICAgbmF2U3RhcnRBY3Rpb25zOiBuYXZTdGFydEFjdGlvbnMoKSxcbiAgICAgIG5hdkVuZEFjdGlvbnM6IFt7aWQ6IEFjdGlvbklkLkRFTEVURSwgbmFtZTogJ+WJiumZpCcsIGljb246ICdkZWxldGUnfV0gYXMgQWN0aW9uW10sXG4gICAgICB0aXRsZTogJycsXG4gICAgICBmb3JtOiBpbmplY3QoRm9ybUJ1aWxkZXIpLmdyb3VwKHtpZDogWycnXX0pLFxuICAgICAgZm9ybUZsYXRFeGNsdWRlczogW10gYXMgc3RyaW5nW10sXG4gICAgICBhY3Rpb25zOiBbe2lkOiBBY3Rpb25JZC5DUkVBVEUsIG5hbWU6ICfkvZzmiJAnfV0gYXMgQWN0aW9uW10sXG4gICAgICBmaWVsZE1hcDoge1xuICAgICAgICBjcmVhdGVkQXQ6IHsgdHlwZTogJ2RhdGUnIH0sXG4gICAgICAgIHVwZGF0ZWRBdDogeyB0eXBlOiAnZGF0ZScgfSxcbiAgICAgICAgZGVsZXRlZEF0OiB7IHR5cGU6ICdkYXRlJyB9LFxuICAgICAgfSBhcyBGb3JtRmllbGRNYXAsXG4gICAgfSk7XG4gIH0sIFsnY29tcG9uZW50cycsICd0ZW1wbGF0ZXMnLCAnZm9ybSddKTtcbiAgcmVhZG9ubHkgY29uZmlnID0gRm9ybVRlbXBsYXRlU3RvcmUuQ29uZmlnLmluamVjdCgpO1xuICByZWFkb25seSBuYXZTdGFydEFjdGlvbnMgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5uYXZTdGFydEFjdGlvbnMpKTtcbiAgcmVhZG9ubHkgbmF2RW5kQWN0aW9ucyA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLm5hdkVuZEFjdGlvbnMpKTtcbiAgcmVhZG9ubHkgdGl0bGUgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS50aXRsZSkpO1xuICByZWFkb25seSBmb3JtID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuZm9ybSkpO1xuICByZWFkb25seSBmb3JtRmxhdEV4Y2x1ZGVzID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuZm9ybUZsYXRFeGNsdWRlcykpO1xuICByZWFkb25seSBhY3Rpb25zID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuYWN0aW9ucykpO1xuICByZWFkb25seSBmaWVsZE1hcCA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmZpZWxkTWFwKSk7XG4gIHJlYWRvbmx5IGNvbnRyb2xFbnRyaWVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBmbGF0Q29udHJvbHModGhpcy5mb3JtKCksIHRoaXMuZm9ybUZsYXRFeGNsdWRlcygpKS5tYXAoKFtuYW1lLCBjb250cm9sXSkgPT4gKHtcbiAgICAgIG5hbWUsIGNvbnRyb2wsIGZpZWxkOiBnZXQodGhpcy5maWVsZE1hcCgpLCBuYW1lKSA/PyB7dHlwZTogJ3RleHQnfSxcbiAgICB9KSk7XG4gIH0pO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIERvbWFpblBpcGUsXG4gICAgQWdyZWVtZW50SW5wdXRTZWN0aW9uT3JnYW5pc20sXG4gICAgQXV0b0xheW91dEZyYW1lLFxuICAgIFNjcm9sbEZyYW1lLFxuICAgIEFjdGlvbkJ1dHRvbnNTZWN0aW9uT3JnYW5pc21TdG9yZSxcbiAgICBBY3Rpb25JbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlLFxuICAgIEZpbGVJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlLFxuICAgIE5hdmlnYXRvck9yZ2FuaXNtU3RvcmUsXG4gICAgRGF0ZUlucHV0U2VjdGlvbk9yZ2FuaXNtLFxuICAgIERhdGVSYW5nZUlucHV0U2VjdGlvbk9yZ2FuaXNtLFxuICAgIFRleHRJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlLFxuICAgIE51bWJlcklucHV0U2VjdGlvbk9yZ2FuaXNtU3RvcmUsXG4gICAgVGV4dGFyZWFTZWN0aW9uT3JnYW5pc21TdG9yZSxcbiAgICBTZWxlY3RJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlLFxuICAgIFNsaWRlcklucHV0U2VjdGlvbk9yZ2FuaXNtU3RvcmUsXG4gICAgSGVhZGVyTW9sZWN1bGVTdG9yZSxcbiAgICBWaWRlb1NlY3Rpb25PcmdhbmlzbSxcbiAgICBJbWFnZVByZXZpZXdTZWN0aW9uT3JnYW5pc20sXG4gICAgUGFzc3dvcmRJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlLFxuICBdLFxuICBzZWxlY3RvcjogJ3RlbXBsYXRlcy1mb3JtJyxcbiAgdGVtcGxhdGU6IGBcbiAgPGZyYW1lcy1zY3JvbGw+XG4gICAgPG9yZ2FuaXNtcy1uYXZpZ2F0b3IgaW5qZWN0YWJsZVxuICAgICAgW3N0YXJ0QWN0aW9uc109XCJzdG9yZS5uYXZTdGFydEFjdGlvbnMoKVwiXG4gICAgICBbZW5kQWN0aW9uc109XCJzdG9yZS5uYXZFbmRBY3Rpb25zKClcIlxuICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgIHRvcFxuICAgID5cbiAgICAgIDxtb2xlY3VsZXMtaGVhZGVyIGluamVjdGFibGUgW3RpdGxlXT1cInN0b3JlLnRpdGxlKClcIiBbZGVzY3JpcHRpb25dPVwiJydcIi8+XG4gICAgPC9vcmdhbmlzbXMtbmF2aWdhdG9yPlxuICAgIDxmcmFtZXMtYXV0by1sYXlvdXQgdmVydGljYWw+XG4gICAgICBAZm9yIChlbnRyeSBvZiBzdG9yZS5jb250cm9sRW50cmllcygpOyB0cmFjayBlbnRyeS5uYW1lOykge1xuICAgICAgICBAc3dpdGNoIChlbnRyeS5maWVsZC50eXBlKSB7XG4gICAgICAgICAgQGNhc2UgKCdzZWxlY3QnKSB7XG4gICAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgICA8b3JnYW5pc21zLXNlbGVjdC1pbnB1dC1zZWN0aW9uIGluamVjdGFibGVcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZW50cnkubmFtZSB8IGRvbWFpblwiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiZW50cnkuY29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2hpbnRdPVwiZW50cnkuZmllbGQuaGludFwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiZW50cnkuZmllbGQub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVudHJ5LmZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbYWN0aW9uc109XCJlbnRyeS5maWVsZC5hY3Rpb25zXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwiZW50cnkuZmllbGQ/Lm11bHRpcGxlXCJcbiAgICAgICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoJ2RhdGUnKSB7XG4gICAgICAgICAgICA8IS0tIEBkZWZlciB7IC0tPlxuICAgICAgICAgICAgICA8b3JnYW5pc21zLWRhdGUtaW5wdXQtc2VjdGlvblxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJlbnRyeS5uYW1lIHwgZG9tYWluXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJlbnRyeS5maWVsZC5oaW50XCJcbiAgICAgICAgICAgICAgICBbY29udHJvbF09XCJlbnRyeS5jb250cm9sXCJcbiAgICAgICAgICAgICAgICBbYWN0aW9uc109XCJlbnRyeS5maWVsZC5hY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPCEtLSB9IC0tPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoJ2RhdGUtcmFuZ2UnKSB7XG4gICAgICAgICAgICA8b3JnYW5pc21zLWRhdGUtcmFuZ2UtaW5wdXQtc2VjdGlvblxuICAgICAgICAgICAgICBbbGFiZWxdPVwiZW50cnkubmFtZSB8IGRvbWFpblwiXG4gICAgICAgICAgICAgIFtoaW50XT1cImVudHJ5LmZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJlbnRyeS5jb250cm9sXCJcbiAgICAgICAgICAgICAgW2FjdGlvbnNdPVwiZW50cnkuZmllbGQuYWN0aW9uc1wiXG4gICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoJ3RleHQnKSB7XG4gICAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgICA8b3JnYW5pc21zLXRleHQtaW5wdXQtc2VjdGlvbiBpbmplY3RhYmxlXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImVudHJ5Lm5hbWUgfCBkb21haW5cIlxuICAgICAgICAgICAgICAgIFtjb250cm9sXT1cImVudHJ5LmNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFthY3Rpb25zXT1cImVudHJ5LmZpZWxkLmFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtoaW50XT1cImVudHJ5LmZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJlbnRyeS5maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW2F1dG9Db21wbGV0ZV09XCJlbnRyeS5maWVsZC5hdXRvQ29tcGxldGVcIlxuICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlICgnbnVtYmVyJykge1xuICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgPG9yZ2FuaXNtcy1udW1iZXItaW5wdXQtc2VjdGlvbiBpbmplY3RhYmxlXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImVudHJ5Lm5hbWUgfCBkb21haW5cIlxuICAgICAgICAgICAgICAgIFtjb250cm9sXT1cImVudHJ5LmNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFthY3Rpb25zXT1cImVudHJ5LmZpZWxkLmFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtoaW50XT1cImVudHJ5LmZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJlbnRyeS5maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKCd0ZXh0YXJlYScpIHtcbiAgICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICAgIDxvcmdhbmlzbXMtdGV4dGFyZWEtc2VjdGlvbiBpbmplY3RhYmxlXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImVudHJ5Lm5hbWUgfCBkb21haW5cIlxuICAgICAgICAgICAgICAgIFtjb250cm9sXT1cImVudHJ5LmNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtoaW50XT1cImVudHJ5LmZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgICAgIFtyb3dzXT1cImVudHJ5LmZpZWxkLnJvd3NcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJlbnRyeS5maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKCdwYXNzd29yZCcpIHtcbiAgICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICAgIDxvcmdhbmlzbXMtcGFzc3dvcmQtaW5wdXQtc2VjdGlvbiBpbmplY3RhYmxlXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImVudHJ5Lm5hbWUgfCBkb21haW5cIlxuICAgICAgICAgICAgICAgIFtjb250cm9sXT1cImVudHJ5LmNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtoaW50XT1cImVudHJ5LmZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJlbnRyeS5maWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW2FjdGlvbnNdPVwiZW50cnkuZmllbGQuYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKCdhY3Rpb24nKSB7XG4gICAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgICA8b3JnYW5pc21zLWFjdGlvbi1pbnB1dC1zZWN0aW9uIGluamVjdGFibGVcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZW50cnkubmFtZSB8IGRvbWFpblwiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiZW50cnkuY29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2hpbnRdPVwiZW50cnkuZmllbGQuaGludFwiXG4gICAgICAgICAgICAgICAgW2FjdGlvbnNdPVwiZW50cnkuZmllbGQuYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKCdmaWxlJykge1xuICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgPG9yZ2FuaXNtcy1maWxlLWlucHV0LXNlY3Rpb24gaW5qZWN0YWJsZVxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJlbnRyeS5uYW1lIHwgZG9tYWluXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbF09XCJlbnRyeS5jb250cm9sXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJlbnRyeS5maWVsZC5oaW50XCJcbiAgICAgICAgICAgICAgICBbcHJvZ3Jlc3NdPVwiZW50cnkuZmllbGQ/LnByb2dyZXNzXCJcbiAgICAgICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoRmlsZUlucHV0QWN0aW9uKCRldmVudCwgZW50cnkubmFtZSlcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoJ3NsaWRlcicpIHtcbiAgICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICAgIDxvcmdhbmlzbXMtc2xpZGVyLWlucHV0LXNlY3Rpb24gaW5qZWN0YWJsZVxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJlbnRyeS5uYW1lIHwgZG9tYWluXCJcbiAgICAgICAgICAgICAgICBbY29udHJvbF09XCJlbnRyeS5jb250cm9sXCJcbiAgICAgICAgICAgICAgICBbbWF4XT1cImVudHJ5LmZpZWxkPy5zbGlkZXI/Lm1heFwiXG4gICAgICAgICAgICAgICAgW21pbl09XCJlbnRyeS5maWVsZD8uc2xpZGVyPy5taW5cIlxuICAgICAgICAgICAgICAgIFtzdGVwXT1cImVudHJ5LmZpZWxkPy5zbGlkZXI/LnN0ZXBcIlxuICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlICgnYWdyZWVtZW50Jykge1xuICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgPG9yZ2FuaXNtcy1hZ3JlZW1lbnQtaW5wdXQtc2VjdGlvbiBpbmplY3RhYmxlXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiZW50cnkuY29udHJvbFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsVGVtcF09XCJlbnRyeS5maWVsZD8ubGFiZWxUZW1wXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKCdwcmV2aWV3Jykge1xuICAgICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgICAgPG9yZ2FuaXNtcy12aWRlby1zZWN0aW9uIGluamVjdGFibGVcbiAgICAgICAgICAgICAgICBbc3JjXT1cImVudHJ5LmNvbnRyb2wudmFsdWVcIlxuICAgICAgICAgICAgICAgIFthdXRvcGxheV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlICgncHJldmlldzppbWFnZScpIHtcbiAgICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICAgIDxvcmdhbmlzbXMtaW1hZ2UtcHJldmlldy1zZWN0aW9uXG4gICAgICAgICAgICAgICAgW3NyY109XCJlbnRyeS5jb250cm9sLnZhbHVlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKCdoaWRkZW4nKSB7IH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgPG9yZ2FuaXNtcy1hY3Rpb24tYnV0dG9ucy1zZWN0aW9uIGluamVjdGFibGVcbiAgICAgICAgW2FjdGlvbnNdPVwic3RvcmUuYWN0aW9ucygpXCJcbiAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgPC9mcmFtZXMtYXV0by1sYXlvdXQ+XG4gIDwvZnJhbWVzLXNjcm9sbD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS50ZW1wbGF0ZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogRm9ybVRlbXBsYXRlU3RvcmUsXG4gICAgICBpbnB1dHM6IFtcbiAgICAgICAgJ25hdlN0YXJ0QWN0aW9ucycsXG4gICAgICAgICduYXZFbmRBY3Rpb25zJyxcbiAgICAgICAgJ3RpdGxlJyxcbiAgICAgICAgJ2Zvcm0nLFxuICAgICAgICAnZm9ybUZsYXRFeGNsdWRlcycsXG4gICAgICAgICdhY3Rpb25zJyxcbiAgICAgICAgJ2ZpZWxkTWFwJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbiAgaG9zdDoge2NsYXNzOiAndGVtcGxhdGUnfVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtVGVtcGxhdGUgZXh0ZW5kcyBOZ0F0b21pY0NvbXBvbmVudCB7XG4gIHN0YXRpYyBBY3Rpb25JZCA9IEFjdGlvbklkO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoRm9ybVRlbXBsYXRlU3RvcmUpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHByb3RlY3RlZCBkaXNwYXRjaEZpbGVJbnB1dEFjdGlvbihhY3Rpb246IEFjdGlvbiwgbmFtZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChhY3Rpb24uaWQpIHtcbiAgICAgIGNhc2UgRmlsZUlucHV0U2VjdGlvbk9yZ2FuaXNtLkFjdGlvbklkLkZJTEVfU0VMRUNURUQ6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goe2lkOiBBY3Rpb25JZC5GSUxFX1NFTEVDVEVELCBwYXlsb2FkOiB7c2NvcGU6IG5hbWUsIGZpbGVzOiBhY3Rpb24ucGF5bG9hZH19KTtcbiAgICAgIH1cbiAgICAgIGNhc2UgRmlsZUlucHV0U2VjdGlvbk9yZ2FuaXNtLkFjdGlvbklkLkNBTkNFTDoge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaCh7aWQ6IEFjdGlvbklkLkNBTkNFTCwgcGF5bG9hZDoge3Njb3BlOiBuYW1lfX0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZm9ybSgpLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2QubWFya0ZvckNoZWNrKCkpO1xuICB9XG5cbiAgQEVmZmVjdChOYXZBY3Rpb25JZC5CQUNLKVxuICBwcm90ZWN0ZWQgYmFjaygpIHtcbiAgICB0aGlzLmRpc3BhdGNoKHtpZDogQWN0aW9uSWQuQkFDS30pO1xuICB9XG59XG4iXX0=
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS50ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tcG9uZW50cy9zcmMvbGliL3RlbXBsYXRlcy9mb3JtL2Zvcm0udGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDM0csT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFbkYsT0FBTyxFQUFVLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU1RCxJQUFLLFFBT0o7QUFQRCxXQUFLLFFBQVE7SUFDWCxnRUFBb0QsQ0FBQTtJQUNwRCxvRUFBd0QsQ0FBQTtJQUN4RCxvRUFBd0QsQ0FBQTtJQUN4RCxvRUFBd0QsQ0FBQTtJQUN4RCxrRkFBc0UsQ0FBQTtJQUN0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Y3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNjcm9sbEZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9zY3JvbGwtdjInO1xuaW1wb3J0IHsgQXV0b0xheW91dEZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9hdXRvLWxheW91dCc7XG5pbXBvcnQgeyBIZWFkZXJNb2xlY3VsZVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL21vbGVjdWxlcy9oZWFkZXInO1xuaW1wb3J0IHsgQWN0aW9uQnV0dG9uc1NlY3Rpb25PcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9hY3Rpb24tYnV0dG9ucy1zZWN0aW9uJztcbmltcG9ydCB7IE5hdmlnYXRvck9yZ2FuaXNtU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL25hdmlnYXRvcic7XG5pbXBvcnQgeyBGb3JtRmllbGRNYXAgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9zbWFydC1maWVsZCc7XG5pbXBvcnQgeyBBY3Rpb24sIEVmZmVjdCwgSW5qZWN0YWJsZUNvbXBvbmVudCwgX2NvbXB1dGVkIH0gZnJvbSAnQG5nLWF0b21pYy9jb3JlJztcbmltcG9ydCB7IE5nQXRvbWljQ29tcG9uZW50IH0gZnJvbSAnQG5nLWF0b21pYy9jb3JlJztcbmltcG9ydCB7IE5hdkFjdGlvbklkLCBpbmplY3RJc1Jvb3RQYWdlLCBpbmplY3ROYXZTdGFydEFjdGlvbnMsIG1ha2VDb25maWcgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aSc7XG5pbXBvcnQgeyBOZ0F0b21pY0Zvcm1TZWN0aW9uQnVpbGRlciB9IGZyb20gJy4vZm9ybS5idWlsZGVyJztcblxuZW51bSBBY3Rpb25JZCB7XG4gIEJBQ0sgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy90ZW1wbGF0ZXMvZm9ybV0gQmFjaycsXG4gIENSRUFURSA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9mb3JtXSBDcmVhdGUnLFxuICBVUERBVEUgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy90ZW1wbGF0ZXMvZm9ybV0gVXBkYXRlJyxcbiAgREVMRVRFID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvdGVtcGxhdGVzL2Zvcm1dIERlbGV0ZScsXG4gIEZJTEVfU0VMRUNURUQgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy90ZW1wbGF0ZXMvZm9ybV0gRmlsZSBzZWxlY3RlZCcsXG4gIENBTkNFTCA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9mb3JtXSBDYW5jZWwnLFxufVxuXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEZvcm1UZW1wbGF0ZVN0b3JlIGV4dGVuZHMgSW5qZWN0YWJsZUNvbXBvbmVudCB7XG4gIHN0YXRpYyByZWFkb25seSBBY3Rpb25JZCA9IEFjdGlvbklkO1xuICBzdGF0aWMgcmVhZG9ubHkgQ29uZmlnID0gbWFrZUNvbmZpZygoKSA9PiB7XG4gICAgY29uc3QgaXNSb290UGFnZSA9IGluamVjdElzUm9vdFBhZ2UoKTtcbiAgICBjb25zdCBuYXZTdGFydEFjdGlvbnMgPSBpbmplY3ROYXZTdGFydEFjdGlvbnMoaXNSb290UGFnZSk7XG4gICAgcmV0dXJuICgpID0+ICh7XG4gICAgICBuYXZTdGFydEFjdGlvbnM6IG5hdlN0YXJ0QWN0aW9ucygpLFxuICAgICAgbmF2RW5kQWN0aW9uczogPEFjdGlvbltdPlt7aWQ6IEFjdGlvbklkLkRFTEVURSwgbmFtZTogJ+WJiumZpCcsIGljb246ICdkZWxldGUnfV0sXG4gICAgICB0aXRsZTogJycsXG4gICAgICBmb3JtOiBpbmplY3QoRm9ybUJ1aWxkZXIpLmdyb3VwKHtpZDogWycnXX0pLFxuICAgICAgZm9ybUZsYXRFeGNsdWRlczogPHN0cmluZ1tdPltdLFxuICAgICAgYWN0aW9uczogPEFjdGlvbltdPlt7aWQ6IEFjdGlvbklkLkNSRUFURSwgbmFtZTogJ+S9nOaIkCd9XSxcbiAgICAgIGZpZWxkTWFwOiA8Rm9ybUZpZWxkTWFwPntcbiAgICAgICAgY3JlYXRlZEF0OiB7IHR5cGU6ICdkYXRlJyB9LFxuICAgICAgICB1cGRhdGVkQXQ6IHsgdHlwZTogJ2RhdGUnIH0sXG4gICAgICAgIGRlbGV0ZWRBdDogeyB0eXBlOiAnZGF0ZScgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0sIFsnY29tcG9uZW50cycsICd0ZW1wbGF0ZXMnLCAnZm9ybSddKTtcbiAgcmVhZG9ubHkgY29uZmlnID0gRm9ybVRlbXBsYXRlU3RvcmUuQ29uZmlnLmluamVjdCgpO1xuICByZWFkb25seSBuYXZTdGFydEFjdGlvbnMgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5uYXZTdGFydEFjdGlvbnMpKTtcbiAgcmVhZG9ubHkgbmF2RW5kQWN0aW9ucyA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLm5hdkVuZEFjdGlvbnMpKTtcbiAgcmVhZG9ubHkgdGl0bGUgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS50aXRsZSkpO1xuICByZWFkb25seSBmb3JtID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuZm9ybSkpO1xuICByZWFkb25seSBmb3JtRmxhdEV4Y2x1ZGVzID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuZm9ybUZsYXRFeGNsdWRlcykpO1xuICByZWFkb25seSBhY3Rpb25zID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuYWN0aW9ucykpO1xuICByZWFkb25seSBmaWVsZE1hcCA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmZpZWxkTWFwKSk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdBdG9taWNGb3JtU2VjdGlvbkJ1aWxkZXIsXG4gICAgSGVhZGVyTW9sZWN1bGVTdG9yZSxcbiAgICBTY3JvbGxGcmFtZSxcbiAgICBOYXZpZ2F0b3JPcmdhbmlzbVN0b3JlLFxuICAgIEF1dG9MYXlvdXRGcmFtZSxcbiAgICBBY3Rpb25CdXR0b25zU2VjdGlvbk9yZ2FuaXNtU3RvcmUsXG4gIF0sXG4gIHNlbGVjdG9yOiAndGVtcGxhdGVzLWZvcm0nLFxuICB0ZW1wbGF0ZTogYFxuICA8ZnJhbWVzLXNjcm9sbD5cbiAgICA8b3JnYW5pc21zLW5hdmlnYXRvciBpbmplY3RhYmxlXG4gICAgICBbc3RhcnRBY3Rpb25zXT1cInN0b3JlLm5hdlN0YXJ0QWN0aW9ucygpXCJcbiAgICAgIFtlbmRBY3Rpb25zXT1cInN0b3JlLm5hdkVuZEFjdGlvbnMoKVwiXG4gICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgdG9wXG4gICAgPlxuICAgICAgPG1vbGVjdWxlcy1oZWFkZXIgaW5qZWN0YWJsZSBbdGl0bGVdPVwic3RvcmUudGl0bGUoKVwiIFtkZXNjcmlwdGlvbl09XCInJ1wiLz5cbiAgICA8L29yZ2FuaXNtcy1uYXZpZ2F0b3I+XG4gICAgPGZyYW1lcy1hdXRvLWxheW91dCB2ZXJ0aWNhbD5cbiAgICAgIDxuZy1hdG9taWMtZm9ybS1zZWN0aW9uLWJ1aWxkZXJcbiAgICAgICAgW2Zvcm1dPVwic3RvcmUuZm9ybSgpXCJcbiAgICAgICAgW2Zvcm1GbGF0RXhjbHVkZXNdPVwic3RvcmUuZm9ybUZsYXRFeGNsdWRlcygpXCJcbiAgICAgICAgW2ZpZWxkTWFwXT1cInN0b3JlLmZpZWxkTWFwKClcIlxuICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxvcmdhbmlzbXMtYWN0aW9uLWJ1dHRvbnMtc2VjdGlvbiBpbmplY3RhYmxlXG4gICAgICAgIFthY3Rpb25zXT1cInN0b3JlLmFjdGlvbnMoKVwiXG4gICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAvPlxuICAgIDwvZnJhbWVzLWF1dG8tbGF5b3V0PlxuICA8L2ZyYW1lcy1zY3JvbGw+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0udGVtcGxhdGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IEZvcm1UZW1wbGF0ZVN0b3JlLFxuICAgICAgaW5wdXRzOiBbXG4gICAgICAgICduYXZTdGFydEFjdGlvbnMnLFxuICAgICAgICAnbmF2RW5kQWN0aW9ucycsXG4gICAgICAgICd0aXRsZScsXG4gICAgICAgICdmb3JtJyxcbiAgICAgICAgJ2Zvcm1GbGF0RXhjbHVkZXMnLFxuICAgICAgICAnYWN0aW9ucycsXG4gICAgICAgICdmaWVsZE1hcCcsXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtjbGFzczogJ3RlbXBsYXRlJ31cbn0pXG5leHBvcnQgY2xhc3MgRm9ybVRlbXBsYXRlIGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQge1xuICBzdGF0aWMgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KEZvcm1UZW1wbGF0ZVN0b3JlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmZvcm0oKS5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIEBFZmZlY3QoTmF2QWN0aW9uSWQuQkFDSylcbiAgcHJvdGVjdGVkIGJhY2soKSB7XG4gICAgdGhpcy5kaXNwYXRjaCh7aWQ6IEFjdGlvbklkLkJBQ0t9KTtcbiAgfVxufVxuIl19
@@ -1,2 +1,3 @@
1
+ export * from './form.builder';
1
2
  export * from './form.template';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZXMvZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtLnRlbXBsYXRlJztcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZXMvZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm0uYnVpbGRlcic7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0udGVtcGxhdGUnO1xuIl19
@@ -35,7 +35,7 @@ export class IconButtonMenuTemplate extends NgAtomicComponent {
35
35
  <mat-icon>{{ action.icon }}</mat-icon>
36
36
  </button>
37
37
  }
38
- `, isInline: true, styles: [":host{width:100%;height:100%;background:#fff;display:block;--primary-color: #404040;--primary-color-SCOPED-IN-icon-button-menu-qQ0D: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-icon-button-menu-qQ0D: var(--on-primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-icon-button-menu-qQ0D: var(--secondary-color);--background-color: #000000;--background-color-SCOPED-IN-icon-button-menu-qQ0D: var(--background-color);--on-background-color: #ffffff;--on-background-color-SCOPED-IN-icon-button-menu-qQ0D: var(--on-background-color);--mdc-icon-button-icon-color: #FEFEFE;--mdc-icon-button-icon-color-SCOPED-IN-icon-button-menu-qQ0D: var(--mdc-icon-button-icon-color)}:host{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;height:100%;background-color:var(--background-color-SCOPED-IN-icon-button-menu-qQ0D);color:var(--on-background-color-SCOPED-IN-icon-button-menu-qQ0D)}:host button{--mat-icon-color: var(--on-primary-color-SCOPED-IN-icon-button-menu-qQ0D)}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
+ `, isInline: true, styles: [":host{width:100%;height:100%;background:#fff;display:block;--primary-color: #404040;--primary-color-SCOPED-IN-icon-button-menu-B406: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-icon-button-menu-B406: var(--on-primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-icon-button-menu-B406: var(--secondary-color);--background-color: #000000;--background-color-SCOPED-IN-icon-button-menu-B406: var(--background-color);--on-background-color: #ffffff;--on-background-color-SCOPED-IN-icon-button-menu-B406: var(--on-background-color);--mdc-icon-button-icon-color: #FEFEFE;--mdc-icon-button-icon-color-SCOPED-IN-icon-button-menu-B406: var(--mdc-icon-button-icon-color)}:host{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;height:100%;background-color:var(--background-color-SCOPED-IN-icon-button-menu-B406);color:var(--on-background-color-SCOPED-IN-icon-button-menu-B406)}:host button{--mat-icon-color: var(--on-primary-color-SCOPED-IN-icon-button-menu-B406)}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
39
  }
40
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: IconButtonMenuTemplate, decorators: [{
41
41
  type: Component,
@@ -53,6 +53,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
53
53
  directive: IconButtonMenuTemplateStore,
54
54
  inputs: ['actions'],
55
55
  },
56
- ], styles: [":host{width:100%;height:100%;background:#fff;display:block;--primary-color: #404040;--primary-color-SCOPED-IN-icon-button-menu-qQ0D: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-icon-button-menu-qQ0D: var(--on-primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-icon-button-menu-qQ0D: var(--secondary-color);--background-color: #000000;--background-color-SCOPED-IN-icon-button-menu-qQ0D: var(--background-color);--on-background-color: #ffffff;--on-background-color-SCOPED-IN-icon-button-menu-qQ0D: var(--on-background-color);--mdc-icon-button-icon-color: #FEFEFE;--mdc-icon-button-icon-color-SCOPED-IN-icon-button-menu-qQ0D: var(--mdc-icon-button-icon-color)}:host{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;height:100%;background-color:var(--background-color-SCOPED-IN-icon-button-menu-qQ0D);color:var(--on-background-color-SCOPED-IN-icon-button-menu-qQ0D)}:host button{--mat-icon-color: var(--on-primary-color-SCOPED-IN-icon-button-menu-qQ0D)}\n"] }]
56
+ ], styles: [":host{width:100%;height:100%;background:#fff;display:block;--primary-color: #404040;--primary-color-SCOPED-IN-icon-button-menu-B406: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-icon-button-menu-B406: var(--on-primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-icon-button-menu-B406: var(--secondary-color);--background-color: #000000;--background-color-SCOPED-IN-icon-button-menu-B406: var(--background-color);--on-background-color: #ffffff;--on-background-color-SCOPED-IN-icon-button-menu-B406: var(--on-background-color);--mdc-icon-button-icon-color: #FEFEFE;--mdc-icon-button-icon-color-SCOPED-IN-icon-button-menu-B406: var(--mdc-icon-button-icon-color)}:host{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;height:100%;background-color:var(--background-color-SCOPED-IN-icon-button-menu-B406);color:var(--on-background-color-SCOPED-IN-icon-button-menu-B406)}:host button{--mat-icon-color: var(--on-primary-color-SCOPED-IN-icon-button-menu-B406)}\n"] }]
57
57
  }] });
58
58
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24tbWVudS50ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tcG9uZW50cy9zcmMvbGliL3RlbXBsYXRlcy9pY29uLWJ1dHRvbi1tZW51L2ljb24tYnV0dG9uLW1lbnUudGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFVLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFJaEQsSUFBTSwyQkFBMkIsR0FBakMsTUFBTSwyQkFBNEIsU0FBUSxtQkFBbUI7SUFBN0Q7O1FBQ0ksWUFBTyxHQUFHLEtBQUssQ0FBVyxFQUFFLENBQUMsQ0FBQztLQUN4Qzs4R0FGWSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7QUFBM0IsMkJBQTJCO0lBRnZDLGFBQWEsRUFBRTtHQUVILDJCQUEyQixDQUV2Qzs7MkZBRlksMkJBQTJCO2tCQUR2QyxTQUFTO21CQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsNEJBQTRCLEVBQUU7O0FBNEJ2RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsaUJBQWlCO0lBdkI3RDs7UUF3QlksVUFBSyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQ3ZEOzhHQUZZLHNCQUFzQjtrR0FBdEIsc0JBQXNCLG1IQTNCdEIsMkJBQTJCLDZEQVc1Qjs7Ozs7O0dBTVQsZ21DQVRDLGVBQWUsMklBQ2YsYUFBYTs7MkZBa0JKLHNCQUFzQjtrQkF2QmxDLFNBQVM7K0JBQ0UsNEJBQTRCLGNBQzFCLElBQUksV0FDUDt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7cUJBQ2QsWUFDUzs7Ozs7O0dBTVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CO3dCQUNkOzRCQUNFLFNBQVMsRUFBRSwyQkFBMkI7NEJBQ3RDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQzt5QkFDcEI7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEaXJlY3RpdmUsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbiwgVG9rZW5pemVkVHlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlQ29tcG9uZW50LCBOZ0F0b21pY0NvbXBvbmVudCB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5AVG9rZW5pemVkVHlwZSgpXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSwgc2VsZWN0b3I6ICd0ZW1wbGF0ZXMtaWNvbi1idXR0b24tbWVudScgfSlcbmV4cG9ydCBjbGFzcyBJY29uQnV0dG9uTWVudVRlbXBsYXRlU3RvcmUgZXh0ZW5kcyBJbmplY3RhYmxlQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgYWN0aW9ucyA9IGlucHV0PEFjdGlvbltdPihbXSk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RlbXBsYXRlcy1pY29uLWJ1dHRvbi1tZW51JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBmb3IgKGFjdGlvbiBvZiBzdG9yZS5hY3Rpb25zKCk7IHRyYWNrIGFjdGlvbi5pZCkge1xuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJiYXNpY1wiIChjbGljayk9XCJkaXNwYXRjaChhY3Rpb24pXCI+XG4gICAgICAgIDxtYXQtaWNvbj57eyBhY3Rpb24uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2ljb24tYnV0dG9uLW1lbnUudGVtcGxhdGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IEljb25CdXR0b25NZW51VGVtcGxhdGVTdG9yZSxcbiAgICAgIGlucHV0czogWydhY3Rpb25zJ10sXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uQnV0dG9uTWVudVRlbXBsYXRlIGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgc3RvcmUgPSBpbmplY3QoSWNvbkJ1dHRvbk1lbnVUZW1wbGF0ZVN0b3JlKTtcbn1cbiJdfQ==