keevo-components 1.8.408 → 1.8.409

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.
@@ -196,11 +196,11 @@ export class KvOrgchartComponent {
196
196
  this.filter.clear();
197
197
  }
198
198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvOrgchartComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.OrgChartService }, { token: i2.FilterService }], target: i0.ɵɵFactoryTarget.Component }); }
199
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvOrgchartComponent, selector: "kv-orgchart", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: false, isRequired: false, transformFunction: null }, nodeTemplate: { classPropertyName: "nodeTemplate", publicName: "nodeTemplate", isSignal: false, isRequired: false, transformFunction: null }, filterItemTemplate: { classPropertyName: "filterItemTemplate", publicName: "filterItemTemplate", isSignal: false, isRequired: false, transformFunction: null }, filterSelectedItemTemplate: { classPropertyName: "filterSelectedItemTemplate", publicName: "filterSelectedItemTemplate", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { dataSource: "dataSourceChange", onNodeClick: "onNodeClick" }, viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartContainer"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["nodeTemplate"], descendants: true, read: ViewContainerRef }, { propertyName: "filter", first: true, predicate: ["filter"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #chartContainer id=\"chartContainer\" [ngClass]=\"{ backGround: true }\">\r\n <div class=\"div-botoes w-full flex gap-1\">\r\n <div\r\n id=\"menubar\"\r\n class=\"shadow-2 flex justify-content-between align-content-center\"\r\n >\r\n <div class=\"grid formgrid p-fluid flex-grow-1\">\r\n <!-- <div #filterContainer class=\"col-4 grid formgrid p-fluid\">\r\n <kv-input-text class=\"col-12\" #filtro (onInput)=\"pesquisar($event)\">\r\n </kv-input-text>\r\n </div>\r\n\r\n @if(filtrosOpt().length > 0) {\r\n\r\n <div id=\"filtro-org-chart\" [style.width.px]=\"filterContainer.offsetWidth*0.9\">\r\n\r\n @for (opt of filtrosOpt(); track $index) {\r\n <div class=\"filtro-org-chart-item\">\r\n {{ opt.data.name }}\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n\r\n } -->\r\n\r\n <p-dropdown\r\n #filter\r\n placeholder=\"Filtrar...\"\r\n [style]=\"{\r\n height: '35px',\r\n 'margin-left': '15px',\r\n 'max-width': '95%'\r\n }\"\r\n [filter]=\"true\"\r\n [filterFields]=\"config.filters\"\r\n filterPlaceholder=\"Filtrar...\"\r\n [options]=\"this.dataSource()!\"\r\n [showClear]=\"true\"\r\n (onChange)=\"centralizarNo($event.value.id)\"\r\n >\r\n <!-- [itemTemplate]=\"itemTemplate\"\r\n [selectedItemTemplate]=\"selectedItemTemplate\" -->\r\n <!-- [filteredOptions]=\"this.dataSource()!\" -->\r\n <!-- [filterFields]=\"data.name\" -->\r\n\r\n <ng-template #itemTemplate let-item pTemplate=\"item\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template #selectedItemTemplate let-item pTemplate=\"selectedItem\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterSelectedItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n\r\n <!-- Actions bar -->\r\n <div class=\"flex gap-1 flex-row flex-grow-0\">\r\n <div style=\"width: 30px\">\r\n <kv-button\r\n (onClick)=\"chart.expandAll()\"\r\n class=\"button-expand-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'expand_all'\"\r\n [pTooltip]=\"'Expandir Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\">\r\n <kv-button\r\n (onClick)=\"chart.collapseAll()\"\r\n class=\"button-colappse-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'collapse_all'\"\r\n [pTooltip]=\"'Recolher Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\">\r\n <kv-button\r\n (onClick)=\"chart.fit().render()\"\r\n class=\"button-focus-center\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"primary\"\r\n [icon]=\"'center_focus_weak'\"\r\n [pTooltip]=\"'Centralizar Organograma'\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\r\n/>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\r\n/>\r\n\r\n<div style=\"display: none\">\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"node-content\">erro</div>\r\n </ng-template>\r\n</div>\r\n", styles: ["#chartContainer{height:100%;overflow:hidden}:host ::ng-deep #chartContainer svg.svg-chart-container{height:100%!important;position:relative;width:100%;top:-56px;z-index:0;background-color:#fff}.div-botoes{z-index:1;width:100%;position:relative}:host ::ng-deep .p-organizationChart{overflow:hidden}svg{width:100%;height:100%}#menubar{width:100%;padding:5px;border-radius:8px;background:#eaeaea}.filtro-input{width:300px}#filtro-org-chart{height:300px;overflow-y:auto;overflow-x:hidden;position:absolute;top:40px;left:8px;background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.filtro-org-chart-item{cursor:pointer;height:35px;padding:3px}.filtro-org-chart-item:hover{background-color:#d9dadb}.filtro-org-chart-item:active{background-color:#c0c1c2}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.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", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i6.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "label", "disabled"], outputs: ["onClick"] }] }); }
199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvOrgchartComponent, selector: "kv-orgchart", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: false, isRequired: false, transformFunction: null }, nodeTemplate: { classPropertyName: "nodeTemplate", publicName: "nodeTemplate", isSignal: false, isRequired: false, transformFunction: null }, filterItemTemplate: { classPropertyName: "filterItemTemplate", publicName: "filterItemTemplate", isSignal: false, isRequired: false, transformFunction: null }, filterSelectedItemTemplate: { classPropertyName: "filterSelectedItemTemplate", publicName: "filterSelectedItemTemplate", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { dataSource: "dataSourceChange", onNodeClick: "onNodeClick" }, viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartContainer"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["nodeTemplate"], descendants: true, read: ViewContainerRef }, { propertyName: "filter", first: true, predicate: ["filter"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #chartContainer id=\"chartContainer\" [ngClass]=\"{ backGround: true }\">\r\n <div class=\"div-botoes w-full flex gap-1\">\r\n <div\r\n id=\"menubar\"\r\n class=\"shadow-2 flex justify-content-between align-content-center\"\r\n >\r\n <div class=\"grid formgrid p-fluid flex-grow-1\">\r\n <!-- <div #filterContainer class=\"col-4 grid formgrid p-fluid\">\r\n <kv-input-text class=\"col-12\" #filtro (onInput)=\"pesquisar($event)\">\r\n </kv-input-text>\r\n </div>\r\n\r\n @if(filtrosOpt().length > 0) {\r\n \r\n <div id=\"filtro-org-chart\" [style.width.px]=\"filterContainer.offsetWidth*0.9\">\r\n\r\n @for (opt of filtrosOpt(); track $index) {\r\n <div class=\"filtro-org-chart-item\">\r\n {{ opt.data.name }}\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n\r\n } -->\r\n\r\n <p-dropdown\r\n #filter\r\n placeholder=\"Filtrar...\"\r\n [style]=\"{\r\n height: '30px',\r\n 'margin-left': '15px',\r\n 'max-width': '95%'\r\n }\"\r\n [filter]=\"true\"\r\n [filterFields]=\"config.filters\"\r\n filterPlaceholder=\"Filtrar...\"\r\n [options]=\"this.dataSource()!\"\r\n [showClear]=\"true\"\r\n (onChange)=\"centralizarNo($event.value.id)\"\r\n >\r\n <!-- [itemTemplate]=\"itemTemplate\"\r\n [selectedItemTemplate]=\"selectedItemTemplate\" -->\r\n <!-- [filteredOptions]=\"this.dataSource()!\" -->\r\n <!-- [filterFields]=\"data.name\" -->\r\n\r\n <ng-template #itemTemplate let-item pTemplate=\"item\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template #selectedItemTemplate let-item pTemplate=\"selectedItem\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterSelectedItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n\r\n <!-- Actions bar -->\r\n <div class=\"flex gap-1 flex-row flex-grow-0\">\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.expandAll()\"\r\n class=\"button-expand-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'expand_all'\"\r\n [pTooltip]=\"'Expandir Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.collapseAll()\"\r\n class=\"button-colappse-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'collapse_all'\"\r\n [pTooltip]=\"'Recolher Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.fit().render()\"\r\n class=\"button-focus-center\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"primary\"\r\n [icon]=\"'center_focus_weak'\"\r\n [pTooltip]=\"'Centralizar Organograma'\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\r\n/>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\r\n/>\r\n\r\n<div style=\"display: none\">\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"node-content\">erro</div>\r\n </ng-template>\r\n</div>\r\n", styles: ["#chartContainer{height:100%;overflow:hidden}:host ::ng-deep #chartContainer svg.svg-chart-container{height:100%!important;position:relative;width:100%;top:-56px;z-index:0;background-color:#fff}.div-botoes{z-index:1;width:100%;position:relative}:host ::ng-deep .p-organizationChart{overflow:hidden}svg{width:100%;height:100%}#menubar{width:100%;padding:5px;border-radius:8px;background:#eaeaea}.filtro-input{width:300px}#filtro-org-chart{height:300px;overflow-y:auto;overflow-x:hidden;position:absolute;top:40px;left:8px;background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.filtro-org-chart-item{cursor:pointer;height:35px;padding:3px}.filtro-org-chart-item:hover{background-color:#d9dadb}.filtro-org-chart-item:active{background-color:#c0c1c2}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.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", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i6.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "label", "disabled"], outputs: ["onClick"] }] }); }
200
200
  }
