ngx-t-forms-types 0.0.14 → 0.0.16

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 (30) hide show
  1. package/dist/interfaces/Form/IFormsInitStateInterface.d.ts +1 -0
  2. package/dist/interfaces/Form/formInterface.d.ts +1 -0
  3. package/dist/interfaces/FormBuilder/DefaultEelement.js +4 -1
  4. package/dist/interfaces/FormBuilder/DefaultInputConfigInterface.d.ts +2 -3
  5. package/dist/interfaces/FormBuilder/FormInputKeys.d.ts +3 -1
  6. package/dist/interfaces/FormBuilder/FormInputKeys.js +2 -0
  7. package/dist/interfaces/FormBuilder/elementEditor.d.ts +5 -2
  8. package/dist/interfaces/FormBuilder/elementEditor.js +1 -0
  9. package/dist/interfaces/FormBuilder/inputConfig/ElementEditConfig.js +182 -15
  10. package/dist/interfaces/environment/IStoreFunctions.d.ts +15 -2
  11. package/dist/interfaces/environment/IStoreFunctions.js +1 -1
  12. package/dist/interfaces/environment/index.d.ts +2 -2
  13. package/dist/interfaces/formInput/IMscoaAccount.d.ts +20 -1
  14. package/dist/interfaces/formInput/IMscoaAccount.js +6 -1
  15. package/dist/interfaces/formInput/MultipleInterface.d.ts +1 -0
  16. package/dist/interfaces/formInput/calculatedFieldRules.d.ts +2 -0
  17. package/dist/interfaces/formInput/index.d.ts +4 -4
  18. package/dist/interfaces/formInput/index.js +3 -2
  19. package/dist/interfaces/workflow/DocumentSectionConfigurationsInterface.d.ts +10 -1
  20. package/dist/interfaces/workflow/DocumentSectionConfigurationsInterface.js +9 -0
  21. package/dist/interfaces/workflow/index.d.ts +2 -2
  22. package/dist/interfaces/workflow/index.js +2 -2
  23. package/dist/schemas/CalculatedFieldRulesSchema.js +2 -0
  24. package/dist/schemas/FormInputSchema.js +4 -0
  25. package/dist/schemas/MscoaConfigSchema.js +6 -0
  26. package/dist/schemas/customValidationSchema.d.ts +1 -0
  27. package/dist/schemas/customValidationSchema.js +5 -1
  28. package/dist/schemas/index.d.ts +2 -2
  29. package/dist/schemas/index.js +2 -2
  30. package/package.json +2 -3
@@ -7,6 +7,7 @@ export interface LocalFormStateSelectorInterface extends FormInterface {
7
7
  archived: boolean;
8
8
  busy: boolean;
9
9
  errors: FormValidationErrorsInterface[];
10
+ systemDefault: boolean;
10
11
  }
