ngx-t-forms 2.0.9 → 2.0.11
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.
- package/fesm2022/{ngx-t-forms-api-value-access-rules.component-DjZDnTHz.mjs → ngx-t-forms-api-value-access-rules.component-Cz4ruucP.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-api-value-access-rules.component-DjZDnTHz.mjs.map → ngx-t-forms-api-value-access-rules.component-Cz4ruucP.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-calculated-field-rules.component-E3l7DQo7.mjs → ngx-t-forms-calculated-field-rules.component-DdAzjsV9.mjs} +3 -3
- package/fesm2022/{ngx-t-forms-calculated-field-rules.component-E3l7DQo7.mjs.map → ngx-t-forms-calculated-field-rules.component-DdAzjsV9.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-config-mscoa-additional-inputs.component-sOC54w4T.mjs → ngx-t-forms-config-mscoa-additional-inputs.component-CZglpHAQ.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-config-mscoa-additional-inputs.component-sOC54w4T.mjs.map → ngx-t-forms-config-mscoa-additional-inputs.component-CZglpHAQ.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-form-input-selector.component-CB03sPjA.mjs → ngx-t-forms-form-input-selector.component-D8sg5JiD.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-form-input-selector.component-CB03sPjA.mjs.map → ngx-t-forms-form-input-selector.component-D8sg5JiD.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-form-json-view.component-C1AZujJH.mjs → ngx-t-forms-form-json-view.component-CO7EYgoY.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-form-json-view.component-C1AZujJH.mjs.map → ngx-t-forms-form-json-view.component-CO7EYgoY.mjs.map} +1 -1
- package/fesm2022/ngx-t-forms-form-section-stepper.component-DYfPkzOO.mjs +243 -0
- package/fesm2022/ngx-t-forms-form-section-stepper.component-DYfPkzOO.mjs.map +1 -0
- package/fesm2022/{ngx-t-forms-forms-builder-menu.component-CPIcPREp.mjs → ngx-t-forms-forms-builder-menu.component-Coppm548.mjs} +13 -7
- package/fesm2022/ngx-t-forms-forms-builder-menu.component-Coppm548.mjs.map +1 -0
- package/fesm2022/{ngx-t-forms-input-editor.component-__grERM8.mjs → ngx-t-forms-input-editor.component-BuSjy9Xq.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-input-editor.component-__grERM8.mjs.map → ngx-t-forms-input-editor.component-BuSjy9Xq.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-mat-chip-list-editor.component-DcdHYqhN.mjs → ngx-t-forms-mat-chip-list-editor.component-C1uQVrVP.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-mat-chip-list-editor.component-DcdHYqhN.mjs.map → ngx-t-forms-mat-chip-list-editor.component-C1uQVrVP.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-mat-slider-editor.component-C9rintm4.mjs → ngx-t-forms-mat-slider-editor.component-B0Qcx6y9.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-mat-slider-editor.component-C9rintm4.mjs.map → ngx-t-forms-mat-slider-editor.component-B0Qcx6y9.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-mat-slider-toggle-editor.component-CItK6kXf.mjs → ngx-t-forms-mat-slider-toggle-editor.component-B3N3mb8E.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-mat-slider-toggle-editor.component-CItK6kXf.mjs.map → ngx-t-forms-mat-slider-toggle-editor.component-B3N3mb8E.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-missing-form-configs.component-Da3SdUn6.mjs → ngx-t-forms-missing-form-configs.component-me7NBrdO.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-missing-form-configs.component-Da3SdUn6.mjs.map → ngx-t-forms-missing-form-configs.component-me7NBrdO.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-mscoa-segment-config.component-4hrEpLk3.mjs → ngx-t-forms-mscoa-segment-config.component-BY67rkzl.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-mscoa-segment-config.component-4hrEpLk3.mjs.map → ngx-t-forms-mscoa-segment-config.component-BY67rkzl.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-ngx-t-forms-1Roar4qK.mjs → ngx-t-forms-ngx-t-forms-C6wZyKbR.mjs} +683 -324
- package/fesm2022/ngx-t-forms-ngx-t-forms-C6wZyKbR.mjs.map +1 -0
- package/fesm2022/{ngx-t-forms-pipeline-generator.component-BQDykLNH.mjs → ngx-t-forms-pipeline-generator.component-Bu94_5ji.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-pipeline-generator.component-BQDykLNH.mjs.map → ngx-t-forms-pipeline-generator.component-Bu94_5ji.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-required-inputs.component-BGK3DNu0.mjs → ngx-t-forms-required-inputs.component-BdKBo1bW.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-required-inputs.component-BGK3DNu0.mjs.map → ngx-t-forms-required-inputs.component-BdKBo1bW.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-rest-api-call-setup.component-CCaRUSVQ.mjs → ngx-t-forms-rest-api-call-setup.component-59CnCXEt.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-rest-api-call-setup.component-CCaRUSVQ.mjs.map → ngx-t-forms-rest-api-call-setup.component-59CnCXEt.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-section-report.component-C8Ja_G_3.mjs → ngx-t-forms-section-report.component-DB_5Jx3j.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-section-report.component-C8Ja_G_3.mjs.map → ngx-t-forms-section-report.component-DB_5Jx3j.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-selection-options-editor.component-cYkn1O48.mjs → ngx-t-forms-selection-options-editor.component-B4LtSVfp.mjs} +2 -2
- package/fesm2022/{ngx-t-forms-selection-options-editor.component-cYkn1O48.mjs.map → ngx-t-forms-selection-options-editor.component-B4LtSVfp.mjs.map} +1 -1
- package/fesm2022/{ngx-t-forms-validators-config.component-CGXCCl45.mjs → ngx-t-forms-validators-config.component-CehxpsPR.mjs} +3 -3
- package/fesm2022/{ngx-t-forms-validators-config.component-CGXCCl45.mjs.map → ngx-t-forms-validators-config.component-CehxpsPR.mjs.map} +1 -1
- package/fesm2022/ngx-t-forms.mjs +1 -1
- package/lib/components/form-builder/elements/form-section-stepper/form-section-stepper.component.d.ts +5 -0
- package/lib/components/form-builder/elements/forms-builder-menu/forms-builder-menu.component.d.ts +2 -0
- package/lib/components/form-builder/elements/select-form-template/select-form-template.component.d.ts +7 -2
- package/lib/components/forms/forms.component.d.ts +1 -1
- package/lib/components/t-form-input/elements/Geo-location-form-input/geo-location.component.d.ts +1 -4
- package/lib/components/t-form-input/elements/auto-complete-input-element/auto-complete-input-element.component.d.ts +1 -4
- package/lib/components/t-form-input/elements/auto-complete-input-element/core/auto-complet-reactive-input/auto-complet-reactive-input.component.d.ts +19 -0
- package/lib/components/t-form-input/elements/basic-input-input-element/basic-input-input-element.component.d.ts +1 -4
- package/lib/components/t-form-input/elements/date-picker-input-element/core/date-picker-reactive-input/date-picker-reactive-input.component.d.ts +16 -0
- package/lib/components/t-form-input/elements/date-picker-input-element/date-picker-input-element.component.d.ts +1 -5
- package/lib/components/t-form-input/elements/date-range-picker-input-element/core/date-range-picker-reactive-input/date-range-picker-reactive-input.component.d.ts +17 -0
- package/lib/components/t-form-input/elements/date-range-picker-input-element/date-range-picker-input-element.component.d.ts +22 -5
- package/lib/components/t-form-input/elements/editor-input-element/core/form-input-rich-text-editor/config.d.ts +1 -0
- package/lib/components/t-form-input/elements/editor-input-element/editor-input-element.component.d.ts +1 -4
- package/lib/components/t-form-input/elements/file-upload-input-element/file-upload-input-element.component.d.ts +1 -4
- package/lib/components/t-form-input/elements/image-capture-input-element/image-capture-input-element.component.d.ts +1 -4
- package/lib/components/t-form-input/elements/mscoa-form-input/elements/mscoa-chart/mscoa-chart.component.d.ts +3 -1
- package/lib/components/t-form-input/elements/mscoa-form-input/elements/mscoa-reactive-form-field/mscoa-reactive-form-field.component.d.ts +1 -0
- package/lib/components/t-form-input/elements/mscoa-form-input/mscoa-form-input.component.d.ts +2 -5
- package/lib/components/t-form-input/elements/multiple-input-input-element/core/multiple-input-table/multiple-input-table.component.d.ts +8 -6
- package/lib/components/t-form-input/elements/multiple-input-input-element/multiple-input-input-element.component.d.ts +1 -4
- package/lib/components/t-form-input/elements/select-input-element/elements/select-input/select-input.component.d.ts +1 -0
- package/lib/components/t-form-input/elements/select-input-element/select-input-element.component.d.ts +1 -5
- package/lib/components/t-form-input/elements/select-table-input/select-table-input.component.d.ts +1 -4
- package/lib/components/t-form-input/elements/signature-input-element/signature-input-element.component.d.ts +1 -4
- package/lib/components/t-form-input/elements/textarea-input-element/core/text-area-reactive-input/text-area-reactive-input.component.d.ts +20 -0
- package/lib/components/t-form-input/elements/textarea-input-element/textarea-input-element.component.d.ts +1 -4
- package/lib/components/t-form-input/elements/toggle-input-element/core/toggle/toggle.component.d.ts +1 -0
- package/lib/components/t-form-input/elements/toggle-input-element/toggle-input-element.component.d.ts +1 -4
- package/lib/components/t-form-input/t-form-input.component.d.ts +1 -4
- package/lib/components/t-form-input-status/t-form-input-status.component.d.ts +1 -0
- package/lib/services/core/t-form-controller/function/multipleFormInputsMapValueToFormInputId.d.ts +2 -0
- package/lib/services/core/t-form-section-controller/Functions/commonFormOperations.d.ts +1 -1
- package/lib/services/core/t-form-tower-controller/form-tower-controller.service.d.ts +1 -1
- package/lib/services/core/t-input-controller/functions/baseCustomInput.d.ts +0 -1
- package/package.json +2 -2
- package/fesm2022/ngx-t-forms-api-value-access-rules.component-Zg1ddSDb.mjs +0 -813
- package/fesm2022/ngx-t-forms-api-value-access-rules.component-Zg1ddSDb.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-calculated-field-rules.component-ZepKycLR.mjs +0 -532
- package/fesm2022/ngx-t-forms-calculated-field-rules.component-ZepKycLR.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-DLnB3R7t.mjs +0 -297
- package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-DLnB3R7t.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-form-input-selector.component-BjwzDiCY.mjs +0 -187
- package/fesm2022/ngx-t-forms-form-input-selector.component-BjwzDiCY.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-form-json-view.component-CqtTYCRH.mjs +0 -28
- package/fesm2022/ngx-t-forms-form-json-view.component-CqtTYCRH.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-form-section-stepper.component-Ba5WCLzp.mjs +0 -673
- package/fesm2022/ngx-t-forms-form-section-stepper.component-Ba5WCLzp.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-form-section-stepper.component-C_dciQhe.mjs +0 -225
- package/fesm2022/ngx-t-forms-form-section-stepper.component-C_dciQhe.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-forms-builder-menu.component-CPIcPREp.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-forms-builder-menu.component-DbxEBvpt.mjs +0 -735
- package/fesm2022/ngx-t-forms-forms-builder-menu.component-DbxEBvpt.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-input-editor.component-BnsC-jsN.mjs +0 -445
- package/fesm2022/ngx-t-forms-input-editor.component-BnsC-jsN.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-DS6s98ZX.mjs +0 -111
- package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-DS6s98ZX.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mat-slider-editor.component-ChiiJYK2.mjs +0 -130
- package/fesm2022/ngx-t-forms-mat-slider-editor.component-ChiiJYK2.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-DFcLzkSF.mjs +0 -171
- package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-DFcLzkSF.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-missing-form-configs.component-DNkGCH0e.mjs +0 -104
- package/fesm2022/ngx-t-forms-missing-form-configs.component-DNkGCH0e.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mscoa-segment-config.component-CrHAIRAw.mjs +0 -455
- package/fesm2022/ngx-t-forms-mscoa-segment-config.component-CrHAIRAw.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-ngx-t-forms-1Roar4qK.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-ngx-t-forms-DaAFB-HX.mjs +0 -14694
- package/fesm2022/ngx-t-forms-ngx-t-forms-DaAFB-HX.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-pipeline-generator.component-U0d8jQKW.mjs +0 -1362
- package/fesm2022/ngx-t-forms-pipeline-generator.component-U0d8jQKW.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-required-inputs.component-S3cbA-zG.mjs +0 -383
- package/fesm2022/ngx-t-forms-required-inputs.component-S3cbA-zG.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-rest-api-call-setup.component-DDg4fCFx.mjs +0 -457
- package/fesm2022/ngx-t-forms-rest-api-call-setup.component-DDg4fCFx.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-section-report.component-C_h0KIR4.mjs +0 -314
- package/fesm2022/ngx-t-forms-section-report.component-C_h0KIR4.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-selection-options-editor.component-CllhwZ5Y.mjs +0 -231
- package/fesm2022/ngx-t-forms-selection-options-editor.component-CllhwZ5Y.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-validators-config.component-BPJZRtjT.mjs +0 -434
- package/fesm2022/ngx-t-forms-validators-config.component-BPJZRtjT.mjs.map +0 -1
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, computed, Component, ViewChild, Input } from '@angular/core';
|
|
3
|
-
import { F as FormsStoreService, M as MatModulesModule } from './ngx-t-forms-ngx-t-forms-DaAFB-HX.mjs';
|
|
4
|
-
import * as i4$1 from '@angular/material/sort';
|
|
5
|
-
import { MatSort } from '@angular/material/sort';
|
|
6
|
-
import { MatPaginator } from '@angular/material/paginator';
|
|
7
|
-
import * as i5 from '@angular/material/table';
|
|
8
|
-
import { MatTableDataSource } from '@angular/material/table';
|
|
9
|
-
import * as i2 from '@angular/common';
|
|
10
|
-
import { CommonModule } from '@angular/common';
|
|
11
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
12
|
-
import { ElementTypes, validateFormSlide } from 'ngx-t-forms-types';
|
|
13
|
-
import * as i4 from '@angular/material/chips';
|
|
14
|
-
import * as i6 from '@angular/material/icon';
|
|
15
|
-
import * as i9 from '@angular/material/toolbar';
|
|
16
|
-
|
|
17
|
-
const _c0 = () => [];
|
|
18
|
-
const _c1 = a0 => ({ "color": a0 });
|
|
19
|
-
function SectionReportComponent_div_0_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
-
i0.ɵɵelementStart(0, "div", 19)(1, "mat-icon");
|
|
21
|
-
i0.ɵɵtext(2, "task_alt");
|
|
22
|
-
i0.ɵɵelementEnd();
|
|
23
|
-
i0.ɵɵtext(3, " Initialized ");
|
|
24
|
-
i0.ɵɵelementEnd();
|
|
25
|
-
} }
|
|
26
|
-
function SectionReportComponent_div_0_th_14_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
-
i0.ɵɵelement(0, "th", 20);
|
|
28
|
-
} }
|
|
29
|
-
function SectionReportComponent_div_0_td_15_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
-
i0.ɵɵelementStart(0, "td", 21)(1, "mat-icon", 22);
|
|
31
|
-
i0.ɵɵtext(2);
|
|
32
|
-
i0.ɵɵelementEnd()();
|
|
33
|
-
} if (rf & 2) {
|
|
34
|
-
const row_r1 = ctx.$implicit;
|
|
35
|
-
i0.ɵɵadvance();
|
|
36
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c1, row_r1.color));
|
|
37
|
-
i0.ɵɵadvance();
|
|
38
|
-
i0.ɵɵtextInterpolate(row_r1.icon);
|
|
39
|
-
} }
|
|
40
|
-
function SectionReportComponent_div_0_th_17_Template(rf, ctx) { if (rf & 1) {
|
|
41
|
-
i0.ɵɵelementStart(0, "th", 23);
|
|
42
|
-
i0.ɵɵtext(1, "description");
|
|
43
|
-
i0.ɵɵelementEnd();
|
|
44
|
-
} }
|
|
45
|
-
function SectionReportComponent_div_0_td_18_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
-
i0.ɵɵelementStart(0, "td", 21);
|
|
47
|
-
i0.ɵɵtext(1);
|
|
48
|
-
i0.ɵɵelementEnd();
|
|
49
|
-
} if (rf & 2) {
|
|
50
|
-
const row_r2 = ctx.$implicit;
|
|
51
|
-
i0.ɵɵadvance();
|
|
52
|
-
i0.ɵɵtextInterpolate(row_r2.description);
|
|
53
|
-
} }
|
|
54
|
-
function SectionReportComponent_div_0_th_20_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
-
i0.ɵɵelementStart(0, "th", 23);
|
|
56
|
-
i0.ɵɵtext(1, "Type");
|
|
57
|
-
i0.ɵɵelementEnd();
|
|
58
|
-
} }
|
|
59
|
-
function SectionReportComponent_div_0_td_21_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
-
i0.ɵɵelementStart(0, "td", 21);
|
|
61
|
-
i0.ɵɵtext(1);
|
|
62
|
-
i0.ɵɵelementEnd();
|
|
63
|
-
} if (rf & 2) {
|
|
64
|
-
const row_r3 = ctx.$implicit;
|
|
65
|
-
i0.ɵɵadvance();
|
|
66
|
-
i0.ɵɵtextInterpolate(row_r3.name);
|
|
67
|
-
} }
|
|
68
|
-
function SectionReportComponent_div_0_th_23_Template(rf, ctx) { if (rf & 1) {
|
|
69
|
-
i0.ɵɵelementStart(0, "th", 23);
|
|
70
|
-
i0.ɵɵtext(1, "Value");
|
|
71
|
-
i0.ɵɵelementEnd();
|
|
72
|
-
} }
|
|
73
|
-
function SectionReportComponent_div_0_td_24_Template(rf, ctx) { if (rf & 1) {
|
|
74
|
-
i0.ɵɵelementStart(0, "td", 21);
|
|
75
|
-
i0.ɵɵtext(1);
|
|
76
|
-
i0.ɵɵelementEnd();
|
|
77
|
-
} if (rf & 2) {
|
|
78
|
-
const row_r4 = ctx.$implicit;
|
|
79
|
-
i0.ɵɵadvance();
|
|
80
|
-
i0.ɵɵtextInterpolate(row_r4.value);
|
|
81
|
-
} }
|
|
82
|
-
function SectionReportComponent_div_0_th_26_Template(rf, ctx) { if (rf & 1) {
|
|
83
|
-
i0.ɵɵelementStart(0, "th", 20);
|
|
84
|
-
i0.ɵɵtext(1, "Details");
|
|
85
|
-
i0.ɵɵelementEnd();
|
|
86
|
-
} }
|
|
87
|
-
function SectionReportComponent_div_0_td_27_mat_chip_set_1_mat_chip_1_Template(rf, ctx) { if (rf & 1) {
|
|
88
|
-
i0.ɵɵelementStart(0, "mat-chip", 26);
|
|
89
|
-
i0.ɵɵtext(1);
|
|
90
|
-
i0.ɵɵelementEnd();
|
|
91
|
-
} if (rf & 2) {
|
|
92
|
-
const detail_r5 = ctx.$implicit;
|
|
93
|
-
i0.ɵɵadvance();
|
|
94
|
-
i0.ɵɵtextInterpolate1(" ", detail_r5, " ");
|
|
95
|
-
} }
|
|
96
|
-
function SectionReportComponent_div_0_td_27_mat_chip_set_1_Template(rf, ctx) { if (rf & 1) {
|
|
97
|
-
i0.ɵɵelementStart(0, "mat-chip-set");
|
|
98
|
-
i0.ɵɵtemplate(1, SectionReportComponent_div_0_td_27_mat_chip_set_1_mat_chip_1_Template, 2, 1, "mat-chip", 25);
|
|
99
|
-
i0.ɵɵelementEnd();
|
|
100
|
-
} if (rf & 2) {
|
|
101
|
-
const row_r6 = i0.ɵɵnextContext().$implicit;
|
|
102
|
-
i0.ɵɵadvance();
|
|
103
|
-
i0.ɵɵproperty("ngForOf", row_r6.details);
|
|
104
|
-
} }
|
|
105
|
-
function SectionReportComponent_div_0_td_27_Template(rf, ctx) { if (rf & 1) {
|
|
106
|
-
i0.ɵɵelementStart(0, "td", 21);
|
|
107
|
-
i0.ɵɵtemplate(1, SectionReportComponent_div_0_td_27_mat_chip_set_1_Template, 2, 1, "mat-chip-set", 24);
|
|
108
|
-
i0.ɵɵelementEnd();
|
|
109
|
-
} if (rf & 2) {
|
|
110
|
-
const row_r6 = ctx.$implicit;
|
|
111
|
-
i0.ɵɵadvance();
|
|
112
|
-
i0.ɵɵproperty("ngIf", row_r6.details == null ? null : row_r6.details.length);
|
|
113
|
-
} }
|
|
114
|
-
function SectionReportComponent_div_0_tr_28_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
-
i0.ɵɵelement(0, "tr", 27);
|
|
116
|
-
} }
|
|
117
|
-
function SectionReportComponent_div_0_tr_29_Template(rf, ctx) { if (rf & 1) {
|
|
118
|
-
i0.ɵɵelement(0, "tr", 28);
|
|
119
|
-
} }
|
|
120
|
-
function SectionReportComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
121
|
-
i0.ɵɵelementStart(0, "div", 1)(1, "mat-toolbar", 2)(2, "mat-icon", 3);
|
|
122
|
-
i0.ɵɵtext(3, "analytics");
|
|
123
|
-
i0.ɵɵelementEnd();
|
|
124
|
-
i0.ɵɵelementStart(4, "small");
|
|
125
|
-
i0.ɵɵtext(5, " Form Section Diagnostic Report ");
|
|
126
|
-
i0.ɵɵelementEnd();
|
|
127
|
-
i0.ɵɵelement(6, "span", 4);
|
|
128
|
-
i0.ɵɵelementStart(7, "div", 5)(8, "div", 6)(9, "mat-icon");
|
|
129
|
-
i0.ɵɵtext(10, "check_circle");
|
|
130
|
-
i0.ɵɵelementEnd()();
|
|
131
|
-
i0.ɵɵtemplate(11, SectionReportComponent_div_0_div_11_Template, 4, 0, "div", 7);
|
|
132
|
-
i0.ɵɵelementEnd()();
|
|
133
|
-
i0.ɵɵelementStart(12, "table", 8);
|
|
134
|
-
i0.ɵɵelementContainerStart(13, 9);
|
|
135
|
-
i0.ɵɵtemplate(14, SectionReportComponent_div_0_th_14_Template, 1, 0, "th", 10)(15, SectionReportComponent_div_0_td_15_Template, 3, 4, "td", 11);
|
|
136
|
-
i0.ɵɵelementContainerEnd();
|
|
137
|
-
i0.ɵɵelementContainerStart(16, 12);
|
|
138
|
-
i0.ɵɵtemplate(17, SectionReportComponent_div_0_th_17_Template, 2, 0, "th", 13)(18, SectionReportComponent_div_0_td_18_Template, 2, 1, "td", 11);
|
|
139
|
-
i0.ɵɵelementContainerEnd();
|
|
140
|
-
i0.ɵɵelementContainerStart(19, 14);
|
|
141
|
-
i0.ɵɵtemplate(20, SectionReportComponent_div_0_th_20_Template, 2, 0, "th", 13)(21, SectionReportComponent_div_0_td_21_Template, 2, 1, "td", 11);
|
|
142
|
-
i0.ɵɵelementContainerEnd();
|
|
143
|
-
i0.ɵɵelementContainerStart(22, 15);
|
|
144
|
-
i0.ɵɵtemplate(23, SectionReportComponent_div_0_th_23_Template, 2, 0, "th", 13)(24, SectionReportComponent_div_0_td_24_Template, 2, 1, "td", 11);
|
|
145
|
-
i0.ɵɵelementContainerEnd();
|
|
146
|
-
i0.ɵɵelementContainerStart(25, 16);
|
|
147
|
-
i0.ɵɵtemplate(26, SectionReportComponent_div_0_th_26_Template, 2, 0, "th", 10)(27, SectionReportComponent_div_0_td_27_Template, 2, 1, "td", 11);
|
|
148
|
-
i0.ɵɵelementContainerEnd();
|
|
149
|
-
i0.ɵɵtemplate(28, SectionReportComponent_div_0_tr_28_Template, 1, 0, "tr", 17)(29, SectionReportComponent_div_0_tr_29_Template, 1, 0, "tr", 18);
|
|
150
|
-
i0.ɵɵelementEnd()();
|
|
151
|
-
} if (rf & 2) {
|
|
152
|
-
let tmp_1_0;
|
|
153
|
-
const ctx_r6 = i0.ɵɵnextContext();
|
|
154
|
-
i0.ɵɵadvance(11);
|
|
155
|
-
i0.ɵɵproperty("ngIf", (tmp_1_0 = ctx_r6.section()) == null ? null : tmp_1_0.sectionIsSeen);
|
|
156
|
-
i0.ɵɵadvance();
|
|
157
|
-
i0.ɵɵproperty("dataSource", ctx_r6.sectionData() || i0.ɵɵpureFunction0(4, _c0));
|
|
158
|
-
i0.ɵɵadvance(16);
|
|
159
|
-
i0.ɵɵproperty("matHeaderRowDef", ctx_r6.displayedColumns);
|
|
160
|
-
i0.ɵɵadvance();
|
|
161
|
-
i0.ɵɵproperty("matRowDefColumns", ctx_r6.displayedColumns);
|
|
162
|
-
} }
|
|
163
|
-
class SectionReportComponent {
|
|
164
|
-
constructor() {
|
|
165
|
-
this.sectionId = '';
|
|
166
|
-
this.displayedColumns = ['icon', 'name', 'description', 'value'];
|
|
167
|
-
this.dataSource = new MatTableDataSource();
|
|
168
|
-
this.store = inject(FormsStoreService);
|
|
169
|
-
this.selectFormInEdit$ = this.store.selectors.selectFormInEdit$;
|
|
170
|
-
this.selectFormInEdit = toSignal(this.selectFormInEdit$);
|
|
171
|
-
this.section = computed(() => {
|
|
172
|
-
const form = this.selectFormInEdit();
|
|
173
|
-
return form?.form.slides.find((slide) => slide.sectionId === this.sectionId) || null;
|
|
174
|
-
});
|
|
175
|
-
this.sectionData = computed(() => {
|
|
176
|
-
const section = this.section();
|
|
177
|
-
return this.updateTableData(section);
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
ngOnInit() {
|
|
181
|
-
}
|
|
182
|
-
updateTableData(data) {
|
|
183
|
-
if (!data)
|
|
184
|
-
return [];
|
|
185
|
-
const allInputs = data.columns.flatMap(column => column.element === ElementTypes.MultipleInput ? [...(column?.formInputs || []), column] : [column]).filter((input) => input.sectionId === this.sectionId);
|
|
186
|
-
const calculatedInputs = allInputs.filter((input) => input.calculatedFieldRules?.formula && input.calculatedFieldRules?.formula !== '');
|
|
187
|
-
const inputsWithManualValidations = allInputs.filter((input) => input.validators?.some((validator) => Object.keys(validator).length > 0));
|
|
188
|
-
const allSectionInputConfigErrors = validateFormSlide(data);
|
|
189
|
-
const metrics = [
|
|
190
|
-
{
|
|
191
|
-
icon: 'input',
|
|
192
|
-
name: 'Total Inputs',
|
|
193
|
-
value: Object.keys(allInputs || {}).length,
|
|
194
|
-
color: '#2196f3',
|
|
195
|
-
description: 'Total number of form inputs in section',
|
|
196
|
-
trend: 'stable',
|
|
197
|
-
category: 'inputs'
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
icon: 'calculate',
|
|
201
|
-
name: 'Calculated Fields',
|
|
202
|
-
value: calculatedInputs.length,
|
|
203
|
-
details: calculatedInputs,
|
|
204
|
-
color: '#4caf50',
|
|
205
|
-
description: 'Fields with calculation formulas',
|
|
206
|
-
trend: 'monitoring',
|
|
207
|
-
category: 'calculations'
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
icon: 'rule',
|
|
211
|
-
name: 'Manual Validations',
|
|
212
|
-
value: inputsWithManualValidations.length,
|
|
213
|
-
details: inputsWithManualValidations,
|
|
214
|
-
color: '#ff9800',
|
|
215
|
-
description: 'Fields with custom validation rules',
|
|
216
|
-
trend: 'warning',
|
|
217
|
-
category: 'validation'
|
|
218
|
-
},
|
|
219
|
-
{
|
|
220
|
-
icon: 'bug_report',
|
|
221
|
-
name: 'Config Errors',
|
|
222
|
-
value: allSectionInputConfigErrors.length,
|
|
223
|
-
color: '#f44336',
|
|
224
|
-
description: 'Configuration errors detected',
|
|
225
|
-
trend: 'critical',
|
|
226
|
-
category: 'errors'
|
|
227
|
-
},
|
|
228
|
-
// {
|
|
229
|
-
// icon: 'api',
|
|
230
|
-
// name: 'GET Methods',
|
|
231
|
-
// value: data.getMethodInputs.length,
|
|
232
|
-
// details: data.getMethodInputs,
|
|
233
|
-
// color: '#2196f3',
|
|
234
|
-
// description: 'Fields using GET API calls',
|
|
235
|
-
// trend: 'stable',
|
|
236
|
-
// category: 'api'
|
|
237
|
-
// },
|
|
238
|
-
// {
|
|
239
|
-
// icon: 'sync',
|
|
240
|
-
// name: 'POST Methods',
|
|
241
|
-
// value: data.postMethodInputs.length,
|
|
242
|
-
// details: data.postMethodInputs,
|
|
243
|
-
// color: '#673ab7',
|
|
244
|
-
// description: 'Fields using POST API calls',
|
|
245
|
-
// trend: 'monitoring',
|
|
246
|
-
// category: 'api'
|
|
247
|
-
// },
|
|
248
|
-
// {
|
|
249
|
-
// icon: 'visibility',
|
|
250
|
-
// name: 'Hidden Fields',
|
|
251
|
-
// value: Object.values(data.sectionInputs || {})
|
|
252
|
-
// .filter((input: TInputControllerService) => input.input.readonly).length,
|
|
253
|
-
// color: '#9e9e9e',
|
|
254
|
-
// description: 'Number of hidden/conditional fields',
|
|
255
|
-
// trend: 'neutral',
|
|
256
|
-
// category: 'visibility'
|
|
257
|
-
// },
|
|
258
|
-
// {
|
|
259
|
-
// icon: 'multiple_stop',
|
|
260
|
-
// name: 'Multiple Inputs',
|
|
261
|
-
// value: Object.values(data.sectionInputs || {})
|
|
262
|
-
// .filter((input: TInputControllerService) => input.input.element ===ElementTypes.MultipleInput).length,
|
|
263
|
-
// color: '#795548',
|
|
264
|
-
// description: 'Fields allowing multiple values',
|
|
265
|
-
// trend: 'stable',
|
|
266
|
-
// category: 'inputs'
|
|
267
|
-
// },
|
|
268
|
-
// {
|
|
269
|
-
// icon: 'error_outline',
|
|
270
|
-
// name: 'Required Fields',
|
|
271
|
-
// value: Object.values(data.sectionInputs || {})
|
|
272
|
-
// .filter((input: TInputControllerService) => input.input.required).length,
|
|
273
|
-
// color: '#e91e63',
|
|
274
|
-
// description: 'Mandatory input fields',
|
|
275
|
-
// trend: 'warning',
|
|
276
|
-
// category: 'validation'
|
|
277
|
-
// }
|
|
278
|
-
];
|
|
279
|
-
return metrics;
|
|
280
|
-
}
|
|
281
|
-
applyFilter(event) {
|
|
282
|
-
const filterValue = event.target.value;
|
|
283
|
-
this.dataSource.filter = filterValue.trim().toLowerCase();
|
|
284
|
-
}
|
|
285
|
-
static { this.ɵfac = function SectionReportComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SectionReportComponent)(); }; }
|
|
286
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SectionReportComponent, selectors: [["app-section-report"]], viewQuery: function SectionReportComponent_Query(rf, ctx) { if (rf & 1) {
|
|
287
|
-
i0.ɵɵviewQuery(MatSort, 5);
|
|
288
|
-
i0.ɵɵviewQuery(MatPaginator, 5);
|
|
289
|
-
} if (rf & 2) {
|
|
290
|
-
let _t;
|
|
291
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
|
|
292
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.paginator = _t.first);
|
|
293
|
-
} }, inputs: { sectionId: "sectionId" }, decls: 1, vars: 1, consts: [["class", "report-container", 4, "ngIf"], [1, "report-container"], [2, "padding", "0px"], [1, "section-icon"], [1, "spacer"], [1, "status-chips"], [1, "status-chip"], ["class", "status-chip initialized", 4, "ngIf"], ["mat-table", "", "matSort", "", 1, "w-full", 3, "dataSource"], ["matColumnDef", "icon"], ["mat-header-cell", "", 4, "matHeaderCellDef"], ["mat-cell", "", 4, "matCellDef"], ["matColumnDef", "description"], ["mat-header-cell", "", "mat-sort-header", "", 4, "matHeaderCellDef"], ["matColumnDef", "name"], ["matColumnDef", "value"], ["matColumnDef", "details"], ["mat-header-row", "", 4, "matHeaderRowDef"], ["mat-row", "", 4, "matRowDef", "matRowDefColumns"], [1, "status-chip", "initialized"], ["mat-header-cell", ""], ["mat-cell", ""], [3, "ngStyle"], ["mat-header-cell", "", "mat-sort-header", ""], [4, "ngIf"], ["class", "detail-chip", 4, "ngFor", "ngForOf"], [1, "detail-chip"], ["mat-header-row", ""], ["mat-row", ""]], template: function SectionReportComponent_Template(rf, ctx) { if (rf & 1) {
|
|
294
|
-
i0.ɵɵtemplate(0, SectionReportComponent_div_0_Template, 30, 5, "div", 0);
|
|
295
|
-
} if (rf & 2) {
|
|
296
|
-
i0.ɵɵproperty("ngIf", ctx.section());
|
|
297
|
-
} }, dependencies: [CommonModule, i2.NgForOf, i2.NgIf, i2.NgStyle, MatModulesModule, i4.MatChip, i4.MatChipSet, i6.MatIcon, i4$1.MatSort, i4$1.MatSortHeader, i5.MatTable, i5.MatHeaderCellDef, i5.MatHeaderRowDef, i5.MatColumnDef, i5.MatCellDef, i5.MatRowDef, i5.MatHeaderCell, i5.MatCell, i5.MatHeaderRow, i5.MatRow, i9.MatToolbar], styles: [".report-container[_ngcontent-%COMP%]{padding:20px;display:flex;flex-direction:column;gap:20px;background:var(--mat-toolbar-container-background-color, var(--mat-app-surface))}.header-card[_ngcontent-%COMP%]{background:#fff}.title-section[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.section-icon[_ngcontent-%COMP%]{color:#4f46e5;font-size:28px;width:28px;height:28px;margin-right:8px}h1[_ngcontent-%COMP%]{margin:0;font-size:20px;font-weight:500}.subtitle[_ngcontent-%COMP%]{margin:4px 0 0;color:#666;font-size:14px}.status-chips[_ngcontent-%COMP%]{display:flex;gap:8px;margin-left:auto}.status-chip[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;padding:4px 12px;border-radius:16px;background:#22c55e;color:#fff;font-size:14px}.status-chip.invalid[_ngcontent-%COMP%]{background:#ef4444}.status-chip.initialized[_ngcontent-%COMP%]{background:#3b82f6}.status-chip[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}.filter-field[_ngcontent-%COMP%]{width:100%;margin-bottom:16px}.detail-chip[_ngcontent-%COMP%]{font-size:12px;height:24px}mat-card-content[_ngcontent-%COMP%]{padding:16px}"] }); }
|
|
298
|
-
}
|
|
299
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SectionReportComponent, [{
|
|
300
|
-
type: Component,
|
|
301
|
-
args: [{ selector: 'app-section-report', standalone: true, imports: [CommonModule, MatModulesModule], template: "<div class=\"report-container\" *ngIf=\"(section())\">\r\n\r\n\r\n <mat-toolbar style=\"padding: 0px;\">\r\n <mat-icon class=\"section-icon\">analytics</mat-icon>\r\n <small>\r\n Form Section Diagnostic Report\r\n </small>\r\n\r\n <span class=\"spacer\"></span>\r\n <div class=\"status-chips\">\r\n <div class=\"status-chip\" >\r\n <mat-icon>check_circle</mat-icon>\r\n \r\n </div>\r\n <div class=\"status-chip initialized\" *ngIf=\"(section())?.sectionIsSeen\">\r\n <mat-icon>task_alt</mat-icon>\r\n Initialized\r\n </div>\r\n </div>\r\n </mat-toolbar>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <table mat-table [dataSource]=\"(sectionData())||[]\" matSort class=\"w-full\">\r\n <!-- Icon Column -->\r\n <ng-container matColumnDef=\"icon\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-icon [ngStyle]=\"{'color': row.color}\">{{ row.icon }}</mat-icon>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- description Column -->\r\n <ng-container matColumnDef=\"description\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>description</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.description }}</td>\r\n </ng-container>\r\n\r\n <!-- Name Column -->\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Type</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.name }}</td>\r\n </ng-container>\r\n\r\n <!-- Value Column -->\r\n <ng-container matColumnDef=\"value\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Value</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.value }}</td>\r\n </ng-container>\r\n\r\n <!-- Details Column -->\r\n <ng-container matColumnDef=\"details\">\r\n <th mat-header-cell *matHeaderCellDef>Details</th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-chip-set *ngIf=\"row.details?.length\">\r\n <mat-chip *ngFor=\"let detail of row.details\" class=\"detail-chip\">\r\n {{ detail }}\r\n </mat-chip>\r\n </mat-chip-set>\r\n </td>\r\n </ng-container>\r\n\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n</div>", styles: [".report-container{padding:20px;display:flex;flex-direction:column;gap:20px;background:var(--mat-toolbar-container-background-color, var(--mat-app-surface))}.header-card{background:#fff}.title-section{display:flex;align-items:center;gap:12px}.section-icon{color:#4f46e5;font-size:28px;width:28px;height:28px;margin-right:8px}h1{margin:0;font-size:20px;font-weight:500}.subtitle{margin:4px 0 0;color:#666;font-size:14px}.status-chips{display:flex;gap:8px;margin-left:auto}.status-chip{display:flex;align-items:center;gap:4px;padding:4px 12px;border-radius:16px;background:#22c55e;color:#fff;font-size:14px}.status-chip.invalid{background:#ef4444}.status-chip.initialized{background:#3b82f6}.status-chip mat-icon{font-size:18px;width:18px;height:18px}.filter-field{width:100%;margin-bottom:16px}.detail-chip{font-size:12px;height:24px}mat-card-content{padding:16px}\n"] }]
|
|
302
|
-
}], () => [], { sectionId: [{
|
|
303
|
-
type: Input
|
|
304
|
-
}], sort: [{
|
|
305
|
-
type: ViewChild,
|
|
306
|
-
args: [MatSort]
|
|
307
|
-
}], paginator: [{
|
|
308
|
-
type: ViewChild,
|
|
309
|
-
args: [MatPaginator]
|
|
310
|
-
}] }); })();
|
|
311
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SectionReportComponent, { className: "SectionReportComponent", filePath: "lib/components/form-builder/elements/section-report/section-report.component.ts", lineNumber: 21 }); })();
|
|
312
|
-
|
|
313
|
-
export { SectionReportComponent };
|
|
314
|
-
//# sourceMappingURL=ngx-t-forms-section-report.component-C_h0KIR4.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-t-forms-section-report.component-C_h0KIR4.mjs","sources":["../../../projects/ngx-t-forms/src/lib/components/form-builder/elements/section-report/section-report.component.html","../../../projects/ngx-t-forms/src/lib/components/form-builder/elements/section-report/section-report.component.ts"],"sourcesContent":["<div class=\"report-container\" *ngIf=\"(section())\">\r\n\r\n\r\n <mat-toolbar style=\"padding: 0px;\">\r\n <mat-icon class=\"section-icon\">analytics</mat-icon>\r\n <small>\r\n Form Section Diagnostic Report\r\n </small>\r\n\r\n <span class=\"spacer\"></span>\r\n <div class=\"status-chips\">\r\n <div class=\"status-chip\" >\r\n <mat-icon>check_circle</mat-icon>\r\n \r\n </div>\r\n <div class=\"status-chip initialized\" *ngIf=\"(section())?.sectionIsSeen\">\r\n <mat-icon>task_alt</mat-icon>\r\n Initialized\r\n </div>\r\n </div>\r\n </mat-toolbar>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <table mat-table [dataSource]=\"(sectionData())||[]\" matSort class=\"w-full\">\r\n <!-- Icon Column -->\r\n <ng-container matColumnDef=\"icon\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-icon [ngStyle]=\"{'color': row.color}\">{{ row.icon }}</mat-icon>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- description Column -->\r\n <ng-container matColumnDef=\"description\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>description</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.description }}</td>\r\n </ng-container>\r\n\r\n <!-- Name Column -->\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Type</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.name }}</td>\r\n </ng-container>\r\n\r\n <!-- Value Column -->\r\n <ng-container matColumnDef=\"value\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Value</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.value }}</td>\r\n </ng-container>\r\n\r\n <!-- Details Column -->\r\n <ng-container matColumnDef=\"details\">\r\n <th mat-header-cell *matHeaderCellDef>Details</th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-chip-set *ngIf=\"row.details?.length\">\r\n <mat-chip *ngFor=\"let detail of row.details\" class=\"detail-chip\">\r\n {{ detail }}\r\n </mat-chip>\r\n </mat-chip-set>\r\n </td>\r\n </ng-container>\r\n\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n</div>","import { Component, computed, inject, Input, ViewChild } from '@angular/core';\r\n\r\n\r\nimport { MatModulesModule } from '../../../../shared/modules/mat-modules.module';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsStoreService } from '../../../forms/store/forms-store.service';\r\n\r\n\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { ElementTypes, FormSlideInterface, validateFormSlide } from 'ngx-t-forms-types';\r\n@Component({\r\n selector: 'app-section-report',\r\n standalone: true,\r\n imports: [CommonModule,MatModulesModule],\r\n templateUrl: './section-report.component.html',\r\n styleUrl: './section-report.component.scss'\r\n})\r\nexport class SectionReportComponent {\r\n @Input() sectionId: string = '';\r\n @ViewChild(MatSort) sort!: MatSort;\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n\r\n displayedColumns: string[] = ['icon', 'name','description', 'value'];\r\n dataSource = new MatTableDataSource<any>();\r\n\r\n private store:FormsStoreService = inject(FormsStoreService)\r\n selectFormInEdit$ = this.store.selectors.selectFormInEdit$\r\n selectFormInEdit = toSignal(this.selectFormInEdit$)\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n\r\n }\r\n \r\n\r\n section = computed(()=>\r\n {\r\n const form = this.selectFormInEdit()\r\n return form?.form.slides.find((slide: FormSlideInterface) => slide.sectionId === this.sectionId) || null\r\n })\r\n \r\n sectionData = computed(()=> {\r\n const section = this.section()\r\n return this.updateTableData(section)\r\n })\r\n\r\n updateTableData(data: FormSlideInterface|null) {\r\n if(!data) return [];\r\n const allInputs = data.columns.flatMap(column=>column.element ===ElementTypes.MultipleInput ? [...(column?.formInputs||[]),column]: [column]).filter(\r\n (input) => input.sectionId === this.sectionId\r\n )\r\n const calculatedInputs = allInputs.filter((input) => input.calculatedFieldRules?.formula && input.calculatedFieldRules?.formula !== '');\r\n const inputsWithManualValidations = allInputs.filter((input) => input.validators?.some((validator) => Object.keys(validator).length > 0));\r\n const allSectionInputConfigErrors = validateFormSlide(data);\r\n \r\n const metrics: any[] = [\r\n {\r\n icon: 'input',\r\n name: 'Total Inputs',\r\n value: Object.keys(allInputs|| {}).length,\r\n color: '#2196f3',\r\n description: 'Total number of form inputs in section',\r\n trend: 'stable',\r\n category: 'inputs'\r\n },\r\n {\r\n icon: 'calculate',\r\n name: 'Calculated Fields',\r\n value: calculatedInputs.length,\r\n details:calculatedInputs,\r\n color: '#4caf50',\r\n description: 'Fields with calculation formulas',\r\n trend: 'monitoring',\r\n category: 'calculations'\r\n },\r\n {\r\n icon: 'rule',\r\n name: 'Manual Validations',\r\n value: inputsWithManualValidations.length,\r\n details: inputsWithManualValidations,\r\n color: '#ff9800',\r\n description: 'Fields with custom validation rules',\r\n trend: 'warning',\r\n category: 'validation'\r\n },\r\n \r\n {\r\n icon: 'bug_report',\r\n name: 'Config Errors',\r\n value: allSectionInputConfigErrors.length,\r\n color: '#f44336',\r\n description: 'Configuration errors detected',\r\n trend: 'critical',\r\n category: 'errors'\r\n },\r\n // {\r\n // icon: 'api',\r\n // name: 'GET Methods',\r\n // value: data.getMethodInputs.length,\r\n // details: data.getMethodInputs,\r\n // color: '#2196f3',\r\n // description: 'Fields using GET API calls',\r\n // trend: 'stable',\r\n // category: 'api'\r\n // },\r\n // {\r\n // icon: 'sync',\r\n // name: 'POST Methods',\r\n // value: data.postMethodInputs.length,\r\n // details: data.postMethodInputs,\r\n // color: '#673ab7',\r\n // description: 'Fields using POST API calls',\r\n // trend: 'monitoring',\r\n // category: 'api'\r\n // },\r\n // {\r\n // icon: 'visibility',\r\n // name: 'Hidden Fields',\r\n // value: Object.values(data.sectionInputs || {})\r\n // .filter((input: TInputControllerService) => input.input.readonly).length,\r\n // color: '#9e9e9e',\r\n // description: 'Number of hidden/conditional fields',\r\n // trend: 'neutral',\r\n // category: 'visibility'\r\n // },\r\n // {\r\n // icon: 'multiple_stop',\r\n // name: 'Multiple Inputs',\r\n // value: Object.values(data.sectionInputs || {})\r\n // .filter((input: TInputControllerService) => input.input.element ===ElementTypes.MultipleInput).length,\r\n // color: '#795548',\r\n // description: 'Fields allowing multiple values',\r\n // trend: 'stable',\r\n // category: 'inputs'\r\n // },\r\n // {\r\n // icon: 'error_outline',\r\n // name: 'Required Fields',\r\n // value: Object.values(data.sectionInputs || {})\r\n // .filter((input: TInputControllerService) => input.input.required).length,\r\n // color: '#e91e63',\r\n // description: 'Mandatory input fields',\r\n // trend: 'warning',\r\n // category: 'validation'\r\n // }\r\n ];\r\n \r\n return metrics;\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n}"],"names":["i2","i3","i4","i6"],"mappings":"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"}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, Optional, Self, Output, Input, HostBinding } from '@angular/core';
|
|
3
|
-
import * as i2$1 from '@angular/common';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as i1 from '@angular/forms';
|
|
6
|
-
import { FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
|
|
7
|
-
import { v4 } from 'uuid';
|
|
8
|
-
import _ from 'lodash';
|
|
9
|
-
import { M as MatModulesModule } from './ngx-t-forms-ngx-t-forms-DaAFB-HX.mjs';
|
|
10
|
-
import * as i3$1 from '@angular/material/form-field';
|
|
11
|
-
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
12
|
-
import { Subject } from 'rxjs';
|
|
13
|
-
import * as i2 from '@angular/material/button';
|
|
14
|
-
import * as i3 from '@angular/material/card';
|
|
15
|
-
import * as i4 from '@angular/material/chips';
|
|
16
|
-
import * as i6 from '@angular/material/icon';
|
|
17
|
-
import * as i9 from '@angular/material/toolbar';
|
|
18
|
-
import * as i12 from '@angular/material/input';
|
|
19
|
-
|
|
20
|
-
const _c0 = () => [];
|
|
21
|
-
const _forTrack0 = ($index, $item) => $item.id;
|
|
22
|
-
function SelectionOptionsEditorComponent_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
24
|
-
i0.ɵɵelementStart(0, "mat-chip-option", 3);
|
|
25
|
-
i0.ɵɵlistener("removed", function SelectionOptionsEditorComponent_For_2_Template_mat_chip_option_removed_0_listener() { const option_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.remove(option_r2)); })("click", function SelectionOptionsEditorComponent_For_2_Template_mat_chip_option_click_0_listener() { const option_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView((ctx_r2.inEdit == null ? null : ctx_r2.inEdit.id) === (option_r2 == null ? null : option_r2.id) ? ctx_r2.inEdit = undefined : ctx_r2.inEdit = option_r2); });
|
|
26
|
-
i0.ɵɵtext(1);
|
|
27
|
-
i0.ɵɵelementStart(2, "button", 4)(3, "mat-icon");
|
|
28
|
-
i0.ɵɵtext(4, "cancel");
|
|
29
|
-
i0.ɵɵelementEnd()()();
|
|
30
|
-
} if (rf & 2) {
|
|
31
|
-
const option_r2 = ctx.$implicit;
|
|
32
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
33
|
-
i0.ɵɵproperty("value", option_r2 == null ? null : option_r2.value)("selected", (ctx_r2.inEdit == null ? null : ctx_r2.inEdit.id) === (option_r2 == null ? null : option_r2.id));
|
|
34
|
-
i0.ɵɵadvance();
|
|
35
|
-
i0.ɵɵtextInterpolate1("", option_r2 == null ? null : option_r2.label, " ");
|
|
36
|
-
i0.ɵɵadvance();
|
|
37
|
-
i0.ɵɵattribute("aria-label", "remove ");
|
|
38
|
-
} }
|
|
39
|
-
function SelectionOptionsEditorComponent_mat_toolbar_3_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
|
41
|
-
i0.ɵɵelementStart(0, "mat-toolbar")(1, "button", 5);
|
|
42
|
-
i0.ɵɵlistener("click", function SelectionOptionsEditorComponent_mat_toolbar_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.add()); });
|
|
43
|
-
i0.ɵɵtext(2, " Add an option ");
|
|
44
|
-
i0.ɵɵelementStart(3, "mat-icon");
|
|
45
|
-
i0.ɵɵtext(4, "add");
|
|
46
|
-
i0.ɵɵelementEnd()()();
|
|
47
|
-
} }
|
|
48
|
-
function SelectionOptionsEditorComponent_mat_card_4_form_7_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
-
i0.ɵɵelementStart(0, "form", 10)(1, "mat-form-field")(2, "mat-label");
|
|
50
|
-
i0.ɵɵtext(3, "label");
|
|
51
|
-
i0.ɵɵelementEnd();
|
|
52
|
-
i0.ɵɵelement(4, "input", 11);
|
|
53
|
-
i0.ɵɵelementStart(5, "mat-hint");
|
|
54
|
-
i0.ɵɵtext(6, "Label is required!");
|
|
55
|
-
i0.ɵɵelementEnd()();
|
|
56
|
-
i0.ɵɵelementStart(7, "mat-form-field")(8, "mat-label");
|
|
57
|
-
i0.ɵɵtext(9, "value");
|
|
58
|
-
i0.ɵɵelementEnd();
|
|
59
|
-
i0.ɵɵelement(10, "input", 12);
|
|
60
|
-
i0.ɵɵelementStart(11, "mat-hint");
|
|
61
|
-
i0.ɵɵtext(12, "value is required!");
|
|
62
|
-
i0.ɵɵelementEnd()()();
|
|
63
|
-
} if (rf & 2) {
|
|
64
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
65
|
-
i0.ɵɵproperty("formGroup", ctx_r2.form);
|
|
66
|
-
} }
|
|
67
|
-
function SelectionOptionsEditorComponent_mat_card_4_Template(rf, ctx) { if (rf & 1) {
|
|
68
|
-
const _r5 = i0.ɵɵgetCurrentView();
|
|
69
|
-
i0.ɵɵelementStart(0, "mat-card")(1, "mat-card-header")(2, "mat-card-title");
|
|
70
|
-
i0.ɵɵtext(3, "Edit Option");
|
|
71
|
-
i0.ɵɵelementEnd();
|
|
72
|
-
i0.ɵɵelementStart(4, "mat-card-subtitle");
|
|
73
|
-
i0.ɵɵtext(5, "Modify Option Details");
|
|
74
|
-
i0.ɵɵelementEnd()();
|
|
75
|
-
i0.ɵɵelementStart(6, "mat-card-content", 6);
|
|
76
|
-
i0.ɵɵtemplate(7, SelectionOptionsEditorComponent_mat_card_4_form_7_Template, 13, 1, "form", 7);
|
|
77
|
-
i0.ɵɵelementEnd();
|
|
78
|
-
i0.ɵɵelementStart(8, "mat-card-actions")(9, "button", 8);
|
|
79
|
-
i0.ɵɵlistener("click", function SelectionOptionsEditorComponent_mat_card_4_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeEdit()); });
|
|
80
|
-
i0.ɵɵtext(10, "close");
|
|
81
|
-
i0.ɵɵelementEnd();
|
|
82
|
-
i0.ɵɵelementStart(11, "button", 9);
|
|
83
|
-
i0.ɵɵlistener("click", function SelectionOptionsEditorComponent_mat_card_4_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.save()); });
|
|
84
|
-
i0.ɵɵtext(12, "Save");
|
|
85
|
-
i0.ɵɵelementEnd()()();
|
|
86
|
-
} if (rf & 2) {
|
|
87
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
88
|
-
i0.ɵɵadvance(7);
|
|
89
|
-
i0.ɵɵproperty("ngIf", !!ctx_r2.form);
|
|
90
|
-
i0.ɵɵadvance(4);
|
|
91
|
-
i0.ɵɵproperty("disabled", ctx_r2.form.invalid);
|
|
92
|
-
} }
|
|
93
|
-
class SelectionOptionsEditorComponent {
|
|
94
|
-
static { this.nextId = 0; }
|
|
95
|
-
constructor(ngControl, _elementRef) {
|
|
96
|
-
this.ngControl = ngControl;
|
|
97
|
-
this._elementRef = _elementRef;
|
|
98
|
-
this.stateChanges = new Subject();
|
|
99
|
-
this.errors = [];
|
|
100
|
-
this.id = `app-selection-options-editor-${SelectionOptionsEditorComponent.nextId++}`;
|
|
101
|
-
this.placeholder = '';
|
|
102
|
-
this.focused = false;
|
|
103
|
-
this.required = false;
|
|
104
|
-
this.disabled = false;
|
|
105
|
-
this.touched = false;
|
|
106
|
-
this.onTouched = () => { };
|
|
107
|
-
this._options = [];
|
|
108
|
-
this.valueChanged = new EventEmitter();
|
|
109
|
-
}
|
|
110
|
-
get empty() {
|
|
111
|
-
return !this.value;
|
|
112
|
-
}
|
|
113
|
-
get shouldLabelFloat() {
|
|
114
|
-
return this.focused || !this.empty;
|
|
115
|
-
}
|
|
116
|
-
get errorState() {
|
|
117
|
-
const hasError = !!this.ngControl?.control?.errors || (this.errors || []).length > 0 && this.touched;
|
|
118
|
-
return !this.value && !!this.required || hasError;
|
|
119
|
-
}
|
|
120
|
-
setDescribedByIds(ids) {
|
|
121
|
-
// Ensure the component view is initialized
|
|
122
|
-
if (this._elementRef && this._elementRef.nativeElement) {
|
|
123
|
-
const controlElement = this._elementRef.nativeElement.querySelector('.app-selection-options-editor');
|
|
124
|
-
// Check if the controlElement exists before attempting to set its attribute
|
|
125
|
-
if (controlElement) {
|
|
126
|
-
controlElement.setAttribute('aria-describedby', ids.join(' '));
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
onContainerClick(event) {
|
|
131
|
-
this.markAsTouched();
|
|
132
|
-
this.stateChanges.next();
|
|
133
|
-
}
|
|
134
|
-
markAsTouched() {
|
|
135
|
-
console.log('markAsTouched');
|
|
136
|
-
if (!this.touched) {
|
|
137
|
-
this.onTouched();
|
|
138
|
-
this.touched = true;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
get options() {
|
|
142
|
-
return this._options || [];
|
|
143
|
-
}
|
|
144
|
-
set options(val) {
|
|
145
|
-
if (!!Array.isArray(val)) {
|
|
146
|
-
this._options = val;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
add() {
|
|
150
|
-
this.inEdit = {};
|
|
151
|
-
this.createForm(this.inEdit);
|
|
152
|
-
}
|
|
153
|
-
remove(option) {
|
|
154
|
-
this.options = this.removeObjectById(this.options, option.id);
|
|
155
|
-
this.valueChanged.emit(this.options);
|
|
156
|
-
}
|
|
157
|
-
createForm(inEdit) {
|
|
158
|
-
this.form = new FormGroup({
|
|
159
|
-
label: new FormControl(inEdit.label || '', Validators.required),
|
|
160
|
-
value: new FormControl(inEdit.value || '', Validators.required),
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
closeEdit() {
|
|
164
|
-
this.inEdit = null;
|
|
165
|
-
}
|
|
166
|
-
save() {
|
|
167
|
-
const id = this.inEdit?.id;
|
|
168
|
-
if (!!id) {
|
|
169
|
-
this.options = this.overrideObjectById(this.options, { ...this.inEdit, ...this.form.value });
|
|
170
|
-
this.closeEdit();
|
|
171
|
-
this.valueChanged.emit(this.options);
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
this.options = this.addObjectToArray(this.options, { ...this.inEdit, ...this.form.value, id: v4() });
|
|
175
|
-
this.closeEdit();
|
|
176
|
-
console.log(this.options);
|
|
177
|
-
this.valueChanged.emit(this.options);
|
|
178
|
-
}
|
|
179
|
-
overrideObjectById(array, newObj) {
|
|
180
|
-
const index = _.findIndex(array, { id: newObj.id });
|
|
181
|
-
if (index !== -1) {
|
|
182
|
-
array[index] = newObj;
|
|
183
|
-
}
|
|
184
|
-
return array;
|
|
185
|
-
}
|
|
186
|
-
addObjectToArray(array, newObj) {
|
|
187
|
-
if (!_.some(array, { id: newObj.id })) {
|
|
188
|
-
array.push(newObj);
|
|
189
|
-
}
|
|
190
|
-
return array;
|
|
191
|
-
}
|
|
192
|
-
removeObjectById(array, id) {
|
|
193
|
-
return _.reject(array, { id: id });
|
|
194
|
-
}
|
|
195
|
-
static { this.ɵfac = function SelectionOptionsEditorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SelectionOptionsEditorComponent)(i0.ɵɵdirectiveInject(i1.NgControl, 10), i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
|
|
196
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SelectionOptionsEditorComponent, selectors: [["app-selection-options-editor"]], hostVars: 1, hostBindings: function SelectionOptionsEditorComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
197
|
-
i0.ɵɵhostProperty("id", ctx.id);
|
|
198
|
-
} }, inputs: { errors: "errors", options: "options" }, outputs: { valueChanged: "valueChanged" }, features: [i0.ɵɵProvidersFeature([{ provide: MatFormFieldControl, useExisting: SelectionOptionsEditorComponent }])], decls: 5, vars: 3, consts: [["aria-label", "Fish selection"], ["color", "accent", 3, "value", "selected"], [4, "ngIf"], ["color", "accent", 3, "removed", "click", "value", "selected"], ["matChipRemove", ""], ["mat-stroked-button", "", 2, "width", "100%", 3, "click"], [2, "padding-top", "16px"], [3, "formGroup", 4, "ngIf"], ["mat-button", "", 3, "click"], ["mat-button", "", 3, "click", "disabled"], [3, "formGroup"], ["type", "text", "matInput", "", "formControlName", "label", "placeholder", "enter option label"], ["type", "text", "matInput", "", "formControlName", "value", "placeholder", "enter option value"]], template: function SelectionOptionsEditorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
199
|
-
i0.ɵɵelementStart(0, "mat-chip-listbox", 0);
|
|
200
|
-
i0.ɵɵrepeaterCreate(1, SelectionOptionsEditorComponent_For_2_Template, 5, 4, "mat-chip-option", 1, _forTrack0);
|
|
201
|
-
i0.ɵɵelementEnd();
|
|
202
|
-
i0.ɵɵtemplate(3, SelectionOptionsEditorComponent_mat_toolbar_3_Template, 5, 0, "mat-toolbar", 2)(4, SelectionOptionsEditorComponent_mat_card_4_Template, 13, 2, "mat-card", 2);
|
|
203
|
-
} if (rf & 2) {
|
|
204
|
-
i0.ɵɵadvance();
|
|
205
|
-
i0.ɵɵrepeater(ctx.options || i0.ɵɵpureFunction0(2, _c0));
|
|
206
|
-
i0.ɵɵadvance(2);
|
|
207
|
-
i0.ɵɵproperty("ngIf", !ctx.inEdit);
|
|
208
|
-
i0.ɵɵadvance();
|
|
209
|
-
i0.ɵɵproperty("ngIf", !!ctx.inEdit);
|
|
210
|
-
} }, dependencies: [MatModulesModule, i2.MatButton, i3.MatCard, i3.MatCardActions, i3.MatCardContent, i3.MatCardHeader, i3.MatCardSubtitle, i3.MatCardTitle, i4.MatChipListbox, i4.MatChipOption, i4.MatChipRemove, i6.MatIcon, i3$1.MatFormField, i3$1.MatLabel, i3$1.MatHint, i9.MatToolbar, i12.MatInput, ReactiveFormsModule, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, CommonModule, i2$1.NgIf], styles: ["mat-form-field[_ngcontent-%COMP%]{width:100%!important;background:azure}"] }); }
|
|
211
|
-
}
|
|
212
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectionOptionsEditorComponent, [{
|
|
213
|
-
type: Component,
|
|
214
|
-
args: [{ selector: 'app-selection-options-editor', standalone: true, imports: [MatModulesModule, ReactiveFormsModule, CommonModule], providers: [{ provide: MatFormFieldControl, useExisting: SelectionOptionsEditorComponent }], template: "\r\n <mat-chip-listbox aria-label=\"Fish selection\">\r\n @for (option of options||[]; track option.id) {\r\n <mat-chip-option \r\n (removed)=\"remove(option)\"\r\n (click)=\"this.inEdit?.id === option?.id? this.inEdit = undefined :this.inEdit = option\"\r\n color=\"accent\" \r\n [value]=\"option?.value\"\r\n [selected]=\"this.inEdit?.id === option?.id\">{{option?.label}}\r\n <button matChipRemove [attr.aria-label]=\"'remove ' \">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-option>\r\n }\r\n </mat-chip-listbox>\r\n <mat-toolbar *ngIf=\"!inEdit\">\r\n <button style=\"width:100%\" mat-stroked-button (click)=\"add()\">\r\n Add an option <mat-icon>add</mat-icon>\r\n </button>\r\n </mat-toolbar>\r\n <mat-card *ngIf=\"!!inEdit\">\r\n <mat-card-header>\r\n <mat-card-title>Edit Option</mat-card-title>\r\n <mat-card-subtitle>Modify Option Details</mat-card-subtitle>\r\n </mat-card-header>\r\n\r\n <mat-card-content style=\"padding-top:16px ;\" >\r\n \r\n <form *ngIf=\"!!form\" [formGroup]=\"form\">\r\n <mat-form-field >\r\n <mat-label>label</mat-label>\r\n <input type=\"text\" matInput formControlName=\"label\" \r\n placeholder=\"enter option label\">\r\n <mat-hint>Label is required!</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field >\r\n <mat-label>value</mat-label>\r\n <input type=\"text\" matInput formControlName=\"value\" \r\n placeholder=\"enter option value\">\r\n <mat-hint>value is required!</mat-hint>\r\n </mat-form-field>\r\n \r\n </form>\r\n \r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-button (click)=\"closeEdit()\">close</button>\r\n <button mat-button [disabled]=\"form.invalid\" (click)=\"save()\">Save</button>\r\n </mat-card-actions>\r\n </mat-card>\r\n ", styles: ["mat-form-field{width:100%!important;background:azure}\n"] }]
|
|
215
|
-
}], () => [{ type: i1.NgControl, decorators: [{
|
|
216
|
-
type: Optional
|
|
217
|
-
}, {
|
|
218
|
-
type: Self
|
|
219
|
-
}] }, { type: i0.ElementRef }], { errors: [{
|
|
220
|
-
type: Input
|
|
221
|
-
}], id: [{
|
|
222
|
-
type: HostBinding
|
|
223
|
-
}], options: [{
|
|
224
|
-
type: Input
|
|
225
|
-
}], valueChanged: [{
|
|
226
|
-
type: Output
|
|
227
|
-
}] }); })();
|
|
228
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectionOptionsEditorComponent, { className: "SelectionOptionsEditorComponent", filePath: "lib/components/t-dynamic-data-edit/elements/selection-options-editor/selection-options-editor.component.ts", lineNumber: 20 }); })();
|
|
229
|
-
|
|
230
|
-
export { SelectionOptionsEditorComponent };
|
|
231
|
-
//# sourceMappingURL=ngx-t-forms-selection-options-editor.component-CllhwZ5Y.mjs.map
|