201
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvOrgchartComponent, decorators: [{
202
202
  type: Component,
203
- args: [{ selector: 'kv-orgchart', template: "<div #chartContainer id=\"chartContainer\" [ngClass]=\"{ backGround: true }\">\r\n <div class=\"div-botoes w-full flex gap-1\">\r\n <div\r\n id=\"menubar\"\r\n class=\"shadow-2 flex justify-content-between align-content-center\"\r\n >\r\n <div class=\"grid formgrid p-fluid flex-grow-1\">\r\n <!-- <div #filterContainer class=\"col-4 grid formgrid p-fluid\">\r\n <kv-input-text class=\"col-12\" #filtro (onInput)=\"pesquisar($event)\">\r\n </kv-input-text>\r\n </div>\r\n\r\n @if(filtrosOpt().length > 0) {\r\n\r\n <div id=\"filtro-org-chart\" [style.width.px]=\"filterContainer.offsetWidth*0.9\">\r\n\r\n @for (opt of filtrosOpt(); track $index) {\r\n <div class=\"filtro-org-chart-item\">\r\n {{ opt.data.name }}\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n\r\n } -->\r\n\r\n <p-dropdown\r\n #filter\r\n placeholder=\"Filtrar...\"\r\n [style]=\"{\r\n height: '35px',\r\n 'margin-left': '15px',\r\n 'max-width': '95%'\r\n }\"\r\n [filter]=\"true\"\r\n [filterFields]=\"config.filters\"\r\n filterPlaceholder=\"Filtrar...\"\r\n [options]=\"this.dataSource()!\"\r\n [showClear]=\"true\"\r\n (onChange)=\"centralizarNo($event.value.id)\"\r\n >\r\n <!-- [itemTemplate]=\"itemTemplate\"\r\n [selectedItemTemplate]=\"selectedItemTemplate\" -->\r\n <!-- [filteredOptions]=\"this.dataSource()!\" -->\r\n <!-- [filterFields]=\"data.name\" -->\r\n\r\n <ng-template #itemTemplate let-item pTemplate=\"item\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template #selectedItemTemplate let-item pTemplate=\"selectedItem\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterSelectedItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n\r\n <!-- Actions bar -->\r\n <div class=\"flex gap-1 flex-row flex-grow-0\">\r\n <div style=\"width: 30px\">\r\n <kv-button\r\n (onClick)=\"chart.expandAll()\"\r\n class=\"button-expand-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'expand_all'\"\r\n [pTooltip]=\"'Expandir Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\">\r\n <kv-button\r\n (onClick)=\"chart.collapseAll()\"\r\n class=\"button-colappse-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'collapse_all'\"\r\n [pTooltip]=\"'Recolher Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\">\r\n <kv-button\r\n (onClick)=\"chart.fit().render()\"\r\n class=\"button-focus-center\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"primary\"\r\n [icon]=\"'center_focus_weak'\"\r\n [pTooltip]=\"'Centralizar Organograma'\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\r\n/>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\r\n/>\r\n\r\n<div style=\"display: none\">\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"node-content\">erro</div>\r\n </ng-template>\r\n</div>\r\n", styles: ["#chartContainer{height:100%;overflow:hidden}:host ::ng-deep #chartContainer svg.svg-chart-container{height:100%!important;position:relative;width:100%;top:-56px;z-index:0;background-color:#fff}.div-botoes{z-index:1;width:100%;position:relative}:host ::ng-deep .p-organizationChart{overflow:hidden}svg{width:100%;height:100%}#menubar{width:100%;padding:5px;border-radius:8px;background:#eaeaea}.filtro-input{width:300px}#filtro-org-chart{height:300px;overflow-y:auto;overflow-x:hidden;position:absolute;top:40px;left:8px;background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.filtro-org-chart-item{cursor:pointer;height:35px;padding:3px}.filtro-org-chart-item:hover{background-color:#d9dadb}.filtro-org-chart-item:active{background-color:#c0c1c2}\n"] }]
203
+ args: [{ selector: 'kv-orgchart', template: "<div #chartContainer id=\"chartContainer\" [ngClass]=\"{ backGround: true }\">\r\n <div class=\"div-botoes w-full flex gap-1\">\r\n <div\r\n id=\"menubar\"\r\n class=\"shadow-2 flex justify-content-between align-content-center\"\r\n >\r\n <div class=\"grid formgrid p-fluid flex-grow-1\">\r\n <!-- <div #filterContainer class=\"col-4 grid formgrid p-fluid\">\r\n <kv-input-text class=\"col-12\" #filtro (onInput)=\"pesquisar($event)\">\r\n </kv-input-text>\r\n </div>\r\n\r\n @if(filtrosOpt().length > 0) {\r\n \r\n <div id=\"filtro-org-chart\" [style.width.px]=\"filterContainer.offsetWidth*0.9\">\r\n\r\n @for (opt of filtrosOpt(); track $index) {\r\n <div class=\"filtro-org-chart-item\">\r\n {{ opt.data.name }}\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n\r\n } -->\r\n\r\n <p-dropdown\r\n #filter\r\n placeholder=\"Filtrar...\"\r\n [style]=\"{\r\n height: '30px',\r\n 'margin-left': '15px',\r\n 'max-width': '95%'\r\n }\"\r\n [filter]=\"true\"\r\n [filterFields]=\"config.filters\"\r\n filterPlaceholder=\"Filtrar...\"\r\n [options]=\"this.dataSource()!\"\r\n [showClear]=\"true\"\r\n (onChange)=\"centralizarNo($event.value.id)\"\r\n >\r\n <!-- [itemTemplate]=\"itemTemplate\"\r\n [selectedItemTemplate]=\"selectedItemTemplate\" -->\r\n <!-- [filteredOptions]=\"this.dataSource()!\" -->\r\n <!-- [filterFields]=\"data.name\" -->\r\n\r\n <ng-template #itemTemplate let-item pTemplate=\"item\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template #selectedItemTemplate let-item pTemplate=\"selectedItem\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterSelectedItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n\r\n <!-- Actions bar -->\r\n <div class=\"flex gap-1 flex-row flex-grow-0\">\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.expandAll()\"\r\n class=\"button-expand-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'expand_all'\"\r\n [pTooltip]=\"'Expandir Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.collapseAll()\"\r\n class=\"button-colappse-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'collapse_all'\"\r\n [pTooltip]=\"'Recolher Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.fit().render()\"\r\n class=\"button-focus-center\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"primary\"\r\n [icon]=\"'center_focus_weak'\"\r\n [pTooltip]=\"'Centralizar Organograma'\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\r\n/>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\r\n/>\r\n\r\n<div style=\"display: none\">\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"node-content\">erro</div>\r\n </ng-template>\r\n</div>\r\n", styles: ["#chartContainer{height:100%;overflow:hidden}:host ::ng-deep #chartContainer svg.svg-chart-container{height:100%!important;position:relative;width:100%;top:-56px;z-index:0;background-color:#fff}.div-botoes{z-index:1;width:100%;position:relative}:host ::ng-deep .p-organizationChart{overflow:hidden}svg{width:100%;height:100%}#menubar{width:100%;padding:5px;border-radius:8px;background:#eaeaea}.filtro-input{width:300px}#filtro-org-chart{height:300px;overflow-y:auto;overflow-x:hidden;position:absolute;top:40px;left:8px;background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.filtro-org-chart-item{cursor:pointer;height:35px;padding:3px}.filtro-org-chart-item:hover{background-color:#d9dadb}.filtro-org-chart-item:active{background-color:#c0c1c2}\n"] }]
204
204
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.OrgChartService }, { type: i2.FilterService }], propDecorators: { config: [{
205
205
  type: Input
206
206
  }], chartContainer: [{
@@ -221,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
221
221
  type: ViewChild,
222
222
  args: ['filter']
223
223
  }] } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytb3JnY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUlOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUl6QixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFZL0MsTUFBTSxPQUFPLG1CQUFtQjtJQThCOUIsWUFDVSxHQUFzQixFQUN0QixPQUF3QixFQUN4QixhQUE0QjtRQUY1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTVCdEMsZUFBVSxHQUFHLEtBQUssQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFFaEQsZUFBVSxHQUFHLE1BQU0sQ0FBaUIsRUFBRSxDQUFDLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxJQUFJLENBQUE7UUFhbEIsNkJBQTZCO1FBRW5CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVoRCxhQUFhO1FBRWIsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QixlQUFVLEdB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QUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDckIsQ0FBQzs4R0FwUFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsaWpDQVlLLGdCQUFnQixxSUM3Q3JELDRoSUE0SEE7OzJGRDNGYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTtnSkFjZCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ3VCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUUzQixnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTVDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQXNOYyxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBtb2RlbCxcclxuICBPdXRwdXQsXHJcbiAgc2lnbmFsLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgdmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT3JnQ2hhcnQgfSBmcm9tICdkMy1vcmctY2hhcnQnO1xyXG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XHJcblxyXG5pbXBvcnQgT3JnQ2hhcnRDb25maWcgZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvY2hhcnQvb3JjaGFydC5jb25maWcnO1xyXG5pbXBvcnQgT3JnQ2hhcnROb2RlIGZyb20gJy4uLy4uL2FwaS9jb21wb25lbnRzL2NoYXJ0L29yY2hhcnRub2RlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgT3JnQ2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL29yZ2NoYXJ0LnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRHJvcGRvd24sIERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1vcmdjaGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LW9yZ2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi1vcmdjaGFydC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZPcmdjaGFydENvbXBvbmVudCB7XHJcblxyXG5cclxuICBjaGFydCE6IGFueTtcclxuXHJcbiAgZGF0YVNvdXJjZSA9IG1vZGVsPE9yZ0NoYXJ0Tm9kZVtdIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIGZpbHRyb3NPcHQgPSBzaWduYWw8T3JnQ2hhcnROb2RlW10+KFtdKTtcclxuICBzZWxlY3RlZE9wdCA9IG51bGxcclxuXHJcbiAgQElucHV0KCkgY29uZmlnITogT3JnQ2hhcnRDb25maWc7XHJcbiAgQFZpZXdDaGlsZCgnY2hhcnRDb250YWluZXInKSBjaGFydENvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnbm9kZVRlbXBsYXRlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcbiAgdmlld0NvbnRhaW5lclJlZiE6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQElucHV0KCkgbm9kZVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQElucHV0KCkgZmlsdGVySXRlbVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBmaWx0ZXJTZWxlY3RlZEl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cclxuXHJcbiAgLy8jcmVnaW9uIEVtaXNzb3JlcyBkZSBldmVudG9cclxuXHJcbiAgQE91dHB1dCgpIG9uTm9kZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbiAgY29tcGFjdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgbW9zdHJhTWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgc2VydmljZTogT3JnQ2hhcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICAvLyNyZWdpb24gSW5pY2lhciBPcmdDaGFydCBlIEF0dWFsaXphw6fDo28gZGUgZGFkb3NcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pY2lhckhhbmRsZXJzRGVFdmVudG9zKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hhcnQpIHtcclxuICAgICAgdGhpcy5jaGFydCA9IG5ldyBPcmdDaGFydCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbmljaWFyQ2hhcnQoKTtcclxuICB9XHJcblxyXG4gIGluaWNpYXJDaGFydCgpIHtcclxuICAgIGlmICghdGhpcy5kYXRhU291cmNlKCkgfHwgIXRoaXMuY2hhcnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNoYXJ0Q29udGFpbmVyID0gdGhpcy5jaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5jaGFydFxyXG4gICAgICAuY3JlYXRlWm9vbSgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGQzLnpvb20oKS5maWx0ZXIoKGUpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZS5zcmNFbGVtZW50O1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduby16b29tJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jb250YWluZXIoY2hhcnRDb250YWluZXIpXHJcbiAgICAgIC5kYXRhKHRoaXMuZGF0YVNvdXJjZSgpKVxyXG4gICAgICAubm9kZVdpZHRoKCgpID0+IHRoaXMuY29uZmlnLmNhcmRXaWRodClcclxuICAgICAgLm5vZGVIZWlnaHQoKGQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBkLmRhdGEuZXhwYW5kZWQgJiYgdGhpcy5jb25maWcuY2FyZEV4cGFuZGVkSGVpZ2h0XHJcbiAgICAgICAgICA/IHRoaXMuY29uZmlnLmNhcmRFeHBhbmRlZEhlaWdodFxyXG4gICAgICAgICAgOiB0aGlzLmNvbmZpZy5jYXJkSGVpZ2h0O1xyXG4gICAgICB9KVxyXG4gICAgICAuY29tcGFjdChmYWxzZSlcclxuICAgICAgLmJ1dHRvbkNvbnRlbnQoKHsgbm9kZSwgc3RhdGUgfTogeyBub2RlOiBhbnk7IHN0YXRlOiBhbnkgfSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBzdHlsZT1cImNvbG9yOiNGRkZGRkY7IGJvcmRlci1yYWRpdXM6MTAwJTtmb250LXNpemU6NXB4O21hcmdpbjphdXRvIGF1dG87YmFja2dyb3VuZC1jb2xvcjojNjQ3NDhCO1wiPlxyXG4gICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAke1xyXG4gICAgICAgICAgICBub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICAgID8gYDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPlxyXG4gICAgICAgICAgICAgIGtleWJvYXJkX2Fycm93X3VwXHJcbiAgICAgICAgICAgICAgPC9pPmBcclxuICAgICAgICAgICAgICA6IGA8aSBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5cclxuICAgICAgICAgICAgICBrZXlib2FyZF9hcnJvd19kb3duXHJcbiAgICAgICAgICAgIDwvaT5gXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PmA7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5saW5rVXBkYXRlKChub2RlOiBhbnksIGluZGV4OiBhbnksIG5vZGVzOiBhbnkpID0+IHtcclxuICAgICAgICBkMy5zZWxlY3Qobm9kZXNbaW5kZXhdKVxyXG4gICAgICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIHRoaXMuY29uZmlnLmNvbmVjdGlvbldpZHRoIHx8ICcycHgnKVxyXG4gICAgICAgICAgLnN0eWxlKCdzdHJva2UnLCB0aGlzLmNvbmZpZy5jb25uZWN0aW9uQ29sb3IgfHwgJyNkNmQ2ZDYnKTtcclxuICAgICAgfSlcclxuICAgICAgLm5vZGVDb250ZW50KChkOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBub2RlOiBPcmdDaGFydE5vZGUgPSB7XHJcbiAgICAgICAgICBkYXRhOiBkLmRhdGEuZGF0YSxcclxuICAgICAgICAgIGNoaWxkcmVuOiBkLmNoaWxkcmVuLFxyXG4gICAgICAgICAgaWQ6IGQuZGF0YS5pZCxcclxuICAgICAgICAgIHBhcmVudElkOiBkLmRhdGEucGFyZW50SWQsXHJcbiAgICAgICAgICBleHBhbmRlZDogZC5kYXRhLmV4cGFuZGVkLFxyXG4gICAgICAgICAgb3JnQ29uZmlnOiBkLm9yZ0NvbmZpZyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHggPSB0aGlzLnJlbmRlck5vZGVUZW1wbGF0ZShub2RlKTtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfSlcclxuICAgICAgLm5vZGVVcGRhdGUoZnVuY3Rpb24gKHRoaXM6IGFueSwgZDogYW55KSB7XHJcbiAgICAgICAgZC5kYXRhLm9yZ0NvbmZpZy5jbGlja3MuZm9yRWFjaCgoY2xpY2s6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZDMuc2VsZWN0KHRoaXMpXHJcbiAgICAgICAgICAgIC5zZWxlY3QoY2xpY2spXHJcbiAgICAgICAgICAgIC5vbignY2xpY2snLCAoZSwgZCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhZG9zOiBhbnkgPSBkO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5vZGU6IE9yZ0NoYXJ0Tm9kZSA9IHtcclxuICAgICAgICAgICAgICAgIGRhdGE6IGRhZG9zLmRhdGEuZGF0YSxcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBkYWRvcy5jaGlsZHJlbixcclxuICAgICAgICAgICAgICAgIGlkOiBkYWRvcy5kYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IGRhZG9zLmRhdGEucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgICBleHBhbmRlZDogZGFkb3MuZGF0YS5leHBhbmRlZCxcclxuICAgICAgICAgICAgICAgIG9yZ0NvbmZpZzogZGFkb3Mub3JnQ29uZmlnLFxyXG4gICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KFxyXG4gICAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdLdk9yZ0NoYXJ0X05vZGVDbGljaycsIHtcclxuICAgICAgICAgICAgICAgICAgZGV0YWlsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZSxcclxuICAgICAgICAgICAgICAgICAgICBzZWxldG9yOiBjbGljayxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5kZWZhdWx0Rm9udCgnUm9ib3RvJylcclxuICAgICAgLnJlbmRlcigpO1xyXG5cclxuICAgIHRoaXMuY2hhcnQuZXhwYW5kQWxsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZGF0YVNvdXJjZSddKSB7XHJcbiAgICAgIHRoaXMuaW5pY2lhckNoYXJ0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFJlbmRlcml6YcOnw6NvIGRlIHRlbXBsYXRlXHJcbiAgcmVuZGVyTm9kZVRlbXBsYXRlKG5vZGU6IE9yZ0NoYXJ0Tm9kZSk6IHN0cmluZyB7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubm9kZVRlbXBsYXRlLCB7XHJcbiAgICAgIG5vZGU6IG5vZGUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHJldHVybiB2aWV3LnJvb3ROb2Rlc1swXS5vdXRlckhUTUw7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbiAgLy8gI3JlZ2lvbiBFdmVudG9zXHJcbiAgcHJpdmF0ZSBub2RlQ2xpY2tTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBub2RlQWRkU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbm9kZVJlbW92ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgaW5pY2lhckhhbmRsZXJzRGVFdmVudG9zKCkge1xyXG4gICAgdGhpcy5ub2RlQ2xpY2tTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8Q3VzdG9tRXZlbnQ+KFxyXG4gICAgICB3aW5kb3csXHJcbiAgICAgICdLdk9yZ0NoYXJ0X05vZGVDbGljaydcclxuICAgICkuc3Vic2NyaWJlKChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5lbWl0aXJDbGljayhldmVudC5kZXRhaWwubm9kZSwgZXZlbnQuZGV0YWlsLnNlbGV0b3IpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5ub2RlQWRkU3Vic2NyaXB0aW9uID0gdGhpcy5zZXJ2aWNlLm5vZGVBZGQkLnN1YnNjcmliZShcclxuICAgICAgKG5vZGU6IE9yZ0NoYXJ0Tm9kZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRpY2lvbmFyTm9kZShub2RlKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLm5vZGVSZW1vdmVTdWJzY3JpcHRpb24gPSB0aGlzLnNlcnZpY2Uubm9kZVJlbW92ZSQuc3Vic2NyaWJlKFxyXG4gICAgICAoaWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHRoaXMucmVtb3Zlck5vZGUoaWQpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubm9kZUNsaWNrU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLm5vZGVBZGRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubm9kZVJlbW92ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZW1pdGlyQ2xpY2sobm9kZTogTm9kZSwgc2VsZXRvckNzcz86IHN0cmluZykge1xyXG4gICAgY29uc3QgZXZlbnQgPSB7XHJcbiAgICAgIG5vZGU6IG5vZGUsXHJcbiAgICAgIHNlbGV0b3JDc3M6IHNlbGV0b3JDc3MgPz8gJycsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5vbk5vZGVDbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgYWRpY2lvbmFyTm9kZShub2RlOiBPcmdDaGFydE5vZGUpIHtcclxuICAgIGNvbnN0IGFyciA9IFsuLi50aGlzLmRhdGFTb3VyY2UoKSEsIG5vZGVdO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLnNldChhcnIpO1xyXG4gICAgdGhpcy5pbmljaWFyQ2hhcnQoKTtcclxuICB9XHJcbiAgcmVtb3Zlck5vZGUoaWQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgaW5kUGFpID0gdGhpcy5kYXRhU291cmNlKCkhLnNvbWUoKHg6IGFueSkgPT4geC5wYXJlbnRJZCA9PSBpZCk7XHJcbiAgICBpZiAoaW5kUGFpKSB7XHJcbiAgICAgIGFsZXJ0KCdOw6NvIMOpIHBvc3PDrXZlbCByZW1vdmVyIHVtIG7DsyBxdWUgcG9zc3VpIGZpbGhvcycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgYXJyID0gdGhpcy5kYXRhU291cmNlKCkhLmZpbHRlcigoeDogYW55KSA9PiB4LmlkICE9IGlkKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLnNldChhcnIpO1xyXG4gICAgICB0aGlzLmluaWNpYXJDaGFydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiBGdW7Dp8O1ZXMgZGUgdXRpbGlkYWRlXHJcblxyXG4gIHBlc3F1aXNhcihlOiBhbnkpIHtcclxuICAgIGNvbnN0IHZhbG9yID0gZS50YXJnZXQudmFsdWVcclxuICAgIHRoaXMuZmlsdHJvc09wdC5zZXQodGhpcy5maWx0cmFyQXJyYXkodmFsb3IpISlcclxuICB9XHJcblxyXG4gIGZpbHRyYXJBcnJheSh2YWxvcjogc3RyaW5nKTogT3JnQ2hhcnROb2RlW10gfCBudWxsIHtcclxuICAgIGlmICh2YWxvciAmJiB0aGlzLmNvbmZpZy5maWx0ZXJzKSB7XHJcbiAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UoKSE7XHJcbiAgICAgIGNvbnN0IHZhbG9yTG93ZXIgPSB2YWxvci50b0xvd2VyQ2FzZSgpOyAvLyBDb252ZXJ0ZSBvIHZhbG9yIGRlIGJ1c2NhIHBhcmEgbWluw7pzY3VsYXNcclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IGRhdGFTb3VyY2UuZmlsdGVyKChub2RlOiBPcmdDaGFydE5vZGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZmlsdGVycyEuZXZlcnkoKGZpbHRlcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAvLyBDb252ZXJ0ZSBvcyB2YWxvcmVzIHBhcmEgbWluw7pzY3VsYXMgZSB2ZXJpZmljYSBzZSBjb250w6ltIGEgc3RyaW5nIGRlIGJ1c2NhXHJcbiAgICAgICAgICByZXR1cm4gbm9kZS5kYXRhW2ZpbHRlcl0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWxvckxvd2VyKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gYXJyID8/IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcicpIGZpbHRlciE6IERyb3Bkb3duO1xyXG5cclxuXHJcbiAgY2VudHJhbGl6YXJObyhpZDogYW55KSB7XHJcbiAgICB0aGlzLmNoYXJ0LnNldENlbnRlcmVkKGlkKS5yZW5kZXIoKVxyXG4gICAgdGhpcy5maWx0ZXIuaGlkZSgpXHJcbiAgICB0aGlzLmZpbHRlci5jbGVhcigpXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gI2VuZHJlZ2lvblxyXG59XHJcbiIsIjxkaXYgI2NoYXJ0Q29udGFpbmVyIGlkPVwiY2hhcnRDb250YWluZXJcIiBbbmdDbGFzc109XCJ7IGJhY2tHcm91bmQ6IHRydWUgfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkaXYtYm90b2VzIHctZnVsbCBmbGV4IGdhcC0xXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGlkPVwibWVudWJhclwiXHJcbiAgICAgIGNsYXNzPVwic2hhZG93LTIgZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1jb250ZW50LWNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZvcm1ncmlkIHAtZmx1aWQgZmxleC1ncm93LTFcIj5cclxuICAgICAgICA8IS0tIDxkaXYgI2ZpbHRlckNvbnRhaW5lciBjbGFzcz1cImNvbC00IGdyaWQgZm9ybWdyaWQgcC1mbHVpZFwiPlxyXG4gICAgICAgICAgICA8a3YtaW5wdXQtdGV4dCBjbGFzcz1cImNvbC0xMlwiICNmaWx0cm8gKG9uSW5wdXQpPVwicGVzcXVpc2FyKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9rdi1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgQGlmKGZpbHRyb3NPcHQoKS5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgaWQ9XCJmaWx0cm8tb3JnLWNoYXJ0XCIgW3N0eWxlLndpZHRoLnB4XT1cImZpbHRlckNvbnRhaW5lci5vZmZzZXRXaWR0aCowLjlcIj5cclxuXHJcbiAgICAgICAgICAgICAgICBAZm9yIChvcHQgb2YgZmlsdHJvc09wdCgpOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRyby1vcmctY2hhcnQtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IG9wdC5kYXRhLm5hbWUgfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgfSAtLT5cclxuXHJcbiAgICAgICAgPHAtZHJvcGRvd25cclxuICAgICAgICAgICNmaWx0ZXJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmlsdHJhci4uLlwiXHJcbiAgICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgICBoZWlnaHQ6ICczNXB4JyxcclxuICAgICAgICAgICAgJ21hcmdpbi1sZWZ0JzogJzE1cHgnLFxyXG4gICAgICAgICAgICAnbWF4LXdpZHRoJzogJzk1JSdcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgW2ZpbHRlcl09XCJ0cnVlXCJcclxuICAgICAgICAgIFtmaWx0ZXJGaWVsZHNdPVwiY29uZmlnLmZpbHRlcnNcIlxyXG4gICAgICAgICAgZmlsdGVyUGxhY2Vob2xkZXI9XCJGaWx0cmFyLi4uXCJcclxuICAgICAgICAgIFtvcHRpb25zXT1cInRoaXMuZGF0YVNvdXJjZSgpIVwiXHJcbiAgICAgICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxyXG4gICAgICAgICAgKG9uQ2hhbmdlKT1cImNlbnRyYWxpemFyTm8oJGV2ZW50LnZhbHVlLmlkKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPCEtLSBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW3NlbGVjdGVkSXRlbVRlbXBsYXRlXT1cInNlbGVjdGVkSXRlbVRlbXBsYXRlXCIgLS0+XHJcbiAgICAgICAgICA8IS0tIFtmaWx0ZXJlZE9wdGlvbnNdPVwidGhpcy5kYXRhU291cmNlKCkhXCIgLS0+XHJcbiAgICAgICAgICA8IS0tIFtmaWx0ZXJGaWVsZHNdPVwiZGF0YS5uYW1lXCIgLS0+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVySXRlbVRlbXBsYXRlIVwiXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGVkSXRlbVRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cInNlbGVjdGVkSXRlbVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyU2VsZWN0ZWRJdGVtVGVtcGxhdGUhXCJcclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvcC1kcm9wZG93bj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIEFjdGlvbnMgYmFyIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMSBmbGV4LXJvdyBmbGV4LWdyb3ctMFwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMzBweFwiPlxyXG4gICAgICAgICAgPGt2LWJ1dHRvblxyXG4gICAgICAgICAgICAob25DbGljayk9XCJjaGFydC5leHBhbmRBbGwoKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWV4cGFuZC1hbGxcIlxyXG4gICAgICAgICAgICBbZnVsbFdpZHRoXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc2V2ZXJpdHk9XCJ0ZXJ0aWFyeVwiXHJcbiAgICAgICAgICAgIFtpY29uXT1cIidleHBhbmRfYWxsJ1wiXHJcbiAgICAgICAgICAgIFtwVG9vbHRpcF09XCInRXhwYW5kaXIgVG9kb3MnXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwva3YtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDMwcHhcIj5cclxuICAgICAgICAgIDxrdi1idXR0b25cclxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2hhcnQuY29sbGFwc2VBbGwoKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWNvbGFwcHNlLWFsbFwiXHJcbiAgICAgICAgICAgIFtmdWxsV2lkdGhdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICBzZXZlcml0eT1cInRlcnRpYXJ5XCJcclxuICAgICAgICAgICAgW2ljb25dPVwiJ2NvbGxhcHNlX2FsbCdcIlxyXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ1JlY29saGVyIFRvZG9zJ1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2t2LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMHB4XCI+XHJcbiAgICAgICAgICA8a3YtYnV0dG9uXHJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNoYXJ0LmZpdCgpLnJlbmRlcigpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tZm9jdXMtY2VudGVyXCJcclxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgIHNldmVyaXR5PVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIFtpY29uXT1cIidjZW50ZXJfZm9jdXNfd2VhaydcIlxyXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ0NlbnRyYWxpemFyIE9yZ2Fub2dyYW1hJ1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2t2LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bGlua1xyXG4gIHJlbD1cInN0eWxlc2hlZXRcIlxyXG4gIGhyZWY9XCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2ljb24/ZmFtaWx5PU1hdGVyaWFsK0ljb25zXCJcclxuLz5cclxuXHJcbjxsaW5rXHJcbiAgcmVsPVwic3R5bGVzaGVldFwiXHJcbiAgaHJlZj1cImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9TWF0ZXJpYWwrU3ltYm9scytPdXRsaW5lZDpvcHN6LHdnaHQsRklMTCxHUkFEQDQ4LDQwMCwwLDBcIlxyXG4vPlxyXG5cclxuPGRpdiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICA8bmctdGVtcGxhdGUgI25vZGVUZW1wbGF0ZSBsZXQtbm9kZT5cclxuICAgIDxkaXYgY2xhc3M9XCJub2RlLWNvbnRlbnRcIj5lcnJvPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytb3JnY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUlOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUl6QixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFZL0MsTUFBTSxPQUFPLG1CQUFtQjtJQThCOUIsWUFDVSxHQUFzQixFQUN0QixPQUF3QixFQUN4QixhQUE0QjtRQUY1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTVCdEMsZUFBVSxHQUFHLEtBQUssQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFFaEQsZUFBVSxHQUFHLE1BQU0sQ0FBaUIsRUFBRSxDQUFDLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxJQUFJLENBQUE7UUFhbEIsNkJBQTZCO1FBRW5CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVoRCxhQUFhO1FBRWIsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QixlQUFVLEdB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QUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDckIsQ0FBQzs4R0FwUFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsaWpDQVlLLGdCQUFnQixxSUM3Q3JELDBrSUE0SEE7OzJGRDNGYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTtnSkFjZCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ3VCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUUzQixnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTVDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQXNOYyxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBtb2RlbCxcclxuICBPdXRwdXQsXHJcbiAgc2lnbmFsLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgdmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT3JnQ2hhcnQgfSBmcm9tICdkMy1vcmctY2hhcnQnO1xyXG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XHJcblxyXG5pbXBvcnQgT3JnQ2hhcnRDb25maWcgZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvY2hhcnQvb3JjaGFydC5jb25maWcnO1xyXG5pbXBvcnQgT3JnQ2hhcnROb2RlIGZyb20gJy4uLy4uL2FwaS9jb21wb25lbnRzL2NoYXJ0L29yY2hhcnRub2RlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgT3JnQ2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL29yZ2NoYXJ0LnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRHJvcGRvd24sIERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1vcmdjaGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LW9yZ2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi1vcmdjaGFydC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZPcmdjaGFydENvbXBvbmVudCB7XHJcblxyXG5cclxuICBjaGFydCE6IGFueTtcclxuXHJcbiAgZGF0YVNvdXJjZSA9IG1vZGVsPE9yZ0NoYXJ0Tm9kZVtdIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIGZpbHRyb3NPcHQgPSBzaWduYWw8T3JnQ2hhcnROb2RlW10+KFtdKTtcclxuICBzZWxlY3RlZE9wdCA9IG51bGxcclxuXHJcbiAgQElucHV0KCkgY29uZmlnITogT3JnQ2hhcnRDb25maWc7XHJcbiAgQFZpZXdDaGlsZCgnY2hhcnRDb250YWluZXInKSBjaGFydENvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnbm9kZVRlbXBsYXRlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcbiAgdmlld0NvbnRhaW5lclJlZiE6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQElucHV0KCkgbm9kZVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQElucHV0KCkgZmlsdGVySXRlbVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBmaWx0ZXJTZWxlY3RlZEl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cclxuXHJcbiAgLy8jcmVnaW9uIEVtaXNzb3JlcyBkZSBldmVudG9cclxuXHJcbiAgQE91dHB1dCgpIG9uTm9kZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbiAgY29tcGFjdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgbW9zdHJhTWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgc2VydmljZTogT3JnQ2hhcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICAvLyNyZWdpb24gSW5pY2lhciBPcmdDaGFydCBlIEF0dWFsaXphw6fDo28gZGUgZGFkb3NcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pY2lhckhhbmRsZXJzRGVFdmVudG9zKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hhcnQpIHtcclxuICAgICAgdGhpcy5jaGFydCA9IG5ldyBPcmdDaGFydCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbmljaWFyQ2hhcnQoKTtcclxuICB9XHJcblxyXG4gIGluaWNpYXJDaGFydCgpIHtcclxuICAgIGlmICghdGhpcy5kYXRhU291cmNlKCkgfHwgIXRoaXMuY2hhcnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNoYXJ0Q29udGFpbmVyID0gdGhpcy5jaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5jaGFydFxyXG4gICAgICAuY3JlYXRlWm9vbSgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGQzLnpvb20oKS5maWx0ZXIoKGUpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZS5zcmNFbGVtZW50O1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduby16b29tJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jb250YWluZXIoY2hhcnRDb250YWluZXIpXHJcbiAgICAgIC5kYXRhKHRoaXMuZGF0YVNvdXJjZSgpKVxyXG4gICAgICAubm9kZVdpZHRoKCgpID0+IHRoaXMuY29uZmlnLmNhcmRXaWRodClcclxuICAgICAgLm5vZGVIZWlnaHQoKGQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBkLmRhdGEuZXhwYW5kZWQgJiYgdGhpcy5jb25maWcuY2FyZEV4cGFuZGVkSGVpZ2h0XHJcbiAgICAgICAgICA/IHRoaXMuY29uZmlnLmNhcmRFeHBhbmRlZEhlaWdodFxyXG4gICAgICAgICAgOiB0aGlzLmNvbmZpZy5jYXJkSGVpZ2h0O1xyXG4gICAgICB9KVxyXG4gICAgICAuY29tcGFjdChmYWxzZSlcclxuICAgICAgLmJ1dHRvbkNvbnRlbnQoKHsgbm9kZSwgc3RhdGUgfTogeyBub2RlOiBhbnk7IHN0YXRlOiBhbnkgfSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBzdHlsZT1cImNvbG9yOiNGRkZGRkY7IGJvcmRlci1yYWRpdXM6MTAwJTtmb250LXNpemU6NXB4O21hcmdpbjphdXRvIGF1dG87YmFja2dyb3VuZC1jb2xvcjojNjQ3NDhCO1wiPlxyXG4gICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAke1xyXG4gICAgICAgICAgICBub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICAgID8gYDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPlxyXG4gICAgICAgICAgICAgIGtleWJvYXJkX2Fycm93X3VwXHJcbiAgICAgICAgICAgICAgPC9pPmBcclxuICAgICAgICAgICAgICA6IGA8aSBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5cclxuICAgICAgICAgICAgICBrZXlib2FyZF9hcnJvd19kb3duXHJcbiAgICAgICAgICAgIDwvaT5gXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PmA7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5saW5rVXBkYXRlKChub2RlOiBhbnksIGluZGV4OiBhbnksIG5vZGVzOiBhbnkpID0+IHtcclxuICAgICAgICBkMy5zZWxlY3Qobm9kZXNbaW5kZXhdKVxyXG4gICAgICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIHRoaXMuY29uZmlnLmNvbmVjdGlvbldpZHRoIHx8ICcycHgnKVxyXG4gICAgICAgICAgLnN0eWxlKCdzdHJva2UnLCB0aGlzLmNvbmZpZy5jb25uZWN0aW9uQ29sb3IgfHwgJyNkNmQ2ZDYnKTtcclxuICAgICAgfSlcclxuICAgICAgLm5vZGVDb250ZW50KChkOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBub2RlOiBPcmdDaGFydE5vZGUgPSB7XHJcbiAgICAgICAgICBkYXRhOiBkLmRhdGEuZGF0YSxcclxuICAgICAgICAgIGNoaWxkcmVuOiBkLmNoaWxkcmVuLFxyXG4gICAgICAgICAgaWQ6IGQuZGF0YS5pZCxcclxuICAgICAgICAgIHBhcmVudElkOiBkLmRhdGEucGFyZW50SWQsXHJcbiAgICAgICAgICBleHBhbmRlZDogZC5kYXRhLmV4cGFuZGVkLFxyXG4gICAgICAgICAgb3JnQ29uZmlnOiBkLm9yZ0NvbmZpZyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHggPSB0aGlzLnJlbmRlck5vZGVUZW1wbGF0ZShub2RlKTtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfSlcclxuICAgICAgLm5vZGVVcGRhdGUoZnVuY3Rpb24gKHRoaXM6IGFueSwgZDogYW55KSB7XHJcbiAgICAgICAgZC5kYXRhLm9yZ0NvbmZpZy5jbGlja3MuZm9yRWFjaCgoY2xpY2s6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZDMuc2VsZWN0KHRoaXMpXHJcbiAgICAgICAgICAgIC5zZWxlY3QoY2xpY2spXHJcbiAgICAgICAgICAgIC5vbignY2xpY2snLCAoZSwgZCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhZG9zOiBhbnkgPSBkO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5vZGU6IE9yZ0NoYXJ0Tm9kZSA9IHtcclxuICAgICAgICAgICAgICAgIGRhdGE6IGRhZG9zLmRhdGEuZGF0YSxcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBkYWRvcy5jaGlsZHJlbixcclxuICAgICAgICAgICAgICAgIGlkOiBkYWRvcy5kYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IGRhZG9zLmRhdGEucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgICBleHBhbmRlZDogZGFkb3MuZGF0YS5leHBhbmRlZCxcclxuICAgICAgICAgICAgICAgIG9yZ0NvbmZpZzogZGFkb3Mub3JnQ29uZmlnLFxyXG4gICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KFxyXG4gICAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdLdk9yZ0NoYXJ0X05vZGVDbGljaycsIHtcclxuICAgICAgICAgICAgICAgICAgZGV0YWlsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZSxcclxuICAgICAgICAgICAgICAgICAgICBzZWxldG9yOiBjbGljayxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5kZWZhdWx0Rm9udCgnUm9ib3RvJylcclxuICAgICAgLnJlbmRlcigpO1xyXG5cclxuICAgIHRoaXMuY2hhcnQuZXhwYW5kQWxsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZGF0YVNvdXJjZSddKSB7XHJcbiAgICAgIHRoaXMuaW5pY2lhckNoYXJ0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFJlbmRlcml6YcOnw6NvIGRlIHRlbXBsYXRlXHJcbiAgcmVuZGVyTm9kZVRlbXBsYXRlKG5vZGU6IE9yZ0NoYXJ0Tm9kZSk6IHN0cmluZyB7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubm9kZVRlbXBsYXRlLCB7XHJcbiAgICAgIG5vZGU6IG5vZGUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHJldHVybiB2aWV3LnJvb3ROb2Rlc1swXS5vdXRlckhUTUw7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbiAgLy8gI3JlZ2lvbiBFdmVudG9zXHJcbiAgcHJpdmF0ZSBub2RlQ2xpY2tTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBub2RlQWRkU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbm9kZVJlbW92ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgaW5pY2lhckhhbmRsZXJzRGVFdmVudG9zKCkge1xyXG4gICAgdGhpcy5ub2RlQ2xpY2tTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8Q3VzdG9tRXZlbnQ+KFxyXG4gICAgICB3aW5kb3csXHJcbiAgICAgICdLdk9yZ0NoYXJ0X05vZGVDbGljaydcclxuICAgICkuc3Vic2NyaWJlKChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5lbWl0aXJDbGljayhldmVudC5kZXRhaWwubm9kZSwgZXZlbnQuZGV0YWlsLnNlbGV0b3IpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5ub2RlQWRkU3Vic2NyaXB0aW9uID0gdGhpcy5zZXJ2aWNlLm5vZGVBZGQkLnN1YnNjcmliZShcclxuICAgICAgKG5vZGU6IE9yZ0NoYXJ0Tm9kZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRpY2lvbmFyTm9kZShub2RlKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLm5vZGVSZW1vdmVTdWJzY3JpcHRpb24gPSB0aGlzLnNlcnZpY2Uubm9kZVJlbW92ZSQuc3Vic2NyaWJlKFxyXG4gICAgICAoaWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHRoaXMucmVtb3Zlck5vZGUoaWQpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubm9kZUNsaWNrU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLm5vZGVBZGRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubm9kZVJlbW92ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZW1pdGlyQ2xpY2sobm9kZTogTm9kZSwgc2VsZXRvckNzcz86IHN0cmluZykge1xyXG4gICAgY29uc3QgZXZlbnQgPSB7XHJcbiAgICAgIG5vZGU6IG5vZGUsXHJcbiAgICAgIHNlbGV0b3JDc3M6IHNlbGV0b3JDc3MgPz8gJycsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5vbk5vZGVDbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgYWRpY2lvbmFyTm9kZShub2RlOiBPcmdDaGFydE5vZGUpIHtcclxuICAgIGNvbnN0IGFyciA9IFsuLi50aGlzLmRhdGFTb3VyY2UoKSEsIG5vZGVdO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLnNldChhcnIpO1xyXG4gICAgdGhpcy5pbmljaWFyQ2hhcnQoKTtcclxuICB9XHJcbiAgcmVtb3Zlck5vZGUoaWQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgaW5kUGFpID0gdGhpcy5kYXRhU291cmNlKCkhLnNvbWUoKHg6IGFueSkgPT4geC5wYXJlbnRJZCA9PSBpZCk7XHJcbiAgICBpZiAoaW5kUGFpKSB7XHJcbiAgICAgIGFsZXJ0KCdOw6NvIMOpIHBvc3PDrXZlbCByZW1vdmVyIHVtIG7DsyBxdWUgcG9zc3VpIGZpbGhvcycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgYXJyID0gdGhpcy5kYXRhU291cmNlKCkhLmZpbHRlcigoeDogYW55KSA9PiB4LmlkICE9IGlkKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLnNldChhcnIpO1xyXG4gICAgICB0aGlzLmluaWNpYXJDaGFydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiBGdW7Dp8O1ZXMgZGUgdXRpbGlkYWRlXHJcblxyXG4gIHBlc3F1aXNhcihlOiBhbnkpIHtcclxuICAgIGNvbnN0IHZhbG9yID0gZS50YXJnZXQudmFsdWVcclxuICAgIHRoaXMuZmlsdHJvc09wdC5zZXQodGhpcy5maWx0cmFyQXJyYXkodmFsb3IpISlcclxuICB9XHJcblxyXG4gIGZpbHRyYXJBcnJheSh2YWxvcjogc3RyaW5nKTogT3JnQ2hhcnROb2RlW10gfCBudWxsIHtcclxuICAgIGlmICh2YWxvciAmJiB0aGlzLmNvbmZpZy5maWx0ZXJzKSB7XHJcbiAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UoKSE7XHJcbiAgICAgIGNvbnN0IHZhbG9yTG93ZXIgPSB2YWxvci50b0xvd2VyQ2FzZSgpOyAvLyBDb252ZXJ0ZSBvIHZhbG9yIGRlIGJ1c2NhIHBhcmEgbWluw7pzY3VsYXNcclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IGRhdGFTb3VyY2UuZmlsdGVyKChub2RlOiBPcmdDaGFydE5vZGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZmlsdGVycyEuZXZlcnkoKGZpbHRlcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAvLyBDb252ZXJ0ZSBvcyB2YWxvcmVzIHBhcmEgbWluw7pzY3VsYXMgZSB2ZXJpZmljYSBzZSBjb250w6ltIGEgc3RyaW5nIGRlIGJ1c2NhXHJcbiAgICAgICAgICByZXR1cm4gbm9kZS5kYXRhW2ZpbHRlcl0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWxvckxvd2VyKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gYXJyID8/IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcicpIGZpbHRlciE6IERyb3Bkb3duO1xyXG5cclxuXHJcbiAgY2VudHJhbGl6YXJObyhpZDogYW55KSB7XHJcbiAgICB0aGlzLmNoYXJ0LnNldENlbnRlcmVkKGlkKS5yZW5kZXIoKVxyXG4gICAgdGhpcy5maWx0ZXIuaGlkZSgpXHJcbiAgICB0aGlzLmZpbHRlci5jbGVhcigpXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gI2VuZHJlZ2lvblxyXG59XHJcbiIsIjxkaXYgI2NoYXJ0Q29udGFpbmVyIGlkPVwiY2hhcnRDb250YWluZXJcIiBbbmdDbGFzc109XCJ7IGJhY2tHcm91bmQ6IHRydWUgfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkaXYtYm90b2VzIHctZnVsbCBmbGV4IGdhcC0xXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGlkPVwibWVudWJhclwiXHJcbiAgICAgIGNsYXNzPVwic2hhZG93LTIgZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1jb250ZW50LWNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZvcm1ncmlkIHAtZmx1aWQgZmxleC1ncm93LTFcIj5cclxuICAgICAgICA8IS0tIDxkaXYgI2ZpbHRlckNvbnRhaW5lciBjbGFzcz1cImNvbC00IGdyaWQgZm9ybWdyaWQgcC1mbHVpZFwiPlxyXG4gICAgICAgICAgICA8a3YtaW5wdXQtdGV4dCBjbGFzcz1cImNvbC0xMlwiICNmaWx0cm8gKG9uSW5wdXQpPVwicGVzcXVpc2FyKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9rdi1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgQGlmKGZpbHRyb3NPcHQoKS5sZW5ndGggPiAwKSB7XHJcbiBcclxuICAgICAgICAgICAgICA8ZGl2IGlkPVwiZmlsdHJvLW9yZy1jaGFydFwiIFtzdHlsZS53aWR0aC5weF09XCJmaWx0ZXJDb250YWluZXIub2Zmc2V0V2lkdGgqMC45XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgQGZvciAob3B0IG9mIGZpbHRyb3NPcHQoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0cm8tb3JnLWNoYXJ0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBvcHQuZGF0YS5uYW1lIH19XHJcblxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIH0gLS0+XHJcblxyXG4gICAgICAgIDxwLWRyb3Bkb3duXHJcbiAgICAgICAgICAjZmlsdGVyXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbHRyYXIuLi5cIlxyXG4gICAgICAgICAgW3N0eWxlXT1cIntcclxuICAgICAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgICAgICAgICdtYXJnaW4tbGVmdCc6ICcxNXB4JyxcclxuICAgICAgICAgICAgJ21heC13aWR0aCc6ICc5NSUnXHJcbiAgICAgICAgICB9XCJcclxuICAgICAgICAgIFtmaWx0ZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbZmlsdGVyRmllbGRzXT1cImNvbmZpZy5maWx0ZXJzXCJcclxuICAgICAgICAgIGZpbHRlclBsYWNlaG9sZGVyPVwiRmlsdHJhci4uLlwiXHJcbiAgICAgICAgICBbb3B0aW9uc109XCJ0aGlzLmRhdGFTb3VyY2UoKSFcIlxyXG4gICAgICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcclxuICAgICAgICAgIChvbkNoYW5nZSk9XCJjZW50cmFsaXphck5vKCRldmVudC52YWx1ZS5pZClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDwhLS0gW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIFtzZWxlY3RlZEl0ZW1UZW1wbGF0ZV09XCJzZWxlY3RlZEl0ZW1UZW1wbGF0ZVwiIC0tPlxyXG4gICAgICAgICAgPCEtLSBbZmlsdGVyZWRPcHRpb25zXT1cInRoaXMuZGF0YVNvdXJjZSgpIVwiIC0tPlxyXG4gICAgICAgICAgPCEtLSBbZmlsdGVyRmllbGRzXT1cImRhdGEubmFtZVwiIC0tPlxyXG5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbVRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlckl0ZW1UZW1wbGF0ZSFcIlxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RlZEl0ZW1UZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlclNlbGVjdGVkSXRlbVRlbXBsYXRlIVwiXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3AtZHJvcGRvd24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBBY3Rpb25zIGJhciAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTEgZmxleC1yb3cgZmxleC1ncm93LTBcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDMwcHhcIiBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgIDxrdi1idXR0b25cclxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2hhcnQuZXhwYW5kQWxsKClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1leHBhbmQtYWxsXCJcclxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgIHNldmVyaXR5PVwidGVydGlhcnlcIlxyXG4gICAgICAgICAgICBbaWNvbl09XCInZXhwYW5kX2FsbCdcIlxyXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ0V4cGFuZGlyIFRvZG9zJ1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L2t2LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMHB4XCIgY2xhc3M9XCJtci0yXCI+XHJcbiAgICAgICAgICA8a3YtYnV0dG9uXHJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNoYXJ0LmNvbGxhcHNlQWxsKClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1jb2xhcHBzZS1hbGxcIlxyXG4gICAgICAgICAgICBbZnVsbFdpZHRoXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc2V2ZXJpdHk9XCJ0ZXJ0aWFyeVwiXHJcbiAgICAgICAgICAgIFtpY29uXT1cIidjb2xsYXBzZV9hbGwnXCJcclxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIidSZWNvbGhlciBUb2RvcydcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9rdi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMzBweFwiIGNsYXNzPVwibXItMlwiPlxyXG4gICAgICAgICAgPGt2LWJ1dHRvblxyXG4gICAgICAgICAgICAob25DbGljayk9XCJjaGFydC5maXQoKS5yZW5kZXIoKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWZvY3VzLWNlbnRlclwiXHJcbiAgICAgICAgICAgIFtmdWxsV2lkdGhdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICBzZXZlcml0eT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBbaWNvbl09XCInY2VudGVyX2ZvY3VzX3dlYWsnXCJcclxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIidDZW50cmFsaXphciBPcmdhbm9ncmFtYSdcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9rdi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGxpbmtcclxuICByZWw9XCJzdHlsZXNoZWV0XCJcclxuICBocmVmPVwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9pY29uP2ZhbWlseT1NYXRlcmlhbCtJY29uc1wiXHJcbi8+XHJcblxyXG48bGlua1xyXG4gIHJlbD1cInN0eWxlc2hlZXRcIlxyXG4gIGhyZWY9XCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU1hdGVyaWFsK1N5bWJvbHMrT3V0bGluZWQ6b3Bzeix3Z2h0LEZJTEwsR1JBREA0OCw0MDAsMCwwXCJcclxuLz5cclxuXHJcbjxkaXYgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgPG5nLXRlbXBsYXRlICNub2RlVGVtcGxhdGUgbGV0LW5vZGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwibm9kZS1jb250ZW50XCI+ZXJybzwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,22 +1,14 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "primeng/api";
