@ng-atomic/components 17.6.0 → 17.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/atoms/icon/icon.atom.mjs +2 -2
- package/esm2022/frames/app/app.frame.mjs +12 -9
- package/esm2022/frames/auto-layout/auto-layout.frame.mjs +2 -2
- package/esm2022/frames/columns/columns.frame.mjs +2 -2
- package/esm2022/frames/divider/divider.frame.mjs +2 -2
- package/esm2022/frames/drawer/drawer.frame.mjs +2 -2
- package/esm2022/frames/entrance/entrance.frame.mjs +2 -2
- package/esm2022/frames/fab/fab.frame.mjs +2 -2
- package/esm2022/frames/line-up/line-up.frame.mjs +2 -2
- package/esm2022/frames/loading/loading.frame.mjs +2 -2
- package/esm2022/frames/router-outlet/router-outlet.frame.mjs +2 -2
- package/esm2022/frames/scroll/scroll.frame.mjs +2 -2
- package/esm2022/frames/scroll-v2/scroll.frame.mjs +2 -2
- package/esm2022/frames/side-nav/side-nav.frame.mjs +2 -2
- package/esm2022/frames/smart-menu/smart-menu.frame.mjs +2 -2
- package/esm2022/frames/vertical-hide/vertical-hide.frame.mjs +2 -2
- package/esm2022/molecules/date-input-field/date-input-field.molecule.mjs +2 -2
- package/esm2022/molecules/date-range-input-field/date-range-input-field.molecule.mjs +2 -2
- package/esm2022/molecules/grid-item/grid-item.molecule.mjs +2 -2
- package/esm2022/molecules/loading-box/loading-box.molecule.mjs +2 -2
- package/esm2022/molecules/navigation-list-item/navigation-list-item.molecule.mjs +2 -2
- package/esm2022/molecules/select-input-field/select-input-field.molecule.mjs +2 -2
- package/esm2022/organisms/action-buttons-section/action-buttons-section.organism.mjs +2 -2
- package/esm2022/organisms/action-input-section/action-input-section.organism.mjs +2 -2
- package/esm2022/organisms/card-input-section/card-input-section.organism.mjs +2 -2
- package/esm2022/organisms/cvc-and-exp-input-section/cvc-and-exp-input-section.organism.mjs +2 -2
- package/esm2022/organisms/date-input-section/date-input-section.organism.mjs +2 -2
- package/esm2022/organisms/date-range-input-section/date-range-input-section.organism.mjs +2 -2
- package/esm2022/organisms/definition-list/definition-list.organism.mjs +2 -2
- package/esm2022/organisms/file-input-section/file-input-section.organism.mjs +2 -2
- package/esm2022/organisms/grid-cards-section/grid-cards-section.organism.mjs +2 -2
- package/esm2022/organisms/heading/heading.organism.mjs +2 -2
- package/esm2022/organisms/menu-footer/menu-footer.organism.mjs +2 -2
- package/esm2022/organisms/menu-header/menu-header.organism.mjs +2 -2
- package/esm2022/organisms/messages-section/messages-section.organism.mjs +2 -2
- package/esm2022/organisms/navigation-list/navigation-list.organism.mjs +2 -2
- package/esm2022/organisms/navigator/navigator.organism.mjs +2 -2
- package/esm2022/organisms/number-input-section/number-input-section.organism.mjs +2 -2
- package/esm2022/organisms/paginator/paginator.organism.mjs +2 -2
- package/esm2022/organisms/password-input-section/password-input-section.organism.mjs +2 -2
- package/esm2022/organisms/select-input-section/select-input-section.organism.mjs +2 -2
- package/esm2022/organisms/slider-input-section/slider-input-section.organism.mjs +2 -2
- package/esm2022/organisms/social-login-section/social-login-section.organism.mjs +2 -2
- package/esm2022/organisms/table/table.organism.mjs +2 -2
- package/esm2022/organisms/text-input-section/text-input-section.organism.mjs +2 -2
- package/esm2022/organisms/textarea-section/textarea-section.organism.mjs +2 -2
- package/esm2022/organisms/thread-messages-section/thread-messages-section.organism.mjs +2 -2
- package/esm2022/pages/_index/index.page.mjs +24 -6
- package/esm2022/pages/form/form.page.mjs +23 -5
- package/esm2022/templates/_index/index.template.mjs +2 -2
- package/esm2022/templates/background/background.template.mjs +2 -2
- package/esm2022/templates/entrance/entrance.template.mjs +22 -36
- package/esm2022/templates/form/form.builder.mjs +415 -0
- package/esm2022/templates/form/form.template.mjs +24 -364
- package/esm2022/templates/form/index.mjs +2 -1
- package/esm2022/templates/icon-button-menu/icon-button-menu.template.mjs +2 -2
- package/esm2022/templates/menu/menu.template.mjs +2 -2
- package/esm2022/templates/selection/selection.template.mjs +2 -2
- package/esm2022/templates/settings/settings.template.mjs +2 -2
- package/fesm2022/ng-atomic-components-atoms-icon.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-app.mjs +11 -8
- package/fesm2022/ng-atomic-components-frames-app.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-auto-layout.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-columns.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-divider.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-drawer.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-entrance.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-entrance.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-fab.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-line-up.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-loading.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-router-outlet.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-scroll-v2.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-scroll.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-side-nav.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-smart-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-date-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-date-range-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-grid-item.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-loading-box.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-navigation-list-item.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-action-buttons-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-action-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-card-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-definition-list.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-file-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-grid-cards-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-heading.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-menu-footer.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-menu-header.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-messages-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-navigation-list.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-navigator.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-paginator.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-social-login-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-table.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-thread-messages-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-pages-_index.mjs +23 -5
- package/fesm2022/ng-atomic-components-pages-_index.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-pages-form.mjs +22 -4
- package/fesm2022/ng-atomic-components-pages-form.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-_index.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-background.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-entrance.mjs +21 -35
- package/fesm2022/ng-atomic-components-templates-entrance.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-form.mjs +408 -337
- package/fesm2022/ng-atomic-components-templates-form.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-selection.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-settings.mjs +2 -2
- package/frames/app/app.frame.d.ts +7 -4
- package/package.json +3 -3
- package/pages/_index/index.page.d.ts +5 -2
- package/pages/form/form.page.d.ts +3 -0
- package/templates/entrance/entrance.template.d.ts +3 -1
- package/templates/form/form.builder.d.ts +33 -0
- package/templates/form/form.template.d.ts +7 -13
- 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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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-
|
|
81
|
+
`, isInline: true, styles: [":host{--horizontal-padding: 64px;--horizontal-padding-SCOPED-IN-entrance-olss: var(--horizontal-padding);--background-color: #eee;--background-color-SCOPED-IN-entrance-olss: var(--background-color);--on-background-color: #333;--on-background-color-SCOPED-IN-entrance-olss: var(--on-background-color);--page-width-lv1-SCOPED-IN-entrance-olss: var(--page-width-lv1)}:host{display:flex;justify-content:center;align-items:center;background-color:var(--background-color-SCOPED-IN-entrance-olss);color:var(--on-background-color-SCOPED-IN-entrance-olss);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-olss)}:host frames-card ng-atomic-form-section-builder{max-width:calc(100% - 32px);--horizontal-padding: var(--horizontal-padding-SCOPED-IN-entrance-olss)}\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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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-
|
|
119
|
+
], styles: [":host{--horizontal-padding: 64px;--horizontal-padding-SCOPED-IN-entrance-olss: var(--horizontal-padding);--background-color: #eee;--background-color-SCOPED-IN-entrance-olss: var(--background-color);--on-background-color: #333;--on-background-color-SCOPED-IN-entrance-olss: var(--on-background-color);--page-width-lv1-SCOPED-IN-entrance-olss: var(--page-width-lv1)}:host{display:flex;justify-content:center;align-items:center;background-color:var(--background-color-SCOPED-IN-entrance-olss);color:var(--on-background-color-SCOPED-IN-entrance-olss);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-olss)}:host frames-card ng-atomic-form-section-builder{max-width:calc(100% - 32px);--horizontal-padding: var(--horizontal-padding-SCOPED-IN-entrance-olss)}\n"] }]
|
|
134
120
|
}] });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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=
|