@mtna/web-form-angular 1.0.2-SNAPSHOT.2 → 1.0.2

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 (135) hide show
  1. package/_index.scss +1 -2
  2. package/bundles/mtna-web-form-angular.umd.js +1219 -539
  3. package/bundles/mtna-web-form-angular.umd.js.map +1 -1
  4. package/esm2015/lib/components/acknowledge-dialog/acknowledge-dialog.component.js +2 -2
  5. package/esm2015/lib/components/base-form/base-form.component.js +243 -0
  6. package/esm2015/lib/components/base-form/index.js +2 -0
  7. package/esm2015/lib/components/base-items/base-group-item.component.js +5 -5
  8. package/esm2015/lib/components/base-items/base-parent-value-item.component.js +3 -2
  9. package/esm2015/lib/components/base-items/base-section-item.component.js +6 -5
  10. package/esm2015/lib/components/form/form.component.js +13 -239
  11. package/esm2015/lib/components/form-item/form-item.component.js +2 -2
  12. package/esm2015/lib/components/form-item-component-provider/form-item-injected-components.js +7 -1
  13. package/esm2015/lib/components/form-item-dialog/form-item-dialog.component.js +6 -5
  14. package/esm2015/lib/components/form-item-dialog/form-item-dialog.module.js +5 -4
  15. package/esm2015/lib/components/form-item-impl/boolean/boolean.component.js +2 -2
  16. package/esm2015/lib/components/form-item-impl/checkbox/checkbox.component.js +7 -5
  17. package/esm2015/lib/components/form-item-impl/checkbox/checkbox.module.js +5 -1
  18. package/esm2015/lib/components/form-item-impl/date/date.component.js +3 -2
  19. package/esm2015/lib/components/form-item-impl/date-range/date-range.component.js +6 -2
  20. package/esm2015/lib/components/form-item-impl/dropdown/dropdown.component.js +2 -2
  21. package/esm2015/lib/components/form-item-impl/file-upload/file-upload.component.js +3 -2
  22. package/esm2015/lib/components/form-item-impl/form-group/form-group.component.js +2 -2
  23. package/esm2015/lib/components/form-item-impl/i18n-input/i18n-input.component.js +3 -2
  24. package/esm2015/lib/components/form-item-impl/input/input.component.js +3 -2
  25. package/esm2015/lib/components/form-item-impl/multiple-choice/multiple-choice.component.js +2 -2
  26. package/esm2015/lib/components/form-item-impl/repeatable-item-container/repeatable-item-container.component.js +3 -2
  27. package/esm2015/lib/components/form-item-impl/search/resource-search.component.js +2 -2
  28. package/esm2015/lib/components/form-item-impl/year-quarter/year-quarter.component.js +2 -3
  29. package/esm2015/lib/components/form-stepper/form-step/form-step.component.js +10 -3
  30. package/esm2015/lib/components/form-stepper/form-step-group/form-step-group.component.js +4 -2
  31. package/esm2015/lib/components/form-stepper/form-stepper/form-stepper.component.js +52 -10
  32. package/esm2015/lib/components/form-stepper/form-stepper.module.js +17 -5
  33. package/esm2015/lib/components/index.js +2 -1
  34. package/esm2015/lib/components/progressive-form/index.js +3 -0
  35. package/esm2015/lib/components/progressive-form/progressive-form/index.js +3 -0
  36. package/esm2015/lib/components/progressive-form/progressive-form/progressive-form.component.js +287 -0
  37. package/esm2015/lib/components/progressive-form/progressive-form/progressive-form.module.js +68 -0
  38. package/esm2015/lib/components/progressive-form/progressive-form-section/index.js +3 -0
  39. package/esm2015/lib/components/progressive-form/progressive-form-section/progressive-form-section.component.js +27 -0
  40. package/esm2015/lib/components/progressive-form/progressive-form-section/progressive-form-section.module.js +54 -0
  41. package/esm2015/lib/components/step-card/step-card.component.js +10 -2
  42. package/esm2015/lib/components/step-card/step-card.module.js +27 -4
  43. package/esm2015/lib/models/form-stepper/form-step-group.model.js +8 -2
  44. package/esm2015/lib/models/form-stepper/form-step.model.js +7 -1
  45. package/esm2015/lib/models/index.js +2 -1
  46. package/esm2015/lib/models/progressive-form/index.js +4 -0
  47. package/esm2015/lib/models/progressive-form/outline-step.model.js +2 -0
  48. package/esm2015/lib/models/progressive-form/progressive-form-section.model.js +6 -0
  49. package/esm2015/lib/models/progressive-form/progressive-form.model.js +6 -0
  50. package/esm2015/lib/pipes/child-step-active.pipe.js +28 -0
  51. package/esm2015/lib/pipes/coerce-form-step-group.pipe.js +29 -0
  52. package/esm2015/lib/pipes/coerce-form-step.pipe.js +29 -0
  53. package/esm2015/lib/pipes/date-quarter.pipe.js +13 -13
  54. package/esm2015/lib/pipes/get-active-form-step-item.pipe.js +33 -0
  55. package/esm2015/lib/pipes/get-progressive-form-item.pipe.js +40 -0
  56. package/esm2015/lib/pipes/get-selected-option.pipe.js +4 -3
  57. package/esm2015/lib/pipes/get-step-aria-label.pipe.js +55 -0
  58. package/esm2015/lib/pipes/index.js +7 -1
  59. package/esm2015/lib/pipes/items-with-value.pipe.js +5 -10
  60. package/esm2015/lib/services/dialog.service.js +4 -3
  61. package/esm2015/lib/services/form-manager.service.js +19 -7
  62. package/esm2015/lib/services/ng-form.service.js +7 -1
  63. package/esm2015/lib/services/ui.service.js +15 -15
  64. package/esm2015/lib/utilities/generate-form-steps.js +20 -5
  65. package/esm2015/lib/utilities/serializer-util.js +12 -5
  66. package/esm2015/lib/utilities/update-step-status.js +1 -1
  67. package/esm2015/public-api.js +1 -2
  68. package/fesm2015/mtna-web-form-angular.js +962 -364
  69. package/fesm2015/mtna-web-form-angular.js.map +1 -1
  70. package/lib/components/base-form/base-form.component.d.ts +89 -0
  71. package/lib/components/base-form/index.d.ts +1 -0
  72. package/lib/components/base-items/base-group-item.component.d.ts +2 -0
  73. package/lib/components/base-items/base-section-item.component.d.ts +2 -1
  74. package/lib/components/form/form.component.d.ts +4 -86
  75. package/lib/components/form-item-dialog/form-item-dialog.module.d.ts +2 -1
  76. package/lib/components/form-item-impl/checkbox/_checkbox-theme.scss +11 -2
  77. package/lib/components/form-item-impl/checkbox/checkbox.component.d.ts +1 -0
  78. package/lib/components/form-item-impl/checkbox/checkbox.module.d.ts +11 -10
  79. package/lib/components/form-item-impl/date/date.component.d.ts +1 -0
  80. package/lib/components/form-item-impl/date-range/date-range.component.d.ts +1 -0
  81. package/lib/components/form-item-impl/dropdown/_dropdown-theme.scss +35 -0
  82. package/lib/components/form-item-impl/file-upload/file-upload.component.d.ts +1 -0
  83. package/lib/components/form-item-impl/i18n-input/i18n-input.component.d.ts +1 -0
  84. package/lib/components/form-item-impl/input/input.component.d.ts +1 -0
  85. package/lib/components/form-item-impl/repeatable-item-container/repeatable-item-container.component.d.ts +1 -0
  86. package/lib/components/form-stepper/form-step/form-step.component.d.ts +7 -0
  87. package/lib/components/form-stepper/form-step-group/form-step-group.component.d.ts +2 -0
  88. package/lib/components/form-stepper/form-stepper/_form-stepper-theme.scss +30 -15
  89. package/lib/components/form-stepper/form-stepper/form-stepper.component.d.ts +15 -1
  90. package/lib/components/form-stepper/form-stepper.module.d.ts +5 -1
  91. package/lib/components/index.d.ts +1 -0
  92. package/lib/components/progressive-form/index.d.ts +2 -0
  93. package/lib/components/progressive-form/progressive-form/index.d.ts +2 -0
  94. package/lib/components/progressive-form/progressive-form/progressive-form.component.d.ts +101 -0
  95. package/lib/components/progressive-form/progressive-form/progressive-form.module.d.ts +19 -0
  96. package/lib/components/progressive-form/progressive-form-section/index.d.ts +2 -0
  97. package/lib/components/progressive-form/progressive-form-section/progressive-form-section.component.d.ts +9 -0
  98. package/lib/components/progressive-form/progressive-form-section/progressive-form-section.module.d.ts +16 -0
  99. package/lib/components/step-card/step-card.component.d.ts +3 -1
  100. package/lib/components/step-card/step-card.module.d.ts +2 -1
  101. package/lib/core/_all-color.scss +2 -2
  102. package/lib/core/_all-theme.scss +2 -2
  103. package/lib/core/_all-typography.scss +2 -2
  104. package/lib/models/form-stepper/form-step-group.model.d.ts +5 -1
  105. package/lib/models/form-stepper/form-step.model.d.ts +3 -0
  106. package/lib/models/index.d.ts +1 -0
  107. package/lib/models/progressive-form/index.d.ts +3 -0
  108. package/lib/models/progressive-form/outline-step.model.d.ts +7 -0
  109. package/lib/models/progressive-form/progressive-form-section.model.d.ts +4 -0
  110. package/lib/models/progressive-form/progressive-form.model.d.ts +7 -0
  111. package/lib/pipes/child-step-active.pipe.d.ts +13 -0
  112. package/lib/pipes/coerce-form-step-group.pipe.d.ts +13 -0
  113. package/lib/pipes/coerce-form-step.pipe.d.ts +13 -0
  114. package/lib/pipes/get-active-form-step-item.pipe.d.ts +13 -0
  115. package/lib/pipes/get-progressive-form-item.pipe.d.ts +14 -0
  116. package/lib/pipes/get-step-aria-label.pipe.d.ts +17 -0
  117. package/lib/pipes/index.d.ts +6 -0
  118. package/lib/pipes/items-with-value.pipe.d.ts +0 -1
  119. package/lib/services/dialog.service.d.ts +1 -0
  120. package/lib/services/form-manager.service.d.ts +13 -4
  121. package/lib/services/ng-form.service.d.ts +6 -0
  122. package/lib/utilities/generate-form-steps.d.ts +5 -1
  123. package/lib/utilities/update-step-status.d.ts +2 -2
  124. package/package.json +1 -1
  125. package/public-api.d.ts +0 -1
  126. package/esm2015/lib/directives/base-form-item-control.directive.js +0 -58
  127. package/esm2015/lib/directives/base-parent-item-control.directive.js +0 -42
  128. package/esm2015/lib/directives/base-single-selection-parent.directive.js +0 -53
  129. package/esm2015/lib/directives/form-item.directive.js +0 -22
  130. package/esm2015/lib/directives/index.js +0 -5
  131. package/lib/directives/base-form-item-control.directive.d.ts +0 -26
  132. package/lib/directives/base-parent-item-control.directive.d.ts +0 -19
  133. package/lib/directives/base-single-selection-parent.directive.d.ts +0 -26
  134. package/lib/directives/form-item.directive.d.ts +0 -13
  135. package/lib/directives/index.d.ts +0 -4