5
- import * as i3 from "primeng/picklist";
3
+ import * as i1 from "@angular/forms";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "primeng/api";
6
+ import * as i4 from "primeng/picklist";
7
+ import * as i5 from "../kv-inputs/kv-check/kv-check.component";
6
8
  export class KvPickListComponent {
7
- OnMoveToSource(event) {
8
- this.onMoveToSource.emit(event);
9
- }
10
- OnMoveToTarget(event) {
11
- this.onMoveToTarget.emit(event);
12
- }
13
- OnMoveAllToSource(event) {
14
- this.onMoveToSource.emit(event);
15
- }
16
- OnMoveAllToTarget(event) {
17
- this.onMoveToTarget.emit(event);
18
- }
19
- constructor() {
9
+ constructor(fb) {
10
+ this.fb = fb;
11
+ this.itemIdField = 'id';
20
12
  this.breakpoint = "1400px"; // Define a largura da tela na qual o componente deve alterar seu comportamento responsivo.
21
13
  this.dragdrop = true; // Ativa/Desativa o arrasta e solta
22
14
  this.responsive = true; // Ativa/Desativa a responsividade automática
@@ -25,20 +17,63 @@ export class KvPickListComponent {
25
17
  this.targetHeader = 'Título de lista de destino';
26
18
  this.showSourceControls = true; // Exibir controls da lista de origem
27
19
  this.showTargetControls = true; // Exibir controls da lista de destino
20
+ this.showCheckBox = false; // Exibir check na lista de origem
28
21
  this.onMoveToSource = new EventEmitter();
29
22
  this.onMoveToTarget = new EventEmitter();
30
23
  this.onMoveAllToSource = new EventEmitter();
31
24
  this.onMoveAllToTarget = new EventEmitter();
25
+ this.ngModel = false;
26
+ this.selectedItems = {};
27
+ this.form = this.fb.group({});
28
+ }
29
+ OnMoveToSource(event) {
30
+ this.onMoveToSource.emit(event);
31
+ this.selectedItems = {};
32
+ }
33
+ OnMoveToTarget(event) {
34
+ this.onMoveToTarget.emit(event);
35
+ this.selectedItems = {};
36
+ }
37
+ OnMoveAllToSource(event) {
38
+ this.onMoveToSource.emit(event);
39
+ this.selectedItems = {};
40
+ }
41
+ OnMoveAllToTarget(event) {
42
+ this.onMoveToTarget.emit(event);
43
+ this.selectedItems = {};
44
+ }
45
+ onCheckboxChange(item, isSelected) {
46
+ console.log(item, isSelected);
47
+ }
48
+ selectCheckBox(item) {
49
+ const itemId = item[this.itemIdField]; // Usa o campo configurável como identificador
50
+ this.selectedPreview = itemId;
51
+ if (this.selectedItems[itemId] !== undefined) {
52
+ this.selectedItems[itemId] = !this.selectedItems[itemId];
53
+ }
54
+ else {
55
+ this.selectedItems[itemId] = true;
56
+ }
57
+ this.ngModel = this.selectedItems[itemId];
58
+ }
59
+ oi() {
60
+ console.log('oi');
61
+ }
62
+ isItemSelected(item) {
63
+ console.log(this.selectedPreview === item);
64
+ return this.selectedPreview === item;
32
65
  }
33
66
  ngOnInit() {
34
67
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvPickListComponent, selector: "kv-picklist", inputs: { breakpoint: "breakpoint", dragdrop: "dragdrop", filterBy: "filterBy", itemTemplate: "itemTemplate", responsive: "responsive", source: "source", sourceHeader: "sourceHeader", sourceStyle: "sourceStyle", stripedRows: "stripedRows", target: "target", targetHeader: "targetHeader", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls" }, outputs: { onMoveToSource: "onMoveToSource", onMoveToTarget: "onMoveToTarget", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget" }, ngImport: i0, template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\"\r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveToTarget($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </ng-template>\r\n</p-pickList>\r\n", styles: [":host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.PickList, selector: "p-pickList", inputs: ["source", "target", "sourceHeader", "tabindex", "rightButtonAriaLabel", "leftButtonAriaLabel", "allRightButtonAriaLabel", "allLeftButtonAriaLabel", "upButtonAriaLabel", "downButtonAriaLabel", "topButtonAriaLabel", "bottomButtonAriaLabel", "targetHeader", "responsive", "filterBy", "filterLocale", "trackBy", "sourceTrackBy", "targetTrackBy", "showSourceFilter", "showTargetFilter", "metaKeySelection", "dragdrop", "style", "styleClass", "sourceStyle", "targetStyle", "showSourceControls", "showTargetControls", "sourceFilterPlaceholder", "targetFilterPlaceholder", "disabled", "ariaSourceFilterLabel", "ariaTargetFilterLabel", "filterMatchMode", "stripedRows", "keepSelection", "breakpoint"], outputs: ["onMoveToSource", "onMoveAllToSource", "onMoveAllToTarget", "onMoveToTarget", "onSourceReorder", "onTargetReorder", "onSourceSelect", "onTargetSelect", "onSourceFilter", "onTargetFilter", "onFocus", "onBlur"] }] }); }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPickListComponent, selector: "kv-picklist", inputs: { itemIdField: "itemIdField", breakpoint: "breakpoint", dragdrop: "dragdrop", filterBy: "filterBy", itemTemplate: "itemTemplate", responsive: "responsive", source: "source", sourceHeader: "sourceHeader", sourceStyle: "sourceStyle", stripedRows: "stripedRows", target: "target", targetHeader: "targetHeader", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls", showCheckBox: "showCheckBox" }, outputs: { onMoveToSource: "onMoveToSource", onMoveToTarget: "onMoveToTarget", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget" }, ngImport: i0, template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\"\r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\">\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox){\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.PickList, selector: "p-pickList", inputs: ["source", "target", "sourceHeader", "tabindex", "rightButtonAriaLabel", "leftButtonAriaLabel", "allRightButtonAriaLabel", "allLeftButtonAriaLabel", "upButtonAriaLabel", "downButtonAriaLabel", "topButtonAriaLabel", "bottomButtonAriaLabel", "targetHeader", "responsive", "filterBy", "filterLocale", "trackBy", "sourceTrackBy", "targetTrackBy", "showSourceFilter", "showTargetFilter", "metaKeySelection", "dragdrop", "style", "styleClass", "sourceStyle", "targetStyle", "showSourceControls", "showTargetControls", "sourceFilterPlaceholder", "targetFilterPlaceholder", "disabled", "ariaSourceFilterLabel", "ariaTargetFilterLabel", "filterMatchMode", "stripedRows", "keepSelection", "breakpoint"], outputs: ["onMoveToSource", "onMoveAllToSource", "onMoveAllToTarget", "onMoveToTarget", "onSourceReorder", "onTargetReorder", "onSourceSelect", "onTargetSelect", "onSourceFilter", "onTargetFilter", "onFocus", "onBlur"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.KvCheckComponent, selector: "kv-check", outputs: ["onCheckChange"] }] }); }
37
70
  }
38
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListComponent, decorators: [{
39
72
  type: Component,
40
- args: [{ selector: 'kv-picklist', template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\"\r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveToTarget($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </ng-template>\r\n</p-pickList>\r\n", styles: [":host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}\n"] }]
41
- }], ctorParameters: () => [], propDecorators: { breakpoint: [{
73
+ args: [{ selector: 'kv-picklist', template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\"\r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\">\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox){\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}\n"] }]
74
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { itemIdField: [{
75
+ type: Input
76
+ }], breakpoint: [{
42
77
  type: Input
43
78
  }], dragdrop: [{
44
79
  type: Input
@@ -66,6 +101,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
66
101
  type: Input
67
102
  }], showTargetControls: [{
68
103
  type: Input
104
+ }], showCheckBox: [{
105
+ type: Input
69
106
  }], onMoveToSource: [{
70
107
  type: Output
71
108
  }], onMoveToTarget: [{
@@ -75,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
75
112
  }], onMoveAllToTarget: [{
76
113
  type: Output
77
114
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGljay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGljay1saXN0L2t2LXBpY2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDOzs7OztBQVV2QixNQUFNLE9BQU8sbUJBQW1CO0lBcUI5QixjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUdEO1FBckNTLGVBQVUsR0FBVyxRQUFRLENBQUMsQ0FBQywyRkFBMkY7UUFDMUgsYUFBUSxHQUFZLElBQUksQ0FBQyxDQUFDLG1DQUFtQztRQUc3RCxlQUFVLEdBQVksSUFBSSxDQUFDLENBQUMsNkNBQTZDO1FBRXpFLGlCQUFZLEdBQVcsMkJBQTJCLENBQUM7UUFFbkQsZ0JBQVcsR0FBWSxLQUFLLENBQUMsQ0FBQywwREFBMEQ7UUFFeEYsaUJBQVksR0FBVyw0QkFBNEIsQ0FBQztRQUVwRCx1QkFBa0IsR0FBWSxJQUFJLENBQUMsQ0FBQyxxQ0FBcUM7UUFDekUsdUJBQWtCLEdBQVksSUFBSSxDQUFDLENBQUMsc0NBQXNDO1FBQ3pFLG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2RCxzQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxRCxzQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQW9CcEQsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs4R0F6Q1UsbUJBQW1CO2tHQUFuQixtQkFBbUIsc21CQ2pCaEMsczdCQXVCQTs7MkZETmEsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLGFBQWE7d0RBUWQsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1waWNrbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LXBpY2stbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbXHJcbiAgICAnLi9rdi1waWNrLWxpc3QuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgJy4uL2tlZXZvLWNvbXBvbmVudHMtc3R5bGVzLnNjc3MnXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZQaWNrTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgYnJlYWtwb2ludDogc3RyaW5nID0gXCIxNDAwcHhcIjsgLy8gRGVmaW5lIGEgbGFyZ3VyYSBkYSB0ZWxhIG5hIHF1YWwgbyBjb21wb25lbnRlIGRldmUgYWx0ZXJhciBzZXUgY29tcG9ydGFtZW50byByZXNwb25zaXZvLlxyXG4gIEBJbnB1dCgpIGRyYWdkcm9wOiBib29sZWFuID0gdHJ1ZTsgLy8gQXRpdmEvRGVzYXRpdmEgbyBhcnJhc3RhIGUgc29sdGFcclxuICBASW5wdXQoKSBmaWx0ZXJCeSE6IHN0cmluZzsgLy8gQ2FtcG8gZGUgZmlsdHJvIG5hcyBsaXN0YXMuXHJcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjsgLy8gQ29tbyBhcyBsaXN0YXMgc8OjbyBkaW7Dom1pY2FzLCBvYnJpZ2F0b3JpYW1lbnRlIHVtIHRlbXBsYXRlIGRldmUgc2VyIGluZm9ybWFkbyBwYXJhIGV4aWJpciBvcyBpdGVucyBkYXMgbGlzdGFzXHJcbiAgQElucHV0KCkgcmVzcG9uc2l2ZTogYm9vbGVhbiA9IHRydWU7IC8vIEF0aXZhL0Rlc2F0aXZhIGEgcmVzcG9uc2l2aWRhZGUgYXV0b23DoXRpY2FcclxuICBASW5wdXQoKSBzb3VyY2UhOiBhbnlbXTsgLy8gTGlzdGEgZGUgb3JpZ2VtXHJcbiAgQElucHV0KCkgc291cmNlSGVhZGVyOiBzdHJpbmcgPSAnVMOtdHVsbyBkYSBsaXN0YSBkZSBvcmlnZW0nO1xyXG4gIEBJbnB1dCgpIHNvdXJjZVN0eWxlITogYW55OyAvLyBFc3RpbGl6YcOnw6NvIGRhIGxpc3RhIGRlIG9yaWdlbVxyXG4gIEBJbnB1dCgpIHN0cmlwZWRSb3dzOiBib29sZWFuID0gZmFsc2U7IC8vIEF0aXZhL0Rlc2F0aXZhIGxpbmhhcyBjb20gY29yZXMgYWx0ZXJuYWRhcyAoXCJ6ZWJyYWRhc1wiKVxyXG4gIEBJbnB1dCgpIHRhcmdldCE6IGFueVtdOyAvLyBMaXN0YSBkZSBkZXN0aW5vIChJdGVucyBzZWxlY2lvbmFkb3MpXHJcbiAgQElucHV0KCkgdGFyZ2V0SGVhZGVyOiBzdHJpbmcgPSAnVMOtdHVsbyBkZSBsaXN0YSBkZSBkZXN0aW5vJztcclxuICBASW5wdXQoKSB0YXJnZXRTdHlsZSE6IGFueTsgLy8gRXN0aWxpemHDp8OjbyBkYSBsaXN0YSBkZSBkZXN0aW5vXHJcbiAgQElucHV0KCkgc2hvd1NvdXJjZUNvbnRyb2xzOiBib29sZWFuID0gdHJ1ZTsgLy8gRXhpYmlyIGNvbnRyb2xzIGRhIGxpc3RhIGRlIG9yaWdlbVxyXG4gIEBJbnB1dCgpIHNob3dUYXJnZXRDb250cm9sczogYm9vbGVhbiA9IHRydWU7IC8vIEV4aWJpciBjb250cm9scyBkYSBsaXN0YSBkZSBkZXN0aW5vXHJcbiAgQE91dHB1dCgpIG9uTW92ZVRvU291cmNlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Nb3ZlVG9UYXJnZXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk1vdmVBbGxUb1NvdXJjZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTW92ZUFsbFRvVGFyZ2V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblxyXG4gIE9uTW92ZVRvU291cmNlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25Nb3ZlVG9Tb3VyY2UuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBPbk1vdmVUb1RhcmdldChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uTW92ZVRvVGFyZ2V0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgT25Nb3ZlQWxsVG9Tb3VyY2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbk1vdmVUb1NvdXJjZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIE9uTW92ZUFsbFRvVGFyZ2V0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25Nb3ZlVG9UYXJnZXQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG59XHJcbiIsIjxwLXBpY2tMaXN0XHJcbiAgICBbc291cmNlXT1cInNvdXJjZVwiXHJcbiAgICBbc291cmNlSGVhZGVyXT1cInNvdXJjZUhlYWRlclwiXHJcbiAgICBbc291cmNlU3R5bGVdPVwic291cmNlU3R5bGVcIlxyXG4gICAgW3RhcmdldF09XCJ0YXJnZXRcIlxyXG4gICAgW3RhcmdldEhlYWRlcl09XCJ0YXJnZXRIZWFkZXJcIlxyXG4gICAgW3RhcmdldFN0eWxlXT1cInRhcmdldFN0eWxlXCJcclxuICAgIFtkcmFnZHJvcF09XCJkcmFnZHJvcFwiXHJcbiAgICBbcmVzcG9uc2l2ZV09XCJyZXNwb25zaXZlXCJcclxuICAgIFtmaWx0ZXJCeV09XCJmaWx0ZXJCeVwiXHJcbiAgICBbYnJlYWtwb2ludF09XCJicmVha3BvaW50XCJcclxuICAgIFtzdHJpcGVkUm93c109XCJzdHJpcGVkUm93c1wiXHJcbiAgICBbc2hvd1NvdXJjZUNvbnRyb2xzXT1cInNob3dTb3VyY2VDb250cm9sc1wiXHJcbiAgICBbc2hvd1RhcmdldENvbnRyb2xzXT1cInNob3dUYXJnZXRDb250cm9sc1wiXHJcbiAgICAob25Nb3ZlVG9Tb3VyY2UpPVwiT25Nb3ZlVG9Tb3VyY2UoJGV2ZW50KVwiXHJcbiAgICAob25Nb3ZlVG9UYXJnZXQpPVwiT25Nb3ZlVG9UYXJnZXQoJGV2ZW50KVwiXHJcbiAgICAob25Nb3ZlQWxsVG9Tb3VyY2UpPVwiT25Nb3ZlQWxsVG9Tb3VyY2UoJGV2ZW50KVwiXHJcbiAgICAob25Nb3ZlQWxsVG9UYXJnZXQpPVwiT25Nb3ZlVG9UYXJnZXQoJGV2ZW50KVwiXHJcbj5cclxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCIgKm5nSWY9XCJpdGVtVGVtcGxhdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1UZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L3AtcGlja0xpc3Q+XHJcbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGljay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGljay1saXN0L2t2LXBpY2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBV3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFLMUIsZ0JBQVcsR0FBVyxJQUFJLENBQUM7UUFDM0IsZUFBVSxHQUFXLFFBQVEsQ0FBQyxDQUFDLDJGQUEyRjtRQUMxSCxhQUFRLEdBQVksSUFBSSxDQUFDLENBQUMsbUNBQW1DO1FBRzdELGVBQVUsR0FBWSxJQUFJLENBQUMsQ0FBQyw2Q0FBNkM7UUFFekUsaUJBQVksR0FBVywyQkFBMkIsQ0FBQztRQUVuRCxnQkFBVyxHQUFZLEtBQUssQ0FBQyxDQUFDLDBEQUEwRDtRQUV4RixpQkFBWSxHQUFXLDRCQUE0QixDQUFDO1FBRXBELHVCQUFrQixHQUFZLElBQUksQ0FBQyxDQUFDLHFDQUFxQztRQUN6RSx1QkFBa0IsR0FBWSxJQUFJLENBQUMsQ0FBQyxzQ0FBc0M7UUFDMUUsaUJBQVksR0FBWSxLQUFLLENBQUMsQ0FBQyxrQ0FBa0M7UUFDaEUsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2RCxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZELHNCQUFpQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFELHNCQUFpQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBFLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsa0JBQWEsR0FBK0IsRUFBRSxDQUFDO1FBMUI3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBRXpCLENBQUMsQ0FBQztJQUNMLENBQUM7SUF5QkQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFTLEVBQUUsVUFBbUI7UUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyw4Q0FBOEM7UUFDckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7UUFFOUIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsRUFBRTtRQUNBLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkIsQ0FBQztJQUdELGNBQWMsQ0FBQyxJQUFTO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUMxQyxPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs4R0FqRlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsZ3FCQ2xCaEMsMHFDQTZCQTs7MkZEWGEsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLGFBQWE7Z0ZBZ0JkLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXBpY2tsaXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtcGljay1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL2t2LXBpY2stbGlzdC5jb21wb25lbnQuc2NzcycsXHJcbiAgICAnLi4va2Vldm8tY29tcG9uZW50cy1zdHlsZXMuc2NzcydcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlBpY2tMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKSBpdGVtSWRGaWVsZDogc3RyaW5nID0gJ2lkJztcclxuICBASW5wdXQoKSBicmVha3BvaW50OiBzdHJpbmcgPSBcIjE0MDBweFwiOyAvLyBEZWZpbmUgYSBsYXJndXJhIGRhIHRlbGEgbmEgcXVhbCBvIGNvbXBvbmVudGUgZGV2ZSBhbHRlcmFyIHNldSBjb21wb3J0YW1lbnRvIHJlc3BvbnNpdm8uXHJcbiAgQElucHV0KCkgZHJhZ2Ryb3A6IGJvb2xlYW4gPSB0cnVlOyAvLyBBdGl2YS9EZXNhdGl2YSBvIGFycmFzdGEgZSBzb2x0YVxyXG4gIEBJbnB1dCgpIGZpbHRlckJ5ITogc3RyaW5nOyAvLyBDYW1wbyBkZSBmaWx0cm8gbmFzIGxpc3Rhcy5cclxuICBASW5wdXQoKSBpdGVtVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyBDb21vIGFzIGxpc3RhcyBzw6NvIGRpbsOibWljYXMsIG9icmlnYXRvcmlhbWVudGUgdW0gdGVtcGxhdGUgZGV2ZSBzZXIgaW5mb3JtYWRvIHBhcmEgZXhpYmlyIG9zIGl0ZW5zIGRhcyBsaXN0YXNcclxuICBASW5wdXQoKSByZXNwb25zaXZlOiBib29sZWFuID0gdHJ1ZTsgLy8gQXRpdmEvRGVzYXRpdmEgYSByZXNwb25zaXZpZGFkZSBhdXRvbcOhdGljYVxyXG4gIEBJbnB1dCgpIHNvdXJjZSE6IGFueVtdOyAvLyBMaXN0YSBkZSBvcmlnZW1cclxuICBASW5wdXQoKSBzb3VyY2VIZWFkZXI6IHN0cmluZyA9ICdUw610dWxvIGRhIGxpc3RhIGRlIG9yaWdlbSc7XHJcbiAgQElucHV0KCkgc291cmNlU3R5bGUhOiBhbnk7IC8vIEVzdGlsaXphw6fDo28gZGEgbGlzdGEgZGUgb3JpZ2VtXHJcbiAgQElucHV0KCkgc3RyaXBlZFJvd3M6IGJvb2xlYW4gPSBmYWxzZTsgLy8gQXRpdmEvRGVzYXRpdmEgbGluaGFzIGNvbSBjb3JlcyBhbHRlcm5hZGFzIChcInplYnJhZGFzXCIpXHJcbiAgQElucHV0KCkgdGFyZ2V0ITogYW55W107IC8vIExpc3RhIGRlIGRlc3Rpbm8gKEl0ZW5zIHNlbGVjaW9uYWRvcylcclxuICBASW5wdXQoKSB0YXJnZXRIZWFkZXI6IHN0cmluZyA9ICdUw610dWxvIGRlIGxpc3RhIGRlIGRlc3Rpbm8nO1xyXG4gIEBJbnB1dCgpIHRhcmdldFN0eWxlITogYW55OyAvLyBFc3RpbGl6YcOnw6NvIGRhIGxpc3RhIGRlIGRlc3Rpbm9cclxuICBASW5wdXQoKSBzaG93U291cmNlQ29udHJvbHM6IGJvb2xlYW4gPSB0cnVlOyAvLyBFeGliaXIgY29udHJvbHMgZGEgbGlzdGEgZGUgb3JpZ2VtXHJcbiAgQElucHV0KCkgc2hvd1RhcmdldENvbnRyb2xzOiBib29sZWFuID0gdHJ1ZTsgLy8gRXhpYmlyIGNvbnRyb2xzIGRhIGxpc3RhIGRlIGRlc3Rpbm9cclxuICBASW5wdXQoKSBzaG93Q2hlY2tCb3g6IGJvb2xlYW4gPSBmYWxzZTsgLy8gRXhpYmlyIGNoZWNrIG5hIGxpc3RhIGRlIG9yaWdlbVxyXG4gIEBPdXRwdXQoKSBvbk1vdmVUb1NvdXJjZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTW92ZVRvVGFyZ2V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Nb3ZlQWxsVG9Tb3VyY2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk1vdmVBbGxUb1RhcmdldDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgc2VsZWN0ZWRQcmV2aWV3ITogYW55O1xyXG4gIG5nTW9kZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZEl0ZW1zOiB7IFtrZXk6IG51bWJlcl06IGJvb2xlYW4gfSA9IHt9O1xyXG5cclxuICBPbk1vdmVUb1NvdXJjZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uTW92ZVRvU291cmNlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0ge307XHJcbiAgfVxyXG5cclxuICBPbk1vdmVUb1RhcmdldChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uTW92ZVRvVGFyZ2V0LmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0ge307XHJcbiAgfVxyXG5cclxuICBPbk1vdmVBbGxUb1NvdXJjZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uTW92ZVRvU291cmNlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0ge307XHJcbiAgfVxyXG5cclxuICBPbk1vdmVBbGxUb1RhcmdldChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uTW92ZVRvVGFyZ2V0LmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0ge307XHJcbiAgfVxyXG5cclxuICBvbkNoZWNrYm94Q2hhbmdlKGl0ZW06IGFueSwgaXNTZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgY29uc29sZS5sb2coaXRlbSwgaXNTZWxlY3RlZCk7XHJcbiAgfVxyXG4gXHJcbiAgc2VsZWN0Q2hlY2tCb3goaXRlbTogYW55KSB7XHJcbiAgICBjb25zdCBpdGVtSWQgPSBpdGVtW3RoaXMuaXRlbUlkRmllbGRdOyAvLyBVc2EgbyBjYW1wbyBjb25maWd1csOhdmVsIGNvbW8gaWRlbnRpZmljYWRvclxyXG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcgPSBpdGVtSWQ7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtSWRdICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF0gPSAhdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMubmdNb2RlbCA9IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtSWRdO1xyXG4gIH1cclxuXHJcbiAgb2koKSB7XHJcbiAgICBjb25zb2xlLmxvZygnb2knKVxyXG4gIH1cclxuICBcclxuXHJcbiAgaXNJdGVtU2VsZWN0ZWQoaXRlbTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkUHJldmlldyA9PT0gaXRlbSlcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUHJldmlldyA9PT0gaXRlbTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxufVxyXG4iLCI8cC1waWNrTGlzdFxyXG4gIFtzb3VyY2VdPVwic291cmNlXCJcclxuICBbc291cmNlSGVhZGVyXT1cInNvdXJjZUhlYWRlclwiXHJcbiAgW3NvdXJjZVN0eWxlXT1cInNvdXJjZVN0eWxlXCJcclxuICBbdGFyZ2V0XT1cInRhcmdldFwiXHJcbiAgW3RhcmdldEhlYWRlcl09XCJ0YXJnZXRIZWFkZXJcIlxyXG4gIFt0YXJnZXRTdHlsZV09XCJ0YXJnZXRTdHlsZVwiXHJcbiAgW2RyYWdkcm9wXT1cImRyYWdkcm9wXCJcclxuICBbcmVzcG9uc2l2ZV09XCJyZXNwb25zaXZlXCJcclxuICBbZmlsdGVyQnldPVwiZmlsdGVyQnlcIlxyXG4gIFticmVha3BvaW50XT1cImJyZWFrcG9pbnRcIlxyXG4gIFtzdHJpcGVkUm93c109XCJzdHJpcGVkUm93c1wiXHJcbiAgW3Nob3dTb3VyY2VDb250cm9sc109XCJzaG93U291cmNlQ29udHJvbHNcIlxyXG4gIFtzaG93VGFyZ2V0Q29udHJvbHNdPVwic2hvd1RhcmdldENvbnRyb2xzXCJcclxuICAob25Nb3ZlVG9Tb3VyY2UpPVwiT25Nb3ZlVG9Tb3VyY2UoJGV2ZW50KVwiXHJcbiAgKG9uTW92ZVRvVGFyZ2V0KT1cIk9uTW92ZVRvVGFyZ2V0KCRldmVudClcIlxyXG4gIChvbk1vdmVBbGxUb1NvdXJjZSk9XCJPbk1vdmVBbGxUb1NvdXJjZSgkZXZlbnQpXCJcclxuICAob25Nb3ZlQWxsVG9UYXJnZXQpPVwiT25Nb3ZlQWxsVG9UYXJnZXQoJGV2ZW50KVwiXHJcbj5cclxuICA8bmctdGVtcGxhdGUgIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIiAqbmdJZj1cIml0ZW1UZW1wbGF0ZVwiPlxyXG4gICAgICA8ZGl2IChjbGljayk9XCJzZWxlY3RDaGVja0JveChpdGVtKVwiIGNsYXNzPVwiZmxleCBtci01XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj5cclxuICAgICAgICBAaWYoc2hvd0NoZWNrQm94KXtcclxuICAgICAgICAgICAgPGt2LWNoZWNrIChvbkNoZWNrQ2hhbmdlKT1cInNlbGVjdENoZWNrQm94KGl0ZW0pXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEl0ZW1zW2l0ZW1baXRlbUlkRmllbGRdXVwiIGNsYXNzPVwibXItMVwiPjwva3YtY2hlY2s+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+IFxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1waWNrTGlzdD5cclxuIl19
@@ -1,17 +1,22 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { FormsModule } from '@angular/forms';
2
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
3
  import { NgModule } from "@angular/core";
4
4
  import { KvPickListComponent } from './kv-pick-list.component';
5
5
  import { PrimeNgModule } from '../../api/modules/primeng.module';
6
+ import { KvInputsModule } from "../kv-inputs/kv-inputs.module";
6
7
  import * as i0 from "@angular/core";
7
8
  export class KvPickListModule {
8
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
10
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvPickListModule, declarations: [KvPickListComponent], imports: [CommonModule,
10
11
  PrimeNgModule,
11
- FormsModule], exports: [KvPickListComponent] }); }
12
+ FormsModule,
13
+ KvInputsModule,
14
+ ReactiveFormsModule], exports: [KvPickListComponent] }); }
12
15
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListModule, imports: [CommonModule,
13
16
  PrimeNgModule,
14
- FormsModule] }); }
17
+ FormsModule,
18
+ KvInputsModule,
19
+ ReactiveFormsModule] }); }
15
20
  }
