@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.
Files changed (130) hide show
  1. package/esm2022/atoms/icon/icon.atom.mjs +2 -2
  2. package/esm2022/frames/app/app.frame.mjs +12 -9
  3. package/esm2022/frames/auto-layout/auto-layout.frame.mjs +2 -2
  4. package/esm2022/frames/columns/columns.frame.mjs +2 -2
  5. package/esm2022/frames/divider/divider.frame.mjs +2 -2
  6. package/esm2022/frames/drawer/drawer.frame.mjs +2 -2
  7. package/esm2022/frames/entrance/entrance.frame.mjs +2 -2
  8. package/esm2022/frames/fab/fab.frame.mjs +2 -2
  9. package/esm2022/frames/line-up/line-up.frame.mjs +2 -2
  10. package/esm2022/frames/loading/loading.frame.mjs +2 -2
  11. package/esm2022/frames/router-outlet/router-outlet.frame.mjs +2 -2
  12. package/esm2022/frames/scroll/scroll.frame.mjs +2 -2
  13. package/esm2022/frames/scroll-v2/scroll.frame.mjs +2 -2
  14. package/esm2022/frames/side-nav/side-nav.frame.mjs +2 -2
  15. package/esm2022/frames/smart-menu/smart-menu.frame.mjs +2 -2
  16. package/esm2022/frames/vertical-hide/vertical-hide.frame.mjs +2 -2
  17. package/esm2022/molecules/date-input-field/date-input-field.molecule.mjs +2 -2
  18. package/esm2022/molecules/date-range-input-field/date-range-input-field.molecule.mjs +2 -2
  19. package/esm2022/molecules/grid-item/grid-item.molecule.mjs +2 -2
  20. package/esm2022/molecules/loading-box/loading-box.molecule.mjs +2 -2
  21. package/esm2022/molecules/navigation-list-item/navigation-list-item.molecule.mjs +2 -2
  22. package/esm2022/molecules/select-input-field/select-input-field.molecule.mjs +2 -2
  23. package/esm2022/organisms/action-buttons-section/action-buttons-section.organism.mjs +2 -2
  24. package/esm2022/organisms/action-input-section/action-input-section.organism.mjs +2 -2
  25. package/esm2022/organisms/card-input-section/card-input-section.organism.mjs +2 -2
  26. package/esm2022/organisms/cvc-and-exp-input-section/cvc-and-exp-input-section.organism.mjs +2 -2
  27. package/esm2022/organisms/date-input-section/date-input-section.organism.mjs +2 -2
  28. package/esm2022/organisms/date-range-input-section/date-range-input-section.organism.mjs +2 -2
  29. package/esm2022/organisms/definition-list/definition-list.organism.mjs +2 -2
  30. package/esm2022/organisms/file-input-section/file-input-section.organism.mjs +2 -2
  31. package/esm2022/organisms/grid-cards-section/grid-cards-section.organism.mjs +2 -2
  32. package/esm2022/organisms/heading/heading.organism.mjs +2 -2
  33. package/esm2022/organisms/menu-footer/menu-footer.organism.mjs +2 -2
  34. package/esm2022/organisms/menu-header/menu-header.organism.mjs +2 -2
  35. package/esm2022/organisms/messages-section/messages-section.organism.mjs +2 -2
  36. package/esm2022/organisms/navigation-list/navigation-list.organism.mjs +2 -2
  37. package/esm2022/organisms/navigator/navigator.organism.mjs +2 -2
  38. package/esm2022/organisms/number-input-section/number-input-section.organism.mjs +2 -2
  39. package/esm2022/organisms/paginator/paginator.organism.mjs +2 -2
  40. package/esm2022/organisms/password-input-section/password-input-section.organism.mjs +2 -2
  41. package/esm2022/organisms/select-input-section/select-input-section.organism.mjs +2 -2
  42. package/esm2022/organisms/slider-input-section/slider-input-section.organism.mjs +2 -2
  43. package/esm2022/organisms/social-login-section/social-login-section.organism.mjs +2 -2
  44. package/esm2022/organisms/table/table.organism.mjs +2 -2
  45. package/esm2022/organisms/text-input-section/text-input-section.organism.mjs +2 -2
  46. package/esm2022/organisms/textarea-section/textarea-section.organism.mjs +2 -2
  47. package/esm2022/organisms/thread-messages-section/thread-messages-section.organism.mjs +2 -2
  48. package/esm2022/pages/_index/index.page.mjs +24 -6
  49. package/esm2022/pages/form/form.page.mjs +23 -5
  50. package/esm2022/templates/_index/index.template.mjs +2 -2
  51. package/esm2022/templates/background/background.template.mjs +2 -2
  52. package/esm2022/templates/entrance/entrance.template.mjs +22 -36
  53. package/esm2022/templates/form/form.builder.mjs +415 -0
  54. package/esm2022/templates/form/form.template.mjs +24 -364
  55. package/esm2022/templates/form/index.mjs +2 -1
  56. package/esm2022/templates/icon-button-menu/icon-button-menu.template.mjs +2 -2
  57. package/esm2022/templates/menu/menu.template.mjs +2 -2
  58. package/esm2022/templates/selection/selection.template.mjs +2 -2
  59. package/esm2022/templates/settings/settings.template.mjs +2 -2
  60. package/fesm2022/ng-atomic-components-atoms-icon.mjs +2 -2
  61. package/fesm2022/ng-atomic-components-frames-app.mjs +11 -8
  62. package/fesm2022/ng-atomic-components-frames-app.mjs.map +1 -1
  63. package/fesm2022/ng-atomic-components-frames-auto-layout.mjs +2 -2
  64. package/fesm2022/ng-atomic-components-frames-columns.mjs +2 -2
  65. package/fesm2022/ng-atomic-components-frames-divider.mjs +2 -2
  66. package/fesm2022/ng-atomic-components-frames-drawer.mjs +2 -2
  67. package/fesm2022/ng-atomic-components-frames-entrance.mjs +2 -2
  68. package/fesm2022/ng-atomic-components-frames-entrance.mjs.map +1 -1
  69. package/fesm2022/ng-atomic-components-frames-fab.mjs +2 -2
  70. package/fesm2022/ng-atomic-components-frames-line-up.mjs +2 -2
  71. package/fesm2022/ng-atomic-components-frames-loading.mjs +2 -2
  72. package/fesm2022/ng-atomic-components-frames-router-outlet.mjs +2 -2
  73. package/fesm2022/ng-atomic-components-frames-scroll-v2.mjs +2 -2
  74. package/fesm2022/ng-atomic-components-frames-scroll.mjs +2 -2
  75. package/fesm2022/ng-atomic-components-frames-side-nav.mjs +2 -2
  76. package/fesm2022/ng-atomic-components-frames-smart-menu.mjs +2 -2
  77. package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs +2 -2
  78. package/fesm2022/ng-atomic-components-molecules-date-input-field.mjs +2 -2
  79. package/fesm2022/ng-atomic-components-molecules-date-range-input-field.mjs +2 -2
  80. package/fesm2022/ng-atomic-components-molecules-grid-item.mjs +2 -2
  81. package/fesm2022/ng-atomic-components-molecules-loading-box.mjs +2 -2
  82. package/fesm2022/ng-atomic-components-molecules-navigation-list-item.mjs +2 -2
  83. package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs +2 -2
  84. package/fesm2022/ng-atomic-components-organisms-action-buttons-section.mjs +2 -2
  85. package/fesm2022/ng-atomic-components-organisms-action-input-section.mjs +2 -2
  86. package/fesm2022/ng-atomic-components-organisms-card-input-section.mjs +2 -2
  87. package/fesm2022/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs +2 -2
  88. package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs +2 -2
  89. package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs +2 -2
  90. package/fesm2022/ng-atomic-components-organisms-definition-list.mjs +2 -2
  91. package/fesm2022/ng-atomic-components-organisms-file-input-section.mjs +2 -2
  92. package/fesm2022/ng-atomic-components-organisms-grid-cards-section.mjs +2 -2
  93. package/fesm2022/ng-atomic-components-organisms-heading.mjs +2 -2
  94. package/fesm2022/ng-atomic-components-organisms-menu-footer.mjs +2 -2
  95. package/fesm2022/ng-atomic-components-organisms-menu-header.mjs +2 -2
  96. package/fesm2022/ng-atomic-components-organisms-messages-section.mjs +2 -2
  97. package/fesm2022/ng-atomic-components-organisms-navigation-list.mjs +2 -2
  98. package/fesm2022/ng-atomic-components-organisms-navigator.mjs +2 -2
  99. package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs +2 -2
  100. package/fesm2022/ng-atomic-components-organisms-paginator.mjs +2 -2
  101. package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs +2 -2
  102. package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs +2 -2
  103. package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs +2 -2
  104. package/fesm2022/ng-atomic-components-organisms-social-login-section.mjs +2 -2
  105. package/fesm2022/ng-atomic-components-organisms-table.mjs +2 -2
  106. package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs +2 -2
  107. package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs +2 -2
  108. package/fesm2022/ng-atomic-components-organisms-thread-messages-section.mjs +2 -2
  109. package/fesm2022/ng-atomic-components-pages-_index.mjs +23 -5
  110. package/fesm2022/ng-atomic-components-pages-_index.mjs.map +1 -1
  111. package/fesm2022/ng-atomic-components-pages-form.mjs +22 -4
  112. package/fesm2022/ng-atomic-components-pages-form.mjs.map +1 -1
  113. package/fesm2022/ng-atomic-components-templates-_index.mjs +2 -2
  114. package/fesm2022/ng-atomic-components-templates-background.mjs +2 -2
  115. package/fesm2022/ng-atomic-components-templates-entrance.mjs +21 -35
  116. package/fesm2022/ng-atomic-components-templates-entrance.mjs.map +1 -1
  117. package/fesm2022/ng-atomic-components-templates-form.mjs +408 -337
  118. package/fesm2022/ng-atomic-components-templates-form.mjs.map +1 -1
  119. package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs +2 -2
  120. package/fesm2022/ng-atomic-components-templates-menu.mjs +2 -2
  121. package/fesm2022/ng-atomic-components-templates-selection.mjs +2 -2
  122. package/fesm2022/ng-atomic-components-templates-settings.mjs +2 -2
  123. package/frames/app/app.frame.d.ts +7 -4
  124. package/package.json +3 -3
  125. package/pages/_index/index.page.d.ts +5 -2
  126. package/pages/form/form.page.d.ts +3 -0
  127. package/templates/entrance/entrance.template.d.ts +3 -1
  128. package/templates/form/form.builder.d.ts +33 -0
  129. package/templates/form/form.template.d.ts +7 -13
  130. package/templates/form/index.d.ts +1 -0