@@ -0,0 +1,101 @@
1
+ import { BooleanInput } from '@angular/cdk/coercion';
2
+ import { ChangeDetectorRef, EventEmitter } from '@angular/core';
3
+ import { MtnaScrollDirection, MtnaScrollService } from '@mtna/core-angular';
4
+ import { FormItem } from '@mtna/web-form-ts';
5
+ import { BehaviorSubject, Observable, Subscription } from 'rxjs';
6
+ import { FormStep, ProgressiveForm } from '../../../models';
7
+ import { MtnaWfManagerService, MtnaWfNgFormService, MtnaWfUIService } from '../../../services';
8
+ import { MtnaWfBaseFormComponent } from '../../base-form';
9
+ import * as i0 from "@angular/core";
10
+ export declare class MtnaWfProgressiveFormComponent extends MtnaWfBaseFormComponent<ProgressiveForm> {
11
+ private cdr;
12
+ private scrollService;
13
+ static ngAcceptInputType_loading: BooleanInput;
14
+ get mtnaForm(): ProgressiveForm | null | undefined;
15
+ set mtnaForm(form: ProgressiveForm | null | undefined);
16
+ get loading(): boolean;
17
+ set loading(value: boolean);
18
+ private _loading;
19
+ /** Emits the updated ProgressiveForm value */
20
+ nextStepSelected: EventEmitter<ProgressiveForm>;
21
+ /**
22
+ * Emits the previous steps instanceId.
23
+ * Since this component is always on the last step and the last item, we can always count on having the instanceId of the previous step.
24
+ */
25
+ previousStepSelected: EventEmitter<string>;
26
+ /**
27
+ * Emits the instanceId of the selected step.
28
+ * If the currently active step is the step that is selected, this will not emit.
29
+ */
30
+ showSelectedStepId: EventEmitter<string>;
31
+ activeStepId$: BehaviorSubject<string | undefined>;
32
+ formItems: FormItem[];
33
+ formStatusSubscriber: Subscription | undefined;
34
+ formStatusValid$: BehaviorSubject<boolean>;
35
+ lastStepActive: boolean;
36
+ scrollDirection$: Observable<MtnaScrollDirection>;
37
+ showPreviousButton: boolean;
38
+ stepArray$: BehaviorSubject<FormStep[]>;
39
+ constructor(mtnaFormManager: MtnaWfManagerService, ngFormService: MtnaWfNgFormService, uiService: MtnaWfUIService, cdr: ChangeDetectorRef, scrollService: MtnaScrollService);
40
+ ngOnDestroy(): void;
41
+ /**
42
+ * Checks if the last step in the form is active.
43
+ * @returns true if the last step in the form is active, otherwise false
44
+ */
45
+ checkLastStepActive: () => boolean;
46
+ /**
47
+ * Checks if the previous button should be shown.
48
+ * @returns true if the previous button should be shown, otherwise false
49
+ */
50
+ showPreviousButtonFn(): boolean;
51
+ /**
52
+ * Subscribes to the form status changes and updates the formStatusValid$ BehaviorSubject with the validity of the active step.
53
+ */
54
+ private setFormStatusSubscription;
55
+ /**
56
+ * Resets all necessary values to build to form each iteration.
57
+ */
58
+ private resetValues;
59
+ /**
60
+ * Generates the steps for the form based on the outline property of the form.
61
+ * @param outline the outline of the form that is the basis for the steps
62
+ */
63
+ private generateFormSteps;
64
+ /**
65
+ * Checks all of the steps to ensure that each steps instanceId property matches the instanceId of the FormItem and updates the property if needed.
66
+ * This finds the step based on the templateId. When the stepArray is first built, the templateId of the FormItem gets set as the steps instanceId.
67
+ * Here, we just need to find the steps that match the templateId and update the instanceId.
68
+ * Matching is based off of templateId reduces the number of steps that need to be checked/manipulated.
69
+ *
70
+ * @param formItems the FormItems to check against the steps
71
+ */
72
+ private checkAllStepsIds;
73
+ /**
74
+ * Because the super class has no knowledge of the stepArray that have been generated for the form,
75
+ * this function determines which steps need to be passed to the super class and the inherited _steps
76
+ * property. The super class "should" obtain each step as it is passed in. This means that when the
77
+ * call to either grab the form again or to get the next FormItem, should also continue to pass the
78
+ * steps that have been generated.
79
+ * @returns
80
+ */
81
+ private determineStepsToPassToSuper;
82
+ /**
83
+ * Sets the status of each step in the form based on the validity of the form control.
84
+ * If the form control key is not found in the controls of the form, the status is set to 'PLACEHOLDER'.
85
+ */
86
+ private setStepStatus;
87
+ /**
88
+ * Emits the next or previous step templateId based on the direction provided.
89
+ * @param stepDirection the direction of the step to emit
90
+ */
91
+ showDirectionalStep(stepDirection: 'previous' | 'next'): void;
92
+ /**
93
+ * Shows the selected step as the active step in the form.
94
+ * To be used on the mtna-wf-form-stepper components "selected" output.
95
+ * @param step the step to show as the active step
96
+ */
97
+ showSelectedStep(step: FormStep): void;
98
+ _trackByStepInstanceId(index: number, formStep: FormStep): string;
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<MtnaWfProgressiveFormComponent, never>;
100
+ static ɵcmp: i0.ɵɵComponentDeclaration<MtnaWfProgressiveFormComponent, "mtna-wf-progressive-form", never, { "loading": "loading"; }, { "status": "status"; "focusedSection": "focusedSection"; "mtnaFormChange": "mtnaFormChange"; "nextStepSelected": "nextStepSelected"; "previousStepSelected": "previousStepSelected"; "showSelectedStepId": "showSelectedStepId"; }, never, ["*"]>;
101
+ }
@@ -0,0 +1,19 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./progressive-form.component";
3
+ import * as i2 from "@angular/cdk/a11y";
4
+ import * as i3 from "@angular/common";
5
+ import * as i4 from "@angular/flex-layout";
6
+ import * as i5 from "@angular/forms";
7
+ import * as i6 from "@angular/material/button";
8
+ import * as i7 from "@angular/material/icon";
9
+ import * as i8 from "../../form-disabler/form-disabler.module";
10
+ import * as i9 from "../../form-item/form-item.module";
11
+ import * as i10 from "../progressive-form-section/progressive-form-section.module";
12
+ import * as i11 from "../../form-stepper/form-stepper.module";
13
+ import * as i12 from "../../../pipes/get-progressive-form-item.pipe";
14
+ import * as i13 from "../../../pipes/get-active-form-step-item.pipe";
15
+ export declare class MtnaWfProgressiveFormModule {
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<MtnaWfProgressiveFormModule, never>;
17
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MtnaWfProgressiveFormModule, [typeof i1.MtnaWfProgressiveFormComponent], [typeof i2.A11yModule, typeof i3.CommonModule, typeof i4.FlexLayoutModule, typeof i5.FormsModule, typeof i6.MatButtonModule, typeof i7.MatIconModule, typeof i8.MtnaWfFormDisablerModule, typeof i9.MtnaWfFormItemModule, typeof i10.MtnaWfProgressiveFormSectionModule, typeof i5.ReactiveFormsModule, typeof i11.MtnaWfFormStepperModule, typeof i12.GetProgressiveFormItemPipeModule, typeof i13.GetActiveFormStepItemPipeModule], [typeof i1.MtnaWfProgressiveFormComponent]>;
18
+ static ɵinj: i0.ɵɵInjectorDeclaration<MtnaWfProgressiveFormModule>;
19
+ }
@@ -0,0 +1,2 @@
1
+ export * from './progressive-form-section.component';
2
+ export * from './progressive-form-section.module';
@@ -0,0 +1,9 @@
1
+ import { ChangeDetectorRef } from '@angular/core';
2
+ import { ProgressiveFormSection } from '../../../models/progressive-form/progressive-form-section.model';
3
+ import { MtnaWfBaseSectionItem } from '../../base-items/base-section-item.component';
4
+ import * as i0 from "@angular/core";
5
+ export declare class MtnaWfProgressiveFormSectionComponent extends MtnaWfBaseSectionItem<ProgressiveFormSection> {
6
+ constructor(cdr: ChangeDetectorRef);
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<MtnaWfProgressiveFormSectionComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<MtnaWfProgressiveFormSectionComponent, "mtna-wf-progressive-form-section", never, {}, {}, never, never>;
9
+ }
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./progressive-form-section.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/flex-layout";
5
+ import * as i4 from "../../step-card/step-card.module";
6
+ import * as i5 from "@mtna/core-angular";
7
+ import * as i6 from "@angular/material/divider";
8
+ import * as i7 from "../../../pipes/get-object-type.pipe";
9
+ import * as i8 from "../../form-item/form-item.module";
10
+ import * as i9 from "@angular/material/button";
11
+ import * as i10 from "@angular/material/icon";
12
+ export declare class MtnaWfProgressiveFormSectionModule {
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<MtnaWfProgressiveFormSectionModule, never>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MtnaWfProgressiveFormSectionModule, [typeof i1.MtnaWfProgressiveFormSectionComponent], [typeof i2.CommonModule, typeof i3.FlexLayoutModule, typeof i4.MtnaWfStepCardModule, typeof i5.MtnaHighlightModule, typeof i6.MatDividerModule, typeof i7.MtnaWfGetObjectTypePipeModule, typeof i8.MtnaWfFormItemModule, typeof i9.MatButtonModule, typeof i10.MatIconModule], [typeof i1.MtnaWfProgressiveFormSectionComponent]>;
15
+ static ɵinj: i0.ɵɵInjectorDeclaration<MtnaWfProgressiveFormSectionModule>;
16
+ }
@@ -10,7 +10,9 @@ declare const _StepCardMixinBase: import("@angular/material/core/common-behavior
10
10
  };