16
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListModule, decorators: [{
17
22
  type: NgModule,
@@ -23,10 +28,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
23
28
  CommonModule,
24
29
  PrimeNgModule,
25
30
  FormsModule,
31
+ KvInputsModule,
32
+ ReactiveFormsModule
26
33
  ],
27
34
  exports: [
28
35
  KvPickListComponent
29
36
  ]
30
37
  }]
31
38
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGljay1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBZWpFLE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQVh6QixtQkFBbUIsYUFHbkIsWUFBWTtZQUNaLGFBQWE7WUFDYixXQUFXLGFBR1gsbUJBQW1COytHQUdWLGdCQUFnQixZQVJ6QixZQUFZO1lBQ1osYUFBYTtZQUNiLFdBQVc7OzJGQU1GLGdCQUFnQjtrQkFiNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFdBQVc7cUJBQ1o7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgS3ZQaWNrTGlzdENvbXBvbmVudCB9IGZyb20gJy4va3YtcGljay1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByaW1lTmdNb2R1bGUgfSBmcm9tICcuLi8uLi9hcGkvbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgS3ZQaWNrTGlzdENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUHJpbWVOZ01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgS3ZQaWNrTGlzdENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEt2UGlja0xpc3RNb2R1bGUgeyB9XHJcbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGljay1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWlCL0QsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBYnpCLG1CQUFtQixhQUduQixZQUFZO1lBQ1osYUFBYTtZQUNiLFdBQVc7WUFDWCxjQUFjO1lBQ2QsbUJBQW1CLGFBR25CLG1CQUFtQjsrR0FHVixnQkFBZ0IsWUFWekIsWUFBWTtZQUNaLGFBQWE7WUFDYixXQUFXO1lBQ1gsY0FBYztZQUNkLG1CQUFtQjs7MkZBTVYsZ0JBQWdCO2tCQWY1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLG1CQUFtQjtxQkFDdEI7b0JBQ0MsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgS3ZQaWNrTGlzdENvbXBvbmVudCB9IGZyb20gJy4va3YtcGljay1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByaW1lTmdNb2R1bGUgfSBmcm9tICcuLi8uLi9hcGkvbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IEt2SW5wdXRzTW9kdWxlIH0gZnJvbSBcIi4uL2t2LWlucHV0cy9rdi1pbnB1dHMubW9kdWxlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgS3ZQaWNrTGlzdENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUHJpbWVOZ01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgS3ZJbnB1dHNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbl0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgS3ZQaWNrTGlzdENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEt2UGlja0xpc3RNb2R1bGUgeyB9XHJcbiJdfQ==