ngx-t-forms 2.0.29 → 2.0.31
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-auto-complete-input-element.component-DCKuXHAW.mjs +104 -0
- package/fesm2022/ngx-t-forms-auto-complete-input-element.component-DCKuXHAW.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-basic-input-input-element.component-Ce4ipSUc.mjs +85 -0
- package/fesm2022/ngx-t-forms-basic-input-input-element.component-Ce4ipSUc.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-calculated-field-rules.component-C5TPddVe.mjs +643 -0
- package/fesm2022/ngx-t-forms-calculated-field-rules.component-C5TPddVe.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-chip-options-creator-editor.component-CICQaqz6.mjs +97 -0
- package/fesm2022/ngx-t-forms-chip-options-creator-editor.component-CICQaqz6.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-CzisLSIP.mjs +195 -0
- package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-CzisLSIP.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-data-source-picker.component-Dzz_o6fJ.mjs +261 -0
- package/fesm2022/ngx-t-forms-data-source-picker.component-Dzz_o6fJ.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-date-picker-input-element.component-CYUbVyzP.mjs +85 -0
- package/fesm2022/ngx-t-forms-date-picker-input-element.component-CYUbVyzP.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-date-range-picker-input-element.component-CmoquQGV.mjs +156 -0
- package/fesm2022/ngx-t-forms-date-range-picker-input-element.component-CmoquQGV.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-document-list-label-config-editor.component-CLUOXreG.mjs +368 -0
- package/fesm2022/ngx-t-forms-document-list-label-config-editor.component-CLUOXreG.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-document-picker.component-qObjcqhE.mjs +704 -0
- package/fesm2022/ngx-t-forms-document-picker.component-qObjcqhE.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-editor-input-element.component-BLXlfb6F.mjs +294 -0
- package/fesm2022/ngx-t-forms-editor-input-element.component-BLXlfb6F.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-editor-js-input.component-BQL0AH7H.mjs +240 -0
- package/fesm2022/ngx-t-forms-editor-js-input.component-BQL0AH7H.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-file-upload-input-element.component-C7mMeEjF.mjs +205 -0
- package/fesm2022/ngx-t-forms-file-upload-input-element.component-C7mMeEjF.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-form-input-selector.component-C9u8zq9B.mjs +86 -0
- package/fesm2022/ngx-t-forms-form-input-selector.component-C9u8zq9B.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-form-json-view.component-856Hx1Bg.mjs +22 -0
- package/fesm2022/ngx-t-forms-form-json-view.component-856Hx1Bg.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-form-payload-projection.component-CDkTuX9S.mjs +179 -0
- package/fesm2022/ngx-t-forms-form-payload-projection.component-CDkTuX9S.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-form-section-stepper.component-Bs50-nEB.mjs +319 -0
- package/fesm2022/ngx-t-forms-form-section-stepper.component-Bs50-nEB.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-forms-builder-menu.component-qrhM0jGL.mjs +379 -0
- package/fesm2022/ngx-t-forms-forms-builder-menu.component-qrhM0jGL.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-geo-location.component-Bosp1UzR.mjs +124 -0
- package/fesm2022/ngx-t-forms-geo-location.component-Bosp1UzR.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-getInputIcon-B4ADgevZ.mjs +31 -0
- package/fesm2022/ngx-t-forms-getInputIcon-B4ADgevZ.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-image-capture-input-element.component-C1g7Z0cK.mjs +180 -0
- package/fesm2022/ngx-t-forms-image-capture-input-element.component-C1g7Z0cK.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-index-dDSobs6A.mjs +2 -0
- package/fesm2022/ngx-t-forms-index-dDSobs6A.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-input-custom.component-BkbHFAyR.mjs +105 -0
- package/fesm2022/ngx-t-forms-input-custom.component-BkbHFAyR.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-input-editor.component-BPUOM9kQ.mjs +181 -0
- package/fesm2022/ngx-t-forms-input-editor.component-BPUOM9kQ.mjs.map +1 -0
- package/fesm2022/{ngx-t-forms-map-mat-options-keys-CbdW82su.mjs → ngx-t-forms-map-mat-options-keys-B6hJ7Io5.mjs} +12 -14
- package/fesm2022/ngx-t-forms-map-mat-options-keys-B6hJ7Io5.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-c7uZT1sr.mjs +66 -0
- package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-c7uZT1sr.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-mat-slider-editor.component-CTSBrM-j.mjs +211 -0
- package/fesm2022/ngx-t-forms-mat-slider-editor.component-CTSBrM-j.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-CcYiwx-8.mjs +165 -0
- package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-CcYiwx-8.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-missing-form-configs.component-DrnH8qdG.mjs +38 -0
- package/fesm2022/ngx-t-forms-missing-form-configs.component-DrnH8qdG.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-mscoa-chart-toolbar.component-C_abEBQ5.mjs +38 -0
- package/fesm2022/ngx-t-forms-mscoa-chart-toolbar.component-C_abEBQ5.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-mscoa-error-display.component-99DpVSy7.mjs +126 -0
- package/fesm2022/ngx-t-forms-mscoa-error-display.component-99DpVSy7.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-mscoa-segment-config.component-C0qsMfsq.mjs +336 -0
- package/fesm2022/ngx-t-forms-mscoa-segment-config.component-C0qsMfsq.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-mscoa-temporary-hint.component-B1Z-IXSL.mjs +74 -0
- package/fesm2022/ngx-t-forms-mscoa-temporary-hint.component-B1Z-IXSL.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-multiple-input-input-element.component-C7y1OGPx.mjs +905 -0
- package/fesm2022/ngx-t-forms-multiple-input-input-element.component-C7y1OGPx.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-ngx-t-forms-u_kigDid.mjs +19461 -0
- package/fesm2022/ngx-t-forms-ngx-t-forms-u_kigDid.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-paginated-selection-table-AQZSMmhr.mjs +555 -0
- package/fesm2022/ngx-t-forms-paginated-selection-table-AQZSMmhr.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-pipeline-generator.component-DmNSc5aw.mjs +748 -0
- package/fesm2022/ngx-t-forms-pipeline-generator.component-DmNSc5aw.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-record-list-manager.component-CUMMvMch.mjs +358 -0
- package/fesm2022/ngx-t-forms-record-list-manager.component-CUMMvMch.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-required-inputs.component-Ch2yNcIS.mjs +272 -0
- package/fesm2022/ngx-t-forms-required-inputs.component-Ch2yNcIS.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-rest-api-call-setup.component-C_aFtdvW.mjs +398 -0
- package/fesm2022/ngx-t-forms-rest-api-call-setup.component-C_aFtdvW.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-search-field.component-B2ZO7lqO.mjs +38 -0
- package/fesm2022/ngx-t-forms-search-field.component-B2ZO7lqO.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-section-report.component-BxOhR6C0.mjs +98 -0
- package/fesm2022/ngx-t-forms-section-report.component-BxOhR6C0.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-select-input-element.component-DbgZdNoe.mjs +150 -0
- package/fesm2022/ngx-t-forms-select-input-element.component-DbgZdNoe.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-selection-options-editor.component-Dhln81DL.mjs +169 -0
- package/fesm2022/ngx-t-forms-selection-options-editor.component-Dhln81DL.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-t-workflow-picker.component-leBokXvM.mjs +204 -0
- package/fesm2022/ngx-t-forms-t-workflow-picker.component-leBokXvM.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-textarea-input-element.component-BEbXJjFA.mjs +95 -0
- package/fesm2022/ngx-t-forms-textarea-input-element.component-BEbXJjFA.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-toggle-input-element.component-DDErRUJd.mjs +82 -0
- package/fesm2022/ngx-t-forms-toggle-input-element.component-DDErRUJd.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-validators-config.component-oGjQVGE2.mjs +733 -0
- package/fesm2022/ngx-t-forms-validators-config.component-oGjQVGE2.mjs.map +1 -0
- package/fesm2022/ngx-t-forms-workflow-adjudication.component-CtU8dECN.mjs +1303 -0
- package/fesm2022/ngx-t-forms-workflow-adjudication.component-CtU8dECN.mjs.map +1 -0
- package/fesm2022/ngx-t-forms.mjs +2 -1
- package/fesm2022/ngx-t-forms.mjs.map +1 -1
- package/package.json +20 -18
- package/styles/_editor-mixins.scss +62 -0
- package/styles/_json-editor-syntax.scss +26 -0
- package/styles/_signature-pad.scss +26 -0
- package/styles/_tokens.scss +148 -0
- package/types/ngx-t-forms.d.ts +1767 -621
- package/fesm2022/ngx-t-forms-calculated-field-rules.component-D-SBMdYg.mjs +0 -313
- package/fesm2022/ngx-t-forms-calculated-field-rules.component-D-SBMdYg.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-chip-options-creator-editor.component-1cpszpPN.mjs +0 -191
- package/fesm2022/ngx-t-forms-chip-options-creator-editor.component-1cpszpPN.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-DFdAVWTg.mjs +0 -207
- package/fesm2022/ngx-t-forms-config-mscoa-additional-inputs.component-DFdAVWTg.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-data-source-picker.component-DxORinAD.mjs +0 -204
- package/fesm2022/ngx-t-forms-data-source-picker.component-DxORinAD.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-document-list-label-config-editor.component-DcWS1txl.mjs +0 -289
- package/fesm2022/ngx-t-forms-document-list-label-config-editor.component-DcWS1txl.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-form-input-selector.component-B2QEnvkq.mjs +0 -134
- package/fesm2022/ngx-t-forms-form-input-selector.component-B2QEnvkq.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-form-json-view.component-DePf44w6.mjs +0 -22
- package/fesm2022/ngx-t-forms-form-json-view.component-DePf44w6.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-form-section-stepper.component-BTkcSjg7.mjs +0 -270
- package/fesm2022/ngx-t-forms-form-section-stepper.component-BTkcSjg7.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-forms-builder-menu.component-Wamzf_sq.mjs +0 -345
- package/fesm2022/ngx-t-forms-forms-builder-menu.component-Wamzf_sq.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-input-editor.component-D4xHO76K.mjs +0 -147
- package/fesm2022/ngx-t-forms-input-editor.component-D4xHO76K.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-map-mat-options-keys-CbdW82su.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-DmTyO9Wi.mjs +0 -105
- package/fesm2022/ngx-t-forms-mat-chip-list-editor.component-DmTyO9Wi.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mat-slider-editor.component-DZ4TenrI.mjs +0 -109
- package/fesm2022/ngx-t-forms-mat-slider-editor.component-DZ4TenrI.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-DPyBYE4p.mjs +0 -155
- package/fesm2022/ngx-t-forms-mat-slider-toggle-editor.component-DPyBYE4p.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-missing-form-configs.component-BRmnwAK6.mjs +0 -28
- package/fesm2022/ngx-t-forms-missing-form-configs.component-BRmnwAK6.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mscoa-chart-toolbar.component-D_umeAPL.mjs +0 -43
- package/fesm2022/ngx-t-forms-mscoa-chart-toolbar.component-D_umeAPL.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mscoa-error-display.component-CSX2NCNU.mjs +0 -116
- package/fesm2022/ngx-t-forms-mscoa-error-display.component-CSX2NCNU.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mscoa-segment-config.component-B6IF8kGg.mjs +0 -296
- package/fesm2022/ngx-t-forms-mscoa-segment-config.component-B6IF8kGg.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-mscoa-temporary-hint.component-BPkjsRmH.mjs +0 -83
- package/fesm2022/ngx-t-forms-mscoa-temporary-hint.component-BPkjsRmH.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-ngx-t-forms-D9qmig6g.mjs +0 -16844
- package/fesm2022/ngx-t-forms-ngx-t-forms-D9qmig6g.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-pipeline-generator.component-DBJEyCbd.mjs +0 -613
- package/fesm2022/ngx-t-forms-pipeline-generator.component-DBJEyCbd.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-record-list-manager.component-Dgs9lNSr.mjs +0 -269
- package/fesm2022/ngx-t-forms-record-list-manager.component-Dgs9lNSr.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-required-inputs.component-CSIJvSHq.mjs +0 -190
- package/fesm2022/ngx-t-forms-required-inputs.component-CSIJvSHq.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-rest-api-call-setup.component-CY-JSkGs.mjs +0 -291
- package/fesm2022/ngx-t-forms-rest-api-call-setup.component-CY-JSkGs.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-section-report.component-12-KdKT6.mjs +0 -156
- package/fesm2022/ngx-t-forms-section-report.component-12-KdKT6.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-selection-options-editor.component-Be3QAG_L.mjs +0 -186
- package/fesm2022/ngx-t-forms-selection-options-editor.component-Be3QAG_L.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-t-workflow-picker.component-a4f1r8gH.mjs +0 -187
- package/fesm2022/ngx-t-forms-t-workflow-picker.component-a4f1r8gH.mjs.map +0 -1
- package/fesm2022/ngx-t-forms-validators-config.component-B3j9Dmgu.mjs +0 -215
- package/fesm2022/ngx-t-forms-validators-config.component-B3j9Dmgu.mjs.map +0 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, output, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/material/button';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import * as i3 from '@angular/material/icon';
|
|
6
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
+
import * as i5 from '@angular/material/toolbar';
|
|
8
|
+
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
9
|
+
import { A as ACCOUNTING_BASIS, z as getToolbarColor, C as getToolbarBackground, G as getToolbarIconColor } from './ngx-t-forms-ngx-t-forms-u_kigDid.mjs';
|
|
10
|
+
|
|
11
|
+
class MscoaChartToolbarComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.accountingBasis = input(undefined, ...(ngDevMode ? [{ debugName: "accountingBasis" }] : /* istanbul ignore next */ []));
|
|
14
|
+
this.canCollapse = input(false, ...(ngDevMode ? [{ debugName: "canCollapse" }] : /* istanbul ignore next */ []));
|
|
15
|
+
this.isExpanded = input(true, ...(ngDevMode ? [{ debugName: "isExpanded" }] : /* istanbul ignore next */ []));
|
|
16
|
+
this.toggleExpansion = output();
|
|
17
|
+
this.ACCOUNTING_BASIS = ACCOUNTING_BASIS;
|
|
18
|
+
this.getToolbarColor = getToolbarColor;
|
|
19
|
+
this.getToolbarBackground = getToolbarBackground;
|
|
20
|
+
this.getToolbarIconColor = getToolbarIconColor;
|
|
21
|
+
this.displayBasis = computed(() => {
|
|
22
|
+
const basis = this.accountingBasis() || ACCOUNTING_BASIS.ACCRUAL;
|
|
23
|
+
return basis.charAt(0).toUpperCase() + basis.slice(1);
|
|
24
|
+
}, ...(ngDevMode ? [{ debugName: "displayBasis" }] : /* istanbul ignore next */ []));
|
|
25
|
+
}
|
|
26
|
+
onToggleClick() {
|
|
27
|
+
this.toggleExpansion.emit();
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: MscoaChartToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: MscoaChartToolbarComponent, isStandalone: true, selector: "lib-mscoa-chart-toolbar", inputs: { accountingBasis: { classPropertyName: "accountingBasis", publicName: "accountingBasis", isSignal: true, isRequired: false, transformFunction: null }, canCollapse: { classPropertyName: "canCollapse", publicName: "canCollapse", isSignal: true, isRequired: false, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleExpansion: "toggleExpansion" }, ngImport: i0, template: "<mat-toolbar\r\n [color]=\"getToolbarColor(accountingBasis())\"\r\n [style.background]=\"getToolbarBackground(accountingBasis())\"\r\n class=\"mscoa-chart-toolbar\"\r\n [attr.aria-label]=\"'Accounting basis: ' + displayBasis()\">\r\n\r\n <span class=\"mscoa-chart-toolbar__label\">\r\n Basis: {{ displayBasis() }}\r\n </span>\r\n\r\n <span class=\"spacer\"></span>\r\n\r\n @if (canCollapse()) {\r\n <button\r\n mat-icon-button\r\n (click)=\"onToggleClick()\"\r\n [attr.aria-label]=\"(isExpanded() ? 'Collapse' : 'Expand') + ' ' + displayBasis() + ' basis table'\"\r\n [attr.aria-expanded]=\"isExpanded()\">\r\n <mat-icon [style.color]=\"getToolbarIconColor(accountingBasis())\">\r\n {{ isExpanded() ? 'expand_less' : 'expand_more' }}\r\n </mat-icon>\r\n </button>\r\n }\r\n</mat-toolbar>\r\n", styles: [".mscoa-chart-toolbar{gap:var(--mscoa-chart-spacing-sm, 8px);height:48px;font-size:.875em;font-weight:500;transition:background-color var(--lib-forms-duration-hover) var(--lib-forms-easing)}.mscoa-chart-toolbar__label{flex:1}.mscoa-chart-toolbar button:focus-visible{outline:2px solid var(--mat-sys-primary);outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: MscoaChartToolbarComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: 'lib-mscoa-chart-toolbar', imports: [MatToolbarModule, MatButtonModule, MatIconModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-toolbar\r\n [color]=\"getToolbarColor(accountingBasis())\"\r\n [style.background]=\"getToolbarBackground(accountingBasis())\"\r\n class=\"mscoa-chart-toolbar\"\r\n [attr.aria-label]=\"'Accounting basis: ' + displayBasis()\">\r\n\r\n <span class=\"mscoa-chart-toolbar__label\">\r\n Basis: {{ displayBasis() }}\r\n </span>\r\n\r\n <span class=\"spacer\"></span>\r\n\r\n @if (canCollapse()) {\r\n <button\r\n mat-icon-button\r\n (click)=\"onToggleClick()\"\r\n [attr.aria-label]=\"(isExpanded() ? 'Collapse' : 'Expand') + ' ' + displayBasis() + ' basis table'\"\r\n [attr.aria-expanded]=\"isExpanded()\">\r\n <mat-icon [style.color]=\"getToolbarIconColor(accountingBasis())\">\r\n {{ isExpanded() ? 'expand_less' : 'expand_more' }}\r\n </mat-icon>\r\n </button>\r\n }\r\n</mat-toolbar>\r\n", styles: [".mscoa-chart-toolbar{gap:var(--mscoa-chart-spacing-sm, 8px);height:48px;font-size:.875em;font-weight:500;transition:background-color var(--lib-forms-duration-hover) var(--lib-forms-easing)}.mscoa-chart-toolbar__label{flex:1}.mscoa-chart-toolbar button:focus-visible{outline:2px solid var(--mat-sys-primary);outline-offset:2px}\n"] }]
|
|
35
|
+
}], propDecorators: { accountingBasis: [{ type: i0.Input, args: [{ isSignal: true, alias: "accountingBasis", required: false }] }], canCollapse: [{ type: i0.Input, args: [{ isSignal: true, alias: "canCollapse", required: false }] }], isExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isExpanded", required: false }] }], toggleExpansion: [{ type: i0.Output, args: ["toggleExpansion"] }] } });
|
|
36
|
+
|
|
37
|
+
export { MscoaChartToolbarComponent };
|
|
38
|
+
//# sourceMappingURL=ngx-t-forms-mscoa-chart-toolbar.component-C_abEBQ5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-t-forms-mscoa-chart-toolbar.component-C_abEBQ5.mjs","sources":["../../../projects/ngx-t-forms/src/lib/components/t-form-input/elements/mscoa-form-input/elements/mscoa-chart/components/mscoa-chart-toolbar/mscoa-chart-toolbar.component.ts","../../../projects/ngx-t-forms/src/lib/components/t-form-input/elements/mscoa-form-input/elements/mscoa-chart/components/mscoa-chart-toolbar/mscoa-chart-toolbar.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { ACCOUNTING_BASIS } from '../../utils/mscoa-chart.constants';\r\nimport { getToolbarBackground, getToolbarColor, getToolbarIconColor } from '../../utils/mscoa-chart.helpers';\r\nimport type { AccountingBasis } from '../../utils/mscoa-chart.constants';\r\n\r\n@Component({\r\n selector: 'lib-mscoa-chart-toolbar',\r\n imports: [MatToolbarModule, MatButtonModule, MatIconModule],\r\n templateUrl: './mscoa-chart-toolbar.component.html',\r\n styleUrls: ['./mscoa-chart-toolbar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MscoaChartToolbarComponent {\r\n readonly accountingBasis = input<AccountingBasis | string | undefined>(undefined);\r\n readonly canCollapse = input<boolean>(false);\r\n readonly isExpanded = input<boolean>(true);\r\n\r\n readonly toggleExpansion = output<void>();\r\n\r\n protected readonly ACCOUNTING_BASIS = ACCOUNTING_BASIS;\r\n\r\n protected readonly getToolbarColor = getToolbarColor;\r\n protected readonly getToolbarBackground = getToolbarBackground;\r\n protected readonly getToolbarIconColor = getToolbarIconColor;\r\n\r\n protected readonly displayBasis = computed<string>(() => {\r\n const basis = this.accountingBasis() || ACCOUNTING_BASIS.ACCRUAL;\r\n return basis.charAt(0).toUpperCase() + basis.slice(1);\r\n });\r\n\r\n protected onToggleClick(): void {\r\n this.toggleExpansion.emit();\r\n }\r\n}\r\n","<mat-toolbar\r\n [color]=\"getToolbarColor(accountingBasis())\"\r\n [style.background]=\"getToolbarBackground(accountingBasis())\"\r\n class=\"mscoa-chart-toolbar\"\r\n [attr.aria-label]=\"'Accounting basis: ' + displayBasis()\">\r\n\r\n <span class=\"mscoa-chart-toolbar__label\">\r\n Basis: {{ displayBasis() }}\r\n </span>\r\n\r\n <span class=\"spacer\"></span>\r\n\r\n @if (canCollapse()) {\r\n <button\r\n mat-icon-button\r\n (click)=\"onToggleClick()\"\r\n [attr.aria-label]=\"(isExpanded() ? 'Collapse' : 'Expand') + ' ' + displayBasis() + ' basis table'\"\r\n [attr.aria-expanded]=\"isExpanded()\">\r\n <mat-icon [style.color]=\"getToolbarIconColor(accountingBasis())\">\r\n {{ isExpanded() ? 'expand_less' : 'expand_more' }}\r\n </mat-icon>\r\n </button>\r\n }\r\n</mat-toolbar>\r\n"],"names":["i1"],"mappings":";;;;;;;;;;MAea,0BAA0B,CAAA;AAPvC,IAAA,WAAA,GAAA;AAQW,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAuC,SAAS,sFAAC;AACxE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAU,KAAK,kFAAC;AACnC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,IAAI,iFAAC;QAEjC,IAAA,CAAA,eAAe,GAAG,MAAM,EAAQ;QAEtB,IAAA,CAAA,gBAAgB,GAAG,gBAAgB;QAEnC,IAAA,CAAA,eAAe,GAAG,eAAe;QACjC,IAAA,CAAA,oBAAoB,GAAG,oBAAoB;QAC3C,IAAA,CAAA,mBAAmB,GAAG,mBAAmB;AAEzC,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAS,MAAK;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,gBAAgB,CAAC,OAAO;AAChE,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,QAAA,CAAC,mFAAC;AAKH,IAAA;IAHW,aAAa,GAAA;AACrB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;IAC7B;+GApBW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,ujBCfvC,g1BAwBA,EAAA,MAAA,EAAA,CAAA,0UAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDdY,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,qNAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAK/C,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACE,yBAAyB,EAAA,OAAA,EAC1B,CAAC,gBAAgB,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,eAAA,EAG1C,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,g1BAAA,EAAA,MAAA,EAAA,CAAA,0UAAA,CAAA,EAAA;;;;;"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, signal, computed, inject, DestroyRef, effect, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import * as i1 from '@angular/material/button';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import * as i3 from '@angular/material/icon';
|
|
7
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
8
|
+
import { Subject, timer } from 'rxjs';
|
|
9
|
+
import { takeUntil } from 'rxjs/operators';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Displays a list of error/warning/info/success messages inside the MSCOA chart UI.
|
|
13
|
+
* Optionally auto-hides after a duration and can be dismissed.
|
|
14
|
+
*/
|
|
15
|
+
class MscoaErrorDisplayComponent {
|
|
16
|
+
#destroyRef;
|
|
17
|
+
#hideTimer$;
|
|
18
|
+
#previousErrorsLength;
|
|
19
|
+
#initialized;
|
|
20
|
+
constructor() {
|
|
21
|
+
/** Error messages to display. */
|
|
22
|
+
this.errors = input([], ...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
|
|
23
|
+
/** Visual variant. */
|
|
24
|
+
this.type = input('error', ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
25
|
+
/** Optional context (segment, accounting basis, etc.) for screen readers / parent inspection. */
|
|
26
|
+
this.context = input(undefined, ...(ngDevMode ? [{ debugName: "context" }] : /* istanbul ignore next */ []));
|
|
27
|
+
/** Whether to render the leading icon. */
|
|
28
|
+
this.showIcon = input(true, ...(ngDevMode ? [{ debugName: "showIcon" }] : /* istanbul ignore next */ []));
|
|
29
|
+
/** Compact visual density. */
|
|
30
|
+
this.compact = input(false, ...(ngDevMode ? [{ debugName: "compact" }] : /* istanbul ignore next */ []));
|
|
31
|
+
/** When set, display auto-hides after this many ms. Keeps error styling. */
|
|
32
|
+
this.duration = input(undefined, ...(ngDevMode ? [{ debugName: "duration" }] : /* istanbul ignore next */ []));
|
|
33
|
+
/** Whether to show the dismiss button. */
|
|
34
|
+
this.showDismiss = input(false, ...(ngDevMode ? [{ debugName: "showDismiss" }] : /* istanbul ignore next */ []));
|
|
35
|
+
this.visible = signal(true, ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
|
|
36
|
+
this.iconName = computed(() => {
|
|
37
|
+
switch (this.type()) {
|
|
38
|
+
case 'error':
|
|
39
|
+
return 'error';
|
|
40
|
+
case 'warning':
|
|
41
|
+
return 'warning';
|
|
42
|
+
case 'info':
|
|
43
|
+
return 'info';
|
|
44
|
+
case 'success':
|
|
45
|
+
return 'check_circle';
|
|
46
|
+
default:
|
|
47
|
+
return 'error';
|
|
48
|
+
}
|
|
49
|
+
}, ...(ngDevMode ? [{ debugName: "iconName" }] : /* istanbul ignore next */ []));
|
|
50
|
+
this.ariaLabel = computed(() => {
|
|
51
|
+
const t = this.type();
|
|
52
|
+
const typeText = t === 'error'
|
|
53
|
+
? 'errors'
|
|
54
|
+
: t === 'warning'
|
|
55
|
+
? 'warnings'
|
|
56
|
+
: t === 'success'
|
|
57
|
+
? 'success messages'
|
|
58
|
+
: 'messages';
|
|
59
|
+
return `${this.errors().length} ${typeText}`;
|
|
60
|
+
}, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
61
|
+
this.#destroyRef = inject(DestroyRef);
|
|
62
|
+
this.#hideTimer$ = new Subject();
|
|
63
|
+
this.#previousErrorsLength = 0;
|
|
64
|
+
this.#initialized = false;
|
|
65
|
+
// Replaces ngOnInit + ngOnChanges. Reacts to errors[] / duration changes.
|
|
66
|
+
effect(() => {
|
|
67
|
+
const length = this.errors()?.length ?? 0;
|
|
68
|
+
const duration = this.duration();
|
|
69
|
+
const wasInitialized = this.#initialized;
|
|
70
|
+
const previousLength = this.#previousErrorsLength;
|
|
71
|
+
this.#previousErrorsLength = length;
|
|
72
|
+
this.#initialized = true;
|
|
73
|
+
if (!wasInitialized) {
|
|
74
|
+
// Initial pass — mirror old ngOnInit behaviour.
|
|
75
|
+
if (duration != null && length > 0) {
|
|
76
|
+
this.#show();
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (duration != null) {
|
|
81
|
+
if (length > 0 && previousLength === 0) {
|
|
82
|
+
this.#show();
|
|
83
|
+
}
|
|
84
|
+
else if (length === 0 && previousLength > 0) {
|
|
85
|
+
this.hide();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.visible.set(true);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
this.#destroyRef.onDestroy(() => {
|
|
93
|
+
this.#hideTimer$.next();
|
|
94
|
+
this.#hideTimer$.complete();
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
trackByIndex(index) {
|
|
98
|
+
return index;
|
|
99
|
+
}
|
|
100
|
+
#show() {
|
|
101
|
+
this.#hideTimer$.next();
|
|
102
|
+
this.visible.set(true);
|
|
103
|
+
const duration = this.duration();
|
|
104
|
+
if (duration != null && duration > 0) {
|
|
105
|
+
timer(duration)
|
|
106
|
+
.pipe(takeUntil(this.#hideTimer$), takeUntilDestroyed(this.#destroyRef))
|
|
107
|
+
.subscribe(() => this.hide());
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
hide() {
|
|
111
|
+
this.#hideTimer$.next();
|
|
112
|
+
this.visible.set(false);
|
|
113
|
+
}
|
|
114
|
+
dismiss() {
|
|
115
|
+
this.hide();
|
|
116
|
+
}
|
|
117
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: MscoaErrorDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: MscoaErrorDisplayComponent, isStandalone: true, selector: "lib-mscoa-error-display", inputs: { errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, showDismiss: { classPropertyName: "showDismiss", publicName: "showDismiss", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (visible() && errors() && errors().length > 0) {\r\n <div\r\n class=\"mscoa-error-display\"\r\n [class.mscoa-error-display--error]=\"type() === 'error'\"\r\n [class.mscoa-error-display--warning]=\"type() === 'warning'\"\r\n [class.mscoa-error-display--info]=\"type() === 'info'\"\r\n [class.mscoa-error-display--success]=\"type() === 'success'\"\r\n [class.mscoa-error-display--compact]=\"compact()\"\r\n role=\"alert\"\r\n [attr.aria-live]=\"type() === 'error' ? 'assertive' : 'polite'\"\r\n [attr.aria-label]=\"ariaLabel()\">\r\n\r\n @if (showIcon()) {\r\n <mat-icon\r\n class=\"mscoa-error-display__icon\"\r\n [class.mscoa-error-display__icon--error]=\"type() === 'error'\"\r\n [class.mscoa-error-display__icon--warning]=\"type() === 'warning'\"\r\n [class.mscoa-error-display__icon--info]=\"type() === 'info'\"\r\n [class.mscoa-error-display__icon--success]=\"type() === 'success'\"\r\n [attr.aria-hidden]=\"true\">\r\n {{ iconName() }}\r\n </mat-icon>\r\n }\r\n\r\n <div class=\"mscoa-error-display__content\">\r\n @if (errors().length === 1) {\r\n <p class=\"mscoa-error-display__message\">{{ errors()[0] }}</p>\r\n } @else {\r\n <ul class=\"mscoa-error-display__list\">\r\n @for (error of errors(); track trackByIndex($index)) {\r\n <li class=\"mscoa-error-display__item\">{{ error }}</li>\r\n }\r\n </ul>\r\n }\r\n <sub class=\"mscoa-error-display__hint\">\r\n Hover over the account for the error message or scroll to bottom of input to see all errors.\r\n </sub>\r\n </div>\r\n\r\n @if (showDismiss()) {\r\n <button\r\n class=\"mscoa-error-display__dismiss\"\r\n (click)=\"dismiss()\"\r\n [attr.aria-label]=\"'Dismiss'\"\r\n mat-icon-button\r\n type=\"button\">\r\n <mat-icon aria-hidden=\"true\">close</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n}\r\n", styles: [".mscoa-error-display{display:flex;align-items:flex-start;gap:var(--mscoa-chart-spacing-sm, 8px);padding:var(--mscoa-chart-spacing-md, 16px);border-radius:var(--mscoa-chart-border-radius, 4px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5;margin-top:var(--mscoa-chart-spacing-sm, 8px);transition:background-color var(--lib-forms-duration-hover) var(--lib-forms-easing),color var(--lib-forms-duration-hover) var(--lib-forms-easing),border-color var(--lib-forms-duration-hover) var(--lib-forms-easing)}.mscoa-error-display--compact{padding:var(--mscoa-chart-spacing-sm, 8px);font-size:13px}.mscoa-error-display--error{background-color:var(--sem-error-surface);color:var(--lib-forms-on-error-container);border-left:4px solid var(--sem-error)}.mscoa-error-display--warning{background-color:var(--sem-warning-surface);color:var(--lib-forms-on-surface);border-left:4px solid var(--sem-warning)}.mscoa-error-display--info{background-color:var(--sem-info-surface);color:var(--sem-info);border-left:4px solid var(--sem-info)}.mscoa-error-display--success{background-color:var(--sem-success-surface);color:var(--sem-success);border-left:4px solid var(--sem-success)}.mscoa-error-display__icon{flex-shrink:0;width:20px;height:20px;font-size:20px;margin-top:2px}.mscoa-error-display__icon--error{color:var(--sem-error)}.mscoa-error-display__icon--warning{color:var(--sem-warning)}.mscoa-error-display__icon--info{color:var(--sem-info)}.mscoa-error-display__icon--success{color:var(--sem-success)}.mscoa-error-display__content{flex:1;min-width:0}.mscoa-error-display__message{margin:0;font-weight:400}.mscoa-error-display__hint{display:block;margin:var(--mscoa-chart-spacing-xs, 4px) 0 0;font-size:12px;opacity:.85;font-weight:400}.mscoa-error-display__list{margin:0;padding-left:var(--mscoa-chart-spacing-md, 16px);list-style-type:disc}.mscoa-error-display__item{margin-bottom:var(--mscoa-chart-spacing-xs, 4px)}.mscoa-error-display__item:last-child{margin-bottom:0}.mscoa-error-display__dismiss{flex-shrink:0;width:24px;height:24px;opacity:.7;transition:opacity var(--lib-forms-duration-hover) var(--lib-forms-easing)}.mscoa-error-display__dismiss:hover{opacity:1}.mscoa-error-display__dismiss mat-icon{font-size:18px;width:18px;height:18px}@media(prefers-contrast:high){.mscoa-error-display{border-width:2px;font-weight:500}}@media(prefers-reduced-motion:reduce){.mscoa-error-display{transition:none}}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
119
|
+
}
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: MscoaErrorDisplayComponent, decorators: [{
|
|
121
|
+
type: Component,
|
|
122
|
+
args: [{ selector: 'lib-mscoa-error-display', imports: [MatButtonModule, MatIconModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "@if (visible() && errors() && errors().length > 0) {\r\n <div\r\n class=\"mscoa-error-display\"\r\n [class.mscoa-error-display--error]=\"type() === 'error'\"\r\n [class.mscoa-error-display--warning]=\"type() === 'warning'\"\r\n [class.mscoa-error-display--info]=\"type() === 'info'\"\r\n [class.mscoa-error-display--success]=\"type() === 'success'\"\r\n [class.mscoa-error-display--compact]=\"compact()\"\r\n role=\"alert\"\r\n [attr.aria-live]=\"type() === 'error' ? 'assertive' : 'polite'\"\r\n [attr.aria-label]=\"ariaLabel()\">\r\n\r\n @if (showIcon()) {\r\n <mat-icon\r\n class=\"mscoa-error-display__icon\"\r\n [class.mscoa-error-display__icon--error]=\"type() === 'error'\"\r\n [class.mscoa-error-display__icon--warning]=\"type() === 'warning'\"\r\n [class.mscoa-error-display__icon--info]=\"type() === 'info'\"\r\n [class.mscoa-error-display__icon--success]=\"type() === 'success'\"\r\n [attr.aria-hidden]=\"true\">\r\n {{ iconName() }}\r\n </mat-icon>\r\n }\r\n\r\n <div class=\"mscoa-error-display__content\">\r\n @if (errors().length === 1) {\r\n <p class=\"mscoa-error-display__message\">{{ errors()[0] }}</p>\r\n } @else {\r\n <ul class=\"mscoa-error-display__list\">\r\n @for (error of errors(); track trackByIndex($index)) {\r\n <li class=\"mscoa-error-display__item\">{{ error }}</li>\r\n }\r\n </ul>\r\n }\r\n <sub class=\"mscoa-error-display__hint\">\r\n Hover over the account for the error message or scroll to bottom of input to see all errors.\r\n </sub>\r\n </div>\r\n\r\n @if (showDismiss()) {\r\n <button\r\n class=\"mscoa-error-display__dismiss\"\r\n (click)=\"dismiss()\"\r\n [attr.aria-label]=\"'Dismiss'\"\r\n mat-icon-button\r\n type=\"button\">\r\n <mat-icon aria-hidden=\"true\">close</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n}\r\n", styles: [".mscoa-error-display{display:flex;align-items:flex-start;gap:var(--mscoa-chart-spacing-sm, 8px);padding:var(--mscoa-chart-spacing-md, 16px);border-radius:var(--mscoa-chart-border-radius, 4px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5;margin-top:var(--mscoa-chart-spacing-sm, 8px);transition:background-color var(--lib-forms-duration-hover) var(--lib-forms-easing),color var(--lib-forms-duration-hover) var(--lib-forms-easing),border-color var(--lib-forms-duration-hover) var(--lib-forms-easing)}.mscoa-error-display--compact{padding:var(--mscoa-chart-spacing-sm, 8px);font-size:13px}.mscoa-error-display--error{background-color:var(--sem-error-surface);color:var(--lib-forms-on-error-container);border-left:4px solid var(--sem-error)}.mscoa-error-display--warning{background-color:var(--sem-warning-surface);color:var(--lib-forms-on-surface);border-left:4px solid var(--sem-warning)}.mscoa-error-display--info{background-color:var(--sem-info-surface);color:var(--sem-info);border-left:4px solid var(--sem-info)}.mscoa-error-display--success{background-color:var(--sem-success-surface);color:var(--sem-success);border-left:4px solid var(--sem-success)}.mscoa-error-display__icon{flex-shrink:0;width:20px;height:20px;font-size:20px;margin-top:2px}.mscoa-error-display__icon--error{color:var(--sem-error)}.mscoa-error-display__icon--warning{color:var(--sem-warning)}.mscoa-error-display__icon--info{color:var(--sem-info)}.mscoa-error-display__icon--success{color:var(--sem-success)}.mscoa-error-display__content{flex:1;min-width:0}.mscoa-error-display__message{margin:0;font-weight:400}.mscoa-error-display__hint{display:block;margin:var(--mscoa-chart-spacing-xs, 4px) 0 0;font-size:12px;opacity:.85;font-weight:400}.mscoa-error-display__list{margin:0;padding-left:var(--mscoa-chart-spacing-md, 16px);list-style-type:disc}.mscoa-error-display__item{margin-bottom:var(--mscoa-chart-spacing-xs, 4px)}.mscoa-error-display__item:last-child{margin-bottom:0}.mscoa-error-display__dismiss{flex-shrink:0;width:24px;height:24px;opacity:.7;transition:opacity var(--lib-forms-duration-hover) var(--lib-forms-easing)}.mscoa-error-display__dismiss:hover{opacity:1}.mscoa-error-display__dismiss mat-icon{font-size:18px;width:18px;height:18px}@media(prefers-contrast:high){.mscoa-error-display{border-width:2px;font-weight:500}}@media(prefers-reduced-motion:reduce){.mscoa-error-display{transition:none}}\n"] }]
|
|
123
|
+
}], ctorParameters: () => [], propDecorators: { errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], duration: [{ type: i0.Input, args: [{ isSignal: true, alias: "duration", required: false }] }], showDismiss: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDismiss", required: false }] }] } });
|
|
124
|
+
|
|
125
|
+
export { MscoaErrorDisplayComponent };
|
|
126
|
+
//# sourceMappingURL=ngx-t-forms-mscoa-error-display.component-99DpVSy7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-t-forms-mscoa-error-display.component-99DpVSy7.mjs","sources":["../../../projects/ngx-t-forms/src/lib/components/t-form-input/elements/mscoa-form-input/elements/mscoa-chart/components/mscoa-error-display/mscoa-error-display.component.ts","../../../projects/ngx-t-forms/src/lib/components/t-form-input/elements/mscoa-form-input/elements/mscoa-chart/components/mscoa-error-display/mscoa-error-display.component.html"],"sourcesContent":["import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n ViewEncapsulation,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { Subject, timer } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nexport type ErrorDisplayType = 'error' | 'warning' | 'info' | 'success';\r\n\r\nexport interface ErrorDisplayContext {\r\n segment?: string;\r\n accountingBasis?: string;\r\n [key: string]: unknown;\r\n}\r\n\r\n/**\r\n * Displays a list of error/warning/info/success messages inside the MSCOA chart UI.\r\n * Optionally auto-hides after a duration and can be dismissed.\r\n */\r\n@Component({\r\n selector: 'lib-mscoa-error-display',\r\n imports: [MatButtonModule, MatIconModule],\r\n templateUrl: './mscoa-error-display.component.html',\r\n styleUrls: ['./mscoa-error-display.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.Emulated,\r\n})\r\nexport class MscoaErrorDisplayComponent {\r\n /** Error messages to display. */\r\n readonly errors = input<string[]>([]);\r\n /** Visual variant. */\r\n readonly type = input<ErrorDisplayType>('error');\r\n /** Optional context (segment, accounting basis, etc.) for screen readers / parent inspection. */\r\n readonly context = input<ErrorDisplayContext | undefined>(undefined);\r\n /** Whether to render the leading icon. */\r\n readonly showIcon = input<boolean>(true);\r\n /** Compact visual density. */\r\n readonly compact = input<boolean>(false);\r\n /** When set, display auto-hides after this many ms. Keeps error styling. */\r\n readonly duration = input<number | undefined>(undefined);\r\n /** Whether to show the dismiss button. */\r\n readonly showDismiss = input<boolean>(false);\r\n\r\n protected readonly visible = signal<boolean>(true);\r\n\r\n protected readonly iconName = computed<string>(() => {\r\n switch (this.type()) {\r\n case 'error':\r\n return 'error';\r\n case 'warning':\r\n return 'warning';\r\n case 'info':\r\n return 'info';\r\n case 'success':\r\n return 'check_circle';\r\n default:\r\n return 'error';\r\n }\r\n });\r\n\r\n protected readonly ariaLabel = computed<string>(() => {\r\n const t = this.type();\r\n const typeText =\r\n t === 'error'\r\n ? 'errors'\r\n : t === 'warning'\r\n ? 'warnings'\r\n : t === 'success'\r\n ? 'success messages'\r\n : 'messages';\r\n return `${this.errors().length} ${typeText}`;\r\n });\r\n\r\n readonly #destroyRef = inject(DestroyRef);\r\n readonly #hideTimer$ = new Subject<void>();\r\n #previousErrorsLength = 0;\r\n #initialized = false;\r\n\r\n constructor() {\r\n // Replaces ngOnInit + ngOnChanges. Reacts to errors[] / duration changes.\r\n effect(() => {\r\n const length = this.errors()?.length ?? 0;\r\n const duration = this.duration();\r\n const wasInitialized = this.#initialized;\r\n const previousLength = this.#previousErrorsLength;\r\n this.#previousErrorsLength = length;\r\n this.#initialized = true;\r\n\r\n if (!wasInitialized) {\r\n // Initial pass — mirror old ngOnInit behaviour.\r\n if (duration != null && length > 0) {\r\n this.#show();\r\n }\r\n return;\r\n }\r\n\r\n if (duration != null) {\r\n if (length > 0 && previousLength === 0) {\r\n this.#show();\r\n } else if (length === 0 && previousLength > 0) {\r\n this.hide();\r\n }\r\n } else {\r\n this.visible.set(true);\r\n }\r\n });\r\n\r\n this.#destroyRef.onDestroy(() => {\r\n this.#hideTimer$.next();\r\n this.#hideTimer$.complete();\r\n });\r\n }\r\n\r\n protected trackByIndex(index: number): number {\r\n return index;\r\n }\r\n\r\n #show(): void {\r\n this.#hideTimer$.next();\r\n this.visible.set(true);\r\n const duration = this.duration();\r\n if (duration != null && duration > 0) {\r\n timer(duration)\r\n .pipe(takeUntil(this.#hideTimer$), takeUntilDestroyed(this.#destroyRef))\r\n .subscribe(() => this.hide());\r\n }\r\n }\r\n\r\n hide(): void {\r\n this.#hideTimer$.next();\r\n this.visible.set(false);\r\n }\r\n\r\n dismiss(): void {\r\n this.hide();\r\n }\r\n}\r\n","@if (visible() && errors() && errors().length > 0) {\r\n <div\r\n class=\"mscoa-error-display\"\r\n [class.mscoa-error-display--error]=\"type() === 'error'\"\r\n [class.mscoa-error-display--warning]=\"type() === 'warning'\"\r\n [class.mscoa-error-display--info]=\"type() === 'info'\"\r\n [class.mscoa-error-display--success]=\"type() === 'success'\"\r\n [class.mscoa-error-display--compact]=\"compact()\"\r\n role=\"alert\"\r\n [attr.aria-live]=\"type() === 'error' ? 'assertive' : 'polite'\"\r\n [attr.aria-label]=\"ariaLabel()\">\r\n\r\n @if (showIcon()) {\r\n <mat-icon\r\n class=\"mscoa-error-display__icon\"\r\n [class.mscoa-error-display__icon--error]=\"type() === 'error'\"\r\n [class.mscoa-error-display__icon--warning]=\"type() === 'warning'\"\r\n [class.mscoa-error-display__icon--info]=\"type() === 'info'\"\r\n [class.mscoa-error-display__icon--success]=\"type() === 'success'\"\r\n [attr.aria-hidden]=\"true\">\r\n {{ iconName() }}\r\n </mat-icon>\r\n }\r\n\r\n <div class=\"mscoa-error-display__content\">\r\n @if (errors().length === 1) {\r\n <p class=\"mscoa-error-display__message\">{{ errors()[0] }}</p>\r\n } @else {\r\n <ul class=\"mscoa-error-display__list\">\r\n @for (error of errors(); track trackByIndex($index)) {\r\n <li class=\"mscoa-error-display__item\">{{ error }}</li>\r\n }\r\n </ul>\r\n }\r\n <sub class=\"mscoa-error-display__hint\">\r\n Hover over the account for the error message or scroll to bottom of input to see all errors.\r\n </sub>\r\n </div>\r\n\r\n @if (showDismiss()) {\r\n <button\r\n class=\"mscoa-error-display__dismiss\"\r\n (click)=\"dismiss()\"\r\n [attr.aria-label]=\"'Dismiss'\"\r\n mat-icon-button\r\n type=\"button\">\r\n <mat-icon aria-hidden=\"true\">close</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n}\r\n"],"names":["i2"],"mappings":"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"}
|