ngx-t-forms 2.0.7 → 2.0.9

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 (125) hide show
  1. package/fesm2022/{ngx-t-forms-api-value-access-rules.component-Cp0BeYD7.mjs → ngx-t-forms-api-value-access-rules.component-DjZDnTHz.mjs} +11 -11
  2. package/fesm2022/{ngx-t-forms-api-value-access-rules.component-Cp0BeYD7.mjs.map → ngx-t-forms-api-value-access-rules.component-DjZDnTHz.mjs.map} +1 -1
  3. package/fesm2022/ngx-t-forms-api-value-access-rules.component-Zg1ddSDb.mjs +813 -0
  4. package/fesm2022/ngx-t-forms-api-value-access-rules.component-Zg1ddSDb.mjs.map +1 -0
  5. package/fesm2022/{ngx-t-forms-calculated-field-rules.component-C1v-xiGd.mjs → ngx-t-forms-calculated-field-rules.component-E3l7DQo7.mjs} +11 -11
  6. package/fesm2022/{ngx-t-forms-calculated-field-rules.component-C1v-xiGd.mjs.map → ngx-t-forms-calculated-field-rules.component-E3l7DQo7.mjs.map} +1 -1
  7. package/fesm2022/ngx-t-forms-calculated-field-rules.component-ZepKycLR.mjs +532 -0
  8. package/fesm2022/ngx-t-forms-calculated-field-rules.component-ZepKycLR.mjs.map +1 -0
  9. package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-DLnB3R7t.mjs +297 -0
  10. package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-DLnB3R7t.mjs.map +1 -0
  11. package/fesm2022/{ngx-t-forms-config-mscoa-additional-inputs.component-jgXTh0do.mjs → ngx-t-forms-config-mscoa-additional-inputs.component-sOC54w4T.mjs} +9 -9
  12. package/fesm2022/{ngx-t-forms-config-mscoa-additional-inputs.component-jgXTh0do.mjs.map → ngx-t-forms-config-mscoa-additional-inputs.component-sOC54w4T.mjs.map} +1 -1
  13. package/fesm2022/ngx-t-forms-form-input-selector.component-BjwzDiCY.mjs +187 -0
  14. package/fesm2022/ngx-t-forms-form-input-selector.component-BjwzDiCY.mjs.map +1 -0
  15. package/fesm2022/{ngx-t-forms-form-input-selector.component-DbKhNmVM.mjs → ngx-t-forms-form-input-selector.component-CB03sPjA.mjs} +6 -6
  16. package/fesm2022/{ngx-t-forms-form-input-selector.component-DbKhNmVM.mjs.map → ngx-t-forms-form-input-selector.component-CB03sPjA.mjs.map} +1 -1
  17. package/fesm2022/{ngx-t-forms-form-json-view.component-DSnLKnfH.mjs → ngx-t-forms-form-json-view.component-C1AZujJH.mjs} +2 -2
  18. package/fesm2022/{ngx-t-forms-form-json-view.component-DSnLKnfH.mjs.map → ngx-t-forms-form-json-view.component-C1AZujJH.mjs.map} +1 -1
  19. package/fesm2022/ngx-t-forms-form-json-view.component-CqtTYCRH.mjs +28 -0
  20. package/fesm2022/ngx-t-forms-form-json-view.component-CqtTYCRH.mjs.map +1 -0
  21. package/fesm2022/ngx-t-forms-form-section-stepper.component-Ba5WCLzp.mjs +673 -0
  22. package/fesm2022/ngx-t-forms-form-section-stepper.component-Ba5WCLzp.mjs.map +1 -0
  23. package/fesm2022/ngx-t-forms-form-section-stepper.component-C_dciQhe.mjs +225 -0
  24. package/fesm2022/ngx-t-forms-form-section-stepper.component-C_dciQhe.mjs.map +1 -0
  25. package/fesm2022/{ngx-t-forms-forms-builder-menu.component-DQ8JYw6g.mjs → ngx-t-forms-forms-builder-menu.component-CPIcPREp.mjs} +13 -13
  26. package/fesm2022/{ngx-t-forms-forms-builder-menu.component-DQ8JYw6g.mjs.map → ngx-t-forms-forms-builder-menu.component-CPIcPREp.mjs.map} +1 -1
  27. package/fesm2022/ngx-t-forms-forms-builder-menu.component-DbxEBvpt.mjs +735 -0
  28. package/fesm2022/ngx-t-forms-forms-builder-menu.component-DbxEBvpt.mjs.map +1 -0
  29. package/fesm2022/ngx-t-forms-input-editor.component-BnsC-jsN.mjs +445 -0
  30. package/fesm2022/ngx-t-forms-input-editor.component-BnsC-jsN.mjs.map +1 -0
  31. package/fesm2022/{ngx-t-forms-input-editor.component-Gi9MgyHB.mjs → ngx-t-forms-input-editor.component-__grERM8.mjs} +7 -10
  32. package/fesm2022/ngx-t-forms-input-editor.component-__grERM8.mjs.map +1 -0
  33. package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-DS6s98ZX.mjs +111 -0
  34. package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-DS6s98ZX.mjs.map +1 -0
  35. package/fesm2022/{ngx-t-forms-mat-chip-list-editor.component-C2jw_2gf.mjs → ngx-t-forms-mat-chip-list-editor.component-DcdHYqhN.mjs} +2 -3
  36. package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-DcdHYqhN.mjs.map +1 -0
  37. package/fesm2022/{ngx-t-forms-mat-slider-editor.component-D_IMC63r.mjs → ngx-t-forms-mat-slider-editor.component-C9rintm4.mjs} +2 -2
  38. package/fesm2022/{ngx-t-forms-mat-slider-editor.component-D_IMC63r.mjs.map → ngx-t-forms-mat-slider-editor.component-C9rintm4.mjs.map} +1 -1
  39. package/fesm2022/ngx-t-forms-mat-slider-editor.component-ChiiJYK2.mjs +130 -0
  40. package/fesm2022/ngx-t-forms-mat-slider-editor.component-ChiiJYK2.mjs.map +1 -0
  41. package/fesm2022/{ngx-t-forms-mat-slider-toggle-editor.component-DeKGDDuU.mjs → ngx-t-forms-mat-slider-toggle-editor.component-CItK6kXf.mjs} +2 -2
  42. package/fesm2022/{ngx-t-forms-mat-slider-toggle-editor.component-DeKGDDuU.mjs.map → ngx-t-forms-mat-slider-toggle-editor.component-CItK6kXf.mjs.map} +1 -1
  43. package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-DFcLzkSF.mjs +171 -0
  44. package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-DFcLzkSF.mjs.map +1 -0
  45. package/fesm2022/ngx-t-forms-missing-form-configs.component-DNkGCH0e.mjs +104 -0
  46. package/fesm2022/ngx-t-forms-missing-form-configs.component-DNkGCH0e.mjs.map +1 -0
  47. package/fesm2022/{ngx-t-forms-missing-form-configs.component-BvsopeCg.mjs → ngx-t-forms-missing-form-configs.component-Da3SdUn6.mjs} +4 -4
  48. package/fesm2022/{ngx-t-forms-missing-form-configs.component-BvsopeCg.mjs.map → ngx-t-forms-missing-form-configs.component-Da3SdUn6.mjs.map} +1 -1
  49. package/fesm2022/ngx-t-forms-mscoa-segment-config.component-4hrEpLk3.mjs +258 -0
  50. package/fesm2022/ngx-t-forms-mscoa-segment-config.component-4hrEpLk3.mjs.map +1 -0
  51. package/fesm2022/ngx-t-forms-mscoa-segment-config.component-CrHAIRAw.mjs +455 -0
  52. package/fesm2022/ngx-t-forms-mscoa-segment-config.component-CrHAIRAw.mjs.map +1 -0
  53. package/fesm2022/{ngx-t-forms-ngx-t-forms-DtoFU6uQ.mjs → ngx-t-forms-ngx-t-forms-1Roar4qK.mjs} +710 -1294
  54. package/fesm2022/ngx-t-forms-ngx-t-forms-1Roar4qK.mjs.map +1 -0
  55. package/fesm2022/ngx-t-forms-ngx-t-forms-DaAFB-HX.mjs +14694 -0
  56. package/fesm2022/ngx-t-forms-ngx-t-forms-DaAFB-HX.mjs.map +1 -0
  57. package/fesm2022/{ngx-t-forms-pipeline-generator.component-IwmDgCk9.mjs → ngx-t-forms-pipeline-generator.component-BQDykLNH.mjs} +14 -14
  58. package/fesm2022/{ngx-t-forms-pipeline-generator.component-IwmDgCk9.mjs.map → ngx-t-forms-pipeline-generator.component-BQDykLNH.mjs.map} +1 -1
  59. package/fesm2022/ngx-t-forms-pipeline-generator.component-U0d8jQKW.mjs +1362 -0
  60. package/fesm2022/ngx-t-forms-pipeline-generator.component-U0d8jQKW.mjs.map +1 -0
  61. package/fesm2022/{ngx-t-forms-required-inputs.component-DdNLYKY6.mjs → ngx-t-forms-required-inputs.component-BGK3DNu0.mjs} +10 -10
  62. package/fesm2022/{ngx-t-forms-required-inputs.component-DdNLYKY6.mjs.map → ngx-t-forms-required-inputs.component-BGK3DNu0.mjs.map} +1 -1
  63. package/fesm2022/ngx-t-forms-required-inputs.component-S3cbA-zG.mjs +383 -0
  64. package/fesm2022/ngx-t-forms-required-inputs.component-S3cbA-zG.mjs.map +1 -0
  65. package/fesm2022/{ngx-t-forms-rest-api-call-setup.component-DH5GpWKn.mjs → ngx-t-forms-rest-api-call-setup.component-CCaRUSVQ.mjs} +4 -4
  66. package/fesm2022/{ngx-t-forms-rest-api-call-setup.component-DH5GpWKn.mjs.map → ngx-t-forms-rest-api-call-setup.component-CCaRUSVQ.mjs.map} +1 -1
  67. package/fesm2022/ngx-t-forms-rest-api-call-setup.component-DDg4fCFx.mjs +457 -0
  68. package/fesm2022/ngx-t-forms-rest-api-call-setup.component-DDg4fCFx.mjs.map +1 -0
  69. package/fesm2022/{ngx-t-forms-section-report.component-BAddUET-.mjs → ngx-t-forms-section-report.component-C8Ja_G_3.mjs} +5 -5
  70. package/fesm2022/{ngx-t-forms-section-report.component-BAddUET-.mjs.map → ngx-t-forms-section-report.component-C8Ja_G_3.mjs.map} +1 -1
  71. package/fesm2022/ngx-t-forms-section-report.component-C_h0KIR4.mjs +314 -0
  72. package/fesm2022/ngx-t-forms-section-report.component-C_h0KIR4.mjs.map +1 -0
  73. package/fesm2022/ngx-t-forms-selection-options-editor.component-CllhwZ5Y.mjs +231 -0
  74. package/fesm2022/ngx-t-forms-selection-options-editor.component-CllhwZ5Y.mjs.map +1 -0
  75. package/fesm2022/{ngx-t-forms-selection-options-editor.component-CQh-InJ6.mjs → ngx-t-forms-selection-options-editor.component-cYkn1O48.mjs} +6 -6
  76. package/fesm2022/{ngx-t-forms-selection-options-editor.component-CQh-InJ6.mjs.map → ngx-t-forms-selection-options-editor.component-cYkn1O48.mjs.map} +1 -1
  77. package/fesm2022/ngx-t-forms-validators-config.component-BPJZRtjT.mjs +434 -0
  78. package/fesm2022/ngx-t-forms-validators-config.component-BPJZRtjT.mjs.map +1 -0
  79. package/fesm2022/{ngx-t-forms-validators-config.component-SyL_Vln8.mjs → ngx-t-forms-validators-config.component-CGXCCl45.mjs} +8 -8
  80. package/fesm2022/{ngx-t-forms-validators-config.component-SyL_Vln8.mjs.map → ngx-t-forms-validators-config.component-CGXCCl45.mjs.map} +1 -1
  81. package/fesm2022/ngx-t-forms.mjs +1 -1
  82. package/lib/components/form-builder/elements/form-section-stepper/form-section-stepper.component.d.ts +2 -0
  83. package/lib/components/form-builder/elements/form-submissions-config/form-submissions-config.component.d.ts +1 -1
  84. package/lib/components/form-builder/elements/input-element-editor/input-element-editor.component.d.ts +2 -2
  85. package/lib/components/forms/forms.component.d.ts +1 -1
  86. package/lib/components/forms/store/Form-actions-formBuilder.d.ts +1 -0
  87. package/lib/components/forms/store/Form-selectors-FormBuilder.d.ts +1 -1
  88. package/lib/components/forms/store/forms-store.service.d.ts +2 -1
  89. package/lib/components/index.d.ts +2 -1
  90. package/lib/components/t-dynamic-data-edit/elements/mscoa-segment-config/mscoa-segment-config.component.d.ts +5 -9
  91. package/lib/components/t-form-input/elements/mscoa-form-input/elements/account-value/account-value.component.d.ts +3 -3
  92. package/lib/components/t-form-input/elements/mscoa-form-input/elements/mscoa-chart/mscoa-chart.component.d.ts +67 -52
  93. package/lib/components/t-form-input/elements/mscoa-form-input/elements/mscoa-computation/mscoa-computation.component.d.ts +10 -10
  94. package/lib/components/t-form-input/elements/mscoa-form-input/elements/mscoa-reactive-form-field/mscoa-reactive-form-field.component.d.ts +8 -6
  95. package/lib/components/t-form-input/elements/mscoa-form-input/elements/scoa-account-table/scoa-account-table.component.d.ts +8 -8
  96. package/lib/components/t-form-input/elements/mscoa-form-input/elements/scoa-input/scoa-input.component.d.ts +1 -1
  97. package/lib/components/t-form-input/elements/mscoa-form-input/mscoa-form-input.component.d.ts +4 -3
  98. package/lib/components/t-form-input/elements/mscoa-form-input/store/mscoa-actions.d.ts +5 -5
  99. package/lib/components/t-form-input/elements/mscoa-form-input/store/mscoa-component-store.service.d.ts +27 -31
  100. package/lib/components/t-form-input/elements/mscoa-form-input/store/mscoa-effects.d.ts +2 -2
  101. package/lib/components/t-form-input/elements/mscoa-form-input/store/mscoa-selectors.d.ts +20 -24
  102. package/lib/components/t-form-input/elements/multiple-input-input-element/core/multiple-input-table-edit/multiple-input-table-edit.component.d.ts +1 -1
  103. package/lib/components/t-form-input/elements/select-input-element/elements/select-input/select-input.component.d.ts +20 -0
  104. package/lib/components/t-form-input/elements/select-input-element/select-input-element.component.d.ts +0 -3
  105. package/lib/components/t-form-input/t-form-input.component.d.ts +3 -2
  106. package/lib/components/user-form-stepper/user-form-stepper.component.d.ts +5 -0
  107. package/lib/components/workflow-builder/store/workflow-builder-store.service.d.ts +18 -0
  108. package/lib/components/workflow-builder/store/workflowEditorActions.d.ts +4 -0
  109. package/lib/components/workflow-builder/store/workflowEditorEffects.d.ts +2 -0
  110. package/lib/components/workflow-builder/store/workflowEditorSelectors.d.ts +2 -0
  111. package/lib/components/workflow-builder/workflow-builder.component.d.ts +12 -0
  112. package/lib/services/core/t-form-builder/functions/addScoaExtensionInput.d.ts +2 -0
  113. package/lib/services/core/t-form-tower-controller/form-tower-controller.service.d.ts +2 -0
  114. package/lib/services/core/t-form-tower-controller/functions/allFormInputs.d.ts +2 -3
  115. package/lib/services/core/t-form-tower-controller/functions/getAllFunctionTypes.d.ts +2 -0
  116. package/lib/shared/functions/textIconsForUserHints.d.ts +2 -1
  117. package/package.json +3 -2
  118. package/fesm2022/ngx-t-forms-form-section-stepper.component-hnOcnZGc.mjs +0 -220
  119. package/fesm2022/ngx-t-forms-form-section-stepper.component-hnOcnZGc.mjs.map +0 -1
  120. package/fesm2022/ngx-t-forms-input-editor.component-Gi9MgyHB.mjs.map +0 -1
  121. package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-C2jw_2gf.mjs.map +0 -1
  122. package/fesm2022/ngx-t-forms-mscoa-segment-config.component-D_IIYPud.mjs +0 -230
  123. package/fesm2022/ngx-t-forms-mscoa-segment-config.component-D_IIYPud.mjs.map +0 -1
  124. package/fesm2022/ngx-t-forms-ngx-t-forms-DtoFU6uQ.mjs.map +0 -1
  125. package/testForm.d.ts +0 -797
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-t-forms-api-value-access-rules.component-Zg1ddSDb.mjs","sources":["../../../projects/ngx-t-forms/src/lib/shared/functions/searchArray.ts","../../../projects/ngx-t-forms/src/lib/components/t-dynamic-data-edit/elements/api-value-access-rules/elements/data-tree/data-tree.component.html","../../../projects/ngx-t-forms/src/lib/components/t-dynamic-data-edit/elements/api-value-access-rules/elements/data-tree/data-tree.component.ts","../../../projects/ngx-t-forms/src/lib/components/t-dynamic-data-edit/elements/api-value-access-rules/api-value-access-rules.component.html","../../../projects/ngx-t-forms/src/lib/components/t-dynamic-data-edit/elements/api-value-access-rules/api-value-access-rules.component.ts"],"sourcesContent":["export function searchAndOrderArray(\r\n arr: any[],\r\n searchTerm: string,\r\n filterBy: string\r\n): any[] {\r\n // Filter the array based on the search term\r\n const filteredArr = arr.filter((obj) =>\r\n searchTerm\r\n ? obj[filterBy].toLowerCase().includes(searchTerm.toLowerCase())\r\n : true\r\n );\r\n\r\n // Order the filtered array alphabetically by name\r\n const orderedArr = filteredArr.sort((a, b) =>\r\n a[filterBy].localeCompare(b[filterBy])\r\n );\r\n\r\n return orderedArr;\r\n}\r\n","<mat-accordion multi>\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon class=\"title-icon\">dataset_linked</mat-icon>\n Navigate and select data fields for mapping\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"content\">\n <div class=\"tree-instructions\">\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\n <span>Click checkboxes to select fields for mapping. Selected paths will be highlighted.</span>\n </div>\n <mat-divider></mat-divider>\n\n <mat-tree [dataSource]=\"treeClass.dataSource\" \n [treeControl]=\"treeClass.treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodePadding>\n <button disabled class=\"node-spacer\" aria-hidden=\"true\" mat-icon-button>\n\n </button>\n <mat-checkbox (change)=\"update(node)\" [checked]=\"nodeIsChecked(node)\" class=\"node-checkbox\"\n [matTooltip]=\"'Map data field: ' + node.key\">\n <span class=\"node-key\" [attr.aria-label]=\"'Field name: ' + node.key\">{{ node.key }}:</span>\n <span [attr.aria-label]=\"'Field value: ' + node.value\" style=\" white-space: nowrap;\" class=\"node-value\"\n [style.color]=\"getNodeValueColor(node.value)\">\n {{ node.value }}\n </span>\n </mat-checkbox>\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: treeClass.hasChild\" matTreeNodePadding>\n <button style=\"padding: 0px; \n width: 24px;\" mat-icon-button matTreeNodeToggle [attr.aria-label]=\"'Toggle ' + node.key\">\n <mat-icon>\n {{ treeClass.treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n </button>\n <mat-checkbox (change)=\"update(node)\" [checked]=\"nodeIsChecked(node)\" [matTooltip]=\"'Select ' + node.key\">\n <span class=\"node-key\">{{ node.key }}</span>\n </mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n </div>\n </mat-expansion-panel>\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon class=\"title-icon\">rebase_edit</mat-icon>\n Configure and transform your data path\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"content\">\n <div class=\"tree-instructions\" *ngIf=\"treeClass.activePath.length === 0\">\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\n <span>Select a node from the tree above to begin mapping data</span>\n </div>\n <mat-divider></mat-divider>\n <mat-toolbar style=\" height: fit-content; background: inherit;\">\n <div class=\"breadcrumb-container\">\n\n <ng-container *ngFor=\"let path of treeClass.activePath; trackBy: trackByFn; last as isLast; index as i\">\n <button *ngIf=\"!path.inEdit\" matTooltip=\"Click to edit\" (click)=\"setupPath(path)\" mat-button\n [disabled]=\"!path.keyIsArrayIndex\" [color]=\"path.functions.length> 0 ? 'accent' : ''\"\n class=\"breadcrumb-item\">\n <mat-icon>{{ path.keyIsArrayIndex ? 'filter_none' : 'folder' }}</mat-icon>\n <span>{{ path.key }}</span>\n </button>\n\n\n <button *ngIf=\"!!path.inEdit\" matTooltip=\"Currently editing\" (click)=\"removeFunction(path.key)\"\n mat-raised-button color=\"primary\" class=\"breadcrumb-item\">\n <mat-icon>check_circle</mat-icon>\n <span>{{ path.key }}</span>\n </button>\n <mat-icon *ngIf=\"!isLast\" class=\"breadcrumb-separator\">chevron_right</mat-icon>\n </ng-container>\n </div>\n </mat-toolbar>\n <div *ngIf=\"!!hasANodeInEdit()\">\n\n <mat-nav-list>\n\n <ng-container *ngFor=\"let function of this.treeClass.pathInEdit?.functions;index as i\">\n <mat-list-item \n [activated]=\"!!function.inEdit\"\n class=\"functions\" style=\"height: fit-content;\">\n <span matListItemIcon class=\"function-number\" > \n <strong> {{i+1}} </strong>\n </span>\n <a \n\n (click)=\"editFunction(function.id)\"\n \n style=\"font-size: 14px; white-space: nowrap;overflow: hidden;text-overflow: ellipsis;\"\n matListItemTitle> {{ (function.function |titlecase) ||\n 'Function configurations required'}}</a>\n <button mat-icon-button \n (click)=\"removeFunction(function.id)\" matListItemMeta>\n\n <mat-icon [color]=\"function.function && function.expression?'':'warn'\">{{!function.inEdit? 'close':'check_circle'}}</mat-icon>\n </button>\n \n \n </mat-list-item>\n \n <div class=\"function-edit-container\" *ngIf=\"function.inEdit\">\n <mat-divider></mat-divider>\n <mat-form-field style=\" margin-bottom: 8px;\" appearance=\"outline\" *ngIf=\"this.treeClass.pathInEdit?.functions\">\n <mat-label>Array function</mat-label>\n <mat-select matNativeControl [value]=\"getFunctionInEdit()?.function\"\n (selectionChange)=\"functionChanged($event)\" placeholder=\"ChooseFunctionToRun\">\n <mat-option value=\"filter\">filter</mat-option>\n <mat-option value=\"find\">find</mat-option>\n <mat-option value=\"map\">map</mat-option>\n </mat-select>\n <mat-hint>\n Choose a function to run on the array\n </mat-hint>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" *ngIf=\"this.treeClass.pathInEdit?.functions\">\n <mat-label >Condition expression</mat-label>\n <textarea matInput #textarea \n [value]=\"getFunctionInEdit()?.expression\"\n (input)=\"onTextChange($event)\" (focus)=\"onFocus($event)\"\n \n placeholder=\"Enter a validation string for the function\"></textarea>\n <mat-hint>\n {{ showSuggestions ? 'Suggestions are enabled' : 'Enter a condition expression to transform the array' }}\n </mat-hint>\n </mat-form-field>\n <section *ngIf=\"showSuggestions\" \n class=\"showSuggestionContainer\">\n <!-- <mat-toolbar class=\"search-container\" style=\"background: inherit;\">\n \n \n <input type=\"search\" \n placeholder=\"Search api\" \n class=\"search-field\"\n (change)=\"onSearchChange($event)\"> \n \n <mat-icon>\n search\n </mat-icon>\n </mat-toolbar> -->\n <mat-divider></mat-divider>\n <div style=\"padding: 8px;\" class=\"\">\n <div class=\"suggestion-container\">\n <div class=\"suggestion-column\">\n <h5>Logical Operators</h5>\n <div class=\"button-container\">\n <button \n color=\"primary\" \n mat-flat-button *ngFor=\"let method of getMethods()\"\n (click)=\"selectSuggestionInput(method.value)\" class=\"suggestion-button\">\n {{ method.label | titlecase }}\n </button>\n </div>\n </div>\n <div class=\"suggestion-column\">\n <h5>Add Input as a Variable</h5>\n <div class=\"button-container\">\n <button *ngFor=\"let input of getAllInputs()\"\n mat-flat-button\n (click)=\"selectSuggestionInput(input.formControlName)\" class=\"suggestion-button\">\n {{ input.label | titlecase }}\n </button>\n </div>\n </div>\n <!-- <div class=\"suggestion-column\">\n <h5>Array path Object </h5>\n <div class=\"button-container\">\n <button *ngFor=\"let input of getValueVariables()\"\n color=\"accent\"\n mat-flat-button\n (click)=\"selectSuggestionInput(input)\" class=\"suggestion-button\">\n {{ input}}\n </button>\n </div>\n </div> -->\n </div>\n <div class=\"suggestion-container\">\n \n </div>\n \n </div>\n </section>\n \n\n <mat-toolbar style=\"background:none\">\n <span class=\"spacer\"></span>\n\n <button (click)=\"reset()\" mat-flat-button>\n reset\n </button>\n <button (click)=\"saveNodeInEdit()\" [disabled]=\"!function.expression && !function.function\" mat-flat-button\n color=\"primary\">\n save\n </button>\n\n </mat-toolbar>\n </div>\n <mat-divider></mat-divider>\n </ng-container>\n\n </mat-nav-list>\n <ol>\n\n </ol>\n <button (click)=\"addNewFunction()\" mat-button>+ Add function </button>\n </div>\n </div>\n </mat-expansion-panel>\n\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n <mat-icon class=\"title-icon\">dataset</mat-icon>\n Mapped Data Value Based on the Active Path\n </mat-panel-title>\n\n </mat-expansion-panel-header>\n\n <div class=\"content\">\n <mat-divider></mat-divider>\n\n <div style=\"padding: 16px;background: black;\n color: cadetblue; border-radius:8px;min-width:fit-content\">\n <pre>{{getValue|json}}</pre>\n </div>\n </div>\n </mat-expansion-panel>\n\n\n</mat-accordion>","import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\n\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\nimport { TreeComponent } from '../../functions/convertDataToTree';\r\nimport { FlatNode, TreeNode } from 'ngx-t-forms-types';\r\nimport { MatModulesModule } from '../../../../../../shared/modules/mat-modules.module';\r\nimport { searchAndOrderArray } from '../../../../../../shared/functions/searchArray';\r\nimport { FormColumnInputs } from 'ngx-t-forms-types';;\r\nimport { MatSelectChange } from '@angular/material/select';\r\n\r\n\r\n@Component({\r\n selector: 'app-data-tree',\r\n templateUrl: './data-tree.component.html',\r\n styleUrls: ['./data-tree.component.scss'],\r\n standalone: true,\r\n imports: [CommonModule, MatModulesModule, FormsModule]\r\n})\r\nexport class DataTreeComponent implements OnInit, OnChanges {\r\n treeClass!: TreeComponent\r\n @Input() data: any;\r\n @Input() value: TreeNode[] | string = [];\r\n @Input() formInputs:FormColumnInputs[] = []\r\n @Output() pathChanged = new EventEmitter<TreeNode[] | string>()\r\n\r\n constructor() {\r\n this.treeClass = new TreeComponent();\r\n }\r\n _data: any\r\n _value: TreeNode[] | string = []\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['data']) {\r\n if (JSON.stringify(this._data) !== JSON.stringify(changes['data'].currentValue)) {\r\n this._data = changes['data'].currentValue\r\n this.treeClass.computeTreeData(changes['data'].currentValue)\r\n \r\n if (this.value && Array.isArray(this.value) && this.value.length > 0 && 'functions' in (this.value?.[0]||{})) {\r\n this.treeClass.updateStateFromPath(this.value as TreeNode[])\r\n }\r\n }\r\n }\r\n if (changes['value']) {\r\n this.valueChangedSetPath(changes['value'].currentValue)\r\n }\r\n }\r\n ngOnInit() {\r\n\r\n }\r\n\r\n //@ViewChild('textarea', { static: false }) textareaRef!: HTMLTextAreaElement\r\n @ViewChild('textarea', { read: ElementRef, static: false }) textareaElementRef!: ElementRef;\r\n\r\n\r\n showSuggestions = false;\r\n suggestions = ['$option1', '$option2', '$option3', '$custom'];\r\n filteredSuggestions: string[] = [];\r\n cursorPosition = 0;\r\n valueChangedSetPath(newPath: TreeNode[] | string) {\r\n const isSameAsNewPath = typeof newPath === typeof this._value && JSON.stringify(newPath) === JSON.stringify(this._value)\r\n if (!isSameAsNewPath && Array.isArray(newPath)) {\r\n this._value = newPath\r\n this.treeClass.updateStateFromPath(newPath as TreeNode[])\r\n }\r\n }\r\n async onTextChange(event: Event) {\r\n const newValue =(event.target as HTMLInputElement).value;\r\n const functions = this.treeClass.pathInEdit!.functions!.find(f => f.inEdit)\r\n functions!.expression = newValue;\r\n this.treeClass.pathInEdit!.functions.map(f => {\r\n if (f.inEdit) {\r\n return functions\r\n }\r\n return f\r\n })\r\n const textarea = this.textareaElementRef.nativeElement;\r\n this.cursorPosition = textarea.selectionStart || 0;\r\n\r\n const lastChar = newValue[this.cursorPosition - 1];\r\n if (lastChar === '$') {\r\n this.showSuggestions = true;\r\n this.filteredSuggestions = this.suggestions;\r\n } else {\r\n this.showSuggestions = false;\r\n }\r\n }\r\n functionChanged(event:MatSelectChange) {\r\n this.treeClass.functionChanged(event.value)\r\n }\r\n addNewFunction() {\r\n\r\n this.treeClass.addNewFunction()\r\n\r\n }\r\n editFunction(id: string) {\r\n\r\n\r\n this.treeClass.pathInEdit!.functions = this.treeClass.pathInEdit!.functions?.map(f => {\r\n if (f.id === id) {\r\n return { ...f, inEdit: true }\r\n }\r\n return { ...f, inEdit: false }\r\n\r\n })\r\n\r\n }\r\n selectSuggestionInput(suggestion: string) {\r\n\r\n const functions = this.treeClass.pathInEdit!.functions.find(f => f.inEdit) || {} as any\r\n const value = functions?.expression || ''\r\n const beforeCursor = value.slice(0, this.cursorPosition - 1);\r\n const afterCursor = value.slice(this.cursorPosition);\r\n functions.expression = beforeCursor + suggestion + ' ' + afterCursor;\r\n this.treeClass.pathInEdit!.functions.map(f => {\r\n if (f.inEdit) {\r\n return functions\r\n }\r\n return f\r\n })\r\n this.showSuggestions = false;\r\n\r\n const textarea = this.textareaElementRef.nativeElement;\r\n textarea.focus();\r\n const newCursorPosition = this.cursorPosition + suggestion.length;\r\n setTimeout(() => {\r\n textarea.setSelectionRange(newCursorPosition, newCursorPosition);\r\n }, 0);\r\n }\r\n\r\n onFocus(event:FocusEvent) {\r\n const textarea = this.textareaElementRef.nativeElement;\r\n this.cursorPosition = textarea.selectionStart || 0;\r\n }\r\n nodeIsChecked(node: FlatNode) {\r\n return this.treeClass.nodeIsChecked(node)\r\n }\r\n hasANodeInEdit() {\r\n return this.treeClass.hasANodeInEdit()\r\n }\r\n showNode(node: FlatNode) {\r\n return this.treeClass.showNode(node)\r\n }\r\n onSearchChange(event: Event) {\r\n this.optionsSearch = (event.target as HTMLInputElement).value;\r\n\r\n }\r\n\r\n methods = [\r\n // Logical Operators\r\n {\r\n label: 'logical AND (&&)',\r\n value: '&&'\r\n },\r\n {\r\n label: 'logical OR (||)',\r\n value: '||'\r\n },\r\n\r\n // Comparison Operators\r\n {\r\n label: 'strict equality (===)',\r\n value: '==='\r\n },\r\n {\r\n label: 'loose equality (==)',\r\n value: '=='\r\n },\r\n {\r\n label: 'strict inequality (!==)',\r\n value: '!=='\r\n },\r\n {\r\n label: 'loose inequality (!=)',\r\n value: '!='\r\n },\r\n {\r\n label: 'greater than (>)',\r\n value: '>'\r\n },\r\n {\r\n label: 'less than (<)',\r\n value: '<'\r\n },\r\n {\r\n label: 'greater than or equal to (>=)',\r\n value: '>='\r\n },\r\n {\r\n label: 'less than or equal to (<=)',\r\n value: '<='\r\n }\r\n ];\r\n getMethods() {\r\n return searchAndOrderArray(this.methods, this.optionsSearch, 'label');\r\n }\r\n getNodeValueColor(v: any) {\r\n const valueType = typeof v\r\n switch (valueType) {\r\n case 'string':\r\n return '#c56100'\r\n case 'number':\r\n return 'mediumblue'\r\n case 'boolean':\r\n return 'forestgreen'\r\n case 'object':\r\n return '#005959'\r\n default:\r\n return 'currentcolor'\r\n }\r\n }\r\n setupPath(node: TreeNode) {\r\n return this.treeClass.setupPath(node)\r\n }\r\n trackByFn(index: number, node: TreeNode): string {\r\n return node.path.join('.')\r\n }\r\n showValue: boolean = false\r\n optionsSearch!: string\r\n getAllInputs() {\r\n const inputs = this.formInputs\r\n .filter((inp) => !inp.multipleInputInEditId);\r\n return searchAndOrderArray(inputs||[], this.optionsSearch, 'label');\r\n }\r\n getValueVariables(): string[] {\r\n const isObject = typeof this.value === 'object'\r\n if(!this.value){\r\n return []\r\n }\r\n if(!isObject && !!this.value){\r\n return [this.value as any]\r\n }\r\n if(Array.isArray(this.value)){\r\n return this.value.map((v,i) => (i)) as any\r\n }\r\n return Object.keys(this.value)\r\n }\r\n saveNodeInEdit() {\r\n const newP = this.treeClass.saveNodeInEdit()\r\n if(newP){\r\n this.pathChanged.emit(newP)\r\n }\r\n \r\n }\r\n closeEdit() {\r\n this.treeClass.closeEdit()\r\n\r\n\r\n }\r\n reset() {\r\n this.treeClass.resetNode()\r\n }\r\n getFunctionInEdit() {\r\n const node = this.treeClass.pathInEdit\r\n return node?.functions?.find(f => f.inEdit)\r\n }\r\n get getValue (){\r\n return this.treeClass.getValue()\r\n }\r\n removeFunction(id: string) {\r\n this.treeClass.removeFunction(id)\r\n }\r\n update(node: any) {\r\n\r\n const path = this.treeClass.selectNode(node)?.map(p => ({\r\n ...p,\r\n children: undefined,\r\n value: undefined\r\n }))\r\n\r\n\r\n this.pathChanged.emit(path)\r\n }\r\n}\r\n","\r\n\r\n\r\n<section *ngFor=\"let controlName of multipleBind||[]\">\r\n <label [for]=\"controlName\">Map <strong>{{controlName}}</strong></label>\r\n <app-data-tree \r\n [formInputs]=\"formInputs\"\r\n (pathChanged)=\"pathChanged($event,controlName)\" \r\n [data]=\"postmanResponseBody\" [value]=\"computedValue[controlName]||''\" ></app-data-tree>\r\n</section>\r\n\r\n\r\n<app-data-tree \r\n*ngIf=\"!multipleBind\"\r\n(pathChanged)=\"pathChanged($event)\" \r\n [formInputs]=\"formInputs\"\r\n[data]=\"postmanResponseBody\" [value]=\"computedValue\"></app-data-tree>\r\n\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n\r\n Optional,\r\n\r\n Output,\r\n Self,\r\n} from '@angular/core';\r\nimport { TreeNode } from \"ngx-t-forms-types\";\r\nimport { CommonModule } from '@angular/common';\r\nimport { DataTreeComponent } from './elements/data-tree/data-tree.component';\r\nimport { FormColumnInputs } from 'ngx-t-forms-types';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { catchError, Subject, take, tap, throwError } from 'rxjs';\r\nimport { NgControl } from '@angular/forms';\r\nimport { IConfigElementError } from '../../t-dynamic-data-edit.component';\r\nimport { IFolderItem, IGetPostmanCollections, IPostmanCollectionConfig } from \"ngx-t-forms-types\";\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport _ from 'lodash';\r\nimport { flatApiList } from '../postman-collections/functions/convertPostmanCollectionToTree';\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-api-value-access-rules',\r\n templateUrl: './api-value-access-rules.component.html',\r\n styleUrls: ['./api-value-access-rules.component.scss'],\r\n standalone: true,\r\n imports: [CommonModule, DataTreeComponent ],\r\n providers: [{ provide: MatFormFieldControl, useExisting: ApiValueAccessRulesComponent}],\r\n})\r\nexport class ApiValueAccessRulesComponent implements MatFormFieldControl<TreeNode[] | string | {[key:string]:TreeNode[] | string}> {\r\n\r\n\r\n static nextId = 0;\r\n stateChanges = new Subject<void>();\r\n\r\n @HostBinding() id = `app-api-value-access-rules-${ApiValueAccessRulesComponent .nextId++}`;\r\n \r\n placeholder: string = ''\r\n constructor(@Optional() @Self() public ngControl: NgControl, private _elementRef: ElementRef<HTMLElement>,private readonly httpClient: HttpClient) { }\r\n focused: boolean = false;\r\n get empty() {\r\n return !this.value\r\n }\r\n get shouldLabelFloat() {\r\n return this.focused || !this.empty;\r\n }\r\n required: boolean = false;\r\n disabled: boolean = false;\r\nget errorState(): boolean {\r\n const hasError = !!this.ngControl?.control?.errors || (this.errors||[]).length > 0 && this.touched\r\n return !this.value && !!this.required || hasError\r\n }\r\n\r\n controlType?: string | undefined;\r\n autofilled?: boolean | undefined;\r\n userAriaDescribedBy?: string | undefined;\r\n disableAutomaticLabeling?: boolean | undefined;\r\n setDescribedByIds(ids: string[]) {\r\n // Ensure the component view is initialized\r\n if (this._elementRef && this._elementRef.nativeElement) {\r\n const controlElement = this._elementRef.nativeElement.querySelector('.app-api-value-access-rules');\r\n // Check if the controlElement exists before attempting to set its attribute\r\n if (controlElement) {\r\n controlElement.setAttribute('aria-describedby', ids.join(' '));\r\n }\r\n }\r\n }\r\n onContainerClick(event: MouseEvent): void {\r\n this.markAsTouched();\r\n this.stateChanges.next();\r\n }\r\n\r\n touched: boolean = false;\r\n onTouched = () => {};\r\n markAsTouched() {\r\n console.log('markAsTouched') \r\n if (!this.touched) {\r\n this.onTouched();\r\n this.touched = true;\r\n }\r\n } \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // currently mapped value\r\n @Input() multipleBind:string[] | undefined\r\n @Input() errors:IConfigElementError[] |undefined = [];\r\n @Input() value: TreeNode[] | string | {[key:string]:TreeNode[] | string} = [];\r\n @Input() mapToData: any\r\n @Input() formInputs:FormColumnInputs[] = []\r\n @Output() valueChanged = new EventEmitter();\r\n @Output() reload = new EventEmitter();\r\n _postManCollectionConfig: IPostmanCollectionConfig | undefined\r\n @Input() set postmanCollectionConfig(postmanCollectionConfig: IPostmanCollectionConfig | undefined){\r\n if(!_.isEqual(this._postManCollectionConfig,postmanCollectionConfig)){\r\n this._postManCollectionConfig = postmanCollectionConfig\r\n this.initializePostmanService()\r\n }\r\n \r\n }\r\n\r\n get postmanCollectionConfig(): IPostmanCollectionConfig | undefined{\r\n return this._postManCollectionConfig\r\n }\r\n \r\n get computedValue():any{\r\n const invalidType =this.value instanceof Array || typeof this.value === 'string' \r\n if(this.multipleBind && invalidType && !this.value){\r\n return {}\r\n }\r\n return this.value\r\n }\r\n pathChanged(path:TreeNode[]|string,control?:string){\r\n if(!Array.isArray(path)){\r\n return\r\n }\r\n if(!control){\r\n this.valueChanged.emit(path)\r\n return\r\n }\r\n if(this.value instanceof Array || typeof this.value === 'string'){\r\n this.value = {}\r\n }\r\n const newValue = {...this.value }\r\n newValue[control] = path\r\n this.valueChanged.emit(newValue)\r\n }\r\n private isValidConfig(config: IPostmanCollectionConfig | undefined): boolean {\r\n return Boolean(config?.collectionUrl && config?.collectionKey);\r\n }\r\n error: HttpErrorResponse | undefined\r\n loading: boolean = false\r\n postManFolderItems:IFolderItem[] = []\r\n private initializePostmanService(): void {\r\n8\r\n const isValidConfig = this.isValidConfig(this.postmanCollectionConfig)\r\n if (!isValidConfig) {\r\n this.error = new HttpErrorResponse({\r\n error: 'Invalid Postman Collection Config',\r\n })\r\n return\r\n }\r\n const { collectionUrl, collectionKey } = this.postmanCollectionConfig!\r\n \r\n const requestOptions = {\r\n params: {\r\n apikey: collectionKey,\r\n clearSystemHeaders: true\r\n },\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n \r\n }\r\n }\r\n this.loading = true\r\n\r\n this.httpClient.get<IGetPostmanCollections>(\r\n collectionUrl,\r\n requestOptions\r\n ).pipe(\r\n take(1),\r\n tap((data) => {\r\n // To ensure the data can be shown as a tree\r\n this.postManFolderItems= flatApiList(data.collection.item) \r\n \r\n this.error = undefined\r\n this.loading = false\r\n }),\r\n catchError((err: HttpErrorResponse) => {\r\n this.loading = false\r\n this.error = err\r\n console.error(err)\r\n return throwError(err)\r\n })\r\n ).subscribe();\r\n }\r\n \r\n get postmanResponseBody(){\r\n \r\n const {response} = this.postManFolderItems.find((item) => item.id === this.mapToData) ||{}\r\n let responseBody = JSON.parse(response?.[0]?.body || '{}')\r\n return responseBody\r\n }\r\n\r\n}\r\n"],"names":["i1","i2","i3","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i14"],"mappings":"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"}
@@ -1,24 +1,24 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Output, Input, HostBinding, Optional, Self, Component } from '@angular/core';
3
3
  import { v4 } from 'uuid';