11
11
  export declare class MtnaWfStepCardComponent extends _StepCardMixinBase implements CanColor {
12
12
  get active(): boolean;
13
- step: FormStep | null | undefined;
13
+ get step(): FormStep | null | undefined;
14
+ set step(step: FormStep | null | undefined);
15
+ private _step;
14
16
  subtitle: string | null | undefined;
15
17
  focused: EventEmitter<FormStep>;
16
18
  constructor(elementRef: ElementRef);
@@ -6,8 +6,9 @@ import * as i4 from "@angular/material/card";
6
6
  import * as i5 from "@mtna/core-angular";
7
7
  import * as i6 from "../../pipes/sanitize-html.pipe";
8
8
  import * as i7 from "@angular/material/divider";
9
+ import * as i8 from "../form-item/form-item.module";
9
10
  export declare class MtnaWfStepCardModule {
10
11
  static ɵfac: i0.ɵɵFactoryDeclaration<MtnaWfStepCardModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<MtnaWfStepCardModule, [typeof i1.MtnaWfStepCardComponent], [typeof i2.A11yModule, typeof i3.CommonModule, typeof i4.MatCardModule, typeof i5.MtnaStatusCircleModule, typeof i6.MtnaWfSanitizeHtmlPipeModule, typeof i7.MatDividerModule], [typeof i1.MtnaWfStepCardComponent]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MtnaWfStepCardModule, [typeof i1.MtnaWfStepCardComponent], [typeof i2.A11yModule, typeof i3.CommonModule, typeof i4.MatCardModule, typeof i5.MtnaStatusCircleModule, typeof i6.MtnaWfSanitizeHtmlPipeModule, typeof i7.MatDividerModule, typeof i8.MtnaWfFormItemModule], [typeof i1.MtnaWfStepCardComponent]>;
12
13
  static ɵinj: i0.ɵɵInjectorDeclaration<MtnaWfStepCardModule>;
13
14
  }
@@ -1,11 +1,11 @@
1
1
  @use '../components/form-item-impl/checkbox/checkbox-theme';
2
2
  @use '../components/form-item-impl/date/date-item-theme';
3
+ @use '../components/form-item-impl/dropdown/dropdown-theme';
3
4
  @use '../components/form-item-impl/form-group/form-group-theme';
4
5
  @use '../components/form-item-impl/multiple-choice/multiple-choice-theme';
5
6
  @use '../components/form-item-impl/repeatable-item-container/repeatable-item-container-theme';
6
7
  @use '../components/form-item-impl/title/title-theme';
7
8
  @use '../components/form-item-impl/year-quarter/year-quarter-item-theme';
8
- @use '../components/form-stepper/form-step-group/form-step-group-theme';
9
9
  @use '../components/form-stepper/form-stepper/form-stepper-theme';
10
10
  @use '../components/item-header/item-header-theme';
11
11
  @use '../components/step-card/step-card-theme';
@@ -13,12 +13,12 @@
13
13
  @mixin all-component-colors($theme) {
14
14
  @include checkbox-theme.color($theme);
15
15
  @include date-item-theme.color($theme);
16
+ @include dropdown-theme.color($theme);
16
17
  @include form-group-theme.color($theme);
17
18
  @include multiple-choice-theme.color($theme);
18
19
  @include repeatable-item-container-theme.color($theme);
19
20
  @include title-theme.color($theme);
20
21
  @include year-quarter-item-theme.color($theme);
21
- @include form-step-group-theme.color($theme);
22
22
  @include form-stepper-theme.color($theme);
23
23
  @include item-header-theme.color($theme);
24
24
  @include step-card-theme.color($theme);
@@ -1,11 +1,11 @@
1
1
  @use '../components/form-item-impl/checkbox/checkbox-theme';
2
2
  @use '../components/form-item-impl/date/date-item-theme';
3
+ @use '../components/form-item-impl/dropdown/dropdown-theme';
3
4
  @use '../components/form-item-impl/form-group/form-group-theme';
4
5
  @use '../components/form-item-impl/multiple-choice/multiple-choice-theme';
5
6
  @use '../components/form-item-impl/repeatable-item-container/repeatable-item-container-theme';
6
7
  @use '../components/form-item-impl/title/title-theme';
7
8
  @use '../components/form-item-impl/year-quarter/year-quarter-item-theme';
8
- @use '../components/form-stepper/form-step-group/form-step-group-theme';
9
9
  @use '../components/form-stepper/form-stepper/form-stepper-theme';
10
10
  @use '../components/item-header/item-header-theme';
11
11
  @use '../components/step-card/step-card-theme';
@@ -13,12 +13,12 @@
13
13
  @mixin all-component-themes($theme) {
14
14
  @include checkbox-theme.theme($theme);
15
15
  @include date-item-theme.theme($theme);
16
+ @include dropdown-theme.theme($theme);
16
17
  @include form-group-theme.theme($theme);
17
18
  @include multiple-choice-theme.theme($theme);
18
19
  @include repeatable-item-container-theme.theme($theme);
19
20
  @include title-theme.theme($theme);
20
21
  @include year-quarter-item-theme.theme($theme);
21
- @include form-step-group-theme.theme($theme);
22
22
  @include form-stepper-theme.theme($theme);
23
23
  @include item-header-theme.theme($theme);
24
24
  @include step-card-theme.theme($theme);
@@ -1,11 +1,11 @@
1
1
  @use '../components/form-item-impl/checkbox/checkbox-theme';
2
2
  @use '../components/form-item-impl/date/date-item-theme';
3
+ @use '../components/form-item-impl/dropdown/dropdown-theme';
3
4
  @use '../components/form-item-impl/form-group/form-group-theme';
4
5
  @use '../components/form-item-impl/multiple-choice/multiple-choice-theme';
5
6
  @use '../components/form-item-impl/repeatable-item-container/repeatable-item-container-theme';
6
7
  @use '../components/form-item-impl/title/title-theme';
7
8
  @use '../components/form-item-impl/year-quarter/year-quarter-item-theme';
8
- @use '../components/form-stepper/form-step-group/form-step-group-theme';
9
9
  @use '../components/form-stepper/form-stepper/form-stepper-theme';
10
10
  @use '../components/item-header/item-header-theme';
11
11
  @use '../components/step-card/step-card-theme';
@@ -13,12 +13,12 @@
13
13
  @mixin all-component-typographies($theme) {
14
14
  @include checkbox-theme.typography($theme);
15
15
  @include date-item-theme.typography($theme);
16
+ @include dropdown-theme.typography($theme);
16
17
  @include form-group-theme.typography($theme);
17
18
  @include multiple-choice-theme.typography($theme);
18
19
  @include repeatable-item-container-theme.typography($theme);
19
20
  @include title-theme.typography($theme);
20
21
  @include year-quarter-item-theme.typography($theme);
21
- @include form-step-group-theme.typography($theme);
22
22
  @include form-stepper-theme.typography($theme);
23
23
  @include item-header-theme.typography($theme);
24
24
  @include step-card-theme.typography($theme);
@@ -3,6 +3,10 @@ import { FormStep } from './form-step.model';
3
3
  export declare class FormStepGroup extends BaseFormStep {
4
4
  steps: FormStep[];
5
5
  collapsed: boolean;
6
- constructor(steps: FormStep[], instanceId: string, collapsed?: boolean);
6
+ label: string;
7
+ num: number | string;
8
+ readonly className = "FormStepGroup";
9
+ constructor(steps: FormStep[], instanceId: string, collapsed: boolean, label: string, num: number | string);
7
10
  }
8
11
  export declare function isFormStepGroup(something: unknown): something is FormStepGroup;
12
+ export declare function instanceOfFormStepGroup(something: unknown): something is FormStepGroup;
@@ -4,8 +4,11 @@ export declare class FormStep extends BaseFormStep {
4
4
  num: number | string;
5
5
  label: string;
6
6
  optional: boolean;
7
+ readonly className = "FormStep";
7
8
  active: boolean;
8
9
  disabledText?: string;
9
10
  status: CircleStatus;
11
+ disabled: boolean;
10
12
  constructor(num: number | string, label: string, instanceId: string, optional?: boolean);
11
13
  }
14
+ export declare function instanceOfFormStep(something: unknown): something is FormStep;
@@ -1,4 +1,5 @@
1
1
  export * from './form-stepper/index';
2
+ export * from './progressive-form/index';
2
3
  export * from './api-config';
3
4
  export * from './base-form-item.model';
4
5
  export * from './form-item-dialog-data.model';
@@ -0,0 +1,3 @@
1
+ export * from './progressive-form.model';
2
+ export * from './progressive-form-section.model';
3
+ export * from './outline-step.model';
@@ -0,0 +1,7 @@
1
+ export interface OutlineStep {
2
+ instanceId?: string;
3
+ label: string;
4
+ optional: boolean;
5
+ templateId: string;
6
+ childSteps?: OutlineStep[];
7
+ }
@@ -0,0 +1,4 @@
1
+ import { Section } from '@mtna/web-form-ts';
2
+ export declare const PROGRESSIVE_FORM_SECTION_ID = "us.mtna.web.form.impl.ProgressiveFormSectionImpl";
3
+ export declare type ProgressiveFormSection = Section;
4
+ export declare function isProgressiveFormSection(something: unknown): something is ProgressiveFormSection;
@@ -0,0 +1,7 @@
1
+ import { Form } from '@mtna/web-form-ts';
2
+ import { OutlineStep } from './outline-step.model';
3
+ export declare const PROGRESSIVE_FORM_ID = "us.mtna.web.form.impl.ProgressiveFormImpl";
4
+ export interface ProgressiveForm extends Form {
5
+ outline: OutlineStep[];
6
+ }
7
+ export declare function isProgressiveForm(something: unknown): something is ProgressiveForm;
@@ -0,0 +1,13 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { FormStep } from '../models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ChildStepActivePipe implements PipeTransform {
5
+ transform(steps: FormStep[]): boolean;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChildStepActivePipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<ChildStepActivePipe, "childStepActive">;
8
+ }
9
+ export declare class ChildStepActivePipeModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChildStepActivePipeModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ChildStepActivePipeModule, [typeof ChildStepActivePipe], never, [typeof ChildStepActivePipe]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<ChildStepActivePipeModule>;
13
+ }
@@ -0,0 +1,13 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { FormStepGroup } from '../models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CoerceFormStepGroupPipe implements PipeTransform {
5
+ transform(value: unknown): FormStepGroup | null;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<CoerceFormStepGroupPipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<CoerceFormStepGroupPipe, "coerceFormStepGroup">;
8
+ }
9
+ export declare class CoerceFormStepGroupPipeModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<CoerceFormStepGroupPipeModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CoerceFormStepGroupPipeModule, [typeof CoerceFormStepGroupPipe], never, [typeof CoerceFormStepGroupPipe]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<CoerceFormStepGroupPipeModule>;
13
+ }
@@ -0,0 +1,13 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { FormStep } from '../models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CoerceFormStepPipe implements PipeTransform {
5
+ transform(value: unknown): FormStep | null;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<CoerceFormStepPipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<CoerceFormStepPipe, "coerceFormStep">;
8
+ }
9
+ export declare class CoerceFormStepPipeModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<CoerceFormStepPipeModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CoerceFormStepPipeModule, [typeof CoerceFormStepPipe], never, [typeof CoerceFormStepPipe]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<CoerceFormStepPipeModule>;
13
+ }
@@ -0,0 +1,13 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { FormItem } from '@mtna/web-form-ts';
3
+ import * as i0 from "@angular/core";
4
+ export declare class GetActiveFormStepItemPipe implements PipeTransform {
5
+ transform(items: FormItem[] | undefined, activeStepId: string | null | undefined): FormItem | undefined;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<GetActiveFormStepItemPipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<GetActiveFormStepItemPipe, "getActiveFormStepItem">;
8
+ }
9
+ export declare class GetActiveFormStepItemPipeModule {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<GetActiveFormStepItemPipeModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<GetActiveFormStepItemPipeModule, [typeof GetActiveFormStepItemPipe], never, [typeof GetActiveFormStepItemPipe]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<GetActiveFormStepItemPipeModule>;
13
+ }
@@ -0,0 +1,14 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { FormItem } from '@mtna/web-form-ts';
3
+ import { FormStep, FormStepGroup } from '../models';
4
+ import * as i0 from "@angular/core";
5
+ export declare class GetProgressiveFormItemPipe implements PipeTransform {
6
+ transform(step: FormStep | FormStepGroup, items?: FormItem[]): FormItem | undefined;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<GetProgressiveFormItemPipe, never>;
8
+ static ɵpipe: i0.ɵɵPipeDeclaration<GetProgressiveFormItemPipe, "getProgressiveFormItem">;
9
+ }
10
+ export declare class GetProgressiveFormItemPipeModule {
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<GetProgressiveFormItemPipeModule, never>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<GetProgressiveFormItemPipeModule, [typeof GetProgressiveFormItemPipe], never, [typeof GetProgressiveFormItemPipe]>;
13
+ static ɵinj: i0.ɵɵInjectorDeclaration<GetProgressiveFormItemPipeModule>;
14
+ }
@@ -0,0 +1,17 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { CircleStatus } from '@mtna/core-angular';
3
+ import { FormStep, FormStepGroup } from '../models';
4
+ import * as i0 from "@angular/core";
5
+ export declare class GetStepAriaLabel implements PipeTransform {
6
+ stepStatusTextMap: {
7
+ [key in CircleStatus]: string;
8
+ };
9
+ transform(step: FormStep | FormStepGroup, collapsed?: boolean): string;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<GetStepAriaLabel, never>;
11
+ static ɵpipe: i0.ɵɵPipeDeclaration<GetStepAriaLabel, "getStepAriaLabel">;
12
+ }
13
+ export declare class GetStepAriaLabelModule {
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<GetStepAriaLabelModule, never>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<GetStepAriaLabelModule, [typeof GetStepAriaLabel], never, [typeof GetStepAriaLabel]>;
16
+ static ɵinj: i0.ɵɵInjectorDeclaration<GetStepAriaLabelModule>;
17
+ }
@@ -1,14 +1,20 @@
1
+ export * from './child-step-active.pipe';
1
2
  export * from './coerce-date-item.pipe';