@@ -1,29 +1,29 @@
1
- import { __decorate, __metadata } from 'tslib';
2
1
  import * as i0 from '@angular/core';
3
- import { input, computed, inject, Directive, ChangeDetectorRef, Component, ChangeDetectionStrategy } from '@angular/core';
4
- import { FormBuilder } from '@angular/forms';
5
- import { ScrollFrame } from '@ng-atomic/components/frames/scroll-v2';
6
- import { AutoLayoutFrame } from '@ng-atomic/components/frames/auto-layout';
7
- import { HeaderMoleculeStore } from '@ng-atomic/components/molecules/header';
8
- import { ActionButtonsSectionOrganismStore } from '@ng-atomic/components/organisms/action-buttons-section';
9
- import { NavigatorOrganismStore } from '@ng-atomic/components/organisms/navigator';
2
+ import { input, Component, ChangeDetectionStrategy, computed, inject, Directive, ChangeDetectorRef } from '@angular/core';
10
3
  import { TextareaSectionOrganismStore } from '@ng-atomic/components/organisms/textarea-section';
11
4
  import { TextInputSectionOrganismStore } from '@ng-atomic/components/organisms/text-input-section';
12
5
  import { DateInputSectionOrganism } from '@ng-atomic/components/organisms/date-input-section';
13
6
  import { SelectInputSectionOrganismStore } from '@ng-atomic/components/organisms/select-input-section';
14
7
  import { DomainPipe } from '@ng-atomic/common/pipes/domain';
15
- import { InjectableComponent, _computed, NgAtomicComponent, Effect } from '@ng-atomic/core';
16
8
  import { ActionInputSectionOrganismStore } from '@ng-atomic/components/organisms/action-input-section';
9
+ import { NgAtomicComponent, InjectableComponent, _computed, Effect } from '@ng-atomic/core';
17
10
  import { FileInputSectionOrganism, FileInputSectionOrganismStore } from '@ng-atomic/components/organisms/file-input-section';
18
11
  import { AgreementInputSectionOrganism } from '@ng-atomic/components/organisms/agreement-input-section';
19
12
  import { VideoSectionOrganism } from '@ng-atomic/components/organisms/video-section';
