@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
@@ -8,6 +8,7 @@ import { ActionButtonsSectionOrganism } from '@ng-atomic/components/organisms/ac
8
8
  import { HeadingOrganism } from '@ng-atomic/components/organisms/heading';
9
9
  import { SocialLoginSectionOrganism } from '@ng-atomic/components/organisms/social-login-section';
10
10
  import { TextInputSectionOrganismStore } from '@ng-atomic/components/organisms/text-input-section';
11
+ import { NgAtomicFormSectionBuilder } from '@ng-atomic/components/templates/form';
11
12
  import * as i0 from "@angular/core";
12
13
  var ActionId;
13
14
  (function (ActionId) {
@@ -27,11 +28,15 @@ let EntranceTemplateStore = class EntranceTemplateStore extends InjectableCompon
27
28
  { id: ActionId.SIGN_IN_WITH_GOOGLE, name: 'Sign In With Google', icon: 'google' },
28
29
  { id: ActionId.SIGN_IN_WITH_TWITTER, name: 'Sign In With Twitter', icon: 'twitter' },
29
30
  ]);
31
+ this.fieldMap = input({
32
+ email: { type: 'text' },
33
+ password: { type: 'password' },
34
+ });
30
35
  this.title = input('ログイン');
31
36
  }
32
37
  static { this.ActionId = ActionId; }
33
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: EntranceTemplateStore, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
34
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.2.2", type: EntranceTemplateStore, isStandalone: true, selector: "templates-entrance", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.2.2", type: EntranceTemplateStore, isStandalone: true, selector: "templates-entrance", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, fieldMap: { classPropertyName: "fieldMap", publicName: "fieldMap", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
35
40
  };