11
12
  export interface LocalFormsStateInterface extends DatabaseFormInterface {
12
13
  errors: FormValidationErrorsInterface[];
@@ -5,6 +5,7 @@ export interface FormInterface {
5
5
  submissionHandle: FormSubmissionHandleInterface;
6
6
  formId: string | any;
7
7
  formTitle: string;
8
+ submissionMessage?: string;
8
9
  }
9
10
  export interface DatabaseFormInterface {
10
11
  _id: string;
@@ -1,6 +1,7 @@
1
1
  import { AutocapitalizeOptions, ElementTypes, InputDataTypes, InputTypes } from "../formInput";
2
2
  import { OptionSelectTypes } from "../formInput/BasicFormInputInterface";
3
3
  import { InputFileType } from "../formInput/FileUploadInputInterface";
4
+ import { AccountingBasis } from "../formInput/IMscoaAccount";
4
5
  import { MSCOA_INPUT_DEFAULT_MAT_OPTIONS } from "../formInput/MscoaInput";
5
6
  import { RichTextEditorType } from "../formInput/RichTextEditorInput";
6
7
  import { LabelPosition } from "../formInput/ToggleInputInterface";
@@ -769,7 +770,9 @@ export const DefaultInputConfig = {
769
770
  mscoaConfig: {
770
771
  showAllSegments: false,
771
772
  segments: [],
772
- inputs: []
773
+ accountValueLabel: 'SCOAAccount',
774
+ inputs: [],
775
+ accountingBasis: AccountingBasis.Dual,
773
776
  },
774
777
  dataType: InputDataTypes.Object
775
778
  },
@@ -1,7 +1,6 @@
1
- import { ElementTypes, IToggleInput, ITextareaProperties, IDateRangePickerInput, IFileUploadInput, IMultiple, IWorkflowAdjudicationInput } from "../formInput";
1
+ import { ElementTypes, IToggleInput, ITextareaProperties, IDateRangePickerInput, IFileUploadInput, IMultiple, IWorkflowAdjudicationInput, IScoaInput } from "../formInput";
2
2
  import { IFormElementTemplate } from "../formInput/BasicFormInputInterface";
3
3
  import { ISelectInputInterface } from "../formInput/ISelectInputInterface";
4
- import { IMscoaFormInput } from "../formInput/MscoaInput";
5
4
  import { IRichTextEditor } from "../formInput/RichTextEditorInput";
6
5
  import { IWorkflowDocumentPicker } from "../formInput/WorkflowDocumentPicker";
7
6
  import { AllFormInputPrimaryKeys, FormInputKeys, SpecialElementKeys } from "./FormInputKeys";
@@ -131,7 +130,7 @@ export interface DefaultInputConfigInterface {
131
130
  disabled: boolean;
132
131
  illustration: string;
133
132
  properties: Array<FormInputKeys | SpecialElementKeys | AllFormInputPrimaryKeys>;
134
- elementTemplate: IMscoaFormInput;
133
+ elementTemplate: IScoaInput;
135
134
  requiredProperties: Array<FormInputKeys | SpecialElementKeys | AllFormInputPrimaryKeys>;
136
135
  };
137
136
  [ElementTypes.WorkflowDocumentPicker]: {
@@ -94,5 +94,7 @@ export declare enum AllFormInputPrimaryKeys {
94
94
  TrueLabel = "trueLabel",
95
95
  FalseLabel = "falseLabel",
96
96
  OptionSelectType = "optionSelectType",
97
- AllowMultipleSelection = "allowMultipleSelection"
97
+ AllowMultipleSelection = "allowMultipleSelection",
98
+ GroupBy = "groupBy",
99
+ ConditionalInputConfig = "conditionalInputConfig"
98
100
  }
@@ -99,4 +99,6 @@ export var AllFormInputPrimaryKeys;
99
99
  AllFormInputPrimaryKeys["FalseLabel"] = "falseLabel";
100
100
  AllFormInputPrimaryKeys["OptionSelectType"] = "optionSelectType";
101
101
  AllFormInputPrimaryKeys["AllowMultipleSelection"] = "allowMultipleSelection";
102
+ AllFormInputPrimaryKeys["GroupBy"] = "groupBy";
103
+ AllFormInputPrimaryKeys["ConditionalInputConfig"] = "conditionalInputConfig";
102
104
  })(AllFormInputPrimaryKeys || (AllFormInputPrimaryKeys = {}));
@@ -33,7 +33,8 @@ export declare enum ElementEditorTypes {
33
33
  default = "default",
34
34
  DataSourcePicker = "dataSourcePicker",
35
35
  ListLabelConfigEditor = "listLabelConfigEditor",
36
- DecisionGateSettings = "decisionGateSettings"
36
+ DecisionGateSettings = "decisionGateSettings",
37
+ RecordListManager = "recordListManager"
37
38
  }
38
39
  export interface ElementEditorConfigInterface {
39
40
  editorSections: Array<ElementEditorConfigSectionInterface>;
@@ -63,10 +64,12 @@ export interface ElementEditorInnerSectionElementInterface {
63
64
  hint?: string;
64
65
  editType: ElementEditorTypes;
65
66
  deepBind: Array<string>;
67
+ defaultValue?: any;
66
68
  limitTo?: number;
67
69
  additionalTest?: ConfigurationValidTestInterface[];
68
70
  disabled?: ConfigurationValidTestInterface[];
69
71
  fetchOptions?: string[];
72
+ secondaryElementEditorConfig?: Array<ElementEditorConfigSectionInterface>;
70
73
  clearOnChange?: string[][];
71
74
  blurHandle?: BlurHandleTypes;
72
75
  label: string;
@@ -76,7 +79,7 @@ export interface ElementEditorInnerSectionElementInterface {
76
79
  placeholder?: string;
77
80
  options?: Array<{
78
81
  label: string;
79
- value: string;
82
+ value: any;
80
83
  }>;
81
84
  computedErrors?: ValidationError[];
82
85
  min?: number;
@@ -28,6 +28,7 @@ export var ElementEditorTypes;
28
28
  ElementEditorTypes["DataSourcePicker"] = "dataSourcePicker";
29
29
  ElementEditorTypes["ListLabelConfigEditor"] = "listLabelConfigEditor";
30
30
  ElementEditorTypes["DecisionGateSettings"] = "decisionGateSettings";
31
+ ElementEditorTypes["RecordListManager"] = "recordListManager";
31
32
  })(ElementEditorTypes || (ElementEditorTypes = {}));
32
33
  // interface TStringExpressionValidationTest{
33
34
  // expression: string;
@@ -4,6 +4,7 @@ import { AdjudicationSteps, ElementTypes, InputDataTypes, InputPipeTypes, InputT
4
4
  import { DataSources } from "../../formInput/APIDataFetchingConfigurationInterface";
5
5
  import { OptionSelectTypes } from "../../formInput/BasicFormInputInterface";
6
6
  import { InputFileType } from "../../formInput/FileUploadInputInterface";
7
+ import { AccountingBasis } from "../../formInput/IMscoaAccount";
7
8
  import { RichTextEditorType } from "../../formInput/RichTextEditorInput";
8
9
  import { LabelPosition } from "../../formInput/ToggleInputInterface";
9
10
  import { AllFormInputPrimaryKeys, SpecialElementKeys } from "../FormInputKeys";
@@ -171,6 +172,156 @@ export var ElementConfig = {
171
172
  label: 'Handle label',
172
173
  id: "3f056cc9-e639-4db7-aa41-3f96593356b2"
173
174
  },
175
+ {
176
+ name: AllFormInputPrimaryKeys.MscoaConfig,
177
+ deepBind: ['mscoaConfig', 'accountingBasis'],
178
+ editType: ElementEditorTypes.ChipSelect,
179
+ label: 'Select Budget Accounting Basis',
180
+ options: [
181
+ {
182
+ label: 'Performance (Accrual)',
183
+ value: AccountingBasis.Accrual
184
+ },
185
+ {
186
+ label: 'Liquidity (Cash)',
187
+ value: AccountingBasis.Cash
188
+ },
189
+ {
190
+ label: 'Dual (Both)',
191
+ value: AccountingBasis.Dual
192
+ }
193
+ ],
194
+ clearOnChange: [
195
+ [AllFormInputPrimaryKeys.MscoaConfig, 'segments'],
196
+ [AllFormInputPrimaryKeys.MscoaConfig, 'cashSegments'],
197
+ [AllFormInputPrimaryKeys.MscoaConfig, 'showAllSegments']
198
+ ],
199
+ hint: "This choice dictates when funds are recognized: 'Accrual' impacts budgets based on commitments and invoices; 'Cash' restricts budget impact to actual bank movements; 'Dual' tracks both simultaneously for comprehensive reporting.",
200
+ id: "d9ea60b9-653f-4d9c-88bd-f603a589cce0"
201
+ },
202
+ {
203
+ name: AllFormInputPrimaryKeys.MscoaConfig,
204
+ deepBind: ['mscoaConfig', 'accountValueLabel'],
205
+ editType: ElementEditorTypes.ChipSelect,
206
+ label: 'Account value label',
207
+ hint: "Defines the label used to represent account values within the SCOA input, enhancing clarity in financial selections.",
208
+ id: "1f29ce07-4f68-49d8-bb81-b1ab0fc08455",
209
+ options: [{
210
+ "label": "SCOA ID",
211
+ "value": "SCOAid"
212
+ }, {
213
+ "label": "Full Account Number",
214
+ "value": "AccountNumber"
215
+ }, {
216
+ "label": "Account Number",
217
+ "value": "AccountNumberShortened"
218
+ }, {
219
+ "label": "Short Description",
220
+ "value": "ShortDescription"
221
+ }, {
222
+ "label": "Definition Description",
223
+ "value": "DefinitionDescription"
224
+ }, {
225
+ "label": "SCOA Account",
226
+ "value": "SCOAAccount"
227
+ }, {
228
+ "label": "Account Prefix",
229
+ "value": "AccountNumberPrefix"
230
+ }, {
231
+ "label": "Applicable To",
232
+ "value": "ApplicableTo"
233
+ }, {
234
+ "label": "BreakDown Allowed",
235
+ "value": "BreakDownAllowed"
236
+ }, {
237
+ "label": "Parent SCOA ID",
238
+ "value": "ParentSCOAId"
239
+ }, {
240
+ "label": "Posting Level",
241
+ "value": "PostingLevel"
242
+ }, {
243
+ "label": "Principle",
244
+ "value": "Principle"
245
+ }, {
246
+ "label": "SCOA File",
247
+ "value": "SCOAFile"
248
+ }, {
249
+ "label": "SCOA Level",
250
+ "value": "SCOALevel"
251
+ }, {
252
+ "label": "VAT Status",
253
+ "value": "VATStatus"
254
+ }, {
255
+ "label": "A2A",
256
+ "value": "A2A"
257
+ }, {
258
+ "label": "A4",
259
+ "value": "A4"
260
+ }, {
261
+ "label": "A4F",
262
+ "value": "A4F"
263
+ }, {
264
+ "label": "A5",
265
+ "value": "A5"
266
+ }, {
267
+ "label": "A6",
268
+ "value": "A6"
269
+ }, {
270
+ "label": "A6F",
271
+ "value": "A6F"
272
+ }, {
273
+ "label": "A7",
274
+ "value": "A7"
275
+ }, {
276
+ "label": "A8",
277
+ "value": "A8"
278
+ }, {
279
+ "label": "A9",
280
+ "value": "A9"
281
+ }, {
282
+ "label": "IUDF",
283
+ "value": "IUDF"
284
+ }, {
285
+ "label": "MTSF",
286
+ "value": "MTSF"
287
+ }, {
288
+ "label": "NATGRANT",
289
+ "value": "NATGRANT"
290
+ }, {
291
+ "label": "SA1",
292
+ "value": "SA1"
293
+ }, {
294
+ "label": "SA3",
295
+ "value": "SA3"
296
+ }, {
297
+ "label": "SA30",
298
+ "value": "SA30"
299
+ }, {
300
+ "label": "SA34A",
301
+ "value": "SA34A"
302
+ }, {
303
+ "label": "SA34B",
304
+ "value": "SA34B"
305
+ }, {
306
+ "label": "SA34C",
307
+ "value": "SA34C"
308
+ }, {
309
+ "label": "SA34D",
310
+ "value": "SA34D"
311
+ }, {
312
+ "label": "SA34E",
313
+ "value": "SA34E"
314
+ }, {
315
+ "label": "Created At",
316
+ "value": "createdAt"
317
+ }, {
318
+ "label": "Updated At",
319
+ "value": "updatedAt"
320
+ }, {
321
+ "label": "Select",
322
+ "value": "selection"
323
+ }]
324
+ },
174
325
  {
175
326
  name: AllFormInputPrimaryKeys.MscoaConfig,
176
327
  editType: ElementEditorTypes.Toggle,
@@ -178,6 +329,7 @@ export var ElementConfig = {
178
329
  deepBind: ['mscoaConfig', 'showAllSegments'],
179
330
  clearOnChange: [
180
331
  [AllFormInputPrimaryKeys.MscoaConfig, 'segments'],
332
+ [AllFormInputPrimaryKeys.MscoaConfig, 'cashSegments'],
181
333
  ],
182
334
  hint: 'When enabled, allows selection from all Standard Chart of Accounts (SCOA) segments. Disable to limit available segments.',
183
335
  id: "0f78efcc-5477-4202-916a-8a7cf459c017"
@@ -186,11 +338,26 @@ export var ElementConfig = {
186
338
  name: AllFormInputPrimaryKeys.MscoaConfig,
187
339
  deepBind: ['mscoaConfig', 'segments'],
188
340
  editType: ElementEditorTypes.ConfigMscoaSegments,
189
- label: 'Configure MScoa segments',
341
+ label: 'Configure MScoa Accrual segments',
190
342
  fetchOptions: ['mscoaConfig', 'showAllSegments'],
191
343
  hint: "Configure SCOA segments to be used in the input",
192
344
  id: "ba1a5b79-b071-44a6-b39a-bf1c2fafcda5"
193
345
  },
346
+ {
347
+ name: AllFormInputPrimaryKeys.MscoaConfig,
348
+ deepBind: ['mscoaConfig', 'cashSegments'],
349
+ editType: ElementEditorTypes.ConfigMscoaSegments,
350
+ label: 'Configure MScoa Cash segments',
351
+ fetchOptions: ['mscoaConfig', 'showAllSegments'],
352
+ additionalTest: [
353
+ {
354
+ expression: `accountingBasis !== ${AccountingBasis.Accrual}`,
355
+ deepBind: ['mscoaConfig', 'accountingBasis'],
356
+ },
357
+ ],
358
+ hint: "Configure SCOA segments to be When mapping the Cash accounts",
359
+ id: "d9ea60b9-653f-4d9c-88bd-f603a589cce0"
360
+ },
194
361
  {
195
362
  name: AllFormInputPrimaryKeys.MscoaConfig,
196
363
  deepBind: ['mscoaConfig', 'extensionAccountsForSegments'],
@@ -200,15 +367,15 @@ export var ElementConfig = {
200
367
  hint: "Config scoa segments counter account options for segments",
201
368
  id: "634b3c1a-f250-4b1a-8771-999b34882515"
202
369
  },
203
- {
204
- name: AllFormInputPrimaryKeys.MscoaConfig,
205
- deepBind: ['mscoaConfig', 'inputs'],
206
- editType: ElementEditorTypes.ConfigMscoaAdditionalInputs,
207
- label: 'Configure additional inputs',
208
- hint: 'Configure supplementary inputs that extend SCOA segments with additional dimensions. These inputs will be linked to the selected SCOA segments.',
209
- fetchOptions: [],
210
- id: "21cc22c6-efb6-4e7d-b772-56443c82bd11"
211
- },
370
+ // {
371
+ // name: AllFormInputPrimaryKeys.MscoaConfig,
372
+ // deepBind: ['mscoaConfig', 'inputs'],
373
+ // editType: ElementEditorTypes.ConfigMscoaAdditionalInputs,
374
+ // label: 'Configure additional inputs',
375
+ // hint: 'Configure supplementary inputs that extend SCOA segments with additional dimensions. These inputs will be linked to the selected SCOA segments.',
376
+ // fetchOptions: [],
377
+ // id: "21cc22c6-efb6-4e7d-b772-56443c82bd11"
378
+ // },
212
379
  {
213
380
  name: AllFormInputPrimaryKeys.RichTextEditorLibrary,
214
381
  editType: ElementEditorTypes.ChipSelect,
@@ -722,7 +889,7 @@ export var ElementConfig = {
722
889
  id: "ca2cf43b-8614-4a5e-b664-3cf96b9d239f"
723
890
  },
724
891
  {
725
- name: SpecialElementKeys.DefaultValuePipe,
892
+ name: SpecialElementKeys.Default,
726
893
  editType: ElementEditorTypes.ChipSelect,
727
894
  label: 'Format displayed value',
728
895
  hint: "Apply formatting to the displayed value (e.g., currency symbols, date formatting, decimal places) without changing the stored value.",
@@ -731,13 +898,13 @@ export var ElementConfig = {
731
898
  {
732
899
  expression: `type === ${InputTypes.Number}`,
733
900
  deepBind: ['type'],
734
- },
901
+ }
735
902
  ],
736
903
  id: "328e8d2b-86a9-4ccd-8adc-635393c1c3a9",
737
904
  options: Object.values(InputPipeTypes).map((type) => ({ label: type, value: type })),
738
905
  },
739
906
  {
740
- name: SpecialElementKeys.DefaultCurrencySelect,
907
+ name: SpecialElementKeys.Default,
741
908
  editType: ElementEditorTypes.OptionSelect,
742
909
  deepBind: ['pipe', 'param'],
743
910
  label: 'Select currency to apply',
@@ -755,7 +922,7 @@ export var ElementConfig = {
755
922
  ],
756
923
  },
757
924
  {
758
- name: SpecialElementKeys.DefaultValuePipe,
925
+ name: SpecialElementKeys.Default,
759
926
  editType: ElementEditorTypes.OptionSelect,
760
927
  deepBind: ['pipe', 'param'],
761
928
  label: 'Select date format',
@@ -769,7 +936,7 @@ export var ElementConfig = {
769
936
  id: "36b8e1e1-625b-422a-8aa8-b594f3524bcc"
770
937
  },
771
938
  {
772
- name: SpecialElementKeys.DefaultDecimalNumberInput,
939
+ name: SpecialElementKeys.Default,
773
940
  editType: ElementEditorTypes.Input,
774
941
  label: 'Decimal numbers',
775
942
  deepBind: ['pipe', 'param'],
@@ -1,7 +1,7 @@
1
1
  import { Observable } from "rxjs";
2
2
  import { DatabaseFormInterface, FileUploadFn, FormColumnInputs, FormInterface } from "../Form";
3
3
  import { IWorkflowOption } from "../FormBuilder";
4
- import { AdjResponseReviewColumnMapping, IGetTreeResponse, WorkflowAdjudicationScoreSheetValue } from "../formInput";
4
+ import { AccountingBasis, AdjResponseReviewColumnMapping, IGetTreeResponse, ScoaSegmentValue, WorkflowAdjudicationScoreSheetValue } from "../formInput";
5
5
  import { FormListSection } from "../Form/IFormsInitStateInterface";
6
6
  import { IUserSignature } from "../formInput/userSignature";
7
7
  import { PointGroup } from "signature_pad";
@@ -17,12 +17,21 @@ export interface ActionButton {
17
17
  color: string;
18
18
  onClick: () => void;
19
19
  }
20
+ export type BasisValidationError = Record<string, {
21
+ canOveride: boolean;
22
+ accountDimension: string;
23
+ message: string;
24
+ }>;
25
+ export type MscoaValuetValidationErrors = {
26
+ [AccountingBasis.Accrual]?: BasisValidationError;
27
+ [AccountingBasis.Cash]?: BasisValidationError;
28
+ };
20
29
  export interface IStoreFunctions {
21
30
  [x: string]: any;
22
31
  formsCloseButton: ActionButton;
23
32
  formBuilderCloseButton: ActionButton;
24
33
  createForm: (form: FormInterface) => Observable<DatabaseFormInterface>;
25
- updateForm: (form: FormInterface) => Observable<DatabaseFormInterface>;
34
+ updateForm: (form: FormInterface, versionNumber: number) => Observable<DatabaseFormInterface>;
26
35
  archiveForm: (formId: string) => Observable<{
27
36
  message: string;
28
37
  }>;
@@ -43,6 +52,10 @@ export interface IStoreFunctions {
43
52
  getSelectedDocument: (documentId: string) => Observable<any>;
44
53
  getScoaTree: () => Observable<IGetTreeResponse>;
45
54
  getSCOAAccount(SCOAAccount: string): Observable<any>;
55
+ validateMscoaSelection(value: {
56
+ [AccountingBasis.Accrual]?: ScoaSegmentValue;
57
+ [AccountingBasis.Cash]?: ScoaSegmentValue;
58
+ }): Observable<MscoaValuetValidationErrors>;
46
59
  editForm: (formId: string) => void;
47
60
  addNewForm: () => void;
48
61
  saveFormData: (formId: string, data: {
@@ -1 +1 @@
1
- export {};
1
+ import { AccountingBasis } from "../formInput";
@@ -1,2 +1,2 @@
1
- import { ActionButton, DialogConfig, IStoreFunctions } from "./IStoreFunctions";
2
- export { IStoreFunctions, ActionButton, DialogConfig };
1
+ import { ActionButton, BasisValidationError, DialogConfig, IStoreFunctions, MscoaValuetValidationErrors } from "./IStoreFunctions";
2
+ export { IStoreFunctions, ActionButton, DialogConfig, MscoaValuetValidationErrors, BasisValidationError };
@@ -1,3 +1,4 @@
1
+ import { MscoaValuetValidationErrors } from "../environment/IStoreFunctions";
1
2
  import { IBasicFormInput } from "./BasicFormInputInterface";
2
3
  import { ScoaInnerInput } from "./MscoaInput";
3
4
  export interface IVersion {
@@ -52,15 +53,21 @@ export interface ScoaInterface extends IScoaInputConfig {
52
53
  inputId: string;
53
54
  accountTree: ScoaAccountTree;
54
55
  loadingTree: boolean;
56
+ validatingValue: boolean;
55
57
  initiated: boolean;
56
58
  accountTreeKeys: string[] | undefined;
57
- segmentValues: ScoaSegmentValue | undefined;
59
+ segmentValues?: {
60
+ [AccountingBasis.Accrual]?: ScoaSegmentValue;
61
+ [AccountingBasis.Cash]?: ScoaSegmentValue;
62
+ };
63
+ validationErrors: MscoaValuetValidationErrors;
58
64
  getTreeResponse: IGetTreeResponse | null;
59
65
  }
60
66
  export interface ScoaSegmentValue {
61
67
  [key: string]: {
62
68
  debit: IScoaAccount | undefined;
63
69
  credit: IScoaAccount | undefined;
70
+ vatApplicableTo?: string;
64
71
  };
65
72
  }
66
73
  export type ScoaAccountTree = {
@@ -72,20 +79,32 @@ export interface ITableScoaSelectionRow extends IIncludedSegmentConfig {
72
79
  debit: string;
73
80
  credit: string;
74
81
  }
82
+ export declare enum AccountingBasis {
83
+ Accrual = "accrual",
84
+ Cash = "cash",
85
+ Dual = "dual"
86
+ }
75
87
  export interface IIncludedSegmentConfig {
76
88
  segment: string | undefined;
77
89
  customSegment?: string | undefined;
78
90
  label: string;
79
91
  readOnly: boolean;
80
92
  singleSelect: boolean;
93
+ inheritValueFromAccrual?: boolean;
94
+ vatSelectonActive?: boolean;
81
95
  additionalAccounts: string[];
82
96
  segmentExtension: boolean;
83
97
  id: string;
84
98
  }
85
99
  export interface IScoaInputConfig {
86
100
  inputs: ScoaInnerInput[];
101
+ label: string;
102
+ hint?: string;
87
103
  extensionAccountsForSegments?: string[];
104
+ accountingBasis?: AccountingBasis;
88
105
  segments: IIncludedSegmentConfig[] | undefined;
106
+ cashSegments: IIncludedSegmentConfig[] | undefined;
107
+ accountValueLabel: string;
89
108
  showAllSegments: boolean;
90
109
  }
91
110
  export interface IGetTreeResponse {
@@ -1 +1,6 @@
1
- export {};
1
+ export var AccountingBasis;
2
+ (function (AccountingBasis) {
3
+ AccountingBasis["Accrual"] = "accrual";
4
+ AccountingBasis["Cash"] = "cash";
5
+ AccountingBasis["Dual"] = "dual";
6
+ })(AccountingBasis || (AccountingBasis = {}));
@@ -10,6 +10,7 @@ export interface IMultiple extends IBasicFormInput {
10
10
  groupBy?: string[];
11
11
  }
12
12
  export interface IMultipleInputCal {
13
+ id: string;
13
14
  inputId: string;
14
15
  func: CalculationFunctions;
15
16
  }
@@ -2,6 +2,8 @@ import { calculationVariableInterface } from "./calculationVariableInterface";
2
2
  export interface CalculatedFieldRules {
3
3
  formula: string;
4
4
  variables: calculationVariableInterface[];
5
+ decimalPlaces?: number;
6
+ roundingMode?: 'FLOOR' | 'CEIL' | 'ROUND';
5
7
  getFormulaFromAFormInput?: boolean;
6
8
  formControlWithFormula?: string;
7
9
  }
@@ -2,16 +2,16 @@ import { IFolderItem, IPostmanCollection } from "../FormBuilder/postmanCollectio
2
2
  import { IWorkflowDocListCols } from "../FormBuilder/workflowSelectionConfig";
3
3
  import { TreeNode } from "../FormSlide/accessTree";
4
4
  import { APIDataFetchingConfigurationInterface, InputAPIDataId, MongoDbPipeLineConfigInterface } from "./APIDataFetchingConfigurationInterface";
5
- import { AutocapitalizeOptions, AutocompleteOptions, ElementTypes, IBasicFormInput, InputDataTypes, InputPipeTypes, InputTypes, OptionSelectTypes } from "./BasicFormInputInterface";
5
+ import { AutocapitalizeOptions, AutocompleteOptions, ElementTypes, IBasicFormInput, IFormElementTemplate, InputDataTypes, InputPipeTypes, InputTypes, OptionSelectTypes } from "./BasicFormInputInterface";
6
6
  import { IDateRangePickerInput } from "./DateRangePickerInput";
7
7
  import { AllDocumentFileExtensions, AllImageFileExtensions, FileUploadInputValueInterface, IFileUploadInput, InputFileType, UploadTypes } from "./FileUploadInputInterface";
8
8
  import { FormControlCustomValidatorsInterface } from "./FormControlCustomValidatorsInterface";
9
9
  import { FormInputBasicOptionInterface } from "./FormInputBasicOptionInterface";
10
- import { IAccountSegmentTreeKeys, IGetTreeResponse, IIncludedSegmentConfig, IScoaAccount, IScoaInput, IScoaInputConfig, ITableScoaSelectionRow, ScoaAccountTree, ScoaInterface, ScoaSegmentValue } from "./IMscoaAccount";
10
+ import { AccountingBasis, IAccountSegmentTreeKeys, IGetTreeResponse, IIncludedSegmentConfig, IScoaAccount, IScoaInput, IScoaInputConfig, ITableScoaSelectionRow, ScoaAccountTree, ScoaInterface, ScoaSegmentValue } from "./IMscoaAccount";
11
11
  import { ISelectInputInterface } from "./ISelectInputInterface";
12
12
  import { MatDataOptionsInterface } from "./MatDataOptionsInterface";
13
13
  import { IMatrixInput } from "./MatrixInputInterface";
14
- import { MinInputMapInput, MinInputTypes, MinimumInputRequiredInterface } from "./MinimumInputRequiredInterface";
14
+ import { JsDataTypes, MinInputMapInput, MinInputTypes, MinimumInputRequiredInterface } from "./MinimumInputRequiredInterface";
15
15
  import { ScoaInnerInput, ScoreSheetItem } from "./MscoaInput";
16
16
  import { IMultiple, IMultipleInputCal } from "./MultipleInterface";
17
17
  import { TableColumnConfigInterface, TableConfigurationsInterface } from "./TableConfigurationsInterface";
@@ -23,4 +23,4 @@ import { CalculatedFieldRules } from "./calculatedFieldRules";
23
23
  import { CalculationFunctions, calculationVariableInterface } from "./calculationVariableInterface";
24
24
  import { ValidationError, ValidationOptions } from "./schema";
25
25
  import { IUserSignature } from "./userSignature";
26
- export { ElementTypes, InputTypes, InputPipeTypes, AutocapitalizeOptions, AutocompleteOptions, InputDataTypes, MinInputTypes, IBasicFormInput, IFileUploadInput, IDateRangePickerInput, ITextareaProperties, IToggleInput, IMatrixInput, IMultiple, IMultipleInputCal, IScoaInput, TableConfigurationsInterface, TableColumnConfigInterface, FormControlCustomValidatorsInterface, MinimumInputRequiredInterface, MinInputMapInput, CalculatedFieldRules, calculationVariableInterface, APIDataFetchingConfigurationInterface, IGetTreeResponse, CalculationFunctions, TreeNode, IPostmanCollection, IFolderItem, FileUploadInputValueInterface, AllDocumentFileExtensions, AllImageFileExtensions, UploadTypes, InputFileType, IScoaAccount, IScoaInputConfig, ITableScoaSelectionRow, ScoaSegmentValue, IIncludedSegmentConfig, ScoaAccountTree, IUserSignature, ValidationOptions, ValidationError, MatDataOptionsInterface, MongoDbPipeLineConfigInterface, InputAPIDataId, FormInputBasicOptionInterface, ScoaInterface, ScoaInnerInput, IAccountSegmentTreeKeys, IWorkflowDocumentPicker, IWorkflowDocumentPickerConfig, workflowStepStatus, IWorkflowDocListCols, AdjudicationSteps, IWorkflowAdjudicationInput, WorkflowAdjudicationScoreSheetValue, WorkflowAdjudicationMicroFlowReviewValue, WorkflowAdjudicationResponseElectedSupplierSelectionValue, ScoreSheetItem, AdjResponseReviewColumnMapping, OptionSelectTypes, ISelectInputInterface };
26
+ export { ElementTypes, InputTypes, InputPipeTypes, AutocapitalizeOptions, AutocompleteOptions, InputDataTypes, MinInputTypes, IFormElementTemplate, IBasicFormInput, IFileUploadInput, IDateRangePickerInput, ITextareaProperties, IToggleInput, IMatrixInput, IMultiple, IMultipleInputCal, IScoaInput, TableConfigurationsInterface, TableColumnConfigInterface, FormControlCustomValidatorsInterface, MinimumInputRequiredInterface, MinInputMapInput, CalculatedFieldRules, calculationVariableInterface, APIDataFetchingConfigurationInterface, IGetTreeResponse, CalculationFunctions, TreeNode, IPostmanCollection, IFolderItem, FileUploadInputValueInterface, AllDocumentFileExtensions, AllImageFileExtensions, UploadTypes, InputFileType, IScoaAccount, IScoaInputConfig, ITableScoaSelectionRow, ScoaSegmentValue, IIncludedSegmentConfig, AccountingBasis, ScoaAccountTree, IUserSignature, ValidationOptions, ValidationError, MatDataOptionsInterface, MongoDbPipeLineConfigInterface, InputAPIDataId, FormInputBasicOptionInterface, ScoaInterface, ScoaInnerInput, IAccountSegmentTreeKeys, IWorkflowDocumentPicker, IWorkflowDocumentPickerConfig, workflowStepStatus, IWorkflowDocListCols, JsDataTypes, AdjudicationSteps, IWorkflowAdjudicationInput, WorkflowAdjudicationScoreSheetValue, WorkflowAdjudicationMicroFlowReviewValue, WorkflowAdjudicationResponseElectedSupplierSelectionValue, ScoreSheetItem, AdjResponseReviewColumnMapping, OptionSelectTypes, ISelectInputInterface };
@@ -1,9 +1,10 @@
1
1
  import { AutocapitalizeOptions, AutocompleteOptions, ElementTypes, InputDataTypes, InputPipeTypes, InputTypes, OptionSelectTypes } from "./BasicFormInputInterface";
2
2
  import { AllDocumentFileExtensions, AllImageFileExtensions, InputFileType, UploadTypes } from "./FileUploadInputInterface";
3
- import { MinInputTypes } from "./MinimumInputRequiredInterface";
3
+ import { AccountingBasis } from "./IMscoaAccount";
4
+ import { JsDataTypes, MinInputTypes } from "./MinimumInputRequiredInterface";
4
5
  import { AdjudicationSteps } from "./WorkflowAdjudication";
5
6
  import { workflowStepStatus } from "./WorkflowDocumentPicker";
6
7
  import { CalculationFunctions } from "./calculationVariableInterface";
7
8
  export {
8
9
  ///ENUMS
9
- ElementTypes, InputTypes, InputPipeTypes, AutocapitalizeOptions, AutocompleteOptions, InputDataTypes, MinInputTypes, CalculationFunctions, AllDocumentFileExtensions, AllImageFileExtensions, UploadTypes, InputFileType, workflowStepStatus, AdjudicationSteps, OptionSelectTypes };
10
+ ElementTypes, InputTypes, InputPipeTypes, AutocapitalizeOptions, AutocompleteOptions, InputDataTypes, MinInputTypes, CalculationFunctions, AllDocumentFileExtensions, AllImageFileExtensions, UploadTypes, InputFileType, AccountingBasis, workflowStepStatus, JsDataTypes, AdjudicationSteps, OptionSelectTypes };
@@ -31,7 +31,15 @@ export declare enum DocumentLitsLabelConfigInterfaceValueType {
31
31
  string = "string",
32
32
  date = "date",
33
33
  daysAgo = "daysAgo",
34
- systemReference = "systemReference"
34
+ systemReference = "systemReference",
35
+ boolean = "boolean"
36
+ }
37
+ export declare enum ReportTypes {
38
+ Avg = "avg",
39
+ Sum = "sum",
40
+ Lowest = "lowest",
41
+ Highest = "highest",
42
+ Category = "category"
35
43
  }
36
44
  export interface DocumentLitsLabelConfigInterface {
37
45
  label: string;
@@ -39,6 +47,7 @@ export interface DocumentLitsLabelConfigInterface {
39
47
  isHidden?: boolean;
40
48
  stepName: string | null;
41
49
  valueType: DocumentLitsLabelConfigInterfaceValueType;
50
+ reportType?: ReportTypes[];
42
51
  }
43
52
  export interface GridListLabelConfigInterface {
44
53
  labelConfiguration: DocumentLitsLabelConfigInterface[];
@@ -16,4 +16,13 @@ export var DocumentLitsLabelConfigInterfaceValueType;
16
16
  DocumentLitsLabelConfigInterfaceValueType["date"] = "date";
17
17
  DocumentLitsLabelConfigInterfaceValueType["daysAgo"] = "daysAgo";
18
18
  DocumentLitsLabelConfigInterfaceValueType["systemReference"] = "systemReference";
19
+ DocumentLitsLabelConfigInterfaceValueType["boolean"] = "boolean";
19
20
  })(DocumentLitsLabelConfigInterfaceValueType || (DocumentLitsLabelConfigInterfaceValueType = {}));
21
+ export var ReportTypes;
22
+ (function (ReportTypes) {
23
+ ReportTypes["Avg"] = "avg";
24
+ ReportTypes["Sum"] = "sum";
25
+ ReportTypes["Lowest"] = "lowest";
26
+ ReportTypes["Highest"] = "highest";
27
+ ReportTypes["Category"] = "category";
28
+ })(ReportTypes || (ReportTypes = {}));
@@ -1,2 +1,2 @@
1
- import { DocumentLitsLabelConfigInterface, DocumentLitsLabelConfigInterfaceValueType } from "./DocumentSectionConfigurationsInterface";
2
- export { DocumentLitsLabelConfigInterface, DocumentLitsLabelConfigInterfaceValueType };
1
+ import { DocumentLitsLabelConfigInterface, DocumentLitsLabelConfigInterfaceValueType, ReportTypes } from "./DocumentSectionConfigurationsInterface";
2
+ export { DocumentLitsLabelConfigInterface, DocumentLitsLabelConfigInterfaceValueType, ReportTypes };
@@ -1,2 +1,2 @@
1
- import { DocumentLitsLabelConfigInterfaceValueType } from "./DocumentSectionConfigurationsInterface";
2
- export { DocumentLitsLabelConfigInterfaceValueType };
1
+ import { DocumentLitsLabelConfigInterfaceValueType, ReportTypes } from "./DocumentSectionConfigurationsInterface";
2
+ export { DocumentLitsLabelConfigInterfaceValueType, ReportTypes };
@@ -18,6 +18,8 @@ export const calculatedFieldRulesSchema = Joi.object({
18
18
  formula: Joi.string().required(),
19
19
  variables: Joi.array().items(calculationVariableSchema).required(),
20
20
  getFormulaFromAFormInput: Joi.boolean().optional(),
21
+ decimalPlaces: Joi.number().optional(),
22
+ roundingMode: Joi.string().valid('FLOOR', 'CEIL', 'ROUND').optional(),
21
23
  formControlWithFormula: Joi.string().optional()
22
24
  });
23
25
  export function validateCalculatedFieldRules(value) {
@@ -52,6 +52,7 @@ export const baseFormColumnInputsSchema = Joi.object({
52
52
  [AllFormInputPrimaryKeys.TourContent]: Joi.string().optional(),
53
53
  [AllFormInputPrimaryKeys.Spellcheck]: Joi.boolean().optional(),
54
54
  [AllFormInputPrimaryKeys.Pipe]: Joi.object({
55
+ _id: Joi.string().optional(),
55
56
  pipeType: Joi.string().valid(...Object.values(InputPipeTypes)).required(),
56
57
  param: Joi.string().required()
57
58
  }).optional(),
@@ -60,6 +61,7 @@ export const baseFormColumnInputsSchema = Joi.object({
60
61
  [AllFormInputPrimaryKeys.Accept]: Joi.string().optional(),
61
62
  [AllFormInputPrimaryKeys.CalculateListFunctions]: Joi.array().items(Joi.object({
62
63
  id: Joi.string().required(),
64
+ inputId: Joi.string().required(),
63
65
  func: Joi.string().valid(...Object.values(CalculationFunctions)).required(),
64
66
  })).optional(),
65
67
  [AllFormInputPrimaryKeys.HandleLabel]: Joi.string().optional(),
@@ -85,6 +87,8 @@ export const baseFormColumnInputsSchema = Joi.object({
85
87
  emit: Joi.function().required(),
86
88
  canReload: Joi.boolean().required()
87
89
  }).optional(),
90
+ [AllFormInputPrimaryKeys.GroupBy]: Joi.array().items(Joi.string()),
91
+ [AllFormInputPrimaryKeys.ConditionalInputConfig]: Joi.any().optional()
88
92
  }).id('formColumnInputs');
89
93
  const formColumnInputsSchema = baseFormColumnInputsSchema.append({
90
94
  [AllFormInputPrimaryKeys.FormInputs]: Joi.array().items(Joi.link('#formColumnInputs')).optional()
@@ -1,4 +1,5 @@
1
1
  import Joi from 'joi';
2
+ import { AccountingBasis } from '../interfaces/formInput/IMscoaAccount';
2
3
  export const IncludedSegmentConfigSchema = Joi.object({
3
4
  segment: Joi.string(),
4
5
  customSegment: Joi.string().optional(),
@@ -6,12 +7,17 @@ export const IncludedSegmentConfigSchema = Joi.object({
6
7
  readOnly: Joi.boolean().required(),
7
8
  additionalAccounts: Joi.array().items(Joi.string()).optional(),
8
9
  singleSelect: Joi.boolean().required(),
10
+ inheritValueFromAccrual: Joi.boolean().optional(),
11
+ vatSelectonActive: Joi.boolean().optional(),
9
12
  segmentExtension: Joi.boolean().required(),
10
13
  id: Joi.string().required()
11
14
  });
12
15
  export const MscoaInputConfigSchema = Joi.object({
13
16
  inputs: Joi.array().items(Joi.object().pattern(/./, Joi.any())).required(),
14
17
  segments: Joi.array().items(IncludedSegmentConfigSchema).min(1).required(),
18
+ cashSegments: Joi.array().items(IncludedSegmentConfigSchema).optional(),
19
+ accountValueLabel: Joi.string().required(),
20
+ accountingBasis: Joi.string().valid(...Object.values(AccountingBasis)).optional(),
15
21
  extensionAccountsForSegments: Joi.array().items(Joi.string()).optional(),
16
22
  showAllSegments: Joi.boolean().required()
17
23
  });
@@ -1,2 +1,3 @@
1
1
  import * as Joi from 'joi';
2
+ export declare const inputsObservedForChangesSchema: Joi.ObjectSchema<any>;
2
3
  export declare const formControlCustomValidatorSchema: Joi.ObjectSchema<any>;
@@ -1,8 +1,12 @@
1
1
  import * as Joi from 'joi';
2
+ export const inputsObservedForChangesSchema = Joi.object({
3
+ inputId: Joi.string(),
4
+ variable: Joi.string()
5
+ });
2
6
  export const formControlCustomValidatorSchema = Joi.object({
3
7
  id: Joi.string().required(),
4
8
  message: Joi.string().required(),
5
9
  expression: Joi.string().required(),
6
10
  canOverride: Joi.boolean().required(),
7
- inputsObservedForChanges: Joi.array().items(Joi.string()).required()
11
+ inputsObservedForChanges: Joi.array().items(inputsObservedForChangesSchema).required()
8
12
  });
@@ -1,4 +1,4 @@
1
1
  import { validateCalculatedFieldRules } from "./CalculatedFieldRulesSchema";
2
2
  import { formColumnInputsSchema, validateFormColumnInputs, validateFormColumnInputsWithRequired } from "./FormInputSchema";
3
- import { validateApiDataFetchingConfiguration, validateForm, validateFormSlide } from "./FormSchema";
4
- export { formColumnInputsSchema, validateCalculatedFieldRules, validateFormColumnInputs, validateFormSlide, validateFormColumnInputsWithRequired, validateForm, validateApiDataFetchingConfiguration };
3
+ import { DatabaseFormSchema, FormSchema, validateApiDataFetchingConfiguration, validateForm, validateFormSlide } from "./FormSchema";
4
+ export { FormSchema, DatabaseFormSchema, formColumnInputsSchema, validateCalculatedFieldRules, validateFormColumnInputs, validateFormSlide, validateFormColumnInputsWithRequired, validateForm, validateApiDataFetchingConfiguration };
@@ -1,4 +1,4 @@
1
1
  import { validateCalculatedFieldRules } from "./CalculatedFieldRulesSchema";
2
2
  import { formColumnInputsSchema, validateFormColumnInputs, validateFormColumnInputsWithRequired } from "./FormInputSchema";
3
- import { validateApiDataFetchingConfiguration, validateForm, validateFormSlide } from "./FormSchema";
4
- export { formColumnInputsSchema, validateCalculatedFieldRules, validateFormColumnInputs, validateFormSlide, validateFormColumnInputsWithRequired, validateForm, validateApiDataFetchingConfiguration };
3
+ import { DatabaseFormSchema, FormSchema, validateApiDataFetchingConfiguration, validateForm, validateFormSlide } from "./FormSchema";
4
+ export { FormSchema, DatabaseFormSchema, formColumnInputsSchema, validateCalculatedFieldRules, validateFormColumnInputs, validateFormSlide, validateFormColumnInputsWithRequired, validateForm, validateApiDataFetchingConfiguration };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-t-forms-types",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "Typings and interfaces for the ngx-t-forms library for dynamic forms.",
5
5
  "keywords": [
6
6
  "typings",
@@ -55,6 +55,5 @@
55
55
  "typescript": "^5.8.2",
56
56
  "webpack": "^5.98.0",
57
57
  "webpack-dev-server": "^5.2.0"
58
- },
59
- "dependencies": {}
58
+ }
60
59
  }