20
- import { makeConfig, injectIsRootPage, injectNavStartActions, NavActionId } from '@ng-atomic/common/services/ui';
21
- import { get } from 'lodash-es';
22
13
  import { NumberInputSectionOrganismStore } from '@ng-atomic/components/organisms/number-input-section';
23
14
  import { ImagePreviewSectionOrganism } from '@ng-atomic/components/organisms/image-preview-section';
24
15
  import { PasswordInputSectionOrganismStore } from '@ng-atomic/components/organisms/password-input-section';
25
16
  import { DateRangeInputSectionOrganism } from '@ng-atomic/components/organisms/date-range-input-section';
26
17
  import { SliderInputSectionOrganismStore } from '@ng-atomic/components/organisms/slider-input-section';
18
+ import { get } from 'lodash-es';
19
+ import { __decorate, __metadata } from 'tslib';
20
+ import { FormBuilder } from '@angular/forms';
21
+ import { ScrollFrame } from '@ng-atomic/components/frames/scroll-v2';
22
+ import { AutoLayoutFrame } from '@ng-atomic/components/frames/auto-layout';
23
+ import { HeaderMoleculeStore } from '@ng-atomic/components/molecules/header';
24
+ import { ActionButtonsSectionOrganismStore } from '@ng-atomic/components/organisms/action-buttons-section';
25
+ import { NavigatorOrganismStore } from '@ng-atomic/components/organisms/navigator';
26
+ import { makeConfig, injectIsRootPage, injectNavStartActions, NavActionId } from '@ng-atomic/common/services/ui';
27
27
 
