ngx-t-forms-types 0.0.19 → 0.0.21

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 (106) hide show
  1. package/dist/index.d.ts +13 -9
  2. package/dist/index.js +13 -9
  3. package/dist/interfaces/DeepProperty/DeepProperty.d.ts +25 -0
  4. package/dist/interfaces/DeepProperty/DeepProperty.js +1 -0
  5. package/dist/interfaces/DeepProperty/index.d.ts +1 -0
  6. package/dist/interfaces/DeepProperty/index.js +1 -0
  7. package/dist/interfaces/Encryption/EncryptedData.d.ts +19 -0
  8. package/dist/interfaces/Encryption/EncryptedData.js +1 -0
  9. package/dist/interfaces/Encryption/index.d.ts +1 -0
  10. package/dist/interfaces/Encryption/index.js +1 -0
  11. package/dist/interfaces/Form/ArrayFunctions.d.ts +43 -1
  12. package/dist/interfaces/Form/ArrayFunctions.js +28 -0
  13. package/dist/interfaces/Form/FormInClassUtils.d.ts +9 -7
  14. package/dist/interfaces/Form/IFormsInitStateInterface.d.ts +1 -1
  15. package/dist/interfaces/Form/formInterface.d.ts +8 -3
  16. package/dist/interfaces/Form/formSubmissionHandleInterface.d.ts +2 -2
  17. package/dist/interfaces/Form/index.d.ts +13 -12
  18. package/dist/interfaces/Form/index.js +5 -1
  19. package/dist/interfaces/FormBuilder/DefaultEelement.d.ts +1 -1
  20. package/dist/interfaces/FormBuilder/DefaultEelement.js +9 -9
  21. package/dist/interfaces/FormBuilder/DefaultInputConfigInterface.d.ts +36 -25
  22. package/dist/interfaces/FormBuilder/DefaultInputConfigInterface.js +1 -1
  23. package/dist/interfaces/FormBuilder/FormBuilderCallBackFunctions.d.ts +11 -3
  24. package/dist/interfaces/FormBuilder/elementEditor.d.ts +8 -7
  25. package/dist/interfaces/FormBuilder/elementEditor.js +1 -0
  26. package/dist/interfaces/FormBuilder/index.d.ts +11 -10
  27. package/dist/interfaces/FormBuilder/index.js +6 -6
  28. package/dist/interfaces/FormBuilder/inputConfig/ElementEditConfig.d.ts +1 -1
  29. package/dist/interfaces/FormBuilder/inputConfig/ElementEditConfig.js +14 -13
  30. package/dist/interfaces/FormBuilder/inputConfig/getInputValueFromElement.js +3 -3
  31. package/dist/interfaces/FormBuilder/workflowSelectionConfig.d.ts +2 -2
  32. package/dist/interfaces/FormSlide/accessTree.d.ts +1 -1
  33. package/dist/interfaces/FormSlide/formSlideInterface.d.ts +1 -1
  34. package/dist/interfaces/FormSlide/index.d.ts +3 -3
  35. package/dist/interfaces/FormSlide/index.js +1 -1
  36. package/dist/interfaces/Import/ImportProgress.d.ts +29 -0
  37. package/dist/interfaces/Import/ImportProgress.js +1 -0
  38. package/dist/interfaces/Import/ImportRowState.d.ts +66 -0
  39. package/dist/interfaces/Import/ImportRowState.js +1 -0
  40. package/dist/interfaces/Import/index.d.ts +2 -0
  41. package/dist/interfaces/Import/index.js +1 -0
  42. package/dist/interfaces/Tour/IFormTour.d.ts +14 -0
  43. package/dist/interfaces/Tour/IFormTour.js +1 -0
  44. package/dist/interfaces/Tour/index.d.ts +1 -0
  45. package/dist/interfaces/Tour/index.js +1 -0
  46. package/dist/interfaces/Tower/ITowerFormSteps.d.ts +3 -3
  47. package/dist/interfaces/Tower/ITowerFormSteps.js +1 -1
  48. package/dist/interfaces/Tower/index.d.ts +1 -1
  49. package/dist/interfaces/environment/IStoreFunctions.d.ts +8 -7
  50. package/dist/interfaces/environment/IStoreFunctions.js +1 -1
  51. package/dist/interfaces/environment/environment.d.ts +1 -1
  52. package/dist/interfaces/environment/index.d.ts +2 -2
  53. package/dist/interfaces/formInput/APIDataFetchingConfigurationInterface.d.ts +3 -3
  54. package/dist/interfaces/formInput/BasicFormInputInterface.d.ts +9 -9
  55. package/dist/interfaces/formInput/DateRangePickerInput.d.ts +1 -1
  56. package/dist/interfaces/formInput/FileUploadInputInterface.d.ts +7 -2
  57. package/dist/interfaces/formInput/FormControlCustomValidatorsInterface.d.ts +38 -4
  58. package/dist/interfaces/formInput/FormValidationOverride.d.ts +48 -0
  59. package/dist/interfaces/formInput/FormValidationOverride.js +1 -0
  60. package/dist/interfaces/formInput/IMscoaAccount.d.ts +25 -9
  61. package/dist/interfaces/formInput/ISelectInputInterface.d.ts +3 -3
  62. package/dist/interfaces/formInput/ISelectInputInterface.js +1 -1
  63. package/dist/interfaces/formInput/MatDataOptionsInterface.d.ts +2 -2
  64. package/dist/interfaces/formInput/MatrixInputInterface.d.ts +2 -2
  65. package/dist/interfaces/formInput/MinimumInputRequiredInterface.d.ts +1 -1
  66. package/dist/interfaces/formInput/MscoaInput.d.ts +2 -2
  67. package/dist/interfaces/formInput/MscoaInput.js +1 -1
  68. package/dist/interfaces/formInput/MultipleInterface.d.ts +2 -2
  69. package/dist/interfaces/formInput/RichTextEditorInput.d.ts +16 -2
  70. package/dist/interfaces/formInput/RichTextEditorInput.js +11 -1
  71. package/dist/interfaces/formInput/TableConfigurationsInterface.d.ts +1 -1
  72. package/dist/interfaces/formInput/TextAreaInput.d.ts +1 -1
  73. package/dist/interfaces/formInput/ToggleInputInterface.d.ts +1 -1
  74. package/dist/interfaces/formInput/WorkflowAdjudication.d.ts +16 -4
  75. package/dist/interfaces/formInput/WorkflowDocumentPicker.d.ts +4 -4
  76. package/dist/interfaces/formInput/WorkflowDocumentPicker.js +1 -1
  77. package/dist/interfaces/formInput/calculatedFieldRules.d.ts +1 -1
  78. package/dist/interfaces/formInput/calculationVariableInterface.d.ts +3 -1
  79. package/dist/interfaces/formInput/calculationVariableInterface.js +2 -0
  80. package/dist/interfaces/formInput/index.d.ts +28 -26
  81. package/dist/interfaces/formInput/index.js +15 -9
  82. package/dist/interfaces/formInput/schema.d.ts +11 -2
  83. package/dist/interfaces/pipeline-builder/index.d.ts +1 -1
  84. package/dist/interfaces/pipeline-builder/index.js +1 -1
  85. package/dist/interfaces/upgradeFunctions/interfaces/init-form.d.ts +14 -1
  86. package/dist/interfaces/workflow/WorkflowFunctionTypes.d.ts +26 -0
  87. package/dist/interfaces/workflow/WorkflowFunctionTypes.js +27 -0
  88. package/dist/interfaces/workflow/index.d.ts +3 -2
  89. package/dist/interfaces/workflow/index.js +3 -2
  90. package/dist/schemas/CalculatedFieldRulesSchema.d.ts +1 -1
  91. package/dist/schemas/CalculatedFieldRulesSchema.js +1 -1
  92. package/dist/schemas/DocmentPickerInputSchema.js +2 -2
  93. package/dist/schemas/FormInputSchema.d.ts +2 -2
  94. package/dist/schemas/FormInputSchema.js +18 -18
  95. package/dist/schemas/FormSchema.d.ts +2 -2
  96. package/dist/schemas/FormSchema.js +3 -3
  97. package/dist/schemas/MatOptionsSchema.js +2 -2
  98. package/dist/schemas/MscoaConfigSchema.js +1 -1
  99. package/dist/schemas/customValidationSchema.d.ts +1 -1
  100. package/dist/schemas/customValidationSchema.js +6 -2
  101. package/dist/schemas/index.d.ts +3 -3
  102. package/dist/schemas/index.js +3 -3
  103. package/dist/schemas/tests/CustomValidationSchema.spec.d.ts +1 -0
  104. package/dist/schemas/tests/CustomValidationSchema.spec.js +92 -0
  105. package/dist/schemas/tests/FormInputValidator.spec.js +3 -8
  106. package/package.json +83 -63
