@churchillliving/se-ui-toolkit 6.54.638 → 6.54.640

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.
@@ -99,12 +99,12 @@ export class HeaderComponent {
99
99
  }
100
100
  }
101
101
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, deps: [{ token: i1.AuthenticationService }, { token: i2.DatePipe }, { token: i3.HyperlinkService }], target: i0.ɵɵFactoryTarget.Component }); }
102
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeaderComponent, selector: "se-header", inputs: { headers: "headers" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!isHeaderHidden && headers\" class=\"card sticky header-component\">\n <div class=\"header-list p-1 flex\">\n <div\n [class]=\"'md:col-' + headers.column + ' sm:col-6 col-12 py-0'\"\n class=\"header-list-item section-wrapper-in-header\"\n *ngFor=\"let headerField of headers.fields\"\n >\n <div [ngSwitch]=\"headerField.control\">\n <!-- For Dropdown -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.DROPDOWN\"\n >\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <p-dropdown\n [placeholder]=\"headerField.label\"\n [options]=\"headerField.data\"\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-dropdown>\n </div>\n </span>\n \n <!-- For label -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.LABEL\"\n >\n <b *ngIf=\"headerField.label?.length > 0\"\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <!-- for value -->\n <Span *ngIf=\"!headerField.format\" >\n <label for=\"\" [style.color]=\"headerField.colorFont ? headerField.colorFont : ''\">{{ headerField.value }}</label> \n </Span>\n\n <!-- for currency -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'currency'\n \"\n >\n <label>{{\n headerField.value\n | currency\n : (headerField.format.formatParams &&\n headerField.format.formatParams.currency\n ? headerField.format.formatParams.currency\n : 'USD')\n }}</label>\n </span>\n\n <!-- for percent -->\n <span *ngIf=\"headerField.format && headerField.format.type === 'percent'\">\n <label >{{ headerField.value }}%</label>\n </span>\n\n <!-- for decimal -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'decimal'\n \"\n >\n <label>{{\n headerField.value\n | number\n : (headerField.format.formatParams &&\n headerField.format.formatParams.digitsInfo\n ? '2.' +\n headerField.format.formatParams.digitsInfo +\n '-8'\n : '2.2-8')\n }}</label>\n </span>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.INPUT\">\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <input\n class=\"mr-2 form-control\"\n type=\"text\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label>{{ headerField.label }}</label>\n <input\n class=\"flex-grow-1 mr-2 form-control\"\n type=\"number\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Checkbox -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label>{{ headerField.label }}</label>\n <p-checkbox\n class=\"flex align-items-center\"\n [(ngModel)]=\"headerField.value\"\n binary=\"true\"\n ></p-checkbox>\n </div>\n </span>\n\n <!-- hyperLink -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"headerField.hyperlink\">\n <a class=\"header-link\" tabindex=\"-1\" [href]=\"headerField.hyperlink?.link\" [target]=\"headerField.hyperlink?.target ? headerField.hyperlink?.target : '_blank'\"\n data-title-element=\"self\">\n {{ headerField.label }}\n </a>\n </div>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <label>{{ headerField.label }}</label>\n <p-datepicker\n class=\"flex-grow-1 mr-2\"\n [placeholder]=\"headerField.label\"\n [showButtonBar]=\"!headerField.timeOnly\"\n [(ngModel)]=\"headerField.value\"\n hourFormat=\"12\"\n dataType=\"string\"\n [timeOnly]=\"headerField.timeOnly\"\n [showTime]=\"headerField.showTime\"\n [dateFormat]=\"headerField.format ? headerField.format.dateType : 'mm/dd/yy'\"\n >\n </p-datepicker>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label>{{ headerField.label }}</label>\n <p-multiSelect\n [(ngModel)]=\"headerField.value\"\n [options]=\"headerField.data\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [appendTo]=\"'body'\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Button -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.BUTTON\">\n <button\n pButton\n pRipple\n type=\"button\"\n label=\"{{ headerField.label }}\"\n class=\"{{ headerField.class }}\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n ></button>\n </div>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".header-list-item:after{content:\"\"}.header-list-item:last-child:after{display:none}.card.sticky{position:sticky;z-index:1;top:0}:host ::ng-deep .header-link{font-size:12px!important;font-weight:500!important;font-style:normal!important;font-stretch:normal!important;letter-spacing:.5px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i7.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: i8.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "directive", type: i9.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: i10.Ripple, selector: "[pRipple]" }, { kind: "directive", type: i11.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.CurrencyPipe, name: "currency" }] }); }
102
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeaderComponent, selector: "se-header", inputs: { headers: "headers" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!isHeaderHidden && headers\" class=\"card sticky header-component\">\n <div class=\"header-list p-1 flex\">\n <div\n [class]=\"'md:col-' + headerField.column + ' sm:col-6 col-12 py-0'\"\n class=\"header-list-item section-wrapper-in-header\"\n *ngFor=\"let headerField of headers.fields\"\n >\n <div [ngSwitch]=\"headerField.control\">\n <!-- For Dropdown -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.DROPDOWN\"\n >\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <p-dropdown\n [placeholder]=\"headerField.label\"\n [options]=\"headerField.data\"\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-dropdown>\n </div>\n </span>\n \n <!-- For label -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.LABEL\"\n >\n <b *ngIf=\"headerField.label?.length > 0\"\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <!-- for value -->\n <Span *ngIf=\"!headerField.format\" >\n <label for=\"\" [style.color]=\"headerField.colorFont ? headerField.colorFont : ''\">{{ headerField.value }}</label> \n </Span>\n\n <!-- for currency -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'currency'\n \"\n >\n <label>{{\n headerField.value\n | currency\n : (headerField.format.formatParams &&\n headerField.format.formatParams.currency\n ? headerField.format.formatParams.currency\n : 'USD')\n }}</label>\n </span>\n\n <!-- for percent -->\n <span *ngIf=\"headerField.format && headerField.format.type === 'percent'\">\n <label >{{ headerField.value }}%</label>\n </span>\n\n <!-- for decimal -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'decimal'\n \"\n >\n <label>{{\n headerField.value\n | number\n : (headerField.format.formatParams &&\n headerField.format.formatParams.digitsInfo\n ? '2.' +\n headerField.format.formatParams.digitsInfo +\n '-8'\n : '2.2-8')\n }}</label>\n </span>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.INPUT\">\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <input\n class=\"mr-2 form-control\"\n type=\"text\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label>{{ headerField.label }}</label>\n <input\n class=\"flex-grow-1 mr-2 form-control\"\n type=\"number\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Checkbox -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label>{{ headerField.label }}</label>\n <p-checkbox\n class=\"flex align-items-center\"\n [(ngModel)]=\"headerField.value\"\n binary=\"true\"\n ></p-checkbox>\n </div>\n </span>\n\n <!-- hyperLink -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"headerField.hyperlink\">\n <a class=\"header-link\" tabindex=\"-1\" [href]=\"headerField.hyperlink?.link\" [target]=\"headerField.hyperlink?.target ? headerField.hyperlink?.target : '_blank'\"\n data-title-element=\"self\">\n {{ headerField.label }}\n </a>\n </div>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <label>{{ headerField.label }}</label>\n <p-datepicker\n class=\"flex-grow-1 mr-2\"\n [placeholder]=\"headerField.label\"\n [showButtonBar]=\"!headerField.timeOnly\"\n [(ngModel)]=\"headerField.value\"\n hourFormat=\"12\"\n dataType=\"string\"\n [timeOnly]=\"headerField.timeOnly\"\n [showTime]=\"headerField.showTime\"\n [dateFormat]=\"headerField.format ? headerField.format.dateType : 'mm/dd/yy'\"\n >\n </p-datepicker>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label>{{ headerField.label }}</label>\n <p-multiSelect\n [(ngModel)]=\"headerField.value\"\n [options]=\"headerField.data\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [appendTo]=\"'body'\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Button -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.BUTTON\">\n <button\n pButton\n pRipple\n type=\"button\"\n label=\"{{ headerField.label }}\"\n class=\"{{ headerField.class }}\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n ></button>\n </div>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".header-list-item:after{content:\"\"}.header-list-item:last-child:after{display:none}.card.sticky{position:sticky;z-index:1;top:0}:host ::ng-deep .header-link{font-size:12px!important;font-weight:500!important;font-style:normal!important;font-stretch:normal!important;letter-spacing:.5px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i7.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: i8.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "directive", type: i9.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: i10.Ripple, selector: "[pRipple]" }, { kind: "directive", type: i11.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i2.CurrencyPipe, name: "currency" }] }); }
103
103
  }
104
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, decorators: [{
105
105
  type: Component,
106
- args: [{ selector: 'se-header', template: "<div *ngIf=\"!isHeaderHidden && headers\" class=\"card sticky header-component\">\n <div class=\"header-list p-1 flex\">\n <div\n [class]=\"'md:col-' + headers.column + ' sm:col-6 col-12 py-0'\"\n class=\"header-list-item section-wrapper-in-header\"\n *ngFor=\"let headerField of headers.fields\"\n >\n <div [ngSwitch]=\"headerField.control\">\n <!-- For Dropdown -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.DROPDOWN\"\n >\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <p-dropdown\n [placeholder]=\"headerField.label\"\n [options]=\"headerField.data\"\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-dropdown>\n </div>\n </span>\n \n <!-- For label -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.LABEL\"\n >\n <b *ngIf=\"headerField.label?.length > 0\"\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <!-- for value -->\n <Span *ngIf=\"!headerField.format\" >\n <label for=\"\" [style.color]=\"headerField.colorFont ? headerField.colorFont : ''\">{{ headerField.value }}</label> \n </Span>\n\n <!-- for currency -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'currency'\n \"\n >\n <label>{{\n headerField.value\n | currency\n : (headerField.format.formatParams &&\n headerField.format.formatParams.currency\n ? headerField.format.formatParams.currency\n : 'USD')\n }}</label>\n </span>\n\n <!-- for percent -->\n <span *ngIf=\"headerField.format && headerField.format.type === 'percent'\">\n <label >{{ headerField.value }}%</label>\n </span>\n\n <!-- for decimal -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'decimal'\n \"\n >\n <label>{{\n headerField.value\n | number\n : (headerField.format.formatParams &&\n headerField.format.formatParams.digitsInfo\n ? '2.' +\n headerField.format.formatParams.digitsInfo +\n '-8'\n : '2.2-8')\n }}</label>\n </span>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.INPUT\">\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <input\n class=\"mr-2 form-control\"\n type=\"text\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label>{{ headerField.label }}</label>\n <input\n class=\"flex-grow-1 mr-2 form-control\"\n type=\"number\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Checkbox -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label>{{ headerField.label }}</label>\n <p-checkbox\n class=\"flex align-items-center\"\n [(ngModel)]=\"headerField.value\"\n binary=\"true\"\n ></p-checkbox>\n </div>\n </span>\n\n <!-- hyperLink -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"headerField.hyperlink\">\n <a class=\"header-link\" tabindex=\"-1\" [href]=\"headerField.hyperlink?.link\" [target]=\"headerField.hyperlink?.target ? headerField.hyperlink?.target : '_blank'\"\n data-title-element=\"self\">\n {{ headerField.label }}\n </a>\n </div>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <label>{{ headerField.label }}</label>\n <p-datepicker\n class=\"flex-grow-1 mr-2\"\n [placeholder]=\"headerField.label\"\n [showButtonBar]=\"!headerField.timeOnly\"\n [(ngModel)]=\"headerField.value\"\n hourFormat=\"12\"\n dataType=\"string\"\n [timeOnly]=\"headerField.timeOnly\"\n [showTime]=\"headerField.showTime\"\n [dateFormat]=\"headerField.format ? headerField.format.dateType : 'mm/dd/yy'\"\n >\n </p-datepicker>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label>{{ headerField.label }}</label>\n <p-multiSelect\n [(ngModel)]=\"headerField.value\"\n [options]=\"headerField.data\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [appendTo]=\"'body'\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Button -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.BUTTON\">\n <button\n pButton\n pRipple\n type=\"button\"\n label=\"{{ headerField.label }}\"\n class=\"{{ headerField.class }}\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n ></button>\n </div>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".header-list-item:after{content:\"\"}.header-list-item:last-child:after{display:none}.card.sticky{position:sticky;z-index:1;top:0}:host ::ng-deep .header-link{font-size:12px!important;font-weight:500!important;font-style:normal!important;font-stretch:normal!important;letter-spacing:.5px!important}\n"] }]
106
+ args: [{ selector: 'se-header', template: "<div *ngIf=\"!isHeaderHidden && headers\" class=\"card sticky header-component\">\n <div class=\"header-list p-1 flex\">\n <div\n [class]=\"'md:col-' + headerField.column + ' sm:col-6 col-12 py-0'\"\n class=\"header-list-item section-wrapper-in-header\"\n *ngFor=\"let headerField of headers.fields\"\n >\n <div [ngSwitch]=\"headerField.control\">\n <!-- For Dropdown -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.DROPDOWN\"\n >\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <p-dropdown\n [placeholder]=\"headerField.label\"\n [options]=\"headerField.data\"\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-dropdown>\n </div>\n </span>\n \n <!-- For label -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.LABEL\"\n >\n <b *ngIf=\"headerField.label?.length > 0\"\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <!-- for value -->\n <Span *ngIf=\"!headerField.format\" >\n <label for=\"\" [style.color]=\"headerField.colorFont ? headerField.colorFont : ''\">{{ headerField.value }}</label> \n </Span>\n\n <!-- for currency -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'currency'\n \"\n >\n <label>{{\n headerField.value\n | currency\n : (headerField.format.formatParams &&\n headerField.format.formatParams.currency\n ? headerField.format.formatParams.currency\n : 'USD')\n }}</label>\n </span>\n\n <!-- for percent -->\n <span *ngIf=\"headerField.format && headerField.format.type === 'percent'\">\n <label >{{ headerField.value }}%</label>\n </span>\n\n <!-- for decimal -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'decimal'\n \"\n >\n <label>{{\n headerField.value\n | number\n : (headerField.format.formatParams &&\n headerField.format.formatParams.digitsInfo\n ? '2.' +\n headerField.format.formatParams.digitsInfo +\n '-8'\n : '2.2-8')\n }}</label>\n </span>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.INPUT\">\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <input\n class=\"mr-2 form-control\"\n type=\"text\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label>{{ headerField.label }}</label>\n <input\n class=\"flex-grow-1 mr-2 form-control\"\n type=\"number\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Checkbox -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label>{{ headerField.label }}</label>\n <p-checkbox\n class=\"flex align-items-center\"\n [(ngModel)]=\"headerField.value\"\n binary=\"true\"\n ></p-checkbox>\n </div>\n </span>\n\n <!-- hyperLink -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"headerField.hyperlink\">\n <a class=\"header-link\" tabindex=\"-1\" [href]=\"headerField.hyperlink?.link\" [target]=\"headerField.hyperlink?.target ? headerField.hyperlink?.target : '_blank'\"\n data-title-element=\"self\">\n {{ headerField.label }}\n </a>\n </div>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <label>{{ headerField.label }}</label>\n <p-datepicker\n class=\"flex-grow-1 mr-2\"\n [placeholder]=\"headerField.label\"\n [showButtonBar]=\"!headerField.timeOnly\"\n [(ngModel)]=\"headerField.value\"\n hourFormat=\"12\"\n dataType=\"string\"\n [timeOnly]=\"headerField.timeOnly\"\n [showTime]=\"headerField.showTime\"\n [dateFormat]=\"headerField.format ? headerField.format.dateType : 'mm/dd/yy'\"\n >\n </p-datepicker>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label>{{ headerField.label }}</label>\n <p-multiSelect\n [(ngModel)]=\"headerField.value\"\n [options]=\"headerField.data\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [appendTo]=\"'body'\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Button -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.BUTTON\">\n <button\n pButton\n pRipple\n type=\"button\"\n label=\"{{ headerField.label }}\"\n class=\"{{ headerField.class }}\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n ></button>\n </div>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".header-list-item:after{content:\"\"}.header-list-item:last-child:after{display:none}.card.sticky{position:sticky;z-index:1;top:0}:host ::ng-deep .header-link{font-size:12px!important;font-weight:500!important;font-style:normal!important;font-stretch:normal!important;letter-spacing:.5px!important}\n"] }]
107
107
  }], ctorParameters: () => [{ type: i1.AuthenticationService }, { type: i2.DatePipe }, { type: i3.HyperlinkService }], propDecorators: { headers: [{
108
108
  type: Input
109
109
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlLXVpLXRvb2xraXQvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL2hlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQWUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVMvRSxNQUFNLE9BQU8sZUFBZTtJQU8xQixZQUFvQixXQUFrQyxFQUFTLFFBQWtCLEVBQVMsZ0JBQWtDO1FBQXhHLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBUyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBSjVILGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBQzNCLFVBQUssR0FBYSxFQUFFLENBQUM7UUFDckIsbUJBQWMsR0FBWSxLQUFLLENBQUM7SUFFK0YsQ0FBQztJQUVoSSxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdDLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxPQUFPLENB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SW5pdCwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUhlYWRlciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9oZWFkZXIubW9kZWwnO1xuaW1wb3J0IHsgRUZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBFUGVybWlzc2lvblR5cGUsIElQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3VzZXItaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIeXBlcmxpbmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaHlwZXJsaW5rLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZS1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaGVhZGVyczogSUhlYWRlcjtcblxuICBkeW5hbWljQ2FzZSA9IEVGb3JtQ29udHJvbDtcbiAgcm9sZXM6IHN0cmluZ1tdID0gW107XG4gIGlzSGVhZGVySGlkZGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLCBwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlLCBwdWJsaWMgaHlwZXJsaW5rU2VydmljZTogSHlwZXJsaW5rU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvbGVzID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyUm9sZXMoKTtcbiAgICAvLyBhcHBseSB1c2VyIHJvbGUgcGVybWlzc2lvbnMgb24gZm9ybVxuICAgIHRoaXMuYXBwbHlVc2VyUGVybWlzc2lvbnMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlYWRlcnMgJiYgdGhpcy5oZWFkZXJzLmZpZWxkcykge1xuICAgICAgdGhpcy5oZWFkZXJzLmZpZWxkcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgIGlmICgheC5zaG93VGltZSAmJiAheC50aW1lT25seSAmJiB4LnZhbHVlPy50b1N0cmluZygpLm1hdGNoKC9bMC05XSstXFxzPy9nKSkge1xuICAgICAgICAgIHgudmFsdWUgPSB0aGlzLmRhdGVwaXBlLnRyYW5zZm9ybSh4LnZhbHVlLCAneXl5eS1NTS1kZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh4LnZhbHVlPy50b1N0cmluZygpLmluY2x1ZGVzKCc6JykgJiYgeC50aW1lT25seSkge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0geC52YWx1ZS5pbmRleE9mKCc6Jyk7XG4gICAgICAgICAgY29uc3QgdGltZSA9IHgudmFsdWUuc3Vic3RyaW5nKGluZGV4IC0gMiwgaW5kZXggKyA2KTtcbiAgICAgICAgICB4LnZhbHVlID0gdGltZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoeC5jb250cm9sID09PSBFRm9ybUNvbnRyb2wuSFlQRVJMSU5LICYmIHguaHlwZXJsaW5rPy5saW5rSWQpIHtcbiAgICAgICAgICB0aGlzLmh5cGVybGlua1NlcnZpY2UuYnVpbGRVcmwoeC5oeXBlcmxpbms/LmxpbmtJZCkudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzWzBdPy51cmwpIHtcbiAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxVcmwgPSB0aGlzLmh5cGVybGlua1NlcnZpY2Uuc2V0VXJsKHg/Lmh5cGVybGluaz8ucGFyYW1zLCByZXNbMF0pO1xuICAgICAgICAgICAgICB4Lmh5cGVybGlua1snbGluayddID0gb3JpZ2luYWxVcmw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gYXBwbHkgdXNlciByb2xlIHBlcm1pc3Npb25zXG4gIGFwcGx5VXNlclBlcm1pc3Npb25zKCkge1xuICAgIGlmICh0aGlzLmhlYWRlcnMpIHtcbiAgICAgIGxldCB0b3RhbEZpZWxkczogbnVtYmVyID0gMDtcbiAgICAgIGxldCBoaWRkZW5GaWVsZHM6IG51bWJlciA9IDA7XG5cbiAgICAgIHRoaXMuaGVhZGVycy5maWVsZHMuZm9yRWFjaCgoaGVhZGVyRmllbGQpID0+IHtcbiAgICAgICAgbGV0IHBlcm1pc3Npb25zOiBhbnkgPSBoZWFkZXJGaWVsZC5wZXJtaXNzaW9ucztcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9ucykgcGVybWlzc2lvbnMgPSB0aGlzLmhlYWRlcnMucGVybWlzc2lvbnM7XG4gICAgICAgIGxldCBoYXNWYWxpZEVkaXRQZXJtaXNzaW9uID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHBlcm1pc3Npb25zICYmIHBlcm1pc3Npb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwZXJtaXNzaW9ucy5mb3JFYWNoKChwZXJtaXNzaW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAocGVybWlzc2lvbi5yb2xlcyAmJiBwZXJtaXNzaW9uLnJvbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgcGVybWlzc2lvbi5yb2xlcy5mb3JFYWNoKChyb2xlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWQgJiYgdGhpcy5yb2xlcyAmJiB0aGlzLnJvbGVzLmluY2x1ZGVzKHJvbGUpKSB7XG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgcGVybWlzc2lvbi50eXBlID09PSBFUGVybWlzc2lvblR5cGUuVklFVyAmJlxuICAgICAgICAgICAgICAgICFoYXNWYWxpZEVkaXRQZXJtaXNzaW9uXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICBoZWFkZXJGaWVsZC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGhlYWRlckZpZWxkLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBlcm1pc3Npb24udHlwZSA9PT0gRVBlcm1pc3Npb25UeXBlLkVESVQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICAgICAgICAgICAgaGFzVmFsaWRFZGl0UGVybWlzc2lvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBoZWFkZXJGaWVsZC5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgaGVhZGVyRmllbGQuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGhlYWRlckZpZWxkLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvdGFsRmllbGRzKys7XG5cbiAgICAgICAgaWYgKGhlYWRlckZpZWxkLmhpZGRlbikge1xuICAgICAgICAgIGhpZGRlbkZpZWxkcysrO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5pc0hlYWRlckhpZGRlbiA9IHRvdGFsRmllbGRzID4gMCAmJiB0b3RhbEZpZWxkcyA9PT0gaGlkZGVuRmllbGRzO1xuICAgIH1cbiAgfVxufVxuXG4iLCI8ZGl2ICpuZ0lmPVwiIWlzSGVhZGVySGlkZGVuICYmIGhlYWRlcnNcIiBjbGFzcz1cImNhcmQgc3RpY2t5IGhlYWRlci1jb21wb25lbnRcIj5cbiAgPGRpdiBjbGFzcz1cImhlYWRlci1saXN0IHAtMSBmbGV4XCI+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cIidtZDpjb2wtJyArIGhlYWRlcnMuY29sdW1uICsgJyBzbTpjb2wtNiBjb2wtMTIgcHktMCdcIlxuICAgICAgY2xhc3M9XCJoZWFkZXItbGlzdC1pdGVtIHNlY3Rpb24td3JhcHBlci1pbi1oZWFkZXJcIlxuICAgICAgKm5nRm9yPVwibGV0IGhlYWRlckZpZWxkIG9mIGhlYWRlcnMuZmllbGRzXCJcbiAgICA+XG4gICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJoZWFkZXJGaWVsZC5jb250cm9sXCI+XG4gICAgICAgIDwhLS0gRm9yIERyb3Bkb3duIC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFoZWFkZXJGaWVsZC5oaWRkZW5cIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIHNlY3Rpb24td3JhcHBlci1pbi1oZWFkZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJkeW5hbWljQ2FzZS5EUk9QRE9XTlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJcbiAgICAgICAgICAgICAgPjxsYWJlbCBmb3I9XCJcIj57eyBoZWFkZXJGaWVsZC5sYWJlbCB9fTwvbGFiZWw+PC9iXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaGVhZGVyRmllbGQubGFiZWxcIlxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJoZWFkZXJGaWVsZC5kYXRhXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoZWFkZXJGaWVsZC52YWx1ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoZWFkZXJGaWVsZC5vbkNsaWNrID8gaGVhZGVyRmllbGQub25DbGljaygpIDogJydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIFxuICAgICAgICA8IS0tIEZvciBsYWJlbCAgLS0+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWhlYWRlckZpZWxkLmhpZGRlblwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgc2VjdGlvbi13cmFwcGVyLWluLWhlYWRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImR5bmFtaWNDYXNlLkxBQkVMXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YiAqbmdJZj1cImhlYWRlckZpZWxkLmxhYmVsPy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgPjxsYWJlbCBmb3I9XCJcIj57eyBoZWFkZXJGaWVsZC5sYWJlbCB9fTwvbGFiZWw+PC9iXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8IS0tIGZvciB2YWx1ZSAtLT5cbiAgICAgICAgICAgIDxTcGFuICpuZ0lmPVwiIWhlYWRlckZpZWxkLmZvcm1hdFwiICA+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgW3N0eWxlLmNvbG9yXT1cImhlYWRlckZpZWxkLmNvbG9yRm9udCA/IGhlYWRlckZpZWxkLmNvbG9yRm9udCA6ICcnXCI+e3sgaGVhZGVyRmllbGQudmFsdWUgfX08L2xhYmVsPiBcbiAgICAgICAgICA8L1NwYW4+XG5cbiAgICAgICAgICAgICA8IS0tIGZvciBjdXJyZW5jeSAtLT5cbiAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICBoZWFkZXJGaWVsZC5mb3JtYXQgJiYgaGVhZGVyRmllbGQuZm9ybWF0LnR5cGUgPT09ICdjdXJyZW5jeSdcbiAgICAgICAgICAgICBcIlxuICAgICAgICAgICA+XG4gICAgICAgICAgICAgPGxhYmVsPnt7XG4gICAgICAgICAgICAgICBoZWFkZXJGaWVsZC52YWx1ZVxuICAgICAgICAgICAgICAgICB8IGN1cnJlbmN5XG4gICAgICAgICAgICAgICAgICAgOiAoaGVhZGVyRmllbGQuZm9ybWF0LmZvcm1hdFBhcmFtcyAmJlxuICAgICAgICAgICAgICAgICAgICAgaGVhZGVyRmllbGQuZm9ybWF0LmZvcm1hdFBhcmFtcy5jdXJyZW5jeVxuICAgICAgICAgICAgICAgICAgICAgICA/IGhlYWRlckZpZWxkLmZvcm1hdC5mb3JtYXRQYXJhbXMuY3VycmVuY3lcbiAgICAgICAgICAgICAgICAgICAgICAgOiAnVVNEJylcbiAgICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgIDwhLS0gZm9yIHBlcmNlbnQgLS0+XG4gICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJoZWFkZXJGaWVsZC5mb3JtYXQgJiYgaGVhZGVyRmllbGQuZm9ybWF0LnR5cGUgPT09ICdwZXJjZW50J1wiPlxuICAgICAgICAgICAgICA8bGFiZWwgPnt7IGhlYWRlckZpZWxkLnZhbHVlIH19JTwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgPCEtLSBmb3IgZGVjaW1hbCAtLT5cbiAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICBoZWFkZXJGaWVsZC5mb3JtYXQgJiYgaGVhZGVyRmllbGQuZm9ybWF0LnR5cGUgPT09ICdkZWNpbWFsJ1xuICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICA8bGFiZWw+e3tcbiAgICAgICAgICAgICAgICAgaGVhZGVyRmllbGQudmFsdWVcbiAgICAgICAgICAgICAgICAgICB8IG51bWJlclxuICAgICAgICAgICAgICAgICAgICAgOiAoaGVhZGVyRmllbGQuZm9ybWF0LmZvcm1hdFBhcmFtcyAmJlxuICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJGaWVsZC5mb3JtYXQuZm9ybWF0UGFyYW1zLmRpZ2l0c0luZm9cbiAgICAgICAgICAgICAgICAgICAgICAgICA/ICcyLicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyRmllbGQuZm9ybWF0LmZvcm1hdFBhcmFtcy5kaWdpdHNJbmZvICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICctOCdcbiAgICAgICAgICAgICAgICAgICAgICAgICA6ICcyLjItOCcpXG4gICAgICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSBUZXh0IElucHV0IC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFoZWFkZXJGaWVsZC5oaWRkZW5cIj5cbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCJkeW5hbWljQ2FzZS5JTlBVVFwiPlxuICAgICAgICAgICAgPGJcbiAgICAgICAgICAgICAgPjxsYWJlbCBmb3I9XCJcIj57eyBoZWFkZXJGaWVsZC5sYWJlbCB9fTwvbGFiZWw+PC9iXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJtci0yIGZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhlYWRlckZpZWxkLnZhbHVlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhlYWRlckZpZWxkLm9uQ2xpY2sgPyBoZWFkZXJGaWVsZC5vbkNsaWNrKCkgOiAnJ1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSBOdW1iZXIgSW5wdXQgLS0+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWhlYWRlckZpZWxkLmhpZGRlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgcC0wXCIgKm5nU3dpdGNoQ2FzZT1cImR5bmFtaWNDYXNlLk5VTUVSSUNcIj5cbiAgICAgICAgICAgIDxsYWJlbD57eyBoZWFkZXJGaWVsZC5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWdyb3ctMSBtci0yIGZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaGVhZGVyRmllbGQudmFsdWVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGVhZGVyRmllbGQub25DbGljayA/IGhlYWRlckZpZWxkLm9uQ2xpY2soKSA6ICcnXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8IS0tIENoZWNrYm94IC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFoZWFkZXJGaWVsZC5oaWRkZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHAtMFwiICpuZ1N3aXRjaENhc2U9XCJkeW5hbWljQ2FzZS5DSEVDS0JPWFwiPlxuICAgICAgICAgICAgPGxhYmVsPnt7IGhlYWRlckZpZWxkLmxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhlYWRlckZpZWxkLnZhbHVlXCJcbiAgICAgICAgICAgICAgYmluYXJ5PVwidHJ1ZVwiXG4gICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgIDwhLS0gaHlwZXJMaW5rIC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFoZWFkZXJGaWVsZC5oaWRkZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHAtMFwiICpuZ1N3aXRjaENhc2U9XCJkeW5hbWljQ2FzZS5IWVBFUkxJTktcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoZWFkZXJGaWVsZC5oeXBlcmxpbmtcIj5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJoZWFkZXItbGlua1wiIHRhYmluZGV4PVwiLTFcIiBbaHJlZl09XCJoZWFkZXJGaWVsZC5oeXBlcmxpbms/LmxpbmtcIiBbdGFyZ2V0XT1cImhlYWRlckZpZWxkLmh5cGVybGluaz8udGFyZ2V0ID8gaGVhZGVyRmllbGQuaHlwZXJsaW5rPy50YXJnZXQgOiAnX2JsYW5rJ1wiXG4gICAgICAgICAgICAgICAgZGF0YS10aXRsZS1lbGVtZW50PVwic2VsZlwiPlxuICAgICAgICAgICAgICAgIHt7IGhlYWRlckZpZWxkLmxhYmVsIH19XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSBDYWxlbmRhciAtLT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaGVhZGVyRmllbGQuaGlkZGVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTBcIiAqbmdTd2l0Y2hDYXNlPVwiZHluYW1pY0Nhc2UuQ0FMRU5EQVJcIj5cbiAgICAgICAgICAgIDxsYWJlbD57eyBoZWFkZXJGaWVsZC5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8cC1kYXRlcGlja2VyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTEgbXItMlwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJoZWFkZXJGaWVsZC5sYWJlbFwiXG4gICAgICAgICAgICAgIFtzaG93QnV0dG9uQmFyXT1cIiFoZWFkZXJGaWVsZC50aW1lT25seVwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaGVhZGVyRmllbGQudmFsdWVcIlxuICAgICAgICAgICAgICBob3VyRm9ybWF0PVwiMTJcIlxuICAgICAgICAgICAgICBkYXRhVHlwZT1cInN0cmluZ1wiXG4gICAgICAgICAgICAgIFt0aW1lT25seV09XCJoZWFkZXJGaWVsZC50aW1lT25seVwiXG4gICAgICAgICAgICAgIFtzaG93VGltZV09XCJoZWFkZXJGaWVsZC5zaG93VGltZVwiXG4gICAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cImhlYWRlckZpZWxkLmZvcm1hdCA/IGhlYWRlckZpZWxkLmZvcm1hdC5kYXRlVHlwZSA6ICdtbS9kZC95eSdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wLWRhdGVwaWNrZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8IS0tIE11bHRpLXNlbGVjdCAtLT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaGVhZGVyRmllbGQuaGlkZGVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTBcIiAqbmdTd2l0Y2hDYXNlPVwiZHluYW1pY0Nhc2UuTVVMVElTRUxFQ1RcIj5cbiAgICAgICAgICAgIDxsYWJlbD57eyBoZWFkZXJGaWVsZC5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8cC1tdWx0aVNlbGVjdFxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhlYWRlckZpZWxkLnZhbHVlXCJcbiAgICAgICAgICAgICAgW29wdGlvbnNdPVwiaGVhZGVyRmllbGQuZGF0YVwiXG4gICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgW2FwcGVuZFRvXT1cIidib2R5J1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoZWFkZXJGaWVsZC5vbkNsaWNrID8gaGVhZGVyRmllbGQub25DbGljaygpIDogJydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wLW11bHRpU2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSBCdXR0b24gLS0+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWhlYWRlckZpZWxkLmhpZGRlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgcC0wXCIgKm5nU3dpdGNoQ2FzZT1cImR5bmFtaWNDYXNlLkJVVFRPTlwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGxhYmVsPVwie3sgaGVhZGVyRmllbGQubGFiZWwgfX1cIlxuICAgICAgICAgICAgICBjbGFzcz1cInt7IGhlYWRlckZpZWxkLmNsYXNzIH19XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhlYWRlckZpZWxkLm9uQ2xpY2sgPyBoZWFkZXJGaWVsZC5vbkNsaWNrKCkgOiAnJ1wiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlLXVpLXRvb2xraXQvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL2hlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTFELE9BQU8sRUFBRSxlQUFlLEVBQWUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVMvRSxNQUFNLE9BQU8sZUFBZTtJQU8xQixZQUFvQixXQUFrQyxFQUFTLFFBQWtCLEVBQVMsZ0JBQWtDO1FBQXhHLGdCQUFXLEdBQVgsV0FBVyxDQUF1QjtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBUyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBSjVILGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBQzNCLFVBQUssR0FBYSxFQUFFLENBQUM7UUFDckIsbUJBQWMsR0FBWSxLQUFLLENBQUM7SUFFK0YsQ0FBQztJQUVoSSxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdDLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxPQUFPLENB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SW5pdCwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUhlYWRlciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9oZWFkZXIubW9kZWwnO1xuaW1wb3J0IHsgRUZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBFUGVybWlzc2lvblR5cGUsIElQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3VzZXItaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIeXBlcmxpbmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaHlwZXJsaW5rLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZS1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaGVhZGVyczogSUhlYWRlcjtcblxuICBkeW5hbWljQ2FzZSA9IEVGb3JtQ29udHJvbDtcbiAgcm9sZXM6IHN0cmluZ1tdID0gW107XG4gIGlzSGVhZGVySGlkZGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLCBwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlLCBwdWJsaWMgaHlwZXJsaW5rU2VydmljZTogSHlwZXJsaW5rU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvbGVzID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyUm9sZXMoKTtcbiAgICAvLyBhcHBseSB1c2VyIHJvbGUgcGVybWlzc2lvbnMgb24gZm9ybVxuICAgIHRoaXMuYXBwbHlVc2VyUGVybWlzc2lvbnMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlYWRlcnMgJiYgdGhpcy5oZWFkZXJzLmZpZWxkcykge1xuICAgICAgdGhpcy5oZWFkZXJzLmZpZWxkcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgIGlmICgheC5zaG93VGltZSAmJiAheC50aW1lT25seSAmJiB4LnZhbHVlPy50b1N0cmluZygpLm1hdGNoKC9bMC05XSstXFxzPy9nKSkge1xuICAgICAgICAgIHgudmFsdWUgPSB0aGlzLmRhdGVwaXBlLnRyYW5zZm9ybSh4LnZhbHVlLCAneXl5eS1NTS1kZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh4LnZhbHVlPy50b1N0cmluZygpLmluY2x1ZGVzKCc6JykgJiYgeC50aW1lT25seSkge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0geC52YWx1ZS5pbmRleE9mKCc6Jyk7XG4gICAgICAgICAgY29uc3QgdGltZSA9IHgudmFsdWUuc3Vic3RyaW5nKGluZGV4IC0gMiwgaW5kZXggKyA2KTtcbiAgICAgICAgICB4LnZhbHVlID0gdGltZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoeC5jb250cm9sID09PSBFRm9ybUNvbnRyb2wuSFlQRVJMSU5LICYmIHguaHlwZXJsaW5rPy5saW5rSWQpIHtcbiAgICAgICAgICB0aGlzLmh5cGVybGlua1NlcnZpY2UuYnVpbGRVcmwoeC5oeXBlcmxpbms/LmxpbmtJZCkudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzWzBdPy51cmwpIHtcbiAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxVcmwgPSB0aGlzLmh5cGVybGlua1NlcnZpY2Uuc2V0VXJsKHg/Lmh5cGVybGluaz8ucGFyYW1zLCByZXNbMF0pO1xuICAgICAgICAgICAgICB4Lmh5cGVybGlua1snbGluayddID0gb3JpZ2luYWxVcmw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gYXBwbHkgdXNlciByb2xlIHBlcm1pc3Npb25zXG4gIGFwcGx5VXNlclBlcm1pc3Npb25zKCkge1xuICAgIGlmICh0aGlzLmhlYWRlcnMpIHtcbiAgICAgIGxldCB0b3RhbEZpZWxkczogbnVtYmVyID0gMDtcbiAgICAgIGxldCBoaWRkZW5GaWVsZHM6IG51bWJlciA9IDA7XG5cbiAgICAgIHRoaXMuaGVhZGVycy5maWVsZHMuZm9yRWFjaCgoaGVhZGVyRmllbGQpID0+IHtcbiAgICAgICAgbGV0IHBlcm1pc3Npb25zOiBhbnkgPSBoZWFkZXJGaWVsZC5wZXJtaXNzaW9ucztcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9ucykgcGVybWlzc2lvbnMgPSB0aGlzLmhlYWRlcnMucGVybWlzc2lvbnM7XG4gICAgICAgIGxldCBoYXNWYWxpZEVkaXRQZXJtaXNzaW9uID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHBlcm1pc3Npb25zICYmIHBlcm1pc3Npb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwZXJtaXNzaW9ucy5mb3JFYWNoKChwZXJtaXNzaW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAocGVybWlzc2lvbi5yb2xlcyAmJiBwZXJtaXNzaW9uLnJvbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgcGVybWlzc2lvbi5yb2xlcy5mb3JFYWNoKChyb2xlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWQgJiYgdGhpcy5yb2xlcyAmJiB0aGlzLnJvbGVzLmluY2x1ZGVzKHJvbGUpKSB7XG4gICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgcGVybWlzc2lvbi50eXBlID09PSBFUGVybWlzc2lvblR5cGUuVklFVyAmJlxuICAgICAgICAgICAgICAgICFoYXNWYWxpZEVkaXRQZXJtaXNzaW9uXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICBoZWFkZXJGaWVsZC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGhlYWRlckZpZWxkLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBlcm1pc3Npb24udHlwZSA9PT0gRVBlcm1pc3Npb25UeXBlLkVESVQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICAgICAgICAgICAgaGFzVmFsaWRFZGl0UGVybWlzc2lvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBoZWFkZXJGaWVsZC5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgaGVhZGVyRmllbGQuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGhlYWRlckZpZWxkLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvdGFsRmllbGRzKys7XG5cbiAgICAgICAgaWYgKGhlYWRlckZpZWxkLmhpZGRlbikge1xuICAgICAgICAgIGhpZGRlbkZpZWxkcysrO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5pc0hlYWRlckhpZGRlbiA9IHRvdGFsRmllbGRzID4gMCAmJiB0b3RhbEZpZWxkcyA9PT0gaGlkZGVuRmllbGRzO1xuICAgIH1cbiAgfVxufVxuXG4iLCI8ZGl2ICpuZ0lmPVwiIWlzSGVhZGVySGlkZGVuICYmIGhlYWRlcnNcIiBjbGFzcz1cImNhcmQgc3RpY2t5IGhlYWRlci1jb21wb25lbnRcIj5cbiAgPGRpdiBjbGFzcz1cImhlYWRlci1saXN0IHAtMSBmbGV4XCI+XG4gICAgPGRpdlxuICAgICAgW2NsYXNzXT1cIidtZDpjb2wtJyArIGhlYWRlckZpZWxkLmNvbHVtbiArICcgc206Y29sLTYgY29sLTEyIHB5LTAnXCJcbiAgICAgIGNsYXNzPVwiaGVhZGVyLWxpc3QtaXRlbSBzZWN0aW9uLXdyYXBwZXItaW4taGVhZGVyXCJcbiAgICAgICpuZ0Zvcj1cImxldCBoZWFkZXJGaWVsZCBvZiBoZWFkZXJzLmZpZWxkc1wiXG4gICAgPlxuICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiaGVhZGVyRmllbGQuY29udHJvbFwiPlxuICAgICAgICA8IS0tIEZvciBEcm9wZG93biAtLT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaGVhZGVyRmllbGQuaGlkZGVuXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBzZWN0aW9uLXdyYXBwZXItaW4taGVhZGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZHluYW1pY0Nhc2UuRFJPUERPV05cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxiXG4gICAgICAgICAgICAgID48bGFiZWwgZm9yPVwiXCI+e3sgaGVhZGVyRmllbGQubGFiZWwgfX08L2xhYmVsPjwvYlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImhlYWRlckZpZWxkLmxhYmVsXCJcbiAgICAgICAgICAgICAgW29wdGlvbnNdPVwiaGVhZGVyRmllbGQuZGF0YVwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaGVhZGVyRmllbGQudmFsdWVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGVhZGVyRmllbGQub25DbGljayA/IGhlYWRlckZpZWxkLm9uQ2xpY2soKSA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICBcbiAgICAgICAgPCEtLSBGb3IgbGFiZWwgIC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFoZWFkZXJGaWVsZC5oaWRkZW5cIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIHNlY3Rpb24td3JhcHBlci1pbi1oZWFkZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJkeW5hbWljQ2FzZS5MQUJFTFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGIgKm5nSWY9XCJoZWFkZXJGaWVsZC5sYWJlbD8ubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICAgID48bGFiZWwgZm9yPVwiXCI+e3sgaGVhZGVyRmllbGQubGFiZWwgfX08L2xhYmVsPjwvYlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPCEtLSBmb3IgdmFsdWUgLS0+XG4gICAgICAgICAgICA8U3BhbiAqbmdJZj1cIiFoZWFkZXJGaWVsZC5mb3JtYXRcIiAgPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiIFtzdHlsZS5jb2xvcl09XCJoZWFkZXJGaWVsZC5jb2xvckZvbnQgPyBoZWFkZXJGaWVsZC5jb2xvckZvbnQgOiAnJ1wiPnt7IGhlYWRlckZpZWxkLnZhbHVlIH19PC9sYWJlbD4gXG4gICAgICAgICAgPC9TcGFuPlxuXG4gICAgICAgICAgICAgPCEtLSBmb3IgY3VycmVuY3kgLS0+XG4gICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgaGVhZGVyRmllbGQuZm9ybWF0ICYmIGhlYWRlckZpZWxkLmZvcm1hdC50eXBlID09PSAnY3VycmVuY3knXG4gICAgICAgICAgICAgXCJcbiAgICAgICAgICAgPlxuICAgICAgICAgICAgIDxsYWJlbD57e1xuICAgICAgICAgICAgICAgaGVhZGVyRmllbGQudmFsdWVcbiAgICAgICAgICAgICAgICAgfCBjdXJyZW5jeVxuICAgICAgICAgICAgICAgICAgIDogKGhlYWRlckZpZWxkLmZvcm1hdC5mb3JtYXRQYXJhbXMgJiZcbiAgICAgICAgICAgICAgICAgICAgIGhlYWRlckZpZWxkLmZvcm1hdC5mb3JtYXRQYXJhbXMuY3VycmVuY3lcbiAgICAgICAgICAgICAgICAgICAgICAgPyBoZWFkZXJGaWVsZC5mb3JtYXQuZm9ybWF0UGFyYW1zLmN1cnJlbmN5XG4gICAgICAgICAgICAgICAgICAgICAgIDogJ1VTRCcpXG4gICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICA8IS0tIGZvciBwZXJjZW50IC0tPlxuICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGVyRmllbGQuZm9ybWF0ICYmIGhlYWRlckZpZWxkLmZvcm1hdC50eXBlID09PSAncGVyY2VudCdcIj5cbiAgICAgICAgICAgICAgPGxhYmVsID57eyBoZWFkZXJGaWVsZC52YWx1ZSB9fSU8L2xhYmVsPlxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgIDwhLS0gZm9yIGRlY2ltYWwgLS0+XG4gICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgaGVhZGVyRmllbGQuZm9ybWF0ICYmIGhlYWRlckZpZWxkLmZvcm1hdC50eXBlID09PSAnZGVjaW1hbCdcbiAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgPGxhYmVsPnt7XG4gICAgICAgICAgICAgICAgIGhlYWRlckZpZWxkLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgfCBudW1iZXJcbiAgICAgICAgICAgICAgICAgICAgIDogKGhlYWRlckZpZWxkLmZvcm1hdC5mb3JtYXRQYXJhbXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyRmllbGQuZm9ybWF0LmZvcm1hdFBhcmFtcy5kaWdpdHNJbmZvXG4gICAgICAgICAgICAgICAgICAgICAgICAgPyAnMi4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckZpZWxkLmZvcm1hdC5mb3JtYXRQYXJhbXMuZGlnaXRzSW5mbyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAnLTgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgOiAnMi4yLTgnKVxuICAgICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDwhLS0gVGV4dCBJbnB1dCAtLT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaGVhZGVyRmllbGQuaGlkZGVuXCI+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiZHluYW1pY0Nhc2UuSU5QVVRcIj5cbiAgICAgICAgICAgIDxiXG4gICAgICAgICAgICAgID48bGFiZWwgZm9yPVwiXCI+e3sgaGVhZGVyRmllbGQubGFiZWwgfX08L2xhYmVsPjwvYlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwibXItMiBmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoZWFkZXJGaWVsZC52YWx1ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoZWFkZXJGaWVsZC5vbkNsaWNrID8gaGVhZGVyRmllbGQub25DbGljaygpIDogJydcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDwhLS0gTnVtYmVyIElucHV0IC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFoZWFkZXJGaWVsZC5oaWRkZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHAtMFwiICpuZ1N3aXRjaENhc2U9XCJkeW5hbWljQ2FzZS5OVU1FUklDXCI+XG4gICAgICAgICAgICA8bGFiZWw+e3sgaGVhZGVyRmllbGQubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTEgbXItMiBmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhlYWRlckZpZWxkLnZhbHVlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhlYWRlckZpZWxkLm9uQ2xpY2sgPyBoZWFkZXJGaWVsZC5vbkNsaWNrKCkgOiAnJ1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSBDaGVja2JveCAtLT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaGVhZGVyRmllbGQuaGlkZGVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTBcIiAqbmdTd2l0Y2hDYXNlPVwiZHluYW1pY0Nhc2UuQ0hFQ0tCT1hcIj5cbiAgICAgICAgICAgIDxsYWJlbD57eyBoZWFkZXJGaWVsZC5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8cC1jaGVja2JveFxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoZWFkZXJGaWVsZC52YWx1ZVwiXG4gICAgICAgICAgICAgIGJpbmFyeT1cInRydWVcIlxuICAgICAgICAgICAgPjwvcC1jaGVja2JveD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICA8IS0tIGh5cGVyTGluayAtLT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaGVhZGVyRmllbGQuaGlkZGVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTBcIiAqbmdTd2l0Y2hDYXNlPVwiZHluYW1pY0Nhc2UuSFlQRVJMSU5LXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGVhZGVyRmllbGQuaHlwZXJsaW5rXCI+XG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiaGVhZGVyLWxpbmtcIiB0YWJpbmRleD1cIi0xXCIgW2hyZWZdPVwiaGVhZGVyRmllbGQuaHlwZXJsaW5rPy5saW5rXCIgW3RhcmdldF09XCJoZWFkZXJGaWVsZC5oeXBlcmxpbms/LnRhcmdldCA/IGhlYWRlckZpZWxkLmh5cGVybGluaz8udGFyZ2V0IDogJ19ibGFuaydcIlxuICAgICAgICAgICAgICAgIGRhdGEtdGl0bGUtZWxlbWVudD1cInNlbGZcIj5cbiAgICAgICAgICAgICAgICB7eyBoZWFkZXJGaWVsZC5sYWJlbCB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDwhLS0gQ2FsZW5kYXIgLS0+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWhlYWRlckZpZWxkLmhpZGRlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgcC0wXCIgKm5nU3dpdGNoQ2FzZT1cImR5bmFtaWNDYXNlLkNBTEVOREFSXCI+XG4gICAgICAgICAgICA8bGFiZWw+e3sgaGVhZGVyRmllbGQubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgPHAtZGF0ZXBpY2tlclxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xIG1yLTJcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaGVhZGVyRmllbGQubGFiZWxcIlxuICAgICAgICAgICAgICBbc2hvd0J1dHRvbkJhcl09XCIhaGVhZGVyRmllbGQudGltZU9ubHlcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhlYWRlckZpZWxkLnZhbHVlXCJcbiAgICAgICAgICAgICAgaG91ckZvcm1hdD1cIjEyXCJcbiAgICAgICAgICAgICAgZGF0YVR5cGU9XCJzdHJpbmdcIlxuICAgICAgICAgICAgICBbdGltZU9ubHldPVwiaGVhZGVyRmllbGQudGltZU9ubHlcIlxuICAgICAgICAgICAgICBbc2hvd1RpbWVdPVwiaGVhZGVyRmllbGQuc2hvd1RpbWVcIlxuICAgICAgICAgICAgICBbZGF0ZUZvcm1hdF09XCJoZWFkZXJGaWVsZC5mb3JtYXQgPyBoZWFkZXJGaWVsZC5mb3JtYXQuZGF0ZVR5cGUgOiAnbW0vZGQveXknXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcC1kYXRlcGlja2VyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSBNdWx0aS1zZWxlY3QgLS0+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWhlYWRlckZpZWxkLmhpZGRlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgcC0wXCIgKm5nU3dpdGNoQ2FzZT1cImR5bmFtaWNDYXNlLk1VTFRJU0VMRUNUXCI+XG4gICAgICAgICAgICA8bGFiZWw+e3sgaGVhZGVyRmllbGQubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgPHAtbXVsdGlTZWxlY3RcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoZWFkZXJGaWVsZC52YWx1ZVwiXG4gICAgICAgICAgICAgIFtvcHRpb25zXT1cImhlYWRlckZpZWxkLmRhdGFcIlxuICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGVhZGVyRmllbGQub25DbGljayA/IGhlYWRlckZpZWxkLm9uQ2xpY2soKSA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcC1tdWx0aVNlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDwhLS0gQnV0dG9uIC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFoZWFkZXJGaWVsZC5oaWRkZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHAtMFwiICpuZ1N3aXRjaENhc2U9XCJkeW5hbWljQ2FzZS5CVVRUT05cIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBsYWJlbD1cInt7IGhlYWRlckZpZWxkLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBoZWFkZXJGaWVsZC5jbGFzcyB9fVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoZWFkZXJGaWVsZC5vbkNsaWNrID8gaGVhZGVyRmllbGQub25DbGljaygpIDogJydcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -13493,11 +13493,11 @@ class HeaderComponent {
13493
13493
  }
13494
13494
  }
13495
13495
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, deps: [{ token: AuthenticationService }, { token: i1$3.DatePipe }, { token: HyperlinkService }], target: i0.ɵɵFactoryTarget.Component }); }
13496
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeaderComponent, selector: "se-header", inputs: { headers: "headers" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!isHeaderHidden && headers\" class=\"card sticky header-component\">\n <div class=\"header-list p-1 flex\">\n <div\n [class]=\"'md:col-' + headers.column + ' sm:col-6 col-12 py-0'\"\n class=\"header-list-item section-wrapper-in-header\"\n *ngFor=\"let headerField of headers.fields\"\n >\n <div [ngSwitch]=\"headerField.control\">\n <!-- For Dropdown -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.DROPDOWN\"\n >\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <p-dropdown\n [placeholder]=\"headerField.label\"\n [options]=\"headerField.data\"\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-dropdown>\n </div>\n </span>\n \n <!-- For label -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.LABEL\"\n >\n <b *ngIf=\"headerField.label?.length > 0\"\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <!-- for value -->\n <Span *ngIf=\"!headerField.format\" >\n <label for=\"\" [style.color]=\"headerField.colorFont ? headerField.colorFont : ''\">{{ headerField.value }}</label> \n </Span>\n\n <!-- for currency -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'currency'\n \"\n >\n <label>{{\n headerField.value\n | currency\n : (headerField.format.formatParams &&\n headerField.format.formatParams.currency\n ? headerField.format.formatParams.currency\n : 'USD')\n }}</label>\n </span>\n\n <!-- for percent -->\n <span *ngIf=\"headerField.format && headerField.format.type === 'percent'\">\n <label >{{ headerField.value }}%</label>\n </span>\n\n <!-- for decimal -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'decimal'\n \"\n >\n <label>{{\n headerField.value\n | number\n : (headerField.format.formatParams &&\n headerField.format.formatParams.digitsInfo\n ? '2.' +\n headerField.format.formatParams.digitsInfo +\n '-8'\n : '2.2-8')\n }}</label>\n </span>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.INPUT\">\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <input\n class=\"mr-2 form-control\"\n type=\"text\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label>{{ headerField.label }}</label>\n <input\n class=\"flex-grow-1 mr-2 form-control\"\n type=\"number\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Checkbox -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label>{{ headerField.label }}</label>\n <p-checkbox\n class=\"flex align-items-center\"\n [(ngModel)]=\"headerField.value\"\n binary=\"true\"\n ></p-checkbox>\n </div>\n </span>\n\n <!-- hyperLink -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"headerField.hyperlink\">\n <a class=\"header-link\" tabindex=\"-1\" [href]=\"headerField.hyperlink?.link\" [target]=\"headerField.hyperlink?.target ? headerField.hyperlink?.target : '_blank'\"\n data-title-element=\"self\">\n {{ headerField.label }}\n </a>\n </div>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <label>{{ headerField.label }}</label>\n <p-datepicker\n class=\"flex-grow-1 mr-2\"\n [placeholder]=\"headerField.label\"\n [showButtonBar]=\"!headerField.timeOnly\"\n [(ngModel)]=\"headerField.value\"\n hourFormat=\"12\"\n dataType=\"string\"\n [timeOnly]=\"headerField.timeOnly\"\n [showTime]=\"headerField.showTime\"\n [dateFormat]=\"headerField.format ? headerField.format.dateType : 'mm/dd/yy'\"\n >\n </p-datepicker>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label>{{ headerField.label }}</label>\n <p-multiSelect\n [(ngModel)]=\"headerField.value\"\n [options]=\"headerField.data\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [appendTo]=\"'body'\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Button -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.BUTTON\">\n <button\n pButton\n pRipple\n type=\"button\"\n label=\"{{ headerField.label }}\"\n class=\"{{ headerField.class }}\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n ></button>\n </div>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".header-list-item:after{content:\"\"}.header-list-item:last-child:after{display:none}.card.sticky{position:sticky;z-index:1;top:0}:host ::ng-deep .header-link{font-size:12px!important;font-weight:500!important;font-style:normal!important;font-stretch:normal!important;letter-spacing:.5px!important}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i11.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i14.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: i15.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "directive", type: i3$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: i4.Ripple, selector: "[pRipple]" }, { kind: "directive", type: i3$2.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "pipe", type: i1$3.DecimalPipe, name: "number" }, { kind: "pipe", type: i1$3.CurrencyPipe, name: "currency" }] }); }
13496
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeaderComponent, selector: "se-header", inputs: { headers: "headers" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!isHeaderHidden && headers\" class=\"card sticky header-component\">\n <div class=\"header-list p-1 flex\">\n <div\n [class]=\"'md:col-' + headerField.column + ' sm:col-6 col-12 py-0'\"\n class=\"header-list-item section-wrapper-in-header\"\n *ngFor=\"let headerField of headers.fields\"\n >\n <div [ngSwitch]=\"headerField.control\">\n <!-- For Dropdown -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.DROPDOWN\"\n >\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <p-dropdown\n [placeholder]=\"headerField.label\"\n [options]=\"headerField.data\"\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-dropdown>\n </div>\n </span>\n \n <!-- For label -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.LABEL\"\n >\n <b *ngIf=\"headerField.label?.length > 0\"\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <!-- for value -->\n <Span *ngIf=\"!headerField.format\" >\n <label for=\"\" [style.color]=\"headerField.colorFont ? headerField.colorFont : ''\">{{ headerField.value }}</label> \n </Span>\n\n <!-- for currency -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'currency'\n \"\n >\n <label>{{\n headerField.value\n | currency\n : (headerField.format.formatParams &&\n headerField.format.formatParams.currency\n ? headerField.format.formatParams.currency\n : 'USD')\n }}</label>\n </span>\n\n <!-- for percent -->\n <span *ngIf=\"headerField.format && headerField.format.type === 'percent'\">\n <label >{{ headerField.value }}%</label>\n </span>\n\n <!-- for decimal -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'decimal'\n \"\n >\n <label>{{\n headerField.value\n | number\n : (headerField.format.formatParams &&\n headerField.format.formatParams.digitsInfo\n ? '2.' +\n headerField.format.formatParams.digitsInfo +\n '-8'\n : '2.2-8')\n }}</label>\n </span>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.INPUT\">\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <input\n class=\"mr-2 form-control\"\n type=\"text\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label>{{ headerField.label }}</label>\n <input\n class=\"flex-grow-1 mr-2 form-control\"\n type=\"number\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Checkbox -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label>{{ headerField.label }}</label>\n <p-checkbox\n class=\"flex align-items-center\"\n [(ngModel)]=\"headerField.value\"\n binary=\"true\"\n ></p-checkbox>\n </div>\n </span>\n\n <!-- hyperLink -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"headerField.hyperlink\">\n <a class=\"header-link\" tabindex=\"-1\" [href]=\"headerField.hyperlink?.link\" [target]=\"headerField.hyperlink?.target ? headerField.hyperlink?.target : '_blank'\"\n data-title-element=\"self\">\n {{ headerField.label }}\n </a>\n </div>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <label>{{ headerField.label }}</label>\n <p-datepicker\n class=\"flex-grow-1 mr-2\"\n [placeholder]=\"headerField.label\"\n [showButtonBar]=\"!headerField.timeOnly\"\n [(ngModel)]=\"headerField.value\"\n hourFormat=\"12\"\n dataType=\"string\"\n [timeOnly]=\"headerField.timeOnly\"\n [showTime]=\"headerField.showTime\"\n [dateFormat]=\"headerField.format ? headerField.format.dateType : 'mm/dd/yy'\"\n >\n </p-datepicker>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label>{{ headerField.label }}</label>\n <p-multiSelect\n [(ngModel)]=\"headerField.value\"\n [options]=\"headerField.data\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [appendTo]=\"'body'\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Button -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.BUTTON\">\n <button\n pButton\n pRipple\n type=\"button\"\n label=\"{{ headerField.label }}\"\n class=\"{{ headerField.class }}\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n ></button>\n </div>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".header-list-item:after{content:\"\"}.header-list-item:last-child:after{display:none}.card.sticky{position:sticky;z-index:1;top:0}:host ::ng-deep .header-link{font-size:12px!important;font-weight:500!important;font-style:normal!important;font-stretch:normal!important;letter-spacing:.5px!important}\n"], dependencies: [{ kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i11.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$1.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i14.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: i15.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "directive", type: i3$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: i4.Ripple, selector: "[pRipple]" }, { kind: "directive", type: i3$2.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "pipe", type: i1$3.DecimalPipe, name: "number" }, { kind: "pipe", type: i1$3.CurrencyPipe, name: "currency" }] }); }
13497
13497
  }
13498
13498
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, decorators: [{
13499
13499
  type: Component,
13500
- args: [{ selector: 'se-header', template: "<div *ngIf=\"!isHeaderHidden && headers\" class=\"card sticky header-component\">\n <div class=\"header-list p-1 flex\">\n <div\n [class]=\"'md:col-' + headers.column + ' sm:col-6 col-12 py-0'\"\n class=\"header-list-item section-wrapper-in-header\"\n *ngFor=\"let headerField of headers.fields\"\n >\n <div [ngSwitch]=\"headerField.control\">\n <!-- For Dropdown -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.DROPDOWN\"\n >\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <p-dropdown\n [placeholder]=\"headerField.label\"\n [options]=\"headerField.data\"\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-dropdown>\n </div>\n </span>\n \n <!-- For label -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.LABEL\"\n >\n <b *ngIf=\"headerField.label?.length > 0\"\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <!-- for value -->\n <Span *ngIf=\"!headerField.format\" >\n <label for=\"\" [style.color]=\"headerField.colorFont ? headerField.colorFont : ''\">{{ headerField.value }}</label> \n </Span>\n\n <!-- for currency -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'currency'\n \"\n >\n <label>{{\n headerField.value\n | currency\n : (headerField.format.formatParams &&\n headerField.format.formatParams.currency\n ? headerField.format.formatParams.currency\n : 'USD')\n }}</label>\n </span>\n\n <!-- for percent -->\n <span *ngIf=\"headerField.format && headerField.format.type === 'percent'\">\n <label >{{ headerField.value }}%</label>\n </span>\n\n <!-- for decimal -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'decimal'\n \"\n >\n <label>{{\n headerField.value\n | number\n : (headerField.format.formatParams &&\n headerField.format.formatParams.digitsInfo\n ? '2.' +\n headerField.format.formatParams.digitsInfo +\n '-8'\n : '2.2-8')\n }}</label>\n </span>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.INPUT\">\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <input\n class=\"mr-2 form-control\"\n type=\"text\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label>{{ headerField.label }}</label>\n <input\n class=\"flex-grow-1 mr-2 form-control\"\n type=\"number\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Checkbox -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label>{{ headerField.label }}</label>\n <p-checkbox\n class=\"flex align-items-center\"\n [(ngModel)]=\"headerField.value\"\n binary=\"true\"\n ></p-checkbox>\n </div>\n </span>\n\n <!-- hyperLink -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"headerField.hyperlink\">\n <a class=\"header-link\" tabindex=\"-1\" [href]=\"headerField.hyperlink?.link\" [target]=\"headerField.hyperlink?.target ? headerField.hyperlink?.target : '_blank'\"\n data-title-element=\"self\">\n {{ headerField.label }}\n </a>\n </div>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <label>{{ headerField.label }}</label>\n <p-datepicker\n class=\"flex-grow-1 mr-2\"\n [placeholder]=\"headerField.label\"\n [showButtonBar]=\"!headerField.timeOnly\"\n [(ngModel)]=\"headerField.value\"\n hourFormat=\"12\"\n dataType=\"string\"\n [timeOnly]=\"headerField.timeOnly\"\n [showTime]=\"headerField.showTime\"\n [dateFormat]=\"headerField.format ? headerField.format.dateType : 'mm/dd/yy'\"\n >\n </p-datepicker>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label>{{ headerField.label }}</label>\n <p-multiSelect\n [(ngModel)]=\"headerField.value\"\n [options]=\"headerField.data\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [appendTo]=\"'body'\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Button -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.BUTTON\">\n <button\n pButton\n pRipple\n type=\"button\"\n label=\"{{ headerField.label }}\"\n class=\"{{ headerField.class }}\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n ></button>\n </div>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".header-list-item:after{content:\"\"}.header-list-item:last-child:after{display:none}.card.sticky{position:sticky;z-index:1;top:0}:host ::ng-deep .header-link{font-size:12px!important;font-weight:500!important;font-style:normal!important;font-stretch:normal!important;letter-spacing:.5px!important}\n"] }]
13500
+ args: [{ selector: 'se-header', template: "<div *ngIf=\"!isHeaderHidden && headers\" class=\"card sticky header-component\">\n <div class=\"header-list p-1 flex\">\n <div\n [class]=\"'md:col-' + headerField.column + ' sm:col-6 col-12 py-0'\"\n class=\"header-list-item section-wrapper-in-header\"\n *ngFor=\"let headerField of headers.fields\"\n >\n <div [ngSwitch]=\"headerField.control\">\n <!-- For Dropdown -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.DROPDOWN\"\n >\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <p-dropdown\n [placeholder]=\"headerField.label\"\n [options]=\"headerField.data\"\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-dropdown>\n </div>\n </span>\n \n <!-- For label -->\n <span *ngIf=\"!headerField.hidden\">\n <div\n class=\"flex flex-wrap section-wrapper-in-header align-items-center\"\n *ngSwitchCase=\"dynamicCase.LABEL\"\n >\n <b *ngIf=\"headerField.label?.length > 0\"\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <!-- for value -->\n <Span *ngIf=\"!headerField.format\" >\n <label for=\"\" [style.color]=\"headerField.colorFont ? headerField.colorFont : ''\">{{ headerField.value }}</label> \n </Span>\n\n <!-- for currency -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'currency'\n \"\n >\n <label>{{\n headerField.value\n | currency\n : (headerField.format.formatParams &&\n headerField.format.formatParams.currency\n ? headerField.format.formatParams.currency\n : 'USD')\n }}</label>\n </span>\n\n <!-- for percent -->\n <span *ngIf=\"headerField.format && headerField.format.type === 'percent'\">\n <label >{{ headerField.value }}%</label>\n </span>\n\n <!-- for decimal -->\n <span\n *ngIf=\"\n headerField.format && headerField.format.type === 'decimal'\n \"\n >\n <label>{{\n headerField.value\n | number\n : (headerField.format.formatParams &&\n headerField.format.formatParams.digitsInfo\n ? '2.' +\n headerField.format.formatParams.digitsInfo +\n '-8'\n : '2.2-8')\n }}</label>\n </span>\n </div>\n </span>\n\n <!-- Text Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div *ngSwitchCase=\"dynamicCase.INPUT\">\n <b\n ><label for=\"\">{{ headerField.label }}</label></b\n >\n <input\n class=\"mr-2 form-control\"\n type=\"text\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Number Input -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.NUMERIC\">\n <label>{{ headerField.label }}</label>\n <input\n class=\"flex-grow-1 mr-2 form-control\"\n type=\"number\"\n pInputText\n [(ngModel)]=\"headerField.value\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n />\n </div>\n </span>\n\n <!-- Checkbox -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CHECKBOX\">\n <label>{{ headerField.label }}</label>\n <p-checkbox\n class=\"flex align-items-center\"\n [(ngModel)]=\"headerField.value\"\n binary=\"true\"\n ></p-checkbox>\n </div>\n </span>\n\n <!-- hyperLink -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.HYPERLINK\">\n <div *ngIf=\"headerField.hyperlink\">\n <a class=\"header-link\" tabindex=\"-1\" [href]=\"headerField.hyperlink?.link\" [target]=\"headerField.hyperlink?.target ? headerField.hyperlink?.target : '_blank'\"\n data-title-element=\"self\">\n {{ headerField.label }}\n </a>\n </div>\n </div>\n </span>\n\n <!-- Calendar -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.CALENDAR\">\n <label>{{ headerField.label }}</label>\n <p-datepicker\n class=\"flex-grow-1 mr-2\"\n [placeholder]=\"headerField.label\"\n [showButtonBar]=\"!headerField.timeOnly\"\n [(ngModel)]=\"headerField.value\"\n hourFormat=\"12\"\n dataType=\"string\"\n [timeOnly]=\"headerField.timeOnly\"\n [showTime]=\"headerField.showTime\"\n [dateFormat]=\"headerField.format ? headerField.format.dateType : 'mm/dd/yy'\"\n >\n </p-datepicker>\n </div>\n </span>\n\n <!-- Multi-select -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.MULTISELECT\">\n <label>{{ headerField.label }}</label>\n <p-multiSelect\n [(ngModel)]=\"headerField.value\"\n [options]=\"headerField.data\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [appendTo]=\"'body'\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n >\n </p-multiSelect>\n </div>\n </span>\n\n <!-- Button -->\n <span *ngIf=\"!headerField.hidden\">\n <div class=\"col-12 p-0\" *ngSwitchCase=\"dynamicCase.BUTTON\">\n <button\n pButton\n pRipple\n type=\"button\"\n label=\"{{ headerField.label }}\"\n class=\"{{ headerField.class }}\"\n (click)=\"headerField.onClick ? headerField.onClick() : ''\"\n ></button>\n </div>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".header-list-item:after{content:\"\"}.header-list-item:last-child:after{display:none}.card.sticky{position:sticky;z-index:1;top:0}:host ::ng-deep .header-link{font-size:12px!important;font-weight:500!important;font-style:normal!important;font-stretch:normal!important;letter-spacing:.5px!important}\n"] }]
13501
13501
  }], ctorParameters: () => [{ type: AuthenticationService }, { type: i1$3.DatePipe }, { type: HyperlinkService }], propDecorators: { headers: [{
13502
13502
  type: Input
13503
13503
  }] } });