@verisoft/ui-core 20.1.3 → 21.0.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"verisoft-ui-core.mjs","sources":["../tmp-esm2022/lib/common/angular-helper.js","../tmp-esm2022/lib/common/control.models.js","../tmp-esm2022/lib/common/constants.js","../tmp-esm2022/lib/common/datasource-component.model.js","../tmp-esm2022/lib/common/filter.js","../tmp-esm2022/lib/common/rxjs.js","../tmp-esm2022/lib/common/download-file.js","../tmp-esm2022/lib/components/action-button-group/action-button-group.model.js","../tmp-esm2022/lib/components/base-form/base-form-input.component.js","../tmp-esm2022/lib/services/screen-size.service.js","../tmp-esm2022/lib/services/confirm-dialog.service.js","../tmp-esm2022/lib/services/leave-form.service.js","../tmp-esm2022/lib/services/table.service.js","../tmp-esm2022/lib/components/base-form/models/base-form-input.models.js","../tmp-esm2022/lib/components/base-form/models/base-form.models.js","../tmp-esm2022/lib/components/base-form/base-form.component.js","../tmp-esm2022/lib/components/unsubscribe.component.js","../tmp-esm2022/lib/components/base-form/directives/detail-store.directive.js","../tmp-esm2022/lib/components/breadcrumb/breadcrumb.model.js","../tmp-esm2022/lib/components/breadcrumb/breadcrumb.service.js","../tmp-esm2022/lib/components/breadcrumb/breadcrumbcore.component.js","../tmp-esm2022/lib/components/button/button.model.js","../tmp-esm2022/lib/components/dropdown-button/dropdown-button.model.js","../tmp-esm2022/lib/components/calendar/calendar.model.js","../tmp-esm2022/lib/components/checkbox/checkbox.model.js","../tmp-esm2022/lib/components/confirm-dialog/confirm-dialog.model.js","../tmp-esm2022/lib/components/dropdown/dropdown.model.js","../tmp-esm2022/lib/components/filter/filter.model.js","../tmp-esm2022/lib/components/form-field/form-field.model.js","../tmp-esm2022/lib/components/generic-field/generic-field.model.js","../tmp-esm2022/lib/components/generic-form/generic-form.component.js","../tmp-esm2022/lib/components/header/header.model.js","../tmp-esm2022/lib/components/input-group/input-group.model.js","../tmp-esm2022/lib/components/loader/loader.model.js","../tmp-esm2022/lib/components/multiselect/mutiselect.model.js","../tmp-esm2022/lib/components/number-input/number-input.model.js","../tmp-esm2022/lib/components/page-header/page-header.model.js","../tmp-esm2022/lib/components/page-header/page-header.service.js","../tmp-esm2022/lib/components/page-header/page-headercore.component.js","../tmp-esm2022/lib/components/password/password.model.js","../tmp-esm2022/lib/components/radiobutton/radiobutton.model.js","../tmp-esm2022/lib/components/section/section.model.js","../tmp-esm2022/lib/components/side-menu/side-menu.model.js","../tmp-esm2022/lib/components/side-menu/services/side-menu.service.js","../tmp-esm2022/lib/components/side-menu/services/side-menu-provider.service.js","../tmp-esm2022/lib/components/side-menu/directives/side-menu-service.directive.js","../tmp-esm2022/lib/components/slider/slider.model.js","../tmp-esm2022/lib/components/snackbar/snackbar.model.js","../tmp-esm2022/lib/components/stepper/stepper.model.js","../tmp-esm2022/lib/components/switch/switch.model.js","../tmp-esm2022/lib/components/tab-view/tab-view.model.js","../tmp-esm2022/lib/components/table/table.models.js","../tmp-esm2022/lib/components/table/table-column.directive.js","../tmp-esm2022/lib/components/table/column-configuration.js","../tmp-esm2022/lib/components/table/table-builder.js","../tmp-esm2022/lib/components/table-filter/table-filter.model.js","../tmp-esm2022/lib/components/textarea/textarea.model.js","../tmp-esm2022/lib/components/textfield/textfield.model.js","../tmp-esm2022/lib/components/tooltip/tooltip.model.js","../tmp-esm2022/lib/components/icons/icons.model.js","../tmp-esm2022/lib/components/icons/icons.component.js","../tmp-esm2022/lib/components/tag/tag.model.js","../tmp-esm2022/lib/directives/datasource.directive.js","../tmp-esm2022/lib/directives/table-datasource.directive.js","../tmp-esm2022/lib/directives/shortcut.directive.js","../tmp-esm2022/lib/directives/table-filter.directive.js","../tmp-esm2022/lib/pipes/error/error.codes.js","../tmp-esm2022/lib/pipes/error/error.models.js","../tmp-esm2022/lib/pipes/error/error.pipe.js","../tmp-esm2022/lib/pipes/error/warning.codes.js","../tmp-esm2022/lib/pipes/error/warning.pipe.js","../tmp-esm2022/lib/pipes/keyOrFn/keyOrFn.pipe.js","../tmp-esm2022/lib/pipes/helper/enumToList.pipe.js","../tmp-esm2022/lib/format/format.js","../tmp-esm2022/verisoft-ui-core.js"],"sourcesContent":["import { SimpleChange } from '@angular/core';\nexport function setComponentProperties(component, value, firstChange = false) {\n if (!value || !component) {\n return;\n }\n const simpleChanges = Object.keys(value).reduce((changes, property) => {\n const indexedComponent = component;\n const indexedValue = value;\n const previousValue = indexedComponent[property];\n const currentValue = indexedValue[property];\n if (currentValue !== previousValue) {\n indexedComponent[property] = currentValue;\n const change = new SimpleChange(previousValue, currentValue, firstChange);\n return { ...changes, [property]: change };\n }\n return changes;\n }, {});\n const changeableComponent = component;\n if (changeableComponent['ngOnChanges']) {\n changeableComponent.ngOnChanges(simpleChanges);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tbW9uL2FuZ3VsYXItaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxZQUFZLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsU0FBcUIsRUFDckIsS0FBMEIsRUFDMUIsV0FBVyxHQUFHLEtBQUs7SUFFbkIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQzdDLENBQUMsT0FBc0IsRUFBRSxRQUFnQixFQUFFLEVBQUU7UUFDM0MsTUFBTSxnQkFBZ0IsR0FBRyxTQUV4QixDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUcsS0FFcEIsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FDL0IsUUFBUSxDQUN1QixDQUFDO1FBQ2xDLElBQUksWUFBWSxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ25DLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxHQUFHLFlBQVksQ0FBQztZQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQVksQ0FDN0IsYUFBYSxFQUNiLFlBQVksRUFDWixXQUFXLENBQ1osQ0FBQztZQUVGLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLEVBQ0QsRUFBRSxDQUNILENBQUM7SUFFRixNQUFNLG1CQUFtQixHQUFHLFNBQWlDLENBQUM7SUFDOUQsSUFBSSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Q29tcG9uZW50UHJvcGVydGllczxUQ29tcG9uZW50PihcclxuICBjb21wb25lbnQ6IFRDb21wb25lbnQsXHJcbiAgdmFsdWU6IFBhcnRpYWw8VENvbXBvbmVudD4sXHJcbiAgZmlyc3RDaGFuZ2UgPSBmYWxzZVxyXG4pIHtcclxuICBpZiAoIXZhbHVlIHx8ICFjb21wb25lbnQpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNpbXBsZUNoYW5nZXMgPSBPYmplY3Qua2V5cyh2YWx1ZSkucmVkdWNlKFxyXG4gICAgKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMsIHByb3BlcnR5OiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgaW5kZXhlZENvbXBvbmVudCA9IGNvbXBvbmVudCBhcyB1bmtub3duIGFzIHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBUQ29tcG9uZW50W2tleW9mIFRDb21wb25lbnRdO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBpbmRleGVkVmFsdWUgPSB2YWx1ZSBhcyB1bmtub3duIGFzIHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBUQ29tcG9uZW50W2tleW9mIFRDb21wb25lbnRdO1xyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gaW5kZXhlZENvbXBvbmVudFtwcm9wZXJ0eV07XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGluZGV4ZWRWYWx1ZVtcclxuICAgICAgICBwcm9wZXJ0eVxyXG4gICAgICBdIGFzIFRDb21wb25lbnRba2V5b2YgVENvbXBvbmVudF07XHJcbiAgICAgIGlmIChjdXJyZW50VmFsdWUgIT09IHByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICBpbmRleGVkQ29tcG9uZW50W3Byb3BlcnR5XSA9IGN1cnJlbnRWYWx1ZTtcclxuICAgICAgICBjb25zdCBjaGFuZ2UgPSBuZXcgU2ltcGxlQ2hhbmdlKFxyXG4gICAgICAgICAgcHJldmlvdXNWYWx1ZSxcclxuICAgICAgICAgIGN1cnJlbnRWYWx1ZSxcclxuICAgICAgICAgIGZpcnN0Q2hhbmdlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHsgLi4uY2hhbmdlcywgW3Byb3BlcnR5XTogY2hhbmdlIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBjaGFuZ2VzO1xyXG4gICAgfSxcclxuICAgIHt9XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgY2hhbmdlYWJsZUNvbXBvbmVudCA9IGNvbXBvbmVudCBhcyB1bmtub3duIGFzIE9uQ2hhbmdlcztcclxuICBpZiAoY2hhbmdlYWJsZUNvbXBvbmVudFsnbmdPbkNoYW5nZXMnXSkge1xyXG4gICAgY2hhbmdlYWJsZUNvbXBvbmVudC5uZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzKTtcclxuICB9XHJcbn1cclxuIl19","export var ControlSeverity;\n(function (ControlSeverity) {\n ControlSeverity[\"success\"] = \"success\";\n ControlSeverity[\"info\"] = \"info\";\n ControlSeverity[\"warning\"] = \"warning\";\n ControlSeverity[\"danger\"] = \"danger\";\n ControlSeverity[\"help\"] = \"help\";\n ControlSeverity[\"primary\"] = \"primary\";\n ControlSeverity[\"secondary\"] = \"secondary\";\n ControlSeverity[\"contrast\"] = \"contrast\";\n})(ControlSeverity || (ControlSeverity = {}));\nexport var GovControlSeverity;\n(function (GovControlSeverity) {\n GovControlSeverity[\"primary\"] = \"primary\";\n GovControlSeverity[\"secondary\"] = \"secondary\";\n GovControlSeverity[\"neutral\"] = \"neutral\";\n GovControlSeverity[\"error\"] = \"error\";\n GovControlSeverity[\"success\"] = \"success\";\n GovControlSeverity[\"warning\"] = \"warning\";\n})(GovControlSeverity || (GovControlSeverity = {}));\nexport var GovButtonType;\n(function (GovButtonType) {\n GovButtonType[\"solid\"] = \"solid\";\n GovButtonType[\"outlined\"] = \"outlined\";\n GovButtonType[\"base\"] = \"base\";\n GovButtonType[\"link\"] = \"link\";\n})(GovButtonType || (GovButtonType = {}));\nexport var IconPosition;\n(function (IconPosition) {\n IconPosition[\"left\"] = \"left\";\n IconPosition[\"right\"] = \"right\";\n})(IconPosition || (IconPosition = {}));\nexport var SlotPosition;\n(function (SlotPosition) {\n SlotPosition[\"top\"] = \"top\";\n SlotPosition[\"bottom\"] = \"bottom\";\n})(SlotPosition || (SlotPosition = {}));\nexport var Position;\n(function (Position) {\n Position[\"top\"] = \"top\";\n Position[\"bottom\"] = \"bottom\";\n Position[\"left\"] = \"left\";\n Position[\"right\"] = \"right\";\n})(Position || (Position = {}));\nexport var FieldSize;\n(function (FieldSize) {\n FieldSize[\"small\"] = \"small\";\n FieldSize[\"medium\"] = \"medium\";\n FieldSize[\"large\"] = \"large\";\n FieldSize[\"xl\"] = \"xl\";\n})(FieldSize || (FieldSize = {}));\nexport var FieldAlign;\n(function (FieldAlign) {\n FieldAlign[\"left\"] = \"left\";\n FieldAlign[\"center\"] = \"center\";\n FieldAlign[\"right\"] = \"right\";\n})(FieldAlign || (FieldAlign = {}));\nexport var FieldType;\n(function (FieldType) {\n FieldType[\"text\"] = \"text\";\n FieldType[\"number\"] = \"number\";\n FieldType[\"password\"] = \"password\";\n FieldType[\"search\"] = \"search\";\n FieldType[\"date\"] = \"date\";\n})(FieldType || (FieldType = {}));\nexport var LayoutType;\n(function (LayoutType) {\n LayoutType[\"horizontal\"] = \"horizontal\";\n LayoutType[\"vertical\"] = \"vertical\";\n})(LayoutType || (LayoutType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tbW9uL2NvbnRyb2wubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGVBU1g7QUFURCxXQUFZLGVBQWU7SUFDekIsc0NBQW1CLENBQUE7SUFDbkIsZ0NBQWEsQ0FBQTtJQUNiLHNDQUFtQixDQUFBO0lBQ25CLG9DQUFpQixDQUFBO0lBQ2pCLGdDQUFhLENBQUE7SUFDYixzQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBdUIsQ0FBQTtJQUN2Qix3Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVFcsZUFBZSxLQUFmLGVBQWUsUUFTMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxrQkFPWDtBQVBELFdBQVksa0JBQWtCO0lBQzVCLHlDQUFtQixDQUFBO0lBQ25CLDZDQUF1QixDQUFBO0lBQ3ZCLHlDQUFtQixDQUFBO0lBQ25CLHFDQUFlLENBQUE7SUFDZix5Q0FBbUIsQ0FBQTtJQUNuQix5Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBUFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQU83QjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDdkIsZ0NBQWUsQ0FBQTtJQUNmLHNDQUFxQixDQUFBO0lBQ3JCLDhCQUFhLENBQUE7SUFDYiw4QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUxXLGFBQWEsS0FBYixhQUFhLFFBS3hCO0FBRUQsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0Qiw2QkFBYSxDQUFBO0lBQ2IsK0JBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLDJCQUFXLENBQUE7SUFDWCxpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFFRCxNQUFNLENBQU4sSUFBWSxRQUtYO0FBTEQsV0FBWSxRQUFRO0lBQ2xCLHVCQUFXLENBQUE7SUFDWCw2QkFBaUIsQ0FBQTtJQUNqQix5QkFBYSxDQUFBO0lBQ2IsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTFcsUUFBUSxLQUFSLFFBQVEsUUFLbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLDRCQUFlLENBQUE7SUFDZiw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysc0JBQVMsQ0FBQTtBQUNYLENBQUMsRUFMVyxTQUFTLEtBQVQsU0FBUyxRQUtwQjtBQUVELE1BQU0sQ0FBTixJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLCtCQUFpQixDQUFBO0lBQ2pCLDZCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLFVBQVUsS0FBVixVQUFVLFFBSXJCO0FBRUQsTUFBTSxDQUFOLElBQVksU0FNWDtBQU5ELFdBQVksU0FBUztJQUNuQiwwQkFBYSxDQUFBO0lBQ2IsOEJBQWlCLENBQUE7SUFDakIsa0NBQXFCLENBQUE7SUFDckIsOEJBQWlCLENBQUE7SUFDakIsMEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFOVyxTQUFTLEtBQVQsU0FBUyxRQU1wQjtBQUVELE1BQU0sQ0FBTixJQUFZLFVBR1g7QUFIRCxXQUFZLFVBQVU7SUFDcEIsdUNBQXlCLENBQUE7SUFDekIsbUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUhXLFVBQVUsS0FBVixVQUFVLFFBR3JCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ29udHJvbFNldmVyaXR5IHtcclxuICBzdWNjZXNzID0gJ3N1Y2Nlc3MnLFxyXG4gIGluZm8gPSAnaW5mbycsXHJcbiAgd2FybmluZyA9ICd3YXJuaW5nJyxcclxuICBkYW5nZXIgPSAnZGFuZ2VyJyxcclxuICBoZWxwID0gJ2hlbHAnLFxyXG4gIHByaW1hcnkgPSAncHJpbWFyeScsXHJcbiAgc2Vjb25kYXJ5ID0gJ3NlY29uZGFyeScsXHJcbiAgY29udHJhc3QgPSAnY29udHJhc3QnLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBHb3ZDb250cm9sU2V2ZXJpdHkge1xyXG4gIHByaW1hcnkgPSAncHJpbWFyeScsXHJcbiAgc2Vjb25kYXJ5ID0gJ3NlY29uZGFyeScsXHJcbiAgbmV1dHJhbCA9ICduZXV0cmFsJyxcclxuICBlcnJvciA9ICdlcnJvcicsXHJcbiAgc3VjY2VzcyA9ICdzdWNjZXNzJyxcclxuICB3YXJuaW5nID0gJ3dhcm5pbmcnLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBHb3ZCdXR0b25UeXBlIHtcclxuICBzb2xpZCA9ICdzb2xpZCcsXHJcbiAgb3V0bGluZWQgPSBcIm91dGxpbmVkXCIsXHJcbiAgYmFzZSA9IFwiYmFzZVwiLFxyXG4gIGxpbmsgPSBcImxpbmtcIlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBJY29uUG9zaXRpb24ge1xyXG4gIGxlZnQgPSAnbGVmdCcsXHJcbiAgcmlnaHQgPSAncmlnaHQnLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTbG90UG9zaXRpb24ge1xyXG4gIHRvcCA9ICd0b3AnLFxyXG4gIGJvdHRvbSA9ICdib3R0b20nLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQb3NpdGlvbntcclxuICB0b3AgPSAndG9wJyxcclxuICBib3R0b20gPSAnYm90dG9tJyxcclxuICBsZWZ0ID0gJ2xlZnQnLFxyXG4gIHJpZ2h0ID0gJ3JpZ2h0JyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRmllbGRTaXplIHtcclxuICBzbWFsbCA9ICdzbWFsbCcsXHJcbiAgbWVkaXVtID0gJ21lZGl1bScsXHJcbiAgbGFyZ2UgPSAnbGFyZ2UnLFxyXG4gIHhsID0gJ3hsJyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRmllbGRBbGlnbiB7XHJcbiAgbGVmdCA9ICdsZWZ0JyxcclxuICBjZW50ZXIgPSAnY2VudGVyJyxcclxuICByaWdodCA9ICdyaWdodCcsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpZWxkVHlwZSB7XHJcbiAgdGV4dCA9ICd0ZXh0JyxcclxuICBudW1iZXIgPSAnbnVtYmVyJyxcclxuICBwYXNzd29yZCA9ICdwYXNzd29yZCcsXHJcbiAgc2VhcmNoID0gJ3NlYXJjaCcsXHJcbiAgZGF0ZSA9ICdkYXRlJyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTGF5b3V0VHlwZSB7XHJcbiAgaG9yaXpvbnRhbCA9ICdob3Jpem9udGFsJyxcclxuICB2ZXJ0aWNhbCA9ICd2ZXJ0aWNhbCcsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnRyb2xTZXZlcml0eVR5cGUgPSBrZXlvZiB0eXBlb2YgQ29udHJvbFNldmVyaXR5O1xyXG5leHBvcnQgdHlwZSBHb3ZDb250cm9sU2V2ZXJpdHlUeXBlID0ga2V5b2YgdHlwZW9mIEdvdkNvbnRyb2xTZXZlcml0eTtcclxuZXhwb3J0IHR5cGUgR292QnV0dG9uVHlwZVR5cGUgPSBrZXlvZiB0eXBlb2YgR292QnV0dG9uVHlwZTtcclxuZXhwb3J0IHR5cGUgSWNvblBvc2l0aW9uVHlwZSA9IGtleW9mIHR5cGVvZiBJY29uUG9zaXRpb247XHJcbmV4cG9ydCB0eXBlIFNsb3RQb3NpdGlvblR5cGUgPSBrZXlvZiB0eXBlb2YgU2xvdFBvc2l0aW9uO1xyXG5leHBvcnQgdHlwZSBQb3NpdGlvblR5cGUgPSBrZXlvZiB0eXBlb2YgUG9zaXRpb247XHJcbmV4cG9ydCB0eXBlIEZpZWxkU2l6ZVR5cGUgPSBrZXlvZiB0eXBlb2YgRmllbGRTaXplO1xyXG5leHBvcnQgdHlwZSBGaWVsZEFsaWduVHlwZSA9IGtleW9mIHR5cGVvZiBGaWVsZEFsaWduO1xyXG5leHBvcnQgdHlwZSBGaWVsZFR5cGVUeXBlID0ga2V5b2YgdHlwZW9mIEZpZWxkVHlwZTtcclxuZXhwb3J0IHR5cGUgTGF5b3V0VHlwZVR5cGUgPSBrZXlvZiB0eXBlb2YgTGF5b3V0VHlwZTtcclxuIl19","export const DEFAULT_DEBOUNCE_TIME = 300;\nexport const DEFAULT_PAGINATION = [10, 25, 50, 100];\nexport const MAX_COLUMN_CHAR_COUNT = 30;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbW1vbi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERFRkFVTFRfREVCT1VOQ0VfVElNRSA9IDMwMDtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEFHSU5BVElPTiA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuXG5leHBvcnQgY29uc3QgTUFYX0NPTFVNTl9DSEFSX0NPVU5UID0gMzA7Il19","export function setDataToArray(targetArray, data, offset = 0, total = undefined, defaultItem = undefined) {\n const totalItems = total ?? data.length + offset;\n if (!targetArray) {\n targetArray = Array(totalItems).fill(defaultItem);\n }\n if (targetArray.length < totalItems) {\n targetArray = targetArray.concat(new Array(totalItems - targetArray.length).fill(defaultItem));\n }\n for (let i = 0; i < data.length; i++) {\n targetArray[i + offset] = data[i] ?? defaultItem;\n }\n return targetArray;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1jb21wb25lbnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tbW9uL2RhdGFzb3VyY2UtY29tcG9uZW50Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxNQUFNLFVBQVUsY0FBYyxDQUM1QixXQUEwQyxFQUMxQyxJQUFTLEVBQ1QsTUFBTSxHQUFHLENBQUMsRUFDVixRQUE0QixTQUFTLEVBQ3JDLGNBQTZCLFNBQVM7SUFFdEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2pELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixXQUFXLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUM5QixJQUFJLEtBQUssQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDN0QsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3JDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQztJQUNuRCxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWx0ZXJFdmVudCwgTGF6eUxvYWRFdmVudCwgUmVxdWVzdFBhcmFtcyB9IGZyb20gJ0B2ZXJpc29mdC9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNvdXJjZUNvbXBvbmVudE1vZGVsPFRFbnRpdHk+IHtcclxuICBuZ09uQ2hhbmdlcz86IChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSA9PiB2b2lkO1xyXG4gIGxhenk6IGJvb2xlYW47XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBmaWx0ZXI6IGJvb2xlYW47XHJcbiAgb3B0aW9uczogVEVudGl0eVtdIHwgdW5kZWZpbmVkO1xyXG4gIG9wdGlvblZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgb3B0aW9uTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBzaG93ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIGNsZWFyZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIGZpbHRlcmVkOiBFdmVudEVtaXR0ZXI8RmlsdGVyRXZlbnQ+O1xyXG4gIGxhenlMb2FkOiBFdmVudEVtaXR0ZXI8TGF6eUxvYWRFdmVudD47XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXREYXRhVG9BcnJheTxUPihcclxuICB0YXJnZXRBcnJheTogKFQgfCB1bmRlZmluZWQpW10gfCB1bmRlZmluZWQsXHJcbiAgZGF0YTogVFtdLFxyXG4gIG9mZnNldCA9IDAsXHJcbiAgdG90YWw6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcclxuICBkZWZhdWx0SXRlbTogVCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxyXG4pOiAoVCB8IHVuZGVmaW5lZClbXSB7XHJcbiAgY29uc3QgdG90YWxJdGVtcyA9IHRvdGFsID8/IGRhdGEubGVuZ3RoICsgb2Zmc2V0O1xyXG4gIGlmICghdGFyZ2V0QXJyYXkpIHtcclxuICAgIHRhcmdldEFycmF5ID0gQXJyYXkodG90YWxJdGVtcykuZmlsbChkZWZhdWx0SXRlbSk7XHJcbiAgfVxyXG5cclxuICBpZiAodGFyZ2V0QXJyYXkubGVuZ3RoIDwgdG90YWxJdGVtcykge1xyXG4gICAgdGFyZ2V0QXJyYXkgPSB0YXJnZXRBcnJheS5jb25jYXQoXHJcbiAgICAgIG5ldyBBcnJheSh0b3RhbEl0ZW1zIC0gdGFyZ2V0QXJyYXkubGVuZ3RoKS5maWxsKGRlZmF1bHRJdGVtKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgdGFyZ2V0QXJyYXlbaSArIG9mZnNldF0gPSBkYXRhW2ldID8/IGRlZmF1bHRJdGVtO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRhcmdldEFycmF5O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFeHRlbmRlZFJlcXVlc3RUeXBlPFQ+ID0gUmVxdWVzdFBhcmFtczxUPiAmIHsgdXNlTmV3RGF0YTogYm9vbGVhbn1cclxuIl19","export function isFilterEmpty(filter) {\n if (filter == undefined) {\n return true;\n }\n return !Object.entries(filter).some((x) => x[1] != undefined);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbW1vbi9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGFBQWEsQ0FBSSxNQUE4QjtJQUM3RCxJQUFJLE1BQU0sSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzRmlsdGVyRW1wdHk8VD4oZmlsdGVyOiBQYXJ0aWFsPFQ+IHwgdW5kZWZpbmVkKSB7XHJcbiAgaWYgKGZpbHRlciA9PSB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuICFPYmplY3QuZW50cmllcyhmaWx0ZXIpLnNvbWUoKHgpID0+IHhbMV0gIT0gdW5kZWZpbmVkKTtcclxufVxyXG4iXX0=","import { debounceTime, map, merge, startWith, switchMap } from 'rxjs';\nexport function queryListChanged(list) {\n return list.changes.pipe(startWith({}), switchMap(() => {\n const actionPropertyChanges$ = list\n .toArray()\n .filter((action) => action.propertyChanged)\n .map((action) => action.propertyChanged);\n return merge(...actionPropertyChanges$).pipe(startWith({}), map(() => list.toArray()));\n }), debounceTime(50));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21tb24vcnhqcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RSxNQUFNLFVBQVUsZ0JBQWdCLENBQVUsSUFBd0I7SUFDaEUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixNQUFNLHNCQUFzQixHQUFHLElBQUk7YUFDaEMsT0FBTyxFQUFFO2FBQ1QsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBdUIsTUFBTyxDQUFDLGVBQWUsQ0FBQzthQUNqRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUF1QixNQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbEUsT0FBTyxLQUFLLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLElBQUksQ0FDMUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUNiLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDMUIsQ0FBQztJQUNKLENBQUMsQ0FBQyxFQUNGLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FDakIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIG1lcmdlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYWJsZVByb3BlcnR5IH0gZnJvbSAnLi9ub3RpZmljYWJsZS1wcm9wZXJ0eS5tb2RlbCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlMaXN0Q2hhbmdlZDxURW50aXR5PihsaXN0OiBRdWVyeUxpc3Q8VEVudGl0eT4pIHtcclxuICByZXR1cm4gbGlzdC5jaGFuZ2VzLnBpcGUoXHJcbiAgICBzdGFydFdpdGgoe30pLFxyXG4gICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgY29uc3QgYWN0aW9uUHJvcGVydHlDaGFuZ2VzJCA9IGxpc3RcclxuICAgICAgICAudG9BcnJheSgpXHJcbiAgICAgICAgLmZpbHRlcigoYWN0aW9uKSA9PiAoPE5vdGlmaWNhYmxlUHJvcGVydHk+YWN0aW9uKS5wcm9wZXJ0eUNoYW5nZWQpXHJcbiAgICAgICAgLm1hcCgoYWN0aW9uKSA9PiAoPE5vdGlmaWNhYmxlUHJvcGVydHk+YWN0aW9uKS5wcm9wZXJ0eUNoYW5nZWQpO1xyXG5cclxuICAgICAgcmV0dXJuIG1lcmdlKC4uLmFjdGlvblByb3BlcnR5Q2hhbmdlcyQpLnBpcGUoXHJcbiAgICAgICAgc3RhcnRXaXRoKHt9KSxcclxuICAgICAgICBtYXAoKCkgPT4gbGlzdC50b0FycmF5KCkpXHJcbiAgICAgICk7XHJcbiAgICB9KSxcclxuICAgIGRlYm91bmNlVGltZSg1MClcclxuICApO1xyXG59XHJcbiJdfQ==","export function downloadText(filename, text, mimeType = 'text/plain') {\n const blob = new Blob([text], { type: mimeType });\n downloadFile(filename, blob);\n}\nexport function downloadFile(filename, blob) {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = filename;\n a.click();\n window.URL.revokeObjectURL(url);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21tb24vZG93bmxvYWQtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsWUFBWSxDQUMxQixRQUFnQixFQUNoQixJQUFZLEVBQ1osV0FBK0IsWUFBWTtJQUUzQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbEQsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FDMUIsUUFBZ0IsRUFDaEIsSUFBVTtJQUVWLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUN0QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDVixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkVGV4dChcclxuICBmaWxlbmFtZTogc3RyaW5nLFxyXG4gIHRleHQ6IHN0cmluZyxcclxuICBtaW1lVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJ3RleHQvcGxhaW4nXHJcbik6IHZvaWQge1xyXG4gIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbdGV4dF0sIHsgdHlwZTogbWltZVR5cGUgfSk7XHJcbiAgZG93bmxvYWRGaWxlKGZpbGVuYW1lLCBibG9iKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZShcclxuICBmaWxlbmFtZTogc3RyaW5nLFxyXG4gIGJsb2I6IEJsb2JcclxuKTogdm9pZCB7XHJcbiAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICBhLmhyZWYgPSB1cmw7XHJcbiAgYS5kb3dubG9hZCA9IGZpbGVuYW1lO1xyXG4gIGEuY2xpY2soKTtcclxuICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG59XHJcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const ACTION_BUTTON_GROUP_COMPONENT_TOKEN = new InjectionToken('ActionButtonGroupComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbi1ncm91cC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FjdGlvbi1idXR0b24tZ3JvdXAvYWN0aW9uLWJ1dHRvbi1ncm91cC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUM5QyxJQUFJLGNBQWMsQ0FBd0IsaUNBQWlDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IEFjdGlvbkJ1dHRvbiB9IGZyb20gJy4vYWN0aW9uLWJ1dHRvbi5tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBBQ1RJT05fQlVUVE9OX0dST1VQX0NPTVBPTkVOVF9UT0tFTiA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxBY3Rpb25CdXR0b25Hcm91cENvcmU+KCdBY3Rpb25CdXR0b25Hcm91cENvbXBvbmVudFRva2VuJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uQnV0dG9uR3JvdXBDb3JlIHtcbiAgbWF4SXRlbXM6IG51bWJlcjtcbiAgbWF4SXRlbXNNb2JpbGU6IG51bWJlcjtcbiAgaXRlbXM6IEFjdGlvbkJ1dHRvbltdO1xuICBtZW51SWNvblBvczogSWNvblBvc2l0aW9uVHlwZTtcbiAgbWVudUljb246IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG59XG4iXX0=","import { Component, inject, Input } from '@angular/core';\nimport { FormControl, FormControlDirective, FormControlName, NgControl, NgModel, ReactiveFormsModule, } from '@angular/forms';\nimport { ERROR_PROVIDER_TOKEN } from '@verisoft/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nconst noop = () => {\n /* */\n};\nexport class BaseFormInputComponent {\n control;\n ngControl;\n errorService = inject(ERROR_PROVIDER_TOKEN);\n formControl;\n constructor(control) {\n this.control = control;\n this.ngControl = control;\n if (this.control) {\n this.ngControl.valueAccessor = this;\n }\n }\n label;\n required = false;\n readonly;\n disabled;\n tooltip;\n formDisplay = 'flex';\n clearable = true;\n placeholder = '';\n testId;\n inputId = Math.random().toString(36).substring(2);\n selectionChanged = noop;\n onTouch = noop;\n registerOnChange(fn) {\n this.selectionChanged = fn;\n }\n registerOnTouched(fn) {\n this.onTouch = fn;\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n writeValue(value) { }\n ngOnInit() {\n if (this.ngControl) {\n if (this.ngControl instanceof FormControlName) {\n this.formControl =\n this.ngControl.control ||\n this.ngControl.formDirective?.form.controls[this.ngControl.name];\n }\n else if (this.ngControl instanceof FormControlDirective ||\n this.ngControl instanceof NgModel) {\n this.formControl = this.ngControl.control;\n if (this.ngControl instanceof NgModel) {\n this.formControl.valueChanges.subscribe(() => this.ngControl?.viewToModelUpdate(this.control?.value));\n }\n }\n else {\n this.formControl = new FormControl();\n }\n }\n else {\n this.formControl = new FormControl();\n }\n }\n isRequired() {\n if (this.ngControl) {\n const validator = this.ngControl?.control?.validator?.({});\n return this.required || (validator && validator['required']);\n }\n return this.required;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: BaseFormInputComponent, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.2.1\", type: BaseFormInputComponent, isStandalone: true, selector: \"ng-component\", inputs: { label: \"label\", required: \"required\", readonly: \"readonly\", disabled: \"disabled\", tooltip: \"tooltip\", formDisplay: \"formDisplay\", clearable: \"clearable\", placeholder: \"placeholder\", testId: \"testId\" }, ngImport: i0, template: '', isInline: true, dependencies: [{ kind: \"ngmodule\", type: ReactiveFormsModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: BaseFormInputComponent, decorators: [{\n type: Component,\n args: [{\n template: '',\n imports: [ReactiveFormsModule]\n }]\n }], ctorParameters: () => [{ type: i1.NgControl }], propDecorators: { label: [{\n type: Input\n }], required: [{\n type: Input\n }], readonly: [{\n type: Input\n }], disabled: [{\n type: Input\n }], tooltip: [{\n type: Input\n }], formDisplay: [{\n type: Input\n }], clearable: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], testId: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtZm9ybS9iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBR0wsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixlQUFlLEVBRWYsU0FBUyxFQUNULE9BQU8sRUFDUCxtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR3RELE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtJQUNoQixLQUFLO0FBQ1AsQ0FBQyxDQUFDO0FBTUYsTUFBTSxPQUFPLHNCQUFzQjtJQVNKO0lBTnBCLFNBQVMsQ0FBYTtJQUV0QixZQUFZLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFckQsV0FBVyxDQUFlO0lBRTFCLFlBQTZCLE9BQWtCO1FBQWxCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBR0QsS0FBSyxDQUFVO0lBR2YsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUdqQixRQUFRLENBQVc7SUFHbkIsUUFBUSxDQUFXO0lBR25CLE9BQU8sQ0FBVTtJQUdqQixXQUFXLEdBQXFCLE1BQU0sQ0FBQztJQUd2QyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBR2pCLFdBQVcsR0FBWSxFQUFFLENBQUM7SUFHMUIsTUFBTSxDQUFVO0lBRWhCLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRCxnQkFBZ0IsR0FBUSxJQUFJLENBQUM7SUFFN0IsT0FBTyxHQUFRLElBQUksQ0FBQztJQUVwQixnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGdFQUFnRTtJQUNoRSxVQUFVLENBQUMsS0FBVSxJQUFTLENBQUM7SUFFL0IsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksSUFBSSxDQUFDLFNBQVMsWUFBWSxlQUFlLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLFdBQVc7b0JBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPO3dCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQW9DLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FDbEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFjLENBQ2QsQ0FBQztZQUN0QixDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFNBQVMsWUFBWSxvQkFBb0I7Z0JBQzlDLElBQUksQ0FBQyxTQUFTLFlBQVksT0FBTyxFQUNqQyxDQUFDO2dCQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7Z0JBQzFDLElBQUksSUFBSSxDQUFDLFNBQVMsWUFBWSxPQUFPLEVBQUUsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQ3ZELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUNwRCxFQUFxQixDQUN0QixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzt1R0E5RlUsc0JBQXNCOzJGQUF0QixzQkFBc0IsNFJBSHJCLEVBQUUsMkRBQ0YsbUJBQW1COzsyRkFFcEIsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxFQUFFO29CQUNaLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNqQzs4RUFrQkMsS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXG4gIEZvcm1Db250cm9sTmFtZSxcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBOZ0NvbnRyb2wsXG4gIE5nTW9kZWwsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVSUk9SX1BST1ZJREVSX1RPS0VOIH0gZnJvbSAnQHZlcmlzb2Z0L2NvcmUnO1xuaW1wb3J0IHsgQmFzZUlucHV0Q29udHJvbHMgfSBmcm9tICcuL21vZGVscy9iYXNlLWZvcm0taW5wdXQubW9kZWxzJztcblxuY29uc3Qgbm9vcCA9ICgpID0+IHtcbiAgLyogKi9cbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQmFzZUZvcm1JbnB1dENvbXBvbmVudFxuICBpbXBsZW1lbnRzIEJhc2VJbnB1dENvbnRyb2xzPGFueT4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXRcbntcbiAgcmVhZG9ubHkgbmdDb250cm9sPzogTmdDb250cm9sO1xuXG4gIHJlYWRvbmx5IGVycm9yU2VydmljZSA9IGluamVjdChFUlJPUl9QUk9WSURFUl9UT0tFTik7XG5cbiAgZm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2w6IE5nQ29udHJvbCkge1xuICAgIHRoaXMubmdDb250cm9sID0gY29udHJvbDtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBsYWJlbD86IHN0cmluZztcblxuICBASW5wdXQoKVxuICByZXF1aXJlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5ITogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZCE6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgdG9vbHRpcCE6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBmb3JtRGlzcGxheTogJ2ZsZXgnIHwgJ2Jsb2NrJyA9ICdmbGV4JztcblxuICBASW5wdXQoKVxuICBjbGVhcmFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgdGVzdElkPzogc3RyaW5nO1xuXG4gIGlucHV0SWQgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG5cbiAgc2VsZWN0aW9uQ2hhbmdlZDogYW55ID0gbm9vcDtcblxuICBvblRvdWNoOiBhbnkgPSBub29wO1xuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZCA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9XG4gICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbCB8fFxuICAgICAgICAgICgodGhpcy5uZ0NvbnRyb2wuZm9ybURpcmVjdGl2ZSBhcyBGb3JtR3JvdXBEaXJlY3RpdmUpPy5mb3JtLmNvbnRyb2xzW1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wubmFtZSBhcyBzdHJpbmdcbiAgICAgICAgICBdIGFzIEZvcm1Db250cm9sKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMubmdDb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xEaXJlY3RpdmUgfHxcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBOZ01vZGVsXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IHRoaXMubmdDb250cm9sLmNvbnRyb2w7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sPy52aWV3VG9Nb2RlbFVwZGF0ZSh0aGlzLmNvbnRyb2w/LnZhbHVlKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIH1cbiAgfVxuXG4gIGlzUmVxdWlyZWQoKSB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsaWRhdG9yPy4oXG4gICAgICAgIHt9IGFzIEFic3RyYWN0Q29udHJvbFxuICAgICAgKTtcbiAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVkIHx8ICh2YWxpZGF0b3IgJiYgdmFsaWRhdG9yWydyZXF1aXJlZCddKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZWQ7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class ScreenSizeService {\n isMobileBlock = new BehaviorSubject(false);\n prevState = false;\n constructor() {\n this.checkScreenSize();\n window.addEventListener('resize', async () => {\n await this.checkScreenSize();\n });\n }\n async checkScreenSize() {\n const isMobile = window.matchMedia('(max-width: 768px)').matches;\n if (isMobile !== this.prevState) {\n this.prevState = isMobile;\n this.isMobileBlock.next(isMobile);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: ScreenSizeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: ScreenSizeService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: ScreenSizeService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXNpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zY3JlZW4tc2l6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdkMsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixhQUFhLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDcEQsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUVsQjtRQUNFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlO1FBQ25CLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDakUsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO3VHQWpCVSxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY3JlZW5TaXplU2VydmljZSB7XG4gIGlzTW9iaWxlQmxvY2sgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJldlN0YXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5jaGVja1NjcmVlblNpemUoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5jaGVja1NjcmVlblNpemUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNoZWNrU2NyZWVuU2l6ZSgpIHtcbiAgICBjb25zdCBpc01vYmlsZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA3NjhweCknKS5tYXRjaGVzO1xuICAgIGlmIChpc01vYmlsZSAhPT0gdGhpcy5wcmV2U3RhdGUpIHtcbiAgICAgIHRoaXMucHJldlN0YXRlID0gaXNNb2JpbGU7XG4gICAgICB0aGlzLmlzTW9iaWxlQmxvY2submV4dChpc01vYmlsZSk7XG4gICAgfVxuICB9XG59XG4iXX0=","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class DialogService {\n showEvent = new EventEmitter();\n closeEvent = new EventEmitter();\n showDialog(data) {\n const mappedData = this.mapInputAndOutpus(data);\n this.showEvent.emit({\n ...data,\n data: mappedData,\n });\n }\n mapInputAndOutpus(data) {\n const inputsAndOutputs = data.data;\n return {\n ...data.data,\n ...(Object.keys(inputsAndOutputs ?? {})\n .filter((key) => typeof inputsAndOutputs[key] === 'function')\n .reduce((acc, key) => {\n acc[key] = (value) => {\n if (typeof inputsAndOutputs[key] === 'function') {\n inputsAndOutputs[key](value);\n }\n };\n return acc;\n }, {})),\n };\n }\n closeModal() {\n this.closeEvent.emit();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: DialogService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: DialogService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], propDecorators: { showEvent: [{\n type: Output\n }], closeEvent: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9jb25maXJtLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNakUsTUFBTSxPQUFPLGFBQWE7SUFDZCxTQUFTLEdBQ2pCLElBQUksWUFBWSxFQUFzQixDQUFDO0lBRS9CLFVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUU5RCxVQUFVLENBQW9CLElBQTJDO1FBQ3ZFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNsQixHQUFHLElBQUk7WUFDUCxJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCLENBQ3ZCLElBQTJDO1FBRTNDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQTBCLENBQUM7UUFDekQsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLElBQUk7WUFDWixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7aUJBQ3BDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFxQixDQUFDLEtBQUssVUFBVSxDQUFDO2lCQUM5RSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQ25CLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUN4QixJQUFJLE9BQU8sZ0JBQWdCLENBQUMsR0FBcUIsQ0FBQyxLQUFLLFVBQVUsRUFBRSxDQUFDO3dCQUNqRSxnQkFBZ0IsQ0FBQyxHQUFxQixDQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMzRSxDQUFDO2dCQUNILENBQUMsQ0FBQztnQkFDRixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsRUFBRSxFQUF5QixDQUFDLENBQUM7U0FDakMsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO3VHQXBDVSxhQUFhOzJHQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs4QkFFVyxTQUFTO3NCQUFsQixNQUFNO2dCQUdHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXh0ZW5kZWREaWFsb2dEYXRhIH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZXJ2aWNlIHtcbiAgQE91dHB1dCgpIHNob3dFdmVudDogRXZlbnRFbWl0dGVyPEV4dGVuZGVkRGlhbG9nRGF0YT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8RXh0ZW5kZWREaWFsb2dEYXRhPigpO1xuXG4gIEBPdXRwdXQoKSBjbG9zZUV2ZW50OiBFdmVudEVtaXR0ZXI8bnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgc2hvd0RpYWxvZzxUSW5wdXRzLCBUT3V0cHV0cz4oZGF0YTogRXh0ZW5kZWREaWFsb2dEYXRhPFRJbnB1dHMsIFRPdXRwdXRzPik6IHZvaWQge1xuICAgIGNvbnN0IG1hcHBlZERhdGEgPSB0aGlzLm1hcElucHV0QW5kT3V0cHVzKGRhdGEpO1xuXG4gICAgdGhpcy5zaG93RXZlbnQuZW1pdCh7XG4gICAgICAuLi5kYXRhLFxuICAgICAgZGF0YTogbWFwcGVkRGF0YSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwSW5wdXRBbmRPdXRwdXM8VElucHV0cywgVE91dHB1dHM+KFxuICAgIGRhdGE6IEV4dGVuZGVkRGlhbG9nRGF0YTxUSW5wdXRzLCBUT3V0cHV0cz5cbiAgKTogRXh0ZW5kZWREaWFsb2dEYXRhPFRJbnB1dHMsIFRPdXRwdXRzPiB7XG4gICAgY29uc3QgaW5wdXRzQW5kT3V0cHV0cyA9IGRhdGEuZGF0YSBhcyBUSW5wdXRzICYgVE91dHB1dHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRhdGEuZGF0YSxcbiAgICAgIC4uLihPYmplY3Qua2V5cyhpbnB1dHNBbmRPdXRwdXRzID8/IHt9KVxuICAgICAgICAuZmlsdGVyKChrZXkpID0+IHR5cGVvZiBpbnB1dHNBbmRPdXRwdXRzW2tleSBhcyBrZXlvZiBUT3V0cHV0c10gPT09ICdmdW5jdGlvbicpXG4gICAgICAgIC5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgICAgYWNjW2tleV0gPSAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dHNBbmRPdXRwdXRzW2tleSBhcyBrZXlvZiBUT3V0cHV0c10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgKGlucHV0c0FuZE91dHB1dHNba2V5IGFzIGtleW9mIFRPdXRwdXRzXSBhcyAodmFsdWU6IGFueSkgPT4gdm9pZCkodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgYW55PikpLFxuICAgIH07XG4gIH1cblxuICBjbG9zZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KCk7XG4gIH1cbn1cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { DialogService } from './confirm-dialog.service';\nimport * as i0 from \"@angular/core\";\nexport class PreventUnsavedChangesDirective {\n dialogService = inject(DialogService);\n translateService = inject(TranslateService);\n Icons;\n canDeactivate(component) {\n if (!component || !component.canDeactivate) {\n return true;\n }\n const result = component.canDeactivate();\n return result;\n }\n showConfirmationDialog() {\n const resultSubject = new Subject();\n const title = this.translateService.instant('VALIDATIONS.UNSAVED_CHANGES');\n const message = this.translateService.instant('VALIDATIONS.LEAVING_UNSAVED_FORM');\n const leaveButton = this.translateService.instant('BUTTONS.LEAVE');\n const stayButton = this.translateService.instant('BUTTONS.STAY');\n this.dialogService.showDialog({\n title: title,\n headerIcon: this.Icons.infoCircle,\n innerHTML: `<p>${message}</p>`,\n showCancelButton: true,\n confirmButtonText: stayButton,\n cancelButtonText: leaveButton,\n confirmButtonFn: () => {\n resultSubject.next(false);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n cancelButtonFn: () => {\n resultSubject.next(true);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n });\n return resultSubject.asObservable();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: PreventUnsavedChangesDirective, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: PreventUnsavedChangesDirective, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: PreventUnsavedChangesDirective, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL3NlcnZpY2VzL2xlYXZlLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLDhCQUE4QjtJQUNqQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25DLEtBQUssQ0FBZTtJQUVyQyxhQUFhLENBQUMsU0FBb0M7UUFDaEQsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRTdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMzRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDbEYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1lBQzVCLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtZQUNqQyxTQUFTLEVBQUUsTUFBTSxPQUFPLE1BQU07WUFDOUIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixpQkFBaUIsRUFBRSxVQUFVO1lBQzdCLGdCQUFnQixFQUFFLFdBQVc7WUFDN0IsZUFBZSxFQUFFLEdBQUcsRUFBRTtnQkFDcEIsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xDLENBQUM7WUFDRCxjQUFjLEVBQUUsR0FBRyxFQUFFO2dCQUNuQixhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEMsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7dUdBekNVLDhCQUE4QjsyR0FBOUIsOEJBQThCLGNBRjdCLE1BQU07OzJGQUVQLDhCQUE4QjtrQkFIMUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkRlYWN0aXZhdGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJldmVudFVuc2F2ZWRDaGFuZ2VzQ29yZSwgQ29tbW9uSWNvbnMgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vY29uZmlybS1kaWFsb2cuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcmV2ZW50VW5zYXZlZENoYW5nZXNEaXJlY3RpdmUgaW1wbGVtZW50cyBDYW5EZWFjdGl2YXRlPFByZXZlbnRVbnNhdmVkQ2hhbmdlc0NvcmU+IHtcbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgSWNvbnMhOiBDb21tb25JY29ucztcblxuICBjYW5EZWFjdGl2YXRlKGNvbXBvbmVudDogUHJldmVudFVuc2F2ZWRDaGFuZ2VzQ29yZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbiB7XG4gICAgaWYgKCFjb21wb25lbnQgfHwgIWNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gY29tcG9uZW50LmNhbkRlYWN0aXZhdGUoKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc2hvd0NvbmZpcm1hdGlvbkRpYWxvZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCByZXN1bHRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0IHRpdGxlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1ZBTElEQVRJT05TLlVOU0FWRURfQ0hBTkdFUycpO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnVkFMSURBVElPTlMuTEVBVklOR19VTlNBVkVEX0ZPUk0nKTtcbiAgICBjb25zdCBsZWF2ZUJ1dHRvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdCVVRUT05TLkxFQVZFJyk7XG4gICAgY29uc3Qgc3RheUJ1dHRvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdCVVRUT05TLlNUQVknKTtcblxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93RGlhbG9nKHtcbiAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgIGhlYWRlckljb246IHRoaXMuSWNvbnMuaW5mb0NpcmNsZSxcbiAgICAgIGlubmVySFRNTDogYDxwPiR7bWVzc2FnZX08L3A+YCxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsXG4gICAgICBjb25maXJtQnV0dG9uVGV4dDogc3RheUJ1dHRvbixcbiAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IGxlYXZlQnV0dG9uLFxuICAgICAgY29uZmlybUJ1dHRvbkZuOiAoKSA9PiB7XG4gICAgICAgIHJlc3VsdFN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICAgIHJlc3VsdFN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNsb3NlTW9kYWwoKTtcbiAgICAgIH0sXG4gICAgICBjYW5jZWxCdXR0b25GbjogKCkgPT4ge1xuICAgICAgICByZXN1bHRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgIHJlc3VsdFN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNsb3NlTW9kYWwoKTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIl19","import { Injectable, signal } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class TableService {\n reload = signal(Symbol(), ...(ngDevMode ? [{ debugName: \"reload\" }] : []));\n /**\n * If name is set, reload a specific table with the set`[tableName]`\n *\n * If name is NOT set, reload all tables in the current DOM\n * */\n forceReload(name) {\n if (name) {\n this.reload.set({ name: name, symbol: Symbol() });\n }\n else {\n this.reload.set(Symbol());\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy90YWJsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1uRCxNQUFNLE9BQU8sWUFBWTtJQUNkLE1BQU0sR0FBRyxNQUFNLENBQXVCLE1BQU0sRUFBRSxrREFBQyxDQUFBO0lBRXhEOzs7O1NBSUs7SUFDTCxXQUFXLENBQUMsSUFBYTtRQUN2QixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO3VHQWRVLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRhYmxlU2lnbmFsIH0gZnJvbSBcIi4uL2NvbXBvbmVudHNcIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgcmVsb2FkID0gc2lnbmFsPFRhYmxlU2lnbmFsIHwgc3ltYm9sPihTeW1ib2woKSlcblxuICAvKipcbiAgICogSWYgbmFtZSBpcyBzZXQsIHJlbG9hZCBhIHNwZWNpZmljIHRhYmxlIHdpdGggdGhlIHNldGBbdGFibGVOYW1lXWBcbiAgICpcbiAgICogSWYgbmFtZSBpcyBOT1Qgc2V0LCByZWxvYWQgYWxsIHRhYmxlcyBpbiB0aGUgY3VycmVudCBET01cbiAgICogKi9cbiAgZm9yY2VSZWxvYWQobmFtZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChuYW1lKSB7XG4gICAgICB0aGlzLnJlbG9hZC5zZXQoeyBuYW1lOiBuYW1lLCBzeW1ib2w6IFN5bWJvbCgpIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbG9hZC5zZXQoU3ltYm9sKCkpO1xuICAgIH1cbiAgfVxufVxuIl19","export class BaseInputControls {\n value;\n ngControl;\n label;\n required;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLWlucHV0Lm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtZm9ybS9tb2RlbHMvYmFzZS1mb3JtLWlucHV0Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLGlCQUFpQjtJQUNyQyxLQUFLLENBQVk7SUFFUixTQUFTLENBQWE7SUFFdEIsS0FBSyxDQUFVO0lBRWYsUUFBUSxDQUFXO0NBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUlucHV0Q29udHJvbHM8VD4ge1xuICB2YWx1ZT86IFQgfCBudWxsO1xuXG4gIHJlYWRvbmx5IG5nQ29udHJvbD86IE5nQ29udHJvbDtcblxuICByZWFkb25seSBsYWJlbD86IHN0cmluZztcblxuICByZWFkb25seSByZXF1aXJlZCE6IGJvb2xlYW47XG59XG4iXX0=","export function isFormStateEqual(current, other) {\n if (!current && !other) {\n return true;\n }\n if (current && other) {\n return current.dirty === other.dirty && current.valid === other.valid;\n }\n return false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtZm9ybS9tb2RlbHMvYmFzZS1mb3JtLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQWtCLEVBQUUsS0FBZ0I7SUFDbkUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3JCLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN4RSxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBCYXNlRm9ybUNvcmUge1xuICBsYWJlbD86IHN0cmluZztcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5OiBib29sZWFuO1xuICB0b29sdGlwOiBzdHJpbmc7XG4gIGZvcm1EaXNwbGF5OiAnZmxleCcgfCAnYmxvY2snO1xuICBjbGVhcmFibGU6IGJvb2xlYW47XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIHRlc3RJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRm9ybURpcmVjdGl2ZUNvcmU8VD4ge1xuICBpbml0aWFsRGF0YTogVCB8IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtU3RhdGUge1xuICBkaXJ0eTogYm9vbGVhbjtcbiAgdmFsaWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zvcm1TdGF0ZUVxdWFsKGN1cnJlbnQ6IEZvcm1TdGF0ZSwgb3RoZXI6IEZvcm1TdGF0ZSkge1xuICBpZiAoIWN1cnJlbnQgJiYgIW90aGVyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoY3VycmVudCAmJiBvdGhlcikge1xuICAgIHJldHVybiBjdXJyZW50LmRpcnR5ID09PSBvdGhlci5kaXJ0eSAmJiBjdXJyZW50LnZhbGlkID09PSBvdGhlci52YWxpZDtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==","import { ChangeDetectorRef, Directive, EventEmitter, HostListener, inject, Input, Output, } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { Subject, takeUntil, filter, map } from 'rxjs';\nimport { PreventUnsavedChangesDirective } from '../../services';\nimport { isFormStateEqual } from './models';\nimport * as i0 from \"@angular/core\";\nexport class BaseFormDirective {\n data;\n dataChange = new EventEmitter();\n statusChange = new EventEmitter();\n formSubmit = new EventEmitter();\n formClear = new EventEmitter();\n formDestroyed$ = new Subject();\n keys = [];\n formGroup;\n cd = inject(ChangeDetectorRef);\n valueInitialization = false;\n lastState;\n guardViewChild;\n formSubmitted = false;\n guard = inject(PreventUnsavedChangesDirective);\n unloadHandler(event) {\n if (this.formGroup.dirty) {\n event.preventDefault();\n }\n }\n canDeactivate() {\n if (this.formGroup.dirty && !this.formSubmitted) {\n const result = this.guard.showConfirmationDialog();\n return result;\n }\n return true;\n }\n ngOnInit() {\n this.initializeFormGroup();\n }\n ngOnChanges(changes) {\n if (changes['data'] && this.formGroup) {\n this.valueInitialization = true;\n const dirty = this.formGroup.dirty;\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n this.formGroup.updateValueAndValidity();\n if (!dirty) {\n this.formGroup.markAsPristine();\n }\n this.valueInitialization = false;\n this.createAndEmitIfFormStateChanged();\n }\n }\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n ngOnDestroy() {\n this.formDestroyed$.next();\n this.formDestroyed$.complete();\n }\n createCompleteData() {\n const change = this.toModel(this.formGroup?.value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(cloneDeep(this.data), cloneDeep(change));\n return updatedData;\n }\n submit() {\n this.formSubmitted = true;\n this.formGroup.markAllAsTouched();\n if (!this.formGroup.invalid) {\n this.formSubmit.emit(this.createCompleteData());\n }\n this.formGroup.markAsPristine();\n }\n clear() {\n this.formClear.emit();\n }\n initializeFormGroup() {\n this.formGroup = this.createFormGroup();\n this.valueInitialization = true;\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n this.formGroup.markAsPristine();\n this.initValueChanges();\n this.initStatusChanges();\n this.valueInitialization = false;\n }\n initValueChanges() {\n this.formGroup.valueChanges\n .pipe(takeUntil(this.formDestroyed$), filter(() => !this.valueInitialization), map((value) => {\n const change = this.toModel(value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(cloneDeep(this.data), cloneDeep(change));\n return updatedData;\n }))\n .subscribe((updatedData) => {\n this.dataChange.emit(updatedData);\n });\n }\n initStatusChanges() {\n this.formGroup.statusChanges\n .pipe(takeUntil(this.formDestroyed$))\n .subscribe(() => {\n if (!this.valueInitialization) {\n this.createAndEmitIfFormStateChanged();\n }\n });\n this.createAndEmitIfFormStateChanged();\n }\n createAndEmitIfFormStateChanged() {\n const formState = {\n valid: !this.formGroup.invalid,\n dirty: this.formGroup.dirty,\n };\n if (!isFormStateEqual(formState, this.lastState)) {\n this.lastState = formState;\n this.statusChange.emit(formState);\n }\n }\n applyChanges(data, changes) {\n return Object.assign(data || {}, changes);\n }\n toModel(data) {\n return data || {};\n }\n fromModel(data) {\n return { ...(data || {}) };\n }\n recursiveObjectAttributesTransformation(obj) {\n this.recursiveObjectAttributesTraversal(obj, this.transformEmptyStringToNullStringFn);\n }\n recursiveObjectAttributesTraversal(obj, transformationFn) {\n if (obj === null ||\n transformationFn === null ||\n typeof transformationFn !== 'function') {\n return;\n }\n const traverse = (obj) => {\n for (const key in obj) {\n // eslint-disable-next-line no-prototype-builtins\n if (obj.hasOwnProperty(key)) {\n transformationFn(obj, key);\n if (typeof obj[key] === 'object') {\n traverse(obj[key]);\n }\n }\n }\n };\n traverse(obj);\n }\n transformEmptyStringToNullStringFn(obj, key) {\n // if empty string - transformation to null string\n if (typeof obj[key] === 'string' && obj[key] === '') {\n try {\n obj[key] = null;\n }\n catch (error) {\n console.error(`Cannot modify ${key}: ${error}`);\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: BaseFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: BaseFormDirective, isStandalone: true, selector: \"[v-baseForm]\", inputs: { data: \"data\" }, outputs: { dataChange: \"dataChange\", statusChange: \"statusChange\", formSubmit: \"formSubmit\", formClear: \"formClear\" }, host: { listeners: { \"window:beforeunload\": \"unloadHandler($event)\" } }, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: BaseFormDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-baseForm]',\n standalone: true,\n }]\n }], propDecorators: { data: [{\n type: Input\n }], dataChange: [{\n type: Output\n }], statusChange: [{\n type: Output\n }], formSubmit: [{\n type: Output\n }], formClear: [{\n type: Output\n }], unloadHandler: [{\n type: HostListener,\n args: ['window:beforeunload', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtZm9ybS9iYXNlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFNdkQsTUFBTSxPQUFnQixpQkFBaUI7SUFHNUIsSUFBSSxDQUFXO0lBQ2QsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFDbkMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7SUFDN0MsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFDbkMsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFL0MsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDckMsSUFBSSxHQUF1RSxFQUFFLENBQUM7SUFDOUUsU0FBUyxDQUFhO0lBQ3RCLEVBQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvQixtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDNUIsU0FBUyxDQUFhO0lBQ3RCLGNBQWMsQ0FBYTtJQUMzQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ1osS0FBSyxHQUFH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USxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFJVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFhUCxhQUFhO3NCQURaLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByZXZlbnRVbnNhdmVkQ2hhbmdlc0NvcmUgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgUHJldmVudFVuc2F2ZWRDaGFuZ2VzRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgRm9ybVN0YXRlLCBpc0Zvcm1TdGF0ZUVxdWFsIH0gZnJvbSAnLi9tb2RlbHMnO1xuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3YtYmFzZUZvcm1dJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZvcm1EaXJlY3RpdmU8VCBleHRlbmRzIG9iamVjdD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBQcmV2ZW50VW5zYXZlZENoYW5nZXNDb3JlXG57XG4gIEBJbnB1dCgpIGRhdGEhOiBUIHwgYW55O1xuICBAT3V0cHV0KCkgZGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcbiAgQE91dHB1dCgpIHN0YXR1c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN0YXRlPigpO1xuICBAT3V0cHV0KCkgZm9ybVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcbiAgQE91dHB1dCgpIGZvcm1DbGVhciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBmb3JtRGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGtleXM6IHsga2V5OiBzdHJpbmc7IGFsaWFzPzogc3RyaW5nOyB0eXBlPzogc3RyaW5nOyByZWFkT25seTogc3RyaW5nIH1bXSA9IFtdO1xuICBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XG4gIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgdmFsdWVJbml0aWFsaXphdGlvbiA9IGZhbHNlO1xuICBsYXN0U3RhdGUhOiBGb3JtU3RhdGU7XG4gIGd1YXJkVmlld0NoaWxkITogVmlld0NoaWxkO1xuICBmb3JtU3VibWl0dGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBndWFyZCA9IGluamVjdChQcmV2ZW50VW5zYXZlZENoYW5nZXNEaXJlY3RpdmUpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpiZWZvcmV1bmxvYWQnLCBbJyRldmVudCddKVxuICB1bmxvYWRIYW5kbGVyKGV2ZW50OiBCZWZvcmVVbmxvYWRFdmVudCkge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5kaXJ0eSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBjYW5EZWFjdGl2YXRlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmRpcnR5ICYmICF0aGlzLmZvcm1TdWJtaXR0ZWQpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZ3VhcmQuc2hvd0NvbmZpcm1hdGlvbkRpYWxvZygpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1Hcm91cCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10gJiYgdGhpcy5mb3JtR3JvdXApIHtcbiAgICAgIHRoaXMudmFsdWVJbml0aWFsaXphdGlvbiA9IHRydWU7XG4gICAgICBjb25zdCBkaXJ0eSA9IHRoaXMuZm9ybUdyb3VwLmRpcnR5O1xuXG4gICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKHRoaXMuZnJvbU1vZGVsKHRoaXMuZGF0YSksIHtcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgICAgb25seVNlbGY6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5mb3JtR3JvdXAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgaWYgKCFkaXJ0eSkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnZhbHVlSW5pdGlhbGl6YXRpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuY3JlYXRlQW5kRW1pdElmRm9ybVN0YXRlQ2hhbmdlZCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybURlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuZm9ybURlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFic3RyYWN0IGNyZWF0ZUZvcm1Hcm91cCgpOiBGb3JtR3JvdXA7XG5cbiAgY3JlYXRlQ29tcGxldGVEYXRhKCkge1xuICAgIGNvbnN0IGNoYW5nZSA9IHRoaXMudG9Nb2RlbCh0aGlzLmZvcm1Hcm91cD8udmFsdWUpO1xuICAgIHRoaXMucmVjdXJzaXZlT2JqZWN0QXR0cmlidXRlc1RyYW5zZm9ybWF0aW9uKGNoYW5nZSk7XG4gICAgY29uc3QgdXBkYXRlZERhdGEgPSB0aGlzLmFwcGx5Q2hhbmdlcyhcbiAgICAgIGNsb25lRGVlcCh0aGlzLmRhdGEpLFxuICAgICAgY2xvbmVEZWVwKGNoYW5nZSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWREYXRhO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIHRoaXMuZm9ybVN1Ym1pdHRlZCA9IHRydWU7XG4gICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuaW52YWxpZCkge1xuICAgICAgdGhpcy5mb3JtU3VibWl0LmVtaXQodGhpcy5jcmVhdGVDb21wbGV0ZURhdGEoKSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBc1ByaXN0aW5lKCk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLmZvcm1DbGVhci5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVGb3JtR3JvdXAoKSB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xuICAgIHRoaXMudmFsdWVJbml0aWFsaXphdGlvbiA9IHRydWU7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh0aGlzLmZyb21Nb2RlbCh0aGlzLmRhdGEpLCB7XG4gICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgb25seVNlbGY6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQXNQcmlzdGluZSgpO1xuICAgIHRoaXMuaW5pdFZhbHVlQ2hhbmdlcygpO1xuICAgIHRoaXMuaW5pdFN0YXR1c0NoYW5nZXMoKTtcbiAgICB0aGlzLnZhbHVlSW5pdGlhbGl6YXRpb24gPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFZhbHVlQ2hhbmdlcygpIHtcbiAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5mb3JtRGVzdHJveWVkJCksXG4gICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy52YWx1ZUluaXRpYWxpemF0aW9uKSxcbiAgICAgICAgbWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNoYW5nZSA9IHRoaXMudG9Nb2RlbCh2YWx1ZSk7XG4gICAgICAgICAgdGhpcy5yZWN1cnNpdmVPYmplY3RBdHRyaWJ1dGVzVHJhbnNmb3JtYXRpb24oY2hhbmdlKTtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHRoaXMuYXBwbHlDaGFuZ2VzKFxuICAgICAgICAgICAgY2xvbmVEZWVwKHRoaXMuZGF0YSksXG4gICAgICAgICAgICBjbG9uZURlZXAoY2hhbmdlKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWREYXRhO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodXBkYXRlZERhdGEpID0+IHtcbiAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQodXBkYXRlZERhdGEpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTdGF0dXNDaGFuZ2VzKCkge1xuICAgIHRoaXMuZm9ybUdyb3VwLnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmZvcm1EZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWVJbml0aWFsaXphdGlvbikge1xuICAgICAgICAgIHRoaXMuY3JlYXRlQW5kRW1pdElmRm9ybVN0YXRlQ2hhbmdlZCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuY3JlYXRlQW5kRW1pdElmRm9ybVN0YXRlQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBbmRFbWl0SWZGb3JtU3RhdGVDaGFuZ2VkKCkge1xuICAgIGNvbnN0IGZvcm1TdGF0ZTogRm9ybVN0YXRlID0ge1xuICAgICAgdmFsaWQ6ICF0aGlzLmZvcm1Hcm91cC5pbnZhbGlkLFxuICAgICAgZGlydHk6IHRoaXMuZm9ybUdyb3VwLmRpcnR5LFxuICAgIH07XG5cbiAgICBpZiAoIWlzRm9ybVN0YXRlRXF1YWwoZm9ybVN0YXRlLCB0aGlzLmxhc3RTdGF0ZSkpIHtcbiAgICAgIHRoaXMubGFzdFN0YXRlID0gZm9ybVN0YXRlO1xuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2UuZW1pdChmb3JtU3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhcHBseUNoYW5nZXMoZGF0YTogVCwgY2hhbmdlczogUGFydGlhbDxUPik6IFQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGRhdGEgfHwgKHt9IGFzIFQpLCBjaGFuZ2VzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b01vZGVsKGRhdGE6IFQpOiBQYXJ0aWFsPFQ+IHtcbiAgICByZXR1cm4gZGF0YSB8fCB7fTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmcm9tTW9kZWwoZGF0YTogVCk6IFQge1xuICAgIHJldHVybiB7IC4uLihkYXRhIHx8IHt9KSB9IGFzIFQ7XG4gIH1cblxuICBwcml2YXRlIHJlY3Vyc2l2ZU9iamVjdEF0dHJpYnV0ZXNUcmFuc2Zvcm1hdGlvbihvYmo6IGFueSk6IHZvaWQge1xuICAgIHRoaXMucmVjdXJzaXZlT2JqZWN0QXR0cmlidXRlc1RyYXZlcnNhbChcbiAgICAgIG9iaixcbiAgICAgIHRoaXMudHJhbnNmb3JtRW1wdHlTdHJpbmdUb051bGxTdHJpbmdGblxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlY3Vyc2l2ZU9iamVjdEF0dHJpYnV0ZXNUcmF2ZXJzYWwoXG4gICAgb2JqOiBhbnksXG4gICAgdHJhbnNmb3JtYXRpb25GbjogKG9iajogYW55LCBrZXk6IHN0cmluZykgPT4gdm9pZFxuICApIHtcbiAgICBpZiAoXG4gICAgICBvYmogPT09IG51bGwgfHxcbiAgICAgIHRyYW5zZm9ybWF0aW9uRm4gPT09IG51bGwgfHxcbiAgICAgIHR5cGVvZiB0cmFuc2Zvcm1hdGlvbkZuICE9PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdHJhdmVyc2UgPSAob2JqOiBhbnkpID0+IHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgIHRyYW5zZm9ybWF0aW9uRm4ob2JqLCBrZXkpO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRyYXZlcnNlKG9ialtrZXldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdHJhdmVyc2Uob2JqKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtRW1wdHlTdHJpbmdUb051bGxTdHJpbmdGbihvYmo6IGFueSwga2V5OiBzdHJpbmcpIHtcbiAgICAvLyBpZiBlbXB0eSBzdHJpbmcgLSB0cmFuc2Zvcm1hdGlvbiB0byBudWxsIHN0cmluZ1xuICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09ICdzdHJpbmcnICYmIG9ialtrZXldID09PSAnJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgb2JqW2tleV0gPSBudWxsO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IG1vZGlmeSAke2tleX06ICR7ZXJyb3J9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Directive } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class UnsubscribeComponent {\n destroyed$ = new Subject();\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: UnsubscribeComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: UnsubscribeComponent, isStandalone: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: UnsubscribeComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdWJzY3JpYmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvdW5zdWJzY3JpYmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHL0IsTUFBTSxPQUFnQixvQkFBb0I7SUFDeEMsVUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFakMsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO3VHQU5tQixvQkFBb0I7MkZBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEekMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFVuc3Vic2NyaWJlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19","import { Directive, inject, Input, ChangeDetectorRef, } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { createFeatureSelector, createSelector, Store } from '@ngrx/store';\nimport { createInitDetailAction, createInitNewDetailAction, createResetStateAction, createUpdateDetailAction, createUpdateDetailSetErrorsAction, createUpdateFormStateAction, } from '@verisoft/store';\nimport { takeUntil } from 'rxjs';\nimport { UnsubscribeComponent } from '../../unsubscribe.component';\nimport { BaseFormDirective } from '../base-form.component';\nimport * as i0 from \"@angular/core\";\nexport class DetailStoreDirective extends UnsubscribeComponent {\n form;\n detailsRepository;\n autoBind = true;\n detailId;\n ngrxFeatureKey;\n destroyForm = true;\n readonly = false;\n readonlyControlNames = [];\n store = inject(Store);\n cdr = inject(ChangeDetectorRef);\n route = inject(ActivatedRoute);\n itemCache = null;\n loaded;\n ngOnInit() {\n if (!this.loaded) {\n this.listenFormState();\n }\n this.listenFormChange();\n this.listenFormStatusChange();\n }\n ngAfterViewInit() {\n if (this.autoBind && !this.loaded) {\n this.initForm();\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this.destroyForm) {\n this.store.dispatch(createResetStateAction(this.detailsRepository)());\n }\n }\n initForm() {\n if (this.detailId === 'create') {\n this.store.dispatch(createInitNewDetailAction(this.detailsRepository)());\n }\n else {\n this.store.dispatch(createInitDetailAction(this.detailsRepository)({ obj: this.detailId }));\n }\n if (this.readonly) {\n this.form.formGroup.disable();\n return;\n }\n this.readonlyControlNames.forEach(x => {\n this.form.formGroup.get(x)?.disable();\n });\n }\n listenFormState() {\n const selectIncomeData = createSelector(createFeatureSelector(this.ngrxFeatureKey), (state) => state?.[this.detailsRepository]);\n this.store\n .select(selectIncomeData)\n .pipe(takeUntil(this.destroyed$))\n .subscribe(({ item, loaded, backendValidationErrors } = {\n item: undefined,\n loaded: false,\n saveItemState: { saveInProgress: false },\n backendValidationErrors: []\n }) => {\n if (item\n && ((item.validationErrors || item.validationWarnings) && !this.form.formGroup.dirty)\n || backendValidationErrors.length) {\n this.handleValidation('propertyName', item.validationWarnings || [], 'validationWarning', 'warningMessage');\n this.handleValidation('propertyName', item.validationErrors || [], 'validationError', 'errorMessage');\n if (this.itemCache && this.isStateChanged(item) && backendValidationErrors.length) {\n backendValidationErrors = this.dispatchErrors(item, backendValidationErrors);\n }\n this.handleBackendValidation(backendValidationErrors);\n this.cdr.markForCheck();\n }\n this.itemCache = item;\n this.loaded = loaded;\n this.cdr.detectChanges();\n });\n }\n listenFormChange() {\n this.form.dataChange.pipe(takeUntil(this.destroyed$)).subscribe((item) => {\n this.store.dispatch(createUpdateDetailAction(this.detailsRepository)({ item }));\n });\n }\n listenFormStatusChange() {\n this.form.statusChange\n .pipe(takeUntil(this.destroyed$))\n .subscribe((formState) => {\n this.store.dispatch(createUpdateFormStateAction(this.detailsRepository)({ formState }));\n });\n }\n handleValidation = (controlName, errors, errorKey, messageKey) => {\n if (errors.length > 0)\n return;\n errors.forEach((error) => {\n const control = this.form.formGroup.get(error[controlName]);\n if (control) {\n control.disabled\n ? control.disable({ emitEvent: false, onlySelf: true })\n : control.enable({ emitEvent: false, onlySelf: true });\n control.setErrors({ [errorKey]: error[messageKey] }, { emitEvent: true });\n control.markAsDirty();\n }\n });\n };\n handleBackendValidation(errors) {\n errors.forEach(({ parameters, code }) => {\n const control = this.form.formGroup.get(this.normalizePropertyNames(parameters));\n if (!control)\n return;\n control[control.disabled ? \"disable\" : \"enable\"]({ emitEvent: false, onlySelf: true });\n control.setErrors({ \"validationError\": code }, { emitEvent: true });\n control.markAsDirty();\n });\n }\n dispatchErrors(item, errors) {\n const error = errors.filter((e) => {\n return this.itemCache[this.normalizePropertyNames(e.parameters)] === item[this.normalizePropertyNames(e.parameters)];\n });\n this.store.dispatch(createUpdateDetailSetErrorsAction(this.detailsRepository)({ error }));\n return error;\n }\n normalizePropertyNames(input) {\n return String(input[0]).toLocaleLowerCase() + String(input).slice(1);\n }\n isStateChanged(item) {\n return item !== this.itemCache;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: DetailStoreDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: DetailStoreDirective, isStandalone: true, selector: \"[v-useDetailStore]\", inputs: { form: \"form\", detailsRepository: \"detailsRepository\", autoBind: \"autoBind\", detailId: \"detailId\", ngrxFeatureKey: \"ngrxFeatureKey\", destroyForm: \"destroyForm\", readonly: \"readonly\", readonlyControlNames: \"readonlyControlNames\" }, exportAs: [\"useDetailStore\"], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: DetailStoreDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-useDetailStore]',\n exportAs: 'useDetailStore',\n standalone: true,\n }]\n }], propDecorators: { form: [{\n type: Input,\n args: [{ required: true }]\n }], detailsRepository: [{\n type: Input,\n args: [{ required: true }]\n }], autoBind: [{\n type: Input\n }], detailId: [{\n type: Input\n }], ngrxFeatureKey: [{\n type: Input,\n args: [{ required: true }]\n }], destroyForm: [{\n type: Input\n }], readonly: [{\n type: Input\n }], readonlyControlNames: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLXN0b3JlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtZm9ybS9kaXJlY3RpdmVzL2RldGFpbC1zdG9yZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUVMLGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUVMLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4QixpQ0FBaUMsRUFDakMsMkJBQTJCLEdBRTVCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFRM0QsTUFBTSxPQUFPLG9CQUNYLFNBQVEsb0JBQW9CO0lBR0QsSUFBSSxDQUEwQjtJQUU5QixpQkFBaUIsQ0FBVTtJQUU3QyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBRWhCLFFBQVEsQ0FBK0I7SUFFckIsY0FBYyxDQUFVO0lBRTFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFFbkIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVqQixvQkFBb0IsR0FBYSxFQUFFLENBQUM7SUFFN0MsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixHQUFHLEdBQUcsTUFB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QzFDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQVM7UUFDOUIsT0FBTyxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNqQyxDQUFDO3VHQTFMVSxvQkFBb0I7MkZBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFOaEMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFLNEIsSUFBSTtzQkFBOUIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRUUsaUJBQWlCO3NCQUEzQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaEIsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVxQixjQUFjO3NCQUF4QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaEIsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLG9CQUFvQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQmFja2VuZFZhbGlkYXRpb25FcnJvcixcbiAgY3JlYXRlSW5pdERldGFpbEFjdGlvbixcbiAgY3JlYXRlSW5pdE5ld0RldGFpbEFjdGlvbixcbiAgY3JlYXRlUmVzZXRTdGF0ZUFjdGlvbixcbiAgY3JlYXRlVXBkYXRlRGV0YWlsQWN0aW9uLFxuICBjcmVhdGVVcGRhdGVEZXRhaWxTZXRFcnJvcnNBY3Rpb24sXG4gIGNyZWF0ZVVwZGF0ZUZvcm1TdGF0ZUFjdGlvbixcbiAgRGV0YWlsU3RhdGUsXG59IGZyb20gJ0B2ZXJpc29mdC9zdG9yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVuc3Vic2NyaWJlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdW5zdWJzY3JpYmUuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi4vYmFzZS1mb3JtLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1t2LXVzZURldGFpbFN0b3JlXScsXG4gIGV4cG9ydEFzOiAndXNlRGV0YWlsU3RvcmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEZXRhaWxTdG9yZURpcmVjdGl2ZVxuICBleHRlbmRzIFVuc3Vic2NyaWJlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZm9ybSE6IEJhc2VGb3JtRGlyZWN0aXZlPGFueT47XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZGV0YWlsc1JlcG9zaXRvcnkhOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgYXV0b0JpbmQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGRldGFpbElkITogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIG5ncnhGZWF0dXJlS2V5ITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGRlc3Ryb3lGb3JtID0gdHJ1ZTtcblxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHJlYWRvbmx5Q29udHJvbE5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHN0b3JlID0gaW5qZWN0KFN0b3JlKTtcbiAgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuXG4gIHByaXZhdGUgaXRlbUNhY2hlOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIGxvYWRlZCE6IGJvb2xlYW47XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxvYWRlZCkge1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtU3RhdGUoKTtcbiAgICB9XG4gICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlKCk7XG4gICAgdGhpcy5saXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b0JpbmQgJiYgIXRoaXMubG9hZGVkKSB7XG4gICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICBpZiAodGhpcy5kZXN0cm95Rm9ybSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChjcmVhdGVSZXNldFN0YXRlQWN0aW9uKHRoaXMuZGV0YWlsc1JlcG9zaXRvcnkpKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEZvcm0oKSB7XG4gICAgaWYgKHRoaXMuZGV0YWlsSWQgPT09ICdjcmVhdGUnKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKGNyZWF0ZUluaXROZXdEZXRhaWxBY3Rpb24odGhpcy5kZXRhaWxzUmVwb3NpdG9yeSkoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIGNyZWF0ZUluaXREZXRhaWxBY3Rpb24odGhpcy5kZXRhaWxzUmVwb3NpdG9yeSkoeyBvYmo6IHRoaXMuZGV0YWlsSWQgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgIHRoaXMuZm9ybS5mb3JtR3JvdXAuZGlzYWJsZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVhZG9ubHlDb250cm9sTmFtZXMuZm9yRWFjaCh4ID0+IHtcbiAgICAgIHRoaXMuZm9ybS5mb3JtR3JvdXAuZ2V0KHgpPy5kaXNhYmxlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvcm1TdGF0ZSgpIHtcbiAgICBjb25zdCBzZWxlY3RJbmNvbWVEYXRhID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8YW55Pih0aGlzLm5ncnhGZWF0dXJlS2V5KSxcbiAgICAgIChzdGF0ZTogYW55KSA9PiBzdGF0ZT8uW3RoaXMuZGV0YWlsc1JlcG9zaXRvcnldIGFzIERldGFpbFN0YXRlPGFueT5cbiAgICApO1xuICAgIHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3Qoc2VsZWN0SW5jb21lRGF0YSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKFxuICAgICAgICAgIHsgaXRlbSwgbG9hZGVkLCBiYWNrZW5kVmFsaWRhdGlvbkVycm9ycyB9ID0ge1xuICAgICAgICAgICAgaXRlbTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbG9hZGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHNhdmVJdGVtU3RhdGU6IHsgc2F2ZUluUHJvZ3Jlc3M6IGZhbHNlIH0sXG4gICAgICAgICAgICBiYWNrZW5kVmFsaWRhdGlvbkVycm9yczogW11cbiAgICAgICAgICB9XG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGlmIChpdGVtXG4gICAgICAgICAgICAmJiAoKGl0ZW0udmFsaWRhdGlvbkVycm9ycyB8fCBpdGVtLnZhbGlkYXRpb25XYXJuaW5ncykgJiYgIXRoaXMuZm9ybS5mb3JtR3JvdXAuZGlydHkpXG4gICAgICAgICAgICB8fCBiYWNrZW5kVmFsaWRhdGlvbkVycm9ycy5sZW5ndGhcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlVmFsaWRhdGlvbihcbiAgICAgICAgICAgICAgJ3Byb3BlcnR5TmFtZScsXG4gICAgICAgICAgICAgIGl0ZW0udmFsaWRhdGlvbldhcm5pbmdzIHx8IFtdLFxuICAgICAgICAgICAgICAndmFsaWRhdGlvbldhcm5pbmcnLFxuICAgICAgICAgICAgICAnd2FybmluZ01lc3NhZ2UnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVWYWxpZGF0aW9uKFxuICAgICAgICAgICAgICAncHJvcGVydHlOYW1lJyxcbiAgICAgICAgICAgICAgaXRlbS52YWxpZGF0aW9uRXJyb3JzIHx8IFtdLFxuICAgICAgICAgICAgICAndmFsaWRhdGlvbkVycm9yJyxcbiAgICAgICAgICAgICAgJ2Vycm9yTWVzc2FnZSdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLml0ZW1DYWNoZSAmJiB0aGlzLmlzU3RhdGVDaGFuZ2VkKGl0ZW0pICYmIGJhY2tlbmRWYWxpZGF0aW9uRXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICBiYWNrZW5kVmFsaWRhdGlvbkVycm9ycyA9IHRoaXMuZGlzcGF0Y2hFcnJvcnMoaXRlbSwgYmFja2VuZFZhbGlkYXRpb25FcnJvcnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUJhY2tlbmRWYWxpZGF0aW9uKGJhY2tlbmRWYWxpZGF0aW9uRXJyb3JzKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuaXRlbUNhY2hlID0gaXRlbTtcblxuICAgICAgICAgIHRoaXMubG9hZGVkID0gbG9hZGVkO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRm9ybUNoYW5nZSgpIHtcbiAgICB0aGlzLmZvcm0uZGF0YUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIGNyZWF0ZVVwZGF0ZURldGFpbEFjdGlvbih0aGlzLmRldGFpbHNSZXBvc2l0b3J5KSh7IGl0ZW0gfSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZvcm1TdGF0dXNDaGFuZ2UoKSB7XG4gICAgdGhpcy5mb3JtLnN0YXR1c0NoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChmb3JtU3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICBjcmVhdGVVcGRhdGVGb3JtU3RhdGVBY3Rpb24odGhpcy5kZXRhaWxzUmVwb3NpdG9yeSkoeyBmb3JtU3RhdGUgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVWYWxpZGF0aW9uID0gKFxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmcsXG4gICAgZXJyb3JzOiBhbnlbXSxcbiAgICBlcnJvcktleTogc3RyaW5nLFxuICAgIG1lc3NhZ2VLZXk6IHN0cmluZ1xuICApID0+IHtcbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHJldHVybjtcbiAgICBlcnJvcnMuZm9yRWFjaCgoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5mb3JtR3JvdXAuZ2V0KGVycm9yW2NvbnRyb2xOYW1lXSk7XG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICBjb250cm9sLmRpc2FibGVkXG4gICAgICAgICAgPyBjb250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZSB9KVxuICAgICAgICAgIDogY29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoXG4gICAgICAgICAgeyBbZXJyb3JLZXldOiBlcnJvclttZXNzYWdlS2V5XSB9LFxuICAgICAgICAgIHsgZW1pdEV2ZW50OiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHByaXZhdGUgaGFuZGxlQmFja2VuZFZhbGlkYXRpb24oZXJyb3JzOiBCYWNrZW5kVmFsaWRhdGlvbkVycm9yW10pIHtcbiAgICBlcnJvcnMuZm9yRWFjaCgoeyBwYXJhbWV0ZXJzLCBjb2RlIH06IEJhY2tlbmRWYWxpZGF0aW9uRXJyb3IpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZm9ybUdyb3VwLmdldCh0aGlzLm5vcm1hbGl6ZVByb3BlcnR5TmFtZXMocGFyYW1ldGVycykpO1xuICAgICAgaWYgKCFjb250cm9sKSByZXR1cm47XG5cbiAgICAgIGNvbnRyb2xbY29udHJvbC5kaXNhYmxlZCA/IFwiZGlzYWJsZVwiIDogXCJlbmFibGVcIl0oeyBlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgXCJ2YWxpZGF0aW9uRXJyb3JcIjogY29kZSB9LCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGF0Y2hFcnJvcnMoaXRlbTogYW55LCBlcnJvcnM6IEJhY2tlbmRWYWxpZGF0aW9uRXJyb3JbXSk6IEJhY2tlbmRWYWxpZGF0aW9uRXJyb3JbXSB7XG4gICAgY29uc3QgZXJyb3IgPSBlcnJvcnMuZmlsdGVyKChlOiBCYWNrZW5kVmFsaWRhdGlvbkVycm9yKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5pdGVtQ2FjaGVbdGhpcy5ub3JtYWxpemVQcm9wZXJ0eU5hbWVzKGUucGFyYW1ldGVycyldID09PSBpdGVtW3RoaXMubm9ybWFsaXplUHJvcGVydHlOYW1lcyhlLnBhcmFtZXRlcnMpXTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBjcmVhdGVVcGRhdGVEZXRhaWxTZXRFcnJvcnNBY3Rpb24odGhpcy5kZXRhaWxzUmVwb3NpdG9yeSkoeyBlcnJvciB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVByb3BlcnR5TmFtZXMoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFN0cmluZyhpbnB1dFswXSkudG9Mb2NhbGVMb3dlckNhc2UoKSArIFN0cmluZyhpbnB1dCkuc2xpY2UoMSk7XG4gIH1cblxuICBwcml2YXRlIGlzU3RhdGVDaGFuZ2VkKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpdGVtICE9PSB0aGlzLml0ZW1DYWNoZTtcbiAgfVxufVxuIl19","import { InjectionToken } from '@angular/core';\nexport const BREADCRUMB_COMPONENT_TOKEN = new InjectionToken('BreadcrumbComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUN4RCwwQkFBMEIsQ0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnLi4vc2lkZS1tZW51JztcblxuZXhwb3J0IGNvbnN0IEJSRUFEQ1JVTUJfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEJyZWFkY3J1bWJDb3JlPihcbiAgICAnQnJlYWRjcnVtYkNvbXBvbmVudFRva2VuJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBCcmVhZGNydW1iQ29yZSB7XG4gICAgaXRlbXM6IE1lbnVJdGVtW107XG4gICAgaG9tZVJvdXRlOiBzdHJpbmc7XG4gICAgdXNlSG9tZVJvdXRlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJyZWFkY3J1bWIge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgcm91dGVyTGluaz86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgYWN0aXZlPzogYm9vbGVhbjtcbiAgICBhY3RpdmF0ZWRSb3V0ZT86IEFjdGl2YXRlZFJvdXRlO1xufVxuIl19","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class BreadcrumbService {\n routeChange = new EventEmitter();\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: BreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: BreadcrumbService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], propDecorators: { routeChange: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1qRSxNQUFNLE9BQU8saUJBQWlCO0lBQ2xCLFdBQVcsR0FBNkIsSUFBSSxZQUFZLEVBQUUsQ0FBQzt1R0FEMUQsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs4QkFFVyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tICcuL2JyZWFkY3J1bWIubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYlNlcnZpY2Uge1xuICBAT3V0cHV0KCkgcm91dGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxCcmVhZGNydW1iPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbn1cbiJdfQ==","import { ChangeDetectorRef, Directive, Input, inject, } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs';\nimport { UnsubscribeComponent } from '../unsubscribe.component';\nimport { BreadcrumbService } from './breadcrumb.service';\nimport * as i0 from \"@angular/core\";\nexport class BreadcrumbCoreComponent extends UnsubscribeComponent {\n items = [];\n homeRoute = '/';\n useHomeRoute = false;\n static ROUTE_DATA_BREADCRUMB = 'breadcrumb';\n static ROUTE_DATA_BREADCRUMB_URL = 'breadcrumb_url';\n static ROUTE_DATA_NO_BREADCRUMB_ROUTE = 'breadcrumb_no_route';\n static BREADCRUMB_HIDE = 'breadcrumb_hide';\n home = { icon: 'pi pi-home', routerLink: this.homeRoute };\n router = inject(Router);\n activatedRoute = inject(ActivatedRoute);\n breadcrumbService = inject(BreadcrumbService);\n cdr = inject(ChangeDetectorRef);\n ngOnInit() {\n this.initBreadcrumbsCreation();\n this.initRouteChangeListen();\n }\n initBreadcrumbsCreation() {\n this.router.events\n .pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this.destroyed$))\n .subscribe(() => (this.items = this.createBreadcrumbs(this.activatedRoute.root)));\n }\n initRouteChangeListen() {\n this.breadcrumbService.routeChange\n .pipe(filter((x) => x.label !== 'Undefined'), takeUntil(this.destroyed$))\n .subscribe((x) => {\n this.items = [\n ...this.items,\n {\n label: x.label,\n routerLink: x.routerLink,\n url: x.url,\n class: 'breadcrumb',\n },\n ];\n this.cdr.detectChanges();\n });\n }\n createBreadcrumbs(route, routerLink = '', breadcrumbs = []) {\n const children = route.children;\n if (children.length === 0) {\n return breadcrumbs;\n }\n for (const child of children) {\n const routeURL = child.snapshot.url\n .map((segment) => segment.path)\n .join('/');\n if (!child.snapshot.data[BreadcrumbCoreComponent.BREADCRUMB_HIDE]) {\n if (BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL !== undefined) {\n const route = child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL];\n routerLink += `/${route}`;\n }\n if (!BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL && routeURL !== '') {\n routerLink += `/${routeURL}`;\n }\n const label = child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB];\n if (label &&\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE &&\n child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE]) {\n breadcrumbs.push({ label, routerLink: undefined });\n }\n else if (label && child.snapshot.routeConfig?.path !== '') {\n breadcrumbs.push({ label, routerLink: routerLink });\n }\n }\n return this.createBreadcrumbs(child, routerLink, breadcrumbs);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: BreadcrumbCoreComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: BreadcrumbCoreComponent, isStandalone: true, inputs: { items: \"items\", homeRoute: \"homeRoute\", useHomeRoute: \"useHomeRoute\" }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: BreadcrumbCoreComponent, decorators: [{\n type: Directive,\n args: [{}]\n }], propDecorators: { items: [{\n type: Input\n }], homeRoute: [{\n type: Input\n }], useHomeRoute: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYmNvcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iY29yZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLHVCQUNYLFNBQVEsb0JBQW9CO0lBR25CLEtBQUssR0FBZSxFQUFFLENBQUM7SUFDdkIsU0FBUyxHQUFHLEdBQUcsQ0FBQztJQUNoQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRTlCLE1BQU0sQ0FBVSxxQkFBcUIsR0FBRyxZQUFZLENBQUM7SUFDckQsTUFBTSxDQUFVLHlCQUF5QixHQUFHLGdCQUFnQixDQUFDO0lBQzdELE1BQU0sQ0FBVSw4QkFBOEIsR0FBRyxxQkFBcUIsQ0FBQztJQUN2RSxNQUFNLENBQVUsZUFBZSxHQUFHLGlCQUFpQixDQUFDO0lBQzNDLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUVuRSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFD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QUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2pCLHVCQUF1QixDQUFDLDhCQUE4QixDQUN2RCxFQUNELENBQUM7b0JBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDckQsQ0FBQztxQkFBTSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQzVELFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RELENBQUM7WUFDSCxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQzt1R0FsR1UsdUJBQXVCOzJGQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUMsRUFFVjs4QkFLVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIGluamVjdCxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnLi4vc2lkZS1tZW51JztcbmltcG9ydCB7IFVuc3Vic2NyaWJlQ29tcG9uZW50IH0gZnJvbSAnLi4vdW5zdWJzY3JpYmUuY29tcG9uZW50JztcbmltcG9ydCB7IEJyZWFkY3J1bWJDb3JlIH0gZnJvbSAnLi9icmVhZGNydW1iLm1vZGVsJztcbmltcG9ydCB7IEJyZWFkY3J1bWJTZXJ2aWNlIH0gZnJvbSAnLi9icmVhZGNydW1iLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvcmVDb21wb25lbnRcbiAgZXh0ZW5kcyBVbnN1YnNjcmliZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEJyZWFkY3J1bWJDb3JlLCBPbkluaXRcbntcbiAgQElucHV0KCkgaXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgaG9tZVJvdXRlID0gJy8nO1xuICBASW5wdXQoKSB1c2VIb21lUm91dGUgPSBmYWxzZTtcblxuICBzdGF0aWMgcmVhZG9ubHkgUk9VVEVfREFUQV9CUkVBRENSVU1CID0gJ2JyZWFkY3J1bWInO1xuICBzdGF0aWMgcmVhZG9ubHkgUk9VVEVfREFUQV9CUkVBRENSVU1CX1VSTCA9ICdicmVhZGNydW1iX3VybCc7XG4gIHN0YXRpYyByZWFkb25seSBST1VURV9EQVRBX05PX0JSRUFEQ1JVTUJfUk9VVEUgPSAnYnJlYWRjcnVtYl9ub19yb3V0ZSc7XG4gIHN0YXRpYyByZWFkb25seSBCUkVBRENSVU1CX0hJREUgPSAnYnJlYWRjcnVtYl9oaWRlJztcbiAgcmVhZG9ubHkgaG9tZSA9IHsgaWNvbjogJ3BpIHBpLWhvbWUnLCByb3V0ZXJMaW5rOiB0aGlzLmhvbWVSb3V0ZSB9O1xuXG4gIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIGJyZWFkY3J1bWJTZXJ2aWNlID0gaW5qZWN0KEJyZWFkY3J1bWJTZXJ2aWNlKTtcbiAgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRCcmVhZGNydW1ic0NyZWF0aW9uKCk7XG4gICAgdGhpcy5pbml0Um91dGVDaGFuZ2VMaXN0ZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEJyZWFkY3J1bWJzQ3JlYXRpb24oKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+ICh0aGlzLml0ZW1zID0gdGhpcy5jcmVhdGVCcmVhZGNydW1icyh0aGlzLmFjdGl2YXRlZFJvdXRlLnJvb3QpKVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFJvdXRlQ2hhbmdlTGlzdGVuKCkge1xuICAgIHRoaXMuYnJlYWRjcnVtYlNlcnZpY2Uucm91dGVDaGFuZ2VcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHgpID0+IHgubGFiZWwgIT09ICdVbmRlZmluZWQnKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtcbiAgICAgICAgICAuLi50aGlzLml0ZW1zLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB4LmxhYmVsLFxuICAgICAgICAgICAgcm91dGVyTGluazogeC5yb3V0ZXJMaW5rLFxuICAgICAgICAgICAgdXJsOiB4LnVybCxcbiAgICAgICAgICAgIGNsYXNzOiAnYnJlYWRjcnVtYicsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUJyZWFkY3J1bWJzKFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICByb3V0ZXJMaW5rID0gJycsXG4gICAgYnJlYWRjcnVtYnM6IE1lbnVJdGVtW10gPSBbXVxuICApOiBhbnkge1xuICAgIGNvbnN0IGNoaWxkcmVuOiBBY3RpdmF0ZWRSb3V0ZVtdID0gcm91dGUuY2hpbGRyZW47XG5cbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gYnJlYWRjcnVtYnM7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgY29uc3Qgcm91dGVVUkw6IHN0cmluZyA9IGNoaWxkLnNuYXBzaG90LnVybFxuICAgICAgICAubWFwKChzZWdtZW50KSA9PiBzZWdtZW50LnBhdGgpXG4gICAgICAgIC5qb2luKCcvJyk7XG5cbiAgICAgIGlmICghY2hpbGQuc25hcHNob3QuZGF0YVtCcmVhZGNydW1iQ29yZUNvbXBvbmVudC5CUkVBRENSVU1CX0hJREVdKSB7XG4gICAgICAgIGlmIChCcmVhZGNydW1iQ29yZUNvbXBvbmVudC5ST1VURV9EQVRBX0JSRUFEQ1JVTUJfVVJMICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb25zdCByb3V0ZSA9XG4gICAgICAgICAgICBjaGlsZC5zbmFwc2hvdC5kYXRhW0JyZWFkY3J1bWJDb3JlQ29tcG9uZW50LlJPVVRFX0RBVEFfQlJFQURDUlVNQl9VUkxdO1xuICAgICAgICAgIHJvdXRlckxpbmsgKz0gYC8ke3JvdXRlfWA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUJyZWFkY3J1bWJDb3JlQ29tcG9uZW50LlJPVVRFX0RBVEFfQlJFQURDUlVNQl9VUkwgJiYgcm91dGVVUkwgIT09ICcnKSB7XG4gICAgICAgICAgcm91dGVyTGluayArPSBgLyR7cm91dGVVUkx9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhYmVsID0gY2hpbGQuc25hcHNob3QuZGF0YVtCcmVhZGNydW1iQ29yZUNvbXBvbmVudC5ST1VURV9EQVRBX0JSRUFEQ1JVTUJdO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbGFiZWwgJiZcbiAgICAgICAgICBCcmVhZGNydW1iQ29yZUNvbXBvbmVudC5ST1VURV9EQVRBX05PX0JSRUFEQ1JVTUJfUk9VVEUgJiZcbiAgICAgICAgICBjaGlsZC5zbmFwc2hvdC5kYXRhW1xuICAgICAgICAgICAgQnJlYWRjcnVtYkNvcmVDb21wb25lbnQuUk9VVEVfREFUQV9OT19CUkVBRENSVU1CX1JPVVRFXG4gICAgICAgICAgXVxuICAgICAgICApIHtcbiAgICAgICAgICBicmVhZGNydW1icy5wdXNoKHsgbGFiZWwsIHJvdXRlckxpbms6IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChsYWJlbCAmJiBjaGlsZC5zbmFwc2hvdC5yb3V0ZUNvbmZpZz8ucGF0aCAhPT0gJycpIHtcbiAgICAgICAgICBicmVhZGNydW1icy5wdXNoKHsgbGFiZWwsIHJvdXRlckxpbms6IHJvdXRlckxpbmsgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnMoY2hpbGQsIHJvdXRlckxpbmssIGJyZWFkY3J1bWJzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const BUTTON_COMPONENT_TOKEN = new InjectionToken('ButtonComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUNwRCxzQkFBc0IsQ0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29udHJvbFNldmVyaXR5VHlwZSwgRmllbGRTaXplVHlwZSwgSWNvblBvc2l0aW9uVHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBCVVRUT05fQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEJ1dHRvbkNvcmU+KFxuICAgICdCdXR0b25Db21wb25lbnRUb2tlbidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9uQ29yZSB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBiYWRnZT86IHN0cmluZztcbiAgICBpY29uUG9zOiBJY29uUG9zaXRpb25UeXBlO1xuICAgIHJvdW5kZWQ6IGJvb2xlYW47XG4gICAgb3V0bGluZWQ6IGJvb2xlYW47XG4gICAgcmFpc2VkOiBib29sZWFuO1xuICAgIHNldmVyaXR5PzogQ29udHJvbFNldmVyaXR5VHlwZTtcbiAgICByb3V0ZXJMaW5rOiBhbnlbXTtcbiAgICBzaXplOiBGaWVsZFNpemVUeXBlIHwgdW5kZWZpbmVkO1xuICAgIHF1ZXJ5UGFyYW1zPzogUGFyYW1zO1xufVxuIl19","import { InjectionToken } from \"@angular/core\";\nexport const DROPDOWN_BUTTON_COMPONENT_TOKEN = new InjectionToken('DropdownButtonComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYnV0dG9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24tYnV0dG9uL2Ryb3Bkb3duLWJ1dHRvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBSTVELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLElBQUksY0FBYyxDQUM3RCw4QkFBOEIsQ0FDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbnB1dFNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xTZXZlcml0eVR5cGUsIEZpZWxkU2l6ZVR5cGUgfSBmcm9tIFwiLi4vLi4vY29tbW9uXCI7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSBcIi4uL3NpZGUtbWVudVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IERST1BET1dOX0JVVFRPTl9DT01QT05FTlRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48RHJvcGRvd25CdXR0b25Db3JlPihcclxuICAgICdEcm9wZG93bkJ1dHRvbkNvbXBvbmVudFRva2VuJ1xyXG4pO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93bkJ1dHRvbkNvcmUge1xyXG4gICAgbGFiZWw6IElucHV0U2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD47XHJcbiAgICBpY29uOiBJbnB1dFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xyXG4gICAgcm91bmRlZDogSW5wdXRTaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XHJcbiAgICBvdXRsaW5lZDogSW5wdXRTaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XHJcbiAgICByYWlzZWQ6IElucHV0U2lnbmFsPGJvb2xlYW4gfCB1bmRlZmluZWQ+O1xyXG4gICAgc2V2ZXJpdHk6IElucHV0U2lnbmFsPENvbnRyb2xTZXZlcml0eVR5cGUgfCB1bmRlZmluZWQ+O1xyXG4gICAgc2l6ZTogSW5wdXRTaWduYWw8RmllbGRTaXplVHlwZSB8IHVuZGVmaW5lZD47XHJcbiAgICBpdGVtczogSW5wdXRTaWduYWw8TWVudUl0ZW1bXSB8IHVuZGVmaW5lZD47XHJcbn0iXX0=","import { InjectionToken } from '@angular/core';\nexport const CALENDAR_COMPONENT_TOKEN = new InjectionToken('CalendarComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUNvcmUgfSBmcm9tICcuLi9iYXNlLWZvcm0nO1xuXG5leHBvcnQgY29uc3QgQ0FMRU5EQVJfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPENhbGVuZGFyQ29yZT4oXG4gICAgJ0NhbGVuZGFyQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyQ29yZSBleHRlbmRzIEJhc2VGb3JtQ29yZSB7XG4gICAgbWF4RGF0ZTogRGF0ZTtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgbWluRGF0ZTogRGF0ZTtcbiAgICBoZWFkZXI6IHN0cmluZztcbiAgICBmb290ZXI6IHN0cmluZztcbiAgICBmbG9hdExhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgc2VsZWN0aW9uTW9kZTogXCJzaW5nbGVcIiB8IFwibXVsdGlwbGVcIiB8IFwicmFuZ2VcIiB8IHVuZGVmaW5lZDtcbn0iXX0=","import { InjectionToken } from '@angular/core';\nexport const CHECKBOX_COMPONENT_TOKEN = new InjectionToken('CheckboxComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRzVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbnB1dFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUZvcm1Db3JlIH0gZnJvbSAnLi4vYmFzZS1mb3JtJztcblxuZXhwb3J0IGNvbnN0IENIRUNLQk9YX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDaGVja2JveENvcmU+KFxuICAgICdDaGVja2JveENvbXBvbmVudFRva2VuJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBDaGVja2JveENvcmUgZXh0ZW5kcyBCYXNlRm9ybUNvcmUge1xuICAgIGluZGV0ZXJtaW5hdGU6IElucHV0U2lnbmFsPGJvb2xlYW4+O1xufVxuIl19","import { InjectionToken } from '@angular/core';\nexport const CONFIRM_DIALOG_COMPONENT_TOKEN = new InjectionToken('ConfirmDialogComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBSXJELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUM5RCw2QkFBNkIsQ0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQgeyBDb250cm9sU2V2ZXJpdHlUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IENPTkZJUk1fRElBTE9HX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb25maXJtRGlhbG9nQ29yZT4oXG4gICdDb25maXJtRGlhbG9nQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgdHlwZSBDb25maXJtRGlhbG9nQ29yZSA9IG9iamVjdFxuXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0RhdGEge1xuICB0aXRsZT86IHN0cmluZztcbiAgaGVhZGVySWNvbj86IHN0cmluZztcbiAgc2V2ZXJpdHk/OiBDb250cm9sU2V2ZXJpdHlUeXBlO1xuICBzaG93Q2FuY2VsQnV0dG9uPzogYm9vbGVhbjtcbiAgYnV0dG9uT3JkZXI/OiAnY29uZmlybS1jYW5jZWwnIHwgJ2NhbmNlbC1jb25maXJtJztcbiAgY29uZmlybUJ1dHRvblRleHQ/OiBzdHJpbmc7XG4gIGNvbmZpcm1CdXR0b25Gbj86ICgpID0+IHZvaWQ7XG4gIGNhbmNlbEJ1dHRvbkZuPzogKCkgPT4gdm9pZDtcbiAgY2FuY2VsQnV0dG9uVGV4dD86IHN0cmluZztcbiAgaW5uZXJIVE1MPzogc3RyaW5nIHwgU2FmZUh0bWw7XG4gIGRhdGE/OiB1bmtub3duO1xuICBjb21wb25lbnRUeXBlPzogVHlwZTx1bmtub3duPjtcbiAgY2xvc2FibGU/OiBib29sZWFuO1xuICB3aWR0aD86IHN0cmluZztcbiAgaGVpZ2h0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkRGlhbG9nRGF0YTxUSW5wdXRzID0gYW55LCBUT3V0cHV0cyA9IGFueT4gZXh0ZW5kcyBEaWFsb2dEYXRhIHtcbiAgZGF0YT86IFRJbnB1dHMgJiBUT3V0cHV0cztcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const DROPDOWN_COMPONENT_TOKEN = new InjectionToken('DropdownComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlQ29tcG9uZW50TW9kZWwgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgQmFzZUZvcm1Db3JlIH0gZnJvbSAnLi4vYmFzZS1mb3JtJztcblxuZXhwb3J0IGNvbnN0IERST1BET1dOX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEcm9wZG93bkNvcmU8YW55Pj4oXG4gICAgJ0Ryb3Bkb3duQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duQ29yZTxUPiBleHRlbmRzIERhdGFTb3VyY2VDb21wb25lbnRNb2RlbDxUPiwgQmFzZUZvcm1Db3JlIHtcbiAgICBkcm9wZG93bkljb24/OiBzdHJpbmc7XG4gICAgZmxvYXRMYWJlbD86IHN0cmluZztcbiAgICBlZGl0YWJsZTogYm9vbGVhbjtcbiAgICBmb3JjZU1pbldpZHRoOiBib29sZWFuO1xuICAgIHNob3dGaWx0ZXI6IGJvb2xlYW47XG4gICAgbG9jYWxTZWFyY2g6IGJvb2xlYW47XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const FILTER_COMPONENT_TOKEN = new InjectionToken('FilterComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUNwRCxzQkFBc0IsQ0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBHZW5lcmljRmllbGREZWZpbml0aW9uIH0gZnJvbSAnLi4vZ2VuZXJpYy1mb3JtJztcclxuXHJcbmV4cG9ydCBjb25zdCBGSUxURVJfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEZpbHRlckNvcmU+KFxyXG4gICAgJ0ZpbHRlckNvbXBvbmVudFRva2VuJ1xyXG4pO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJDb3JlIGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gICAgZmllbGRzOiBHZW5lcmljRmllbGREZWZpbml0aW9uW107ICBcclxuICAgIHRpdGxlPzogc3RyaW5nOyAgXHJcbiAgICBmdWxsdGV4dEZpZWxkTmFtZTogc3RyaW5nOyAgXHJcbiAgICBzaG93RnVsbHRleHQ6IGJvb2xlYW47ICBcclxuICAgIHNob3dGaWx0ZXJzOiBib29sZWFuOyAgXHJcbiAgICBhdXRvQmluZDogYm9vbGVhbjsgIFxyXG4gICAgZGVib3VuY2VUaW1lPzogbnVtYmVyO1xyXG59XHJcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const FORM_FIELD_COMPONENT_TOKEN = new InjectionToken('FormFieldComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUN4RCx5QkFBeUIsQ0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBGT1JNX0ZJRUxEX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGb3JtRmllbGRDb3JlPihcbiAgICAnRm9ybUZpZWxkQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1GaWVsZENvcmUge1xuICAgIG5nQ29udHJvbD86IE5nQ29udHJvbDtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICB0b29sdGlwPzogc3RyaW5nO1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIHRlc3RJZD86IHN0cmluZztcbiAgICBkaXNwbGF5OiAnZmxleCcgfCAnYmxvY2snO1xufSJdfQ==","import { InjectionToken } from '@angular/core';\nexport const GENERIC_FIELD_COMPONENT_TOKEN = new InjectionToken('GenericFieldComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2dlbmVyaWMtZmllbGQvZ2VuZXJpYy1maWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUMzRCw0QkFBNEIsQ0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlQ29tcG9uZW50TW9kZWwgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgQmFzZUZvcm1Db3JlIH0gZnJvbSAnLi4vYmFzZS1mb3JtJztcblxuZXhwb3J0IGNvbnN0IEdFTkVSSUNfRklFTERfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEdlbmVyaWNGaWVsZENvcmU8YW55Pj4oXG4gICAgJ0dlbmVyaWNGaWVsZENvbXBvbmVudFRva2VuJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmljRmllbGRDb3JlPFQ+IGV4dGVuZHMgRGF0YVNvdXJjZUNvbXBvbmVudE1vZGVsPFQ+LCBCYXNlRm9ybUNvcmUge1xufVxuIl19","export var GenericFieldType;\n(function (GenericFieldType) {\n GenericFieldType[\"dropdown\"] = \"dropdown\";\n GenericFieldType[\"checkbox\"] = \"checkbox\";\n GenericFieldType[\"simplecheckbox\"] = \"simplecheckbox\";\n GenericFieldType[\"calendar\"] = \"calendar\";\n GenericFieldType[\"multiselect\"] = \"multiselect\";\n GenericFieldType[\"text\"] = \"text\";\n})(GenericFieldType || (GenericFieldType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2dlbmVyaWMtZm9ybS9nZW5lcmljLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVCQSxNQUFNLENBQU4sSUFBWSxnQkFPWDtBQVBELFdBQVksZ0JBQWdCO0lBQzFCLHlDQUF1QixDQUFBO0lBQ3ZCLHlDQUF1QixDQUFBO0lBQ3ZCLHFEQUFtQyxDQUFBO0lBQ25DLHlDQUF1QixDQUFBO0lBQ3ZCLCtDQUE2QixDQUFBO0lBQzdCLGlDQUFlLENBQUE7QUFDakIsQ0FBQyxFQVBXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFPM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVR5cGUgfSBmcm9tICdAdmVyaXNvZnQvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkU2l6ZVR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmljRmllbGREZWZpbml0aW9uIHtcclxuICB2YWxpZGF0b3I/OiBWYWxpZGF0b3JGbltdO1xyXG4gIHR5cGU/OiBHZW5lcmljRmllbGRUeXBlVHlwZTtcclxuICBsYWJlbD86IHN0cmluZztcclxuICBmbG9hdExhYmVsPzogYm9vbGVhbjtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgb3B0aW9uTGFiZWw/OiBzdHJpbmc7XHJcbiAgb3B0aW9uVmFsdWU/OiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IHVua25vd25bXTtcclxuICB2YWx1ZT86IHVua25vd247XHJcbiAgdGVzdElkPzogc3RyaW5nO1xyXG4gIHNpemU/OiBGaWVsZFNpemVUeXBlO1xyXG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcclxuICBkYXRhc291cmNlPzogRGF0YXNvdXJjZVR5cGU8YW55PjtcclxuICBmaWx0ZXJGaWVsZD86IHN0cmluZztcclxuICBzaG93RmlsdGVyPzogYm9vbGVhbjtcclxuICBsb2NhbFNlYXJjaD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEdlbmVyaWNGaWVsZFR5cGUge1xyXG4gICdkcm9wZG93bicgPSAnZHJvcGRvd24nLFxyXG4gICdjaGVja2JveCcgPSAnY2hlY2tib3gnLFxyXG4gICdzaW1wbGVjaGVja2JveCcgPSAnc2ltcGxlY2hlY2tib3gnLFxyXG4gICdjYWxlbmRhcicgPSAnY2FsZW5kYXInLFxyXG4gICdtdWx0aXNlbGVjdCcgPSAnbXVsdGlzZWxlY3QnLFxyXG4gICd0ZXh0JyA9ICd0ZXh0JyxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgR2VuZXJpY0ZpZWxkVHlwZVR5cGUgPSBrZXlvZiB0eXBlb2YgR2VuZXJpY0ZpZWxkVHlwZTtcclxuIl19","import { InjectionToken } from '@angular/core';\nexport const HEADER_COMPONENT_TOKEN = new InjectionToken('HeaderComponentToken');\nexport const SETTINGS_MENU = new InjectionToken('SETTINGS_MENU');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUNwRCxzQkFBc0IsQ0FDekIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FDM0MsZUFBZSxDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnLi4vc2lkZS1tZW51L3NpZGUtbWVudS5tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBIRUFERVJfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEhlYWRlckNvcmU+KFxuICAgICdIZWFkZXJDb21wb25lbnRUb2tlbidcbik7XG5cbmV4cG9ydCBjb25zdCBTRVRUSU5HU19NRU5VID0gbmV3IEluamVjdGlvblRva2VuPE1lbnVJdGVtW10+KFxuICAgICdTRVRUSU5HU19NRU5VJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBIZWFkZXJDb3JlIHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHVzZXJOYW1lOiBzdHJpbmc7XG4gICAgbG9nb1VybDogc3RyaW5nO1xuICAgIHVzZXJSb2xlOiBhbnkgfCBhbnlbXSB8IHVuZGVmaW5lZDtcbiAgICBtZW51UmVmOiBIVE1MRGl2RWxlbWVudDtcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const INPUT_GROUP_COMPONENT_TOKEN = new InjectionToken('HeaderComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC1ncm91cC9pbnB1dC1ncm91cC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUN6RCxzQkFBc0IsQ0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IEJhc2VGb3JtQ29yZSB9IGZyb20gJy4uL2Jhc2UtZm9ybSc7XG5cbmV4cG9ydCBjb25zdCBJTlBVVF9HUk9VUF9DT01QT05FTlRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48SW5wdXRHcm91cENvcmU+KFxuICAgICdIZWFkZXJDb21wb25lbnRUb2tlbidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRHcm91cEl0ZW0ge1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgdGV4dD86IHN0cmluZztcbiAgICBwb3NpdGlvbjogSWNvblBvc2l0aW9uVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dEdyb3VwQ29yZSBleHRlbmRzIEJhc2VGb3JtQ29yZSB7XG4gICAgaXRlbXM6IElucHV0R3JvdXBJdGVtW107XG59Il19","import { InjectionToken } from '@angular/core';\nexport const LOADER_COMPONENT_TOKEN = new InjectionToken('LoaderComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUNwRCxzQkFBc0IsQ0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBMT0FERVJfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPExvYWRlckNvcmU+KFxuICAgICdMb2FkZXJDb21wb25lbnRUb2tlbidcbik7XG5cbmV4cG9ydCB0eXBlIExvYWRlckNvcmUgPSBvYmplY3RcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const MULTISELECT_COMPONENT_TOKEN = new InjectionToken('MultiselectComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0aXNlbGVjdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL211bHRpc2VsZWN0L211dGlzZWxlY3QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvQyxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FDekQsMkJBQTJCLENBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZUNvbXBvbmVudE1vZGVsIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IEJhc2VGb3JtQ29yZSB9IGZyb20gJy4uL2Jhc2UtZm9ybSc7XG5cbmV4cG9ydCBjb25zdCBNVUxUSVNFTEVDVF9DT01QT05FTlRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TXVsdGlzZWxlY3RDb3JlPGFueT4+KFxuICAgICdNdWx0aXNlbGVjdENvbXBvbmVudFRva2VuJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBNdWx0aXNlbGVjdENvcmU8VD4gZXh0ZW5kcyBEYXRhU291cmNlQ29tcG9uZW50TW9kZWw8VD4sIEJhc2VGb3JtQ29yZSB7XG4gICAgZHJvcGRvd25JY29uPzogc3RyaW5nO1xuICAgIGZsb2F0TGFiZWw/OiBzdHJpbmc7XG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG59Il19","import { InjectionToken } from '@angular/core';\nexport const NUMBER_INPUT_COMPONENT_TOKEN = new InjectionToken('NumberInputComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUMxRCwyQkFBMkIsQ0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUNvcmUgfSBmcm9tICcuLi9iYXNlLWZvcm0nO1xuXG5leHBvcnQgY29uc3QgTlVNQkVSX0lOUFVUX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOdW1iZXJJbnB1dENvcmU+KFxuICAgICdOdW1iZXJJbnB1dENvbXBvbmVudFRva2VuJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBOdW1iZXJJbnB1dENvcmUgZXh0ZW5kcyBCYXNlRm9ybUNvcmUge1xuICAgIG1vZGU6IHN0cmluZztcbiAgICBjdXJyZW5jeTogc3RyaW5nO1xuICAgIG1pbjogbnVtYmVyO1xuICAgIG1heDogbnVtYmVyO1xuICAgIHN0ZXA6IG51bWJlcjtcbn0iXX0=","import { InjectionToken } from '@angular/core';\nexport const PAGE_HEADER_COMPONENT_TOKEN = new InjectionToken('PageHeaderComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWhlYWRlci9wYWdlLWhlYWRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUN6RCwwQkFBMEIsQ0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBQQUdFX0hFQURFUl9DT01QT05FTlRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UGFnZUhlYWRlckNvcmU+KFxuICAgICdQYWdlSGVhZGVyQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VIZWFkZXJDb3JlIHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHN1YnRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgc2hvd0JhY2tCdXR0b246IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG4iXX0=","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class PageHeaderService {\n pageHeader = new EventEmitter();\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: PageHeaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: PageHeaderService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: PageHeaderService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], propDecorators: { pageHeader: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1qRSxNQUFNLE9BQU8saUJBQWlCO0lBQ2xCLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQzt1R0FEL0MsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs4QkFFVyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ2VIZWFkZXJDb3JlIH0gZnJvbSAnLi9wYWdlLWhlYWRlci5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlSGVhZGVyU2VydmljZSB7XG4gIEBPdXRwdXQoKSBwYWdlSGVhZGVyID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlSGVhZGVyQ29yZT4oKTtcbn1cbiJdfQ==","import { ChangeDetectorRef, Directive, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { takeUntil } from 'rxjs';\nimport { FieldSize } from '../../common';\nimport { UnsubscribeComponent } from '../unsubscribe.component';\nimport { PageHeaderService } from './page-header.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"./page-header.service\";\nexport class PageHeaderCoreComponent extends UnsubscribeComponent {\n router;\n cdr;\n headerService;\n title;\n subtitle;\n showBackButton;\n size = FieldSize.small;\n constructor(router, cdr, headerService) {\n super();\n this.router = router;\n this.cdr = cdr;\n this.headerService = headerService;\n }\n ngOnInit() {\n this.headerService.pageHeader\n .pipe(takeUntil(this.destroyed$))\n .subscribe((x) => {\n this.title = x.title;\n this.subtitle = x.subtitle;\n this.showBackButton = x.showBackButton ?? false;\n this.cdr.detectChanges();\n });\n }\n locationBack() {\n history.back();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: PageHeaderCoreComponent, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }, { token: i2.PageHeaderService }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: PageHeaderCoreComponent, isStandalone: true, inputs: { title: \"title\", subtitle: \"subtitle\", showBackButton: \"showBackButton\", size: \"size\" }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: PageHeaderCoreComponent, decorators: [{\n type: Directive,\n args: [{}]\n }], ctorParameters: () => [{ type: i1.Router }, { type: i0.ChangeDetectorRef }, { type: i2.PageHeaderService }], propDecorators: { title: [{\n type: Input\n }], subtitle: [{\n type: Input\n }], showBackButton: [{\n type: Input\n }], size: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXJjb3JlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyY29yZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxjQUFjLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFLMUQsTUFBTSxPQUFPLHVCQUNYLFNBQVEsb0JBQW9CO0lBU2pCO0lBQ0E7SUFDQTtJQVJGLEtBQUssQ0FBVTtJQUNmLFFBQVEsQ0FBcUI7SUFDN0IsY0FBYyxDQUFXO0lBQ3pCLElBQUksR0FBa0IsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUVqRCxZQUNhLE1BQWMsRUFDZCxHQUFzQixFQUN0QixhQUFnQztRQUV6QyxLQUFLLEVBQUUsQ0FBQztRQUpDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7SUFHM0MsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVU7YUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxjQUFjLElBQUksS0FBSyxDQUFDO1lBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsWUFBWTtRQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQzt1R0E5QlUsdUJBQXVCOzJGQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUMsRUFFVjsySUFLVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpZWxkU2l6ZSwgRmllbGRTaXplVHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgeyBVbnN1YnNjcmliZUNvbXBvbmVudCB9IGZyb20gJy4uL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlSGVhZGVyU2VydmljZSB9IGZyb20gJy4vcGFnZS1oZWFkZXIuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlSGVhZGVyQ29yZUNvbXBvbmVudFxuICBleHRlbmRzIFVuc3Vic2NyaWJlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSBzdWJ0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzaG93QmFja0J1dHRvbiE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNpemU6IEZpZWxkU2l6ZVR5cGUgPSBGaWVsZFNpemUuc21hbGw7XG5cbmNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcmVhZG9ubHkgaGVhZGVyU2VydmljZTogUGFnZUhlYWRlclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZGVyU2VydmljZS5wYWdlSGVhZGVyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHg6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRpdGxlID0geC50aXRsZTtcbiAgICAgICAgdGhpcy5zdWJ0aXRsZSA9IHguc3VidGl0bGU7XG4gICAgICAgIHRoaXMuc2hvd0JhY2tCdXR0b24gPSB4LnNob3dCYWNrQnV0dG9uID8/IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsb2NhdGlvbkJhY2soKSB7XG4gICAgaGlzdG9yeS5iYWNrKCk7XG4gIH1cbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const PASSWORD_COMPONENT_TOKEN = new InjectionToken('PasswordComponentToken');\nexport var PasswordStrength;\n(function (PasswordStrength) {\n PasswordStrength[PasswordStrength[\"None\"] = 0] = \"None\";\n PasswordStrength[PasswordStrength[\"Low\"] = 1] = \"Low\";\n PasswordStrength[PasswordStrength[\"Medium\"] = 2] = \"Medium\";\n PasswordStrength[PasswordStrength[\"High\"] = 3] = \"High\";\n PasswordStrength[PasswordStrength[\"Superb\"] = 4] = \"Superb\";\n})(PasswordStrength || (PasswordStrength = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9wYXNzd29yZC9wYXNzd29yZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDM0IsQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLGdCQU1YO0FBTkQsV0FBWSxnQkFBZ0I7SUFDeEIsdURBQVEsQ0FBQTtJQUNSLHFEQUFPLENBQUE7SUFDUCwyREFBVSxDQUFBO0lBQ1YsdURBQVEsQ0FBQTtJQUNSLDJEQUFVLENBQUE7QUFDZCxDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUNvcmUgfSBmcm9tICcuLi9iYXNlLWZvcm0nO1xuXG5leHBvcnQgY29uc3QgUEFTU1dPUkRfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFBhc3N3b3JkQ29yZT4oXG4gICAgJ1Bhc3N3b3JkQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgZW51bSBQYXNzd29yZFN0cmVuZ3RoIHtcbiAgICBOb25lID0gMCxcbiAgICBMb3cgPSAxLFxuICAgIE1lZGl1bSA9IDIsXG4gICAgSGlnaCA9IDMsXG4gICAgU3VwZXJiID0gNFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3N3b3JkQ29yZSBleHRlbmRzIEJhc2VGb3JtQ29yZSB7XG4gICAgdG9nZ2xlTWFzazogYm9vbGVhbjtcbiAgICBmZWVkYmFjazogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzd29yZFZhbGlkYXRpb25JdGVtIHtcbiAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnIHwgJ2Vycm9yJztcbiAgICB2YWxpZGF0aW9uTGFiZWw6IHN0cmluZztcbiAgICB2YWxpZGF0aW9uRm46ICh4OiBzdHJpbmcpID0+IGJvb2xlYW47XG59Il19","import { InjectionToken } from '@angular/core';\nexport const RADIOBUTTON_COMPONENT_TOKEN = new InjectionToken('RadiobuttonComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9idXR0b24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9yYWRpb2J1dHRvbi9yYWRpb2J1dHRvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUN6RCwyQkFBMkIsQ0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUNvcmUgfSBmcm9tICcuLi9iYXNlLWZvcm0nO1xuXG5leHBvcnQgY29uc3QgUkFESU9CVVRUT05fQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFJhZGlvYnV0dG9uQ29yZTxhbnk+PihcbiAgICAnUmFkaW9idXR0b25Db21wb25lbnRUb2tlbidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmFkaW9CdXR0b25JdGVtPFQ+IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHZhbHVlOiBUOyBcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYWRpb2J1dHRvbkNvcmU8VD4gZXh0ZW5kcyBCYXNlRm9ybUNvcmUge1xuICAgIHJhZGlvR3JvdXBOYW1lOiBzdHJpbmc7XG4gICAgaXRlbXM6IFJhZGlvQnV0dG9uSXRlbTxUPltdO1xufSJdfQ==","import { InjectionToken } from '@angular/core';\nexport const SECTION_COMPONENT_TOKEN = new InjectionToken('SectionComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24vc2VjdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUNyRCx1QkFBdUIsQ0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBTRUNUSU9OX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZWN0aW9uQ29yZT4oXG4gICAgJ1NlY3Rpb25Db21wb25lbnRUb2tlbidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdGlvbkNvcmUge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgc2hvd0NvbnRlbnQ6IGJvb2xlYW47XG4gICAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG59Il19","import { InjectionToken } from '@angular/core';\nexport const MENU_TOKEN = new InjectionToken('MENU');\nexport const LOGO_ROUTER_ROUTE = new InjectionToken('LOGO_ROUTER_ROUTE');\nexport const SIDE_MENU_COMPONENT_TOKEN = new InjectionToken('SideMenuComponentToken');\nexport const SIDE_MENU_STATE_TOKEN = new InjectionToken('SideMenuStateToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1tZW51L3NpZGUtbWVudS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FDMUMsTUFBTSxDQUNQLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FDakQsbUJBQW1CLENBQ3BCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FDekQsd0JBQXdCLENBQ3pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsb0JBQW9CLENBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgTUVOVV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNZW51SXRlbVtdPihcbiAgJ01FTlUnXG4pO1xuXG5leHBvcnQgY29uc3QgTE9HT19ST1VURVJfUk9VVEUgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPihcbiAgJ0xPR09fUk9VVEVSX1JPVVRFJ1xuKTtcblxuZXhwb3J0IGNvbnN0IFNJREVfTUVOVV9DT01QT05FTlRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48U2lkZU1lbnVDb3JlPihcbiAgJ1NpZGVNZW51Q29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgY29uc3QgU0lERV9NRU5VX1NUQVRFX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFNpZGVNZW51U3RhdGU+KFxuICAnU2lkZU1lbnVTdGF0ZVRva2VuJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBTaWRlTWVudVN0YXRlIHtcbiAgZXhwYW5kZWQ6IHN0cmluZ1tdO1xuICBtaW5pbWFsaXplZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZW51SXRlbSB7XG4gIGlkPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaWNvbj86IHN0cmluZztcbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xuICBkYXRhPzogTWVudUl0ZW1EYXRhO1xuICB0b29sdGlwPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIHZpc2libGU/OiBib29sZWFuIHwgT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgdHlwZT86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBNZW51SXRlbVtdO1xuICByb3V0ZXJMaW5rPzogYW55O1xuICBjbGFzcz86IHN0cmluZztcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgY29tbWFuZD86IEZ1bmN0aW9uO1xufVxuXG50eXBlIEV4dGVuZGFibGVUeXBlID0ge1xuICBba2V5OiBzdHJpbmddOlxuICAgIHwgc3RyaW5nXG4gICAgfCBudW1iZXJcbiAgICB8IGJvb2xlYW5cbiAgICB8IHN0cmluZ1tdXG4gICAgfCBudW1iZXJbXVxuICAgIHwgYm9vbGVhbltdXG4gICAgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtRGF0YSBleHRlbmRzIEV4dGVuZGFibGVUeXBlIHtcbiAgcm9sZXM/OiBzdHJpbmdbXTtcbiAgcGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWRlTWVudU1vZHVsZUNvbmZpZyB7XG4gIGl0ZW1zPzogTWVudUl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWRlTWVudUNvcmUge1xuICBpdGVtczogTWVudUl0ZW1bXTtcbiAgbG9nb1VybDogc3RyaW5nO1xuICB1c2VyTmFtZTogc3RyaW5nO1xuICB1c2VyUm9sZTogYW55IHwgYW55W10gfCB1bmRlZmluZWQ7XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SIDE_MENU_STATE_TOKEN } from '../side-menu.model';\nimport * as i0 from \"@angular/core\";\nexport class SideMenuService {\n _menuItems = new BehaviorSubject([]);\n stateToken = inject(SIDE_MENU_STATE_TOKEN);\n menuItems$ = this._menuItems.asObservable();\n menuMinimalized = false;\n setMenu(items) {\n this.resetSidemenuState(items);\n this._menuItems.next(items);\n }\n saveMinimalizedState(minimalized) {\n this.stateToken.minimalized = minimalized;\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n saveExpandedState(item) {\n const expanded = this.stateToken.expanded?.find((i) => i === item.label);\n if (!expanded) {\n this.stateToken.expanded?.push(item.label);\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n return;\n }\n this.stateToken.expanded = this.stateToken.expanded?.filter((i) => i !== item.label);\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n resetSidemenuState(items) {\n if (typeof this.stateToken === 'string') {\n this.stateToken = JSON.parse(this.stateToken);\n }\n this.menuMinimalized = this.stateToken.minimalized;\n const localStorageValue = this.stateToken.expanded;\n if (!localStorageValue)\n return;\n if (items) {\n for (let index = 0; index < items.length; index++) {\n const element = items[index];\n element.expanded = !!localStorageValue.find((i) => i === element.label);\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: SideMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: SideMenuService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: SideMenuService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaWRlLW1lbnUvc2VydmljZXMvc2lkZS1tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQVkscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHckUsTUFBTSxPQUFPLGVBQWU7SUFDbEIsVUFBVSxHQUFHLElBQUksZUFBZSxDQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELFVBQVUsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUVuRCxVQUFVLEdBQTJCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEUsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUV4QixPQUFPLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxXQUFvQjtRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDMUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFjO1FBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FDN0MsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUNoQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUMsQ0FBQztZQUM1QyxZQUFZLENBQUMsT0FBTyxDQUNsQixvQkFBb0IsRUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ2hDLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FDekQsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUNoQyxDQUFDO1FBRUYsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUFpQjtRQUMxQyxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ25ELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFFbkQsSUFBSSxDQUFDLGlCQUFpQjtZQUFFLE9BQU87UUFDL0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ2xELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0IsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUN6QyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQ25DLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7dUdBdkRVLGVBQWU7MkdBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZW51SXRlbSwgU0lERV9NRU5VX1NUQVRFX1RPS0VOIH0gZnJvbSAnLi4vc2lkZS1tZW51Lm1vZGVsJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTaWRlTWVudVNlcnZpY2Uge1xuICBwcml2YXRlIF9tZW51SXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1lbnVJdGVtW10+KFtdKTtcbiAgcHJpdmF0ZSBzdGF0ZVRva2VuID0gaW5qZWN0KFNJREVfTUVOVV9TVEFURV9UT0tFTik7XG5cbiAgbWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxNZW51SXRlbVtdPiA9IHRoaXMuX21lbnVJdGVtcy5hc09ic2VydmFibGUoKTtcbiAgbWVudU1pbmltYWxpemVkID0gZmFsc2U7XG5cbiAgc2V0TWVudShpdGVtczogTWVudUl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRTaWRlbWVudVN0YXRlKGl0ZW1zKTtcbiAgICB0aGlzLl9tZW51SXRlbXMubmV4dChpdGVtcyk7XG4gIH1cblxuICBzYXZlTWluaW1hbGl6ZWRTdGF0ZShtaW5pbWFsaXplZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVUb2tlbi5taW5pbWFsaXplZCA9IG1pbmltYWxpemVkO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdTaWRlTWVudVN0YXRlVG9rZW4nLCBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlVG9rZW4pKTtcbiAgfVxuXG4gIHNhdmVFeHBhbmRlZFN0YXRlKGl0ZW06IE1lbnVJdGVtKTogdm9pZCB7XG4gICAgY29uc3QgZXhwYW5kZWQgPSB0aGlzLnN0YXRlVG9rZW4uZXhwYW5kZWQ/LmZpbmQoXG4gICAgICAoaTogc3RyaW5nKSA9PiBpID09PSBpdGVtLmxhYmVsXG4gICAgKTtcblxuICAgIGlmICghZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuc3RhdGVUb2tlbi5leHBhbmRlZD8ucHVzaChpdGVtLmxhYmVsISk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgJ1NpZGVNZW51U3RhdGVUb2tlbicsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGVUb2tlbilcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZVRva2VuLmV4cGFuZGVkID0gdGhpcy5zdGF0ZVRva2VuLmV4cGFuZGVkPy5maWx0ZXIoXG4gICAgICAoaTogc3RyaW5nKSA9PiBpICE9PSBpdGVtLmxhYmVsXG4gICAgKTtcblxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdTaWRlTWVudVN0YXRlVG9rZW4nLCBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlVG9rZW4pKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRTaWRlbWVudVN0YXRlKGl0ZW1zOiBNZW51SXRlbVtdKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnN0YXRlVG9rZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnN0YXRlVG9rZW4gPSBKU09OLnBhcnNlKHRoaXMuc3RhdGVUb2tlbik7XG4gICAgfVxuXG4gICAgdGhpcy5tZW51TWluaW1hbGl6ZWQgPSB0aGlzLnN0YXRlVG9rZW4ubWluaW1hbGl6ZWQ7XG4gICAgY29uc3QgbG9jYWxTdG9yYWdlVmFsdWUgPSB0aGlzLnN0YXRlVG9rZW4uZXhwYW5kZWQ7XG5cbiAgICBpZiAoIWxvY2FsU3RvcmFnZVZhbHVlKSByZXR1cm47XG4gICAgaWYgKGl0ZW1zKSB7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgaXRlbXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBpdGVtc1tpbmRleF07XG4gICAgICAgIGVsZW1lbnQuZXhwYW5kZWQgPSAhIWxvY2FsU3RvcmFnZVZhbHVlLmZpbmQoXG4gICAgICAgICAgKGk6IHN0cmluZykgPT4gaSA9PT0gZWxlbWVudC5sYWJlbFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","import { Injectable, Optional, Inject } from '@angular/core';\nimport { MENU_TOKEN } from '../side-menu.model';\nimport { SideMenuService } from './side-menu.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./side-menu.service\";\nexport class SideMenuProviderService {\n menu;\n menuService;\n constructor(menu = [], menuService) {\n this.menu = menu;\n this.menuService = menuService;\n menuService.setMenu(menu);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: SideMenuProviderService, deps: [{ token: MENU_TOKEN, optional: true }, { token: i1.SideMenuService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: SideMenuProviderService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: SideMenuProviderService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MENU_TOKEN]\n }] }, { type: i1.SideMenuService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zaWRlLW1lbnUvc2VydmljZXMvc2lkZS1tZW51LXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUd0RCxNQUFNLE9BQU8sdUJBQXVCO0lBRVM7SUFDaEM7SUFGWCxZQUMyQyxPQUFtQixFQUFFLEVBQ3JELFdBQTRCO1FBREksU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFDckQsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBRXJDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQzt1R0FOVSx1QkFBdUIsa0JBRVosVUFBVTsyR0FGckIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOzswQkFHTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNRU5VX1RPS0VOLCBNZW51SXRlbSB9IGZyb20gJy4uL3NpZGUtbWVudS5tb2RlbCc7XG5pbXBvcnQgeyBTaWRlTWVudVNlcnZpY2UgfSBmcm9tICcuL3NpZGUtbWVudS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNpZGVNZW51UHJvdmlkZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNRU5VX1RPS0VOKSByZWFkb25seSBtZW51OiBNZW51SXRlbVtdID0gW10sXG4gICAgcmVhZG9ubHkgbWVudVNlcnZpY2U6IFNpZGVNZW51U2VydmljZVxuICApIHtcbiAgICBtZW51U2VydmljZS5zZXRNZW51KG1lbnUpO1xuICB9XG59XG4iXX0=","import { ChangeDetectorRef, Directive, inject } from \"@angular/core\";\nimport { takeUntil } from \"rxjs\";\nimport { UnsubscribeComponent } from \"../../unsubscribe.component\";\nimport { SideMenuService } from \"../services/side-menu.service\";\nimport { SIDE_MENU_COMPONENT_TOKEN } from \"../side-menu.model\";\nimport * as i0 from \"@angular/core\";\nexport class MenuServiceDirective extends UnsubscribeComponent {\n menuService = inject(SideMenuService);\n cdr = inject(ChangeDetectorRef);\n sideMenu = inject(SIDE_MENU_COMPONENT_TOKEN);\n ngAfterViewInit() {\n this.menuService.menuItems$.pipe(takeUntil(this.destroyed$)).subscribe((items) => {\n if (this.sideMenu) {\n this.sideMenu.items = items;\n }\n });\n this.cdr.detectChanges();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: MenuServiceDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: MenuServiceDirective, isStandalone: true, selector: \"v-side-menu[useMenuService]\", exportAs: [\"useMenuService\"], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: MenuServiceDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-side-menu[useMenuService]',\n exportAs: 'useMenuService',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LXNlcnZpY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2lkZS1tZW51L2RpcmVjdGl2ZXMvc2lkZS1tZW51LXNlcnZpY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFRL0QsTUFBTSxPQUFPLG9CQUNULFNBQVEsb0JBQW9CO0lBR1gsV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0QyxHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEMsUUFBUSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRTlELGVBQWU7UUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBRTdFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDaEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO3VHQWpCUSxvQkFBb0I7MkZBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFOaEMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgVW5zdWJzY3JpYmVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vdW5zdWJzY3JpYmUuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTaWRlTWVudVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvc2lkZS1tZW51LnNlcnZpY2VcIjtcbmltcG9ydCB7IFNJREVfTUVOVV9DT01QT05FTlRfVE9LRU4gfSBmcm9tIFwiLi4vc2lkZS1tZW51Lm1vZGVsXCI7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICd2LXNpZGUtbWVudVt1c2VNZW51U2VydmljZV0nLFxuICAgIGV4cG9ydEFzOiAndXNlTWVudVNlcnZpY2UnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVTZXJ2aWNlRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBVbnN1YnNjcmliZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdFxue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVudVNlcnZpY2UgPSBpbmplY3QoU2lkZU1lbnVTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzaWRlTWVudSA9IGluamVjdChTSURFX01FTlVfQ09NUE9ORU5UX1RPS0VOKTtcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5tZW51U2VydmljZS5tZW51SXRlbXMkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2lkZU1lbnUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNpZGVNZW51Lml0ZW1zID0gaXRlbXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59Il19","import { InjectionToken } from '@angular/core';\nexport const SLIDER_COMPONENT_TOKEN = new InjectionToken('SliderComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUNwRCxzQkFBc0IsQ0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUNvcmUgfSBmcm9tICcuLi9iYXNlLWZvcm0nO1xuXG5leHBvcnQgY29uc3QgU0xJREVSX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTbGlkZXJDb3JlPihcbiAgICAnU2xpZGVyQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNsaWRlckNvcmUgZXh0ZW5kcyBCYXNlRm9ybUNvcmUge1xuICAgIHN0ZXA6IG51bWJlcjtcbiAgICBtaW46IG51bWJlcjtcbiAgICBtYXg6IG51bWJlcjtcbiAgICByYW5nZTogYm9vbGVhbjtcbn0iXX0=","import { InjectionToken } from '@angular/core';\nexport const SNACKBAR_COMPONENT_TOKEN = new InjectionToken('SnackbarComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBTTkFDS0JBUl9DT01QT05FTlRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48U25hY2tiYXJDb3JlPihcbiAgICAnU25hY2tiYXJDb21wb25lbnRUb2tlbidcbik7XG5cbmV4cG9ydCB0eXBlIFNuYWNrYmFyQ29yZSA9IG9iamVjdFxuIl19","import { InjectionToken } from \"@angular/core\";\nexport const STEPPER_COMPONENT_TOKEN = new InjectionToken('StepperComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3N0ZXBwZXIvc3RlcHBlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGNBQWMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUcxRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDckQsdUJBQXVCLENBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGaWVsZFNpemVUeXBlLCBMYXlvdXRUeXBlVHlwZSB9IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuZXhwb3J0IGNvbnN0IFNURVBQRVJfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFN0ZXBwZXJDb3JlPihcbiAgICAnU3RlcHBlckNvbXBvbmVudFRva2VuJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBTdGVwcGVySXRlbSB7XG4gICAgaGVhZGVyOiBzdHJpbmc7XG4gICAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGFubm90YXRpb24/OiBzdHJpbmc7XG4gICAgcHJlZml4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBwZXJDb3JlIHtcbiAgICBpdGVtczogU3RlcHBlckl0ZW1bXVxuICAgIGxheW91dDogTGF5b3V0VHlwZVR5cGVcbiAgICBhY3RpdmVJbmRleENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj5cbiAgICBzaXplOiBGaWVsZFNpemVUeXBlIHwgdW5kZWZpbmVkO1xuICAgIGljb246IHN0cmluZztcbiAgICBwcmVmaXg6IHN0cmluZztcbiAgICBhbm5vdGF0aW9uOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbn0iXX0=","import { InjectionToken } from \"@angular/core\";\nexport const SWITCH_COMPONENT_TOKEN = new InjectionToken('SwitchComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUNwRCxzQkFBc0IsQ0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJhc2VGb3JtQ29yZSB9IGZyb20gXCIuLi9iYXNlLWZvcm1cIjtcblxuZXhwb3J0IGNvbnN0IFNXSVRDSF9DT01QT05FTlRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48U3dpdGNoQ29yZT4oXG4gICAgJ1N3aXRjaENvbXBvbmVudFRva2VuJ1xuKTtcblxuZXhwb3J0IHR5cGUgU3dpdGNoQ29yZSA9IEJhc2VGb3JtQ29yZVxuIl19","import { InjectionToken } from \"@angular/core\";\nexport const TAB_VIEW_COMPONENT_TOKEN = new InjectionToken('TabVIewComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXZpZXcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy90YWItdmlldy90YWItdmlldy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGNBQWMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsdUJBQXVCLENBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBjb25zdCBUQUJfVklFV19DT01QT05FTlRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48VGFiVmlld0NvcmU+KFxuICAgICdUYWJWSWV3Q29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYlZpZXdJdGVtQ29yZSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgY29udGVudD86IHN0cmluZztcbiAgICBjb250ZW50VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjsgXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFiVmlld0NvcmUge1xuICAgIGl0ZW1zOiBUYWJWaWV3SXRlbUNvcmVbXTtcbiAgICB1c2VSb3V0aW5nOiBib29sZWFuO1xuICAgIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gICAgYWN0aXZlSW5kZXhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+O1xuICAgIHVybD86IHN0cmluZztcbn0iXX0=","import { InjectionToken } from '@angular/core';\nimport { v4 } from 'uuid';\nexport const TABLE_COMPONENT_TOKEN = new InjectionToken('TabVIewComponentToken');\nexport const TABLE_COLUMN_PROVIDER = new InjectionToken('TABLE_COLUMN_PROVIDER');\nexport var TableSelectionMode;\n(function (TableSelectionMode) {\n TableSelectionMode[\"single\"] = \"single\";\n TableSelectionMode[\"multiple\"] = \"multiple\";\n})(TableSelectionMode || (TableSelectionMode = {}));\nexport var TableButtonSeverity;\n(function (TableButtonSeverity) {\n TableButtonSeverity[\"success\"] = \"success\";\n TableButtonSeverity[\"info\"] = \"info\";\n TableButtonSeverity[\"warning\"] = \"warning\";\n TableButtonSeverity[\"danger\"] = \"danger\";\n TableButtonSeverity[\"help\"] = \"help\";\n TableButtonSeverity[\"primary\"] = \"primary\";\n TableButtonSeverity[\"secondary\"] = \"secondary\";\n TableButtonSeverity[\"contrast\"] = \"contrast\";\n})(TableButtonSeverity || (TableButtonSeverity = {}));\nexport var ColumnVisibility;\n(function (ColumnVisibility) {\n ColumnVisibility[\"visible\"] = \"visible\";\n ColumnVisibility[\"hidden\"] = \"hidden\";\n ColumnVisibility[\"default\"] = \"default\";\n})(ColumnVisibility || (ColumnVisibility = {}));\nexport function LinkRenderer(text, href) {\n return (row, index) => {\n return '<a href=\"' + href + '\">' + text + '</a>';\n };\n}\nexport function routerRenderer(link, text) {\n return (row, index) => {\n return { text: text, link: link };\n };\n}\nexport function Renderer(fnc) {\n return (row) => {\n return fnc(row);\n };\n}\nexport class ColumnModel {\n configuration;\n sortDirection = undefined;\n columnClass;\n queryParams;\n routerLink;\n valueGetter;\n headerGetter;\n template;\n actions;\n sortable;\n id;\n // eslint-disable-next-line @typescript-eslint/ban-types\n format;\n textAlign;\n width;\n forceVisibility = ColumnVisibility.default;\n visible = true;\n constructor(configuration) {\n this.configuration = configuration;\n this.id = this.configuration.id;\n if (this.configuration.format) {\n this.format = this.configuration.format;\n }\n if (this.configuration.value) {\n this.valueGetter = (row, index) => {\n const value = this.configuration.value?.(row, index) ?? '-';\n return this.format ? this.format(value, row) : value;\n };\n }\n else {\n this.valueGetter = (row) => {\n const value = (row?.[this.configuration.id]) ?? '';\n return this.format ? this.format(value, row) : value;\n };\n }\n if (this.configuration.actions) {\n this.actions = this.configuration.actions;\n }\n if (this.configuration.routerLink) {\n this.routerLink = this.configuration.routerLink;\n }\n if (this.configuration.columnClass) {\n this.columnClass = this.configuration.columnClass;\n }\n if (this.configuration.template) {\n this.template = this.configuration.template;\n }\n if (this.configuration.headerName) {\n this.headerGetter = (typeof this.configuration.headerName === 'string'\n ? () => this.configuration.headerName ?? ''\n : (columnId, index) => (this.configuration.headerName)?.(columnId, index) ?? this.id);\n }\n else {\n this.headerGetter = () => \"\";\n }\n if (this.configuration.queryParams) {\n this.queryParams = this.configuration.queryParams;\n }\n if (this.routerLink) {\n this.columnClass += ' ' + 'link';\n }\n if (this.configuration.sortable !== undefined) {\n this.sortable = this.configuration.sortable;\n }\n else {\n this.sortable = true;\n }\n if (this.configuration.width) {\n this.width = typeof this.configuration.width === \"number\" ? this.configuration.width + 'px' : this.configuration.width;\n }\n if (this.configuration.textAlign !== undefined) {\n this.textAlign = this.configuration.textAlign;\n }\n if (this.configuration.forceVisibility) {\n this.forceVisibility = this.configuration.forceVisibility;\n }\n if (this.configuration.visible !== undefined) {\n this.visible = this.configuration.visible;\n }\n }\n}\nexport class RowModel {\n row;\n index;\n id;\n selected;\n marked;\n focused;\n expanded;\n fnc;\n customRoute;\n constructor(row, selected, expanded, marked, index, fnc, customRoute, entityKey) {\n this.row = row;\n this.id = row['id'] ?? v4();\n this.index = index;\n this.selected = selected;\n this.expanded = expanded;\n this.marked = marked;\n this.fnc = fnc;\n this.customRoute = createCustomRoute(row, entityKey, customRoute);\n }\n}\nfunction createCustomRoute(row, entityKey, customRoute) {\n return customRoute && entityKey\n ? `${customRoute}/` + row[entityKey]\n : undefined;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsY0FBYyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRzFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHMUIsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ3JELHVCQUF1QixDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ3JELHVCQUF1QixDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUM1Qix1Q0FBaUIsQ0FBQTtJQUNqQiwyQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QjtBQUVELE1BQU0sQ0FBTixJQUFZLG1CQVNYO0FBVEQsV0FBWSxtQkFBbUI7SUFDN0IsMENBQW1CLENBQUE7SUFDbkIsb0NBQWEsQ0FBQTtJQUNiLDBDQUFtQixDQUFBO0lBQ25CLHdDQUFpQixDQUFBO0lBQ2pCLG9DQUFhLENBQUE7SUFDYiwwQ0FBbUIsQ0FBQTtJQUNuQiw4Q0FBdUIsQ0FBQTtJQUN2Qiw0Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQVM5QjtBQUVELE1BQU0sQ0FBTixJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsdUNBQW1CLENBQUE7SUFDbkIscUNBQWlCLENBQUE7SUFDakIsdUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0I7QUEwRUQsTUFBTSxVQUFVLFlBQVksQ0FBSSxJ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RUFDTixRQUFpQixFQUNqQixRQUFpQixFQUNqQixNQUFnQixFQUNoQixLQUFjLEVBQ2QsR0FBVSxFQUNWLFdBQW9CLEVBQ3BCLFNBQWtCO1FBRWxCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEVBQUUsR0FBSSxHQUFpQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBSSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7Q0FDRjtBQUVELFNBQVMsaUJBQWlCLENBQUksR0FBTSxFQUFFLFNBQWtCLEVBQUUsV0FBb0I7SUFDNUUsT0FBTyxXQUFXLElBQUksU0FBUztRQUM3QixDQUFDLENBQUMsR0FBRyxXQUFXLEdBQUcsR0FBSSxHQUFpQyxDQUFDLFNBQVMsQ0FBQztRQUNuRSxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExhenlMb2FkRXZlbnQsIFNvcnQsIFNvcnREaXJlY3Rpb25UeXBlIH0gZnJvbSAnQHZlcmlzb2Z0L2NvcmUnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEZpZWxkQWxpZ25UeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IFRBQkxFX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUYWJsZUNvcmU8YW55Pj4oXG4gICdUYWJWSWV3Q29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgY29uc3QgVEFCTEVfQ09MVU1OX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnVEFCTEVfQ09MVU1OX1BST1ZJREVSJ1xuKTtcblxuZXhwb3J0IGVudW0gVGFibGVTZWxlY3Rpb25Nb2RlIHtcbiAgc2luZ2xlID0gJ3NpbmdsZScsXG4gIG11bHRpcGxlID0gJ211bHRpcGxlJyxcbn1cblxuZXhwb3J0IGVudW0gVGFibGVCdXR0b25TZXZlcml0eSB7XG4gIHN1Y2Nlc3MgPSAnc3VjY2VzcycsXG4gIGluZm8gPSAnaW5mbycsXG4gIHdhcm5pbmcgPSAnd2FybmluZycsXG4gIGRhbmdlciA9ICdkYW5nZXInLFxuICBoZWxwID0gJ2hlbHAnLFxuICBwcmltYXJ5ID0gJ3ByaW1hcnknLFxuICBzZWNvbmRhcnkgPSAnc2Vjb25kYXJ5JyxcbiAgY29udHJhc3QgPSAnY29udHJhc3QnLFxufVxuXG5leHBvcnQgZW51bSBDb2x1bW5WaXNpYmlsaXR5IHtcbiAgdmlzaWJsZSA9ICd2aXNpYmxlJyxcbiAgaGlkZGVuID0gJ2hpZGRlbicsXG4gIGRlZmF1bHQgPSAnZGVmYXVsdCcsXG59XG5cbmV4cG9ydCB0eXBlIFRhYmxlU2VsZWN0aW9uTW9kZVR5cGUgPSBrZXlvZiB0eXBlb2YgVGFibGVTZWxlY3Rpb25Nb2RlO1xuZXhwb3J0IHR5cGUgVGFibGVCdXR0b25TZXZlcml0eVR5cGUgPSBrZXlvZiB0eXBlb2YgVGFibGVCdXR0b25TZXZlcml0eTtcbmV4cG9ydCB0eXBlIENvbHVtblZpc2liaWxpdHlUeXBlID0ga2V5b2YgdHlwZW9mIENvbHVtblZpc2liaWxpdHk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb3JlPFQ+IHtcbiAgc29ydGVyczogU29ydFtdO1xuICBjb2x1bW5zOiBDb2x1bW5EZWZpbml0aW9uPFQ+W107XG4gIGRhdGE6IFRbXTtcbiAgdG90YWw6IG51bWJlcjtcbiAgZmlsdGVyOiBQYXJ0aWFsPFQ+IHwgdW5kZWZpbmVkO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBzY3JvbGxhYmxlOiBib29sZWFuO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xuICBzaG93UGFnaW5hdG9yOiBib29sZWFuO1xuICBzb3J0TXVsdGlwbGU6IGJvb2xlYW47XG4gIGxhenk6IGJvb2xlYW47XG4gIHNlbGVjdGlvbjogVFtdO1xuICBzZWxlY3Rpb25Nb2RlOiBUYWJsZVNlbGVjdGlvbk1vZGVUeXBlIHwgdW5kZWZpbmVkO1xuICBzaG93UGFnZVNpemVQaWNrZXI6IGJvb2xlYW47XG4gIGVudGl0eUtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxUW10+O1xuICBsYXp5TG9hZDogRXZlbnRFbWl0dGVyPExhenlMb2FkRXZlbnQ+O1xuICBtYXhpbXVtQ29sdW1uTGVuZ3RoOiBudW1iZXI7XG4gIGRpc2FibGVDdXN0b21DbGlja3M6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTaWduYWwge1xuICBuYW1lOiBzdHJpbmcsXG4gIHN5bWJvbDogc3ltYm9sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uQ29sdW1uc0RlZmluaXRpb248VD4ge1xuICBzZXZlcml0eT86IFRhYmxlQnV0dG9uU2V2ZXJpdHk7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICB0b29sdGlwPzogc3RyaW5nO1xuICByb3VuZGVkPzogYm9vbGVhbjtcbiAgb3V0bGluZWQ/OiBib29sZWFuO1xuICByYWlzZWQ/OiBib29sZWFuO1xuICBiYWRnZT86IHN0cmluZztcbiAgdmlzaWJsZT86IChyb3c6IFQpID0+IGJvb2xlYW47XG4gIHJvdXRlckxpbms/OiAocm93OiBUKSA9PiBzdHJpbmc7XG4gIHF1ZXJ5UGFyYW1zPzogUGFyYW1zO1xuICBkaXNhYmxlZD86IGJvb2xlYW4gfCAoKHJvdzogVCkgPT4gYm9vbGVhbik7XG4gIG9uQ2xpY2s/OiAocm93OiBULCBldmVudD86IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uUHJvdmlkZXI8VD4ge1xuICBnZXREZWZpbml0aW9uKCk6IENvbHVtbkRlZmluaXRpb248VD47XG4gIGluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRGVmaW5pdGlvbjxULCBfS0VZID0ga2V5b2YgVD4ge1xuICBpZDogc3RyaW5nO1xuICB2YWx1ZT86IChyb3c6IFQsIGluZGV4PzogbnVtYmVyKSA9PiBzdHJpbmc7XG4gIGhlYWRlck5hbWU/OiAoKGNvbHVtbklkOiBzdHJpbmcsIGluZGV4PzogbnVtYmVyKSA9PiBzdHJpbmcpIHwgc3RyaW5nO1xuICBpY29uPzogc3RyaW5nIHwgKChyb3c/OiBUIHwgdW5kZWZpbmVkKSA9PiBzdHJpbmcpO1xuICB0eXBlPzogc3RyaW5nO1xuICBzb3J0YWJsZT86IGJvb2xlYW47XG4gIGZvcm1hdD86IChyb3c6IFQpID0+IHN0cmluZ1xuICByb3V0ZXJMaW5rPzogKHJvdzogVCkgPT4gc3RyaW5nIHwgc3RyaW5nO1xuICBxdWVyeVBhcmFtcz86IFBhcmFtcztcbiAgY29sdW1uQ2xhc3M/OiBzdHJpbmc7XG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfT47XG4gIGFjdGlvbnM/OiBBY3Rpb25Db2x1bW5zRGVmaW5pdGlvbjxUPltdO1xuICB0ZXh0QWxpZ24/OiBGaWVsZEFsaWduVHlwZTtcbiAgd2lkdGg/OiBzdHJpbmcgfCBudW1iZXI7XG4gIGZvcmNlVmlzaWJpbGl0eT86IENvbHVtblZpc2liaWxpdHlUeXBlO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExpbmtSZW5kZXJlcjxUPih0ZXh0OiBzdHJpbmcsIGhyZWY6IHN0cmluZykge1xuICByZXR1cm4gKHJvdzogVCwgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCkgPT4ge1xuICAgIHJldHVybiAnPGEgaHJlZj1cIicgKyBocmVmICsgJ1wiPicgKyB0ZXh0ICsgJzwvYT4nO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcm91dGVyUmVuZGVyZXI8VD4obGluazogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpIHtcbiAgcmV0dXJuIChyb3c6IFQsIGluZGV4PzogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgcmV0dXJuIHsgdGV4dDogdGV4dCwgbGluazogbGluayB9O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUmVuZGVyZXI8VD4oZm5jOiAocm93OiBUKSA9PiBzdHJpbmcpIHtcbiAgcmV0dXJuIChyb3c6IFQpID0+IHtcbiAgICByZXR1cm4gZm5jKHJvdyk7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5Nb2RlbDxUPiB7XG4gIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb25UeXBlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBjb2x1bW5DbGFzcz86IHN0cmluZztcbiAgcXVlcnlQYXJhbXM/OiBQYXJhbXM7XG4gIHJvdXRlckxpbms/OiAocm93OiBUKSA9PiBzdHJpbmcgfCBzdHJpbmc7XG4gIHZhbHVlR2V0dGVyITogKHJvdzogVCwgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nO1xuICBoZWFkZXJHZXR0ZXIhOiAoY29sdW1uSWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nIHwgc3RyaW5nO1xuICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+O1xuICBhY3Rpb25zPzogQWN0aW9uQ29sdW1uc0RlZmluaXRpb248VD5bXTtcbiAgc29ydGFibGU/OiBib29sZWFuO1xuICBpZDogc3RyaW5nO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICBmb3JtYXQhOiBGdW5jdGlvbjtcbiAgdGV4dEFsaWduPzogRmllbGRBbGlnblR5cGU7XG4gIHdpZHRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGZvcmNlVmlzaWJpbGl0eTogQ29sdW1uVmlzaWJpbGl0eVR5cGUgPSBDb2x1bW5WaXNpYmlsaXR5LmRlZmF1bHQ7XG4gIHZpc2libGUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IENvbHVtbkRlZmluaXRpb248VD4pIHtcbiAgICB0aGlzLmlkID0gdGhpcy5jb25maWd1cmF0aW9uLmlkO1xuXG4gICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5mb3JtYXQpIHtcbiAgICAgIHRoaXMuZm9ybWF0ID0gdGhpcy5jb25maWd1cmF0aW9uLmZvcm1hdDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLnZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlR2V0dGVyID0gKHJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbmZpZ3VyYXRpb24udmFsdWU/Lihyb3csIGluZGV4KSA/PyAnLSc7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdCA/IHRoaXMuZm9ybWF0KHZhbHVlLCByb3cpIDogdmFsdWU7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlR2V0dGVyID0gKHJvdykgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9ICgocm93IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pPy5bdGhpcy5jb25maWd1cmF0aW9uLmlkXSkgPz8gJyc7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdCA/IHRoaXMuZm9ybWF0KHZhbHVlLCByb3cpIDogdmFsdWU7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uYWN0aW9ucykge1xuICAgICAgdGhpcy5hY3Rpb25zID0gdGhpcy5jb25maWd1cmF0aW9uLmFjdGlvbnM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5yb3V0ZXJMaW5rKSB7XG4gICAgICB0aGlzLnJvdXRlckxpbmsgPSB0aGlzLmNvbmZpZ3VyYXRpb24ucm91dGVyTGluaztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmNvbHVtbkNsYXNzKSB7XG4gICAgICB0aGlzLmNvbHVtbkNsYXNzID0gdGhpcy5jb25maWd1cmF0aW9uLmNvbHVtbkNsYXNzO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24udGVtcGxhdGUpIHtcbiAgICAgIHRoaXMudGVtcGxhdGUgPSB0aGlzLmNvbmZpZ3VyYXRpb24udGVtcGxhdGU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5oZWFkZXJOYW1lKSB7XG4gICAgICB0aGlzLmhlYWRlckdldHRlciA9IChcbiAgICAgICAgdHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbi5oZWFkZXJOYW1lID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gKCkgPT4gdGhpcy5jb25maWd1cmF0aW9uLmhlYWRlck5hbWUgPz8gJydcbiAgICAgICAgICA6IChjb2x1bW5JZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PlxuICAgICAgICAgICAgICAoPChjb2x1bW5JZDogc3RyaW5nLCBpbmRleD86IG51bWJlcikgPT4gc3RyaW5nPihcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uaGVhZGVyTmFtZVxuICAgICAgICAgICAgICApKT8uKGNvbHVtbklkLCBpbmRleCkgPz8gdGhpcy5pZFxuICAgICAgKSBhcyAoY29sdW1uSWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlYWRlckdldHRlciA9ICgpID0+IFwiXCI7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5xdWVyeVBhcmFtcykge1xuICAgICAgdGhpcy5xdWVyeVBhcmFtcyA9IHRoaXMuY29uZmlndXJhdGlvbi5xdWVyeVBhcmFtcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yb3V0ZXJMaW5rKSB7XG4gICAgICB0aGlzLmNvbHVtbkNsYXNzICs9ICcgJyArICdsaW5rJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLnNvcnRhYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc29ydGFibGUgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc29ydGFibGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc29ydGFibGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24ud2lkdGgpe1xuICAgICAgdGhpcy53aWR0aCA9IHR5cGVvZiB0aGlzLmNvbmZpZ3VyYXRpb24ud2lkdGggPT09IFwibnVtYmVyXCIgPyB0aGlzLmNvbmZpZ3VyYXRpb24ud2lkdGggKyAncHgnIDogdGhpcy5jb25maWd1cmF0aW9uLndpZHRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24udGV4dEFsaWduICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudGV4dEFsaWduID0gdGhpcy5jb25maWd1cmF0aW9uLnRleHRBbGlnbjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmZvcmNlVmlzaWJpbGl0eSkge1xuICAgICAgdGhpcy5mb3JjZVZpc2liaWxpdHkgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZm9yY2VWaXNpYmlsaXR5O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24udmlzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZpc2libGUgPSB0aGlzLmNvbmZpZ3VyYXRpb24udmlzaWJsZTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvd01vZGVsPFQ+IHtcbiAgcm93OiBUO1xuICBpbmRleD86IG51bWJlcjtcbiAgaWQ6IG51bWJlciB8IHN0cmluZztcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIG1hcmtlZD86IGJvb2xlYW47XG4gIGZvY3VzZWQ/OiBib29sZWFuO1xuICBleHBhbmRlZDogYm9vbGVhbjtcbiAgZm5jPzogdm9pZDtcbiAgY3VzdG9tUm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByb3c6IFQsXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW4sXG4gICAgZXhwYW5kZWQ6IGJvb2xlYW4sXG4gICAgbWFya2VkPzogYm9vbGVhbixcbiAgICBpbmRleD86IG51bWJlcixcbiAgICBmbmM/OiB2b2lkLFxuICAgIGN1c3RvbVJvdXRlPzogc3RyaW5nLFxuICAgIGVudGl0eUtleT86IHN0cmluZ1xuICApIHtcbiAgICB0aGlzLnJvdyA9IHJvdztcbiAgICB0aGlzLmlkID0gKHJvdyBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KVsnaWQnXSA/PyB2NCgpO1xuICAgIHRoaXMuaW5kZXggPSBpbmRleDtcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgdGhpcy5leHBhbmRlZCA9IGV4cGFuZGVkO1xuICAgIHRoaXMubWFya2VkID0gbWFya2VkO1xuICAgIHRoaXMuZm5jID0gZm5jO1xuICAgIHRoaXMuY3VzdG9tUm91dGUgPSBjcmVhdGVDdXN0b21Sb3V0ZTxUPihyb3csIGVudGl0eUtleSwgY3VzdG9tUm91dGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUN1c3RvbVJvdXRlPFQ+KHJvdzogVCwgZW50aXR5S2V5Pzogc3RyaW5nLCBjdXN0b21Sb3V0ZT86IHN0cmluZykge1xuICByZXR1cm4gY3VzdG9tUm91dGUgJiYgZW50aXR5S2V5XG4gICAgPyBgJHtjdXN0b21Sb3V0ZX0vYCArIChyb3cgYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSlbZW50aXR5S2V5XVxuICAgIDogdW5kZWZpbmVkO1xufVxuIl19","import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';\nimport { FieldAlign } from '../../common';\nimport { ColumnVisibility, TABLE_COLUMN_PROVIDER } from './table.models';\nimport * as i0 from \"@angular/core\";\nexport class TableColumnDirective {\n template;\n index = 0;\n id;\n columnClass;\n sortable;\n routerLink;\n queryParams;\n headerName;\n width;\n textAlign = FieldAlign.left;\n format;\n forceVisibility = ColumnVisibility.default;\n visible = true;\n getDefinition() {\n return {\n id: this.id,\n columnClass: this.columnClass,\n template: this.template,\n headerName: this.headerName,\n routerLink: this.routerLink,\n queryParams: this.queryParams,\n sortable: this.sortable,\n width: this.width,\n format: this.format,\n textAlign: this.textAlign,\n forceVisibility: this.forceVisibility,\n visible: this.visible,\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: TableColumnDirective, isStandalone: true, selector: \"v-table-column\", inputs: { index: \"index\", id: \"id\", columnClass: \"columnClass\", sortable: \"sortable\", routerLink: \"routerLink\", queryParams: \"queryParams\", headerName: \"headerName\", width: \"width\", textAlign: \"textAlign\", format: \"format\", forceVisibility: \"forceVisibility\", visible: \"visible\" }, providers: [\n {\n provide: TABLE_COLUMN_PROVIDER,\n useExisting: TableColumnDirective,\n multi: true,\n },\n ], queries: [{ propertyName: \"template\", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableColumnDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table-column',\n standalone: true,\n providers: [\n {\n provide: TABLE_COLUMN_PROVIDER,\n useExisting: TableColumnDirective,\n multi: true,\n },\n ],\n }]\n }], propDecorators: { template: [{\n type: ContentChild,\n args: [TemplateRef]\n }], index: [{\n type: Input\n }], id: [{\n type: Input\n }], columnClass: [{\n type: Input\n }], sortable: [{\n type: Input\n }], routerLink: [{\n type: Input\n }], queryParams: [{\n type: Input\n }], headerName: [{\n type: Input\n }], width: [{\n type: Input\n }], textAlign: [{\n type: Input\n }], format: [{\n type: Input\n }], forceVisibility: [{\n type: Input\n }], visible: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLWNvbHVtbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUsVUFBVSxFQUFrQixNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQW9DLGdCQUFnQixFQUF3QixxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWNqSSxNQUFNLE9BQU8sb0JBQW9CO0lBQ0osUUFBUSxDQUNMO0lBRXJCLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFVixFQUFFLENBQVU7SUFFWixXQUFXLENBQVU7SUFFckIsUUFBUSxDQUFXO0lBRW5CLFVBQVUsQ0FBc0I7SUFFaEMsV0FBVyxDQUFVO0lBRXJCLFVBQVUsQ0FBeUQ7SUFFbkUsS0FBSyxDQUE4QjtJQUVuQyxTQUFTLEdBQW1CLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFFNUMsTUFBTSxDQUFxQjtJQUUzQixlQUFlLEdBQXlCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUVqRSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBRXhCLGFBQWE7UUFDWCxPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO0lBQ0osQ0FBQzt1R0EzQ1Usb0JBQW9COzJGQUFwQixvQkFBb0IsdVZBUnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsV0FBVyxFQUFFLG9CQUFvQjtnQkFDakMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGdFQUdhLFdBQVc7OzJGQURkLG9CQUFvQjtrQkFaaEMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsV0FBVyxzQkFBc0I7NEJBQ2pDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzhCQUU0QixRQUFRO3NCQUFsQyxZQUFZO3VCQUFDLFdBQVc7Z0JBR2hCLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxFQUFFO3NCQUFWLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGaWVsZEFsaWduLCBGaWVsZEFsaWduVHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgeyBDb2x1bW5EZWZpbml0aW9uLCBDb2x1bW5Qcm92aWRlciwgQ29sdW1uVmlzaWJpbGl0eSwgQ29sdW1uVmlzaWJpbGl0eVR5cGUsIFRBQkxFX0NPTFVNTl9QUk9WSURFUiB9IGZyb20gJy4vdGFibGUubW9kZWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAndi10YWJsZS1jb2x1bW4nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBUQUJMRV9DT0xVTU5fUFJPVklERVIsXG4gICAgICB1c2VFeGlzdGluZzogVGFibGVDb2x1bW5EaXJlY3RpdmUsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIENvbHVtblByb3ZpZGVyPFQ+IHtcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGUhOlxuICBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB9PjtcblxuICBASW5wdXQoKSBpbmRleCA9IDA7XG5cbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY29sdW1uQ2xhc3MhOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc29ydGFibGUhOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHJvdXRlckxpbmshOiAocm93OiBUKSA9PiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcXVlcnlQYXJhbXMhOiBQYXJhbXM7XG5cbiAgQElucHV0KCkgaGVhZGVyTmFtZSE6ICgoY29sdW1uOiBzdHJpbmcsIGluZGV4PzogbnVtYmVyKSA9PiBzdHJpbmcpIHwgc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KCkgdGV4dEFsaWduOiBGaWVsZEFsaWduVHlwZSA9IEZpZWxkQWxpZ24ubGVmdDtcblxuICBASW5wdXQoKSBmb3JtYXQhOiAocm93OiBUKSA9PiBzdHJpbmdcblxuICBASW5wdXQoKSBmb3JjZVZpc2liaWxpdHk6IENvbHVtblZpc2liaWxpdHlUeXBlID0gQ29sdW1uVmlzaWJpbGl0eS5kZWZhdWx0O1xuXG4gIEBJbnB1dCgpIHZpc2libGUgPSB0cnVlO1xuXG4gIGdldERlZmluaXRpb24oKTogQ29sdW1uRGVmaW5pdGlvbjxUPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgY29sdW1uQ2xhc3M6IHRoaXMuY29sdW1uQ2xhc3MsXG4gICAgICB0ZW1wbGF0ZTogdGhpcy50ZW1wbGF0ZSxcbiAgICAgIGhlYWRlck5hbWU6IHRoaXMuaGVhZGVyTmFtZSxcbiAgICAgIHJvdXRlckxpbms6IHRoaXMucm91dGVyTGluayxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zLFxuICAgICAgc29ydGFibGU6IHRoaXMuc29ydGFibGUsXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcbiAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXQsXG4gICAgICB0ZXh0QWxpZ246IHRoaXMudGV4dEFsaWduLFxuICAgICAgZm9yY2VWaXNpYmlsaXR5OiB0aGlzLmZvcmNlVmlzaWJpbGl0eSxcbiAgICAgIHZpc2libGU6IHRoaXMudmlzaWJsZSxcbiAgICB9O1xuICB9XG59XG4iXX0=","export class ColumnConfiguration {\n id;\n column = {};\n constructor(id) {\n this.id = id;\n this.column.id = id;\n }\n headerName(headerName) {\n this.column.headerName = headerName;\n return this;\n }\n sortable(sortable) {\n this.column.sortable = sortable;\n return this;\n }\n columnClass(columnClass) {\n this.column.columnClass = columnClass;\n return this;\n }\n valueFunction(value) {\n this.column.value = value;\n return this;\n }\n type(type) {\n this.column.type = type;\n return this;\n }\n build() {\n return this.column;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4tY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sbUJBQW1CO0lBR1I7SUFGWixNQUFNLEdBQXVDLEVBQUUsQ0FBQztJQUV4RCxZQUFvQixFQUEwQjtRQUExQixPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFZLENBQUM7SUFDaEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUFtRTtRQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWlCO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsV0FBbUI7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUErQztRQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQVk7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLE1BQW1DLENBQUM7SUFDbEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uRGVmaW5pdGlvbiB9IGZyb20gXCIuL3RhYmxlLm1vZGVsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtbkNvbmZpZ3VyYXRpb248VEVudGl0eT4ge1xyXG4gICAgcHJpdmF0ZSBjb2x1bW46IFBhcnRpYWw8Q29sdW1uRGVmaW5pdGlvbjxURW50aXR5Pj4gPSB7fTtcclxuICBcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaWQ6IHN0cmluZyB8IGtleW9mIFRFbnRpdHkpIHtcclxuICAgICAgdGhpcy5jb2x1bW4uaWQgPSBpZCBhcyBzdHJpbmc7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBoZWFkZXJOYW1lKGhlYWRlck5hbWU6IHN0cmluZyB8ICgoY29sdW1uSWQ6IHN0cmluZywgaW5kZXg/OiBudW1iZXIpID0+IHN0cmluZykpOiB0aGlzIHtcclxuICAgICAgdGhpcy5jb2x1bW4uaGVhZGVyTmFtZSA9IGhlYWRlck5hbWU7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgc29ydGFibGUoc29ydGFibGU6IGJvb2xlYW4pOiB0aGlzIHtcclxuICAgICAgdGhpcy5jb2x1bW4uc29ydGFibGUgPSBzb3J0YWJsZTtcclxuICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb2x1bW5DbGFzcyhjb2x1bW5DbGFzczogc3RyaW5nKTogdGhpcyB7XHJcbiAgICAgIHRoaXMuY29sdW1uLmNvbHVtbkNsYXNzID0gY29sdW1uQ2xhc3M7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgdmFsdWVGdW5jdGlvbih2YWx1ZTogKHJvdzogVEVudGl0eSwgaW5kZXg/OiBudW1iZXIpID0+IHN0cmluZyk6IHRoaXMge1xyXG4gICAgICB0aGlzLmNvbHVtbi52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICBcclxuICAgIHR5cGUodHlwZTogc3RyaW5nKTogdGhpcyB7XHJcbiAgICAgIHRoaXMuY29sdW1uLnR5cGUgPSB0eXBlO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuICBcclxuICAgIGJ1aWxkKCk6IENvbHVtbkRlZmluaXRpb248VEVudGl0eT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb2x1bW4gYXMgQ29sdW1uRGVmaW5pdGlvbjxURW50aXR5PjtcclxuICAgIH1cclxuICB9Il19","import { Injectable } from '@angular/core';\nimport { ColumnConfiguration } from './column-configuration';\nimport * as i0 from \"@angular/core\";\nexport class TableBuilder {\n columns = [];\n addColumn(id, config) {\n const columnConfig = new ColumnConfiguration(id);\n config?.(columnConfig);\n this.columns.push(columnConfig.build());\n return this;\n }\n addTextColumn(id, config) {\n return this.addColumn(id, (x) => {\n config?.(x);\n x.type('text');\n });\n }\n addNumberColumn(id, config) {\n return this.addColumn(id, (x) => {\n config?.(x);\n x.type('number').columnClass('text-end');\n });\n }\n addDateColumn(id, config) {\n return this.addColumn(id, (x) => {\n config?.(x);\n x.type('date').valueFunction((row) => covertFromDateToUserLocale(row, id));\n });\n }\n addBooleanColumn(id, config) {\n return this.addColumn(id, (x) => {\n config?.(x);\n x.type('boolean');\n });\n }\n addEnumColumn(id, config) {\n return this.addColumn(id, (x) => {\n config?.(x);\n x.type('enum');\n });\n }\n build() {\n return this.columns;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableBuilder, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableBuilder, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\nfunction covertFromDateToUserLocale(row, id) {\n const value = row[id];\n if (value === undefined) {\n return '';\n }\n const locale = navigator.language;\n if (value instanceof Date) {\n return value.toLocaleDateString(locale);\n }\n if (typeof value === 'string' && !isNaN(Date.parse(value))) {\n return new Date(value).toLocaleDateString(locale);\n }\n return value;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFNN0QsTUFBTSxPQUFPLFlBQVk7SUFDZixPQUFPLEdBQWdDLEVBQUUsQ0FBQztJQUVsRCxTQUFTLENBQ1AsRUFBMEIsRUFDMUIsTUFBa0Q7UUFFbEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxtQkFBbUIsQ0FBVSxFQUFFLENBQUMsQ0FBQztRQUMxRCxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxhQUFhLENBQ1gsRUFBMEIsRUFDMUIsTUFBa0Q7UUFFbEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzlCLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQ2IsRUFBMEIsRUFDMUIsTUFBa0Q7UUFFbEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzlCLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUNYLEVBQTBCLEVBQzFCLE1BQWtEO1FBRWxELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QixNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsRUFBWSxDQUFDLENBQUMsQ0FBQztRQUN2RixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FDZCxFQUFVLEVBQ1YsTUFBa0Q7UUFFbEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzlCLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQ1gsRUFBMEIsRUFDMUIsTUFBa0Q7UUFFbEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzlCLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7dUdBakVVLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQXFFRCxTQUFTLDBCQUEwQixDQUFVLEdBQVksRUFBRSxFQUFVO0lBQ25FLE1BQU0sS0FBSyxHQUFJLEdBQW9ELENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEUsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUVsQyxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0QsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb2x1bW5Db25maWd1cmF0aW9uIH0gZnJvbSAnLi9jb2x1bW4tY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IENvbHVtbkRlZmluaXRpb24gfSBmcm9tICcuL3RhYmxlLm1vZGVscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVCdWlsZGVyPFRFbnRpdHk+IHtcclxuICBwcml2YXRlIGNvbHVtbnM6IENvbHVtbkRlZmluaXRpb248VEVudGl0eT5bXSA9IFtdO1xyXG5cclxuICBhZGRDb2x1bW4oXHJcbiAgICBpZDogc3RyaW5nIHwga2V5b2YgVEVudGl0eSxcclxuICAgIGNvbmZpZz86ICh2OiBDb2x1bW5Db25maWd1cmF0aW9uPFRFbnRpdHk+KSA9PiB2b2lkXHJcbiAgKTogVGFibGVCdWlsZGVyPFRFbnRpdHk+IHtcclxuICAgIGNvbnN0IGNvbHVtbkNvbmZpZyA9IG5ldyBDb2x1bW5Db25maWd1cmF0aW9uPFRFbnRpdHk+KGlkKTtcclxuICAgIGNvbmZpZz8uKGNvbHVtbkNvbmZpZyk7XHJcbiAgICB0aGlzLmNvbHVtbnMucHVzaChjb2x1bW5Db25maWcuYnVpbGQoKSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIGFkZFRleHRDb2x1bW4oXHJcbiAgICBpZDogc3RyaW5nIHwga2V5b2YgVEVudGl0eSxcclxuICAgIGNvbmZpZz86ICh2OiBDb2x1bW5Db25maWd1cmF0aW9uPFRFbnRpdHk+KSA9PiB2b2lkXHJcbiAgKTogVGFibGVCdWlsZGVyPFRFbnRpdHk+IHtcclxuICAgIHJldHVybiB0aGlzLmFkZENvbHVtbihpZCwgKHgpID0+IHtcclxuICAgICAgY29uZmlnPy4oeCk7XHJcbiAgICAgIHgudHlwZSgndGV4dCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGROdW1iZXJDb2x1bW4oXHJcbiAgICBpZDogc3RyaW5nIHwga2V5b2YgVEVudGl0eSxcclxuICAgIGNvbmZpZz86ICh2OiBDb2x1bW5Db25maWd1cmF0aW9uPFRFbnRpdHk+KSA9PiB2b2lkXHJcbiAgKTogVGFibGVCdWlsZGVyPFRFbnRpdHk+IHtcclxuICAgIHJldHVybiB0aGlzLmFkZENvbHVtbihpZCwgKHgpID0+IHtcclxuICAgICAgY29uZmlnPy4oeCk7XHJcbiAgICAgIHgudHlwZSgnbnVtYmVyJykuY29sdW1uQ2xhc3MoJ3RleHQtZW5kJyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZERhdGVDb2x1bW4oXHJcbiAgICBpZDogc3RyaW5nIHwga2V5b2YgVEVudGl0eSxcclxuICAgIGNvbmZpZz86ICh2OiBDb2x1bW5Db25maWd1cmF0aW9uPFRFbnRpdHk+KSA9PiB2b2lkXHJcbiAgKTogVGFibGVCdWlsZGVyPFRFbnRpdHk+IHtcclxuICAgIHJldHVybiB0aGlzLmFkZENvbHVtbihpZCwgKHgpID0+IHtcclxuICAgICAgY29uZmlnPy4oeCk7XHJcbiAgICAgIHgudHlwZSgnZGF0ZScpLnZhbHVlRnVuY3Rpb24oKHJvdykgPT4gY292ZXJ0RnJvbURhdGVUb1VzZXJMb2NhbGUocm93LCBpZCBhcyBzdHJpbmcpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkQm9vbGVhbkNvbHVtbihcclxuICAgIGlkOiBzdHJpbmcsXHJcbiAgICBjb25maWc/OiAodjogQ29sdW1uQ29uZmlndXJhdGlvbjxURW50aXR5PikgPT4gdm9pZFxyXG4gICk6IFRhYmxlQnVpbGRlcjxURW50aXR5PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRDb2x1bW4oaWQsICh4KSA9PiB7XHJcbiAgICAgIGNvbmZpZz8uKHgpO1xyXG4gICAgICB4LnR5cGUoJ2Jvb2xlYW4nKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkRW51bUNvbHVtbihcclxuICAgIGlkOiBzdHJpbmcgfCBrZXlvZiBURW50aXR5LFxyXG4gICAgY29uZmlnPzogKHY6IENvbHVtbkNvbmZpZ3VyYXRpb248VEVudGl0eT4pID0+IHZvaWRcclxuICApOiBUYWJsZUJ1aWxkZXI8VEVudGl0eT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkQ29sdW1uKGlkLCAoeCkgPT4ge1xyXG4gICAgICBjb25maWc/Lih4KTtcclxuICAgICAgeC50eXBlKCdlbnVtJyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGJ1aWxkKCk6IENvbHVtbkRlZmluaXRpb248VEVudGl0eT5bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gY292ZXJ0RnJvbURhdGVUb1VzZXJMb2NhbGU8VEVudGl0eT4ocm93OiBURW50aXR5LCBpZDogc3RyaW5nKSB7XHJcbiAgY29uc3QgdmFsdWUgPSAocm93IGFzIHsgW2tleTogc3RyaW5nXTogdW5kZWZpbmVkIHwgc3RyaW5nIHwgRGF0ZSB9KVtpZF07XHJcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGNvbnN0IGxvY2FsZSA9IG5hdmlnYXRvci5sYW5ndWFnZTtcclxuXHJcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgIWlzTmFOKERhdGUucGFyc2UodmFsdWUpKSkge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlKTtcclxuICB9XHJcblxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const TABLE_FILTER_COMPONENT_TOKEN = new InjectionToken('TableFilterComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtZmlsdGVyL3RhYmxlLWZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUMxRCwyQkFBMkIsQ0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRm9ybURpcmVjdGl2ZUNvcmUgfSBmcm9tICcuLi9iYXNlLWZvcm0nO1xuXG5leHBvcnQgY29uc3QgVEFCTEVfRklMVEVSX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUYWJsZUZpbHRlckNvcmU8YW55Pj4oXG4gICAgJ1RhYmxlRmlsdGVyQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckRlZmluaXRpb24ge1xuICAgIG9wdGlvbkxhYmVsOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBvcHRpb25WYWx1ZT86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgZmlsdGVyVHlwZT86ICdkcm9wZG93bicgfCAnY2hlY2tib3gnIHwgJ2NhbGVuZGFyJyB8ICdtdWx0aXNlbGVjdCc7XG4gICAgaW5pdGlhbFZhbHVlPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRmlsdGVyQ29yZTxUPiBleHRlbmRzIEJhc2VGb3JtRGlyZWN0aXZlQ29yZTxUPiB7XG4gICAgZmlsdGVyRGVmaW5pdGlvbnM6IEZpbHRlckRlZmluaXRpb25bXTtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGhpZGVTZWFyY2g/OiBib29sZWFuO1xuICAgIGRlYm91bmNlVGltZT86IG51bWJlcjtcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const TEXTAREA_COMPONENT_TOKEN = new InjectionToken('TextareaComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRm9ybUNvcmUgfSBmcm9tICcuLi9iYXNlLWZvcm0nO1xuXG5leHBvcnQgY29uc3QgVEVYVEFSRUFfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFRleHRhcmVhQ29yZT4oXG4gICAgJ1RleHRhcmVhQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRhcmVhQ29yZSBleHRlbmRzIEJhc2VGb3JtQ29yZSB7XG4gICAgcm93czogbnVtYmVyO1xuICAgIGNvbHM6IG51bWJlcjtcbiAgICBhdXRvUmVzaXplOiBib29sZWFuO1xuICAgIGZsb2F0TGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const TEXTFIELD_COMPONENT_TOKEN = new InjectionToken('TextfieldComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvdGV4dGZpZWxkL3RleHRmaWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUN2RCx5QkFBeUIsQ0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFNpemVUeXBlLCBGaWVsZFR5cGVUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IEJhc2VGb3JtQ29yZSB9IGZyb20gJy4uL2Jhc2UtZm9ybSc7XG5cbmV4cG9ydCBjb25zdCBURVhURklFTERfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFRleHRmaWVsZENvcmU+KFxuICAgICdUZXh0ZmllbGRDb21wb25lbnRUb2tlbidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dGZpZWxkQ29yZSBleHRlbmRzIEJhc2VGb3JtQ29yZSB7XG4gICAgc2l6ZTogRmllbGRTaXplVHlwZSB8IHVuZGVmaW5lZDtcbiAgICB0eXBlOiBGaWVsZFR5cGVUeXBlO1xuICAgIGZsb2F0TGFiZWw6IGJvb2xlYW47XG59Il19","import { InjectionToken } from '@angular/core';\nexport const TOOLTIP_COMPONENT_TOKEN = new InjectionToken('TooltipComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUNyRCx1QkFBdUIsQ0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xTZXZlcml0eVR5cGUsIEZpZWxkU2l6ZVR5cGUsIFBvc2l0aW9uVHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBUT09MVElQX0NPTVBPTkVOVF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUb29sdGlwQ29yZT4oXG4gICAgJ1Rvb2x0aXBDb21wb25lbnRUb2tlbidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbHRpcENvcmUge1xuICAgIGNvbG9yOiBTaWduYWw8Q29udHJvbFNldmVyaXR5VHlwZSB8IHVuZGVmaW5lZD47XG4gICAgcG9zaXRpb246IFNpZ25hbDxQb3NpdGlvblR5cGUgfCB1bmRlZmluZWQ+O1xuICAgIHNpemU6IFNpZ25hbDxGaWVsZFNpemVUeXBlIHwgdW5kZWZpbmVkPjtcbiAgICB0b29sdGlwVGV4dDogU2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD47XG59Il19","import { InjectionToken } from \"@angular/core\";\nexport const ICONS_COMPONENT_TOKEN = new InjectionToken('IconsComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9pY29ucy9pY29ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRzVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUNuRCxxQkFBcUIsQ0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbnB1dFNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sU2V2ZXJpdHlUeXBlLCBGaWVsZFNpemVUeXBlIH0gZnJvbSBcIi4uLy4uL2NvbW1vblwiO1xuXG5leHBvcnQgY29uc3QgSUNPTlNfQ09NUE9ORU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEljb25zQ29yZT4oXG4gICAgJ0ljb25zQ29tcG9uZW50VG9rZW4nXG4pO1xuXG5leHBvcnQgdHlwZSBJY29uTGlicmFyeVR5cGUgPSAnbmF0aXZlJyB8ICdib290c3RyYXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEljb25zQ29yZSB7XG4gICAgbGlicmFyeTogSW5wdXRTaWduYWw8SWNvbkxpYnJhcnlUeXBlPjtcbiAgICBuYW1lOiBJbnB1dFNpZ25hbDxzdHJpbmc+O1xuICAgIHNpemU6IElucHV0U2lnbmFsPEZpZWxkU2l6ZVR5cGUgfCB1bmRlZmluZWQ+O1xuICAgIHNldmVyaXR5OiBJbnB1dFNpZ25hbDxDb250cm9sU2V2ZXJpdHlUeXBlIHwgdW5kZWZpbmVkPjtcbiAgICBjbGFzczogSW5wdXRTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbn0iXX0=","import { Component, input } from \"@angular/core\";\nimport { ICONS_COMPONENT_TOKEN } from \"./icons.model\";\nimport * as i0 from \"@angular/core\";\nexport class IconsComponent {\n library = input('native', ...(ngDevMode ? [{ debugName: \"library\" }] : []));\n name = input.required(...(ngDevMode ? [{ debugName: \"name\" }] : []));\n size = input(...(ngDevMode ? [undefined, { debugName: \"size\" }] : []));\n severity = input(...(ngDevMode ? [undefined, { debugName: \"severity\" }] : []));\n class = input(...(ngDevMode ? [undefined, { debugName: \"class\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: IconsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.2.1\", type: IconsComponent, isStandalone: true, selector: \"ng-component\", inputs: { library: { classPropertyName: \"library\", publicName: \"library\", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, severity: { classPropertyName: \"severity\", publicName: \"severity\", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: \"class\", publicName: \"class\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n {\n provide: ICONS_COMPONENT_TOKEN,\n useExisting: IconsComponent\n }\n ], ngImport: i0, template: '', isInline: true });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: IconsComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n template: '',\n providers: [\n {\n provide: ICONS_COMPONENT_TOKEN,\n useExisting: IconsComponent\n }\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvaWNvbnMvaWNvbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBbUIscUJBQXFCLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBYWxGLE1BQU0sT0FBZ0IsY0FBYztJQUNoQyxPQUFPLEdBQUcsS0FBSyxDQUFrQixRQUFRLG1EQUFDLENBQUM7SUFDM0MsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLCtDQUFVLENBQUM7SUFDaEMsSUFBSSxHQUFHLEtBQUssMERBQTZCLENBQUM7SUFDMUMsUUFBUSxHQUFHLEtBQUssOERBQW1DLENBQUM7SUFDcEQsS0FBSyxHQUFHLEtBQUssMkRBQVUsQ0FBQzt1R0FMTixjQUFjOzJGQUFkLGNBQWMsdXFCQVJyQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSxjQUFjO2FBQzlCO1NBQ0osMEJBTlMsRUFBRTs7MkZBU00sY0FBYztrQkFYbkMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcsZ0JBQWdCO3lCQUM5QjtxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29udHJvbFNldmVyaXR5VHlwZSwgRmllbGRTaXplVHlwZSB9IGZyb20gXCIuLi8uLi9jb21tb25cIjtcbmltcG9ydCB7IEljb25MaWJyYXJ5VHlwZSwgSUNPTlNfQ09NUE9ORU5UX1RPS0VOLCBJY29uc0NvcmUgfSBmcm9tIFwiLi9pY29ucy5tb2RlbFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogSUNPTlNfQ09NUE9ORU5UX1RPS0VOLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEljb25zQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdXG59KVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSWNvbnNDb21wb25lbnQgaW1wbGVtZW50cyBJY29uc0NvcmUge1xuICAgIGxpYnJhcnkgPSBpbnB1dDxJY29uTGlicmFyeVR5cGU+KCduYXRpdmUnKTtcbiAgICBuYW1lID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICAgIHNpemUgPSBpbnB1dDxGaWVsZFNpemVUeXBlIHwgdW5kZWZpbmVkPigpO1xuICAgIHNldmVyaXR5ID0gaW5wdXQ8Q29udHJvbFNldmVyaXR5VHlwZSB8IHVuZGVmaW5lZD4oKTtcbiAgICBjbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbn0iXX0=","import { InjectionToken } from \"@angular/core\";\nexport const TAG_COMPONENT_TOKEN = new InjectionToken('TagComponentToken');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2NvbXBvbmVudHMvdGFnL3RhZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRzVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFVLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgSW5wdXRTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29udHJvbFNldmVyaXR5VHlwZSwgRmllbGRTaXplVHlwZSB9IGZyb20gXCIuLi8uLi9jb21tb25cIjtcblxuZXhwb3J0IGNvbnN0IFRBR19DT01QT05FTlRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48VGFnQ29yZT4oJ1RhZ0NvbXBvbmVudFRva2VuJyk7XG5cbmV4cG9ydCB0eXBlIFRhZ1ZhcmlhbnQgPSAnYm9sZCcgfCAnc3VidGxlJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWdDb3JlIHtcbiAgICBsYWJlbDogSW5wdXRTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgICBzZXZlcml0eTogSW5wdXRTaWduYWw8Q29udHJvbFNldmVyaXR5VHlwZSB8IHVuZGVmaW5lZD47XG4gICAgdmFyaWFudDogSW5wdXRTaWduYWw8VGFnVmFyaWFudD47XG4gICAgc2l6ZTogSW5wdXRTaWduYWw8RmllbGRTaXplVHlwZT47XG4gIH0iXX0=","import { HttpClient } from '@angular/common/http';\nimport { ChangeDetectorRef, Directive, inject, Input, } from '@angular/core';\nimport { BASE_URL_PATH, convertDatasource, DEFAULT_SEARCH_LIMIT, normalizeRequest, } from '@verisoft/core';\nimport { BehaviorSubject, catchError, debounceTime, filter, map, of, switchMap, takeUntil, tap, } from 'rxjs';\nimport { DEFAULT_DEBOUNCE_TIME, setComponentProperties, setDataToArray, } from '../common';\nimport { DROPDOWN_COMPONENT_TOKEN, GENERIC_FIELD_COMPONENT_TOKEN, MULTISELECT_COMPONENT_TOKEN, UnsubscribeComponent, } from '../components';\nimport * as i0 from \"@angular/core\";\nexport class DatasourceDirective extends UnsubscribeComponent {\n datasource;\n autoBind = true;\n loadingText = '... loading ...';\n filterField = 'fulltext';\n transformFn;\n extraFilter;\n get activeComponent() {\n return (this.dropdownComponent ??\n this.multiSelectComponent ??\n this.genericField);\n }\n httpClient = inject(HttpClient);\n baseUrl = inject(BASE_URL_PATH);\n changeDetectorRef = inject(ChangeDetectorRef);\n isAllDataLoaded = false;\n parameters$ = new BehaviorSubject({});\n lastParameter = {};\n dropdownComponent = inject(DROPDOWN_COMPONENT_TOKEN, { optional: true });\n multiSelectComponent = inject(MULTISELECT_COMPONENT_TOKEN, {\n optional: true,\n });\n genericField = inject(GENERIC_FIELD_COMPONENT_TOKEN, { optional: true });\n dataSourceService;\n loadingPlaceholderItem = {};\n ngOnInit() {\n this.activeComponent.showed\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (!this.autoBind &&\n !this.activeComponent.options &&\n !this.activeComponent.loading) {\n this.parameters$.next({});\n }\n });\n this.activeComponent.lazyLoad\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.parameters$.next({ offset: value?.offset, limit: value?.limit });\n });\n this.activeComponent.filtered\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n const property = this.filterField ?? this.activeComponent.optionLabel;\n if (property) {\n this.parameters$.next({\n offset: 0,\n filter: {\n [property]: value.filter ? value.filter : undefined,\n ...(this.extraFilter ?? {})\n },\n useNewData: true,\n });\n }\n });\n this.parameters$\n .pipe(takeUntil(this.destroyed$), filter(request => !this.isDataForRequestLoaded(request)), map((request) => {\n const extendedParams = normalizeRequest({ ...this.lastParameter, ...request }, DEFAULT_SEARCH_LIMIT);\n extendedParams.useNewData = request.useNewData ?? false;\n return extendedParams;\n }), tap((request) => {\n this.lastParameter = request;\n }), debounceTime(DEFAULT_DEBOUNCE_TIME), tap(() => {\n this.changeComponent(this.activeComponent, {\n loading: true,\n });\n }), switchMap((request) => this.dataSourceService\n ? this.dataSourceService(request).pipe(map((response) => ({ request, response })))\n : of({\n request,\n response: {\n data: [],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n },\n })), catchError((request) => {\n this.changeComponent(this.activeComponent, {\n loading: false,\n });\n return of({\n request: request,\n response: {\n data: [],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n },\n });\n }))\n .subscribe(({ request, response }) => this.setDataToControl(request, response));\n }\n ngOnChanges(changes) {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(this.datasource, this.baseUrl, this.httpClient);\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n isDataForRequestLoaded(request) {\n if (request.useNewData) {\n return false;\n }\n const offset = request.offset ?? 0;\n const limit = request.limit ?? DEFAULT_SEARCH_LIMIT;\n const options = this.activeComponent.options;\n if (!options) {\n return false;\n }\n if (options.length < offset + limit) {\n return false;\n }\n const allItemsFilled = options.slice(offset, offset + limit).every(item => item !== undefined && item != this.loadingPlaceholderItem);\n return allItemsFilled;\n }\n setDataToControl(request, result) {\n this.isAllDataLoaded = result.total <= result.data.length;\n const data = result.data;\n const total = result.total;\n const offset = request.offset;\n const transferedData = this.transformFn\n ? data.map((x) => this.transformFn?.(x))\n : data;\n if (this.activeComponent.optionLabel) {\n this.loadingPlaceholderItem[this.activeComponent.optionLabel] =\n this.loadingText;\n }\n if (this.activeComponent.optionValue) {\n this.loadingPlaceholderItem[this.activeComponent.optionValue] = -1;\n }\n const options = request.useNewData ? undefined : this.activeComponent.options;\n const newOptions = setDataToArray(options, transferedData, offset, total, this.loadingPlaceholderItem);\n this.changeComponent(this.activeComponent, {\n options: newOptions,\n loading: false,\n lazy: !this.isAllDataLoaded,\n });\n }\n changeComponent(component, value) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: DatasourceDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: DatasourceDirective, isStandalone: true, selector: \"v-dropdown[useDatasource], v-multiselect[useDatasource], v-generic-field[useDatasource]\", inputs: { datasource: \"datasource\", autoBind: \"autoBind\", loadingText: \"loadingText\", filterField: \"filterField\", transformFn: \"transformFn\", extraFilter: \"extraFilter\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: DatasourceDirective, decorators: [{\n type: Directive,\n args: [{\n selector: \n // eslint-disable-next-line @angular-eslint/directive-selector\n 'v-dropdown[useDatasource], v-multiselect[useDatasource], v-generic-field[useDatasource]',\n standalone: true,\n }]\n }], propDecorators: { datasource: [{\n type: Input\n }], autoBind: [{\n type: Input\n }], loadingText: [{\n type: Input\n }], filterField: [{\n type: Input\n }], transformFn: [{\n type: Input\n }], extraFilter: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9kYXRhc291cmNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsYUFBYSxFQUNiLGlCQUFpQixFQUdqQixvQkFBb0IsRUFHcEIsZ0JBQWdCLEdBR2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixHQUFHLEVBQ0gsRUFBRSxFQUNGLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUVMLHFCQUFxQixFQUVyQixzQkFBc0IsRUFDdEIsY0FBYyxHQUNmLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFDTCx3QkFBd0IsRUFFeEIsNkJBQTZCLEVBRTdCLDJCQUEyQixFQUUzQixvQkFBb0IsR0FDckIsTUFBTSxlQUFlLENBQUM7O0FBUXZCLE1BQU0sT0FBTyxtQkFDWCxTQUFRLG9CQUFvQjtJQUduQixVQUFVLENBQXFCO0lBRS9CLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFFaEIsV0FBVyxHQUFHLGlCQUFpQixDQUFDO0lBRWhDLFdBQVcsR0FBdUIsVUFBVSxDQUFDO0lBRTdDLFdBQVcsQ0FBd0I7SUFFbkMsV0FBVyxDQUFPO0lBRTNCLElBQUksZUFBZTtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUM1QixJQUFJLENBQUMsb0JBQW9CO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQWdDLENBQUM7SUFDdEQsQ0FBQztJQUVPLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFaEMsT0FBTyxHQUFXLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV4QyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUU5QyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRXhCLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBa0MsRUFBRSxDQUFDLENBQUM7SUFFdkUsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUVuQixpQkFBaUIsR0FBRyxNQUFNLENBQ2hDLHdCQUF3QixFQUN4QixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDbkIsQ0FBQztJQUVNLG9CQUFvQixHQUFHLE1BQU0sQ0FDbkMsMkJBQTJCLEVBQzNCO1FBQ0UsUUFBUSxFQUFFLElBQUk7S0FDZixDQUNGLENBQUM7SUFFTSxZQUFZLEdBQUcsTUFBTSxDQUMzQiw2QkFBNkIsRUFDN0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQ25CLENBQUM7SUFFTSxpQkFBaUIsQ0FBNkI7SUFFOUMsc0JBQXNCLEdBQStCLEVBQUUsQ0FBQztJQUVoRSxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNO2FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUNFLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQ2QsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU87Z0JBQzdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQzdCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRO2FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUTthQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsQ0FBQyxLQUFrQixFQUFFLEVBQUU7WUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztZQUN0RSxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO29CQUNwQixNQUFNLEVBQUUsQ0FBQztvQkFDVCxNQUFNLEVBQUU7d0JBQ04sQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTO3dCQUNuRCxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7cUJBQ2Q7b0JBQ2YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxXQUFXO2FBQ2IsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ3hELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2QsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxvQkFBb0IsQ0FBMkIsQ0FBQztZQUMvSCxjQUFjLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1lBQ3hELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7UUFDL0IsQ0FBQyxDQUFDLEVBQ0YsWUFBWSxDQUFDLHFCQUFxQixDQUFDLEVBQ25DLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3pDLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDcEIsSUFBSSxDQUFDLGlCQUFpQjtZQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQTJCLENBQUMsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQzNDO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDRCxPQUFPO2dCQUNQLFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsRUFBUztvQkFDZixLQUFLLEVBQUUsQ0FBQztvQkFDUixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7b0JBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtpQkFDWjthQUNiLENBQUMsQ0FDUCxFQUNELFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDekMsT0FBTyxFQUFFLEtBQUs7YUFDZixDQUFDLENBQUM7WUFDSCxPQUFPLEVBQUUsQ0FBQztnQkFDUixPQUFPLEVBQUUsT0FBaUM7Z0JBQzFDLFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsRUFBUztvQkFDZixLQUFLLEVBQUUsQ0FBQztvQkFDUixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7b0JBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtpQkFDWjthQUNiLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUN6QyxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FDeEMsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7WUFFRixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxPQUF3QztRQUNyRSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLG9CQUFvQixDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDcEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3RJLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUErQixFQUFFLE1BQWU7UUFDdkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzlCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXO1lBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVULElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7Z0JBQzNELElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUM5RSxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQy9CLE9BQU8sRUFDUCxjQUFjLEVBQ2QsTUFBTSxFQUNOLEtBQUssRUFDTCxJQUFJLENBQUMsc0JBQXNCLENBQzVCLENBQUM7UUFFRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekMsT0FBTyxFQUFFLFVBQWlCO1lBQzFCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWU7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FDckIsU0FBc0MsRUFDdEMsS0FBMkM7UUFFM0Msc0JBQXNCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO3VHQXpOVSxtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRO29CQUNOLDhEQUE4RDtvQkFDOUQseUZBQXlGO29CQUMzRixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBS1UsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQkFTRV9VUkxfUEFUSCxcbiAgY29udmVydERhdGFzb3VyY2UsXG4gIERhdGFTb3VyY2VGdW5jdGlvblR5cGUsXG4gIERhdGFzb3VyY2VUeXBlLFxuICBERUZBVUxUX1NFQVJDSF9MSU1JVCxcbiAgRmlsdGVyRXZlbnQsXG4gIExhenlMb2FkRXZlbnQsXG4gIG5vcm1hbGl6ZVJlcXVlc3QsXG4gIFBhZ2UsXG4gIFJlcXVlc3RQYXJhbXMsXG59IGZyb20gJ0B2ZXJpc29mdC9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY2F0Y2hFcnJvcixcbiAgZGVib3VuY2VUaW1lLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRGF0YVNvdXJjZUNvbXBvbmVudE1vZGVsLFxuICBERUZBVUxUX0RFQk9VTkNFX1RJTUUsXG4gIEV4dGVuZGVkUmVxdWVzdFR5cGUsXG4gIHNldENvbXBvbmVudFByb3BlcnRpZXMsXG4gIHNldERhdGFUb0FycmF5LFxufSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHtcbiAgRFJPUERPV05fQ09NUE9ORU5UX1RPS0VOLFxuICBEcm9wZG93bkNvcmUsXG4gIEdFTkVSSUNfRklFTERfQ09NUE9ORU5UX1RPS0VOLFxuICBHZW5lcmljRmllbGRDb3JlLFxuICBNVUxUSVNFTEVDVF9DT01QT05FTlRfVE9LRU4sXG4gIE11bHRpc2VsZWN0Q29yZSxcbiAgVW5zdWJzY3JpYmVDb21wb25lbnQsXG59IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICAndi1kcm9wZG93blt1c2VEYXRhc291cmNlXSwgdi1tdWx0aXNlbGVjdFt1c2VEYXRhc291cmNlXSwgdi1nZW5lcmljLWZpZWxkW3VzZURhdGFzb3VyY2VdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YXNvdXJjZURpcmVjdGl2ZTxUPlxuICBleHRlbmRzIFVuc3Vic2NyaWJlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXRcbntcbiAgQElucHV0KCkgZGF0YXNvdXJjZSE6IERhdGFzb3VyY2VUeXBlPFQ+O1xuXG4gIEBJbnB1dCgpIGF1dG9CaW5kID0gdHJ1ZTtcblxuICBASW5wdXQoKSBsb2FkaW5nVGV4dCA9ICcuLi4gbG9hZGluZyAuLi4nO1xuXG4gIEBJbnB1dCgpIGZpbHRlckZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnZnVsbHRleHQnO1xuXG4gIEBJbnB1dCgpIHRyYW5zZm9ybUZuPzogKGRhdGE6IFQpID0+IHVua25vd247XG5cbiAgQElucHV0KCkgZXh0cmFGaWx0ZXIhOiBhbnk7XG5cbiAgZ2V0IGFjdGl2ZUNvbXBvbmVudCgpOiBEYXRhU291cmNlQ29tcG9uZW50TW9kZWw8VD4ge1xuICAgIHJldHVybiAodGhpcy5kcm9wZG93bkNvbXBvbmVudCA/P1xuICAgICAgdGhpcy5tdWx0aVNlbGVjdENvbXBvbmVudCA/P1xuICAgICAgdGhpcy5nZW5lcmljRmllbGQpIGFzIERhdGFTb3VyY2VDb21wb25lbnRNb2RlbDxUPjtcbiAgfVxuXG4gIHByaXZhdGUgaHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZyA9IGluamVjdChCQVNFX1VSTF9QQVRIKTtcblxuICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBwcml2YXRlIGlzQWxsRGF0YUxvYWRlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcGFyYW1ldGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8RXh0ZW5kZWRSZXF1ZXN0VHlwZTxUPj4+KHt9KTtcblxuICBwcml2YXRlIGxhc3RQYXJhbWV0ZXIgPSB7fTtcblxuICBwcml2YXRlIGRyb3Bkb3duQ29tcG9uZW50ID0gaW5qZWN0PERyb3Bkb3duQ29yZTxUPj4oXG4gICAgRFJPUERPV05fQ09NUE9ORU5UX1RPS0VOLFxuICAgIHsgb3B0aW9uYWw6IHRydWUgfVxuICApO1xuXG4gIHByaXZhdGUgbXVsdGlTZWxlY3RDb21wb25lbnQgPSBpbmplY3Q8TXVsdGlzZWxlY3RDb3JlPFQ+PihcbiAgICBNVUxUSVNFTEVDVF9DT01QT05FTlRfVE9LRU4sXG4gICAge1xuICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgfVxuICApO1xuXG4gIHByaXZhdGUgZ2VuZXJpY0ZpZWxkID0gaW5qZWN0PEdlbmVyaWNGaWVsZENvcmU8VD4+KFxuICAgIEdFTkVSSUNfRklFTERfQ09NUE9ORU5UX1RPS0VOLFxuICAgIHsgb3B0aW9uYWw6IHRydWUgfVxuICApO1xuXG4gIHByaXZhdGUgZGF0YVNvdXJjZVNlcnZpY2U/OiBEYXRhU291cmNlRnVuY3Rpb25UeXBlPFQ+O1xuXG4gIHByaXZhdGUgbG9hZGluZ1BsYWNlaG9sZGVySXRlbTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZUNvbXBvbmVudC5zaG93ZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhdGhpcy5hdXRvQmluZCAmJlxuICAgICAgICAgICF0aGlzLmFjdGl2ZUNvbXBvbmVudC5vcHRpb25zICYmXG4gICAgICAgICAgIXRoaXMuYWN0aXZlQ29tcG9uZW50LmxvYWRpbmdcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5wYXJhbWV0ZXJzJC5uZXh0KHt9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLmFjdGl2ZUNvbXBvbmVudC5sYXp5TG9hZFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogTGF6eUxvYWRFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMkLm5leHQoeyBvZmZzZXQ6IHZhbHVlPy5vZmZzZXQsIGxpbWl0OiB2YWx1ZT8ubGltaXQgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuYWN0aXZlQ29tcG9uZW50LmZpbHRlcmVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBGaWx0ZXJFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMuZmlsdGVyRmllbGQgPz8gdGhpcy5hY3RpdmVDb21wb25lbnQub3B0aW9uTGFiZWw7XG4gICAgICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgICAgIHRoaXMucGFyYW1ldGVycyQubmV4dCh7XG4gICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgW3Byb3BlcnR5XTogdmFsdWUuZmlsdGVyID8gdmFsdWUuZmlsdGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAuLi4odGhpcy5leHRyYUZpbHRlciA/PyB7fSlcbiAgICAgICAgICAgIH0gYXMgUGFydGlhbDxUPixcbiAgICAgICAgICAgIHVzZU5ld0RhdGE6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5wYXJhbWV0ZXJzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpLFxuICAgICAgICBmaWx0ZXIocmVxdWVzdCA9PiAhdGhpcy5pc0RhdGFGb3JSZXF1ZXN0TG9hZGVkKHJlcXVlc3QpKSxcbiAgICAgICAgbWFwKChyZXF1ZXN0KSA9PiB7XG4gICAgICAgICAgY29uc3QgZXh0ZW5kZWRQYXJhbXMgPSBub3JtYWxpemVSZXF1ZXN0KHsgLi4udGhpcy5sYXN0UGFyYW1ldGVyLCAuLi5yZXF1ZXN0IH0sIERFRkFVTFRfU0VBUkNIX0xJTUlUKSBhcyBFeHRlbmRlZFJlcXVlc3RUeXBlPFQ+O1xuICAgICAgICAgIGV4dGVuZGVkUGFyYW1zLnVzZU5ld0RhdGEgPSByZXF1ZXN0LnVzZU5ld0RhdGEgPz8gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIGV4dGVuZGVkUGFyYW1zO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKChyZXF1ZXN0KSA9PiB7XG4gICAgICAgICAgdGhpcy5sYXN0UGFyYW1ldGVyID0gcmVxdWVzdDtcbiAgICAgICAgfSksXG4gICAgICAgIGRlYm91bmNlVGltZShERUZBVUxUX0RFQk9VTkNFX1RJTUUpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlQ29tcG9uZW50KHRoaXMuYWN0aXZlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChyZXF1ZXN0KSA9PlxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2VcbiAgICAgICAgICAgID8gdGhpcy5kYXRhU291cmNlU2VydmljZShyZXF1ZXN0IGFzIFJlcXVlc3RQYXJhbXM8VD4pLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gKHsgcmVxdWVzdCwgcmVzcG9uc2UgfSkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogb2Yoe1xuICAgICAgICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgICAgICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IFtdIGFzIFRbXSxcbiAgICAgICAgICAgICAgICAgIHRvdGFsOiAwLFxuICAgICAgICAgICAgICAgICAgbGltaXQ6IHJlcXVlc3QubGltaXQsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6IHJlcXVlc3Qub2Zmc2V0LFxuICAgICAgICAgICAgICAgIH0gYXMgUGFnZTxUPixcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgICAgY2F0Y2hFcnJvcigocmVxdWVzdCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlQ29tcG9uZW50KHRoaXMuYWN0aXZlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gb2Yoe1xuICAgICAgICAgICAgcmVxdWVzdDogcmVxdWVzdCBhcyBFeHRlbmRlZFJlcXVlc3RUeXBlPFQ+LFxuICAgICAgICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgICAgICAgZGF0YTogW10gYXMgVFtdLFxuICAgICAgICAgICAgICB0b3RhbDogMCxcbiAgICAgICAgICAgICAgbGltaXQ6IHJlcXVlc3QubGltaXQsXG4gICAgICAgICAgICAgIG9mZnNldDogcmVxdWVzdC5vZmZzZXQsXG4gICAgICAgICAgICB9IGFzIFBhZ2U8VD4sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh7IHJlcXVlc3QsIHJlc3BvbnNlIH0pID0+XG4gICAgICAgIHRoaXMuc2V0RGF0YVRvQ29udHJvbChyZXF1ZXN0LCByZXNwb25zZSlcbiAgICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGFzb3VyY2UnXSkge1xuICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZSA9IGNvbnZlcnREYXRhc291cmNlKFxuICAgICAgICB0aGlzLmRhdGFzb3VyY2UsXG4gICAgICAgIHRoaXMuYmFzZVVybCxcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50XG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy5hdXRvQmluZCkge1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMkLm5leHQoeyBvZmZzZXQ6IDAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0RhdGFGb3JSZXF1ZXN0TG9hZGVkKHJlcXVlc3Q6IFBhcnRpYWw8RXh0ZW5kZWRSZXF1ZXN0VHlwZTxUPj4pIHtcbiAgICBpZiAocmVxdWVzdC51c2VOZXdEYXRhKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgb2Zmc2V0ID0gcmVxdWVzdC5vZmZzZXQgPz8gMDtcbiAgICBjb25zdCBsaW1pdCA9IHJlcXVlc3QubGltaXQgPz8gREVGQVVMVF9TRUFSQ0hfTElNSVQ7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuYWN0aXZlQ29tcG9uZW50Lm9wdGlvbnM7XG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMubGVuZ3RoIDwgb2Zmc2V0ICsgbGltaXQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxJdGVtc0ZpbGxlZCA9IG9wdGlvbnMuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBsaW1pdCkuZXZlcnkoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPSB0aGlzLmxvYWRpbmdQbGFjZWhvbGRlckl0ZW0pO1xuICAgIHJldHVybiBhbGxJdGVtc0ZpbGxlZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGF0YVRvQ29udHJvbChyZXF1ZXN0OiBFeHRlbmRlZFJlcXVlc3RUeXBlPFQ+LCByZXN1bHQ6IFBhZ2U8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmlzQWxsRGF0YUxvYWRlZCA9IHJlc3VsdC50b3RhbCA8PSByZXN1bHQuZGF0YS5sZW5ndGg7XG4gICAgY29uc3QgZGF0YSA9IHJlc3VsdC5kYXRhO1xuICAgIGNvbnN0IHRvdGFsID0gcmVzdWx0LnRvdGFsO1xuICAgIGNvbnN0IG9mZnNldCA9IHJlcXVlc3Qub2Zmc2V0O1xuICAgIGNvbnN0IHRyYW5zZmVyZWREYXRhID0gdGhpcy50cmFuc2Zvcm1GblxuICAgICAgPyBkYXRhLm1hcCgoeCkgPT4gdGhpcy50cmFuc2Zvcm1Gbj8uKHgpKVxuICAgICAgOiBkYXRhO1xuXG4gICAgaWYgKHRoaXMuYWN0aXZlQ29tcG9uZW50Lm9wdGlvbkxhYmVsKSB7XG4gICAgICB0aGlzLmxvYWRpbmdQbGFjZWhvbGRlckl0ZW1bdGhpcy5hY3RpdmVDb21wb25lbnQub3B0aW9uTGFiZWxdID1cbiAgICAgICAgdGhpcy5sb2FkaW5nVGV4dDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3RpdmVDb21wb25lbnQub3B0aW9uVmFsdWUpIHtcbiAgICAgIHRoaXMubG9hZGluZ1BsYWNlaG9sZGVySXRlbVt0aGlzLmFjdGl2ZUNvbXBvbmVudC5vcHRpb25WYWx1ZV0gPSAtMTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0gcmVxdWVzdC51c2VOZXdEYXRhID8gdW5kZWZpbmVkIDogdGhpcy5hY3RpdmVDb21wb25lbnQub3B0aW9ucztcbiAgICBjb25zdCBuZXdPcHRpb25zID0gc2V0RGF0YVRvQXJyYXkoXG4gICAgICBvcHRpb25zLFxuICAgICAgdHJhbnNmZXJlZERhdGEsXG4gICAgICBvZmZzZXQsXG4gICAgICB0b3RhbCxcbiAgICAgIHRoaXMubG9hZGluZ1BsYWNlaG9sZGVySXRlbVxuICAgICk7XG5cbiAgICB0aGlzLmNoYW5nZUNvbXBvbmVudCh0aGlzLmFjdGl2ZUNvbXBvbmVudCwge1xuICAgICAgb3B0aW9uczogbmV3T3B0aW9ucyBhcyBUW10sXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgIGxhenk6ICF0aGlzLmlzQWxsRGF0YUxvYWRlZCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlQ29tcG9uZW50KFxuICAgIGNvbXBvbmVudDogRGF0YVNvdXJjZUNvbXBvbmVudE1vZGVsPFQ+LFxuICAgIHZhbHVlOiBQYXJ0aWFsPERhdGFTb3VyY2VDb21wb25lbnRNb2RlbDxUPj5cbiAgKSB7XG4gICAgc2V0Q29tcG9uZW50UHJvcGVydGllcyhjb21wb25lbnQsIHZhbHVlKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIl19","import { HttpClient } from '@angular/common/http';\nimport { ChangeDetectorRef, Directive, inject, Input, } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { BASE_URL_PATH, BaseHttpService, convertDatasource, normalizeRequest, } from '@verisoft/core';\nimport { BehaviorSubject, catchError, debounceTime, map, of, switchMap, takeUntil, tap, } from 'rxjs';\nimport { DEFAULT_DEBOUNCE_TIME, isFilterEmpty, setComponentProperties, } from '../common';\nimport { TABLE_COMPONENT_TOKEN, UnsubscribeComponent, } from '../components';\nimport * as i0 from \"@angular/core\";\nexport class TableDatasourceDirective extends UnsubscribeComponent {\n store = inject(Store);\n autoBind = true;\n tableName;\n debounceTime = DEFAULT_DEBOUNCE_TIME;\n datasource;\n extraFilter;\n transformFn;\n tableComponent = inject(TABLE_COMPONENT_TOKEN, {\n self: true,\n });\n changeDetectorRef = inject(ChangeDetectorRef);\n httpClient = inject(HttpClient);\n baseUrl = inject(BASE_URL_PATH);\n dataSourceService;\n parameters$ = new BehaviorSubject({});\n params$ = this.parameters$.asObservable();\n ngOnInit() {\n if (!this.tableName) {\n throw new Error('Property tableName must be defined.');\n }\n this.tableComponent.lazyLoad.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.parameters$.next({\n offset: value?.offset,\n limit: value?.limit,\n filter: { ...value?.filter, ...this.extraFilter },\n sort: value?.sort,\n });\n });\n this.parameters$\n .pipe(takeUntil(this.destroyed$), map((request) => normalizeRequest({\n ...request,\n filter: { ...request.filter, ...this.extraFilter },\n })), debounceTime(this.debounceTime), tap(() => {\n this.changeComponent(this.tableComponent, {\n lazy: true,\n loading: true,\n });\n }), switchMap((request) => this.dataSourceService\n ? this.dataSourceService(request).pipe(map((response) => ({ request, response })))\n : of({\n request,\n response: {\n data: [],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n },\n })), catchError((request) => {\n this.changeComponent(this.tableComponent, {\n loading: false,\n });\n return of({\n request: request,\n response: {\n data: [],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n },\n });\n }))\n .subscribe(({ request, response }) => this.setDataToControl(request, response));\n }\n ngOnChanges(changes) {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(this.datasource, this.baseUrl, this.httpClient);\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n reload() {\n this.parameters$.next({ ...this.parameters$.value });\n }\n changeComponent(component, value) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n setDataToControl(request, result) {\n const data = result.data;\n const total = result.total;\n const transferedData = this.transformFn ? data.map((x) => this.transformFn?.(x)) : data;\n this.changeComponent(this.tableComponent, {\n lazy: !isFilterEmpty(request.filter) || data?.length < total || this.datasource instanceof BaseHttpService,\n data: transferedData,\n loading: false,\n total,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableDatasourceDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: TableDatasourceDirective, isStandalone: true, selector: \"v-table[useDatasource]\", inputs: { autoBind: \"autoBind\", tableName: \"tableName\", debounceTime: \"debounceTime\", datasource: \"datasource\", extraFilter: \"extraFilter\", transformFn: \"transformFn\" }, exportAs: [\"useDatasource\"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableDatasourceDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table[useDatasource]',\n exportAs: 'useDatasource',\n standalone: true,\n }]\n }], propDecorators: { autoBind: [{\n type: Input\n }], tableName: [{\n type: Input,\n args: [{ required: true }]\n }], debounceTime: [{\n type: Input\n }], datasource: [{\n type: Input\n }], extraFilter: [{\n type: Input\n }], transformFn: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YXNvdXJjZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy90YWJsZS1kYXRhc291cmNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGlCQUFpQixFQUlqQixnQkFBZ0IsR0FHakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osR0FBRyxFQUNILEVBQUUsRUFDRixTQUFTLEVBQ1QsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxxQkFBcUIsRUFFckIsYUFBYSxFQUNiLHNCQUFzQixHQUN2QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLG9CQUFvQixHQUNyQixNQUFNLGVBQWUsQ0FBQzs7QUFRdkIsTUFBTSxPQUFPLHdCQUNYLFNBQVEsb0JBQW9CO0lBR1QsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVoQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBRUUsU0FBUyxDQUFVO0lBRXJDLFlBQVksR0FBRyxxQkFBcUIsQ0FBQztJQUVyQyxVQUFVLENBQXFCO0lBRS9CLFdBQVcsQ0FBTztJQUVsQixXQUFXLENBQXdCO0lBRXBDLGNBQWMsR0FBRyxNQUFNLENBQWUscUJBQXFCLEVBQUU7UUFDbkUs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RUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUV4RixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEMsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsTUFBTSxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLGVBQWU7WUFDMUcsSUFBSSxFQUFFLGNBQXFCO1lBQzNCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBcElVLHdCQUF3QjsyRkFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQU5wQyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFPVSxRQUFRO3NCQUFoQixLQUFLO2dCQUVxQixTQUFTO3NCQUFuQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFFaEIsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEJBU0VfVVJMX1BBVEgsXG4gIEJhc2VIdHRwU2VydmljZSxcbiAgY29udmVydERhdGFzb3VyY2UsXG4gIERhdGFTb3VyY2VGdW5jdGlvblR5cGUsXG4gIERhdGFzb3VyY2VUeXBlLFxuICBMYXp5TG9hZEV2ZW50LFxuICBub3JtYWxpemVSZXF1ZXN0LFxuICBQYWdlLFxuICBSZXF1ZXN0UGFyYW1zLFxufSBmcm9tICdAdmVyaXNvZnQvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNhdGNoRXJyb3IsXG4gIGRlYm91bmNlVGltZSxcbiAgbWFwLFxuICBvZixcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBERUZBVUxUX0RFQk9VTkNFX1RJTUUsXG4gIEV4dGVuZGVkUmVxdWVzdFR5cGUsXG4gIGlzRmlsdGVyRW1wdHksXG4gIHNldENvbXBvbmVudFByb3BlcnRpZXMsXG59IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQge1xuICBUQUJMRV9DT01QT05FTlRfVE9LRU4sXG4gIFRhYmxlQ29yZSxcbiAgVW5zdWJzY3JpYmVDb21wb25lbnQsXG59IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd2LXRhYmxlW3VzZURhdGFzb3VyY2VdJyxcbiAgZXhwb3J0QXM6ICd1c2VEYXRhc291cmNlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVEYXRhc291cmNlRGlyZWN0aXZlPFQ+XG4gIGV4dGVuZHMgVW5zdWJzY3JpYmVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlc1xue1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoU3RvcmUpO1xuXG4gIEBJbnB1dCgpIGF1dG9CaW5kID0gdHJ1ZTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB0YWJsZU5hbWUhOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZGVib3VuY2VUaW1lID0gREVGQVVMVF9ERUJPVU5DRV9USU1FO1xuXG4gIEBJbnB1dCgpIGRhdGFzb3VyY2UhOiBEYXRhc291cmNlVHlwZTxUPjtcblxuICBASW5wdXQoKSBleHRyYUZpbHRlciE6IGFueTtcblxuICBASW5wdXQoKSB0cmFuc2Zvcm1Gbj86IChkYXRhOiBUKSA9PiB1bmtub3duO1xuXG4gIHByaXZhdGUgdGFibGVDb21wb25lbnQgPSBpbmplY3Q8VGFibGVDb3JlPFQ+PihUQUJMRV9DT01QT05FTlRfVE9LRU4sIHtcbiAgICBzZWxmOiB0cnVlLFxuICB9KTtcbiAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgaHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSBiYXNlVXJsOiBzdHJpbmcgPSBpbmplY3QoQkFTRV9VUkxfUEFUSCk7XG5cbiAgcHJpdmF0ZSBkYXRhU291cmNlU2VydmljZT86IERhdGFTb3VyY2VGdW5jdGlvblR5cGU8VD47XG4gIHByaXZhdGUgcGFyYW1ldGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8RXh0ZW5kZWRSZXF1ZXN0VHlwZTxUPj4+KHt9KTtcblxuICBwYXJhbXMkID0gdGhpcy5wYXJhbWV0ZXJzJC5hc09ic2VydmFibGUoKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGFibGVOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb3BlcnR5IHRhYmxlTmFtZSBtdXN0IGJlIGRlZmluZWQuJyk7XG4gICAgfVxuXG4gICAgdGhpcy50YWJsZUNvbXBvbmVudC5sYXp5TG9hZC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKHZhbHVlOiBMYXp5TG9hZEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLnBhcmFtZXRlcnMkLm5leHQoe1xuICAgICAgICBvZmZzZXQ6IHZhbHVlPy5vZmZzZXQsXG4gICAgICAgIGxpbWl0OiB2YWx1ZT8ubGltaXQsXG4gICAgICAgIGZpbHRlcjogeyAuLi52YWx1ZT8uZmlsdGVyLCAuLi50aGlzLmV4dHJhRmlsdGVyIH0sXG4gICAgICAgIHNvcnQ6IHZhbHVlPy5zb3J0LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICAgIG1hcCgocmVxdWVzdCkgPT5cbiAgICAgICAgICBub3JtYWxpemVSZXF1ZXN0KHtcbiAgICAgICAgICAgIC4uLnJlcXVlc3QsXG4gICAgICAgICAgICBmaWx0ZXI6IHsgLi4ucmVxdWVzdC5maWx0ZXIsIC4uLnRoaXMuZXh0cmFGaWx0ZXIgfSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlQ29tcG9uZW50KHRoaXMudGFibGVDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGxhenk6IHRydWUsXG4gICAgICAgICAgICBsb2FkaW5nOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChyZXF1ZXN0KSA9PlxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2VcbiAgICAgICAgICAgID8gdGhpcy5kYXRhU291cmNlU2VydmljZShyZXF1ZXN0KS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+ICh7IHJlcXVlc3QsIHJlc3BvbnNlIH0pKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IG9mKHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiBbXSBhcyBUW10sXG4gICAgICAgICAgICAgICAgICB0b3RhbDogMCxcbiAgICAgICAgICAgICAgICAgIGxpbWl0OiByZXF1ZXN0LmxpbWl0LFxuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiByZXF1ZXN0Lm9mZnNldCxcbiAgICAgICAgICAgICAgICB9IGFzIFBhZ2U8VD4sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICAgIGNhdGNoRXJyb3IoKHJlcXVlc3QpID0+IHtcbiAgICAgICAgICB0aGlzLmNoYW5nZUNvbXBvbmVudCh0aGlzLnRhYmxlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gb2Yoe1xuICAgICAgICAgICAgcmVxdWVzdDogcmVxdWVzdCBhcyBFeHRlbmRlZFJlcXVlc3RUeXBlPFQ+LFxuICAgICAgICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgICAgICAgZGF0YTogW10gYXMgVFtdLFxuICAgICAgICAgICAgICB0b3RhbDogMCxcbiAgICAgICAgICAgICAgbGltaXQ6IHJlcXVlc3QubGltaXQsXG4gICAgICAgICAgICAgIG9mZnNldDogcmVxdWVzdC5vZmZzZXQsXG4gICAgICAgICAgICB9IGFzIFBhZ2U8VD4sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh7IHJlcXVlc3QsIHJlc3BvbnNlIH0pID0+XG4gICAgICAgIHRoaXMuc2V0RGF0YVRvQ29udHJvbChyZXF1ZXN0LCByZXNwb25zZSlcbiAgICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGFzb3VyY2UnXSkge1xuICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZSA9IGNvbnZlcnREYXRhc291cmNlKFxuICAgICAgICB0aGlzLmRhdGFzb3VyY2UsXG4gICAgICAgIHRoaXMuYmFzZVVybCxcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50XG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy5hdXRvQmluZCkge1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMkLm5leHQoeyBvZmZzZXQ6IDAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVsb2FkKCkge1xuICAgIHRoaXMucGFyYW1ldGVycyQubmV4dCh7IC4uLnRoaXMucGFyYW1ldGVycyQudmFsdWUgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZUNvbXBvbmVudChcbiAgICBjb21wb25lbnQ6IFRhYmxlQ29yZTxUPixcbiAgICB2YWx1ZTogUGFydGlhbDxUYWJsZUNvcmU8VD4+XG4gICkge1xuICAgIHNldENvbXBvbmVudFByb3BlcnRpZXMoY29tcG9uZW50LCB2YWx1ZSk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldERhdGFUb0NvbnRyb2wocmVxdWVzdDogUmVxdWVzdFBhcmFtczxUPiwgcmVzdWx0OiBQYWdlPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgZGF0YSA9IHJlc3VsdC5kYXRhO1xuICAgIGNvbnN0IHRvdGFsID0gcmVzdWx0LnRvdGFsO1xuICAgIGNvbnN0IHRyYW5zZmVyZWREYXRhID0gdGhpcy50cmFuc2Zvcm1GbiA/IGRhdGEubWFwKCh4KSA9PiB0aGlzLnRyYW5zZm9ybUZuPy4oeCkpIDogZGF0YTtcblxuICAgIHRoaXMuY2hhbmdlQ29tcG9uZW50KHRoaXMudGFibGVDb21wb25lbnQsIHtcbiAgICAgIGxhenk6ICFpc0ZpbHRlckVtcHR5KHJlcXVlc3QuZmlsdGVyKSB8fCBkYXRhPy5sZW5ndGggPCB0b3RhbCB8fCB0aGlzLmRhdGFzb3VyY2UgaW5zdGFuY2VvZiBCYXNlSHR0cFNlcnZpY2UsXG4gICAgICBkYXRhOiB0cmFuc2ZlcmVkRGF0YSBhcyBUW10sXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgIHRvdGFsLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Directive, HostListener, Input } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class ButtonShortCutDirective {\n shortCutFn;\n shortCutKey;\n keyMap = {};\n onKeyDown(event) {\n this.keyMap[event.key.toLowerCase()] = true;\n this.checkShortcut();\n }\n onKeyUp(event) {\n this.keyMap[event.key.toLowerCase()] = false;\n }\n checkShortcut() {\n if (this.shortCutKey && this.shortCutFn) {\n const keys = this.shortCutKey.toLowerCase().split('+');\n const isShortcutPressed = keys.every((key) => this.keyMap[key]);\n if (isShortcutPressed) {\n this.shortCutFn?.();\n keys.forEach((key) => (this.keyMap[key] = false));\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: ButtonShortCutDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: ButtonShortCutDirective, isStandalone: true, selector: \"v-button[useShortCut]\", inputs: { shortCutFn: \"shortCutFn\", shortCutKey: \"shortCutKey\" }, host: { listeners: { \"document:keydown\": \"onKeyDown($event)\", \"document:keyup\": \"onKeyUp($event)\" } }, exportAs: [\"useShortCut\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: ButtonShortCutDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-button[useShortCut]',\n exportAs: 'useShortCut',\n standalone: true,\n }]\n }], propDecorators: { shortCutFn: [{\n type: Input\n }], shortCutKey: [{\n type: Input\n }], onKeyDown: [{\n type: HostListener,\n args: ['document:keydown', ['$event']]\n }], onKeyUp: [{\n type: HostListener,\n args: ['document:keyup', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnRjdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2hvcnRjdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRN0QsTUFBTSxPQUFPLHVCQUF1QjtJQUV4QixVQUFVLENBQWM7SUFDeEIsV0FBVyxDQUFVO0lBRXRCLE1BQU0sR0FBK0IsRUFBRSxDQUFDO0lBR2hELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxPQUFPLENBQUMsS0FBb0I7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQy9DLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEUsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3VHQTNCUyx1QkFBdUI7MkZBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFOckMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBR1csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPNUMsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ3YtYnV0dG9uW3VzZVNob3J0Q3V0XScsXG4gICAgZXhwb3J0QXM6ICd1c2VTaG9ydEN1dCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgfSlcbiAgZXhwb3J0IGNsYXNzIEJ1dHRvblNob3J0Q3V0RGlyZWN0aXZlXG4gIHtcbiAgICAgQElucHV0KCkgc2hvcnRDdXRGbj86ICgpID0+IHZvaWQ7XG4gICAgIEBJbnB1dCgpIHNob3J0Q3V0S2V5ITogc3RyaW5nO1xuXG4gICAgIHByaXZhdGUga2V5TWFwOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICB0aGlzLmtleU1hcFtldmVudC5rZXkudG9Mb3dlckNhc2UoKV0gPSB0cnVlO1xuICAgICAgIHRoaXMuY2hlY2tTaG9ydGN1dCgpO1xuICAgICB9XG4gICBcbiAgICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5dXAnLCBbJyRldmVudCddKVxuICAgICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgdGhpcy5rZXlNYXBbZXZlbnQua2V5LnRvTG93ZXJDYXNlKCldID0gZmFsc2U7XG4gICAgIH1cblxuICAgICBwcml2YXRlIGNoZWNrU2hvcnRjdXQoKSB7XG4gICAgICAgaWYgKHRoaXMuc2hvcnRDdXRLZXkgJiYgdGhpcy5zaG9ydEN1dEZuKSB7XG4gICAgICAgICBjb25zdCBrZXlzID0gdGhpcy5zaG9ydEN1dEtleS50b0xvd2VyQ2FzZSgpLnNwbGl0KCcrJyk7XG4gICAgICAgICBjb25zdCBpc1Nob3J0Y3V0UHJlc3NlZCA9IGtleXMuZXZlcnkoKGtleSkgPT4gdGhpcy5rZXlNYXBba2V5XSk7ICAgXG4gICAgICAgICBpZiAoaXNTaG9ydGN1dFByZXNzZWQpIHtcbiAgICAgICAgICAgdGhpcy5zaG9ydEN1dEZuPy4oKTtcbiAgICAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+ICh0aGlzLmtleU1hcFtrZXldID0gZmFsc2UpKTtcbiAgICAgICAgIH1cbiAgICAgICB9XG4gICAgIH1cbn0iXX0=","import { ChangeDetectorRef, Directive, inject, Input, } from '@angular/core';\nimport { debounceTime, Subject } from 'rxjs';\nimport { DEFAULT_DEBOUNCE_TIME, setComponentProperties } from '../common';\nimport { TABLE_COMPONENT_TOKEN } from '../components';\nimport * as i0 from \"@angular/core\";\nexport class TableFilterDirective {\n filterComponent;\n filterChange$ = new Subject();\n subscription = undefined;\n tableComponent = inject(TABLE_COMPONENT_TOKEN);\n changeDetectorRef = inject(ChangeDetectorRef);\n ngOnChanges(changes) {\n if (changes['filterComponent']) {\n this.unRegister();\n this.register();\n }\n }\n onFilterChange(value) {\n if (this.tableComponent?.filter !== value) {\n setComponentProperties(this.tableComponent, {\n filter: value,\n currentPage: 1,\n });\n this.changeDetectorRef.detectChanges();\n }\n }\n ngOnDestroy() {\n this.unRegister();\n }\n unRegister() {\n this.subscription?.unsubscribe();\n }\n register() {\n this.filterComponent.registerOnChange((value) => {\n this.filterChange$.next(value);\n });\n this.subscription = this.filterChange$\n .pipe(debounceTime(this.filterComponent.debounceTime ? 0 : DEFAULT_DEBOUNCE_TIME))\n .subscribe((value) => this.onFilterChange(value));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.2.1\", type: TableFilterDirective, isStandalone: true, selector: \"v-table[useFilter]\", inputs: { filterComponent: \"filterComponent\" }, exportAs: [\"tableFilterDirective\"], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: TableFilterDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table[useFilter]',\n standalone: true,\n exportAs: 'tableFilterDirective',\n }]\n }], propDecorators: { filterComponent: [{\n type: Input,\n args: [{ required: true }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL3RhYmxlLWZpbHRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFFLE9BQU8sRUFBYyxxQkFBcUIsRUFBYSxNQUFNLGVBQWUsQ0FBQzs7QUFRN0UsTUFBTSxPQUFPLG9CQUFvQjtJQUNKLGVBQWUsQ0FBYztJQUVoRCxhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUssQ0FBQztJQUNqQyxZQUFZLEdBQTZCLFNBQVMsQ0FBQztJQUVuRCxjQUFjLEdBQUcsTUFBTSxDQUFlLHFCQUFxQixDQUFDLENBQUM7SUFFN0QsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFdEQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQVE7UUFDN0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMxQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUMxQyxNQUFNLEVBQUUsS0FBSztnQkFDYixXQUFXLEVBQUUsQ0FBQzthQUNmLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sUUFBUTtRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxLQUFRLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWE7YUFDbkMsSUFBSSxDQUNILFlBQVksQ0FDVixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FDOUQsQ0FDRjthQUNBLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7dUdBaERVLG9CQUFvQjsyRkFBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQU5oQyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDOzhCQUU0QixlQUFlO3NCQUF6QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERFRkFVTFRfREVCT1VOQ0VfVElNRSwgc2V0Q29tcG9uZW50UHJvcGVydGllcyB9IGZyb20gJy4uL2NvbW1vbic7XHJcbmltcG9ydCB7IEZpbHRlckNvcmUsIFRBQkxFX0NPTVBPTkVOVF9UT0tFTiwgVGFibGVDb3JlIH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAndi10YWJsZVt1c2VGaWx0ZXJdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGV4cG9ydEFzOiAndGFibGVGaWx0ZXJEaXJlY3RpdmUnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVGaWx0ZXJEaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZmlsdGVyQ29tcG9uZW50ITogRmlsdGVyQ29yZTtcclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJDaGFuZ2UkID0gbmV3IFN1YmplY3Q8VD4oKTtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICBwcml2YXRlIHRhYmxlQ29tcG9uZW50ID0gaW5qZWN0PFRhYmxlQ29yZTxUPj4oVEFCTEVfQ09NUE9ORU5UX1RPS0VOKTtcclxuXHJcbiAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJDb21wb25lbnQnXSkge1xyXG4gICAgICB0aGlzLnVuUmVnaXN0ZXIoKTtcclxuICAgICAgdGhpcy5yZWdpc3RlcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkZpbHRlckNoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGFibGVDb21wb25lbnQ/LmZpbHRlciAhPT0gdmFsdWUpIHtcclxuICAgICAgc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzLnRhYmxlQ29tcG9uZW50LCB7XHJcbiAgICAgICAgZmlsdGVyOiB2YWx1ZSxcclxuICAgICAgICBjdXJyZW50UGFnZTogMSxcclxuICAgICAgfSk7XHJcbiAgICAgIFxyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51blJlZ2lzdGVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVuUmVnaXN0ZXIoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVnaXN0ZXIoKSB7XHJcbiAgICB0aGlzLmZpbHRlckNvbXBvbmVudC5yZWdpc3Rlck9uQ2hhbmdlKCh2YWx1ZTogVCkgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlckNoYW5nZSQubmV4dCh2YWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZmlsdGVyQ2hhbmdlJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBkZWJvdW5jZVRpbWUoXHJcbiAgICAgICAgICB0aGlzLmZpbHRlckNvbXBvbmVudC5kZWJvdW5jZVRpbWUgPyAwIDogREVGQVVMVF9ERUJPVU5DRV9USU1FXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLm9uRmlsdGVyQ2hhbmdlKHZhbHVlKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","export const ErrorCodesFns = {\n required: () => `This field is required!`,\n email: () => `Email is in wrong format!`,\n iban: () => `IBAN is in wrong format!`,\n lowStrength: () => `Password too weak!`,\n customPasswordRequirements: () => `Password does not meet minimal requirements.`,\n fieldsNotMatching: () => `Passwords are not the same!`,\n validationError: (value) => `${value}`,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91aS1jb3JlL3NyYy9saWIvcGlwZXMvZXJyb3IvZXJyb3IuY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFvQztJQUM1RCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMseUJBQXlCO0lBQ3pDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQywyQkFBMkI7SUFDeEMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLDBCQUEwQjtJQUN0QyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CO0lBQ3ZDLDBCQUEwQixFQUFFLEdBQUcsRUFBRSxDQUFDLDhDQUE4QztJQUNoRixpQkFBaUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyw2QkFBNkI7SUFDdEQsZUFBZSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRTtDQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBFcnJvckNvZGVzRm4gPSAodmFsdWU/OiBhbnkpID0+IHN0cmluZztcblxuZXhwb3J0IGNvbnN0IEVycm9yQ29kZXNGbnM6IHsgW2tleTogc3RyaW5nXTogRXJyb3JDb2Rlc0ZuIH0gPSB7XG4gIHJlcXVpcmVkOiAoKSA9PiBgVGhpcyBmaWVsZCBpcyByZXF1aXJlZCFgLFxuICBlbWFpbDogKCkgPT4gYEVtYWlsIGlzIGluIHdyb25nIGZvcm1hdCFgLFxuICBpYmFuOiAoKSA9PiBgSUJBTiBpcyBpbiB3cm9uZyBmb3JtYXQhYCxcbiAgbG93U3RyZW5ndGg6ICgpID0+IGBQYXNzd29yZCB0b28gd2VhayFgLFxuICBjdXN0b21QYXNzd29yZFJlcXVpcmVtZW50czogKCkgPT4gYFBhc3N3b3JkIGRvZXMgbm90IG1lZXQgbWluaW1hbCByZXF1aXJlbWVudHMuYCxcbiAgZmllbGRzTm90TWF0Y2hpbmc6ICgpID0+IGBQYXNzd29yZHMgYXJlIG5vdCB0aGUgc2FtZSFgLFxuICB2YWxpZGF0aW9uRXJyb3I6ICh2YWx1ZTogYW55KSA9PiBgJHt2YWx1ZX1gLFxufTtcbiJdfQ==","export function getFirstErrorFromControl(control) {\n if (!control || !control.errors) {\n return null;\n }\n const errors = control.errors ?? false;\n if (errors) {\n const key = Object.keys(control.errors)[0];\n const value = control.errors[key];\n return { key, value };\n }\n return null;\n}\nexport function getFirstError(errors) {\n if (errors) {\n const key = Object.keys(errors)[0];\n const value = errors[key];\n return { key, value };\n }\n return null;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL3BpcGVzL2Vycm9yL2Vycm9yLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLE9BQVU7SUFFVixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO0lBQ3ZDLElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBd0I7SUFDcEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxudHlwZSBFcnJvclZhbHVlID0geyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9IHwgbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RXJyb3JGcm9tQ29udHJvbDxUIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPihcbiAgY29udHJvbDogVFxuKTogRXJyb3JWYWx1ZSB7XG4gIGlmICghY29udHJvbCB8fCAhY29udHJvbC5lcnJvcnMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBlcnJvcnMgPSBjb250cm9sLmVycm9ycyA/PyBmYWxzZTtcbiAgaWYgKGVycm9ycykge1xuICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKVswXTtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wuZXJyb3JzW2tleV07XG4gICAgcmV0dXJuIHsga2V5LCB2YWx1ZSB9O1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3RFcnJvcihlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMpOiBFcnJvclZhbHVlIHtcbiAgaWYgKGVycm9ycykge1xuICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKGVycm9ycylbMF07XG4gICAgY29uc3QgdmFsdWUgPSBlcnJvcnNba2V5XTtcbiAgICByZXR1cm4geyBrZXksIHZhbHVlIH07XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iXX0=","import { Pipe } from '@angular/core';\nimport { ErrorCodesFns } from './error.codes';\nimport { getFirstError } from './error.models';\nimport * as i0 from \"@angular/core\";\nconst EMPTY = '';\nexport class ErrorPipe {\n transform(errors) {\n if (!errors) {\n return EMPTY;\n }\n const error = getFirstError(errors);\n if (error) {\n const errorFn = ErrorCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return ErrorCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: ErrorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.2.1\", ngImport: i0, type: ErrorPipe, isStandalone: true, name: \"error\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: ErrorPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'error',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9waXBlcy9lcnJvci9lcnJvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUUvQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFNakIsTUFBTSxPQUFPLFNBQVM7SUFDcEIsU0FBUyxDQUFDLE1BQTJDO1FBQ25ELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VHQWRVLFNBQVM7cUdBQVQsU0FBUzs7MkZBQVQsU0FBUztrQkFKckIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsT0FBTztvQkFDYixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JDb2Rlc0ZucyB9IGZyb20gJy4vZXJyb3IuY29kZXMnO1xuaW1wb3J0IHsgZ2V0Rmlyc3RFcnJvciB9IGZyb20gJy4vZXJyb3IubW9kZWxzJztcblxuY29uc3QgRU1QVFkgPSAnJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZXJyb3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFcnJvclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IHVuZGVmaW5lZCB8IG51bGwpOiBzdHJpbmcge1xuICAgIGlmICghZXJyb3JzKSB7XG4gICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuICAgIGNvbnN0IGVycm9yID0gZ2V0Rmlyc3RFcnJvcihlcnJvcnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY29uc3QgZXJyb3JGbiA9IEVycm9yQ29kZXNGbnNbZXJyb3Iua2V5XTtcbiAgICAgIGlmICghZXJyb3JGbikge1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9XG4gICAgICByZXR1cm4gRXJyb3JDb2Rlc0Zuc1tlcnJvci5rZXldKGVycm9yLnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIEVNUFRZO1xuICB9XG59XG4iXX0=","export const WarningCodesFns = {\n validationWarning: (value) => `${value}`,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FybmluZy5jb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL2xpYi9waXBlcy9lcnJvci93YXJuaW5nLmNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBc0M7SUFDaEUsaUJBQWlCLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFdhcm5pbmdDb2Rlc0ZuID0gKHZhbHVlPzogYW55KSA9PiBzdHJpbmc7XG5cbmV4cG9ydCBjb25zdCBXYXJuaW5nQ29kZXNGbnM6IHsgW2tleTogc3RyaW5nXTogV2FybmluZ0NvZGVzRm4gfSA9IHtcbiAgdmFsaWRhdGlvbldhcm5pbmc6ICh2YWx1ZTogYW55KSA9PiBgJHt2YWx1ZX1gLFxufTtcbiJdfQ==","import { Pipe } from '@angular/core';\nimport { getFirstError } from './error.models';\nimport { WarningCodesFns } from './warning.codes';\nimport * as i0 from \"@angular/core\";\nconst EMPTY = '';\nexport class WarningPipe {\n transform(warnings) {\n if (!warnings) {\n return EMPTY;\n }\n const error = getFirstError(warnings);\n if (error) {\n const errorFn = WarningCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return WarningCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: WarningPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.2.1\", ngImport: i0, type: WarningPipe, isStandalone: true, name: \"warning\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: WarningPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'warning',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FybmluZy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL3BpcGVzL2Vycm9yL3dhcm5pbmcucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUVsRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFNakIsTUFBTSxPQUFPLFdBQVc7SUFDdEIsU0FBUyxDQUFDLFFBQTZDO1FBQ3JELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VHQWRVLFdBQVc7cUdBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFKdkIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztvQkFDZixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZ2V0Rmlyc3RFcnJvciB9IGZyb20gJy4vZXJyb3IubW9kZWxzJztcbmltcG9ydCB7IFdhcm5pbmdDb2Rlc0ZucyB9IGZyb20gJy4vd2FybmluZy5jb2Rlcyc7XG5cbmNvbnN0IEVNUFRZID0gJyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3dhcm5pbmcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBXYXJuaW5nUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0od2FybmluZ3M6IFZhbGlkYXRpb25FcnJvcnMgfCB1bmRlZmluZWQgfCBudWxsKTogc3RyaW5nIHtcbiAgICBpZiAoIXdhcm5pbmdzKSB7XG4gICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuICAgIGNvbnN0IGVycm9yID0gZ2V0Rmlyc3RFcnJvcih3YXJuaW5ncyk7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnJvckZuID0gV2FybmluZ0NvZGVzRm5zW2Vycm9yLmtleV07XG4gICAgICBpZiAoIWVycm9yRm4pIHtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFdhcm5pbmdDb2Rlc0Zuc1tlcnJvci5rZXldKGVycm9yLnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIEVNUFRZO1xuICB9XG59XG4iXX0=","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class KeyOrFunctionPipe {\n transform(keyOrFn, row) {\n if (keyOrFn instanceof Function) {\n return keyOrFn(row);\n }\n else if (typeof keyOrFn === 'string') {\n const value = row[keyOrFn];\n if (value) {\n return value;\n }\n }\n else if (typeof keyOrFn === 'boolean') {\n return keyOrFn;\n }\n return '';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: KeyOrFunctionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.2.1\", ngImport: i0, type: KeyOrFunctionPipe, isStandalone: true, name: \"keyOrFn\", pure: false });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: KeyOrFunctionPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'keyOrFn',\n pure: false,\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5T3JGbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL3BpcGVzL2tleU9yRm4va2V5T3JGbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixTQUFTLENBQUMsT0FBWSxFQUFFLEdBQVE7UUFDOUIsSUFBSSxPQUFPLFlBQVksUUFBUSxFQUFFLENBQUM7WUFDaEMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEIsQ0FBQzthQUFNLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNCLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksT0FBTyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzt1R0FiVSxpQkFBaUI7cUdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFMN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztvQkFDZixJQUFJLEVBQUUsS0FBSztvQkFDWCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2tleU9yRm4nLFxuICBwdXJlOiBmYWxzZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgS2V5T3JGdW5jdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGtleU9yRm46IGFueSwgcm93OiBhbnkpOiBhbnkge1xuICAgIGlmIChrZXlPckZuIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiBrZXlPckZuKHJvdyk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Yga2V5T3JGbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcm93W2tleU9yRm5dO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBrZXlPckZuID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBrZXlPckZuO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiJdfQ==","import { Pipe } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class EnumToListPipe {\n transform(data) {\n return Object.keys(data)\n .filter(key => isNaN(Number(key)))\n .map(key => ({\n label: key,\n value: data[key],\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: EnumToListPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.2.1\", ngImport: i0, type: EnumToListPipe, isStandalone: true, name: \"enumToList\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.2.1\", ngImport: i0, type: EnumToListPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'enumToList',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bVRvTGlzdC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL3BpcGVzL2hlbHBlci9lbnVtVG9MaXN0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFNBQVMsQ0FBQyxJQUFTO1FBQ2YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNuQixNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDakMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNULEtBQUssRUFBRSxHQUFHO1lBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUF3QixDQUFDO1NBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1osQ0FBQzt1R0FSUSxjQUFjO3FHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBSjFCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2VudW1Ub0xpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVudW1Ub0xpc3RQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGRhdGE6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEpXG4gICAgICAgICAgICAuZmlsdGVyKGtleSA9PiBpc05hTihOdW1iZXIoa2V5KSkpXG4gICAgICAgICAgICAubWFwKGtleSA9PiAoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiBrZXksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGRhdGFba2V5IGFzIGtleW9mIHR5cGVvZiBkYXRhXSxcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG59Il19","import { toCzechDateTimeString } from \"@verisoft/core\";\n/* eslint-disable @typescript-eslint/ban-types */\nexport class Format {\n static concatArray(value, itemFormatter, delimeter = ';') {\n if (!value) {\n return '';\n }\n return value\n .map(item => itemFormatter ? itemFormatter(item) : item)\n .filter(item => item !== undefined && item !== null)\n .join(`${delimeter} `);\n }\n static czechDate(value) {\n return toCzechDateTimeString(value);\n }\n static date(value) {\n if (!value) {\n return '';\n }\n if (typeof value === 'string') {\n value = new Date(value);\n }\n return value.getDate() + '. ' + (value.getMonth() + 1) + '. ' + value.getFullYear();\n }\n static dateAndTime(value) {\n if (!value) {\n return '';\n }\n if (typeof value === 'string') {\n value = new Date(value);\n }\n return ('0' + value.getDate()).slice(-2)\n + '.' + ('0' + (value.getMonth() + 1)).slice(-2)\n + '.' + value.getFullYear() + ' ' + ('0' + value.getHours()).slice(-2)\n + ':' + ('0' + value.getMinutes()).slice(-2) + ':' + ('0' + value.getSeconds()).slice(-2);\n }\n static convertToUserLocaleDate(value) {\n if (!value) {\n return '';\n }\n if (typeof value === 'string') {\n value = new Date(value);\n }\n return value.toLocaleDateString(navigator.language, { timeZone: 'UTC' });\n }\n static bool(value) {\n if (value) {\n return 'Yes';\n }\n else {\n return 'No';\n }\n }\n static boolWithIcon(value) {\n if (value) {\n return `<span>✓</span>`;\n }\n else {\n return `<span>⨯</span>`;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdWktY29yZS9zcmMvbGliL2Zvcm1hdC9mb3JtYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsaURBQWlEO0FBQ2pELE1BQU0sT0FBTyxNQUFNO0lBQ2YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFZLEVBQUUsYUFBd0IsRUFBRSxTQUFTLEdBQUcsR0FBRztRQUN0RSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLEtBQUs7YUFDUCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2FBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQzthQUNuRCxJQUFJLENBQUMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQW9CO1FBQ2pDLE9BQU8scUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1QsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hGLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQW9CO1FBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztjQUNsQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Y0FDOUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2NBQ3BFLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFxQjtRQUNoRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQWM7UUFDdEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLE9BQU8sZ0JBQWdCLENBQUM7UUFDNUIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLGdCQUFnQixDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b0N6ZWNoRGF0ZVRpbWVTdHJpbmcgfSBmcm9tIFwiQHZlcmlzb2Z0L2NvcmVcIjtcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcyAqL1xuZXhwb3J0IGNsYXNzIEZvcm1hdCB7XG4gICAgc3RhdGljIGNvbmNhdEFycmF5KHZhbHVlOiBhbnlbXSwgaXRlbUZvcm1hdHRlcj86IEZ1bmN0aW9uLCBkZWxpbWV0ZXIgPSAnOycpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAubWFwKGl0ZW0gPT4gaXRlbUZvcm1hdHRlciA/IGl0ZW1Gb3JtYXR0ZXIoaXRlbSkgOiBpdGVtKVxuICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0gIT09IHVuZGVmaW5lZCAmJiBpdGVtICE9PSBudWxsKVxuICAgICAgICAgICAgLmpvaW4oYCR7ZGVsaW1ldGVyfSBgKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgY3plY2hEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0b0N6ZWNoRGF0ZVRpbWVTdHJpbmcodmFsdWUpO1xuICAgIH1cblxuICAgIHN0YXRpYyBkYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZS5nZXREYXRlKCkgKyAnLiAnICsgKHZhbHVlLmdldE1vbnRoKCkgKyAxKSArICcuICcgKyB2YWx1ZS5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIHN0YXRpYyBkYXRlQW5kVGltZSh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKCcwJyArIHZhbHVlLmdldERhdGUoKSkuc2xpY2UoLTIpXG4gICAgICAgICAgICArICcuJyArICgnMCcgKyAodmFsdWUuZ2V0TW9udGgoKSArIDEpKS5zbGljZSgtMilcbiAgICAgICAgICAgICsgJy4nICsgdmFsdWUuZ2V0RnVsbFllYXIoKSArICcgJyArICgnMCcgKyB2YWx1ZS5nZXRIb3VycygpKS5zbGljZSgtMilcbiAgICAgICAgICAgICsgJzonICsgKCcwJyArIHZhbHVlLmdldE1pbnV0ZXMoKSkuc2xpY2UoLTIpICsgJzonICsgKCcwJyArIHZhbHVlLmdldFNlY29uZHMoKSkuc2xpY2UoLTIpO1xuICAgIH1cblxuICAgIHN0YXRpYyBjb252ZXJ0VG9Vc2VyTG9jYWxlRGF0ZSh2YWx1ZT86IERhdGUgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZyhuYXZpZ2F0b3IubGFuZ3VhZ2UsIHsgdGltZVpvbmU6ICdVVEMnIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBib29sKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuICdZZXMnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdObyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgYm9vbFdpdGhJY29uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGA8c3Bhbj7inJM8L3NwYW4+YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgPHNwYW4+4qivPC9zcGFuPmA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaXNvZnQtdWktY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3VpLWNvcmUvc3JjL3Zlcmlzb2Z0LXVpLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1","i2.PageHeaderService","i1.SideMenuService","EMPTY"],"mappings":"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"}
1
+ {"version":3,"file":"verisoft-ui-core.mjs","sources":["../../../../../src/libs/ui-core/src/lib/common/angular-helper.ts","../../../../../src/libs/ui-core/src/lib/common/control.models.ts","../../../../../src/libs/ui-core/src/lib/common/constants.ts","../../../../../src/libs/ui-core/src/lib/common/datasource-component.model.ts","../../../../../src/libs/ui-core/src/lib/common/filter.ts","../../../../../src/libs/ui-core/src/lib/common/rxjs.ts","../../../../../src/libs/ui-core/src/lib/common/download-file.ts","../../../../../src/libs/ui-core/src/lib/components/action-button-group/action-button-group.model.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/base-form-input.component.ts","../../../../../src/libs/ui-core/src/lib/services/screen-size.service.ts","../../../../../src/libs/ui-core/src/lib/services/confirm-dialog.service.ts","../../../../../src/libs/ui-core/src/lib/services/leave-form.service.ts","../../../../../src/libs/ui-core/src/lib/services/table.service.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/models/base-form-input.models.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/models/base-form.models.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/base-form.component.ts","../../../../../src/libs/ui-core/src/lib/components/unsubscribe.component.ts","../../../../../src/libs/ui-core/src/lib/components/base-form/directives/detail-store.directive.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumb.model.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumb.service.ts","../../../../../src/libs/ui-core/src/lib/components/breadcrumb/breadcrumbcore.component.ts","../../../../../src/libs/ui-core/src/lib/components/button/button.model.ts","../../../../../src/libs/ui-core/src/lib/components/dropdown-button/dropdown-button.model.ts","../../../../../src/libs/ui-core/src/lib/components/calendar/calendar.model.ts","../../../../../src/libs/ui-core/src/lib/components/checkbox/checkbox.model.ts","../../../../../src/libs/ui-core/src/lib/components/confirm-dialog/confirm-dialog.model.ts","../../../../../src/libs/ui-core/src/lib/components/dropdown/dropdown.model.ts","../../../../../src/libs/ui-core/src/lib/components/filter/filter.model.ts","../../../../../src/libs/ui-core/src/lib/components/form-field/form-field.model.ts","../../../../../src/libs/ui-core/src/lib/components/generic-field/generic-field.model.ts","../../../../../src/libs/ui-core/src/lib/components/generic-form/generic-form.component.ts","../../../../../src/libs/ui-core/src/lib/components/header/header.model.ts","../../../../../src/libs/ui-core/src/lib/components/input-group/input-group.model.ts","../../../../../src/libs/ui-core/src/lib/components/loader/loader.model.ts","../../../../../src/libs/ui-core/src/lib/components/multiselect/mutiselect.model.ts","../../../../../src/libs/ui-core/src/lib/components/number-input/number-input.model.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-header.model.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-header.service.ts","../../../../../src/libs/ui-core/src/lib/components/page-header/page-headercore.component.ts","../../../../../src/libs/ui-core/src/lib/components/password/password.model.ts","../../../../../src/libs/ui-core/src/lib/components/radiobutton/radiobutton.model.ts","../../../../../src/libs/ui-core/src/lib/components/section/section.model.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/side-menu.model.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/services/side-menu.service.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/services/side-menu-provider.service.ts","../../../../../src/libs/ui-core/src/lib/components/side-menu/directives/side-menu-service.directive.ts","../../../../../src/libs/ui-core/src/lib/components/slider/slider.model.ts","../../../../../src/libs/ui-core/src/lib/components/snackbar/snackbar.model.ts","../../../../../src/libs/ui-core/src/lib/components/stepper/stepper.model.ts","../../../../../src/libs/ui-core/src/lib/components/switch/switch.model.ts","../../../../../src/libs/ui-core/src/lib/components/tab-view/tab-view.model.ts","../../../../../src/libs/ui-core/src/lib/components/table/table.models.ts","../../../../../src/libs/ui-core/src/lib/components/table/table-column.directive.ts","../../../../../src/libs/ui-core/src/lib/components/table/column-configuration.ts","../../../../../src/libs/ui-core/src/lib/components/table/table-builder.ts","../../../../../src/libs/ui-core/src/lib/components/table-filter/table-filter.model.ts","../../../../../src/libs/ui-core/src/lib/components/textarea/textarea.model.ts","../../../../../src/libs/ui-core/src/lib/components/textfield/textfield.model.ts","../../../../../src/libs/ui-core/src/lib/components/tooltip/tooltip.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.model.ts","../../../../../src/libs/ui-core/src/lib/components/icons/icons.component.ts","../../../../../src/libs/ui-core/src/lib/components/tag/tag.model.ts","../../../../../src/libs/ui-core/src/lib/directives/datasource.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/table-datasource.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/shortcut.directive.ts","../../../../../src/libs/ui-core/src/lib/directives/table-filter.directive.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.codes.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.models.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/error.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/warning.codes.ts","../../../../../src/libs/ui-core/src/lib/pipes/error/warning.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/keyOrFn/keyOrFn.pipe.ts","../../../../../src/libs/ui-core/src/lib/pipes/helper/enumToList.pipe.ts","../../../../../src/libs/ui-core/src/lib/format/format.ts","../../../../../src/libs/ui-core/src/verisoft-ui-core.ts"],"sourcesContent":["import { OnChanges, SimpleChange, SimpleChanges } from '@angular/core';\r\n\r\nexport function setComponentProperties<TComponent>(\r\n component: TComponent,\r\n value: Partial<TComponent>,\r\n firstChange = false\r\n) {\r\n if (!value || !component) {\r\n return;\r\n }\r\n\r\n const simpleChanges = Object.keys(value).reduce(\r\n (changes: SimpleChanges, property: string) => {\r\n const indexedComponent = component as unknown as {\r\n [key: string]: TComponent[keyof TComponent];\r\n };\r\n const indexedValue = value as unknown as {\r\n [key: string]: TComponent[keyof TComponent];\r\n };\r\n const previousValue = indexedComponent[property];\r\n const currentValue = indexedValue[\r\n property\r\n ] as TComponent[keyof TComponent];\r\n if (currentValue !== previousValue) {\r\n indexedComponent[property] = currentValue;\r\n const change = new SimpleChange(\r\n previousValue,\r\n currentValue,\r\n firstChange\r\n );\r\n\r\n return { ...changes, [property]: change };\r\n }\r\n\r\n return changes;\r\n },\r\n {}\r\n );\r\n\r\n const changeableComponent = component as unknown as OnChanges;\r\n if (changeableComponent['ngOnChanges']) {\r\n changeableComponent.ngOnChanges(simpleChanges);\r\n }\r\n}\r\n","export enum ControlSeverity {\r\n success = 'success',\r\n info = 'info',\r\n warning = 'warning',\r\n danger = 'danger',\r\n help = 'help',\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n contrast = 'contrast',\r\n}\r\n\r\nexport enum GovControlSeverity {\r\n primary = 'primary',\r\n secondary = 'secondary',\r\n neutral = 'neutral',\r\n error = 'error',\r\n success = 'success',\r\n warning = 'warning',\r\n}\r\n\r\nexport enum GovButtonType {\r\n solid = 'solid',\r\n outlined = \"outlined\",\r\n base = \"base\",\r\n link = \"link\"\r\n}\r\n\r\nexport enum IconPosition {\r\n left = 'left',\r\n right = 'right',\r\n}\r\n\r\nexport enum SlotPosition {\r\n top = 'top',\r\n bottom = 'bottom',\r\n}\r\n\r\nexport enum Position{\r\n top = 'top',\r\n bottom = 'bottom',\r\n left = 'left',\r\n right = 'right',\r\n}\r\n\r\nexport enum FieldSize {\r\n small = 'small',\r\n medium = 'medium',\r\n large = 'large',\r\n xl = 'xl',\r\n}\r\n\r\nexport enum FieldAlign {\r\n left = 'left',\r\n center = 'center',\r\n right = 'right',\r\n}\r\n\r\nexport enum FieldType {\r\n text = 'text',\r\n number = 'number',\r\n password = 'password',\r\n search = 'search',\r\n date = 'date',\r\n}\r\n\r\nexport enum LayoutType {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n\r\nexport type ControlSeverityType = keyof typeof ControlSeverity;\r\nexport type GovControlSeverityType = keyof typeof GovControlSeverity;\r\nexport type GovButtonTypeType = keyof typeof GovButtonType;\r\nexport type IconPositionType = keyof typeof IconPosition;\r\nexport type SlotPositionType = keyof typeof SlotPosition;\r\nexport type PositionType = keyof typeof Position;\r\nexport type FieldSizeType = keyof typeof FieldSize;\r\nexport type FieldAlignType = keyof typeof FieldAlign;\r\nexport type FieldTypeType = keyof typeof FieldType;\r\nexport type LayoutTypeType = keyof typeof LayoutType;\r\n","export const DEFAULT_DEBOUNCE_TIME = 300;\n\nexport const DEFAULT_PAGINATION = [10, 25, 50, 100];\n\nexport const MAX_COLUMN_CHAR_COUNT = 30;","import { EventEmitter, SimpleChanges } from '@angular/core';\r\nimport { FilterEvent, LazyLoadEvent, RequestParams } from '@verisoft/core';\r\n\r\nexport interface DataSourceComponentModel<TEntity> {\r\n ngOnChanges?: (changes: SimpleChanges) => void;\r\n lazy: boolean;\r\n loading: boolean;\r\n filter: boolean;\r\n options: TEntity[] | undefined;\r\n optionValue: string | undefined;\r\n optionLabel: string | undefined;\r\n showed: EventEmitter<any>;\r\n cleared: EventEmitter<any>;\r\n filtered: EventEmitter<FilterEvent>;\r\n lazyLoad: EventEmitter<LazyLoadEvent>;\r\n}\r\n\r\nexport function setDataToArray<T>(\r\n targetArray: (T | undefined)[] | undefined,\r\n data: T[],\r\n offset = 0,\r\n total: number | undefined = undefined,\r\n defaultItem: T | undefined = undefined\r\n): (T | undefined)[] {\r\n const totalItems = total ?? data.length + offset;\r\n if (!targetArray) {\r\n targetArray = Array(totalItems).fill(defaultItem);\r\n }\r\n\r\n if (targetArray.length < totalItems) {\r\n targetArray = targetArray.concat(\r\n new Array(totalItems - targetArray.length).fill(defaultItem)\r\n );\r\n }\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n targetArray[i + offset] = data[i] ?? defaultItem;\r\n }\r\n\r\n return targetArray;\r\n}\r\n\r\nexport type ExtendedRequestType<T> = RequestParams<T> & { useNewData: boolean}\r\n","export function isFilterEmpty<T>(filter: Partial<T> | undefined) {\r\n if (filter == undefined) {\r\n return true;\r\n }\r\n\r\n return !Object.entries(filter).some((x) => x[1] != undefined);\r\n}\r\n","import { QueryList } from '@angular/core';\r\nimport { debounceTime, map, merge, startWith, switchMap } from 'rxjs';\r\nimport { NotificableProperty } from './notificable-property.model';\r\n\r\nexport function queryListChanged<TEntity>(list: QueryList<TEntity>) {\r\n return list.changes.pipe(\r\n startWith({}),\r\n switchMap(() => {\r\n const actionPropertyChanges$ = list\r\n .toArray()\r\n .filter((action) => (<NotificableProperty>action).propertyChanged)\r\n .map((action) => (<NotificableProperty>action).propertyChanged);\r\n\r\n return merge(...actionPropertyChanges$).pipe(\r\n startWith({}),\r\n map(() => list.toArray())\r\n );\r\n }),\r\n debounceTime(50)\r\n );\r\n}\r\n","export function downloadText(\r\n filename: string,\r\n text: string,\r\n mimeType: string | undefined = 'text/plain'\r\n): void {\r\n const blob = new Blob([text], { type: mimeType });\r\n downloadFile(filename, blob);\r\n}\r\n\r\nexport function downloadFile(\r\n filename: string,\r\n blob: Blob\r\n): void {\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = filename;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { IconPositionType } from '../../common';\nimport { ActionButton } from './action-button.model';\n\nexport const ACTION_BUTTON_GROUP_COMPONENT_TOKEN =\n new InjectionToken<ActionButtonGroupCore>('ActionButtonGroupComponentToken');\n\nexport interface ActionButtonGroupCore {\n maxItems: number;\n maxItemsMobile: number;\n items: ActionButton[];\n menuIconPos: IconPositionType;\n menuIcon: string;\n label?: string;\n}\n","\nimport { Component, inject, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n FormControlDirective,\n FormControlName,\n FormGroupDirective,\n NgControl,\n NgModel,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { ERROR_PROVIDER_TOKEN } from '@verisoft/core';\nimport { BaseInputControls } from './models/base-form-input.models';\n\nconst noop = () => {\n /* */\n};\n\n@Component({\n template: '',\n imports: [ReactiveFormsModule]\n})\nexport class BaseFormInputComponent\n implements BaseInputControls<any>, ControlValueAccessor, OnInit\n{\n readonly ngControl?: NgControl;\n\n readonly errorService = inject(ERROR_PROVIDER_TOKEN);\n\n formControl!: FormControl;\n\n constructor(private readonly control: NgControl) {\n this.ngControl = control;\n if (this.control) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @Input()\n label?: string;\n\n @Input()\n required = false;\n\n @Input()\n readonly!: boolean;\n\n @Input()\n disabled!: boolean;\n\n @Input()\n tooltip!: string;\n\n @Input()\n formDisplay: 'flex' | 'block' = 'flex';\n\n @Input()\n clearable = true;\n\n @Input()\n placeholder?: string = '';\n\n @Input()\n testId?: string;\n\n inputId = Math.random().toString(36).substring(2);\n\n selectionChanged: any = noop;\n\n onTouch: any = noop;\n\n registerOnChange(fn: any): void {\n this.selectionChanged = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n writeValue(value: any): void {}\n\n ngOnInit(): void {\n if (this.ngControl) {\n if (this.ngControl instanceof FormControlName) {\n this.formControl =\n this.ngControl.control ||\n ((this.ngControl.formDirective as FormGroupDirective)?.form.controls[\n this.ngControl.name as string\n ] as FormControl);\n } else if (\n this.ngControl instanceof FormControlDirective ||\n this.ngControl instanceof NgModel\n ) {\n this.formControl = this.ngControl.control;\n if (this.ngControl instanceof NgModel) {\n this.formControl.valueChanges.subscribe(() =>\n this.ngControl?.viewToModelUpdate(this.control?.value)\n );\n }\n } else {\n this.formControl = new FormControl();\n }\n } else {\n this.formControl = new FormControl();\n }\n }\n\n isRequired() {\n if (this.ngControl) {\n const validator = this.ngControl?.control?.validator?.(\n {} as AbstractControl\n );\n return this.required || (validator && validator['required']);\n }\n return this.required;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ScreenSizeService {\n isMobileBlock = new BehaviorSubject<boolean>(false);\n prevState = false;\n\n constructor() {\n this.checkScreenSize();\n window.addEventListener('resize', async () => {\n await this.checkScreenSize();\n });\n }\n\n async checkScreenSize() {\n const isMobile = window.matchMedia('(max-width: 768px)').matches;\n if (isMobile !== this.prevState) {\n this.prevState = isMobile;\n this.isMobileBlock.next(isMobile);\n }\n }\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { ExtendedDialogData } from '../components';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n @Output() showEvent: EventEmitter<ExtendedDialogData> =\n new EventEmitter<ExtendedDialogData>();\n\n @Output() closeEvent: EventEmitter<null> = new EventEmitter();\n\n showDialog<TInputs, TOutputs>(data: ExtendedDialogData<TInputs, TOutputs>): void {\n const mappedData = this.mapInputAndOutpus(data);\n\n this.showEvent.emit({\n ...data,\n data: mappedData,\n });\n }\n\n private mapInputAndOutpus<TInputs, TOutputs>(\n data: ExtendedDialogData<TInputs, TOutputs>\n ): ExtendedDialogData<TInputs, TOutputs> {\n const inputsAndOutputs = data.data as TInputs & TOutputs;\n return {\n ...data.data,\n ...(Object.keys(inputsAndOutputs ?? {})\n .filter((key) => typeof inputsAndOutputs[key as keyof TOutputs] === 'function')\n .reduce((acc, key) => {\n acc[key] = (value: any) => {\n if (typeof inputsAndOutputs[key as keyof TOutputs] === 'function') {\n (inputsAndOutputs[key as keyof TOutputs] as (value: any) => void)(value);\n }\n };\n return acc;\n }, {} as Record<string, any>)),\n };\n }\n\n closeModal(): void {\n this.closeEvent.emit();\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject } from 'rxjs';\nimport { PreventUnsavedChangesCore, CommonIcons } from '../common';\nimport { DialogService } from './confirm-dialog.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PreventUnsavedChangesDirective implements CanDeactivate<PreventUnsavedChangesCore> {\n private dialogService = inject(DialogService);\n private translateService = inject(TranslateService);\n private readonly Icons!: CommonIcons;\n\n canDeactivate(component: PreventUnsavedChangesCore): Observable<boolean> | Promise<boolean> | boolean {\n if (!component || !component.canDeactivate) {\n return true;\n }\n const result = component.canDeactivate();\n return result;\n }\n\n showConfirmationDialog(): Observable<boolean> {\n const resultSubject = new Subject<boolean>();\n\n const title = this.translateService.instant('VALIDATIONS.UNSAVED_CHANGES');\n const message = this.translateService.instant('VALIDATIONS.LEAVING_UNSAVED_FORM');\n const leaveButton = this.translateService.instant('BUTTONS.LEAVE');\n const stayButton = this.translateService.instant('BUTTONS.STAY');\n\n this.dialogService.showDialog({\n title: title,\n headerIcon: this.Icons.infoCircle,\n innerHTML: `<p>${message}</p>`,\n showCancelButton: true,\n confirmButtonText: stayButton,\n cancelButtonText: leaveButton,\n confirmButtonFn: () => {\n resultSubject.next(false);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n cancelButtonFn: () => {\n resultSubject.next(true);\n resultSubject.complete();\n this.dialogService.closeModal();\n },\n });\n\n return resultSubject.asObservable();\n }\n}\n","import { Injectable, signal } from \"@angular/core\";\nimport { TableSignal } from \"../components\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TableService {\n readonly reload = signal<TableSignal | symbol>(Symbol())\n\n /**\n * If name is set, reload a specific table with the set`[tableName]`\n *\n * If name is NOT set, reload all tables in the current DOM\n * */\n forceReload(name?: string): void {\n if (name) {\n this.reload.set({ name: name, symbol: Symbol() });\n } else {\n this.reload.set(Symbol());\n }\n }\n}\n","import { NgControl } from '@angular/forms';\n\nexport abstract class BaseInputControls<T> {\n value?: T | null;\n\n readonly ngControl?: NgControl;\n\n readonly label?: string;\n\n readonly required!: boolean;\n}\n","export interface BaseFormCore {\n label?: string;\n required: boolean;\n readonly: boolean;\n tooltip: string;\n formDisplay: 'flex' | 'block';\n clearable: boolean;\n placeholder?: string\n testId?: string;\n}\n\nexport interface BaseFormDirectiveCore<T> {\n initialData: T | any;\n}\n\nexport interface FormState {\n dirty: boolean;\n valid: boolean;\n}\n\nexport function isFormStateEqual(current: FormState, other: FormState) {\n if (!current && !other) {\n return true;\n }\n\n if (current && other) {\n return current.dirty === other.dirty && current.valid === other.valid;\n }\n\n return false;\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Subject, takeUntil, filter, map, Observable } from 'rxjs';\nimport { PreventUnsavedChangesCore } from '../../common';\nimport { PreventUnsavedChangesDirective } from '../../services';\nimport { FormState, isFormStateEqual } from './models';\nimport { cloneDeep } from '@verisoft/core';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-baseForm]',\n standalone: true,\n})\nexport abstract class BaseFormDirective<T extends object>\n implements OnInit, OnChanges, OnDestroy, AfterViewInit, PreventUnsavedChangesCore\n{\n @Input() data!: T | any;\n @Output() dataChange = new EventEmitter<T>();\n @Output() statusChange = new EventEmitter<FormState>();\n @Output() formSubmit = new EventEmitter<T>();\n @Output() formClear = new EventEmitter<void>();\n\n formDestroyed$ = new Subject<void>();\n keys: { key: string; alias?: string; type?: string; readOnly: string }[] = [];\n formGroup!: FormGroup;\n cd = inject(ChangeDetectorRef);\n valueInitialization = false;\n lastState!: FormState;\n guardViewChild!: ViewChild;\n formSubmitted = false;\n protected guard = inject(PreventUnsavedChangesDirective);\n\n @HostListener('window:beforeunload', ['$event'])\n unloadHandler(event: BeforeUnloadEvent) {\n if (this.formGroup.dirty) {\n event.preventDefault();\n }\n }\n\n canDeactivate(): Observable<boolean> | Promise<boolean> | boolean {\n if (this.formGroup.dirty && !this.formSubmitted) {\n const result = this.guard.showConfirmationDialog();\n return result;\n }\n\n return true;\n }\n\n ngOnInit(): void {\n this.initializeFormGroup();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data'] && this.formGroup) {\n this.valueInitialization = true;\n const dirty = this.formGroup.dirty;\n\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n\n this.formGroup.updateValueAndValidity();\n if (!dirty) {\n this.formGroup.markAsPristine();\n }\n\n this.valueInitialization = false;\n this.createAndEmitIfFormStateChanged();\n }\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.formDestroyed$.next();\n this.formDestroyed$.complete();\n }\n\n abstract createFormGroup(): FormGroup;\n\n createCompleteData() {\n const change = this.toModel(this.formGroup?.value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(\n cloneDeep(this.data),\n cloneDeep(change)\n );\n\n return updatedData;\n }\n\n submit() {\n this.formSubmitted = true;\n this.formGroup.markAllAsTouched();\n if (!this.formGroup.invalid) {\n this.formSubmit.emit(this.createCompleteData());\n }\n this.formGroup.markAsPristine();\n }\n\n clear() {\n this.formClear.emit();\n }\n\n private initializeFormGroup() {\n this.formGroup = this.createFormGroup();\n this.valueInitialization = true;\n this.formGroup.patchValue(this.fromModel(this.data), {\n emitEvent: false,\n onlySelf: true,\n });\n\n this.formGroup.markAsPristine();\n this.initValueChanges();\n this.initStatusChanges();\n this.valueInitialization = false;\n }\n\n private initValueChanges() {\n this.formGroup.valueChanges\n .pipe(\n takeUntil(this.formDestroyed$),\n filter(() => !this.valueInitialization),\n map((value) => {\n const change = this.toModel(value);\n this.recursiveObjectAttributesTransformation(change);\n const updatedData = this.applyChanges(\n cloneDeep(this.data),\n cloneDeep(change)\n );\n return updatedData;\n })\n )\n .subscribe((updatedData) => {\n this.dataChange.emit(updatedData);\n });\n }\n\n private initStatusChanges() {\n this.formGroup.statusChanges\n .pipe(takeUntil(this.formDestroyed$))\n .subscribe(() => {\n if (!this.valueInitialization) {\n this.createAndEmitIfFormStateChanged();\n }\n });\n\n this.createAndEmitIfFormStateChanged();\n }\n\n private createAndEmitIfFormStateChanged() {\n const formState: FormState = {\n valid: !this.formGroup.invalid,\n dirty: this.formGroup.dirty,\n };\n\n if (!isFormStateEqual(formState, this.lastState)) {\n this.lastState = formState;\n this.statusChange.emit(formState);\n }\n }\n\n protected applyChanges(data: T, changes: Partial<T>): T {\n return Object.assign(data || ({} as T), changes);\n }\n\n protected toModel(data: T): Partial<T> {\n return data || {};\n }\n\n protected fromModel(data: T): T {\n return { ...(data || {}) } as T;\n }\n\n private recursiveObjectAttributesTransformation(obj: any): void {\n this.recursiveObjectAttributesTraversal(\n obj,\n this.transformEmptyStringToNullStringFn\n );\n }\n\n private recursiveObjectAttributesTraversal(\n obj: any,\n transformationFn: (obj: any, key: string) => void\n ) {\n if (\n obj === null ||\n transformationFn === null ||\n typeof transformationFn !== 'function'\n ) {\n return;\n }\n\n const traverse = (obj: any) => {\n for (const key in obj) {\n // eslint-disable-next-line no-prototype-builtins\n if (obj.hasOwnProperty(key)) {\n transformationFn(obj, key);\n\n if (typeof obj[key] === 'object') {\n traverse(obj[key]);\n }\n }\n }\n };\n\n traverse(obj);\n }\n\n private transformEmptyStringToNullStringFn(obj: any, key: string) {\n // if empty string - transformation to null string\n if (typeof obj[key] === 'string' && obj[key] === '') {\n try {\n obj[key] = null;\n } catch (error) {\n console.error(`Cannot modify ${key}: ${error}`)\n }\n }\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Directive()\nexport abstract class UnsubscribeComponent implements OnDestroy {\n destroyed$ = new Subject<void>();\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","import {\n Directive,\n AfterViewInit,\n inject,\n Input,\n OnInit,\n ChangeDetectorRef,\n OnDestroy,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { createFeatureSelector, createSelector, Store } from '@ngrx/store';\nimport {\n BackendValidationError,\n createInitDetailAction,\n createInitNewDetailAction,\n createResetStateAction,\n createUpdateDetailAction,\n createUpdateDetailSetErrorsAction,\n createUpdateFormStateAction,\n DetailState,\n} from '@verisoft/store';\nimport { takeUntil } from 'rxjs';\nimport { UnsubscribeComponent } from '../../unsubscribe.component';\nimport { BaseFormDirective } from '../base-form.component';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[v-useDetailStore]',\n exportAs: 'useDetailStore',\n standalone: true,\n})\nexport class DetailStoreDirective\n extends UnsubscribeComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n @Input({ required: true }) form!: BaseFormDirective<any>;\n\n @Input({ required: true }) detailsRepository!: string;\n\n @Input() autoBind = true;\n\n @Input() detailId!: string | number | undefined;\n\n @Input({ required: true }) ngrxFeatureKey!: string;\n\n @Input() destroyForm = true;\n\n @Input() readonly = false;\n\n @Input() readonlyControlNames: string[] = [];\n\n store = inject(Store);\n cdr = inject(ChangeDetectorRef);\n route = inject(ActivatedRoute);\n\n private itemCache: any = null;\n private loaded!: boolean;\n\n ngOnInit(): void {\n if (!this.loaded) {\n this.listenFormState();\n }\n this.listenFormChange();\n this.listenFormStatusChange();\n }\n\n ngAfterViewInit(): void {\n if (this.autoBind && !this.loaded) {\n this.initForm();\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.destroyForm) {\n this.store.dispatch(createResetStateAction(this.detailsRepository)());\n }\n }\n\n private initForm() {\n if (this.detailId === 'create') {\n this.store.dispatch(createInitNewDetailAction(this.detailsRepository)());\n } else {\n this.store.dispatch(\n createInitDetailAction(this.detailsRepository)({ obj: this.detailId })\n );\n }\n\n if (this.readonly) {\n this.form.formGroup.disable();\n return;\n }\n\n this.readonlyControlNames.forEach(x => {\n this.form.formGroup.get(x)?.disable();\n });\n }\n\n private listenFormState() {\n const selectIncomeData = createSelector(\n createFeatureSelector<any>(this.ngrxFeatureKey),\n (state: any) => state?.[this.detailsRepository] as DetailState<any>\n );\n this.store\n .select(selectIncomeData)\n .pipe(takeUntil(this.destroyed$))\n .subscribe(\n (\n { item, loaded, backendValidationErrors } = {\n item: undefined,\n loaded: false,\n saveItemState: { saveInProgress: false },\n backendValidationErrors: []\n }\n ) => {\n if (item\n && ((item.validationErrors || item.validationWarnings) && !this.form.formGroup.dirty)\n || backendValidationErrors.length\n ) {\n this.handleValidation(\n 'propertyName',\n item.validationWarnings || [],\n 'validationWarning',\n 'warningMessage'\n );\n this.handleValidation(\n 'propertyName',\n item.validationErrors || [],\n 'validationError',\n 'errorMessage'\n );\n\n if (this.itemCache && this.isStateChanged(item) && backendValidationErrors.length) {\n backendValidationErrors = this.dispatchErrors(item, backendValidationErrors);\n }\n\n this.handleBackendValidation(backendValidationErrors);\n this.cdr.markForCheck();\n }\n\n this.itemCache = item;\n\n this.loaded = loaded;\n this.cdr.detectChanges();\n }\n );\n }\n\n private listenFormChange() {\n this.form.dataChange.pipe(takeUntil(this.destroyed$)).subscribe((item) => {\n this.store.dispatch(\n createUpdateDetailAction(this.detailsRepository)({ item })\n );\n });\n }\n\n private listenFormStatusChange() {\n this.form.statusChange\n .pipe(takeUntil(this.destroyed$))\n .subscribe((formState) => {\n this.store.dispatch(\n createUpdateFormStateAction(this.detailsRepository)({ formState })\n );\n });\n }\n\n private handleValidation = (\n controlName: string,\n errors: any[],\n errorKey: string,\n messageKey: string\n ) => {\n if (errors.length > 0) return;\n errors.forEach((error: any) => {\n const control = this.form.formGroup.get(error[controlName]);\n if (control) {\n control.disabled\n ? control.disable({ emitEvent: false, onlySelf: true })\n : control.enable({ emitEvent: false, onlySelf: true });\n control.setErrors(\n { [errorKey]: error[messageKey] },\n { emitEvent: true }\n );\n control.markAsDirty();\n }\n });\n };\n\n private handleBackendValidation(errors: BackendValidationError[]) {\n errors.forEach(({ parameters, code }: BackendValidationError) => {\n const control = this.form.formGroup.get(this.normalizePropertyNames(parameters));\n if (!control) return;\n\n control[control.disabled ? \"disable\" : \"enable\"]({ emitEvent: false, onlySelf: true });\n control.setErrors({ \"validationError\": code }, { emitEvent: true });\n control.markAsDirty();\n });\n }\n\n private dispatchErrors(item: any, errors: BackendValidationError[]): BackendValidationError[] {\n const error = errors.filter((e: BackendValidationError) => {\n return this.itemCache[this.normalizePropertyNames(e.parameters)] === item[this.normalizePropertyNames(e.parameters)];\n });\n\n this.store.dispatch(\n createUpdateDetailSetErrorsAction(this.detailsRepository)({ error })\n );\n\n return error;\n }\n\n private normalizePropertyNames(input: string): string {\n return String(input[0]).toLocaleLowerCase() + String(input).slice(1);\n }\n\n private isStateChanged(item: any): boolean {\n return item !== this.itemCache;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ActivatedRoute } from \"@angular/router\";\nimport { MenuItem } from '../side-menu';\n\nexport const BREADCRUMB_COMPONENT_TOKEN = new InjectionToken<BreadcrumbCore>(\n 'BreadcrumbComponentToken'\n);\n\nexport interface BreadcrumbCore {\n items: MenuItem[];\n homeRoute: string;\n useHomeRoute: boolean;\n}\n\nexport interface Breadcrumb {\n label: string;\n routerLink?: string;\n url?: string;\n active?: boolean;\n activatedRoute?: ActivatedRoute;\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { Breadcrumb } from './breadcrumb.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService {\n @Output() routeChange: EventEmitter<Breadcrumb> = new EventEmitter();\n}\n","import {\n ChangeDetectorRef,\n Directive,\n Input,\n inject,\n OnInit,\n} from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs';\nimport { MenuItem } from '../side-menu';\nimport { UnsubscribeComponent } from '../unsubscribe.component';\nimport { BreadcrumbCore } from './breadcrumb.model';\nimport { BreadcrumbService } from './breadcrumb.service';\n\n@Directive({\n \n})\nexport class BreadcrumbCoreComponent\n extends UnsubscribeComponent\n implements BreadcrumbCore, OnInit\n{\n @Input() items: MenuItem[] = [];\n @Input() homeRoute = '/';\n @Input() useHomeRoute = false;\n\n static readonly ROUTE_DATA_BREADCRUMB = 'breadcrumb';\n static readonly ROUTE_DATA_BREADCRUMB_URL = 'breadcrumb_url';\n static readonly ROUTE_DATA_NO_BREADCRUMB_ROUTE = 'breadcrumb_no_route';\n static readonly BREADCRUMB_HIDE = 'breadcrumb_hide';\n readonly home = { icon: 'pi pi-home', routerLink: this.homeRoute };\n\n router = inject(Router);\n activatedRoute = inject(ActivatedRoute);\n breadcrumbService = inject(BreadcrumbService);\n cdr = inject(ChangeDetectorRef);\n\n ngOnInit(): void {\n this.initBreadcrumbsCreation();\n this.initRouteChangeListen();\n }\n\n private initBreadcrumbsCreation() {\n this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n takeUntil(this.destroyed$)\n )\n .subscribe(\n () => (this.items = this.createBreadcrumbs(this.activatedRoute.root))\n );\n }\n\n private initRouteChangeListen() {\n this.breadcrumbService.routeChange\n .pipe(\n filter((x) => x.label !== 'Undefined'),\n takeUntil(this.destroyed$)\n )\n .subscribe((x) => {\n this.items = [\n ...this.items,\n {\n label: x.label,\n routerLink: x.routerLink,\n url: x.url,\n class: 'breadcrumb',\n },\n ];\n this.cdr.detectChanges();\n });\n }\n\n private createBreadcrumbs(\n route: ActivatedRoute,\n routerLink = '',\n breadcrumbs: MenuItem[] = []\n ): any {\n const children: ActivatedRoute[] = route.children;\n\n if (children.length === 0) {\n return breadcrumbs;\n }\n\n for (const child of children) {\n const routeURL: string = child.snapshot.url\n .map((segment) => segment.path)\n .join('/');\n\n if (!child.snapshot.data[BreadcrumbCoreComponent.BREADCRUMB_HIDE]) {\n if (BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL !== undefined) {\n const route =\n child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL];\n routerLink += `/${route}`;\n }\n\n if (!BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB_URL && routeURL !== '') {\n routerLink += `/${routeURL}`;\n }\n\n const label = child.snapshot.data[BreadcrumbCoreComponent.ROUTE_DATA_BREADCRUMB];\n if (\n label &&\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE &&\n child.snapshot.data[\n BreadcrumbCoreComponent.ROUTE_DATA_NO_BREADCRUMB_ROUTE\n ]\n ) {\n breadcrumbs.push({ label, routerLink: undefined });\n } else if (label && child.snapshot.routeConfig?.path !== '') {\n breadcrumbs.push({ label, routerLink: routerLink });\n }\n }\n\n return this.createBreadcrumbs(child, routerLink, breadcrumbs);\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { ControlSeverityType, FieldSizeType, IconPositionType } from '../../common';\n\nexport const BUTTON_COMPONENT_TOKEN = new InjectionToken<ButtonCore>(\n 'ButtonComponentToken'\n);\n\nexport interface ButtonCore {\n label?: string;\n icon?: string;\n badge?: string;\n iconPos: IconPositionType;\n rounded: boolean;\n outlined: boolean;\n raised: boolean;\n severity?: ControlSeverityType;\n routerLink: any[];\n size: FieldSizeType | undefined;\n queryParams?: Params;\n}\n","import { InjectionToken, InputSignal } from \"@angular/core\";\r\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\r\nimport { MenuItem } from \"../side-menu\";\r\n\r\nexport const DROPDOWN_BUTTON_COMPONENT_TOKEN = new InjectionToken<DropdownButtonCore>(\r\n 'DropdownButtonComponentToken'\r\n);\r\n\r\nexport interface DropdownButtonCore {\r\n label: InputSignal<string | undefined>;\r\n icon: InputSignal<string | undefined>;\r\n rounded: InputSignal<boolean | undefined>;\r\n outlined: InputSignal<boolean | undefined>;\r\n raised: InputSignal<boolean | undefined>;\r\n severity: InputSignal<ControlSeverityType | undefined>;\r\n size: InputSignal<FieldSizeType | undefined>;\r\n items: InputSignal<MenuItem[] | undefined>;\r\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const CALENDAR_COMPONENT_TOKEN = new InjectionToken<CalendarCore>(\n 'CalendarComponentToken'\n);\n\nexport interface CalendarCore extends BaseFormCore {\n maxDate: Date;\n icon: string;\n minDate: Date;\n header: string;\n footer: string;\n floatLabel: string | undefined;\n selectionMode: \"single\" | \"multiple\" | \"range\" | undefined;\n}","import { InjectionToken, InputSignal } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const CHECKBOX_COMPONENT_TOKEN = new InjectionToken<CheckboxCore>(\n 'CheckboxComponentToken'\n);\n\nexport interface CheckboxCore extends BaseFormCore {\n indeterminate: InputSignal<boolean>;\n}\n","import { InjectionToken, Type } from '@angular/core';\nimport { SafeHtml } from \"@angular/platform-browser\";\nimport { ControlSeverityType } from '../../common';\n\nexport const CONFIRM_DIALOG_COMPONENT_TOKEN = new InjectionToken<ConfirmDialogCore>(\n 'ConfirmDialogComponentToken'\n);\n\nexport type ConfirmDialogCore = object\n\nexport interface DialogData {\n title?: string;\n headerIcon?: string;\n severity?: ControlSeverityType;\n showCancelButton?: boolean;\n buttonOrder?: 'confirm-cancel' | 'cancel-confirm';\n confirmButtonText?: string;\n confirmButtonFn?: () => void;\n cancelButtonFn?: () => void;\n cancelButtonText?: string;\n innerHTML?: string | SafeHtml;\n data?: unknown;\n componentType?: Type<unknown>;\n closable?: boolean;\n width?: string;\n height?: string;\n}\n\nexport interface ExtendedDialogData<TInputs = any, TOutputs = any> extends DialogData {\n data?: TInputs & TOutputs;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const DROPDOWN_COMPONENT_TOKEN = new InjectionToken<DropdownCore<any>>(\n 'DropdownComponentToken'\n);\n\nexport interface DropdownCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n forceMinWidth: boolean;\n showFilter: boolean;\n localSearch: boolean;\n}\n","import { InjectionToken } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { GenericFieldDefinition } from '../generic-form';\r\n\r\nexport const FILTER_COMPONENT_TOKEN = new InjectionToken<FilterCore>(\r\n 'FilterComponentToken'\r\n);\r\n\r\nexport interface FilterCore extends ControlValueAccessor {\r\n fields: GenericFieldDefinition[]; \r\n title?: string; \r\n fulltextFieldName: string; \r\n showFulltext: boolean; \r\n showFilters: boolean; \r\n autoBind: boolean; \r\n debounceTime?: number;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nexport const FORM_FIELD_COMPONENT_TOKEN = new InjectionToken<FormFieldCore>(\n 'FormFieldComponentToken'\n);\n\nexport interface FormFieldCore {\n ngControl?: NgControl;\n label?: string;\n tooltip?: string;\n required: boolean;\n testId?: string;\n display: 'flex' | 'block';\n}","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const GENERIC_FIELD_COMPONENT_TOKEN = new InjectionToken<GenericFieldCore<any>>(\n 'GenericFieldComponentToken'\n);\n\nexport interface GenericFieldCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n}\n","import { ValidatorFn } from '@angular/forms';\r\nimport { DatasourceType } from '@verisoft/core';\r\nimport { FieldSizeType } from '../../common';\r\n\r\nexport interface GenericFieldDefinition {\r\n validator?: ValidatorFn[];\r\n type?: GenericFieldTypeType;\r\n label?: string;\r\n floatLabel?: boolean;\r\n name: string;\r\n optionLabel?: string;\r\n optionValue?: string;\r\n options?: unknown[];\r\n value?: unknown;\r\n testId?: string;\r\n size?: FieldSizeType;\r\n readonly?: boolean;\r\n datasource?: DatasourceType<any>;\r\n filterField?: string;\r\n showFilter?: boolean;\r\n localSearch?: boolean;\r\n}\r\n\r\nexport enum GenericFieldType {\r\n 'dropdown' = 'dropdown',\r\n 'checkbox' = 'checkbox',\r\n 'simplecheckbox' = 'simplecheckbox',\r\n 'calendar' = 'calendar',\r\n 'multiselect' = 'multiselect',\r\n 'text' = 'text',\r\n}\r\n\r\nexport type GenericFieldTypeType = keyof typeof GenericFieldType;\r\n","import { InjectionToken } from '@angular/core';\nimport { MenuItem } from '../side-menu/side-menu.model';\n\nexport const HEADER_COMPONENT_TOKEN = new InjectionToken<HeaderCore>(\n 'HeaderComponentToken'\n);\n\nexport const SETTINGS_MENU = new InjectionToken<MenuItem[]>(\n 'SETTINGS_MENU'\n);\n\nexport interface HeaderCore {\n title: string;\n userName: string;\n logoUrl: string;\n userRole: any | any[] | undefined;\n fixed: boolean;\n userAvatar: string;\n menuRef: HTMLDivElement;\n}\n","import { InjectionToken } from '@angular/core';\nimport { IconPositionType } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const INPUT_GROUP_COMPONENT_TOKEN = new InjectionToken<InputGroupCore>(\n 'HeaderComponentToken'\n);\n\nexport interface InputGroupItem {\n icon?: string;\n text?: string;\n position: IconPositionType;\n}\n\nexport interface InputGroupCore extends BaseFormCore {\n items: InputGroupItem[];\n}","import { InjectionToken } from '@angular/core';\n\nexport const LOADER_COMPONENT_TOKEN = new InjectionToken<LoaderCore>(\n 'LoaderComponentToken'\n);\n\nexport type LoaderCore = object\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceComponentModel } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const MULTISELECT_COMPONENT_TOKEN = new InjectionToken<MultiselectCore<any>>(\n 'MultiselectComponentToken'\n);\n\nexport interface MultiselectCore<T> extends DataSourceComponentModel<T>, BaseFormCore {\n dropdownIcon?: string;\n floatLabel?: string;\n editable: boolean;\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const NUMBER_INPUT_COMPONENT_TOKEN = new InjectionToken<NumberInputCore>(\n 'NumberInputComponentToken'\n);\n\nexport interface NumberInputCore extends BaseFormCore {\n mode: string;\n currency: string;\n min: number;\n max: number;\n step: number;\n}","import { InjectionToken } from '@angular/core';\n\nexport const PAGE_HEADER_COMPONENT_TOKEN = new InjectionToken<PageHeaderCore>(\n 'PageHeaderComponentToken'\n);\n\nexport interface PageHeaderCore {\n title: string;\n subtitle: string | undefined;\n showBackButton: boolean | undefined;\n}\n","import { EventEmitter, Injectable, Output } from '@angular/core';\nimport { PageHeaderCore } from './page-header.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PageHeaderService {\n @Output() pageHeader = new EventEmitter<PageHeaderCore>();\n}\n","import { ChangeDetectorRef, Directive, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { takeUntil } from 'rxjs';\nimport { FieldSize, FieldSizeType } from '../../common';\nimport { UnsubscribeComponent } from '../unsubscribe.component';\nimport { PageHeaderService } from './page-header.service';\n\n@Directive({\n \n})\nexport class PageHeaderCoreComponent\n extends UnsubscribeComponent\n implements OnInit\n{\n @Input() title!: string;\n @Input() subtitle: string | undefined;\n @Input() showBackButton!: boolean;\n @Input() size: FieldSizeType = FieldSize.small;\n\nconstructor(\n readonly router: Router,\n readonly cdr: ChangeDetectorRef,\n readonly headerService: PageHeaderService\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.headerService.pageHeader\n .pipe(takeUntil(this.destroyed$))\n .subscribe((x: any) => {\n this.title = x.title;\n this.subtitle = x.subtitle;\n this.showBackButton = x.showBackButton ?? false;\n this.cdr.detectChanges();\n });\n }\n\n protected locationBack() {\n history.back();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const PASSWORD_COMPONENT_TOKEN = new InjectionToken<PasswordCore>(\n 'PasswordComponentToken'\n);\n\nexport enum PasswordStrength {\n None = 0,\n Low = 1,\n Medium = 2,\n High = 3,\n Superb = 4\n}\n\nexport interface PasswordCore extends BaseFormCore {\n toggleMask: boolean;\n feedback: boolean;\n}\n\nexport interface PasswordValidationItem {\n severity: 'success' | 'error';\n validationLabel: string;\n validationFn: (x: string) => boolean;\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const RADIOBUTTON_COMPONENT_TOKEN = new InjectionToken<RadiobuttonCore<any>>(\n 'RadiobuttonComponentToken'\n);\n\nexport interface RadioButtonItem<T> {\n id: string;\n value: T; \n}\n\nexport interface RadiobuttonCore<T> extends BaseFormCore {\n radioGroupName: string;\n items: RadioButtonItem<T>[];\n}","import { InjectionToken } from '@angular/core';\n\nexport const SECTION_COMPONENT_TOKEN = new InjectionToken<SectionCore>(\n 'SectionComponentToken'\n);\n\nexport interface SectionCore {\n title: string;\n showContent: boolean;\n backgroundColor: string;\n}","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport const MENU_TOKEN = new InjectionToken<MenuItem[]>(\n 'MENU'\n);\n\nexport const LOGO_ROUTER_ROUTE = new InjectionToken<string>(\n 'LOGO_ROUTER_ROUTE'\n);\n\nexport const SIDE_MENU_COMPONENT_TOKEN = new InjectionToken<SideMenuCore>(\n 'SideMenuComponentToken'\n);\n\nexport const SIDE_MENU_STATE_TOKEN = new InjectionToken<SideMenuState>(\n 'SideMenuStateToken'\n);\n\nexport interface SideMenuState {\n expanded: string[];\n minimalized: boolean;\n}\n\nexport interface MenuItem {\n id?: string;\n label?: string | undefined;\n icon?: string;\n expanded?: boolean;\n data?: MenuItemData;\n tooltip?: string;\n url?: string;\n visible?: boolean | Observable<boolean>;\n type?: string;\n children?: MenuItem[];\n routerLink?: any;\n class?: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n command?: Function;\n}\n\ntype ExtendableType = {\n [key: string]:\n | string\n | number\n | boolean\n | string[]\n | number[]\n | boolean[]\n | undefined;\n};\n\nexport interface MenuItemData extends ExtendableType {\n roles?: string[];\n permissions?: string[];\n}\n\nexport interface SideMenuModuleConfig {\n items?: MenuItem[];\n}\n\nexport interface SideMenuCore {\n items: MenuItem[];\n logoUrl: string;\n userName: string;\n userRole: any | any[] | undefined;\n}\n","import { inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MenuItem, SIDE_MENU_STATE_TOKEN } from '../side-menu.model';\n\n@Injectable({ providedIn: 'root' })\nexport class SideMenuService {\n private _menuItems = new BehaviorSubject<MenuItem[]>([]);\n private stateToken = inject(SIDE_MENU_STATE_TOKEN);\n\n menuItems$: Observable<MenuItem[]> = this._menuItems.asObservable();\n menuMinimalized = false;\n\n setMenu(items: MenuItem[]): void {\n this.resetSidemenuState(items);\n this._menuItems.next(items);\n }\n\n saveMinimalizedState(minimalized: boolean): void {\n this.stateToken.minimalized = minimalized;\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n\n saveExpandedState(item: MenuItem): void {\n const expanded = this.stateToken.expanded?.find(\n (i: string) => i === item.label\n );\n\n if (!expanded) {\n this.stateToken.expanded?.push(item.label!);\n localStorage.setItem(\n 'SideMenuStateToken',\n JSON.stringify(this.stateToken)\n );\n return;\n }\n\n this.stateToken.expanded = this.stateToken.expanded?.filter(\n (i: string) => i !== item.label\n );\n\n localStorage.setItem('SideMenuStateToken', JSON.stringify(this.stateToken));\n }\n\n private resetSidemenuState(items: MenuItem[]) {\n if (typeof this.stateToken === 'string') {\n this.stateToken = JSON.parse(this.stateToken);\n }\n\n this.menuMinimalized = this.stateToken.minimalized;\n const localStorageValue = this.stateToken.expanded;\n\n if (!localStorageValue) return;\n if (items) {\n for (let index = 0; index < items.length; index++) {\n const element = items[index];\n element.expanded = !!localStorageValue.find(\n (i: string) => i === element.label\n );\n }\n }\n }\n}\n","import { Injectable, Optional, Inject } from '@angular/core';\nimport { MENU_TOKEN, MenuItem } from '../side-menu.model';\nimport { SideMenuService } from './side-menu.service';\n\n@Injectable()\nexport class SideMenuProviderService {\n constructor(\n @Optional() @Inject(MENU_TOKEN) readonly menu: MenuItem[] = [],\n readonly menuService: SideMenuService\n ) {\n menuService.setMenu(menu);\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, inject } from \"@angular/core\";\nimport { takeUntil } from \"rxjs\";\nimport { UnsubscribeComponent } from \"../../unsubscribe.component\";\nimport { SideMenuService } from \"../services/side-menu.service\";\nimport { SIDE_MENU_COMPONENT_TOKEN } from \"../side-menu.model\";\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-side-menu[useMenuService]',\n exportAs: 'useMenuService',\n standalone: true,\n})\nexport class MenuServiceDirective\n extends UnsubscribeComponent\n implements AfterViewInit\n{\n private readonly menuService = inject(SideMenuService);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly sideMenu = inject(SIDE_MENU_COMPONENT_TOKEN);\n\n ngAfterViewInit() {\n this.menuService.menuItems$.pipe(takeUntil(this.destroyed$)).subscribe((items) => {\n\n if (this.sideMenu) {\n this.sideMenu.items = items;\n }\n });\n\n this.cdr.detectChanges();\n }\n}","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const SLIDER_COMPONENT_TOKEN = new InjectionToken<SliderCore>(\n 'SliderComponentToken'\n);\n\nexport interface SliderCore extends BaseFormCore {\n step: number;\n min: number;\n max: number;\n range: boolean;\n}","import { InjectionToken } from '@angular/core';\n\nexport const SNACKBAR_COMPONENT_TOKEN = new InjectionToken<SnackbarCore>(\n 'SnackbarComponentToken'\n);\n\nexport type SnackbarCore = object\n","import { EventEmitter, InjectionToken, TemplateRef } from \"@angular/core\";\nimport { FieldSizeType, LayoutTypeType } from \"../../common\";\n\nexport const STEPPER_COMPONENT_TOKEN = new InjectionToken<StepperCore>(\n 'StepperComponentToken'\n);\n\nexport interface StepperItem {\n header: string;\n template?: TemplateRef<any>;\n annotation?: string;\n prefix?: string;\n}\n\nexport interface StepperCore {\n items: StepperItem[]\n layout: LayoutTypeType\n activeIndexChange: EventEmitter<number>\n size: FieldSizeType | undefined;\n icon: string;\n prefix: string;\n annotation: string;\n label: string;\n}","import { InjectionToken } from \"@angular/core\";\nimport { BaseFormCore } from \"../base-form\";\n\nexport const SWITCH_COMPONENT_TOKEN = new InjectionToken<SwitchCore>(\n 'SwitchComponentToken'\n);\n\nexport type SwitchCore = BaseFormCore\n","import { EventEmitter, InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const TAB_VIEW_COMPONENT_TOKEN = new InjectionToken<TabViewCore>(\n 'TabVIewComponentToken'\n);\n\nexport interface TabViewItemCore {\n title: string;\n url?: string;\n icon?: string;\n disabled?: boolean;\n content?: string;\n contentTemplate?: TemplateRef<unknown>; \n}\n\nexport interface TabViewCore {\n items: TabViewItemCore[];\n useRouting: boolean;\n activeIndex: number;\n activeIndexChange: EventEmitter<number>;\n url?: string;\n}","import { EventEmitter, InjectionToken, TemplateRef } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { LazyLoadEvent, Sort, SortDirectionType } from '@verisoft/core';\nimport { v4 } from 'uuid';\nimport { FieldAlignType } from '../../common';\n\nexport const TABLE_COMPONENT_TOKEN = new InjectionToken<TableCore<any>>(\n 'TabVIewComponentToken'\n);\n\nexport const TABLE_COLUMN_PROVIDER = new InjectionToken(\n 'TABLE_COLUMN_PROVIDER'\n);\n\nexport enum TableSelectionMode {\n single = 'single',\n multiple = 'multiple',\n}\n\nexport enum TableButtonSeverity {\n success = 'success',\n info = 'info',\n warning = 'warning',\n danger = 'danger',\n help = 'help',\n primary = 'primary',\n secondary = 'secondary',\n contrast = 'contrast',\n}\n\nexport enum ColumnVisibility {\n visible = 'visible',\n hidden = 'hidden',\n default = 'default',\n}\n\nexport type TableSelectionModeType = keyof typeof TableSelectionMode;\nexport type TableButtonSeverityType = keyof typeof TableButtonSeverity;\nexport type ColumnVisibilityType = keyof typeof ColumnVisibility;\n\nexport interface TableCore<T> {\n sorters: Sort[];\n columns: ColumnDefinition<T>[];\n data: T[];\n total: number;\n filter: Partial<T> | undefined;\n loading: boolean;\n scrollable: boolean;\n pageSize: number;\n currentPage: number;\n showPaginator: boolean;\n sortMultiple: boolean;\n lazy: boolean;\n selection: T[];\n selectionMode: TableSelectionModeType | undefined;\n showPageSizePicker: boolean;\n entityKey: string | undefined;\n selectionChange: EventEmitter<T[]>;\n lazyLoad: EventEmitter<LazyLoadEvent>;\n maximumColumnLength: number;\n disableCustomClicks: boolean;\n}\n\nexport interface TableSignal {\n name: string,\n symbol: symbol\n}\n\nexport interface ActionColumnsDefinition<T> {\n severity?: TableButtonSeverity;\n title?: string;\n icon?: string;\n tooltip?: string;\n rounded?: boolean;\n outlined?: boolean;\n raised?: boolean;\n badge?: string;\n visible?: (row: T) => boolean;\n routerLink?: (row: T) => string;\n queryParams?: Params;\n disabled?: boolean | ((row: T) => boolean);\n onClick?: (row: T, event?: MouseEvent) => void;\n}\n\nexport interface ColumnProvider<T> {\n getDefinition(): ColumnDefinition<T>;\n index: number;\n}\n\nexport interface ColumnDefinition<T, _KEY = keyof T> {\n id: string;\n value?: (row: T, index?: number) => string;\n headerName?: ((columnId: string, index?: number) => string) | string;\n icon?: string | ((row?: T | undefined) => string);\n type?: string;\n sortable?: boolean;\n format?: (row: T) => string\n routerLink?: (row: T) => string | string;\n queryParams?: Params;\n columnClass?: string;\n template?: TemplateRef<{ $implicit: T }>;\n actions?: ActionColumnsDefinition<T>[];\n textAlign?: FieldAlignType;\n width?: string | number;\n forceVisibility?: ColumnVisibilityType;\n visible?: boolean;\n}\n\nexport function LinkRenderer<T>(text: string, href: string) {\n return (row: T, index: number | undefined) => {\n return '<a href=\"' + href + '\">' + text + '</a>';\n };\n}\n\nexport function routerRenderer<T>(link: string, text: string) {\n return (row: T, index?: number | undefined) => {\n return { text: text, link: link };\n };\n}\n\nexport function Renderer<T>(fnc: (row: T) => string) {\n return (row: T) => {\n return fnc(row);\n };\n}\n\nexport class ColumnModel<T> {\n sortDirection: SortDirectionType | undefined = undefined;\n columnClass?: string;\n queryParams?: Params;\n routerLink?: (row: T) => string | string;\n valueGetter!: (row: T, index: number) => string;\n headerGetter!: (columnId: string, index: number) => string | string;\n template?: TemplateRef<{ $implicit: T }>;\n actions?: ActionColumnsDefinition<T>[];\n sortable?: boolean;\n id: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n format!: Function;\n textAlign?: FieldAlignType;\n width: string | undefined;\n forceVisibility: ColumnVisibilityType = ColumnVisibility.default;\n visible = true;\n\n constructor(readonly configuration: ColumnDefinition<T>) {\n this.id = this.configuration.id;\n\n if (this.configuration.format) {\n this.format = this.configuration.format;\n }\n\n if (this.configuration.value) {\n this.valueGetter = (row, index) => {\n const value = this.configuration.value?.(row, index) ?? '-';\n return this.format ? this.format(value, row) : value;\n };\n } else {\n this.valueGetter = (row) => {\n const value = ((row as { [key: string]: string })?.[this.configuration.id]) ?? '';\n return this.format ? this.format(value, row) : value;\n };\n }\n\n if (this.configuration.actions) {\n this.actions = this.configuration.actions;\n }\n\n if (this.configuration.routerLink) {\n this.routerLink = this.configuration.routerLink;\n }\n\n if (this.configuration.columnClass) {\n this.columnClass = this.configuration.columnClass;\n }\n\n if (this.configuration.template) {\n this.template = this.configuration.template;\n }\n\n if (this.configuration.headerName) {\n this.headerGetter = (\n typeof this.configuration.headerName === 'string'\n ? () => this.configuration.headerName ?? ''\n : (columnId: string, index: number) =>\n (<(columnId: string, index?: number) => string>(\n this.configuration.headerName\n ))?.(columnId, index) ?? this.id\n ) as (columnId: string, index: number) => string;\n } else {\n this.headerGetter = () => \"\";\n }\n\n if (this.configuration.queryParams) {\n this.queryParams = this.configuration.queryParams;\n }\n\n if (this.routerLink) {\n this.columnClass += ' ' + 'link';\n }\n\n if (this.configuration.sortable !== undefined) {\n this.sortable = this.configuration.sortable;\n } else {\n this.sortable = true;\n }\n\n if (this.configuration.width){\n this.width = typeof this.configuration.width === \"number\" ? this.configuration.width + 'px' : this.configuration.width;\n }\n\n if (this.configuration.textAlign !== undefined) {\n this.textAlign = this.configuration.textAlign;\n }\n\n if (this.configuration.forceVisibility) {\n this.forceVisibility = this.configuration.forceVisibility;\n }\n\n if (this.configuration.visible !== undefined) {\n this.visible = this.configuration.visible;\n }\n }\n}\n\nexport class RowModel<T> {\n row: T;\n index?: number;\n id: number | string;\n selected: boolean;\n marked?: boolean;\n focused?: boolean;\n expanded: boolean;\n fnc?: void;\n customRoute: string | undefined;\n\n constructor(\n row: T,\n selected: boolean,\n expanded: boolean,\n marked?: boolean,\n index?: number,\n fnc?: void,\n customRoute?: string,\n entityKey?: string\n ) {\n this.row = row;\n this.id = (row as { [key: string]: string })['id'] ?? v4();\n this.index = index;\n this.selected = selected;\n this.expanded = expanded;\n this.marked = marked;\n this.fnc = fnc;\n this.customRoute = createCustomRoute<T>(row, entityKey, customRoute);\n }\n}\n\nfunction createCustomRoute<T>(row: T, entityKey?: string, customRoute?: string) {\n return customRoute && entityKey\n ? `${customRoute}/` + (row as { [key: string]: string })[entityKey]\n : undefined;\n}\n","import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { FieldAlign, FieldAlignType } from '../../common';\nimport { ColumnDefinition, ColumnProvider, ColumnVisibility, ColumnVisibilityType, TABLE_COLUMN_PROVIDER } from './table.models';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table-column',\n standalone: true,\n providers: [\n {\n provide: TABLE_COLUMN_PROVIDER,\n useExisting: TableColumnDirective,\n multi: true,\n },\n ],\n})\nexport class TableColumnDirective<T> implements ColumnProvider<T> {\n @ContentChild(TemplateRef) template!:\n TemplateRef<{ $implicit: T }>;\n\n @Input() index = 0;\n\n @Input() id!: string;\n\n @Input() columnClass!: string;\n\n @Input() sortable!: boolean;\n\n @Input() routerLink!: (row: T) => string;\n\n @Input() queryParams!: Params;\n\n @Input() headerName!: ((column: string, index?: number) => string) | string;\n\n @Input() width: string | number | undefined;\n\n @Input() textAlign: FieldAlignType = FieldAlign.left;\n\n @Input() format!: (row: T) => string\n\n @Input() forceVisibility: ColumnVisibilityType = ColumnVisibility.default;\n\n @Input() visible = true;\n\n getDefinition(): ColumnDefinition<T> {\n return {\n id: this.id,\n columnClass: this.columnClass,\n template: this.template,\n headerName: this.headerName,\n routerLink: this.routerLink,\n queryParams: this.queryParams,\n sortable: this.sortable,\n width: this.width,\n format: this.format,\n textAlign: this.textAlign,\n forceVisibility: this.forceVisibility,\n visible: this.visible,\n };\n }\n}\n","import { ColumnDefinition } from \"./table.models\";\r\n\r\nexport class ColumnConfiguration<TEntity> {\r\n private column: Partial<ColumnDefinition<TEntity>> = {};\r\n \r\n constructor(private id: string | keyof TEntity) {\r\n this.column.id = id as string;\r\n }\r\n \r\n headerName(headerName: string | ((columnId: string, index?: number) => string)): this {\r\n this.column.headerName = headerName;\r\n return this;\r\n }\r\n \r\n sortable(sortable: boolean): this {\r\n this.column.sortable = sortable;\r\n return this;\r\n }\r\n \r\n columnClass(columnClass: string): this {\r\n this.column.columnClass = columnClass;\r\n return this;\r\n }\r\n \r\n valueFunction(value: (row: TEntity, index?: number) => string): this {\r\n this.column.value = value;\r\n return this;\r\n }\r\n \r\n type(type: string): this {\r\n this.column.type = type;\r\n return this;\r\n }\r\n \r\n build(): ColumnDefinition<TEntity> {\r\n return this.column as ColumnDefinition<TEntity>;\r\n }\r\n }","import { Injectable } from '@angular/core';\r\nimport { ColumnConfiguration } from './column-configuration';\r\nimport { ColumnDefinition } from './table.models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TableBuilder<TEntity> {\r\n private columns: ColumnDefinition<TEntity>[] = [];\r\n\r\n addColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n const columnConfig = new ColumnConfiguration<TEntity>(id);\r\n config?.(columnConfig);\r\n this.columns.push(columnConfig.build());\r\n return this;\r\n }\r\n\r\n addTextColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('text');\r\n });\r\n }\r\n\r\n addNumberColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('number').columnClass('text-end');\r\n });\r\n }\r\n\r\n addDateColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('date').valueFunction((row) => covertFromDateToUserLocale(row, id as string));\r\n });\r\n }\r\n\r\n addBooleanColumn(\r\n id: string,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('boolean');\r\n });\r\n }\r\n\r\n addEnumColumn(\r\n id: string | keyof TEntity,\r\n config?: (v: ColumnConfiguration<TEntity>) => void\r\n ): TableBuilder<TEntity> {\r\n return this.addColumn(id, (x) => {\r\n config?.(x);\r\n x.type('enum');\r\n });\r\n }\r\n\r\n build(): ColumnDefinition<TEntity>[] {\r\n return this.columns;\r\n }\r\n}\r\n\r\nfunction covertFromDateToUserLocale<TEntity>(row: TEntity, id: string) {\r\n const value = (row as { [key: string]: undefined | string | Date })[id];\r\n if (value === undefined) {\r\n return '';\r\n }\r\n\r\n const locale = navigator.language;\r\n\r\n if (value instanceof Date) {\r\n return value.toLocaleDateString(locale);\r\n }\r\n\r\n if (typeof value === 'string' && !isNaN(Date.parse(value))) {\r\n return new Date(value).toLocaleDateString(locale);\r\n }\r\n\r\n return value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormDirectiveCore } from '../base-form';\n\nexport const TABLE_FILTER_COMPONENT_TOKEN = new InjectionToken<TableFilterCore<any>>(\n 'TableFilterComponentToken'\n);\n\nexport interface FilterDefinition {\n optionLabel: string;\n label: string;\n optionValue?: string;\n url?: string;\n filterType?: 'dropdown' | 'checkbox' | 'calendar' | 'multiselect';\n initialValue?: any;\n}\n\nexport interface TableFilterCore<T> extends BaseFormDirectiveCore<T> {\n filterDefinitions: FilterDefinition[];\n title: string;\n hideSearch?: boolean;\n debounceTime?: number;\n}\n","import { InjectionToken } from '@angular/core';\nimport { BaseFormCore } from '../base-form';\n\nexport const TEXTAREA_COMPONENT_TOKEN = new InjectionToken<TextareaCore>(\n 'TextareaComponentToken'\n);\n\nexport interface TextareaCore extends BaseFormCore {\n rows: number;\n cols: number;\n autoResize: boolean;\n floatLabel: string | undefined;\n}\n","import { InjectionToken } from '@angular/core';\nimport { FieldSizeType, FieldTypeType } from '../../common';\nimport { BaseFormCore } from '../base-form';\n\nexport const TEXTFIELD_COMPONENT_TOKEN = new InjectionToken<TextfieldCore>(\n 'TextfieldComponentToken'\n);\n\nexport interface TextfieldCore extends BaseFormCore {\n size: FieldSizeType | undefined;\n type: FieldTypeType;\n floatLabel: boolean;\n}","import { InjectionToken, Signal } from '@angular/core';\nimport { ControlSeverityType, FieldSizeType, PositionType } from '../../common';\n\nexport const TOOLTIP_COMPONENT_TOKEN = new InjectionToken<TooltipCore>(\n 'TooltipComponentToken'\n);\n\nexport interface TooltipCore {\n color: Signal<ControlSeverityType | undefined>;\n position: Signal<PositionType | undefined>;\n size: Signal<FieldSizeType | undefined>;\n tooltipText: Signal<string | undefined>;\n}","import { InjectionToken, InputSignal } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\n\nexport const ICONS_COMPONENT_TOKEN = new InjectionToken<IconsCore>(\n 'IconsComponentToken'\n);\n\nexport type IconLibraryType = 'native' | 'bootstrap';\n\nexport interface IconsCore {\n library: InputSignal<IconLibraryType>;\n name: InputSignal<string>;\n size: InputSignal<FieldSizeType | undefined>;\n severity: InputSignal<ControlSeverityType | undefined>;\n class: InputSignal<string | undefined>;\n}","import { Component, input } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\nimport { IconLibraryType, ICONS_COMPONENT_TOKEN, IconsCore } from \"./icons.model\";\n\n@Component({\n standalone: true,\n template: '',\n providers: [\n {\n provide: ICONS_COMPONENT_TOKEN,\n useExisting: IconsComponent\n }\n ]\n})\n\nexport abstract class IconsComponent implements IconsCore {\n library = input<IconLibraryType>('native');\n name = input.required<string>();\n size = input<FieldSizeType | undefined>();\n severity = input<ControlSeverityType | undefined>();\n class = input<string>();\n}","import { InjectionToken, InputSignal } from \"@angular/core\";\nimport { ControlSeverityType, FieldSizeType } from \"../../common\";\n\nexport const TAG_COMPONENT_TOKEN = new InjectionToken<TagCore>('TagComponentToken');\n\nexport type TagVariant = 'bold' | 'subtle';\n\nexport interface TagCore {\n label: InputSignal<string | undefined>;\n severity: InputSignal<ControlSeverityType | undefined>;\n variant: InputSignal<TagVariant>;\n size: InputSignal<FieldSizeType>;\n }","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport {\n BASE_URL_PATH,\n convertDatasource,\n DataSourceFunctionType,\n DatasourceType,\n DEFAULT_SEARCH_LIMIT,\n FilterEvent,\n LazyLoadEvent,\n normalizeRequest,\n Page,\n RequestParams,\n} from '@verisoft/core';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n filter,\n map,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport {\n DataSourceComponentModel,\n DEFAULT_DEBOUNCE_TIME,\n ExtendedRequestType,\n setComponentProperties,\n setDataToArray,\n} from '../common';\nimport {\n DROPDOWN_COMPONENT_TOKEN,\n DropdownCore,\n GENERIC_FIELD_COMPONENT_TOKEN,\n GenericFieldCore,\n MULTISELECT_COMPONENT_TOKEN,\n MultiselectCore,\n UnsubscribeComponent,\n} from '../components';\n\n@Directive({\n selector:\n // eslint-disable-next-line @angular-eslint/directive-selector\n 'v-dropdown[useDatasource], v-multiselect[useDatasource], v-generic-field[useDatasource]',\n standalone: true,\n})\nexport class DatasourceDirective<T>\n extends UnsubscribeComponent\n implements OnChanges, OnInit\n{\n @Input() datasource!: DatasourceType<T>;\n\n @Input() autoBind = true;\n\n @Input() loadingText = '... loading ...';\n\n @Input() filterField: string | undefined = 'fulltext';\n\n @Input() transformFn?: (data: T) => unknown;\n\n @Input() extraFilter!: any;\n\n get activeComponent(): DataSourceComponentModel<T> {\n return (this.dropdownComponent ??\n this.multiSelectComponent ??\n this.genericField) as DataSourceComponentModel<T>;\n }\n\n private httpClient = inject(HttpClient);\n\n private baseUrl: string = inject(BASE_URL_PATH);\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private isAllDataLoaded = false;\n\n private parameters$ = new BehaviorSubject<Partial<ExtendedRequestType<T>>>({});\n\n private lastParameter = {};\n\n private dropdownComponent = inject<DropdownCore<T>>(\n DROPDOWN_COMPONENT_TOKEN,\n { optional: true }\n );\n\n private multiSelectComponent = inject<MultiselectCore<T>>(\n MULTISELECT_COMPONENT_TOKEN,\n {\n optional: true,\n }\n );\n\n private genericField = inject<GenericFieldCore<T>>(\n GENERIC_FIELD_COMPONENT_TOKEN,\n { optional: true }\n );\n\n private dataSourceService?: DataSourceFunctionType<T>;\n\n private loadingPlaceholderItem: { [key: string]: unknown } = {};\n\n ngOnInit(): void {\n this.activeComponent.showed\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n if (\n !this.autoBind &&\n !this.activeComponent.options &&\n !this.activeComponent.loading\n ) {\n this.parameters$.next({});\n }\n });\n\n this.activeComponent.lazyLoad\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: LazyLoadEvent) => {\n this.parameters$.next({ offset: value?.offset, limit: value?.limit });\n });\n\n this.activeComponent.filtered\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value: FilterEvent) => {\n const property = this.filterField ?? this.activeComponent.optionLabel;\n if (property) {\n this.parameters$.next({\n offset: 0,\n filter: {\n [property]: value.filter ? value.filter : undefined,\n ...(this.extraFilter ?? {})\n } as Partial<T>,\n useNewData: true,\n });\n }\n });\n\n this.parameters$\n .pipe(\n takeUntil(this.destroyed$),\n filter(request => !this.isDataForRequestLoaded(request)),\n map((request) => {\n const extendedParams = normalizeRequest({ ...this.lastParameter, ...request }, DEFAULT_SEARCH_LIMIT) as ExtendedRequestType<T>;\n extendedParams.useNewData = request.useNewData ?? false;\n return extendedParams;\n }),\n tap((request) => {\n this.lastParameter = request;\n }),\n debounceTime(DEFAULT_DEBOUNCE_TIME),\n tap(() => {\n this.changeComponent(this.activeComponent, {\n loading: true,\n });\n }),\n switchMap((request) =>\n this.dataSourceService\n ? this.dataSourceService(request as RequestParams<T>).pipe(\n map((response) => ({ request, response }))\n )\n : of({\n request,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n })\n ),\n catchError((request) => {\n this.changeComponent(this.activeComponent, {\n loading: false,\n });\n return of({\n request: request as ExtendedRequestType<T>,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n });\n })\n )\n .subscribe(({ request, response }) =>\n this.setDataToControl(request, response)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(\n this.datasource,\n this.baseUrl,\n this.httpClient\n );\n\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n\n private isDataForRequestLoaded(request: Partial<ExtendedRequestType<T>>) {\n if (request.useNewData) {\n return false;\n }\n\n const offset = request.offset ?? 0;\n const limit = request.limit ?? DEFAULT_SEARCH_LIMIT;\n const options = this.activeComponent.options;\n if (!options) {\n return false;\n }\n\n if (options.length < offset + limit) {\n return false;\n }\n\n const allItemsFilled = options.slice(offset, offset + limit).every(item => item !== undefined && item != this.loadingPlaceholderItem);\n return allItemsFilled;\n }\n\n private setDataToControl(request: ExtendedRequestType<T>, result: Page<T>): void {\n this.isAllDataLoaded = result.total <= result.data.length;\n const data = result.data;\n const total = result.total;\n const offset = request.offset;\n const transferedData = this.transformFn\n ? data.map((x) => this.transformFn?.(x))\n : data;\n\n if (this.activeComponent.optionLabel) {\n this.loadingPlaceholderItem[this.activeComponent.optionLabel] =\n this.loadingText;\n }\n\n if (this.activeComponent.optionValue) {\n this.loadingPlaceholderItem[this.activeComponent.optionValue] = -1;\n }\n\n const options = request.useNewData ? undefined : this.activeComponent.options;\n const newOptions = setDataToArray(\n options,\n transferedData,\n offset,\n total,\n this.loadingPlaceholderItem\n );\n\n this.changeComponent(this.activeComponent, {\n options: newOptions as T[],\n loading: false,\n lazy: !this.isAllDataLoaded,\n });\n }\n\n private changeComponent(\n component: DataSourceComponentModel<T>,\n value: Partial<DataSourceComponentModel<T>>\n ) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectorRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n BASE_URL_PATH,\n BaseHttpService,\n convertDatasource,\n DataSourceFunctionType,\n DatasourceType,\n LazyLoadEvent,\n normalizeRequest,\n Page,\n RequestParams,\n} from '@verisoft/core';\nimport {\n BehaviorSubject,\n catchError,\n debounceTime,\n map,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport {\n DEFAULT_DEBOUNCE_TIME,\n ExtendedRequestType,\n isFilterEmpty,\n setComponentProperties,\n} from '../common';\nimport {\n TABLE_COMPONENT_TOKEN,\n TableCore,\n UnsubscribeComponent,\n} from '../components';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-table[useDatasource]',\n exportAs: 'useDatasource',\n standalone: true,\n})\nexport class TableDatasourceDirective<T>\n extends UnsubscribeComponent\n implements OnInit, OnChanges\n{\n protected readonly store = inject(Store);\n\n @Input() autoBind = true;\n\n @Input({ required: true }) tableName!: string;\n\n @Input() debounceTime = DEFAULT_DEBOUNCE_TIME;\n\n @Input() datasource!: DatasourceType<T>;\n\n @Input() extraFilter!: any;\n\n @Input() transformFn?: (data: T) => unknown;\n\n private tableComponent = inject<TableCore<T>>(TABLE_COMPONENT_TOKEN, {\n self: true,\n });\n private changeDetectorRef = inject(ChangeDetectorRef);\n private httpClient = inject(HttpClient);\n private baseUrl: string = inject(BASE_URL_PATH);\n\n private dataSourceService?: DataSourceFunctionType<T>;\n private parameters$ = new BehaviorSubject<Partial<ExtendedRequestType<T>>>({});\n\n params$ = this.parameters$.asObservable();\n\n ngOnInit(): void {\n if (!this.tableName) {\n throw new Error('Property tableName must be defined.');\n }\n\n this.tableComponent.lazyLoad.pipe(takeUntil(this.destroyed$)).subscribe((value: LazyLoadEvent) => {\n this.parameters$.next({\n offset: value?.offset,\n limit: value?.limit,\n filter: { ...value?.filter, ...this.extraFilter },\n sort: value?.sort,\n });\n });\n\n this.parameters$\n .pipe(\n takeUntil(this.destroyed$),\n map((request) =>\n normalizeRequest({\n ...request,\n filter: { ...request.filter, ...this.extraFilter },\n })\n ),\n debounceTime(this.debounceTime),\n tap(() => {\n this.changeComponent(this.tableComponent, {\n lazy: true,\n loading: true,\n });\n }),\n switchMap((request) =>\n this.dataSourceService\n ? this.dataSourceService(request).pipe(\n map((response) => ({ request, response }))\n )\n : of({\n request,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n })\n ),\n catchError((request) => {\n this.changeComponent(this.tableComponent, {\n loading: false,\n });\n return of({\n request: request as ExtendedRequestType<T>,\n response: {\n data: [] as T[],\n total: 0,\n limit: request.limit,\n offset: request.offset,\n } as Page<T>,\n });\n })\n )\n .subscribe(({ request, response }) =>\n this.setDataToControl(request, response)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['datasource']) {\n this.dataSourceService = convertDatasource(\n this.datasource,\n this.baseUrl,\n this.httpClient\n );\n\n if (this.autoBind) {\n this.parameters$.next({ offset: 0 });\n }\n }\n }\n\n reload() {\n this.parameters$.next({ ...this.parameters$.value });\n }\n\n private changeComponent(\n component: TableCore<T>,\n value: Partial<TableCore<T>>\n ) {\n setComponentProperties(component, value);\n this.changeDetectorRef.detectChanges();\n }\n\n private setDataToControl(request: RequestParams<T>, result: Page<T>): void {\n const data = result.data;\n const total = result.total;\n const transferedData = this.transformFn ? data.map((x) => this.transformFn?.(x)) : data;\n\n this.changeComponent(this.tableComponent, {\n lazy: !isFilterEmpty(request.filter) || data?.length < total || this.datasource instanceof BaseHttpService,\n data: transferedData as T[],\n loading: false,\n total,\n });\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'v-button[useShortCut]',\n exportAs: 'useShortCut',\n standalone: true,\n })\n export class ButtonShortCutDirective\n {\n @Input() shortCutFn?: () => void;\n @Input() shortCutKey!: string;\n\n private keyMap: { [key: string]: boolean } = {};\n\n @HostListener('document:keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n this.keyMap[event.key.toLowerCase()] = true;\n this.checkShortcut();\n }\n \n @HostListener('document:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n this.keyMap[event.key.toLowerCase()] = false;\n }\n\n private checkShortcut() {\n if (this.shortCutKey && this.shortCutFn) {\n const keys = this.shortCutKey.toLowerCase().split('+');\n const isShortcutPressed = keys.every((key) => this.keyMap[key]); \n if (isShortcutPressed) {\n this.shortCutFn?.();\n keys.forEach((key) => (this.keyMap[key] = false));\n }\n }\n }\n}","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { debounceTime, Subject, Subscription } from 'rxjs';\r\nimport { DEFAULT_DEBOUNCE_TIME, setComponentProperties } from '../common';\r\nimport { FilterCore, TABLE_COMPONENT_TOKEN, TableCore } from '../components';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: 'v-table[useFilter]',\r\n standalone: true,\r\n exportAs: 'tableFilterDirective',\r\n})\r\nexport class TableFilterDirective<T> implements OnChanges, OnDestroy {\r\n @Input({ required: true }) filterComponent!: FilterCore;\r\n\r\n private filterChange$ = new Subject<T>();\r\n private subscription: Subscription | undefined = undefined;\r\n\r\n private tableComponent = inject<TableCore<T>>(TABLE_COMPONENT_TOKEN);\r\n\r\n private changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['filterComponent']) {\r\n this.unRegister();\r\n this.register();\r\n }\r\n }\r\n\r\n private onFilterChange(value: T): void {\r\n if (this.tableComponent?.filter !== value) {\r\n setComponentProperties(this.tableComponent, {\r\n filter: value,\r\n currentPage: 1,\r\n });\r\n \r\n this.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unRegister();\r\n }\r\n\r\n private unRegister() {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n private register() {\r\n this.filterComponent.registerOnChange((value: T) => {\r\n this.filterChange$.next(value);\r\n });\r\n\r\n this.subscription = this.filterChange$\r\n .pipe(\r\n debounceTime(\r\n this.filterComponent.debounceTime ? 0 : DEFAULT_DEBOUNCE_TIME\r\n )\r\n )\r\n .subscribe((value) => this.onFilterChange(value));\r\n }\r\n}\r\n","type ErrorCodesFn = (value?: any) => string;\n\nexport const ErrorCodesFns: { [key: string]: ErrorCodesFn } = {\n required: () => `This field is required!`,\n email: () => `Email is in wrong format!`,\n iban: () => `IBAN is in wrong format!`,\n lowStrength: () => `Password too weak!`,\n customPasswordRequirements: () => `Password does not meet minimal requirements.`,\n fieldsNotMatching: () => `Passwords are not the same!`,\n validationError: (value: any) => `${value}`,\n};\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\ntype ErrorValue = { key: string; value: string } | null;\n\nexport function getFirstErrorFromControl<T extends AbstractControl>(\n control: T\n): ErrorValue {\n if (!control || !control.errors) {\n return null;\n }\n const errors = control.errors ?? false;\n if (errors) {\n const key = Object.keys(control.errors)[0];\n const value = control.errors[key];\n return { key, value };\n }\n return null;\n}\n\nexport function getFirstError(errors: ValidationErrors): ErrorValue {\n if (errors) {\n const key = Object.keys(errors)[0];\n const value = errors[key];\n return { key, value };\n }\n return null;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { ErrorCodesFns } from './error.codes';\nimport { getFirstError } from './error.models';\n\nconst EMPTY = '';\n\n@Pipe({\n name: 'error',\n standalone: true,\n})\nexport class ErrorPipe implements PipeTransform {\n transform(errors: ValidationErrors | undefined | null): string {\n if (!errors) {\n return EMPTY;\n }\n const error = getFirstError(errors);\n if (error) {\n const errorFn = ErrorCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return ErrorCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n}\n","type WarningCodesFn = (value?: any) => string;\n\nexport const WarningCodesFns: { [key: string]: WarningCodesFn } = {\n validationWarning: (value: any) => `${value}`,\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { getFirstError } from './error.models';\nimport { WarningCodesFns } from './warning.codes';\n\nconst EMPTY = '';\n\n@Pipe({\n name: 'warning',\n standalone: true,\n})\nexport class WarningPipe implements PipeTransform {\n transform(warnings: ValidationErrors | undefined | null): string {\n if (!warnings) {\n return EMPTY;\n }\n const error = getFirstError(warnings);\n if (error) {\n const errorFn = WarningCodesFns[error.key];\n if (!errorFn) {\n return EMPTY;\n }\n return WarningCodesFns[error.key](error.value);\n }\n return EMPTY;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyOrFn',\n pure: false,\n standalone: true,\n})\nexport class KeyOrFunctionPipe implements PipeTransform {\n transform(keyOrFn: any, row: any): any {\n if (keyOrFn instanceof Function) {\n return keyOrFn(row);\n } else if (typeof keyOrFn === 'string') {\n const value = row[keyOrFn];\n if (value) {\n return value;\n }\n } else if (typeof keyOrFn === 'boolean') {\n return keyOrFn;\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'enumToList',\n standalone: true,\n})\nexport class EnumToListPipe implements PipeTransform {\n transform(data: any): any[] {\n return Object.keys(data)\n .filter(key => isNaN(Number(key)))\n .map(key => ({\n label: key,\n value: data[key as keyof typeof data],\n }));\n }\n}","import { toCzechDateTimeString } from \"@verisoft/core\";\n\n/* eslint-disable @typescript-eslint/ban-types */\nexport class Format {\n static concatArray(value: any[], itemFormatter?: Function, delimeter = ';') {\n if (!value) {\n return '';\n }\n\n return value\n .map(item => itemFormatter ? itemFormatter(item) : item)\n .filter(item => item !== undefined && item !== null)\n .join(`${delimeter} `);\n }\n\n static czechDate(value: Date | string) {\n return toCzechDateTimeString(value);\n }\n\n static date(value: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return value.getDate() + '. ' + (value.getMonth() + 1) + '. ' + value.getFullYear();\n }\n\n static dateAndTime(value: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return ('0' + value.getDate()).slice(-2)\n + '.' + ('0' + (value.getMonth() + 1)).slice(-2)\n + '.' + value.getFullYear() + ' ' + ('0' + value.getHours()).slice(-2)\n + ':' + ('0' + value.getMinutes()).slice(-2) + ':' + ('0' + value.getSeconds()).slice(-2);\n }\n\n static convertToUserLocaleDate(value?: Date | string) {\n if (!value) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = new Date(value);\n }\n\n return value.toLocaleDateString(navigator.language, { timeZone: 'UTC' });\n }\n\n static bool(value: boolean) {\n if (value) {\n return 'Yes';\n } else {\n return 'No';\n }\n }\n\n static boolWithIcon(value: boolean) {\n if (value) {\n return `<span>✓</span>`;\n } else {\n return `<span>⨯</span>`;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.PageHeaderService","i1.SideMenuService","EMPTY"],"mappings":"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"}