package/dist/index.d.ts CHANGED
@@ -1,9 +1,13 @@
1
- export * from './interfaces/Form/index';
2
- export * from './interfaces/Tower/index';
3
- export * from './interfaces/FormSlide/index';
4
- export * from './interfaces/formInput/index';
5
- export * from './interfaces/FormBuilder/index';
6
- export * from './interfaces/environment/index';
7
- export * from './interfaces/pipeline-builder/index';
8
- export * from './interfaces/workflow/index';
9
- export * from './schemas/index';
1
+ export * from './interfaces/Form/index.js';
2
+ export * from './interfaces/Tower/index.js';
3
+ export * from './interfaces/FormSlide/index.js';
4
+ export * from './interfaces/formInput/index.js';
5
+ export * from './interfaces/FormBuilder/index.js';
6
+ export * from './interfaces/environment/index.js';
7
+ export * from './interfaces/pipeline-builder/index.js';
8
+ export * from './interfaces/workflow/index.js';
9
+ export * from './interfaces/Encryption/index.js';
10
+ export * from './interfaces/DeepProperty/index.js';
11
+ export * from './interfaces/Import/index.js';
12
+ export * from './interfaces/Tour/index.js';
13
+ export * from './schemas/index.js';
package/dist/index.js CHANGED
@@ -1,9 +1,13 @@
1
- export * from './interfaces/Form/index';
2
- export * from './interfaces/Tower/index';
3
- export * from './interfaces/FormSlide/index';
4
- export * from './interfaces/formInput/index';
5
- export * from './interfaces/FormBuilder/index';
6
- export * from './interfaces/environment/index';
7
- export * from './interfaces/pipeline-builder/index';
8
- export * from './interfaces/workflow/index';
9
- export * from './schemas/index';
1
+ export * from './interfaces/Form/index.js';
2
+ export * from './interfaces/Tower/index.js';
3
+ export * from './interfaces/FormSlide/index.js';
4
+ export * from './interfaces/formInput/index.js';
5
+ export * from './interfaces/FormBuilder/index.js';
6
+ export * from './interfaces/environment/index.js';
7
+ export * from './interfaces/pipeline-builder/index.js';
8
+ export * from './interfaces/workflow/index.js';
9
+ export * from './interfaces/Encryption/index.js';
10
+ export * from './interfaces/DeepProperty/index.js';
11
+ export * from './interfaces/Import/index.js';
12
+ export * from './interfaces/Tour/index.js';
13
+ export * from './schemas/index.js';
@@ -0,0 +1,25 @@
1
+ import type { IArrayFunction } from '../Form/ArrayFunctions.js';
2
+ /**
3
+ * Result type returned by `returnDeepProperty` / `safeReturnDeepProperty`.
4
+ * The deep-property helpers are intentionally untyped at the value boundary
5
+ * because they walk arbitrary nested structures — consumers should narrow
6
+ * after retrieval.
7
+ *
8
+ * Upstreamed from `ngx-t-forms` per DECISIONS.md D-016.
9
+ *
10
+ * @public
11
+ */
12
+ export type DeepPropertyValue = unknown;
13
+ /**
14
+ * Path segment array used by `returnDeepProperty` / `safeReturnDeepProperty`
15
+ * to traverse a deeply-nested object. Each segment is either:
16
+ *
17
+ * - `string` — object key
18
+ * - `number` — array index
19
+ * - `IArrayFunction[]` — declarative array operation (filter / find / map)
20
+ *
21
+ * Upstreamed from `ngx-t-forms` per DECISIONS.md D-016.
22
+ *
23
+ * @public
24
+ */
25
+ export type PropertyPath = (string | number | IArrayFunction[])[];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export { DeepPropertyValue, PropertyPath } from './DeepProperty.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Encrypted payload produced by the AES-CBC + HMAC-SHA256 helpers in
3
+ * `ngx-t-forms`. All four fields are Base64-encoded strings; the helpers
4
+ * round-trip through `crypto-js`.
5
+ *
6
+ * Upstreamed from `ngx-t-forms` per DECISIONS.md D-016.
7
+ *
8
+ * @public
9
+ */
10
+ export interface EncryptedData {
11
+ /** AES-CBC ciphertext, Base64-encoded. */
12
+ ciphertext: string;
13
+ /** PBKDF2 salt (16 random bytes), Base64-encoded. */
14
+ salt: string;
15
+ /** AES-CBC initialisation vector (16 random bytes), Base64-encoded. */
16
+ iv: string;
17
+ /** HMAC-SHA256 of the ciphertext, Base64-encoded. */
18
+ hmac: string;
19
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export { EncryptedData } from './EncryptedData.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -1,11 +1,53 @@
1
+ /**
2
+ * Declarative array-transform operations applied by the `ngx-t-forms`
3
+ * array-access engine (`arrayAccessFunctions`). Each member is the string a
4
+ * config author places in {@link IArrayFunction.function}; the matching
5
+ * `expression` is interpreted differently per operation (see the
6
+ * "Array Transform Rules" doc shipped with the library).
7
+ *
8
+ * The first three members (`Filter`, `Find`, `Map`) are the original surface
9
+ * and are unchanged. The remaining members are **additive** - existing configs
10
+ * keep working untouched.
11
+ *
12
+ * @public
13
+ */
1
14
  export declare enum FunctionTypes {
15
+ /** Keep only the items whose predicate expression evaluates truthy. Returns an array. */
2
16
  Filter = "filter",
17
+ /** Return the first item whose predicate expression evaluates truthy (or `undefined`). Terminal. */
3
18
  Find = "find",
4
- Map = "map"
19
+ /** Reshape each item using a projection expression. Returns an array of new objects. */
20
+ Map = "map",
21
+ /** Order items by one or more `path asc|desc` keys. Returns an array. */
22
+ Sort = "sort",
23
+ /** Take a window of items (`start:end`, a single limit, or `start,count`). Returns an array. */
24
+ Slice = "slice",
25
+ /** Drop duplicate items, keyed by whole-item identity or one/more paths. Returns an array. */
26
+ Unique = "unique",
27
+ /** Flatten nested arrays one level, or flat-map by a child array path. Returns an array. */
28
+ Flatten = "flatten",
29
+ /** Group items into buckets keyed by one or more paths. Returns a record of arrays. Terminal. */
30
+ GroupBy = "groupBy",
31
+ /** Aggregate items into a scalar or summary object (sum/avg/min/max/count/first/last/join). Terminal. */
32
+ Reduce = "reduce"
5
33
  }
34
+ /**
35
+ * A single declarative array-transform step.
36
+ *
37
+ * Configs supply an **ordered** `IArrayFunction[]`; the engine folds them
38
+ * left-to-right (see {@link FunctionTypes} for per-operation `expression`
39
+ * grammar). Only `function` and `expression` affect runtime behaviour;
40
+ * `id` and `inEdit` are UI bookkeeping.
41
+ *
42
+ * @public
43
+ */
6
44
  export interface IArrayFunction {
45
+ /** Which transform to apply. */
7
46
  function: FunctionTypes;
47
+ /** Operation-specific expression (predicate, projection, sort keys, etc.). */
8
48
  expression: string;
49
+ /** Stable identity for editing UIs. */
9
50
  id: string;
51
+ /** UI-only flag marking the step as currently being edited. */
10
52
  inEdit?: boolean;
11
53
  }
@@ -1,7 +1,35 @@
1
+ /**
2
+ * Declarative array-transform operations applied by the `ngx-t-forms`
3
+ * array-access engine (`arrayAccessFunctions`). Each member is the string a
4
+ * config author places in {@link IArrayFunction.function}; the matching
5
+ * `expression` is interpreted differently per operation (see the
6
+ * "Array Transform Rules" doc shipped with the library).
7
+ *
8
+ * The first three members (`Filter`, `Find`, `Map`) are the original surface
9
+ * and are unchanged. The remaining members are **additive** - existing configs
10
+ * keep working untouched.
11
+ *
12
+ * @public
13
+ */
1
14
  export var FunctionTypes;
2
15
  (function (FunctionTypes) {
16
+ /** Keep only the items whose predicate expression evaluates truthy. Returns an array. */
3
17
  FunctionTypes["Filter"] = "filter";
18
+ /** Return the first item whose predicate expression evaluates truthy (or `undefined`). Terminal. */
4
19
  FunctionTypes["Find"] = "find";
20
+ /** Reshape each item using a projection expression. Returns an array of new objects. */
5
21
  FunctionTypes["Map"] = "map";
22
+ /** Order items by one or more `path asc|desc` keys. Returns an array. */
23
+ FunctionTypes["Sort"] = "sort";
24
+ /** Take a window of items (`start:end`, a single limit, or `start,count`). Returns an array. */
25
+ FunctionTypes["Slice"] = "slice";
26
+ /** Drop duplicate items, keyed by whole-item identity or one/more paths. Returns an array. */
27
+ FunctionTypes["Unique"] = "unique";
28
+ /** Flatten nested arrays one level, or flat-map by a child array path. Returns an array. */
29
+ FunctionTypes["Flatten"] = "flatten";
30
+ /** Group items into buckets keyed by one or more paths. Returns a record of arrays. Terminal. */
31
+ FunctionTypes["GroupBy"] = "groupBy";
32
+ /** Aggregate items into a scalar or summary object (sum/avg/min/max/count/first/last/join). Terminal. */
33
+ FunctionTypes["Reduce"] = "reduce";
6
34
  // Add more function types here as needed
7
35
  })(FunctionTypes || (FunctionTypes = {}));
@@ -1,9 +1,9 @@
1
1
  import { Observable } from "rxjs";
2
- import { IUserSignature } from "../formInput/userSignature";
2
+ import { IUserSignature } from "../formInput/userSignature.js";
3
3
  import { PointGroup } from "signature_pad";
4
- import { FileUploadFn, NgxTFormsConfig } from "../../interfaces/Form";
4
+ import { FileUploadFn, NgxTFormsConfig } from "../../interfaces/Form/index.js";
5
5
  import { HttpClient } from "@angular/common/http";
6
- import { FormSubmissionStatus } from "../FormSlide";
6
+ import { FormSubmissionStatus } from "../FormSlide/index.js";
7
7
  /**
8
8
  * Interface for the utility functions used in the in-class form.
9
9
  */
@@ -11,20 +11,22 @@ export interface InClassFormUtilsInterface {
11
11
  /**
12
12
  * Function to perform an HTTP GET request.
13
13
  * @param url - The URL to send the request to.
14
+ * @param options - Implementation-defined request options (consumer narrows).
14
15
  * @returns A promise that resolves to the response data.
15
16
  */
16
- httpGetDataFunction: (url: string, options: any) => Observable<any>;
17
+ httpGetDataFunction: (url: string, options: unknown) => Observable<unknown>;
17
18
  /**
18
19
  * Function to perform an HTTP POST request.
19
20
  * @param url - The URL to send the request to.
20
21
  * @param data - The data to send in the request body.
22
+ * @param options - Implementation-defined request options (consumer narrows).
21
23
  * @returns A promise that resolves to the response data.
22
24
  */
23
- httpPostDataFunction: (url: string, data: any, options: any) => Observable<any>;
25
+ httpPostDataFunction: (url: string, data: unknown, options: unknown) => Observable<unknown>;
24
26
  submitForm: () => Observable<void>;
25
27
  saveFormData: () => Observable<void>;
26
- runPipeLine: (pipeline: any, workflowId: string) => Observable<{
27
- results: any;
28
+ runPipeLine: (pipeline: unknown, workflowId: string) => Observable<{
29
+ results: unknown;
28
30
  message: string;
29
31
  }>;
30
32
  fileUpload: FileUploadFn;
@@ -1,5 +1,5 @@
1
1
  import { ActivatedRouteSnapshot } from "@angular/router";
2
- import { DatabaseFormInterface, FormInterface } from "./formInterface";
2
+ import { DatabaseFormInterface, FormInterface } from "./formInterface.js";
3
3
  export interface LocalFormStateSelectorInterface extends FormInterface {
4
4
  _id: string;
5
5
  createdAt: Date;
@@ -1,8 +1,13 @@
1
- import { FormSlideInterface } from "../FormSlide/formSlideInterface";
2
- import { FormSubmissionHandleInterface } from "./formSubmissionHandleInterface";
1
+ import { FormSlideInterface } from "../FormSlide/formSlideInterface.js";
2
+ import { FormSubmissionHandleInterface } from "./formSubmissionHandleInterface.js";
3
3
  export interface FormInterface {
4
4
  slides: Array<FormSlideInterface>;
5
- submissionHandle: FormSubmissionHandleInterface;
5
+ /**
6
+ * Optional submission target. Empty-form factories (e.g. `createEmptyForm()`)
7
+ * legitimately have none until the consumer configures one; downstream
8
+ * consumers guard before reading.
9
+ */
10
+ submissionHandle?: FormSubmissionHandleInterface;
6
11
  formId: string | any;
7
12
  formTitle: string;
8
13
  submissionMessage?: string;
@@ -1,5 +1,5 @@
1
- import { APIDataFetchingConfigurationInterface, MongoDbPipeLineConfigInterface } from "../formInput";
2
- import { DataSources } from "../formInput/APIDataFetchingConfigurationInterface";
1
+ import { APIDataFetchingConfigurationInterface, MongoDbPipeLineConfigInterface } from "../formInput/index.js";
2
+ import { DataSources } from "../formInput/APIDataFetchingConfigurationInterface.js";
3
3
  export interface FormSubmissionHandleInterface {
4
4
  innerComponentShowSubmitButton?: boolean;
5
5
  canSubmitAPI?: Array<APIDataFetchingConfigurationInterface>;
@@ -1,12 +1,13 @@
1
- import { NgxTFormsConfig } from "../environment/environment";
2
- import { FormColumnInputs } from "../formInput/BasicFormInputInterface";
3
- import { IAllInputs, OLD_FormInterface } from "../upgradeFunctions/interfaces/init-form";
4
- import { IArrayFunction } from "./ArrayFunctions";
5
- import { CustomConfigInterface } from "./CustomeConfigInter";
6
- import { FileData, FileUploadFn } from "./FileUploadFn";
7
- import { IFormChangeHistory } from "./formChangeHistory";
8
- import { IFormActions, InClassFormUtilsInterface, InClassFormUtilsWithSectionsInterface } from "./FormInClassUtils";
9
- import { FormInterface, DatabaseFormInterface, MainFormInterface } from "./formInterface";
10
- import { FormSubmissionHandleInterface, IReportDataSources } from "./formSubmissionHandleInterface";
11
- import { FormListSection, FormStateErrors, IFormsInitStateInterface, LocalFormStateSelectorInterface } from "./IFormsInitStateInterface";
12
- export { CustomConfigInterface, InClassFormUtilsInterface, InClassFormUtilsWithSectionsInterface, FormInterface, MainFormInterface, DatabaseFormInterface, FormSubmissionHandleInterface, FormColumnInputs, IFormActions, NgxTFormsConfig, FileUploadFn, FileData, FormListSection, LocalFormStateSelectorInterface, IFormsInitStateInterface, FormStateErrors, IArrayFunction, OLD_FormInterface, IAllInputs, IFormChangeHistory, IReportDataSources };
1
+ import { NgxTFormsConfig } from "../environment/environment.js";
2
+ import { FormColumnInputs } from "../formInput/BasicFormInputInterface.js";
3
+ import { FormInterfaceMigration, IAllInputs, OLD_FormInterface } from "../upgradeFunctions/interfaces/init-form.js";
4
+ import { IArrayFunction } from "./ArrayFunctions.js";
5
+ import { CustomConfigInterface } from "./CustomeConfigInter.js";
6
+ import { FileData, FileUploadFn } from "./FileUploadFn.js";
7
+ import { IFormChangeHistory } from "./formChangeHistory.js";
8
+ import { IFormActions, InClassFormUtilsInterface, InClassFormUtilsWithSectionsInterface } from "./FormInClassUtils.js";
9
+ import { FormInterface, DatabaseFormInterface, MainFormInterface } from "./formInterface.js";
10
+ import { FormSubmissionHandleInterface, IReportDataSources } from "./formSubmissionHandleInterface.js";
11
+ import { FormListSection, FormStateErrors, IFormsInitStateInterface, LocalFormStateSelectorInterface } from "./IFormsInitStateInterface.js";
12
+ export { CustomConfigInterface, InClassFormUtilsInterface, InClassFormUtilsWithSectionsInterface, FormInterface, MainFormInterface, DatabaseFormInterface, FormSubmissionHandleInterface, FormColumnInputs, IFormActions, NgxTFormsConfig, FileUploadFn, FileData, FormListSection, LocalFormStateSelectorInterface, IFormsInitStateInterface, FormStateErrors, IArrayFunction, OLD_FormInterface, FormInterfaceMigration, IAllInputs, IFormChangeHistory, IReportDataSources };
13
+ export { FunctionTypes } from "./ArrayFunctions.js";
@@ -1,2 +1,6 @@
1
- import { FormListSection, FormStateErrors } from "./IFormsInitStateInterface";
1
+ import { FormListSection, FormStateErrors } from "./IFormsInitStateInterface.js";
2
2
  export { FormListSection, FormStateErrors };
3
+ // Array-access transform operations (filter/find/map/sort/slice/unique/flatten/
4
+ // groupBy/reduce) - exported as a value enum so config authors can reference
5
+ // `FunctionTypes.Sort` etc. when authoring `IArrayFunction[]` access rules.
6
+ export { FunctionTypes } from "./ArrayFunctions.js";
@@ -1,3 +1,3 @@
1
- import { DefaultInputConfigInterface } from "./DefaultInputConfigInterface";
1
+ import { DefaultInputConfigInterface } from "./DefaultInputConfigInterface.js";
2
2
  export declare function defaultInputs(): string[];
3
3
  export declare const DefaultInputConfig: DefaultInputConfigInterface;
@@ -1,11 +1,11 @@
1
- import { AutocapitalizeOptions, ElementTypes, InputDataTypes, InputTypes } from "../formInput";
2
- import { OptionSelectTypes } from "../formInput/BasicFormInputInterface";
3
- import { InputFileType } from "../formInput/FileUploadInputInterface";
4
- import { AccountingBasis } from "../formInput/IMscoaAccount";
5
- import { MSCOA_INPUT_DEFAULT_MAT_OPTIONS } from "../formInput/MscoaInput";
6
- import { RichTextEditorType } from "../formInput/RichTextEditorInput";
7
- import { LabelPosition } from "../formInput/ToggleInputInterface";
8
- import { AllFormInputPrimaryKeys, FormInputKeys, SpecialElementKeys } from "./FormInputKeys";
1
+ import { AutocapitalizeOptions, ElementTypes, InputDataTypes, InputTypes } from "../formInput/index.js";
2
+ import { OptionSelectTypes } from "../formInput/BasicFormInputInterface.js";
3
+ import { InputFileType } from "../formInput/FileUploadInputInterface.js";
4
+ import { AccountingBasis } from "../formInput/IMscoaAccount.js";
5
+ import { MSCOA_INPUT_DEFAULT_MAT_OPTIONS } from "../formInput/MscoaInput.js";
6
+ import { RichTextEditorType } from "../formInput/RichTextEditorInput.js";
7
+ import { LabelPosition } from "../formInput/ToggleInputInterface.js";
8
+ import { AllFormInputPrimaryKeys, FormInputKeys, SpecialElementKeys } from "./FormInputKeys.js";
9
9
  export function defaultInputs() {
10
10
  return Object.keys(ElementTypes);
11
11
  }
@@ -780,7 +780,7 @@ export const DefaultInputConfig = {
780
780
  validators: [],
781
781
  appearance: 'outline',
782
782
  isCalculatedField: false,
783
- richTextEditorLibrary: RichTextEditorType.EditorJS,
783
+ richTextEditorLibrary: RichTextEditorType.Quill,
784
784
  },
785
785
  },
786
786
  [ElementTypes.MscoaSelection]: {
@@ -1,11 +1,22 @@
1
- import { ElementTypes, IToggleInput, ITextareaProperties, IDateRangePickerInput, IFileUploadInput, IMultiple, IWorkflowAdjudicationInput, IScoaInput } from "../formInput";
2
- import { IFormElementTemplate } from "../formInput/BasicFormInputInterface";
3
- import { IPaginatedSelectionTableInputInterface, ISelectInputInterface } from "../formInput/ISelectInputInterface";
4
- import { IRichTextEditor } from "../formInput/RichTextEditorInput";
5
- import { IWorkflowDocumentPicker } from "../formInput/WorkflowDocumentPicker";
6
- import { AllFormInputPrimaryKeys, FormInputKeys, SpecialElementKeys } from "./FormInputKeys";
1
+ import { ElementTypes, IToggleInput, ITextareaProperties, IDateRangePickerInput, IFileUploadInput, IMultiple, IWorkflowAdjudicationInput, IScoaInput } from "../formInput/index.js";
2
+ import { IFormElementTemplate } from "../formInput/BasicFormInputInterface.js";
3
+ import { IPaginatedSelectionTableInputInterface, ISelectInputInterface } from "../formInput/ISelectInputInterface.js";
4
+ import { IRichTextEditor } from "../formInput/RichTextEditorInput.js";
5
+ import { IWorkflowDocumentPicker } from "../formInput/WorkflowDocumentPicker.js";
6
+ import { AllFormInputPrimaryKeys, FormInputKeys, SpecialElementKeys } from "./FormInputKeys.js";
7
+ /**
8
+ * Configuration map for the form-builder's default element templates.
9
+ *
10
+ * NOTE (H-014): All members are optional. Several `ElementTypes` members
11
+ * (`QrCodeScanner`, `QrCodeGenerator`, `OcrInput`, `MatrixTable`) are currently
12
+ * commented out of the enum itself, and a few populated entries are still in
13
+ * flight — making every key optional lets consumers safely look up by element
14
+ * with `defaultInputs[input.element]?.requiredProperties` without `as any`
15
+ * casts. When the enum re-introduces those members, the matching shapes can be
16
+ * un-commented below.
17
+ */
7
18
  export interface DefaultInputConfigInterface {
8
- [ElementTypes.Input]: {
19
+ [ElementTypes.Input]?: {
9
20
  label: string;
10
21
  disabled: boolean;
11
22
  illustration: string;
@@ -13,7 +24,7 @@ export interface DefaultInputConfigInterface {
13
24
  elementTemplate: IFormElementTemplate;
14
25
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
15
26
  };
16
- [ElementTypes.Location]: {
27
+ [ElementTypes.Location]?: {
17
28
  label: string;
18
29
  disabled: boolean;
19
30
  illustration: string;
@@ -21,7 +32,7 @@ export interface DefaultInputConfigInterface {
21
32
  elementTemplate: IFormElementTemplate;
22
33
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
23
34
  };
24
- [ElementTypes.AutoCompleteInput]: {
35
+ [ElementTypes.AutoCompleteInput]?: {
25
36
  label: string;
26
37
  disabled: boolean;
27
38
  illustration: string;
@@ -29,7 +40,7 @@ export interface DefaultInputConfigInterface {
29
40
  elementTemplate: IFormElementTemplate;
30
41
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
31
42
  };
32
- [ElementTypes.Toggle]: {
43
+ [ElementTypes.Toggle]?: {
33
44
  label: string;
34
45
  disabled: boolean;
35
46
  illustration: string;
@@ -37,7 +48,7 @@ export interface DefaultInputConfigInterface {
37
48
  elementTemplate: IToggleInput;
38
49
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
39
50
  };
40
- [ElementTypes.Select]: {
51
+ [ElementTypes.Select]?: {
41
52
  label: string;
42
53
  disabled: boolean;
43
54
  illustration: string;
@@ -45,7 +56,7 @@ export interface DefaultInputConfigInterface {
45
56
  elementTemplate: ISelectInputInterface;
46
57
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
47
58
  };
48
- [ElementTypes.PaginatedSelectionTable]: {
59
+ [ElementTypes.PaginatedSelectionTable]?: {
49
60
  label: string;
50
61
  disabled: boolean;
51
62
  illustration: string;
@@ -53,7 +64,7 @@ export interface DefaultInputConfigInterface {
53
64
  elementTemplate: IPaginatedSelectionTableInputInterface;
54
65
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
55
66
  };
56
- [ElementTypes.IconSelect]: {
67
+ [ElementTypes.IconSelect]?: {
57
68
  label: string;
58
69
  illustration: string;
59
70
  properties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
@@ -61,7 +72,7 @@ export interface DefaultInputConfigInterface {
61
72
  disabled: boolean;
62
73
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
63
74
  };
64
- [ElementTypes.Textarea]: {
75
+ [ElementTypes.Textarea]?: {
65
76
  label: string;
66
77
  disabled: boolean;
67
78
  illustration: string;
@@ -69,7 +80,7 @@ export interface DefaultInputConfigInterface {
69
80
  elementTemplate: ITextareaProperties;
70
81
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
71
82
  };
72
- [ElementTypes.DatePicker]: {
83
+ [ElementTypes.DatePicker]?: {
73
84
  label: string;
74
85
  disabled: boolean;
75
86
  illustration: string;
@@ -77,7 +88,7 @@ export interface DefaultInputConfigInterface {
77
88
  elementTemplate: IFormElementTemplate;
78
89
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
79
90
  };
80
- [ElementTypes.DateRangePicker]: {
91
+ [ElementTypes.DateRangePicker]?: {
81
92
  label: string;
82
93
  disabled: boolean;
83
94
  illustration: string;
@@ -85,7 +96,7 @@ export interface DefaultInputConfigInterface {
85
96
  elementTemplate: IDateRangePickerInput;
86
97
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
87
98
  };
88
- [ElementTypes.FileUpload]: {
99
+ [ElementTypes.FileUpload]?: {
89
100
  label: string;
90
101
  disabled: boolean;
91
102
  illustration: string;
@@ -93,7 +104,7 @@ export interface DefaultInputConfigInterface {
93
104
  elementTemplate: IFileUploadInput;
94
105
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
95
106
  };
96
- [ElementTypes.Signature]: {
107
+ [ElementTypes.Signature]?: {
97
108
  label: string;
98
109
  disabled: boolean;
99
110
  illustration: string;
@@ -101,7 +112,7 @@ export interface DefaultInputConfigInterface {
101
112
  elementTemplate: IFormElementTemplate;
102
113
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
103
114
  };
104
- [ElementTypes.ImageCapture]: {
115
+ [ElementTypes.ImageCapture]?: {
105
116
  label: string;
106
117
  disabled: boolean;
107
118
  illustration: string;
@@ -109,7 +120,7 @@ export interface DefaultInputConfigInterface {
109
120
  elementTemplate: IFormElementTemplate;
110
121
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
111
122
  };
112
- [ElementTypes.SectionTitle]: {
123
+ [ElementTypes.SectionTitle]?: {
113
124
  label: string;
114
125
  disabled: boolean;
115
126
  illustration: string;
@@ -117,7 +128,7 @@ export interface DefaultInputConfigInterface {
117
128
  elementTemplate: IFormElementTemplate;
118
129
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
119
130
  };
120
- [ElementTypes.MultipleInput]: {
131
+ [ElementTypes.MultipleInput]?: {
121
132
  label: string;
122
133
  disabled: boolean;
123
134
  illustration: string;
@@ -125,7 +136,7 @@ export interface DefaultInputConfigInterface {
125
136
  elementTemplate: IMultiple;
126
137
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
127
138
  };
128
- [ElementTypes.Editor]: {
139
+ [ElementTypes.Editor]?: {
129
140
  label: string;
130
141
  disabled: boolean;
131
142
  illustration: string;
@@ -133,7 +144,7 @@ export interface DefaultInputConfigInterface {
133
144
  elementTemplate: IRichTextEditor;
134
145
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
135
146
  };
136
- [ElementTypes.MscoaSelection]: {
147
+ [ElementTypes.MscoaSelection]?: {
137
148
  label: string;
138
149
  disabled: boolean;
139
150
  illustration: string;
@@ -141,7 +152,7 @@ export interface DefaultInputConfigInterface {
141
152
  elementTemplate: IScoaInput;
142
153
  requiredProperties: Array<FormInputKeys | SpecialElementKeys | AllFormInputPrimaryKeys>;
143
154
  };
144
- [ElementTypes.WorkflowDocumentPicker]: {
155
+ [ElementTypes.WorkflowDocumentPicker]?: {
145
156
  label: string;
146
157
  disabled: boolean;
147
158
  illustration: string;
@@ -149,7 +160,7 @@ export interface DefaultInputConfigInterface {
149
160
  elementTemplate: IWorkflowDocumentPicker;
150
161
  requiredProperties: Array<FormInputKeys | AllFormInputPrimaryKeys>;
151
162
  };
152
- [ElementTypes.WorkflowAdjudication]: {
163
+ [ElementTypes.WorkflowAdjudication]?: {
153
164
  label: string;
154
165
  disabled: boolean;
155
166
  illustration: string;
@@ -1 +1 @@
1
- import { ElementTypes, } from "../formInput";
1
+ import { ElementTypes, } from "../formInput/index.js";
@@ -1,6 +1,6 @@
1
1
  import { Observable } from "rxjs";
2
- import { IGetTreeResponse, IMultipleInputCal, IScoaAccount } from "../formInput";
3
- import { FormColumnInputs } from "../formInput/BasicFormInputInterface";
2
+ import { IGetTreeResponse, IMultipleInputCal, IScoaAccount } from "../formInput/index.js";
3
+ import { FormColumnInputs } from "../formInput/BasicFormInputInterface.js";
4
4
  import { CdkDragDrop } from "@angular/cdk/drag-drop";
5
5
  export interface FormBuilderFunctions {
6
6
  multipleInputToggleLabel: (item: FormColumnInputs) => void;
@@ -15,5 +15,13 @@ export interface FormBuilderFunctions {
15
15
  getSCOAAccount: (SCOAAccount: string) => Observable<{
16
16
  accounts: IScoaAccount[];
17
17
  }>;
18
- reorderItems: (event: CdkDragDrop<FormColumnInputs[], any, any>, multipleInputId: string) => void;
18
+ /**
19
+ * Reorders items within a multiple-input column list.
20
+ *
21
+ * Generic `T` covers any row shape assignable to `FormColumnInputs` so consumers
22
+ * can pass narrower row types (e.g. `ITowerStepColumn[]`) without casting.
23
+ * The container/data/predicate generic slots on `CdkDragDrop` are kept as
24
+ * `unknown` — the runtime payload is opaque to this contract; consumers narrow.
25
+ */
26
+ reorderItems: <T extends FormColumnInputs = FormColumnInputs>(event: CdkDragDrop<T[], unknown, unknown>, multipleInputId: string) => void;
19
27
  }
@@ -1,10 +1,10 @@
1
1
  import { Observable } from "rxjs";
2
- import { AllFormInputPrimaryKeys, FormInputKeys, SpecialElementKeys } from "./FormInputKeys";
3
- import { IPostmanCollectionConfig } from "./postmanCollection";
4
- import { IWorkflowOption } from "./workflowSelectionConfig";
5
- import { IGetTreeResponse } from "../formInput";
6
- import { FormColumnInputs } from "../Form";
7
- import { ValidationError } from "../formInput/schema";
2
+ import { AllFormInputPrimaryKeys, FormInputKeys, SpecialElementKeys } from "./FormInputKeys.js";
3
+ import { IPostmanCollectionConfig } from "./postmanCollection.js";
4
+ import { IWorkflowOption } from "./workflowSelectionConfig.js";
5
+ import { IGetTreeResponse } from "../formInput/index.js";
6
+ import { FormColumnInputs } from "../Form/index.js";
7
+ import { ValidationError } from "../formInput/schema.js";
8
8
  export declare enum ElementEditorTypes {
9
9
  Input = "input",
10
10
  Toggle = "toggle",// Note the typo here; check if it should be 'toggle'
@@ -35,7 +35,8 @@ export declare enum ElementEditorTypes {
35
35
  ListLabelConfigEditor = "listLabelConfigEditor",
36
36
  DecisionGateSettings = "decisionGateSettings",
37
37
  RecordListManager = "recordListManager",
38
- MapMatOptionsKeys = "mapMatOptionsKeys"
38
+ MapMatOptionsKeys = "mapMatOptionsKeys",
39
+ FormPayloadProjection = "formPayloadProjection"
39
40
  }
40
41
  export interface ElementEditorConfigInterface {
41
42
  editorSections: Array<ElementEditorConfigSectionInterface>;
@@ -30,6 +30,7 @@ export var ElementEditorTypes;
30
30
  ElementEditorTypes["DecisionGateSettings"] = "decisionGateSettings";
31
31
  ElementEditorTypes["RecordListManager"] = "recordListManager";
32
32
  ElementEditorTypes["MapMatOptionsKeys"] = "mapMatOptionsKeys";
33
+ ElementEditorTypes["FormPayloadProjection"] = "formPayloadProjection";
33
34
  })(ElementEditorTypes || (ElementEditorTypes = {}));
34
35
  // interface TStringExpressionValidationTest{
35
36
  // expression: string;
@@ -1,10 +1,11 @@
1
- import { DefaultInputConfig, defaultInputs } from "./DefaultEelement";
2
- import { DefaultInputConfigInterface } from "./DefaultInputConfigInterface";
3
- import { getElementEditorConfig } from "./inputConfig/ElementEditConfig";
4
- import { AllFormInputPrimaryKeys, FormInputKeys, SpecialElementKeys } from "./FormInputKeys";
5
- import { BlurHandleTypes, ConfigurationValidTestInterface, ElementEditorConfigSectionInterface, ElementEditorInnerSectionElementInterface, ElementEditorTypes } from "./elementEditor";
6
- import { IWorkflowOption } from "./workflowSelectionConfig";
7
- import { FormBuilderFunctions } from "./FormBuilderCallBackFunctions";
8
- import { IGetPostmanCollections, IPostmanCollectionConfig } from "./postmanCollection";
9
- import { DataSources } from "../formInput/APIDataFetchingConfigurationInterface";
10
- export { DefaultInputConfigInterface, BlurHandleTypes, FormInputKeys, ElementEditorTypes, ConfigurationValidTestInterface, ElementEditorInnerSectionElementInterface, SpecialElementKeys, AllFormInputPrimaryKeys, DefaultInputConfig, defaultInputs, getElementEditorConfig, IWorkflowOption, FormBuilderFunctions, IGetPostmanCollections, IPostmanCollectionConfig, DataSources, ElementEditorConfigSectionInterface };
1
+ import { DefaultInputConfig, defaultInputs } from "./DefaultEelement.js";
2
+ import { DefaultInputConfigInterface } from "./DefaultInputConfigInterface.js";
3
+ import { getElementEditorConfig } from "./inputConfig/ElementEditConfig.js";
4
+ import { AllFormInputPrimaryKeys, FormInputKeys, SpecialElementKeys } from "./FormInputKeys.js";
5
+ import { BlurHandleTypes, ConfigurationValidTestInterface, ElementEditorConfigSectionInterface, ElementEditorInnerSectionElementInterface, ElementEditorTypes } from "./elementEditor.js";
6
+ import { IWorkflowOption } from "./workflowSelectionConfig.js";
7
+ import { FormBuilderFunctions } from "./FormBuilderCallBackFunctions.js";
8
+ import { IGetPostmanCollections, IPostmanCollectionConfig } from "./postmanCollection.js";
9
+ import { DataSources } from "../formInput/APIDataFetchingConfigurationInterface.js";
10
+ import { IScoaAccount } from "../formInput/IMscoaAccount.js";
11
+ export { DefaultInputConfigInterface, BlurHandleTypes, FormInputKeys, ElementEditorTypes, ConfigurationValidTestInterface, ElementEditorInnerSectionElementInterface, SpecialElementKeys, AllFormInputPrimaryKeys, DefaultInputConfig, defaultInputs, getElementEditorConfig, IWorkflowOption, FormBuilderFunctions, IGetPostmanCollections, IPostmanCollectionConfig, DataSources, ElementEditorConfigSectionInterface, IScoaAccount, };