2
3
  export * from './coerce-form-control.pipe';
3
4
  export * from './coerce-form-group.pipe';
4
5
  export * from './coerce-form-item.pipe';
6
+ export * from './coerce-form-step-group.pipe';
7
+ export * from './coerce-form-step.pipe';
5
8
  export * from './date-quarter.pipe';
6
9
  export * from './form-step-group.pipe';
10
+ export * from './get-active-form-step-item.pipe';
7
11
  export * from './get-auto-complete.pipe';
8
12
  export * from './get-available-quarters.pipe';
9
13
  export * from './get-form-control-error.pipe';
10
14
  export * from './get-list-icon.pipe';
11
15
  export * from './get-object-type.pipe';
16
+ export * from './get-progressive-form-item.pipe';
12
17
  export * from './get-selected-option.pipe';
18
+ export * from './get-step-aria-label.pipe';
13
19
  export * from './items-with-value.pipe';
14
20
  export * from './sanitize-html.pipe';
@@ -6,7 +6,6 @@ import * as i0 from "@angular/core";
6
6
  * Use only for readonly forms
7
7
  */
8
8
  export declare class MtnaWfItemsWithValuePipe implements PipeTransform {
9
- itemsCache: Array<ValueItem<unknown>>;
10
9
  transform(items: Array<FormItem> | null | undefined): Array<ValueItem<unknown>>;
11
10
  static ɵfac: i0.ɵɵFactoryDeclaration<MtnaWfItemsWithValuePipe, never>;
12
11
  static ɵpipe: i0.ɵɵPipeDeclaration<MtnaWfItemsWithValuePipe, "mtnaWfItemsWithValue">;
@@ -5,6 +5,7 @@ import * as i0 from "@angular/core";
5
5
  export declare class MtnaWfDialogService {
6
6
  private dialog;
7
7
  constructor(dialog: MatDialog);
8
+ _acknowledgementText: string;
8
9
  /**
9
10
  * Display the acknowledgement the user agreed to for a given option.
10
11
  * @param acknowledgementItem The {@link Section} that represents the acknowledgement text to display to the user.
@@ -2,7 +2,7 @@ import { Type } from '@angular/core';
2
2
  import { AbstractControl } from '@angular/forms';
3
3
  import { ConditionChange, Form, FormItem, FormItemGroup, FormItemImpl, FormItemValidationResult, MtnaWfFormItemChange, MtnaWfFormItemChangeAction, RepeatableItem, Section, ValueItem } from '@mtna/web-form-ts';
4
4
  import { Observable, Subject } from 'rxjs';
5
- import { BaseFormItem } from '../models';
5
+ import { BaseFormItem, ProgressiveForm } from '../models';
6
6
  import { MtnaWfApiService } from './api.service';
7
7
  import { MtnaWfNgFormService } from './ng-form.service';
8
8
  import { MtnaWfUIService } from './ui.service';
@@ -15,22 +15,24 @@ import * as i0 from "@angular/core";
15
15
  */
16
16
  export declare class MtnaWfManagerService {
17
17
  protected apiService: MtnaWfApiService;
18
- protected ngFormManager: MtnaWfNgFormService;
18
+ protected ngFormService: MtnaWfNgFormService;
19
19
  protected uiService: MtnaWfUIService;
20
20
  protected components: Map<string, Type<BaseFormItem>>;
21
- protected formChange$: Subject<Form>;
21
+ protected formChange$: Subject<Form | ProgressiveForm>;
22
+ protected progressiveFormChange$: Subject<ProgressiveForm>;
22
23
  /** A map of all {@link FormItemValidationResult} keyed on id */
23
24
  protected _formItemValidationResults: Record<string, FormItemValidationResult>;
24
25
  /** ConditionChanges on 'add' must wait until the form rerenders to toggle items */
25
26
  protected itemToggleQue: Array<ConditionChange> | null | undefined;
26
27
  protected _mtnaForm: Form | undefined;
28
+ protected _mtnaProgressiveForm: ProgressiveForm | undefined;
27
29
  /**
28
30
  * Observable stream of MtnaForm changes. Used to inform a subscriber that an MtnaForm has been changed.
29
31
  *
30
32
  * @returns Observable<MtnaForm> to which a caller can subscribe
31
33
  */
32
34
  get formChanges(): Observable<Form>;
33
- constructor(apiService: MtnaWfApiService, ngFormManager: MtnaWfNgFormService, uiService: MtnaWfUIService);
35
+ constructor(apiService: MtnaWfApiService, ngFormService: MtnaWfNgFormService, uiService: MtnaWfUIService);
34
36
  /**
35
37
  * Adds or removes a FormItem from the form & modifies other affected FormItems
36
38
  * @param change MtnaWfFormItemChange
@@ -45,6 +47,13 @@ export declare class MtnaWfManagerService {
45
47
  generateConditionChangeArray(item: FormItem, action?: MtnaWfFormItemChangeAction): Array<ConditionChange>;
46
48
  /** @returns The top level validation results (usually the errors), keyed on ID. */
47
49
  getFormItemValidationResults(): Record<string, FormItemValidationResult>;
50
+ /**
51
+ * Returns a new MtnaForm using the MtnaForm & reacive form values from the MtnaWfNgFormService's internal form.
52
+ *
53
+ * @param ngFormValues JSON object of ngFormValues
54
+ * @returns
55
+ */
56
+ updateForm(ngFormValues: Record<string, unknown>): Form;
48
57
  /**
49
58
  * Returns a new MtnaForm using the previous MtnaForm & reactive form values.
50
59
  *
@@ -1,6 +1,12 @@
1
1
  import { AbstractControl, FormGroup } from '@angular/forms';
2
2
  import { Observable } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
+ /**
5
+ * This service manages and interacts with an Angular FormGroup. It provides functionality
6
+ * to add or remove form controls dynamically, track the form's state, and notify other
7
+ * components about unsaved changes. This service is used to centralize form handling and
8
+ * state management, providing a reliableway to monitor and respond to form changes.
9
+ */
4
10
  export declare class MtnaWfNgFormService {
5
11
  private ngForm;
6
12
  private unsavedChanges$;
@@ -1,5 +1,5 @@
1
1
  import { FormItem } from '@mtna/web-form-ts';
2
- import { FormStep, FormStepGroup } from '../models';
2
+ import { FormStep, FormStepGroup, OutlineStep } from '../models';
3
3
  /**
4
4
  * Builds up an array of FormSteps or FormStepGroups based on what is found in the provided form items. For most typical
5
5
  * forms this will mean that a step is generated for every section that is found in the form. It is assumed that all
@@ -12,3 +12,7 @@ import { FormStep, FormStepGroup } from '../models';
12
12
  * @param allSteps flag indicating that a form step should be produced for every form item
13
13
  */
14
14
  export declare function generateFormSteps(items: Array<FormItem>, allSteps?: boolean): Array<FormStep | FormStepGroup>;
15
+ export declare function generateFormStepsFromOutline(outline: OutlineStep[]): Array<FormStep | FormStepGroup>;
16
+ export interface FormStepData extends OutlineStep {
17
+ num: string;
18
+ }
@@ -1,6 +1,6 @@
1
1
  import { CircleStatus } from '@mtna/core-angular';
2
2
  import { Form } from '@mtna/web-form-ts';
3
- import { FormStep } from '../models';
3
+ import { FormStep, ProgressiveForm } from '../models';
4
4
  /**
5
5
  * Update a {@link FormStep}'s `status`.
6
6
  * The server side form validation errors will trump the provided `status`.
@@ -11,4 +11,4 @@ import { FormStep } from '../models';
11
11
  * @param form the containing form
12
12
  * @returns an updated step with the correct status
13
13
  */
14
- export declare function updateStepStatus(instanceId: string, step: FormStep, status: CircleStatus, form?: Form): FormStep;
14
+ export declare function updateStepStatus(instanceId: string, step: FormStep, status: CircleStatus, form: Form | ProgressiveForm | null | undefined): FormStep;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mtna/web-form-angular",
3
- "version": "1.0.2-SNAPSHOT.2",
3
+ "version": "1.0.2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://bitbucket.org/mtnaus/web-form-angular"
package/public-api.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from './lib/components/index';
2
- export * from './lib/directives/index';
3
2
  export * from './lib/models/index';
4
3
  export * from './lib/pipes/index';
5
4
  export * from './lib/services/index';