4
- import { M as MatModulesModule } from './ngx-t-forms-ngx-t-forms-DtoFU6uQ.mjs';
5
- import * as i2$2 from '@angular/common';
4
+ import { M as MatModulesModule } from './ngx-t-forms-ngx-t-forms-1Roar4qK.mjs';
5
+ import * as i2$1 from '@angular/common';
6
6
  import { CommonModule } from '@angular/common';
7
7
  import * as i1 from '@angular/forms';
8
8
  import { FormsModule } from '@angular/forms';
9
- import { FormInputSelectorComponent } from './ngx-t-forms-form-input-selector.component-DbKhNmVM.mjs';
10
- import * as i4$1 from '@angular/material/form-field';
9
+ import { FormInputSelectorComponent } from './ngx-t-forms-form-input-selector.component-CB03sPjA.mjs';
10
+ import * as i3$2 from '@angular/material/form-field';
11
11
  import { MatFormFieldControl } from '@angular/material/form-field';
12
12
  import { Subject } from 'rxjs';
13
13
  import { CalculationFunctions } from 'ngx-t-forms-types';
14
- import * as i2 from '@angular/material/core';
15
- import * as i2$1 from '@angular/material/button';
16
- import * as i3 from '@angular/material/card';
14
+ import * as i3 from '@angular/material/core';
15
+ import * as i2 from '@angular/material/button';
16
+ import * as i3$1 from '@angular/material/card';
17
17
  import * as i4 from '@angular/material/chips';