28
28
  function walkControls(controls, cb, excludes = [], name = '') {
29
29
  Object.entries(controls).forEach(([key, control]) => {
@@ -46,6 +46,382 @@ function flatControls(form, excludes) {
46
46
  ]);
47
47
  return [...controlMap.entries()];
48
48
  }
49
+ var ActionId$1;
50
+ (function (ActionId) {
51
+ ActionId["FILE_SELECTED"] = "[@ng-atomic/components:templates/form/ng-atomic-form-section-switcher] File selected";
52
+ ActionId["CANCEL"] = "[@ng-atomic/components:templates/form/ng-atomic-form-section-switcher] Cancel";
53
+ })(ActionId$1 || (ActionId$1 = {}));
54
+ class NgAtomicFormSectionSwitcher extends NgAtomicComponent {
55
+ constructor() {
56
+ super(...arguments);
57
+ this.name = input.required();
58
+ this.control = input.required();
59
+ this.field = input.required();
60
+ }
61
+ static { this.ActionId = ActionId$1; }
62
+ dispatchFileInputAction(action, name) {
63
+ switch (action.id) {
64
+ case FileInputSectionOrganism.ActionId.FILE_SELECTED: {
65
+ return this.dispatch({ id: ActionId$1.FILE_SELECTED, payload: { scope: name, files: action.payload } });
66
+ }
67
+ case FileInputSectionOrganism.ActionId.CANCEL: {
68
+ return this.dispatch({ id: ActionId$1.CANCEL, payload: { scope: name } });
69
+ }
70
+ }
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicFormSectionSwitcher, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
73
+ 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: `
74
+ @if (field(); as field) {
75
+ @switch (field.type) {
76
+ @case ('select') {
77
+ @defer {
78
+ <organisms-select-input-section injectable
79
+ [label]="name() | domain"
80
+ [control]="control()"
81
+ [hint]="field.hint"
82
+ [options]="field.options"
83
+ [placeholder]="field.placeholder"
84
+ [actions]="field.actions"
85
+ [multiple]="field?.multiple"
86
+ (action)="dispatch($event)"
87
+ />
88
+ }
89
+ }
90
+ @case ('date') {
91
+ <organisms-date-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 ('date-range') {
100
+ <organisms-date-range-input-section
101
+ [label]="name() | domain"
102
+ [hint]="field.hint"
103
+ [control]="control()"
104
+ [actions]="field.actions"
105
+ (action)="dispatch($event)"
106
+ />
107
+ }
108
+ @case ('text') {
109
+ @defer {
110
+ <organisms-text-input-section injectable
111
+ [label]="name() | domain"
112
+ [control]="control()"
113
+ [actions]="field.actions"
114
+ [hint]="field.hint"
115
+ [placeholder]="field.placeholder"
116
+ [autoComplete]="field.autoComplete"
117
+ (action)="dispatch($event)"
118
+ />
119
+ }
120
+ }
121
+ @case ('number') {
122
+ @defer {
123
+ <organisms-number-input-section injectable
124
+ [label]="name() | domain"
125
+ [control]="control()"
126
+ [actions]="field.actions"
127
+ [hint]="field.hint"
128
+ [placeholder]="field.placeholder"
129
+ (action)="dispatch($event)"
130
+ />
131
+ }
132
+ }
133
+ @case ('textarea') {
134
+ @defer {
135
+ <organisms-textarea-section injectable
136
+ [label]="name() | domain"
137
+ [control]="control()"
138
+ [hint]="field.hint"
139
+ [rows]="field.rows"
140
+ [placeholder]="field.placeholder"
141
+ (action)="dispatch($event)"
142
+ />
143
+ }
144
+ }
145
+ @case ('password') {
146
+ @defer {
147
+ <organisms-password-input-section injectable
148
+ [label]="name() | domain"
149
+ [control]="control()"
150
+ [hint]="field.hint"
151
+ [placeholder]="field.placeholder"
152
+ [actions]="field.actions"
153
+ (action)="dispatch($event)"
154
+ />
155
+ }
156
+ }
157
+ @case ('action') {
158
+ @defer {
159
+ <organisms-action-input-section injectable
160
+ [label]="name() | domain"
161
+ [control]="control()"
162
+ [hint]="field.hint"
163
+ [actions]="field.actions"
164
+ (action)="dispatch($event)"
165
+ />
166
+ }
167
+ }
168
+ @case ('file') {
169
+ @defer {
170
+ <organisms-file-input-section injectable
171
+ [label]="name() | domain"
172
+ [control]="control()"
173
+ [hint]="field.hint"
174
+ [progress]="field?.progress"
175
+ (action)="dispatchFileInputAction($event, name())"
176
+ />
177
+ }
178
+ }
179
+ @case ('slider') {
180
+ @defer {
181
+ <organisms-slider-input-section injectable
182
+ [label]="name() | domain"
183
+ [control]="control()"
184
+ [max]="field?.slider?.max"
185
+ [min]="field?.slider?.min"
186
+ [step]="field?.slider?.step"
187
+ (action)="dispatch($event)"
188
+ />
189
+ }
190
+ }
191
+ @case ('agreement') {
192
+ @defer {
193
+ <organisms-agreement-input-section injectable
194
+ [control]="control()"
195
+ [labelTemp]="field?.labelTemp"
196
+ />
197
+ }
198
+ }
199
+ @case ('preview') {
200
+ @defer {
201
+ <organisms-video-section injectable
202
+ [src]="control().value"
203
+ [autoplay]="false"
204
+ />
205
+ }
206
+ }
207
+ @case ('preview:image') {
208
+ @defer {
209
+ <organisms-image-preview-section
210
+ [src]="control().value"
211
+ />
212
+ }
213
+ }
214
+ @case ('hidden') { }
215
+ }
216
+ }
217
+ `, 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 }); }
218
+ }
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicFormSectionSwitcher, decorators: [{
220
+ type: Component,
221
+ args: [{ selector: 'ng-atomic-form-section-switcher', standalone: true, imports: [
222
+ DomainPipe,
223
+ AgreementInputSectionOrganism,
224
+ ActionInputSectionOrganismStore,
225
+ FileInputSectionOrganismStore,
226
+ DateInputSectionOrganism,
227
+ DateRangeInputSectionOrganism,
228
+ TextInputSectionOrganismStore,
229
+ NumberInputSectionOrganismStore,
230
+ TextareaSectionOrganismStore,
231
+ SelectInputSectionOrganismStore,
232
+ SliderInputSectionOrganismStore,
233
+ VideoSectionOrganism,
234
+ ImagePreviewSectionOrganism,
235
+ PasswordInputSectionOrganismStore,
236
+ ], template: `
237
+ @if (field(); as field) {
238
+ @switch (field.type) {
239
+ @case ('select') {
240
+ @defer {
241
+ <organisms-select-input-section injectable
242
+ [label]="name() | domain"
243
+ [control]="control()"
244
+ [hint]="field.hint"
245
+ [options]="field.options"
246
+ [placeholder]="field.placeholder"
247
+ [actions]="field.actions"
248
+ [multiple]="field?.multiple"
249
+ (action)="dispatch($event)"
250
+ />
251
+ }
252
+ }
253
+ @case ('date') {
254
+ <organisms-date-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 ('date-range') {
263
+ <organisms-date-range-input-section
264
+ [label]="name() | domain"
265
+ [hint]="field.hint"
266
+ [control]="control()"
267
+ [actions]="field.actions"
268
+ (action)="dispatch($event)"
269
+ />
270
+ }
271
+ @case ('text') {
272
+ @defer {
273
+ <organisms-text-input-section injectable
274
+ [label]="name() | domain"
275
+ [control]="control()"
276
+ [actions]="field.actions"
277
+ [hint]="field.hint"
278
+ [placeholder]="field.placeholder"
279
+ [autoComplete]="field.autoComplete"
280
+ (action)="dispatch($event)"
281
+ />
282
+ }
283
+ }
284
+ @case ('number') {
285
+ @defer {
286
+ <organisms-number-input-section injectable
287
+ [label]="name() | domain"
288
+ [control]="control()"
289
+ [actions]="field.actions"
290
+ [hint]="field.hint"
291
+ [placeholder]="field.placeholder"
292
+ (action)="dispatch($event)"
293
+ />
294
+ }
295
+ }
296
+ @case ('textarea') {
297
+ @defer {
298
+ <organisms-textarea-section injectable
299
+ [label]="name() | domain"
300
+ [control]="control()"
301
+ [hint]="field.hint"
302
+ [rows]="field.rows"
303
+ [placeholder]="field.placeholder"
304
+ (action)="dispatch($event)"
305
+ />
306
+ }
307
+ }
308
+ @case ('password') {
309
+ @defer {
310
+ <organisms-password-input-section injectable
311
+ [label]="name() | domain"
312
+ [control]="control()"
313
+ [hint]="field.hint"
314
+ [placeholder]="field.placeholder"
315
+ [actions]="field.actions"
316
+ (action)="dispatch($event)"
317
+ />
318
+ }
319
+ }
320
+ @case ('action') {
321
+ @defer {
322
+ <organisms-action-input-section injectable
323
+ [label]="name() | domain"
324
+ [control]="control()"
325
+ [hint]="field.hint"
326
+ [actions]="field.actions"
327
+ (action)="dispatch($event)"
328
+ />
329
+ }
330
+ }
331
+ @case ('file') {
332
+ @defer {
333
+ <organisms-file-input-section injectable
334
+ [label]="name() | domain"
335
+ [control]="control()"
336
+ [hint]="field.hint"
337
+ [progress]="field?.progress"
338
+ (action)="dispatchFileInputAction($event, name())"
339
+ />
340
+ }
341
+ }
342
+ @case ('slider') {
343
+ @defer {
344
+ <organisms-slider-input-section injectable
345
+ [label]="name() | domain"
346
+ [control]="control()"
347
+ [max]="field?.slider?.max"
348
+ [min]="field?.slider?.min"
349
+ [step]="field?.slider?.step"
350
+ (action)="dispatch($event)"
351
+ />
352
+ }
353
+ }
354
+ @case ('agreement') {
355
+ @defer {
356
+ <organisms-agreement-input-section injectable
357
+ [control]="control()"
358
+ [labelTemp]="field?.labelTemp"
359
+ />
360
+ }
361
+ }
362
+ @case ('preview') {
363
+ @defer {
364
+ <organisms-video-section injectable
365
+ [src]="control().value"
366
+ [autoplay]="false"
367
+ />
368
+ }
369
+ }
370
+ @case ('preview:image') {
371
+ @defer {
372
+ <organisms-image-preview-section
373
+ [src]="control().value"
374
+ />
375
+ }
376
+ }
377
+ @case ('hidden') { }
378
+ }
379
+ }
380
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}\n"] }]
381
+ }] });
382
+ class NgAtomicFormSectionBuilder extends NgAtomicComponent {
383
+ constructor() {
384
+ super(...arguments);
385
+ this.form = input.required();
386
+ this.formFlatExcludes = input([]);
387
+ this.fieldMap = input.required();
388
+ this.controlEntries = computed(() => {
389
+ return flatControls(this.form(), this.formFlatExcludes()).map(([name, control]) => ({
390
+ name,
391
+ control,
392
+ field: get(this.fieldMap(), name) ?? { type: 'text' },
393
+ }));
394
+ });
395
+ }
396
+ static { this.ActionId = ActionId$1; }
397
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicFormSectionBuilder, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
398
+ 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: `
399
+ @for (entry of controlEntries(); track entry.name;) {
400
+ <ng-atomic-form-section-switcher
401
+ [name]="entry.name"
402
+ [control]="entry.control"
403
+ [field]="entry.field"
404
+ (action)="dispatch($event)"
405
+ />
406
+ }
407
+ `, 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 }); }
408
+ }
409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicFormSectionBuilder, decorators: [{
410
+ type: Component,
411
+ args: [{ standalone: true, selector: 'ng-atomic-form-section-builder', imports: [
412
+ NgAtomicFormSectionSwitcher,
413
+ ], template: `
414
+ @for (entry of controlEntries(); track entry.name;) {
415
+ <ng-atomic-form-section-switcher
416
+ [name]="entry.name"
417
+ [control]="entry.control"
418
+ [field]="entry.field"
419
+ (action)="dispatch($event)"
420
+ />
421
+ }
422
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}\n"] }]
423
+ }] });
424
+
49
425
  var ActionId;