36
41
  EntranceTemplateStore = __decorate([
37
42
  TokenizedType()
@@ -57,22 +62,12 @@ export class EntranceTemplate extends NgAtomicComponent {
57
62
  <frames-auto-layout vertical>
58
63
  <organisms-heading>{{ store.title() }}</organisms-heading>
59
64
  @if (store.form()) {
60
- @if (store.form().get('email')) {
61
- @defer {
62
- <organisms-text-input-section injectable
63
- label="メールアドレス"
64
- [control]="store.form().get('email')"
65
- />
66
- }
67
- }
68
- @if (store.form().get('password')) {
69
- @defer {
70
- <organisms-text-input-section injectable
71
- label="パスワード"
72
- [control]="store.form().get('password')"
73
- />
74
- }
75
- }
65
+ <ng-atomic-form-section-builder
66
+ [form]="store.form()"
67
+ [formFlatExcludes]="[]"
68
+ [fieldMap]="store.fieldMap()"
69
+ (action)="dispatch($event)"
70
+ />
76
71
  @for (action of store.actions(); track action.id;) {
77
72
  @defer {
78
73
  <organisms-action-buttons-section
@@ -83,7 +78,7 @@ export class EntranceTemplate extends NgAtomicComponent {
83
78
  }
84
79
  </frames-auto-layout>
85
80
  </frames-card>
86
- `, isInline: true, styles: [":host{--horizontal-padding: 64px;--horizontal-padding-SCOPED-IN-entrance-zujh: var(--horizontal-padding);--background-color: #eee;--background-color-SCOPED-IN-entrance-zujh: var(--background-color);--on-background-color: #333;--on-background-color-SCOPED-IN-entrance-zujh: var(--on-background-color);--page-width-lv1-SCOPED-IN-entrance-zujh: var(--page-width-lv1)}:host{display:flex;justify-content:center;align-items:center;background-color:var(--background-color-SCOPED-IN-entrance-zujh);color:var(--on-background-color-SCOPED-IN-entrance-zujh);width:100%;height:100%}:host frames-card{display:flex;flex-direction:column;width:600px;max-width:calc(100% - 32px);height:-moz-fit-content;height:fit-content}:host frames-card *{max-width:calc(100% - 32px);--horizontal-padding: var(--horizontal-padding-SCOPED-IN-entrance-zujh)}\n"], dependencies: [{ kind: "component", type: AutoLayoutFrame, selector: "frames-auto-layout" }, { kind: "component", type: CardFrame, selector: "frames-card" }, { kind: "component", type: HeadingOrganism, selector: "organisms-heading", inputs: ["level"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
+ `, isInline: true, styles: [":host{--horizontal-padding: 64px;--horizontal-padding-SCOPED-IN-entrance-Nwdh: var(--horizontal-padding);--background-color: #eee;--background-color-SCOPED-IN-entrance-Nwdh: var(--background-color);--on-background-color: #333;--on-background-color-SCOPED-IN-entrance-Nwdh: var(--on-background-color);--page-width-lv1-SCOPED-IN-entrance-Nwdh: var(--page-width-lv1)}:host{display:flex;justify-content:center;align-items:center;background-color:var(--background-color-SCOPED-IN-entrance-Nwdh);color:var(--on-background-color-SCOPED-IN-entrance-Nwdh);width:100%;height:100%}:host frames-card{display:flex;flex-direction:column;width:600px;max-width:calc(100% - 32px);height:-moz-fit-content;height:fit-content}:host frames-card *{max-width:calc(100% - 32px);--horizontal-padding: var(--horizontal-padding-SCOPED-IN-entrance-Nwdh)}:host frames-card ng-atomic-form-section-builder{max-width:calc(100% - 32px);--horizontal-padding: var(--horizontal-padding-SCOPED-IN-entrance-Nwdh)}\n"], dependencies: [{ kind: "component", type: AutoLayoutFrame, selector: "frames-auto-layout" }, { kind: "component", type: CardFrame, selector: "frames-card" }, { kind: "component", type: HeadingOrganism, selector: "organisms-heading", inputs: ["level"] }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
87
82
  }
88
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: EntranceTemplate, decorators: [{
89
84
  type: Component,
@@ -94,27 +89,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
94
89
  HeadingOrganism,
95
90
  SocialLoginSectionOrganism,
96
91
  TextInputSectionOrganismStore,
92
+ NgAtomicFormSectionBuilder,
97
93
  ], template: `
98
94
  <frames-card>
99
95
  <frames-auto-layout vertical>
100
96
  <organisms-heading>{{ store.title() }}</organisms-heading>
101
97
  @if (store.form()) {
102
- @if (store.form().get('email')) {
103
- @defer {
104
- <organisms-text-input-section injectable
105
- label="メールアドレス"
106
- [control]="store.form().get('email')"
107
- />
108
- }
109
- }
110
- @if (store.form().get('password')) {
111
- @defer {
112
- <organisms-text-input-section injectable
113
- label="パスワード"
114
- [control]="store.form().get('password')"
115
- />
116
- }
117
- }
98
+ <ng-atomic-form-section-builder
99
+ [form]="store.form()"
100
+ [formFlatExcludes]="[]"
101
+ [fieldMap]="store.fieldMap()"
102
+ (action)="dispatch($event)"
103
+ />
118
104
  @for (action of store.actions(); track action.id;) {
119
105
  @defer {
120
106
  <organisms-action-buttons-section
@@ -130,6 +116,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
130
116
  directive: EntranceTemplateStore,
131
117
  inputs: ['form', 'actions', 'title'],
132
118
  },
133
- ], styles: [":host{--horizontal-padding: 64px;--horizontal-padding-SCOPED-IN-entrance-zujh: var(--horizontal-padding);--background-color: #eee;--background-color-SCOPED-IN-entrance-zujh: var(--background-color);--on-background-color: #333;--on-background-color-SCOPED-IN-entrance-zujh: var(--on-background-color);--page-width-lv1-SCOPED-IN-entrance-zujh: var(--page-width-lv1)}:host{display:flex;justify-content:center;align-items:center;background-color:var(--background-color-SCOPED-IN-entrance-zujh);color:var(--on-background-color-SCOPED-IN-entrance-zujh);width:100%;height:100%}:host frames-card{display:flex;flex-direction:column;width:600px;max-width:calc(100% - 32px);height:-moz-fit-content;height:fit-content}:host frames-card *{max-width:calc(100% - 32px);--horizontal-padding: var(--horizontal-padding-SCOPED-IN-entrance-zujh)}\n"] }]
119
+ ], styles: [":host{--horizontal-padding: 64px;--horizontal-padding-SCOPED-IN-entrance-Nwdh: var(--horizontal-padding);--background-color: #eee;--background-color-SCOPED-IN-entrance-Nwdh: var(--background-color);--on-background-color: #333;--on-background-color-SCOPED-IN-entrance-Nwdh: var(--on-background-color);--page-width-lv1-SCOPED-IN-entrance-Nwdh: var(--page-width-lv1)}:host{display:flex;justify-content:center;align-items:center;background-color:var(--background-color-SCOPED-IN-entrance-Nwdh);color:var(--on-background-color-SCOPED-IN-entrance-Nwdh);width:100%;height:100%}:host frames-card{display:flex;flex-direction:column;width:600px;max-width:calc(100% - 32px);height:-moz-fit-content;height:fit-content}:host frames-card *{max-width:calc(100% - 32px);--horizontal-padding: var(--horizontal-padding-SCOPED-IN-entrance-Nwdh)}:host frames-card ng-atomic-form-section-builder{max-width:calc(100% - 32px);--horizontal-padding: var(--horizontal-padding-SCOPED-IN-entrance-Nwdh)}\n"] }]
134
120
  }] });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmFuY2UudGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZXMvZW50cmFuY2UvZW50cmFuY2UudGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7O0FBRW5HLElBQUssUUFJSjtBQUpELFdBQUssUUFBUTtJQUNYLHVEQUEyQyxDQUFBO0lBQzNDLCtFQUFtRSxDQUFBO0lBQ25FLGlGQUFxRSxDQUFBO0FBQ3ZFLENBQUMsRUFKSSxRQUFRLEtBQVIsUUFBUSxRQUlaO0FBT00sSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBc0IsU0FBUSxtQkFBbUI7SUFBdkQ7O1FBRUksU0FBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztZQUNsQyxLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzFCLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUM7U0FDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSyxZQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3hELEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNqRixFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7U0FDckYsQ0FBQyxDQUFDO1FBRU0sVUFBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNoQzthQVppQixhQUFRLEdBQUcsUUFBUSxBQUFYLENBQVk7OEdBRHpCLHFCQUFxQjtrR0FBckIscUJBQXFCOztBQUFyQixxQkFBcUI7SUFMakMsYUFBYSxFQUFFO0dBS0gscUJBQXFCLENBYWpDOzsyRkFiWSxxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztBQXFFRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsaUJBQWlCO0lBckR2RDs7UUF1RFksYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNwQixVQUFLLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FDakQ7YUFIUSxhQUFRLEdBQUcsUUFBUSxBQUFYLENBQVk7OEdBRGhCLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGlKQXBFaEIscUJBQXFCLCtGQTBCdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQsczRCQXRDQyxlQUFlLCtEQUNmLFNBQVMsd0RBRVQsZUFBZTs7MkZBOENOLGdCQUFnQjtrQkFyRDVCLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxlQUFlO3dCQUNmLFNBQVM7d0JBQ1QsNEJBQTRCO3dCQUM1QixlQUFlO3dCQUNmLDBCQUEwQjt3QkFDMUIsNkJBQTZCO3FCQUM5QixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JULFFBRUssRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFDLG1CQUNSLHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CO3dCQUNkOzRCQUNFLFNBQVMsRUFBRSxxQkFBcUI7NEJBQ2hDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDO3lCQUNyQztxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZUNvbXBvbmVudCwgTmdBdG9taWNDb21wb25lbnQsIFRva2VuaXplZFR5cGUgfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXV0b0xheW91dEZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9hdXRvLWxheW91dCc7XG5pbXBvcnQgeyBDYXJkRnJhbWUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvZnJhbWVzL2NhcmQnO1xuaW1wb3J0IHsgQWN0aW9uQnV0dG9uc1NlY3Rpb25PcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvYWN0aW9uLWJ1dHRvbnMtc2VjdGlvbic7XG5pbXBvcnQgeyBIZWFkaW5nT3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2hlYWRpbmcnO1xuaW1wb3J0IHsgU29jaWFsTG9naW5TZWN0aW9uT3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3NvY2lhbC1sb2dpbi1zZWN0aW9uJztcbmltcG9ydCB7IFRleHRJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy90ZXh0LWlucHV0LXNlY3Rpb24nO1xuXG5lbnVtIEFjdGlvbklkIHtcbiAgU0lHTl9JTiA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzXSBTaWduIEluJyxcbiAgU0lHTl9JTl9XSVRIX0dPT0dMRSA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzXSBTaWduIEluIFdpdGggR29vZ2xlJyxcbiAgU0lHTl9JTl9XSVRIX1RXSVRURVIgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50c10gU2lnbiBJbiBXaXRoIFR3aXR0ZXInLFxufVxuXG5AVG9rZW5pemVkVHlwZSgpXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICd0ZW1wbGF0ZXMtZW50cmFuY2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRyYW5jZVRlbXBsYXRlU3RvcmUgZXh0ZW5kcyBJbmplY3RhYmxlQ29tcG9uZW50IHtcbiAgc3RhdGljIHJlYWRvbmx5IEFjdGlvbklkID0gQWN0aW9uSWQ7XG4gIHJlYWRvbmx5IGZvcm0gPSBpbnB1dChuZXcgRm9ybUdyb3VwKHtcbiAgICBlbWFpbDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICBwYXNzd29yZDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgfSkpO1xuICByZWFkb25seSBhY3Rpb25zID0gaW5wdXQoW1xuICAgIHsgaWQ6IEFjdGlvbklkLlNJR05fSU4sIG5hbWU6ICdTaWduIEluJywgaWNvbjogJ2xvZ2luJyB9LFxuICAgIHsgaWQ6IEFjdGlvbklkLlNJR05fSU5fV0lUSF9HT09HTEUsIG5hbWU6ICdTaWduIEluIFdpdGggR29vZ2xlJywgaWNvbjogJ2dvb2dsZScgfSxcbiAgICB7IGlkOiBBY3Rpb25JZC5TSUdOX0lOX1dJVEhfVFdJVFRFUiwgbmFtZTogJ1NpZ24gSW4gV2l0aCBUd2l0dGVyJywgaWNvbjogJ3R3aXR0ZXInIH0sXG4gIF0pO1xuXG4gIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQoJ+ODreOCsOOCpOODsycpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZW1wbGF0ZXMtZW50cmFuY2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXV0b0xheW91dEZyYW1lLFxuICAgIENhcmRGcmFtZSxcbiAgICBBY3Rpb25CdXR0b25zU2VjdGlvbk9yZ2FuaXNtLFxuICAgIEhlYWRpbmdPcmdhbmlzbSxcbiAgICBTb2NpYWxMb2dpblNlY3Rpb25PcmdhbmlzbSxcbiAgICBUZXh0SW5wdXRTZWN0aW9uT3JnYW5pc21TdG9yZSxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgPGZyYW1lcy1jYXJkPlxuICAgIDxmcmFtZXMtYXV0by1sYXlvdXQgdmVydGljYWw+XG4gICAgICA8b3JnYW5pc21zLWhlYWRpbmc+e3sgc3RvcmUudGl0bGUoKSB9fTwvb3JnYW5pc21zLWhlYWRpbmc+XG4gICAgICBAaWYgKHN0b3JlLmZvcm0oKSkge1xuICAgICAgICBAaWYgKHN0b3JlLmZvcm0oKS5nZXQoJ2VtYWlsJykpIHtcbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy10ZXh0LWlucHV0LXNlY3Rpb24gaW5qZWN0YWJsZVxuICAgICAgICAgICAgICBsYWJlbD1cIuODoeODvOODq+OCouODieODrOOCuVwiXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cInN0b3JlLmZvcm0oKS5nZXQoJ2VtYWlsJylcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChzdG9yZS5mb3JtKCkuZ2V0KCdwYXNzd29yZCcpKSB7XG4gICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgIDxvcmdhbmlzbXMtdGV4dC1pbnB1dC1zZWN0aW9uIGluamVjdGFibGVcbiAgICAgICAgICAgICAgbGFiZWw9XCLjg5Hjgrnjg6/jg7zjg4lcIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJzdG9yZS5mb3JtKCkuZ2V0KCdwYXNzd29yZCcpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKGFjdGlvbiBvZiBzdG9yZS5hY3Rpb25zKCk7IHRyYWNrIGFjdGlvbi5pZDspIHtcbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy1hY3Rpb24tYnV0dG9ucy1zZWN0aW9uXG4gICAgICAgICAgICAgIFthY3Rpb25zXT1cIlthY3Rpb25dXCJcbiAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfSBAZXJyb3IgeyBlcnJvciB9IH1cbiAgICAgIH1cbiAgICA8L2ZyYW1lcy1hdXRvLWxheW91dD5cbiAgPC9mcmFtZXMtY2FyZD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZW50cmFuY2UudGVtcGxhdGUuc2NzcyddLFxuICBob3N0OiB7Y2xhc3M6ICd0ZW1wbGF0ZSd9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IEVudHJhbmNlVGVtcGxhdGVTdG9yZSxcbiAgICAgIGlucHV0czogWydmb3JtJywgJ2FjdGlvbnMnLCAndGl0bGUnXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRyYW5jZVRlbXBsYXRlIGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQge1xuICBzdGF0aWMgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgcHJvdGVjdGVkIEFjdGlvbklkID0gQWN0aW9uSWQ7XG4gIHByb3RlY3RlZCBzdG9yZSA9IGluamVjdChFbnRyYW5jZVRlbXBsYXRlU3RvcmUpO1xufVxuIl19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmFuY2UudGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZXMvZW50cmFuY2UvZW50cmFuY2UudGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDbkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBR2xGLElBQUssUUFJSjtBQUpELFdBQUssUUFBUTtJQUNYLHVEQUEyQyxDQUFBO0lBQzNDLCtFQUFtRSxDQUFBO0lBQ25FLGlGQUFxRSxDQUFBO0FBQ3ZFLENBQUMsRUFKSSxRQUFRLEtBQVIsUUFBUSxRQUlaO0FBT00sSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBc0IsU0FBUSxtQkFBbUI7SUFBdkQ7O1FBRUksU0FBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztZQUNsQyxLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzFCLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUM7U0FDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSyxZQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3hELEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNqRixFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7U0FDckYsQ0FBQyxDQUFDO1FBRU0sYUFBUSxHQUFHLEtBQUssQ0FBZTtZQUN0QyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3ZCLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO1FBRU0sVUFBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNoQzthQWpCaUIsYUFBUSxHQUFHLFFBQVEsQUFBWCxDQUFZOzhHQUR6QixxQkFBcUI7a0dBQXJCLHFCQUFxQjs7QUFBckIscUJBQXFCO0lBTGpDLGFBQWEsRUFBRTtHQUtILHFCQUFxQixDQWtCakM7OzJGQWxCWSxxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztBQWtFRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsaUJBQWlCO0lBN0N2RDs7UUErQ1ksYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNwQixVQUFLLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0FDakQ7YUFIUSxhQUFRLEdBQUcsUUFBUSxBQUFYLENBQVk7OEdBRGhCLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGlKQWpFaEIscUJBQXFCLCtGQWlDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVCwyaENBOUJDLGVBQWUsK0RBQ2YsU0FBUyx3REFFVCxlQUFlLGlGQUdmLDBCQUEwQjs7MkZBbUNqQixnQkFBZ0I7a0JBN0M1QixTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixTQUFTO3dCQUNULDRCQUE0Qjt3QkFDNUIsZUFBZTt3QkFDZiwwQkFBMEI7d0JBQzFCLDZCQUE2Qjt3QkFDN0IsMEJBQTBCO3FCQUUzQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQsUUFFSyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUMsbUJBQ1IsdUJBQXVCLENBQUMsTUFBTSxrQkFDL0I7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLHFCQUFxQjs0QkFDaEMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUM7eUJBQ3JDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlQ29tcG9uZW50LCBOZ0F0b21pY0NvbXBvbmVudCwgVG9rZW5pemVkVHlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBdXRvTGF5b3V0RnJhbWUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvZnJhbWVzL2F1dG8tbGF5b3V0JztcbmltcG9ydCB7IENhcmRGcmFtZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9mcmFtZXMvY2FyZCc7XG5pbXBvcnQgeyBBY3Rpb25CdXR0b25zU2VjdGlvbk9yZ2FuaXNtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9hY3Rpb24tYnV0dG9ucy1zZWN0aW9uJztcbmltcG9ydCB7IEhlYWRpbmdPcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvaGVhZGluZyc7XG5pbXBvcnQgeyBTb2NpYWxMb2dpblNlY3Rpb25PcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvc29jaWFsLWxvZ2luLXNlY3Rpb24nO1xuaW1wb3J0IHsgVGV4dElucHV0U2VjdGlvbk9yZ2FuaXNtU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3RleHQtaW5wdXQtc2VjdGlvbic7XG5pbXBvcnQgeyBOZ0F0b21pY0Zvcm1TZWN0aW9uQnVpbGRlciB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy90ZW1wbGF0ZXMvZm9ybSc7XG5pbXBvcnQgeyBGb3JtRmllbGRNYXAgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9zbWFydC1maWVsZCc7XG5cbmVudW0gQWN0aW9uSWQge1xuICBTSUdOX0lOID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHNdIFNpZ24gSW4nLFxuICBTSUdOX0lOX1dJVEhfR09PR0xFID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHNdIFNpZ24gSW4gV2l0aCBHb29nbGUnLFxuICBTSUdOX0lOX1dJVEhfVFdJVFRFUiA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzXSBTaWduIEluIFdpdGggVHdpdHRlcicsXG59XG5cbkBUb2tlbml6ZWRUeXBlKClcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3RlbXBsYXRlcy1lbnRyYW5jZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVudHJhbmNlVGVtcGxhdGVTdG9yZSBleHRlbmRzIEluamVjdGFibGVDb21wb25lbnQge1xuICBzdGF0aWMgcmVhZG9ubHkgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgcmVhZG9ubHkgZm9ybSA9IGlucHV0KG5ldyBGb3JtR3JvdXAoe1xuICAgIGVtYWlsOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgIHBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICB9KSk7XG4gIHJlYWRvbmx5IGFjdGlvbnMgPSBpbnB1dChbXG4gICAgeyBpZDogQWN0aW9uSWQuU0lHTl9JTiwgbmFtZTogJ1NpZ24gSW4nLCBpY29uOiAnbG9naW4nIH0sXG4gICAgeyBpZDogQWN0aW9uSWQuU0lHTl9JTl9XSVRIX0dPT0dMRSwgbmFtZTogJ1NpZ24gSW4gV2l0aCBHb29nbGUnLCBpY29uOiAnZ29vZ2xlJyB9LFxuICAgIHsgaWQ6IEFjdGlvbklkLlNJR05fSU5fV0lUSF9UV0lUVEVSLCBuYW1lOiAnU2lnbiBJbiBXaXRoIFR3aXR0ZXInLCBpY29uOiAndHdpdHRlcicgfSxcbiAgXSk7XG5cbiAgcmVhZG9ubHkgZmllbGRNYXAgPSBpbnB1dDxGb3JtRmllbGRNYXA+KHtcbiAgICBlbWFpbDogeyB0eXBlOiAndGV4dCcgfSxcbiAgICBwYXNzd29yZDogeyB0eXBlOiAncGFzc3dvcmQnIH0sXG4gIH0pO1xuXG4gIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQoJ+ODreOCsOOCpOODsycpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZW1wbGF0ZXMtZW50cmFuY2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQXV0b0xheW91dEZyYW1lLFxuICAgIENhcmRGcmFtZSxcbiAgICBBY3Rpb25CdXR0b25zU2VjdGlvbk9yZ2FuaXNtLFxuICAgIEhlYWRpbmdPcmdhbmlzbSxcbiAgICBTb2NpYWxMb2dpblNlY3Rpb25PcmdhbmlzbSxcbiAgICBUZXh0SW5wdXRTZWN0aW9uT3JnYW5pc21TdG9yZSxcbiAgICBOZ0F0b21pY0Zvcm1TZWN0aW9uQnVpbGRlcixcbiAgICBcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgPGZyYW1lcy1jYXJkPlxuICAgIDxmcmFtZXMtYXV0by1sYXlvdXQgdmVydGljYWw+XG4gICAgICA8b3JnYW5pc21zLWhlYWRpbmc+e3sgc3RvcmUudGl0bGUoKSB9fTwvb3JnYW5pc21zLWhlYWRpbmc+XG4gICAgICBAaWYgKHN0b3JlLmZvcm0oKSkge1xuICAgICAgICA8bmctYXRvbWljLWZvcm0tc2VjdGlvbi1idWlsZGVyXG4gICAgICAgICAgW2Zvcm1dPVwic3RvcmUuZm9ybSgpXCJcbiAgICAgICAgICBbZm9ybUZsYXRFeGNsdWRlc109XCJbXVwiXG4gICAgICAgICAgW2ZpZWxkTWFwXT1cInN0b3JlLmZpZWxkTWFwKClcIlxuICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIEBmb3IgKGFjdGlvbiBvZiBzdG9yZS5hY3Rpb25zKCk7IHRyYWNrIGFjdGlvbi5pZDspIHtcbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy1hY3Rpb24tYnV0dG9ucy1zZWN0aW9uXG4gICAgICAgICAgICAgIFthY3Rpb25zXT1cIlthY3Rpb25dXCJcbiAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfSBAZXJyb3IgeyBlcnJvciB9IH1cbiAgICAgIH1cbiAgICA8L2ZyYW1lcy1hdXRvLWxheW91dD5cbiAgPC9mcmFtZXMtY2FyZD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZW50cmFuY2UudGVtcGxhdGUuc2NzcyddLFxuICBob3N0OiB7Y2xhc3M6ICd0ZW1wbGF0ZSd9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IEVudHJhbmNlVGVtcGxhdGVTdG9yZSxcbiAgICAgIGlucHV0czogWydmb3JtJywgJ2FjdGlvbnMnLCAndGl0bGUnXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRyYW5jZVRlbXBsYXRlIGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQge1xuICBzdGF0aWMgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgcHJvdGVjdGVkIEFjdGlvbklkID0gQWN0aW9uSWQ7XG4gIHByb3RlY3RlZCBzdG9yZSA9IGluamVjdChFbnRyYW5jZVRlbXBsYXRlU3RvcmUpO1xufVxuIl19
@@ -0,0 +1,415 @@
1
+ import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
2
+ import { TextareaSectionOrganismStore } from '@ng-atomic/components/organisms/textarea-section';
3
+ import { TextInputSectionOrganismStore } from '@ng-atomic/components/organisms/text-input-section';
4
+ import { DateInputSectionOrganism } from '@ng-atomic/components/organisms/date-input-section';
5
+ import { SelectInputSectionOrganismStore } from '@ng-atomic/components/organisms/select-input-section';
6
+ import { DomainPipe } from '@ng-atomic/common/pipes/domain';
7
+ import { ActionInputSectionOrganismStore } from '@ng-atomic/components/organisms/action-input-section';
8
+ import { NgAtomicComponent } from '@ng-atomic/core';
9
+ import { FileInputSectionOrganism, FileInputSectionOrganismStore } from '@ng-atomic/components/organisms/file-input-section';
10
+ import { AgreementInputSectionOrganism } from '@ng-atomic/components/organisms/agreement-input-section';
11
+ import { VideoSectionOrganism } from '@ng-atomic/components/organisms/video-section';
12
+ import { NumberInputSectionOrganismStore } from '@ng-atomic/components/organisms/number-input-section';
13
+ import { ImagePreviewSectionOrganism } from '@ng-atomic/components/organisms/image-preview-section';
14
+ import { PasswordInputSectionOrganismStore } from '@ng-atomic/components/organisms/password-input-section';
15
+ import { DateRangeInputSectionOrganism } from '@ng-atomic/components/organisms/date-range-input-section';
16
+ import { SliderInputSectionOrganismStore } from '@ng-atomic/components/organisms/slider-input-section';
17
+ import { get } from 'lodash-es';
18
+ import * as i0 from "@angular/core";
19
+ function walkControls(controls, cb, excludes = [], name = '') {
20
+ Object.entries(controls).forEach(([key, control]) => {
21
+ const path = name === '' ? key : `${name}.${key}`;
22
+ if (excludes.includes(path)) {
23
+ cb(path, control);
24
+ }
25
+ else if (control.controls) {
26
+ walkControls(control.controls, cb, excludes, path);
27
+ }
28
+ else {
29
+ cb(path, control);
30
+ }
31
+ });
32
+ }
33
+ function flatControls(form, excludes) {
34
+ const controlMap = new Map();
35
+ walkControls(form?.controls, (name, control) => controlMap.set(name, control), [
36
+ ...excludes,
37
+ ]);
38
+ return [...controlMap.entries()];
39
+ }
40
+ var ActionId;
41
+ (function (ActionId) {
42
+ ActionId["FILE_SELECTED"] = "[@ng-atomic/components:templates/form/ng-atomic-form-section-switcher] File selected";
43
+ ActionId["CANCEL"] = "[@ng-atomic/components:templates/form/ng-atomic-form-section-switcher] Cancel";
44
+ })(ActionId || (ActionId = {}));
45
+ export class NgAtomicFormSectionSwitcher extends NgAtomicComponent {
46
+ constructor() {
47
+ super(...arguments);
48
+ this.name = input.required();
49
+ this.control = input.required();
50
+ this.field = input.required();
51
+ }
52
+ static { this.ActionId = ActionId; }
53
+ dispatchFileInputAction(action, name) {
54
+ switch (action.id) {
55
+ case FileInputSectionOrganism.ActionId.FILE_SELECTED: {
56
+ return this.dispatch({ id: ActionId.FILE_SELECTED, payload: { scope: name, files: action.payload } });
57
+ }
58
+ case FileInputSectionOrganism.ActionId.CANCEL: {
59
+ return this.dispatch({ id: ActionId.CANCEL, payload: { scope: name } });
60
+ }
61
+ }
62
+ }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicFormSectionSwitcher, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NgAtomicFormSectionSwitcher, isStandalone: true, selector: "ng-atomic-form-section-switcher", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
65
+ @if (field(); as field) {
66
+ @switch (field.type) {
67
+ @case ('select') {
68
+ @defer {
69
+ <organisms-select-input-section injectable
70
+ [label]="name() | domain"
71
+ [control]="control()"
72
+ [hint]="field.hint"
73
+ [options]="field.options"
74
+ [placeholder]="field.placeholder"
75
+ [actions]="field.actions"
76
+ [multiple]="field?.multiple"
77
+ (action)="dispatch($event)"
78
+ />
79
+ }
80
+ }
81
+ @case ('date') {
82
+ <organisms-date-input-section
83
+ [label]="name() | domain"
84
+ [hint]="field.hint"
85
+ [control]="control()"
86
+ [actions]="field.actions"
87
+ (action)="dispatch($event)"
88
+ />
89
+ }
90
+ @case ('date-range') {
91
+ <organisms-date-range-input-section
92
+ [label]="name() | domain"
93
+ [hint]="field.hint"
94
+ [control]="control()"
95
+ [actions]="field.actions"
96
+ (action)="dispatch($event)"
97
+ />
98
+ }
99
+ @case ('text') {
100
+ @defer {
101
+ <organisms-text-input-section injectable
102
+ [label]="name() | domain"
103
+ [control]="control()"
104
+ [actions]="field.actions"
105
+ [hint]="field.hint"
106
+ [placeholder]="field.placeholder"
107
+ [autoComplete]="field.autoComplete"
108
+ (action)="dispatch($event)"
109
+ />
110
+ }
111
+ }
112
+ @case ('number') {
113
+ @defer {
114
+ <organisms-number-input-section injectable
115
+ [label]="name() | domain"
116
+ [control]="control()"
117
+ [actions]="field.actions"
118
+ [hint]="field.hint"
119
+ [placeholder]="field.placeholder"
120
+ (action)="dispatch($event)"
121
+ />
122
+ }
123
+ }
124
+ @case ('textarea') {
125
+ @defer {
126
+ <organisms-textarea-section injectable
127
+ [label]="name() | domain"
128
+ [control]="control()"
129
+ [hint]="field.hint"
130
+ [rows]="field.rows"
131
+ [placeholder]="field.placeholder"
132
+ (action)="dispatch($event)"
133
+ />
134
+ }
135
+ }
136
+ @case ('password') {
137
+ @defer {
138
+ <organisms-password-input-section injectable
139
+ [label]="name() | domain"
140
+ [control]="control()"
141
+ [hint]="field.hint"
142
+ [placeholder]="field.placeholder"
143
+ [actions]="field.actions"
144
+ (action)="dispatch($event)"
145
+ />
146
+ }
147
+ }
148
+ @case ('action') {
149
+ @defer {
150
+ <organisms-action-input-section injectable
151
+ [label]="name() | domain"
152
+ [control]="control()"
153
+ [hint]="field.hint"
154
+ [actions]="field.actions"
155
+ (action)="dispatch($event)"
156
+ />
157
+ }
158
+ }
159
+ @case ('file') {
160
+ @defer {
161
+ <organisms-file-input-section injectable
162
+ [label]="name() | domain"
163
+ [control]="control()"
164
+ [hint]="field.hint"
165
+ [progress]="field?.progress"
166
+ (action)="dispatchFileInputAction($event, name())"
167
+ />
168
+ }
169
+ }
170
+ @case ('slider') {
171
+ @defer {
172
+ <organisms-slider-input-section injectable
173
+ [label]="name() | domain"
174
+ [control]="control()"
175
+ [max]="field?.slider?.max"
176
+ [min]="field?.slider?.min"
177
+ [step]="field?.slider?.step"
178
+ (action)="dispatch($event)"
179
+ />
180
+ }
181
+ }
182
+ @case ('agreement') {
183
+ @defer {
184
+ <organisms-agreement-input-section injectable
185
+ [control]="control()"
186
+ [labelTemp]="field?.labelTemp"
187
+ />
188
+ }
189
+ }
190
+ @case ('preview') {
191
+ @defer {
192
+ <organisms-video-section injectable
193
+ [src]="control().value"
194
+ [autoplay]="false"
195
+ />
196
+ }
197
+ }
198
+ @case ('preview:image') {
199
+ @defer {
200
+ <organisms-image-preview-section
201
+ [src]="control().value"
202
+ />
203
+ }
204
+ }
205
+ @case ('hidden') { }
206
+ }
207
+ }
208
+ `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "pipe", type: DomainPipe, name: "domain" }, { kind: "component", type: DateInputSectionOrganism, selector: "organisms-date-input-section" }, { kind: "component", type: DateRangeInputSectionOrganism, selector: "organisms-date-range-input-section" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
209
+ }
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicFormSectionSwitcher, decorators: [{
211
+ type: Component,
212
+ args: [{ selector: 'ng-atomic-form-section-switcher', standalone: true, imports: [
213
+ DomainPipe,
214
+ AgreementInputSectionOrganism,
215
+ ActionInputSectionOrganismStore,
216
+ FileInputSectionOrganismStore,
217
+ DateInputSectionOrganism,
218
+ DateRangeInputSectionOrganism,
219
+ TextInputSectionOrganismStore,
220
+ NumberInputSectionOrganismStore,
221
+ TextareaSectionOrganismStore,
222
+ SelectInputSectionOrganismStore,
223
+ SliderInputSectionOrganismStore,
224
+ VideoSectionOrganism,
225
+ ImagePreviewSectionOrganism,
226
+ PasswordInputSectionOrganismStore,
227
+ ], template: `
228
+ @if (field(); as field) {
229
+ @switch (field.type) {
230
+ @case ('select') {
231
+ @defer {
232
+ <organisms-select-input-section injectable
233
+ [label]="name() | domain"
234
+ [control]="control()"
235
+ [hint]="field.hint"
236
+ [options]="field.options"
237
+ [placeholder]="field.placeholder"
238
+ [actions]="field.actions"
239
+ [multiple]="field?.multiple"
240
+ (action)="dispatch($event)"
241
+ />
242
+ }
243
+ }
244
+ @case ('date') {
245
+ <organisms-date-input-section
246
+ [label]="name() | domain"
247
+ [hint]="field.hint"
248
+ [control]="control()"
249
+ [actions]="field.actions"
250
+ (action)="dispatch($event)"
251
+ />
252
+ }
253
+ @case ('date-range') {
254
+ <organisms-date-range-input-section
255
+ [label]="name() | domain"
256
+ [hint]="field.hint"
257
+ [control]="control()"
258
+ [actions]="field.actions"
259
+ (action)="dispatch($event)"
260
+ />
261
+ }
262
+ @case ('text') {
263
+ @defer {
264
+ <organisms-text-input-section injectable
265
+ [label]="name() | domain"
266
+ [control]="control()"
267
+ [actions]="field.actions"
268
+ [hint]="field.hint"
269
+ [placeholder]="field.placeholder"
270
+ [autoComplete]="field.autoComplete"
271
+ (action)="dispatch($event)"
272
+ />
273
+ }
274
+ }
275
+ @case ('number') {
276
+ @defer {
277
+ <organisms-number-input-section injectable
278
+ [label]="name() | domain"
279
+ [control]="control()"
280
+ [actions]="field.actions"
281
+ [hint]="field.hint"
282
+ [placeholder]="field.placeholder"
283
+ (action)="dispatch($event)"
284
+ />
285
+ }
286
+ }
287
+ @case ('textarea') {
288
+ @defer {
289
+ <organisms-textarea-section injectable
290
+ [label]="name() | domain"
291
+ [control]="control()"
292
+ [hint]="field.hint"
293
+ [rows]="field.rows"
294
+ [placeholder]="field.placeholder"
295
+ (action)="dispatch($event)"
296
+ />
297
+ }
298
+ }
299
+ @case ('password') {
300
+ @defer {
301
+ <organisms-password-input-section injectable
302
+ [label]="name() | domain"
303
+ [control]="control()"
304
+ [hint]="field.hint"
305
+ [placeholder]="field.placeholder"
306
+ [actions]="field.actions"
307
+ (action)="dispatch($event)"
308
+ />
309
+ }
310
+ }
311
+ @case ('action') {
312
+ @defer {
313
+ <organisms-action-input-section injectable
314
+ [label]="name() | domain"
315
+ [control]="control()"
316
+ [hint]="field.hint"
317
+ [actions]="field.actions"
318
+ (action)="dispatch($event)"
319
+ />
320
+ }
321
+ }
322
+ @case ('file') {
323
+ @defer {
324
+ <organisms-file-input-section injectable
325
+ [label]="name() | domain"
326
+ [control]="control()"
327
+ [hint]="field.hint"
328
+ [progress]="field?.progress"
329
+ (action)="dispatchFileInputAction($event, name())"
330
+ />
331
+ }
332
+ }
333
+ @case ('slider') {
334
+ @defer {
335
+ <organisms-slider-input-section injectable
336
+ [label]="name() | domain"
337
+ [control]="control()"
338
+ [max]="field?.slider?.max"
339
+ [min]="field?.slider?.min"
340
+ [step]="field?.slider?.step"
341
+ (action)="dispatch($event)"
342
+ />
343
+ }
344
+ }
345
+ @case ('agreement') {
346
+ @defer {
347
+ <organisms-agreement-input-section injectable
348
+ [control]="control()"
349
+ [labelTemp]="field?.labelTemp"
350
+ />
351
+ }
352
+ }
353
+ @case ('preview') {
354
+ @defer {
355
+ <organisms-video-section injectable
356
+ [src]="control().value"
357
+ [autoplay]="false"
358
+ />
359
+ }
360
+ }
361
+ @case ('preview:image') {
362
+ @defer {
363
+ <organisms-image-preview-section
364
+ [src]="control().value"
365
+ />
366
+ }
367
+ }
368
+ @case ('hidden') { }
369
+ }
370
+ }
371
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}\n"] }]
372
+ }] });
373
+ export class NgAtomicFormSectionBuilder extends NgAtomicComponent {
374
+ constructor() {
375
+ super(...arguments);
376
+ this.form = input.required();
377
+ this.formFlatExcludes = input([]);
378
+ this.fieldMap = input.required();
379
+ this.controlEntries = computed(() => {
380
+ return flatControls(this.form(), this.formFlatExcludes()).map(([name, control]) => ({
381
+ name,
382
+ control,
383
+ field: get(this.fieldMap(), name) ?? { type: 'text' },
384
+ }));
385
+ });
386
+ }
387
+ static { this.ActionId = ActionId; }
388
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicFormSectionBuilder, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
389
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: NgAtomicFormSectionBuilder, isStandalone: true, selector: "ng-atomic-form-section-builder", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, formFlatExcludes: { classPropertyName: "formFlatExcludes", publicName: "formFlatExcludes", isSignal: true, isRequired: false, transformFunction: null }, fieldMap: { classPropertyName: "fieldMap", publicName: "fieldMap", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
390
+ @for (entry of controlEntries(); track entry.name;) {
391
+ <ng-atomic-form-section-switcher
392
+ [name]="entry.name"
393
+ [control]="entry.control"
394
+ [field]="entry.field"
395
+ (action)="dispatch($event)"
396
+ />
397
+ }
398
+ `, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: NgAtomicFormSectionSwitcher, selector: "ng-atomic-form-section-switcher", inputs: ["name", "control", "field"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
399
+ }
400
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicFormSectionBuilder, decorators: [{
401
+ type: Component,
402
+ args: [{ standalone: true, selector: 'ng-atomic-form-section-builder', imports: [
403
+ NgAtomicFormSectionSwitcher,
404
+ ], template: `
405
+ @for (entry of controlEntries(); track entry.name;) {
406
+ <ng-atomic-form-section-switcher
407
+ [name]="entry.name"
408
+ [control]="entry.control"
409
+ [field]="entry.field"
410
+ (action)="dispatch($event)"
411
+ />
412
+ }
413
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}\n"] }]
414
+ }] });
415
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21wb25lbnRzL3NyYy9saWIvdGVtcGxhdGVzL2Zvcm0vZm9ybS5idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUV2RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHNUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDN0gsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDeEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDckYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDM0csT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDekcs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Q1AsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDO2FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7S0FDSjthQWJpQixhQUFRLEdBQUcsUUFBUSxBQUFYLENBQVk7OEdBRHpCLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDBnQkFiM0I7Ozs7Ozs7OztHQVNULG1HQWpDVSwyQkFBMkI7OzJGQXFDM0IsMEJBQTBCO2tCQW5CdEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sZ0NBQWdDLFdBQ2pDO3dCQUNQLDJCQUEyQjtxQkFDNUIsWUFDUzs7Ozs7Ozs7O0dBU1QsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRleHRhcmVhU2VjdGlvbk9yZ2FuaXNtU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3RleHRhcmVhLXNlY3Rpb24nO1xuaW1wb3J0IHsgVGV4dElucHV0U2VjdGlvbk9yZ2FuaXNtU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3RleHQtaW5wdXQtc2VjdGlvbic7XG5pbXBvcnQgeyBEYXRlSW5wdXRTZWN0aW9uT3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2RhdGUtaW5wdXQtc2VjdGlvbic7XG5pbXBvcnQgeyBTZWxlY3RJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9zZWxlY3QtaW5wdXQtc2VjdGlvbic7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZvcm1GaWVsZE1hcCB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL3NtYXJ0LWZpZWxkJztcbmltcG9ydCB7IERvbWFpblBpcGUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9kb21haW4nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgX2NvbXB1dGVkLCBBY3Rpb24gfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uSW5wdXRTZWN0aW9uT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvYWN0aW9uLWlucHV0LXNlY3Rpb24nO1xuaW1wb3J0IHsgTmdBdG9taWNDb21wb25lbnQgfSBmcm9tICdAbmctYXRvbWljL2NvcmUnO1xuaW1wb3J0IHsgRmlsZUlucHV0U2VjdGlvbk9yZ2FuaXNtLCBGaWxlSW5wdXRTZWN0aW9uT3JnYW5pc21TdG9yZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvZmlsZS1pbnB1dC1zZWN0aW9uJztcbmltcG9ydCB7IEFncmVlbWVudElucHV0U2VjdGlvbk9yZ2FuaXNtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9hZ3JlZW1lbnQtaW5wdXQtc2VjdGlvbic7XG5pbXBvcnQgeyBWaWRlb1NlY3Rpb25PcmdhbmlzbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvdmlkZW8tc2VjdGlvbic7XG5pbXBvcnQgeyBOdW1iZXJJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9udW1iZXItaW5wdXQtc2VjdGlvbic7XG5pbXBvcnQgeyBJbWFnZVByZXZpZXdTZWN0aW9uT3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2ltYWdlLXByZXZpZXctc2VjdGlvbic7XG5pbXBvcnQgeyBQYXNzd29yZElucHV0U2VjdGlvbk9yZ2FuaXNtU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3Bhc3N3b3JkLWlucHV0LXNlY3Rpb24nO1xuaW1wb3J0IHsgRGF0ZVJhbmdlSW5wdXRTZWN0aW9uT3JnYW5pc20gfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2RhdGUtcmFuZ2UtaW5wdXQtc2VjdGlvbic7XG5pbXBvcnQgeyBTbGlkZXJJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy9zbGlkZXItaW5wdXQtc2VjdGlvbic7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5mdW5jdGlvbiB3YWxrQ29udHJvbHMoY29udHJvbHM6IGFueSwgY2I6IChuYW1lOiBzdHJpbmcsIGNvbnRyb2w6IGFueSkgPT4gdm9pZCwgZXhjbHVkZXM6IHN0cmluZ1tdID0gW10sIG5hbWUgPSAnJykge1xuICBPYmplY3QuZW50cmllcyhjb250cm9scykuZm9yRWFjaCgoW2tleSwgY29udHJvbF06IGFueSkgPT4ge1xuICAgIGNvbnN0IHBhdGggPSBuYW1lID09PSAnJyA/IGtleSA6IGAke25hbWV9LiR7a2V5fWA7XG4gICAgaWYgKGV4Y2x1ZGVzLmluY2x1ZGVzKHBhdGgpKSB7XG4gICAgICBjYihwYXRoLCBjb250cm9sKTtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wuY29udHJvbHMpIHtcbiAgICAgIHdhbGtDb250cm9scyhjb250cm9sLmNvbnRyb2xzLCBjYiwgZXhjbHVkZXMsIHBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYihwYXRoLCBjb250cm9sKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBmbGF0Q29udHJvbHMoZm9ybTogRm9ybUdyb3VwLCBleGNsdWRlczogc3RyaW5nW10pOiBbc3RyaW5nLCBBYnN0cmFjdENvbnRyb2xdW10ge1xuICBjb25zdCBjb250cm9sTWFwID0gbmV3IE1hcDxzdHJpbmcsIEFic3RyYWN0Q29udHJvbD4oKTtcbiAgd2Fsa0NvbnRyb2xzKGZvcm0/LmNvbnRyb2xzLCAobmFtZSwgY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiBjb250cm9sTWFwLnNldChuYW1lLCBjb250cm9sKSwgW1xuICAgIC4uLmV4Y2x1ZGVzLFxuICBdKTtcbiAgcmV0dXJuIFsuLi5jb250cm9sTWFwLmVudHJpZXMoKV07XG59XG5cblxuZW51bSBBY3Rpb25JZCB7XG4gIEZJTEVfU0VMRUNURUQgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50czp0ZW1wbGF0ZXMvZm9ybS9uZy1hdG9taWMtZm9ybS1zZWN0aW9uLXN3aXRjaGVyXSBGaWxlIHNlbGVjdGVkJyxcbiAgQ0FOQ0VMID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHM6dGVtcGxhdGVzL2Zvcm0vbmctYXRvbWljLWZvcm0tc2VjdGlvbi1zd2l0Y2hlcl0gQ2FuY2VsJyxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctYXRvbWljLWZvcm0tc2VjdGlvbi1zd2l0Y2hlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEb21haW5QaXBlLFxuICAgIEFncmVlbWVudElucHV0U2VjdGlvbk9yZ2FuaXNtLFxuICAgIEFjdGlvbklucHV0U2VjdGlvbk9yZ2FuaXNtU3RvcmUsXG4gICAgRmlsZUlucHV0U2VjdGlvbk9yZ2FuaXNtU3RvcmUsXG4gICAgRGF0ZUlucHV0U2VjdGlvbk9yZ2FuaXNtLFxuICAgIERhdGVSYW5nZUlucHV0U2VjdGlvbk9yZ2FuaXNtLFxuICAgIFRleHRJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlLFxuICAgIE51bWJlcklucHV0U2VjdGlvbk9yZ2FuaXNtU3RvcmUsXG4gICAgVGV4dGFyZWFTZWN0aW9uT3JnYW5pc21TdG9yZSxcbiAgICBTZWxlY3RJbnB1dFNlY3Rpb25PcmdhbmlzbVN0b3JlLFxuICAgIFNsaWRlcklucHV0U2VjdGlvbk9yZ2FuaXNtU3RvcmUsXG4gICAgVmlkZW9TZWN0aW9uT3JnYW5pc20sXG4gICAgSW1hZ2VQcmV2aWV3U2VjdGlvbk9yZ2FuaXNtLFxuICAgIFBhc3N3b3JkSW5wdXRTZWN0aW9uT3JnYW5pc21TdG9yZSxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGZpZWxkKCk7IGFzIGZpZWxkKSB7XG4gICAgICBAc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgIEBjYXNlICgnc2VsZWN0Jykge1xuICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICA8b3JnYW5pc21zLXNlbGVjdC1pbnB1dC1zZWN0aW9uIGluamVjdGFibGVcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIm5hbWUoKSB8IGRvbWFpblwiXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cImNvbnRyb2woKVwiXG4gICAgICAgICAgICAgIFtoaW50XT1cImZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgW2FjdGlvbnNdPVwiZmllbGQuYWN0aW9uc1wiXG4gICAgICAgICAgICAgIFttdWx0aXBsZV09XCJmaWVsZD8ubXVsdGlwbGVcIlxuICAgICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdkYXRlJykge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy1kYXRlLWlucHV0LXNlY3Rpb25cbiAgICAgICAgICAgICAgW2xhYmVsXT1cIm5hbWUoKSB8IGRvbWFpblwiXG4gICAgICAgICAgICAgIFtoaW50XT1cImZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJjb250cm9sKClcIlxuICAgICAgICAgICAgICBbYWN0aW9uc109XCJmaWVsZC5hY3Rpb25zXCJcbiAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdkYXRlLXJhbmdlJykge1xuICAgICAgICAgIDxvcmdhbmlzbXMtZGF0ZS1yYW5nZS1pbnB1dC1zZWN0aW9uXG4gICAgICAgICAgICBbbGFiZWxdPVwibmFtZSgpIHwgZG9tYWluXCJcbiAgICAgICAgICAgIFtoaW50XT1cImZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29udHJvbCgpXCJcbiAgICAgICAgICAgIFthY3Rpb25zXT1cImZpZWxkLmFjdGlvbnNcIlxuICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgndGV4dCcpIHtcbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy10ZXh0LWlucHV0LXNlY3Rpb24gaW5qZWN0YWJsZVxuICAgICAgICAgICAgICBbbGFiZWxdPVwibmFtZSgpIHwgZG9tYWluXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29udHJvbCgpXCJcbiAgICAgICAgICAgICAgW2FjdGlvbnNdPVwiZmllbGQuYWN0aW9uc1wiXG4gICAgICAgICAgICAgIFtoaW50XT1cImZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICBbYXV0b0NvbXBsZXRlXT1cImZpZWxkLmF1dG9Db21wbGV0ZVwiXG4gICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ251bWJlcicpIHtcbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy1udW1iZXItaW5wdXQtc2VjdGlvbiBpbmplY3RhYmxlXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJuYW1lKCkgfCBkb21haW5cIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJjb250cm9sKClcIlxuICAgICAgICAgICAgICBbYWN0aW9uc109XCJmaWVsZC5hY3Rpb25zXCJcbiAgICAgICAgICAgICAgW2hpbnRdPVwiZmllbGQuaGludFwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ3RleHRhcmVhJykge1xuICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICA8b3JnYW5pc21zLXRleHRhcmVhLXNlY3Rpb24gaW5qZWN0YWJsZVxuICAgICAgICAgICAgICBbbGFiZWxdPVwibmFtZSgpIHwgZG9tYWluXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29udHJvbCgpXCJcbiAgICAgICAgICAgICAgW2hpbnRdPVwiZmllbGQuaGludFwiXG4gICAgICAgICAgICAgIFtyb3dzXT1cImZpZWxkLnJvd3NcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdwYXNzd29yZCcpIHtcbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy1wYXNzd29yZC1pbnB1dC1zZWN0aW9uIGluamVjdGFibGVcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIm5hbWUoKSB8IGRvbWFpblwiXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cImNvbnRyb2woKVwiXG4gICAgICAgICAgICAgIFtoaW50XT1cImZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICBbYWN0aW9uc109XCJmaWVsZC5hY3Rpb25zXCJcbiAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnYWN0aW9uJykge1xuICAgICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgICA8b3JnYW5pc21zLWFjdGlvbi1pbnB1dC1zZWN0aW9uIGluamVjdGFibGVcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIm5hbWUoKSB8IGRvbWFpblwiXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cImNvbnRyb2woKVwiXG4gICAgICAgICAgICAgIFtoaW50XT1cImZpZWxkLmhpbnRcIlxuICAgICAgICAgICAgICBbYWN0aW9uc109XCJmaWVsZC5hY3Rpb25zXCJcbiAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnZmlsZScpIHtcbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy1maWxlLWlucHV0LXNlY3Rpb24gaW5qZWN0YWJsZVxuICAgICAgICAgICAgICBbbGFiZWxdPVwibmFtZSgpIHwgZG9tYWluXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29udHJvbCgpXCJcbiAgICAgICAgICAgICAgW2hpbnRdPVwiZmllbGQuaGludFwiXG4gICAgICAgICAgICAgIFtwcm9ncmVzc109XCJmaWVsZD8ucHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoRmlsZUlucHV0QWN0aW9uKCRldmVudCwgbmFtZSgpKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ3NsaWRlcicpIHtcbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy1zbGlkZXItaW5wdXQtc2VjdGlvbiBpbmplY3RhYmxlXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJuYW1lKCkgfCBkb21haW5cIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJjb250cm9sKClcIlxuICAgICAgICAgICAgICBbbWF4XT1cImZpZWxkPy5zbGlkZXI/Lm1heFwiXG4gICAgICAgICAgICAgIFttaW5dPVwiZmllbGQ/LnNsaWRlcj8ubWluXCJcbiAgICAgICAgICAgICAgW3N0ZXBdPVwiZmllbGQ/LnNsaWRlcj8uc3RlcFwiXG4gICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ2FncmVlbWVudCcpIHtcbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy1hZ3JlZW1lbnQtaW5wdXQtc2VjdGlvbiBpbmplY3RhYmxlXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cImNvbnRyb2woKVwiXG4gICAgICAgICAgICAgIFtsYWJlbFRlbXBdPVwiZmllbGQ/LmxhYmVsVGVtcFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ3ByZXZpZXcnKSB7XG4gICAgICAgICAgQGRlZmVyIHtcbiAgICAgICAgICAgIDxvcmdhbmlzbXMtdmlkZW8tc2VjdGlvbiBpbmplY3RhYmxlXG4gICAgICAgICAgICAgIFtzcmNdPVwiY29udHJvbCgpLnZhbHVlXCJcbiAgICAgICAgICAgICAgW2F1dG9wbGF5XT1cImZhbHNlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgncHJldmlldzppbWFnZScpIHtcbiAgICAgICAgICBAZGVmZXIge1xuICAgICAgICAgICAgPG9yZ2FuaXNtcy1pbWFnZS1wcmV2aWV3LXNlY3Rpb25cbiAgICAgICAgICAgICAgW3NyY109XCJjb250cm9sKCkudmFsdWVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdoaWRkZW4nKSB7IH1cbiAgICAgIH1cbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdHlsZXM6IFtgOmhvc3QgeyBkaXNwbGF5OiBjb250ZW50czsgfWBdXG59KVxuZXhwb3J0IGNsYXNzIE5nQXRvbWljRm9ybVNlY3Rpb25Td2l0Y2hlciBleHRlbmRzIE5nQXRvbWljQ29tcG9uZW50IHtcbiAgc3RhdGljIHJlYWRvbmx5IEFjdGlvbklkID0gQWN0aW9uSWQ7XG4gIHJlYWRvbmx5IG5hbWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNvbnRyb2wgPSBpbnB1dC5yZXF1aXJlZDxBYnN0cmFjdENvbnRyb2w+KCk7XG4gIHJlYWRvbmx5IGZpZWxkID0gaW5wdXQucmVxdWlyZWQ8Rm9ybUZpZWxkTWFwIHwgRm9ybUZpZWxkPigpO1xuXG4gIHByb3RlY3RlZCBkaXNwYXRjaEZpbGVJbnB1dEFjdGlvbihhY3Rpb246IEFjdGlvbiwgbmFtZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChhY3Rpb24uaWQpIHtcbiAgICAgIGNhc2UgRmlsZUlucHV0U2VjdGlvbk9yZ2FuaXNtLkFjdGlvbklkLkZJTEVfU0VMRUNURUQ6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goe2lkOiBBY3Rpb25JZC5GSUxFX1NFTEVDVEVELCBwYXlsb2FkOiB7c2NvcGU6IG5hbWUsIGZpbGVzOiBhY3Rpb24ucGF5bG9hZH19KTtcbiAgICAgIH1cbiAgICAgIGNhc2UgRmlsZUlucHV0U2VjdGlvbk9yZ2FuaXNtLkFjdGlvbklkLkNBTkNFTDoge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaCh7aWQ6IEFjdGlvbklkLkNBTkNFTCwgcGF5bG9hZDoge3Njb3BlOiBuYW1lfX0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICduZy1hdG9taWMtZm9ybS1zZWN0aW9uLWJ1aWxkZXInLFxuICBpbXBvcnRzOiBbXG4gICAgTmdBdG9taWNGb3JtU2VjdGlvblN3aXRjaGVyLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBmb3IgKGVudHJ5IG9mIGNvbnRyb2xFbnRyaWVzKCk7IHRyYWNrIGVudHJ5Lm5hbWU7KSB7XG4gICAgICA8bmctYXRvbWljLWZvcm0tc2VjdGlvbi1zd2l0Y2hlclxuICAgICAgICBbbmFtZV09XCJlbnRyeS5uYW1lXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiZW50cnkuY29udHJvbFwiXG4gICAgICAgIFtmaWVsZF09XCJlbnRyeS5maWVsZFwiXG4gICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAvPlxuICAgIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlczogYDpob3N0IHsgZGlzcGxheTogY29udGVudHM7IH1gLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0F0b21pY0Zvcm1TZWN0aW9uQnVpbGRlciBleHRlbmRzIE5nQXRvbWljQ29tcG9uZW50IHtcbiAgc3RhdGljIHJlYWRvbmx5IEFjdGlvbklkID0gQWN0aW9uSWQ7XG5cbiAgcmVhZG9ubHkgZm9ybSA9IGlucHV0LnJlcXVpcmVkPEZvcm1Hcm91cD4oKTtcbiAgcmVhZG9ubHkgZm9ybUZsYXRFeGNsdWRlcyA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIHJlYWRvbmx5IGZpZWxkTWFwID0gaW5wdXQucmVxdWlyZWQ8Rm9ybUZpZWxkTWFwPigpO1xuXG4gIHJlYWRvbmx5IGNvbnRyb2xFbnRyaWVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBmbGF0Q29udHJvbHModGhpcy5mb3JtKCksIHRoaXMuZm9ybUZsYXRFeGNsdWRlcygpKS5tYXAoKFtuYW1lLCBjb250cm9sXSkgPT4gKHtcbiAgICAgIG5hbWUsXG4gICAgICBjb250cm9sLFxuICAgICAgZmllbGQ6IGdldCh0aGlzLmZpZWxkTWFwKCksIG5hbWUpID8/IHt0eXBlOiAndGV4dCd9LFxuICAgIH0pKTtcbiAgfSk7XG59XG4iXX0=