18
- import * as i5 from '@angular/material/icon';
18
+ import * as i6 from '@angular/material/icon';
19
19
  import * as i7 from '@angular/material/select';
20
20
  import * as i9 from '@angular/material/toolbar';
21
- import * as i5$1 from '@angular/material/input';
21
+ import * as i12 from '@angular/material/input';
22
22
 
23
23
  class CalculatedFieldRulesComponent {
24
24
  static { this.nextId = 0; }
@@ -277,7 +277,7 @@ class CalculatedFieldRulesComponent {
277
277
  this.showVariableConfig = false;
278
278
  }
279
279
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: CalculatedFieldRulesComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
280
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: CalculatedFieldRulesComponent, isStandalone: true, selector: "app-calculated-field-rules", inputs: { mapToData: "mapToData", value: "value", formInputs: "formInputs", errors: "errors" }, outputs: { valueChange2dWithPath: "valueChange2dWithPath", valueChanged: "valueChanged" }, host: { properties: { "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CalculatedFieldRulesComponent }], ngImport: i0, template: "\r\n<br>\r\n<div *ngIf=\" !!this.value &&!mapToData?.['id'] && !tableMode\" class=\"tree-instructions\">\r\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\r\n <span>\r\n Save the input first to enable calculated field configurations\r\n </span>\r\n</div>\r\n\r\n<section >\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" appearance=\"outline\" >\r\n <mat-label >Equation</mat-label>\r\n <textarea matInput #textarea [(ngModel)]=\"value['formula']\" \r\n (input)=\"formulaChanged($event)\"\r\n placeholder=\"Enter calculation expression\"></textarea>\r\n <mat-hint>\r\n example: ((a+2)/(b-1))*2\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" style=\" margin-bottom: 8px;\" appearance=\"outline\" *ngIf=\"!!value.getFormulaFromAFormInput\">\r\n <mat-label>Equation</mat-label>\r\n <mat-select matNativeControl [value]=\"value.formControlWithFormula\" (selectionChange)=\"linkFormulaSource($event)\"\r\n placeholder=\"select Input with formula\">\r\n @for (input of formInputs; track input.id) {\r\n <mat-option [disabled]=\"\r\n checkIfInputCanBeLinkedToCalVariable(mapToData, input) ||\r\n input.element !== 'select'\" [value]=\"input.formControlName\">{{input.label}}</mat-option>\r\n }\r\n\r\n\r\n </mat-select>\r\n <mat-hint>\r\n Link formula to an input value\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-chip-listbox #chipList aria-label=\"options\">\r\n\r\n <mat-chip *ngFor=\"let variable of (this.value['variables']||[])\" \r\n (click)=\"value['formula'] = value['formula'] +' '+ variable['variable'] \"\r\n (removed)=\"remove(variable)\">\r\n <div [style.color]=\"\r\n variable['tableCell'] ? 'var(--ion-color-purple)' : ''\r\n \" style=\"font-size: 13px\">\r\n {{ variable[\"variable\"] }}\r\n\r\n - {{ variable[\"label\"] }}\r\n <span style=\"opacity: 0.6; padding-left: 5px\" *ngIf=\"variable['function']\">\r\n {{ variable[\"function\"] }}</span>\r\n </div>\r\n\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <mat-chip *ngIf=\"!showVariableConfig\" highlighted=\"true\" color=\"accent\" (click)=\"showVariableConfig = !showVariableConfig\">\r\n <span> {{showVariableConfig?'close Variable edit':'Add a new Variable'}} </span>\r\n <mat-icon matChipTrailingIcon>{{\r\n showVariableConfig\r\n ? 'close'\r\n : 'add'\r\n }}</mat-icon>\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n\r\n @if( showVariableConfig){\r\n <ng-container *ngTemplateOutlet=\"variableConfiguration\">\r\n\r\n </ng-container>\r\n }\r\n\r\n</section>\r\n<ng-template #variableConfiguration>\r\n <mat-card style=\"background: var(--mat-toolbar-container-background-color, var(--mat-app-surface));\">\r\n <div style=\"padding: 8px;\">\r\n <div class=\"tree-instructions\" style=\"background: azure\">\r\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\r\n <span>\r\n <strong>Configure variable </strong><br>\r\n Link a form input to a variable to use in the equation\r\n </span>\r\n </div>\r\n\r\n <lib-form-input-selector \r\n [disabled]=\"!!this.activeVariable['formControlName']\"\r\n [formInputs]=\"numberInputs\" [value]=\"this.activeVariable['inputId']\"\r\n (click)=\"$event.stopPropagation()\" (change)=\"bindInput($event)\"></lib-form-input-selector>\r\n\r\n <ng-container *ngIf=\"this.activeVariable ? !!this.activeVariable['formControlName'] : false\">\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" appearance=\"outline\">\r\n <mat-label >Variable Name</mat-label>\r\n <textarea matInput #textarea (click)=\"$event.stopPropagation()\"\r\n [(ngModel)]=\"this.activeVariable['variable']\"\r\n placeholder=\"enter variable\"></textarea>\r\n <mat-hint>\r\n A variable is an alphabet or term that represents a form input in the equation.\r\n </mat-hint>\r\n </mat-form-field>\r\n @if (activeVariable['parentInputId']) {\r\n <br>\r\n <mat-label > <small>list function ( \u0192 )</small> </mat-label>\r\n <mat-chip-listbox class=\"mat-mdc-chip-set-stacked\" aria-label=\"Calculation function\">\r\n @for (func of allCalculationFunction; track func) {\r\n <mat-chip-option (click)=\"attachFunction($event,func)\" [selected]=\"activeVariable.function === func\">{{func}}</mat-chip-option>\r\n }\r\n </mat-chip-listbox>\r\n \r\n }\r\n \r\n </ng-container>\r\n </div>\r\n\r\n <mat-toolbar class=\"ion-margin-top\" lines=\"none\">\r\n <span class=\"spacer\"></span>\r\n <button mat-flat-button (click)=\"cancelVariableConfig($event)\">\r\n cancel\r\n </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"\r\n !this.activeVariable['formControlName'] ||\r\n !this.activeVariable['variable']\r\n \" (click)=\"saveNewVariable($event)\">\r\n save variable\r\n </button>\r\n\r\n </mat-toolbar>\r\n </mat-card>\r\n</ng-template>", styles: [".labelM{font-size:13px}.tree-instructions{display:flex;align-items:center;gap:8px;padding:12px;background:azure;border-radius:4px;margin-bottom:16px}.info-icon{min-width:38px;margin:8px auto auto}mat-form-field{width:100%;background:azure}.endIcons{height:100%;display:flex!important;align-items:center!important;justify-content:center}mat-chip{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: MatModulesModule }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i4.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: i4.MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i5$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FormInputSelectorComponent, selector: "lib-form-input-selector", inputs: ["errors", "value", "formInputs", "disabled"], outputs: ["change"] }] }); }
280
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.2", type: CalculatedFieldRulesComponent, isStandalone: true, selector: "app-calculated-field-rules", inputs: { mapToData: "mapToData", value: "value", formInputs: "formInputs", errors: "errors" }, outputs: { valueChange2dWithPath: "valueChange2dWithPath", valueChanged: "valueChanged" }, host: { properties: { "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CalculatedFieldRulesComponent }], ngImport: i0, template: "\r\n<br>\r\n<div *ngIf=\" !!this.value &&!mapToData?.['id'] && !tableMode\" class=\"tree-instructions\">\r\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\r\n <span>\r\n Save the input first to enable calculated field configurations\r\n </span>\r\n</div>\r\n\r\n<section >\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" appearance=\"outline\" >\r\n <mat-label >Equation</mat-label>\r\n <textarea matInput #textarea [(ngModel)]=\"value['formula']\" \r\n (input)=\"formulaChanged($event)\"\r\n placeholder=\"Enter calculation expression\"></textarea>\r\n <mat-hint>\r\n example: ((a+2)/(b-1))*2\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" style=\" margin-bottom: 8px;\" appearance=\"outline\" *ngIf=\"!!value.getFormulaFromAFormInput\">\r\n <mat-label>Equation</mat-label>\r\n <mat-select matNativeControl [value]=\"value.formControlWithFormula\" (selectionChange)=\"linkFormulaSource($event)\"\r\n placeholder=\"select Input with formula\">\r\n @for (input of formInputs; track input.id) {\r\n <mat-option [disabled]=\"\r\n checkIfInputCanBeLinkedToCalVariable(mapToData, input) ||\r\n input.element !== 'select'\" [value]=\"input.formControlName\">{{input.label}}</mat-option>\r\n }\r\n\r\n\r\n </mat-select>\r\n <mat-hint>\r\n Link formula to an input value\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-chip-listbox #chipList aria-label=\"options\">\r\n\r\n <mat-chip *ngFor=\"let variable of (this.value['variables']||[])\" \r\n (click)=\"value['formula'] = value['formula'] +' '+ variable['variable'] \"\r\n (removed)=\"remove(variable)\">\r\n <div [style.color]=\"\r\n variable['tableCell'] ? 'var(--ion-color-purple)' : ''\r\n \" style=\"font-size: 13px\">\r\n {{ variable[\"variable\"] }}\r\n\r\n - {{ variable[\"label\"] }}\r\n <span style=\"opacity: 0.6; padding-left: 5px\" *ngIf=\"variable['function']\">\r\n {{ variable[\"function\"] }}</span>\r\n </div>\r\n\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <mat-chip *ngIf=\"!showVariableConfig\" highlighted=\"true\" color=\"accent\" (click)=\"showVariableConfig = !showVariableConfig\">\r\n <span> {{showVariableConfig?'close Variable edit':'Add a new Variable'}} </span>\r\n <mat-icon matChipTrailingIcon>{{\r\n showVariableConfig\r\n ? 'close'\r\n : 'add'\r\n }}</mat-icon>\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n\r\n @if( showVariableConfig){\r\n <ng-container *ngTemplateOutlet=\"variableConfiguration\">\r\n\r\n </ng-container>\r\n }\r\n\r\n</section>\r\n<ng-template #variableConfiguration>\r\n <mat-card style=\"background: var(--mat-toolbar-container-background-color, var(--mat-app-surface));\">\r\n <div style=\"padding: 8px;\">\r\n <div class=\"tree-instructions\" style=\"background: azure\">\r\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\r\n <span>\r\n <strong>Configure variable </strong><br>\r\n Link a form input to a variable to use in the equation\r\n </span>\r\n </div>\r\n\r\n <lib-form-input-selector \r\n [disabled]=\"!!this.activeVariable['formControlName']\"\r\n [formInputs]=\"numberInputs\" [value]=\"this.activeVariable['inputId']\"\r\n (click)=\"$event.stopPropagation()\" (change)=\"bindInput($event)\"></lib-form-input-selector>\r\n\r\n <ng-container *ngIf=\"this.activeVariable ? !!this.activeVariable['formControlName'] : false\">\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" appearance=\"outline\">\r\n <mat-label >Variable Name</mat-label>\r\n <textarea matInput #textarea (click)=\"$event.stopPropagation()\"\r\n [(ngModel)]=\"this.activeVariable['variable']\"\r\n placeholder=\"enter variable\"></textarea>\r\n <mat-hint>\r\n A variable is an alphabet or term that represents a form input in the equation.\r\n </mat-hint>\r\n </mat-form-field>\r\n @if (activeVariable['parentInputId']) {\r\n <br>\r\n <mat-label > <small>list function ( \u0192 )</small> </mat-label>\r\n <mat-chip-listbox class=\"mat-mdc-chip-set-stacked\" aria-label=\"Calculation function\">\r\n @for (func of allCalculationFunction; track func) {\r\n <mat-chip-option (click)=\"attachFunction($event,func)\" [selected]=\"activeVariable.function === func\">{{func}}</mat-chip-option>\r\n }\r\n </mat-chip-listbox>\r\n \r\n }\r\n \r\n </ng-container>\r\n </div>\r\n\r\n <mat-toolbar class=\"ion-margin-top\" lines=\"none\">\r\n <span class=\"spacer\"></span>\r\n <button mat-flat-button (click)=\"cancelVariableConfig($event)\">\r\n cancel\r\n </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"\r\n !this.activeVariable['formControlName'] ||\r\n !this.activeVariable['variable']\r\n \" (click)=\"saveNewVariable($event)\">\r\n save variable\r\n </button>\r\n\r\n </mat-toolbar>\r\n </mat-card>\r\n</ng-template>", styles: [".labelM{font-size:13px}.tree-instructions{display:flex;align-items:center;gap:8px;padding:12px;background:azure;border-radius:4px;margin-bottom:16px}.info-icon{min-width:38px;margin:8px auto auto}mat-form-field{width:100%;background:azure}.endIcons{height:100%;display:flex!important;align-items:center!important;justify-content:center}mat-chip{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: MatModulesModule }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i4.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: i4.MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FormInputSelectorComponent, selector: "lib-form-input-selector", inputs: ["errors", "value", "formInputs", "disabled"], outputs: ["change"] }] }); }
281
281
  }
282
282
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImport: i0, type: CalculatedFieldRulesComponent, decorators: [{
283
283
  type: Component,
@@ -308,4 +308,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.2", ngImpor
308
308
  }] } });