50
426
  (function (ActionId) {
51
427
  ActionId["BACK"] = "[@ng-atomic/components/templates/form] Back";
@@ -66,12 +442,8 @@ class FormTemplateStore extends InjectableComponent {
66
442
  this.formFlatExcludes = input(_computed(() => this.config().formFlatExcludes));
67
443
  this.actions = input(_computed(() => this.config().actions));
68
444
  this.fieldMap = input(_computed(() => this.config().fieldMap));
69
- this.controlEntries = computed(() => {
70
- return flatControls(this.form(), this.formFlatExcludes()).map(([name, control]) => ({
71
- name, control, field: get(this.fieldMap(), name) ?? { type: 'text' },
72
- }));
73
- });
74
445
  }
446
+ static { this.ActionId = ActionId; }
75
447
  static { this.Config = makeConfig(() => {
76
448
  const isRootPage = injectIsRootPage();
77
449
  const navStartActions = injectNavStartActions(isRootPage);
@@ -103,16 +475,6 @@ class FormTemplate extends NgAtomicComponent {
103
475
  this.cd = inject(ChangeDetectorRef);
104
476
  }
105
477
  static { this.ActionId = ActionId; }
106
- dispatchFileInputAction(action, name) {
107
- switch (action.id) {
108
- case FileInputSectionOrganism.ActionId.FILE_SELECTED: {
109
- return this.dispatch({ id: ActionId.FILE_SELECTED, payload: { scope: name, files: action.payload } });
110
- }
111
- case FileInputSectionOrganism.ActionId.CANCEL: {
112
- return this.dispatch({ id: ActionId.CANCEL, payload: { scope: name } });
113
- }
114
- }
115
- }
116
478
  ngOnInit() {
117
479
  this.store.form().statusChanges.subscribe(() => this.cd.markForCheck());
118
480
  }
@@ -120,7 +482,7 @@ class FormTemplate extends NgAtomicComponent {
120
482
  this.dispatch({ id: ActionId.BACK });
121
483
  }
122
484
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FormTemplate, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
123
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: FormTemplate, isStandalone: true, selector: "templates-form", host: { classAttribute: "template" }, usesInheritance: true, hostDirectives: [{ directive: FormTemplateStore, inputs: ["navStartActions", "navStartActions", "navEndActions", "navEndActions", "title", "title", "form", "form", "formFlatExcludes", "formFlatExcludes", "actions", "actions", "fieldMap", "fieldMap"] }], ngImport: i0, template: `
485
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: FormTemplate, isStandalone: true, selector: "templates-form", host: { classAttribute: "template" }, usesInheritance: true, hostDirectives: [{ directive: FormTemplateStore, inputs: ["navStartActions", "navStartActions", "navEndActions", "navEndActions", "title", "title", "form", "form", "formFlatExcludes", "formFlatExcludes", "actions", "actions", "fieldMap", "fieldMap"] }], ngImport: i0, template: `
124
486
  <frames-scroll>
125
487
  <organisms-navigator injectable
126
488
  [startActions]="store.navStartActions()"
@@ -131,158 +493,19 @@ class FormTemplate extends NgAtomicComponent {
131
493
  <molecules-header injectable [title]="store.title()" [description]="''"/>
132
494
  </organisms-navigator>
133
495
  <frames-auto-layout vertical>
134
- @for (entry of store.controlEntries(); track entry.name;) {
135
- @switch (entry.field.type) {
136
- @case ('select') {
137
- @defer {
138
- <organisms-select-input-section injectable
139
- [label]="entry.name | domain"
140
- [control]="entry.control"
141
- [hint]="entry.field.hint"
142
- [options]="entry.field.options"
143
- [placeholder]="entry.field.placeholder"
144
- [actions]="entry.field.actions"
145
- [multiple]="entry.field?.multiple"
146
- (action)="dispatch($event)"
147
- />
148
- }
149
- }
150
- @case ('date') {
151
- <!-- @defer { -->
152
- <organisms-date-input-section
153
- [label]="entry.name | domain"
154
- [hint]="entry.field.hint"
155
- [control]="entry.control"
156
- [actions]="entry.field.actions"
157
- (action)="dispatch($event)"
158
- />
159
- <!-- } -->
160
- }
161
- @case ('date-range') {
162
- <organisms-date-range-input-section
163
- [label]="entry.name | domain"
164
- [hint]="entry.field.hint"
165
- [control]="entry.control"
166
- [actions]="entry.field.actions"
167
- (action)="dispatch($event)"
168
- />
169
- }
170
- @case ('text') {
171
- @defer {
172
- <organisms-text-input-section injectable
173
- [label]="entry.name | domain"
174
- [control]="entry.control"
175
- [actions]="entry.field.actions"
176
- [hint]="entry.field.hint"
177
- [placeholder]="entry.field.placeholder"
178
- [autoComplete]="entry.field.autoComplete"
179
- (action)="dispatch($event)"
180
- />
181
- }
182
- }
183
- @case ('number') {
184
- @defer {
185
- <organisms-number-input-section injectable
186
- [label]="entry.name | domain"
187
- [control]="entry.control"
188
- [actions]="entry.field.actions"
189
- [hint]="entry.field.hint"
190
- [placeholder]="entry.field.placeholder"
191
- (action)="dispatch($event)"
192
- />
193
- }
194
- }
195
- @case ('textarea') {
196
- @defer {
197
- <organisms-textarea-section injectable
198
- [label]="entry.name | domain"
199
- [control]="entry.control"
200
- [hint]="entry.field.hint"
201
- [rows]="entry.field.rows"
202
- [placeholder]="entry.field.placeholder"
203
- (action)="dispatch($event)"
204
- />
205
- }
206
- }
207
- @case ('password') {
208
- @defer {
209
- <organisms-password-input-section injectable
210
- [label]="entry.name | domain"
211
- [control]="entry.control"
212
- [hint]="entry.field.hint"
213
- [placeholder]="entry.field.placeholder"
214
- [actions]="entry.field.actions"
215
- (action)="dispatch($event)"
216
- />
217
- }
218
- }
219
- @case ('action') {
220
- @defer {
221
- <organisms-action-input-section injectable
222
- [label]="entry.name | domain"
223
- [control]="entry.control"
224
- [hint]="entry.field.hint"
225
- [actions]="entry.field.actions"
226
- (action)="dispatch($event)"
227
- />
228
- }
229
- }
230
- @case ('file') {
231
- @defer {
232
- <organisms-file-input-section injectable
233
- [label]="entry.name | domain"
234
- [control]="entry.control"
235
- [hint]="entry.field.hint"
236
- [progress]="entry.field?.progress"
237
- (action)="dispatchFileInputAction($event, entry.name)"
238
- />
239
- }
240
- }
241
- @case ('slider') {
242
- @defer {
243
- <organisms-slider-input-section injectable
244
- [label]="entry.name | domain"
245
- [control]="entry.control"
246
- [max]="entry.field?.slider?.max"
247
- [min]="entry.field?.slider?.min"
248
- [step]="entry.field?.slider?.step"
249
- (action)="dispatch($event)"
250
- />
251
- }
252
- }
253
- @case ('agreement') {
254
- @defer {
255
- <organisms-agreement-input-section injectable
256
- [control]="entry.control"
257
- [labelTemp]="entry.field?.labelTemp"
258
- />
259
- }
260
- }
261
- @case ('preview') {
262
- @defer {
263
- <organisms-video-section injectable
264
- [src]="entry.control.value"
265
- [autoplay]="false"
266
- />
267
- }
268
- }
269
- @case ('preview:image') {
270
- @defer {
271
- <organisms-image-preview-section
272
- [src]="entry.control.value"
273
- />
274
- }
275
- }
276
- @case ('hidden') { }
277
- }
278
- }
496
+ <ng-atomic-form-section-builder
497
+ [form]="store.form()"
498
+ [formFlatExcludes]="store.formFlatExcludes()"
499
+ [fieldMap]="store.fieldMap()"
500
+ (action)="dispatch($event)"
501
+ />
279
502
  <organisms-action-buttons-section injectable
280
503
  [actions]="store.actions()"
281
504
  (action)="dispatch($event)"
282
505
  />
283
506
  </frames-auto-layout>
284
507
  </frames-scroll>
285
- `, isInline: true, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-form-ncfX: var(--horizontal-padding);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-form-ncfX: var(--vertical-padding);--gap: 16px;--gap-SCOPED-IN-form-ncfX: var(--gap);--primary-color: #404040;--primary-color-SCOPED-IN-form-ncfX: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-form-ncfX: var(--on-primary-color);--secondary-color: #f0f0f0;--secondary-color-SCOPED-IN-form-ncfX: var(--secondary-color);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-form-ncfX: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-form-ncfX: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-form-ncfX: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-form-ncfX: var(--on-background-color);--navigator-background-color: var(--primary-color-SCOPED-IN-form-ncfX);--navigator-background-color-SCOPED-IN-form-ncfX: var(--navigator-background-color);--navigator-on-background-color: var(--on-primary-color-SCOPED-IN-form-ncfX);--navigator-on-background-color-SCOPED-IN-form-ncfX: var(--navigator-on-background-color)}:host{display:block;width:100%;height:100%;background:var(--background-color-SCOPED-IN-form-ncfX);color:var(--on-background-color-SCOPED-IN-form-ncfX)}:host frames-auto-layout{height:-moz-fit-content;height:fit-content;--gap: var(--gap-SCOPED-IN-form-ncfX);--vertical-padding: var(--vertical-padding-SCOPED-IN-form-ncfX)}:host frames-auto-layout *{--horizontal-padding: var(--horizontal-padding-SCOPED-IN-form-ncfX)}:host organisms-navigator{--background-color: var(--navigator-background-color-SCOPED-IN-form-ncfX);--on-background-color: var(--navigator-on-background-color-SCOPED-IN-form-ncfX)}:host *{--primary-color: var(--primary-color-SCOPED-IN-form-ncfX);--on-primary-color: var(--on-primary-color-SCOPED-IN-form-ncfX);--surface-color: var(--surface-color-SCOPED-IN-form-ncfX);--on-surface-color: var(--on-surface-color-SCOPED-IN-form-ncfX);--background-color: var(--background-color-SCOPED-IN-form-ncfX);--on-background-color: var(--on-background-color-SCOPED-IN-form-ncfX)}\n"], dependencies: [{ kind: "pipe", type: DomainPipe, name: "domain" }, { kind: "component", type: AutoLayoutFrame, selector: "frames-auto-layout" }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "directive", type: ActionButtonsSectionOrganismStore, selector: "organisms-action-buttons-section", inputs: ["actions", "type"] }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }, { kind: "component", type: DateInputSectionOrganism, selector: "organisms-date-input-section" }, { kind: "component", type: DateRangeInputSectionOrganism, selector: "organisms-date-range-input-section" }, { kind: "directive", type: HeaderMoleculeStore, selector: "molecules-header", inputs: ["title", "description"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
508
+ `, isInline: true, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-form-P3hU: var(--horizontal-padding);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-form-P3hU: var(--vertical-padding);--gap: 16px;--gap-SCOPED-IN-form-P3hU: var(--gap);--primary-color: #404040;--primary-color-SCOPED-IN-form-P3hU: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-form-P3hU: var(--on-primary-color);--secondary-color: #f0f0f0;--secondary-color-SCOPED-IN-form-P3hU: var(--secondary-color);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-form-P3hU: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-form-P3hU: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-form-P3hU: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-form-P3hU: var(--on-background-color);--navigator-background-color: var(--primary-color-SCOPED-IN-form-P3hU);--navigator-background-color-SCOPED-IN-form-P3hU: var(--navigator-background-color);--navigator-on-background-color: var(--on-primary-color-SCOPED-IN-form-P3hU);--navigator-on-background-color-SCOPED-IN-form-P3hU: var(--navigator-on-background-color)}:host{display:block;width:100%;height:100%;background:var(--background-color-SCOPED-IN-form-P3hU);color:var(--on-background-color-SCOPED-IN-form-P3hU)}:host frames-auto-layout{height:-moz-fit-content;height:fit-content;--gap: var(--gap-SCOPED-IN-form-P3hU);--vertical-padding: var(--vertical-padding-SCOPED-IN-form-P3hU)}:host frames-auto-layout *{--horizontal-padding: var(--horizontal-padding-SCOPED-IN-form-P3hU)}:host organisms-navigator{--background-color: var(--navigator-background-color-SCOPED-IN-form-P3hU);--on-background-color: var(--navigator-on-background-color-SCOPED-IN-form-P3hU)}:host *{--primary-color: var(--primary-color-SCOPED-IN-form-P3hU);--on-primary-color: var(--on-primary-color-SCOPED-IN-form-P3hU);--surface-color: var(--surface-color-SCOPED-IN-form-P3hU);--on-surface-color: var(--on-surface-color-SCOPED-IN-form-P3hU);--background-color: var(--background-color-SCOPED-IN-form-P3hU);--on-background-color: var(--on-background-color-SCOPED-IN-form-P3hU)}\n"], dependencies: [{ kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap"] }, { kind: "directive", type: HeaderMoleculeStore, selector: "molecules-header", inputs: ["title", "description"] }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }, { kind: "component", type: AutoLayoutFrame, selector: "frames-auto-layout" }, { kind: "directive", type: ActionButtonsSectionOrganismStore, selector: "organisms-action-buttons-section", inputs: ["actions", "type"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
286
509
  }
287
510
  __decorate([
288
511
  Effect(NavActionId.BACK),
@@ -293,25 +516,12 @@ __decorate([
293
516
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FormTemplate, decorators: [{
294
517
  type: Component,
295
518
  args: [{ standalone: true, imports: [
296
- DomainPipe,
297
- AgreementInputSectionOrganism,
298
- AutoLayoutFrame,
519
+ NgAtomicFormSectionBuilder,
520
+ HeaderMoleculeStore,
299
521
  ScrollFrame,
300
- ActionButtonsSectionOrganismStore,
301
- ActionInputSectionOrganismStore,
302
- FileInputSectionOrganismStore,
303
522
  NavigatorOrganismStore,
304
- DateInputSectionOrganism,
305
- DateRangeInputSectionOrganism,
306
- TextInputSectionOrganismStore,
307
- NumberInputSectionOrganismStore,
308
- TextareaSectionOrganismStore,
309
- SelectInputSectionOrganismStore,
310
- SliderInputSectionOrganismStore,
311
- HeaderMoleculeStore,
312
- VideoSectionOrganism,
313
- ImagePreviewSectionOrganism,
314
- PasswordInputSectionOrganismStore,
523
+ AutoLayoutFrame,
524
+ ActionButtonsSectionOrganismStore,
315
525
  ], selector: 'templates-form', template: `
316
526
  <frames-scroll>
317
527
  <organisms-navigator injectable
@@ -323,151 +533,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
323
533
  <molecules-header injectable [title]="store.title()" [description]="''"/>
324
534
  </organisms-navigator>
325
535
  <frames-auto-layout vertical>
326
- @for (entry of store.controlEntries(); track entry.name;) {
327
- @switch (entry.field.type) {
328
- @case ('select') {
329
- @defer {
330
- <organisms-select-input-section injectable
331
- [label]="entry.name | domain"
332
- [control]="entry.control"
333
- [hint]="entry.field.hint"
334
- [options]="entry.field.options"
335
- [placeholder]="entry.field.placeholder"
336
- [actions]="entry.field.actions"
337
- [multiple]="entry.field?.multiple"
338
- (action)="dispatch($event)"
339
- />
340
- }
341
- }
342
- @case ('date') {
343
- <!-- @defer { -->
344
- <organisms-date-input-section
345
- [label]="entry.name | domain"
346
- [hint]="entry.field.hint"
347
- [control]="entry.control"
348
- [actions]="entry.field.actions"
349
- (action)="dispatch($event)"
350
- />
351
- <!-- } -->
352
- }
353
- @case ('date-range') {
354
- <organisms-date-range-input-section
355
- [label]="entry.name | domain"
356
- [hint]="entry.field.hint"
357
- [control]="entry.control"
358
- [actions]="entry.field.actions"
359
- (action)="dispatch($event)"
360
- />
361
- }
362
- @case ('text') {
363
- @defer {
364
- <organisms-text-input-section injectable
365
- [label]="entry.name | domain"
366
- [control]="entry.control"
367
- [actions]="entry.field.actions"
368
- [hint]="entry.field.hint"
369
- [placeholder]="entry.field.placeholder"
370
- [autoComplete]="entry.field.autoComplete"
371
- (action)="dispatch($event)"
372
- />
373
- }
374
- }
375
- @case ('number') {
376
- @defer {
377
- <organisms-number-input-section injectable
378
- [label]="entry.name | domain"
379
- [control]="entry.control"
380
- [actions]="entry.field.actions"
381
- [hint]="entry.field.hint"
382
- [placeholder]="entry.field.placeholder"
383
- (action)="dispatch($event)"
384
- />
385
- }
386
- }
387
- @case ('textarea') {
388
- @defer {
389
- <organisms-textarea-section injectable
390
- [label]="entry.name | domain"
391
- [control]="entry.control"
392
- [hint]="entry.field.hint"
393
- [rows]="entry.field.rows"
394
- [placeholder]="entry.field.placeholder"
395
- (action)="dispatch($event)"
396
- />
397
- }
398
- }
399
- @case ('password') {
400
- @defer {
401
- <organisms-password-input-section injectable
402
- [label]="entry.name | domain"
403
- [control]="entry.control"
404
- [hint]="entry.field.hint"
405
- [placeholder]="entry.field.placeholder"
406
- [actions]="entry.field.actions"
407
- (action)="dispatch($event)"
408
- />
409
- }
410
- }
411
- @case ('action') {
412
- @defer {
413
- <organisms-action-input-section injectable
414
- [label]="entry.name | domain"
415
- [control]="entry.control"
416
- [hint]="entry.field.hint"
417
- [actions]="entry.field.actions"
418
- (action)="dispatch($event)"
419
- />
420
- }
421
- }
422
- @case ('file') {
423
- @defer {
424
- <organisms-file-input-section injectable
425
- [label]="entry.name | domain"
426
- [control]="entry.control"
427
- [hint]="entry.field.hint"
428
- [progress]="entry.field?.progress"
429
- (action)="dispatchFileInputAction($event, entry.name)"
430
- />
431
- }
432
- }
433
- @case ('slider') {
434
- @defer {
435
- <organisms-slider-input-section injectable
436
- [label]="entry.name | domain"
437
- [control]="entry.control"
438
- [max]="entry.field?.slider?.max"
439
- [min]="entry.field?.slider?.min"
440
- [step]="entry.field?.slider?.step"
441
- (action)="dispatch($event)"
442
- />
443
- }
444
- }
445
- @case ('agreement') {
446
- @defer {
447
- <organisms-agreement-input-section injectable
448
- [control]="entry.control"
449
- [labelTemp]="entry.field?.labelTemp"
450
- />
451
- }
452
- }
453
- @case ('preview') {
454
- @defer {
455
- <organisms-video-section injectable
456
- [src]="entry.control.value"
457
- [autoplay]="false"
458
- />
459
- }
460
- }
461
- @case ('preview:image') {
462
- @defer {
463
- <organisms-image-preview-section
464
- [src]="entry.control.value"
465
- />
466
- }
467
- }
468
- @case ('hidden') { }
469
- }
470
- }
536
+ <ng-atomic-form-section-builder
537
+ [form]="store.form()"
538
+ [formFlatExcludes]="store.formFlatExcludes()"
539
+ [fieldMap]="store.fieldMap()"
540
+ (action)="dispatch($event)"
541
+ />
471
542
  <organisms-action-buttons-section injectable
472
543
  [actions]="store.actions()"
473
544
  (action)="dispatch($event)"
@@ -487,12 +558,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
487
558
  'fieldMap',
488
559
  ],
489
560
  },
490
- ], host: { class: 'template' }, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-form-ncfX: var(--horizontal-padding);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-form-ncfX: var(--vertical-padding);--gap: 16px;--gap-SCOPED-IN-form-ncfX: var(--gap);--primary-color: #404040;--primary-color-SCOPED-IN-form-ncfX: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-form-ncfX: var(--on-primary-color);--secondary-color: #f0f0f0;--secondary-color-SCOPED-IN-form-ncfX: var(--secondary-color);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-form-ncfX: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-form-ncfX: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-form-ncfX: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-form-ncfX: var(--on-background-color);--navigator-background-color: var(--primary-color-SCOPED-IN-form-ncfX);--navigator-background-color-SCOPED-IN-form-ncfX: var(--navigator-background-color);--navigator-on-background-color: var(--on-primary-color-SCOPED-IN-form-ncfX);--navigator-on-background-color-SCOPED-IN-form-ncfX: var(--navigator-on-background-color)}:host{display:block;width:100%;height:100%;background:var(--background-color-SCOPED-IN-form-ncfX);color:var(--on-background-color-SCOPED-IN-form-ncfX)}:host frames-auto-layout{height:-moz-fit-content;height:fit-content;--gap: var(--gap-SCOPED-IN-form-ncfX);--vertical-padding: var(--vertical-padding-SCOPED-IN-form-ncfX)}:host frames-auto-layout *{--horizontal-padding: var(--horizontal-padding-SCOPED-IN-form-ncfX)}:host organisms-navigator{--background-color: var(--navigator-background-color-SCOPED-IN-form-ncfX);--on-background-color: var(--navigator-on-background-color-SCOPED-IN-form-ncfX)}:host *{--primary-color: var(--primary-color-SCOPED-IN-form-ncfX);--on-primary-color: var(--on-primary-color-SCOPED-IN-form-ncfX);--surface-color: var(--surface-color-SCOPED-IN-form-ncfX);--on-surface-color: var(--on-surface-color-SCOPED-IN-form-ncfX);--background-color: var(--background-color-SCOPED-IN-form-ncfX);--on-background-color: var(--on-background-color-SCOPED-IN-form-ncfX)}\n"] }]
561
+ ], host: { class: 'template' }, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-form-P3hU: var(--horizontal-padding);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-form-P3hU: var(--vertical-padding);--gap: 16px;--gap-SCOPED-IN-form-P3hU: var(--gap);--primary-color: #404040;--primary-color-SCOPED-IN-form-P3hU: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-form-P3hU: var(--on-primary-color);--secondary-color: #f0f0f0;--secondary-color-SCOPED-IN-form-P3hU: var(--secondary-color);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-form-P3hU: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-form-P3hU: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-form-P3hU: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-form-P3hU: var(--on-background-color);--navigator-background-color: var(--primary-color-SCOPED-IN-form-P3hU);--navigator-background-color-SCOPED-IN-form-P3hU: var(--navigator-background-color);--navigator-on-background-color: var(--on-primary-color-SCOPED-IN-form-P3hU);--navigator-on-background-color-SCOPED-IN-form-P3hU: var(--navigator-on-background-color)}:host{display:block;width:100%;height:100%;background:var(--background-color-SCOPED-IN-form-P3hU);color:var(--on-background-color-SCOPED-IN-form-P3hU)}:host frames-auto-layout{height:-moz-fit-content;height:fit-content;--gap: var(--gap-SCOPED-IN-form-P3hU);--vertical-padding: var(--vertical-padding-SCOPED-IN-form-P3hU)}:host frames-auto-layout *{--horizontal-padding: var(--horizontal-padding-SCOPED-IN-form-P3hU)}:host organisms-navigator{--background-color: var(--navigator-background-color-SCOPED-IN-form-P3hU);--on-background-color: var(--navigator-on-background-color-SCOPED-IN-form-P3hU)}:host *{--primary-color: var(--primary-color-SCOPED-IN-form-P3hU);--on-primary-color: var(--on-primary-color-SCOPED-IN-form-P3hU);--surface-color: var(--surface-color-SCOPED-IN-form-P3hU);--on-surface-color: var(--on-surface-color-SCOPED-IN-form-P3hU);--background-color: var(--background-color-SCOPED-IN-form-P3hU);--on-background-color: var(--on-background-color-SCOPED-IN-form-P3hU)}\n"] }]
491
562
  }], propDecorators: { back: [] } });
492
563
 
493
564
  /**
494
565
  * Generated bundle index. Do not edit.
495
566
  */
496
567
 
497
- export { ActionId, FormTemplate, FormTemplateStore };
568
+ export { FormTemplate, FormTemplateStore, NgAtomicFormSectionBuilder, NgAtomicFormSectionSwitcher };
498
569
  //# sourceMappingURL=ng-atomic-components-templates-form.mjs.map