309
309
 
310
310
  export { CalculatedFieldRulesComponent };
311
- //# sourceMappingURL=ngx-t-forms-calculated-field-rules.component-C1v-xiGd.mjs.map
311
+ //# sourceMappingURL=ngx-t-forms-calculated-field-rules.component-E3l7DQo7.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-t-forms-calculated-field-rules.component-C1v-xiGd.mjs","sources":["../../../projects/ngx-t-forms/src/lib/components/t-dynamic-data-edit/elements/calculated-field-rules/calculated-field-rules.component.ts","../../../projects/ngx-t-forms/src/lib/components/t-dynamic-data-edit/elements/calculated-field-rules/calculated-field-rules.component.html"],"sourcesContent":["import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n} from '@angular/core';\r\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { MatModulesModule } from '../../../../shared/modules/mat-modules.module';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CalculatedFieldRules, TableConfigurationsInterface } from 'ngx-t-forms-types';\r\n\r\nimport { FormColumnInputs } from 'ngx-t-forms-types';\r\nimport { FormsModule, NgControl } from '@angular/forms';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { FormInputSelectorComponent } from '../form-input-selector/form-input-selector.component';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { Subject } from 'rxjs';\r\nimport { IConfigElementError } from '../../t-dynamic-data-edit.component';\r\nimport { CalculationFunctions, calculationVariableInterface } from \"ngx-t-forms-types\"\r\n@Component({\r\n selector: 'app-calculated-field-rules',\r\n templateUrl: './calculated-field-rules.component.html',\r\n styleUrls: ['./calculated-field-rules.component.scss'],\r\n standalone: true,\r\n imports: [\r\n MatModulesModule,\r\n CommonModule,\r\n FormsModule,\r\n FormInputSelectorComponent\r\n ],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CalculatedFieldRulesComponent }],\r\n})\r\nexport class CalculatedFieldRulesComponent implements OnInit, MatFormFieldControl<CalculatedFieldRules | undefined> {\r\n\r\n static nextId = 0;\r\n stateChanges = new Subject<void>();\r\n\r\n @HostBinding() id = `app-calculated-field-rules-${CalculatedFieldRulesComponent.nextId++}`;\r\n\r\n placeholder: string = ''\r\n constructor(@Optional() @Self() public ngControl: NgControl, private _elementRef: ElementRef<HTMLElement>,) { }\r\n focused: boolean = false;\r\n get empty() {\r\n return !this.value\r\n }\r\n get shouldLabelFloat() {\r\n return this.focused || !this.empty;\r\n }\r\n required: boolean = false;\r\n disabled: boolean = false;\r\n get errorState(): boolean {\r\n const hasError = !!this.ngControl?.control?.errors || (this.errors || []).length > 0 && this.touched\r\n return !this.value && !!this.required || hasError\r\n }\r\n\r\n controlType?: string | undefined;\r\n autofilled?: boolean | undefined;\r\n userAriaDescribedBy?: string | undefined;\r\n disableAutomaticLabeling?: boolean | undefined;\r\n setDescribedByIds(ids: string[]) {\r\n // Ensure the component view is initialized\r\n if (this._elementRef && this._elementRef.nativeElement) {\r\n const controlElement = this._elementRef.nativeElement.querySelector('.app-calculated-field-rules');\r\n // Check if the controlElement exists before attempting to set its attribute\r\n if (controlElement) {\r\n controlElement.setAttribute('aria-describedby', ids.join(' '));\r\n }\r\n }\r\n }\r\n onContainerClick(event: MouseEvent): void {\r\n this.markAsTouched();\r\n this.stateChanges.next();\r\n }\r\n\r\n touched: boolean = false;\r\n onTouched = () => { };\r\n markAsTouched() {\r\n console.log('markAsTouched')\r\n if (!this.touched) {\r\n this.onTouched();\r\n this.touched = true;\r\n }\r\n }\r\n\r\n\r\n\r\n @Input() mapToData: FormColumnInputs | undefined = undefined;\r\n _value: CalculatedFieldRules = {} as any;\r\n @Input() set value(value: CalculatedFieldRules) {\r\n this._value = value;\r\n }\r\n get value(): CalculatedFieldRules {\r\n return this._value;\r\n }\r\n @Input() formInputs: Array<FormColumnInputs> = []\r\n @Input() errors: IConfigElementError[] | undefined = [];\r\n @Output() valueChange2dWithPath = new EventEmitter<any>();\r\n @Output() valueChanged = new EventEmitter<CalculatedFieldRules | any>();\r\n\r\n\r\n get allCalculationFunction() {\r\n return Object.values(\r\n CalculationFunctions\r\n )\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n applyColTo() {\r\n let i:any = this.formInputs?.find(\r\n (input: any) => input.id === this.activeVariable['inputId']\r\n );\r\n if (i?.element === 'tableSelection') {\r\n return this.selectedInputVariable().tableConfig.displayedColumnsInOrder\r\n } else if (i?.multipleInputInEditId) {\r\n const parentInput = this.formInputs?.find(\r\n (input: any) => input.id === i?.multipleInputInEditId\r\n );\r\n return parentInput?.formInputs\r\n }\r\n\r\n return []\r\n }\r\n get numberInputs() {\r\n return this.formInputs?.filter((input: FormColumnInputs) => input.dataType === 'number' || input.type === 'number')\r\n }\r\n get tableMode(): Boolean {\r\n return !!this.mapToData?.tableConfig\r\n }\r\n get tableConfig(): TableConfigurationsInterface | undefined {\r\n return this.mapToData?.tableConfig\r\n }\r\n\r\n inputIsInItemList(v: FormColumnInputs) {\r\n let i = this.formInputs?.find(\r\n (input: any) => input.formControlName === v['formControlName']\r\n );\r\n\r\n const hasParent = i ? i['multipleInputInEditId'] : false;\r\n\r\n const isInTable = (v as any)['tableCell'];\r\n\r\n return !!hasParent || isInTable;\r\n }\r\n selectedVariableIsTable(): boolean {\r\n const selectedInput:any = this.formInputs?.find(\r\n (inp: { [x: string]: any }) =>\r\n inp['id'] === this.activeVariable['inputId']\r\n );\r\n const isTable = selectedInput\r\n ? selectedInput['element'] === 'tableSelection'\r\n : false;\r\n\r\n\r\n return !!isTable\r\n }\r\n selectedInputVariable(): any {\r\n const selectedInput:any = this.formInputs?.find(\r\n (inp: { [x: string]: any }) =>\r\n inp['formControlName'] === this.activeVariable['formControlName']\r\n );\r\n const isTable = selectedInput\r\n ? selectedInput['element'] === 'tableSelection'\r\n : false;\r\n return isTable ? selectedInput : {};\r\n }\r\n\r\n\r\n checkIfInputCanBeLinkedToCalVariable(\r\n currentInput: FormColumnInputs | undefined,\r\n inputToDisable: { [x: string]: any; formControlName: any }\r\n ) {\r\n if (currentInput?.['formControlName'] === inputToDisable.formControlName) {\r\n return true;\r\n } else {\r\n if (!currentInput?.['multipleInputInEditId']\r\n ) {\r\n return !!inputToDisable['parentInput'] || !!inputToDisable['multipleInputInEditId'];\r\n } else {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n valueChangedPost(event: any) {\r\n this.valueChanged.emit(this.value);\r\n }\r\n activeVariable: any = {} as any;\r\n addVariable() {\r\n if (!this.value?.['variables']) {\r\n this.value = {\r\n ...this.value,\r\n variables: [],\r\n formula: this.value?.formula || ''\r\n }\r\n }\r\n this.value = {\r\n ...this.value,\r\n variables: [...this.value.variables, ({\r\n formControlName: '',\r\n variable: '',\r\n } as any)]\r\n }\r\n }\r\n linkFormulaSource(event: MatSelectChange) {\r\n if (!this.value) {\r\n this.value = {} as any\r\n }\r\n this.value!.formControlWithFormula = event.value\r\n this.value!.formula = undefined as any\r\n this.valueChanged.emit(this.value)\r\n }\r\n showVariableConfig: boolean = false;\r\n bindInput(\r\n inputId: string\r\n ) {\r\n const input = this.formInputs?.find(\r\n (input: any) => input.id === inputId\r\n )\r\n if (!input) return;\r\n if (this.activeVariable['formControlName'] === input['formControlName']) {\r\n return\r\n }\r\n this.activeVariable['formControlName'] = input['formControlName'];\r\n this.activeVariable['label'] = input['label'];\r\n this.activeVariable['inputId'] = input['id']\r\n this.activeVariable['parentInputId'] = input['multipleInputInEditId']\r\n \r\n }\r\n formulaChanged(event: any) {\r\n this.valueChanged.emit(this.value);\r\n }\r\n bindTableCol(event: { stopPropagation: () => void }, col: string) {\r\n this.activeVariable['formControlName'] = col;\r\n this.activeVariable['tableCell'] = true;\r\n\r\n this.activeVariable['label'] = this.tableConfig?.columnsConfig[col].label;\r\n event.stopPropagation();\r\n }\r\n tableFunctionToCol(\r\n event: { stopPropagation: () => void },\r\n col: string | number | any\r\n ) {\r\n if (typeof col === 'object') {\r\n this.activeVariable['applyFunctionToCol'] = col['formControlName'];\r\n this.activeVariable['applyFunctionToLabel'] = col['label'];\r\n } else {\r\n this.activeVariable['applyFunctionToCol'] = col;\r\n\r\n this.activeVariable['applyFunctionToLabel'] =\r\n this.selectedInputVariable()?.tableConfig.columnsConfig[col].label;\r\n }\r\n\r\n event.stopPropagation();\r\n }\r\n filterValuesByThisCol(\r\n event: { stopPropagation: () => void },\r\n col: string\r\n ) {\r\n this.activeVariable['filterValuesByCol'] = col;\r\n this.activeVariable['filterValuesByThisColLabel'] =\r\n this.selectedInputVariable()?.tableConfig.columnsConfig[col].label;\r\n event.stopPropagation();\r\n }\r\n unlick(event: { stopPropagation: () => void }) {\r\n delete (this.activeVariable as any)['formControlName'];\r\n delete (this.activeVariable as any)['label'];\r\n delete this.activeVariable['tableCell'];\r\n event.stopPropagation();\r\n }\r\n unlinkTableFunctionToCol(event: { stopPropagation: () => void }) {\r\n delete this.activeVariable['applyFunctionToCol'];\r\n delete this.activeVariable['applyFunctionToLabel'];\r\n event.stopPropagation();\r\n }\r\n unlinkTableFilter(event: { stopPropagation: () => void }) {\r\n delete this.activeVariable['filterValuesByCol'];\r\n delete this.activeVariable['filterValuesByThisColLabel'];\r\n event.stopPropagation();\r\n }\r\n functions = [\r\n { value: 'avg', label: 'Average' },\r\n { value: 'max', label: 'Maximum' },\r\n { value: 'min', label: 'lowest' },\r\n { value: 'sum', label: 'Sum' },\r\n ];\r\n attachFunction(event: { stopPropagation: () => void }, value: any) {\r\n\r\nif(this.activeVariable['function'] === value){\r\n this.activeVariable['function'] = undefined\r\n this.activeVariable['applyFunctionToCol'] = undefined;\r\n this.activeVariable['applyFunctionToLabel'] = undefined;\r\n\r\n}else{\r\n (this.activeVariable['function'] = value)\r\n this.activeVariable['applyFunctionToCol'] = this.activeVariable['formControlName'];\r\n this.activeVariable['applyFunctionToLabel'] =this.activeVariable['label'];\r\n}\r\n\r\n\r\n event.stopPropagation();\r\n }\r\n saveNewVariable(event: any) {\r\n\r\n if (!this.value?.['variables']) {\r\n this.value = {\r\n ...this.value,\r\n variables: [],\r\n formula: this.value?.formula || ''\r\n }\r\n }\r\n this.activeVariable['id'] = uuidv4();\r\n if (this.inputIsInItemList(this.activeVariable)) {\r\n let i = this.formInputs?.find(\r\n (input: any) =>\r\n input.formControlName === this.activeVariable['formControlName']\r\n );\r\n const hasParent = i ? i['multipleInputInEditId'] : false;\r\n\r\n\r\n this.activeVariable['parentInputId'] =\r\n hasParent && i ? i['multipleInputInEditId'] : undefined;\r\n\r\n this.value = {\r\n ...this.value,\r\n variables: [...this.value['variables'], this.activeVariable],\r\n }\r\n } else {\r\n this.value = {\r\n ...this.value,\r\n variables: [...this.value['variables'], this.activeVariable],\r\n }\r\n }\r\n\r\n this.activeVariable = {} as any;\r\n this.showVariableConfig = false;\r\n this.valueChanged.emit(this.value);\r\n }\r\n remove(variable:calculationVariableInterface) {\r\n this.value = {\r\n ...this.value,\r\n variables: this.value.variables.filter((v:calculationVariableInterface) => v.id !== variable.id)\r\n }\r\n \r\n }\r\n cancelVariableConfig(event: any) {\r\n this.activeVariable = {} as any;\r\n this.showVariableConfig = false;\r\n }\r\n}\r\n","\r\n<br>\r\n<div *ngIf=\" !!this.value &&!mapToData?.['id'] && !tableMode\" class=\"tree-instructions\">\r\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\r\n <span>\r\n Save the input first to enable calculated field configurations\r\n </span>\r\n</div>\r\n\r\n<section >\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" appearance=\"outline\" >\r\n <mat-label >Equation</mat-label>\r\n <textarea matInput #textarea [(ngModel)]=\"value['formula']\" \r\n (input)=\"formulaChanged($event)\"\r\n placeholder=\"Enter calculation expression\"></textarea>\r\n <mat-hint>\r\n example: ((a+2)/(b-1))*2\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" style=\" margin-bottom: 8px;\" appearance=\"outline\" *ngIf=\"!!value.getFormulaFromAFormInput\">\r\n <mat-label>Equation</mat-label>\r\n <mat-select matNativeControl [value]=\"value.formControlWithFormula\" (selectionChange)=\"linkFormulaSource($event)\"\r\n placeholder=\"select Input with formula\">\r\n @for (input of formInputs; track input.id) {\r\n <mat-option [disabled]=\"\r\n checkIfInputCanBeLinkedToCalVariable(mapToData, input) ||\r\n input.element !== 'select'\" [value]=\"input.formControlName\">{{input.label}}</mat-option>\r\n }\r\n\r\n\r\n </mat-select>\r\n <mat-hint>\r\n Link formula to an input value\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-chip-listbox #chipList aria-label=\"options\">\r\n\r\n <mat-chip *ngFor=\"let variable of (this.value['variables']||[])\" \r\n (click)=\"value['formula'] = value['formula'] +' '+ variable['variable'] \"\r\n (removed)=\"remove(variable)\">\r\n <div [style.color]=\"\r\n variable['tableCell'] ? 'var(--ion-color-purple)' : ''\r\n \" style=\"font-size: 13px\">\r\n {{ variable[\"variable\"] }}\r\n\r\n - {{ variable[\"label\"] }}\r\n <span style=\"opacity: 0.6; padding-left: 5px\" *ngIf=\"variable['function']\">\r\n {{ variable[\"function\"] }}</span>\r\n </div>\r\n\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <mat-chip *ngIf=\"!showVariableConfig\" highlighted=\"true\" color=\"accent\" (click)=\"showVariableConfig = !showVariableConfig\">\r\n <span> {{showVariableConfig?'close Variable edit':'Add a new Variable'}} </span>\r\n <mat-icon matChipTrailingIcon>{{\r\n showVariableConfig\r\n ? 'close'\r\n : 'add'\r\n }}</mat-icon>\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n\r\n @if( showVariableConfig){\r\n <ng-container *ngTemplateOutlet=\"variableConfiguration\">\r\n\r\n </ng-container>\r\n }\r\n\r\n</section>\r\n<ng-template #variableConfiguration>\r\n <mat-card style=\"background: var(--mat-toolbar-container-background-color, var(--mat-app-surface));\">\r\n <div style=\"padding: 8px;\">\r\n <div class=\"tree-instructions\" style=\"background: azure\">\r\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\r\n <span>\r\n <strong>Configure variable </strong><br>\r\n Link a form input to a variable to use in the equation\r\n </span>\r\n </div>\r\n\r\n <lib-form-input-selector \r\n [disabled]=\"!!this.activeVariable['formControlName']\"\r\n [formInputs]=\"numberInputs\" [value]=\"this.activeVariable['inputId']\"\r\n (click)=\"$event.stopPropagation()\" (change)=\"bindInput($event)\"></lib-form-input-selector>\r\n\r\n <ng-container *ngIf=\"this.activeVariable ? !!this.activeVariable['formControlName'] : false\">\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" appearance=\"outline\">\r\n <mat-label >Variable Name</mat-label>\r\n <textarea matInput #textarea (click)=\"$event.stopPropagation()\"\r\n [(ngModel)]=\"this.activeVariable['variable']\"\r\n placeholder=\"enter variable\"></textarea>\r\n <mat-hint>\r\n A variable is an alphabet or term that represents a form input in the equation.\r\n </mat-hint>\r\n </mat-form-field>\r\n @if (activeVariable['parentInputId']) {\r\n <br>\r\n <mat-label > <small>list function ( ƒ )</small> </mat-label>\r\n <mat-chip-listbox class=\"mat-mdc-chip-set-stacked\" aria-label=\"Calculation function\">\r\n @for (func of allCalculationFunction; track func) {\r\n <mat-chip-option (click)=\"attachFunction($event,func)\" [selected]=\"activeVariable.function === func\">{{func}}</mat-chip-option>\r\n }\r\n </mat-chip-listbox>\r\n \r\n }\r\n \r\n </ng-container>\r\n </div>\r\n\r\n <mat-toolbar class=\"ion-margin-top\" lines=\"none\">\r\n <span class=\"spacer\"></span>\r\n <button mat-flat-button (click)=\"cancelVariableConfig($event)\">\r\n cancel\r\n </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"\r\n !this.activeVariable['formControlName'] ||\r\n !this.activeVariable['variable']\r\n \" (click)=\"saveNewVariable($event)\">\r\n save variable\r\n </button>\r\n\r\n </mat-toolbar>\r\n </mat-card>\r\n</ng-template>"],"names":["uuidv4","i11"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-t-forms-calculated-field-rules.component-E3l7DQo7.mjs","sources":["../../../projects/ngx-t-forms/src/lib/components/t-dynamic-data-edit/elements/calculated-field-rules/calculated-field-rules.component.ts","../../../projects/ngx-t-forms/src/lib/components/t-dynamic-data-edit/elements/calculated-field-rules/calculated-field-rules.component.html"],"sourcesContent":["import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n} from '@angular/core';\r\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { MatModulesModule } from '../../../../shared/modules/mat-modules.module';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CalculatedFieldRules, TableConfigurationsInterface } from 'ngx-t-forms-types';\r\n\r\nimport { FormColumnInputs } from 'ngx-t-forms-types';\r\nimport { FormsModule, NgControl } from '@angular/forms';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { FormInputSelectorComponent } from '../form-input-selector/form-input-selector.component';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { Subject } from 'rxjs';\r\nimport { IConfigElementError } from '../../t-dynamic-data-edit.component';\r\nimport { CalculationFunctions, calculationVariableInterface } from \"ngx-t-forms-types\"\r\n@Component({\r\n selector: 'app-calculated-field-rules',\r\n templateUrl: './calculated-field-rules.component.html',\r\n styleUrls: ['./calculated-field-rules.component.scss'],\r\n standalone: true,\r\n imports: [\r\n MatModulesModule,\r\n CommonModule,\r\n FormsModule,\r\n FormInputSelectorComponent\r\n ],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CalculatedFieldRulesComponent }],\r\n})\r\nexport class CalculatedFieldRulesComponent implements OnInit, MatFormFieldControl<CalculatedFieldRules | undefined> {\r\n\r\n static nextId = 0;\r\n stateChanges = new Subject<void>();\r\n\r\n @HostBinding() id = `app-calculated-field-rules-${CalculatedFieldRulesComponent.nextId++}`;\r\n\r\n placeholder: string = ''\r\n constructor(@Optional() @Self() public ngControl: NgControl, private _elementRef: ElementRef<HTMLElement>,) { }\r\n focused: boolean = false;\r\n get empty() {\r\n return !this.value\r\n }\r\n get shouldLabelFloat() {\r\n return this.focused || !this.empty;\r\n }\r\n required: boolean = false;\r\n disabled: boolean = false;\r\n get errorState(): boolean {\r\n const hasError = !!this.ngControl?.control?.errors || (this.errors || []).length > 0 && this.touched\r\n return !this.value && !!this.required || hasError\r\n }\r\n\r\n controlType?: string | undefined;\r\n autofilled?: boolean | undefined;\r\n userAriaDescribedBy?: string | undefined;\r\n disableAutomaticLabeling?: boolean | undefined;\r\n setDescribedByIds(ids: string[]) {\r\n // Ensure the component view is initialized\r\n if (this._elementRef && this._elementRef.nativeElement) {\r\n const controlElement = this._elementRef.nativeElement.querySelector('.app-calculated-field-rules');\r\n // Check if the controlElement exists before attempting to set its attribute\r\n if (controlElement) {\r\n controlElement.setAttribute('aria-describedby', ids.join(' '));\r\n }\r\n }\r\n }\r\n onContainerClick(event: MouseEvent): void {\r\n this.markAsTouched();\r\n this.stateChanges.next();\r\n }\r\n\r\n touched: boolean = false;\r\n onTouched = () => { };\r\n markAsTouched() {\r\n console.log('markAsTouched')\r\n if (!this.touched) {\r\n this.onTouched();\r\n this.touched = true;\r\n }\r\n }\r\n\r\n\r\n\r\n @Input() mapToData: FormColumnInputs | undefined = undefined;\r\n _value: CalculatedFieldRules = {} as any;\r\n @Input() set value(value: CalculatedFieldRules) {\r\n this._value = value;\r\n }\r\n get value(): CalculatedFieldRules {\r\n return this._value;\r\n }\r\n @Input() formInputs: Array<FormColumnInputs> = []\r\n @Input() errors: IConfigElementError[] | undefined = [];\r\n @Output() valueChange2dWithPath = new EventEmitter<any>();\r\n @Output() valueChanged = new EventEmitter<CalculatedFieldRules | any>();\r\n\r\n\r\n get allCalculationFunction() {\r\n return Object.values(\r\n CalculationFunctions\r\n )\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n applyColTo() {\r\n let i:any = this.formInputs?.find(\r\n (input: any) => input.id === this.activeVariable['inputId']\r\n );\r\n if (i?.element === 'tableSelection') {\r\n return this.selectedInputVariable().tableConfig.displayedColumnsInOrder\r\n } else if (i?.multipleInputInEditId) {\r\n const parentInput = this.formInputs?.find(\r\n (input: any) => input.id === i?.multipleInputInEditId\r\n );\r\n return parentInput?.formInputs\r\n }\r\n\r\n return []\r\n }\r\n get numberInputs() {\r\n return this.formInputs?.filter((input: FormColumnInputs) => input.dataType === 'number' || input.type === 'number')\r\n }\r\n get tableMode(): Boolean {\r\n return !!this.mapToData?.tableConfig\r\n }\r\n get tableConfig(): TableConfigurationsInterface | undefined {\r\n return this.mapToData?.tableConfig\r\n }\r\n\r\n inputIsInItemList(v: FormColumnInputs) {\r\n let i = this.formInputs?.find(\r\n (input: any) => input.formControlName === v['formControlName']\r\n );\r\n\r\n const hasParent = i ? i['multipleInputInEditId'] : false;\r\n\r\n const isInTable = (v as any)['tableCell'];\r\n\r\n return !!hasParent || isInTable;\r\n }\r\n selectedVariableIsTable(): boolean {\r\n const selectedInput:any = this.formInputs?.find(\r\n (inp: { [x: string]: any }) =>\r\n inp['id'] === this.activeVariable['inputId']\r\n );\r\n const isTable = selectedInput\r\n ? selectedInput['element'] === 'tableSelection'\r\n : false;\r\n\r\n\r\n return !!isTable\r\n }\r\n selectedInputVariable(): any {\r\n const selectedInput:any = this.formInputs?.find(\r\n (inp: { [x: string]: any }) =>\r\n inp['formControlName'] === this.activeVariable['formControlName']\r\n );\r\n const isTable = selectedInput\r\n ? selectedInput['element'] === 'tableSelection'\r\n : false;\r\n return isTable ? selectedInput : {};\r\n }\r\n\r\n\r\n checkIfInputCanBeLinkedToCalVariable(\r\n currentInput: FormColumnInputs | undefined,\r\n inputToDisable: { [x: string]: any; formControlName: any }\r\n ) {\r\n if (currentInput?.['formControlName'] === inputToDisable.formControlName) {\r\n return true;\r\n } else {\r\n if (!currentInput?.['multipleInputInEditId']\r\n ) {\r\n return !!inputToDisable['parentInput'] || !!inputToDisable['multipleInputInEditId'];\r\n } else {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n valueChangedPost(event: any) {\r\n this.valueChanged.emit(this.value);\r\n }\r\n activeVariable: any = {} as any;\r\n addVariable() {\r\n if (!this.value?.['variables']) {\r\n this.value = {\r\n ...this.value,\r\n variables: [],\r\n formula: this.value?.formula || ''\r\n }\r\n }\r\n this.value = {\r\n ...this.value,\r\n variables: [...this.value.variables, ({\r\n formControlName: '',\r\n variable: '',\r\n } as any)]\r\n }\r\n }\r\n linkFormulaSource(event: MatSelectChange) {\r\n if (!this.value) {\r\n this.value = {} as any\r\n }\r\n this.value!.formControlWithFormula = event.value\r\n this.value!.formula = undefined as any\r\n this.valueChanged.emit(this.value)\r\n }\r\n showVariableConfig: boolean = false;\r\n bindInput(\r\n inputId: string\r\n ) {\r\n const input = this.formInputs?.find(\r\n (input: any) => input.id === inputId\r\n )\r\n if (!input) return;\r\n if (this.activeVariable['formControlName'] === input['formControlName']) {\r\n return\r\n }\r\n this.activeVariable['formControlName'] = input['formControlName'];\r\n this.activeVariable['label'] = input['label'];\r\n this.activeVariable['inputId'] = input['id']\r\n this.activeVariable['parentInputId'] = input['multipleInputInEditId']\r\n \r\n }\r\n formulaChanged(event: any) {\r\n this.valueChanged.emit(this.value);\r\n }\r\n bindTableCol(event: { stopPropagation: () => void }, col: string) {\r\n this.activeVariable['formControlName'] = col;\r\n this.activeVariable['tableCell'] = true;\r\n\r\n this.activeVariable['label'] = this.tableConfig?.columnsConfig[col].label;\r\n event.stopPropagation();\r\n }\r\n tableFunctionToCol(\r\n event: { stopPropagation: () => void },\r\n col: string | number | any\r\n ) {\r\n if (typeof col === 'object') {\r\n this.activeVariable['applyFunctionToCol'] = col['formControlName'];\r\n this.activeVariable['applyFunctionToLabel'] = col['label'];\r\n } else {\r\n this.activeVariable['applyFunctionToCol'] = col;\r\n\r\n this.activeVariable['applyFunctionToLabel'] =\r\n this.selectedInputVariable()?.tableConfig.columnsConfig[col].label;\r\n }\r\n\r\n event.stopPropagation();\r\n }\r\n filterValuesByThisCol(\r\n event: { stopPropagation: () => void },\r\n col: string\r\n ) {\r\n this.activeVariable['filterValuesByCol'] = col;\r\n this.activeVariable['filterValuesByThisColLabel'] =\r\n this.selectedInputVariable()?.tableConfig.columnsConfig[col].label;\r\n event.stopPropagation();\r\n }\r\n unlick(event: { stopPropagation: () => void }) {\r\n delete (this.activeVariable as any)['formControlName'];\r\n delete (this.activeVariable as any)['label'];\r\n delete this.activeVariable['tableCell'];\r\n event.stopPropagation();\r\n }\r\n unlinkTableFunctionToCol(event: { stopPropagation: () => void }) {\r\n delete this.activeVariable['applyFunctionToCol'];\r\n delete this.activeVariable['applyFunctionToLabel'];\r\n event.stopPropagation();\r\n }\r\n unlinkTableFilter(event: { stopPropagation: () => void }) {\r\n delete this.activeVariable['filterValuesByCol'];\r\n delete this.activeVariable['filterValuesByThisColLabel'];\r\n event.stopPropagation();\r\n }\r\n functions = [\r\n { value: 'avg', label: 'Average' },\r\n { value: 'max', label: 'Maximum' },\r\n { value: 'min', label: 'lowest' },\r\n { value: 'sum', label: 'Sum' },\r\n ];\r\n attachFunction(event: { stopPropagation: () => void }, value: any) {\r\n\r\nif(this.activeVariable['function'] === value){\r\n this.activeVariable['function'] = undefined\r\n this.activeVariable['applyFunctionToCol'] = undefined;\r\n this.activeVariable['applyFunctionToLabel'] = undefined;\r\n\r\n}else{\r\n (this.activeVariable['function'] = value)\r\n this.activeVariable['applyFunctionToCol'] = this.activeVariable['formControlName'];\r\n this.activeVariable['applyFunctionToLabel'] =this.activeVariable['label'];\r\n}\r\n\r\n\r\n event.stopPropagation();\r\n }\r\n saveNewVariable(event: any) {\r\n\r\n if (!this.value?.['variables']) {\r\n this.value = {\r\n ...this.value,\r\n variables: [],\r\n formula: this.value?.formula || ''\r\n }\r\n }\r\n this.activeVariable['id'] = uuidv4();\r\n if (this.inputIsInItemList(this.activeVariable)) {\r\n let i = this.formInputs?.find(\r\n (input: any) =>\r\n input.formControlName === this.activeVariable['formControlName']\r\n );\r\n const hasParent = i ? i['multipleInputInEditId'] : false;\r\n\r\n\r\n this.activeVariable['parentInputId'] =\r\n hasParent && i ? i['multipleInputInEditId'] : undefined;\r\n\r\n this.value = {\r\n ...this.value,\r\n variables: [...this.value['variables'], this.activeVariable],\r\n }\r\n } else {\r\n this.value = {\r\n ...this.value,\r\n variables: [...this.value['variables'], this.activeVariable],\r\n }\r\n }\r\n\r\n this.activeVariable = {} as any;\r\n this.showVariableConfig = false;\r\n this.valueChanged.emit(this.value);\r\n }\r\n remove(variable:calculationVariableInterface) {\r\n this.value = {\r\n ...this.value,\r\n variables: this.value.variables.filter((v:calculationVariableInterface) => v.id !== variable.id)\r\n }\r\n \r\n }\r\n cancelVariableConfig(event: any) {\r\n this.activeVariable = {} as any;\r\n this.showVariableConfig = false;\r\n }\r\n}\r\n","\r\n<br>\r\n<div *ngIf=\" !!this.value &&!mapToData?.['id'] && !tableMode\" class=\"tree-instructions\">\r\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\r\n <span>\r\n Save the input first to enable calculated field configurations\r\n </span>\r\n</div>\r\n\r\n<section >\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" appearance=\"outline\" >\r\n <mat-label >Equation</mat-label>\r\n <textarea matInput #textarea [(ngModel)]=\"value['formula']\" \r\n (input)=\"formulaChanged($event)\"\r\n placeholder=\"Enter calculation expression\"></textarea>\r\n <mat-hint>\r\n example: ((a+2)/(b-1))*2\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" style=\" margin-bottom: 8px;\" appearance=\"outline\" *ngIf=\"!!value.getFormulaFromAFormInput\">\r\n <mat-label>Equation</mat-label>\r\n <mat-select matNativeControl [value]=\"value.formControlWithFormula\" (selectionChange)=\"linkFormulaSource($event)\"\r\n placeholder=\"select Input with formula\">\r\n @for (input of formInputs; track input.id) {\r\n <mat-option [disabled]=\"\r\n checkIfInputCanBeLinkedToCalVariable(mapToData, input) ||\r\n input.element !== 'select'\" [value]=\"input.formControlName\">{{input.label}}</mat-option>\r\n }\r\n\r\n\r\n </mat-select>\r\n <mat-hint>\r\n Link formula to an input value\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-chip-listbox #chipList aria-label=\"options\">\r\n\r\n <mat-chip *ngFor=\"let variable of (this.value['variables']||[])\" \r\n (click)=\"value['formula'] = value['formula'] +' '+ variable['variable'] \"\r\n (removed)=\"remove(variable)\">\r\n <div [style.color]=\"\r\n variable['tableCell'] ? 'var(--ion-color-purple)' : ''\r\n \" style=\"font-size: 13px\">\r\n {{ variable[\"variable\"] }}\r\n\r\n - {{ variable[\"label\"] }}\r\n <span style=\"opacity: 0.6; padding-left: 5px\" *ngIf=\"variable['function']\">\r\n {{ variable[\"function\"] }}</span>\r\n </div>\r\n\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <mat-chip *ngIf=\"!showVariableConfig\" highlighted=\"true\" color=\"accent\" (click)=\"showVariableConfig = !showVariableConfig\">\r\n <span> {{showVariableConfig?'close Variable edit':'Add a new Variable'}} </span>\r\n <mat-icon matChipTrailingIcon>{{\r\n showVariableConfig\r\n ? 'close'\r\n : 'add'\r\n }}</mat-icon>\r\n </mat-chip>\r\n </mat-chip-listbox>\r\n\r\n @if( showVariableConfig){\r\n <ng-container *ngTemplateOutlet=\"variableConfiguration\">\r\n\r\n </ng-container>\r\n }\r\n\r\n</section>\r\n<ng-template #variableConfiguration>\r\n <mat-card style=\"background: var(--mat-toolbar-container-background-color, var(--mat-app-surface));\">\r\n <div style=\"padding: 8px;\">\r\n <div class=\"tree-instructions\" style=\"background: azure\">\r\n <mat-icon class=\"info-icon\" color=\"primary\">info</mat-icon>\r\n <span>\r\n <strong>Configure variable </strong><br>\r\n Link a form input to a variable to use in the equation\r\n </span>\r\n </div>\r\n\r\n <lib-form-input-selector \r\n [disabled]=\"!!this.activeVariable['formControlName']\"\r\n [formInputs]=\"numberInputs\" [value]=\"this.activeVariable['inputId']\"\r\n (click)=\"$event.stopPropagation()\" (change)=\"bindInput($event)\"></lib-form-input-selector>\r\n\r\n <ng-container *ngIf=\"this.activeVariable ? !!this.activeVariable['formControlName'] : false\">\r\n <mat-form-field [subscriptSizing]=\"'dynamic'\" [floatLabel]=\"'always'\" appearance=\"outline\">\r\n <mat-label >Variable Name</mat-label>\r\n <textarea matInput #textarea (click)=\"$event.stopPropagation()\"\r\n [(ngModel)]=\"this.activeVariable['variable']\"\r\n placeholder=\"enter variable\"></textarea>\r\n <mat-hint>\r\n A variable is an alphabet or term that represents a form input in the equation.\r\n </mat-hint>\r\n </mat-form-field>\r\n @if (activeVariable['parentInputId']) {\r\n <br>\r\n <mat-label > <small>list function ( ƒ )</small> </mat-label>\r\n <mat-chip-listbox class=\"mat-mdc-chip-set-stacked\" aria-label=\"Calculation function\">\r\n @for (func of allCalculationFunction; track func) {\r\n <mat-chip-option (click)=\"attachFunction($event,func)\" [selected]=\"activeVariable.function === func\">{{func}}</mat-chip-option>\r\n }\r\n </mat-chip-listbox>\r\n \r\n }\r\n \r\n </ng-container>\r\n </div>\r\n\r\n <mat-toolbar class=\"ion-margin-top\" lines=\"none\">\r\n <span class=\"spacer\"></span>\r\n <button mat-flat-button (click)=\"cancelVariableConfig($event)\">\r\n cancel\r\n </button>\r\n <button mat-raised-button color=\"primary\" [disabled]=\"\r\n !this.activeVariable['formControlName'] ||\r\n !this.activeVariable['variable']\r\n \" (click)=\"saveNewVariable($event)\">\r\n save variable\r\n </button>\r\n\r\n </mat-toolbar>\r\n </mat-card>\r\n</ng-template>"],"names":["uuidv4","i11"],"mappings":"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"}