keevo-components 1.8.358 → 1.8.360
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/api/components/table/table.config.mjs +1 -1
- package/esm2022/lib/api/components/table/tabledit.config.mjs +1 -1
- package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +1 -1
- package/esm2022/lib/api/services/image.cutter.service.mjs +2 -2
- package/esm2022/lib/api/services/notification.service.mjs +3 -3
- package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +2 -2
- package/esm2022/lib/components/kv-button/kv-button.component.mjs +19 -28
- package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +2 -2
- package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +6 -3
- package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +2 -2
- package/esm2022/lib/components/kv-error/kv-error.component.mjs +2 -2
- package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +3 -3
- package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +1 -1
- package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +2 -2
- package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +2 -2
- package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +2 -2
- package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +2 -2
- package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +2 -2
- package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +2 -2
- package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +2 -2
- package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +2 -2
- package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +3 -3
- package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +3 -3
- package/esm2022/lib/components/kv-label/kv-label.component.mjs +2 -2
- package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +3 -3
- package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +2 -2
- package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +3 -3
- package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +1 -1
- package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +2 -2
- package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +2 -2
- package/esm2022/lib/components/kv-table/kv-table.component.mjs +32 -30
- package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +2 -2
- package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +9 -9
- package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +1 -1
- package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +1 -1
- package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +1 -1
- package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +1 -1
- package/fesm2022/keevo-components.mjs +115 -118
- package/fesm2022/keevo-components.mjs.map +1 -1
- package/lib/api/base-components/base-component-dropdown.d.ts +1 -1
- package/lib/components/kv-button/kv-button.component.d.ts +10 -10
- package/lib/components/kv-carousel/kv-carousel.component.d.ts +2 -1
- package/lib/components/kv-table/kv-table.component.d.ts +15 -20
- package/lib/components/kv-table-expandable/kv-table-expandable.component.d.ts +1 -1
- package/package.json +2 -2
- package/esm2022/lib/api/types/severity.mjs +0 -2
- package/lib/api/types/severity.d.ts +0 -2
|
@@ -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]=\"{
|
|
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"] }] }); }
|
|
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]=\"{
|
|
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"] }]
|
|
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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QUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDckIsQ0FBQzs4R0FwUFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsaWpDQVlLLGdCQUFnQixxSUM3Q3JELDYwSEFtSEE7OzJGRGxGYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTtnSkFjZCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ3VCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUUzQixnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTVDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQXNOYyxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBtb2RlbCxcclxuICBPdXRwdXQsXHJcbiAgc2lnbmFsLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgdmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT3JnQ2hhcnQgfSBmcm9tICdkMy1vcmctY2hhcnQnO1xyXG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XHJcblxyXG5pbXBvcnQgT3JnQ2hhcnRDb25maWcgZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvY2hhcnQvb3JjaGFydC5jb25maWcnO1xyXG5pbXBvcnQgT3JnQ2hhcnROb2RlIGZyb20gJy4uLy4uL2FwaS9jb21wb25lbnRzL2NoYXJ0L29yY2hhcnRub2RlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgT3JnQ2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL29yZ2NoYXJ0LnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRHJvcGRvd24sIERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1vcmdjaGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LW9yZ2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi1vcmdjaGFydC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZPcmdjaGFydENvbXBvbmVudCB7XHJcblxyXG5cclxuICBjaGFydCE6IGFueTtcclxuXHJcbiAgZGF0YVNvdXJjZSA9IG1vZGVsPE9yZ0NoYXJ0Tm9kZVtdIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIGZpbHRyb3NPcHQgPSBzaWduYWw8T3JnQ2hhcnROb2RlW10+KFtdKTtcclxuICBzZWxlY3RlZE9wdCA9IG51bGxcclxuXHJcbiAgQElucHV0KCkgY29uZmlnITogT3JnQ2hhcnRDb25maWc7XHJcbiAgQFZpZXdDaGlsZCgnY2hhcnRDb250YWluZXInKSBjaGFydENvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnbm9kZVRlbXBsYXRlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcbiAgdmlld0NvbnRhaW5lclJlZiE6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQElucHV0KCkgbm9kZVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQElucHV0KCkgZmlsdGVySXRlbVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBmaWx0ZXJTZWxlY3RlZEl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cclxuXHJcbiAgLy8jcmVnaW9uIEVtaXNzb3JlcyBkZSBldmVudG9cclxuXHJcbiAgQE91dHB1dCgpIG9uTm9kZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbiAgY29tcGFjdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgbW9zdHJhTWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgc2VydmljZTogT3JnQ2hhcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICAvLyNyZWdpb24gSW5pY2lhciBPcmdDaGFydCBlIEF0dWFsaXphw6fDo28gZGUgZGFkb3NcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pY2lhckhhbmRsZXJzRGVFdmVudG9zKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hhcnQpIHtcclxuICAgICAgdGhpcy5jaGFydCA9IG5ldyBPcmdDaGFydCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbmljaWFyQ2hhcnQoKTtcclxuICB9XHJcblxyXG4gIGluaWNpYXJDaGFydCgpIHtcclxuICAgIGlmICghdGhpcy5kYXRhU291cmNlKCkgfHwgIXRoaXMuY2hhcnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNoYXJ0Q29udGFpbmVyID0gdGhpcy5jaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5jaGFydFxyXG4gICAgICAuY3JlYXRlWm9vbSgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGQzLnpvb20oKS5maWx0ZXIoKGUpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZS5zcmNFbGVtZW50O1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduby16b29tJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jb250YWluZXIoY2hhcnRDb250YWluZXIpXHJcbiAgICAgIC5kYXRhKHRoaXMuZGF0YVNvdXJjZSgpKVxyXG4gICAgICAubm9kZVdpZHRoKCgpID0+IHRoaXMuY29uZmlnLmNhcmRXaWRodClcclxuICAgICAgLm5vZGVIZWlnaHQoKGQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBkLmRhdGEuZXhwYW5kZWQgJiYgdGhpcy5jb25maWcuY2FyZEV4cGFuZGVkSGVpZ2h0XHJcbiAgICAgICAgICA/IHRoaXMuY29uZmlnLmNhcmRFeHBhbmRlZEhlaWdodFxyXG4gICAgICAgICAgOiB0aGlzLmNvbmZpZy5jYXJkSGVpZ2h0O1xyXG4gICAgICB9KVxyXG4gICAgICAuY29tcGFjdChmYWxzZSlcclxuICAgICAgLmJ1dHRvbkNvbnRlbnQoKHsgbm9kZSwgc3RhdGUgfTogeyBub2RlOiBhbnk7IHN0YXRlOiBhbnkgfSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBzdHlsZT1cImNvbG9yOiNGRkZGRkY7IGJvcmRlci1yYWRpdXM6MTAwJTtmb250LXNpemU6NXB4O21hcmdpbjphdXRvIGF1dG87YmFja2dyb3VuZC1jb2xvcjojNjQ3NDhCO1wiPlxyXG4gICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAke1xyXG4gICAgICAgICAgICBub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICAgID8gYDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPlxyXG4gICAgICAgICAgICAgIGtleWJvYXJkX2Fycm93X3VwXHJcbiAgICAgICAgICAgICAgPC9pPmBcclxuICAgICAgICAgICAgICA6IGA8aSBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5cclxuICAgICAgICAgICAgICBrZXlib2FyZF9hcnJvd19kb3duXHJcbiAgICAgICAgICAgIDwvaT5gXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PmA7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5saW5rVXBkYXRlKChub2RlOiBhbnksIGluZGV4OiBhbnksIG5vZGVzOiBhbnkpID0+IHtcclxuICAgICAgICBkMy5zZWxlY3Qobm9kZXNbaW5kZXhdKVxyXG4gICAgICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIHRoaXMuY29uZmlnLmNvbmVjdGlvbldpZHRoIHx8ICcycHgnKVxyXG4gICAgICAgICAgLnN0eWxlKCdzdHJva2UnLCB0aGlzLmNvbmZpZy5jb25uZWN0aW9uQ29sb3IgfHwgJyNkNmQ2ZDYnKTtcclxuICAgICAgfSlcclxuICAgICAgLm5vZGVDb250ZW50KChkOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBub2RlOiBPcmdDaGFydE5vZGUgPSB7XHJcbiAgICAgICAgICBkYXRhOiBkLmRhdGEuZGF0YSxcclxuICAgICAgICAgIGNoaWxkcmVuOiBkLmNoaWxkcmVuLFxyXG4gICAgICAgICAgaWQ6IGQuZGF0YS5pZCxcclxuICAgICAgICAgIHBhcmVudElkOiBkLmRhdGEucGFyZW50SWQsXHJcbiAgICAgICAgICBleHBhbmRlZDogZC5kYXRhLmV4cGFuZGVkLFxyXG4gICAgICAgICAgb3JnQ29uZmlnOiBkLm9yZ0NvbmZpZyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHggPSB0aGlzLnJlbmRlck5vZGVUZW1wbGF0ZShub2RlKTtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfSlcclxuICAgICAgLm5vZGVVcGRhdGUoZnVuY3Rpb24gKHRoaXM6IGFueSwgZDogYW55KSB7XHJcbiAgICAgICAgZC5kYXRhLm9yZ0NvbmZpZy5jbGlja3MuZm9yRWFjaCgoY2xpY2s6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZDMuc2VsZWN0KHRoaXMpXHJcbiAgICAgICAgICAgIC5zZWxlY3QoY2xpY2spXHJcbiAgICAgICAgICAgIC5vbignY2xpY2snLCAoZSwgZCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhZG9zOiBhbnkgPSBkO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5vZGU6IE9yZ0NoYXJ0Tm9kZSA9IHtcclxuICAgICAgICAgICAgICAgIGRhdGE6IGRhZG9zLmRhdGEuZGF0YSxcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBkYWRvcy5jaGlsZHJlbixcclxuICAgICAgICAgICAgICAgIGlkOiBkYWRvcy5kYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IGRhZG9zLmRhdGEucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgICBleHBhbmRlZDogZGFkb3MuZGF0YS5leHBhbmRlZCxcclxuICAgICAgICAgICAgICAgIG9yZ0NvbmZpZzogZGFkb3Mub3JnQ29uZmlnLFxyXG4gICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KFxyXG4gICAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdLdk9yZ0NoYXJ0X05vZGVDbGljaycsIHtcclxuICAgICAgICAgICAgICAgICAgZGV0YWlsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZSxcclxuICAgICAgICAgICAgICAgICAgICBzZWxldG9yOiBjbGljayxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5kZWZhdWx0Rm9udCgnUm9ib3RvJylcclxuICAgICAgLnJlbmRlcigpO1xyXG5cclxuICAgIHRoaXMuY2hhcnQuZXhwYW5kQWxsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZGF0YVNvdXJjZSddKSB7XHJcbiAgICAgIHRoaXMuaW5pY2lhckNoYXJ0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFJlbmRlcml6YcOnw6NvIGRlIHRlbXBsYXRlXHJcbiAgcmVuZGVyTm9kZVRlbXBsYXRlKG5vZGU6IE9yZ0NoYXJ0Tm9kZSk6IHN0cmluZyB7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubm9kZVRlbXBsYXRlLCB7XHJcbiAgICAgIG5vZGU6IG5vZGUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHJldHVybiB2aWV3LnJvb3ROb2Rlc1swXS5vdXRlckhUTUw7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbiAgLy8gI3JlZ2lvbiBFdmVudG9zXHJcbiAgcHJpdmF0ZSBub2RlQ2xpY2tTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBub2RlQWRkU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbm9kZVJlbW92ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgaW5pY2lhckhhbmRsZXJzRGVFdmVudG9zKCkge1xyXG4gICAgdGhpcy5ub2RlQ2xpY2tTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8Q3VzdG9tRXZlbnQ+KFxyXG4gICAgICB3aW5kb3csXHJcbiAgICAgICdLdk9yZ0NoYXJ0X05vZGVDbGljaydcclxuICAgICkuc3Vic2NyaWJlKChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5lbWl0aXJDbGljayhldmVudC5kZXRhaWwubm9kZSwgZXZlbnQuZGV0YWlsLnNlbGV0b3IpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5ub2RlQWRkU3Vic2NyaXB0aW9uID0gdGhpcy5zZXJ2aWNlLm5vZGVBZGQkLnN1YnNjcmliZShcclxuICAgICAgKG5vZGU6IE9yZ0NoYXJ0Tm9kZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRpY2lvbmFyTm9kZShub2RlKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLm5vZGVSZW1vdmVTdWJzY3JpcHRpb24gPSB0aGlzLnNlcnZpY2Uubm9kZVJlbW92ZSQuc3Vic2NyaWJlKFxyXG4gICAgICAoaWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHRoaXMucmVtb3Zlck5vZGUoaWQpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubm9kZUNsaWNrU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLm5vZGVBZGRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubm9kZVJlbW92ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZW1pdGlyQ2xpY2sobm9kZTogTm9kZSwgc2VsZXRvckNzcz86IHN0cmluZykge1xyXG4gICAgY29uc3QgZXZlbnQgPSB7XHJcbiAgICAgIG5vZGU6IG5vZGUsXHJcbiAgICAgIHNlbGV0b3JDc3M6IHNlbGV0b3JDc3MgPz8gJycsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5vbk5vZGVDbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgYWRpY2lvbmFyTm9kZShub2RlOiBPcmdDaGFydE5vZGUpIHtcclxuICAgIGNvbnN0IGFyciA9IFsuLi50aGlzLmRhdGFTb3VyY2UoKSEsIG5vZGVdO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLnNldChhcnIpO1xyXG4gICAgdGhpcy5pbmljaWFyQ2hhcnQoKTtcclxuICB9XHJcbiAgcmVtb3Zlck5vZGUoaWQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgaW5kUGFpID0gdGhpcy5kYXRhU291cmNlKCkhLnNvbWUoKHg6IGFueSkgPT4geC5wYXJlbnRJZCA9PSBpZCk7XHJcbiAgICBpZiAoaW5kUGFpKSB7XHJcbiAgICAgIGFsZXJ0KCdOw6NvIMOpIHBvc3PDrXZlbCByZW1vdmVyIHVtIG7DsyBxdWUgcG9zc3VpIGZpbGhvcycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgYXJyID0gdGhpcy5kYXRhU291cmNlKCkhLmZpbHRlcigoeDogYW55KSA9PiB4LmlkICE9IGlkKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLnNldChhcnIpO1xyXG4gICAgICB0aGlzLmluaWNpYXJDaGFydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiBGdW7Dp8O1ZXMgZGUgdXRpbGlkYWRlXHJcblxyXG4gIHBlc3F1aXNhcihlOiBhbnkpIHtcclxuICAgIGNvbnN0IHZhbG9yID0gZS50YXJnZXQudmFsdWVcclxuICAgIHRoaXMuZmlsdHJvc09wdC5zZXQodGhpcy5maWx0cmFyQXJyYXkodmFsb3IpISlcclxuICB9XHJcblxyXG4gIGZpbHRyYXJBcnJheSh2YWxvcjogc3RyaW5nKTogT3JnQ2hhcnROb2RlW10gfCBudWxsIHtcclxuICAgIGlmICh2YWxvciAmJiB0aGlzLmNvbmZpZy5maWx0ZXJzKSB7XHJcbiAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UoKSE7XHJcbiAgICAgIGNvbnN0IHZhbG9yTG93ZXIgPSB2YWxvci50b0xvd2VyQ2FzZSgpOyAvLyBDb252ZXJ0ZSBvIHZhbG9yIGRlIGJ1c2NhIHBhcmEgbWluw7pzY3VsYXNcclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IGRhdGFTb3VyY2UuZmlsdGVyKChub2RlOiBPcmdDaGFydE5vZGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZmlsdGVycyEuZXZlcnkoKGZpbHRlcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAvLyBDb252ZXJ0ZSBvcyB2YWxvcmVzIHBhcmEgbWluw7pzY3VsYXMgZSB2ZXJpZmljYSBzZSBjb250w6ltIGEgc3RyaW5nIGRlIGJ1c2NhXHJcbiAgICAgICAgICByZXR1cm4gbm9kZS5kYXRhW2ZpbHRlcl0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWxvckxvd2VyKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gYXJyID8/IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcicpIGZpbHRlciE6IERyb3Bkb3duO1xyXG5cclxuXHJcbiAgY2VudHJhbGl6YXJObyhpZDogYW55KSB7XHJcbiAgICB0aGlzLmNoYXJ0LnNldENlbnRlcmVkKGlkKS5yZW5kZXIoKVxyXG4gICAgdGhpcy5maWx0ZXIuaGlkZSgpXHJcbiAgICB0aGlzLmZpbHRlci5jbGVhcigpXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gI2VuZHJlZ2lvblxyXG59XHJcbiIsIjxkaXYgI2NoYXJ0Q29udGFpbmVyIGlkPVwiY2hhcnRDb250YWluZXJcIiBbbmdDbGFzc109XCJ7J2JhY2tHcm91bmQnOiB0cnVlfVwiPlxyXG5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImRpdi1ib3RvZXMgdy1mdWxsIGZsZXggZ2FwLTFcIiA+XHJcblxyXG5cclxuICAgIDxkaXYgaWQ9XCJtZW51YmFyXCIgY2xhc3M9XCJzaGFkb3ctMiBmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWNvbnRlbnQtY2VudGVyXCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZvcm1ncmlkIHAtZmx1aWQgZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgIDwhLS0gPGRpdiAjZmlsdGVyQ29udGFpbmVyIGNsYXNzPVwiY29sLTQgZ3JpZCBmb3JtZ3JpZCBwLWZsdWlkXCI+XHJcbiAgICAgICAgICAgIDxrdi1pbnB1dC10ZXh0IGNsYXNzPVwiY29sLTEyXCIgI2ZpbHRybyAob25JbnB1dCk9XCJwZXNxdWlzYXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2t2LWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICBAaWYoZmlsdHJvc09wdCgpLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBpZD1cImZpbHRyby1vcmctY2hhcnRcIiBbc3R5bGUud2lkdGgucHhdPVwiZmlsdGVyQ29udGFpbmVyLm9mZnNldFdpZHRoKjAuOVwiPlxyXG5cclxuICAgICAgICAgICAgICAgIEBmb3IgKG9wdCBvZiBmaWx0cm9zT3B0KCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdHJvLW9yZy1jaGFydC1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgb3B0LmRhdGEubmFtZSB9fVxyXG5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICB9IC0tPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgPHAtZHJvcGRvd25cclxuICAgICAgICAgICAgICAjZmlsdGVyXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJGaWx0cmFyLi4uXCJcclxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyAnaGVpZ2h0JzogJzM1cHgnLCAnbWFyZ2luLWxlZnQnOiAnMTVweCcsICdtYXgtd2lkdGgnOiAnOTUlJyB9XCJcclxuICAgICAgICAgICAgICBbZmlsdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtmaWx0ZXJGaWVsZHNdPVwiY29uZmlnLmZpbHRlcnNcIlxyXG4gICAgICAgICAgICAgIGZpbHRlclBsYWNlaG9sZGVyPVwiRmlsdHJhci4uLlwiXHJcbiAgICAgICAgICAgICAgW29wdGlvbnNdPVwidGhpcy5kYXRhU291cmNlKCkhXCJcclxuICAgICAgICAgICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJjZW50cmFsaXphck5vKCRldmVudC52YWx1ZS5pZClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8IS0tIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRJdGVtVGVtcGxhdGVdPVwic2VsZWN0ZWRJdGVtVGVtcGxhdGVcIiAtLT5cclxuICAgICAgICAgICAgICA8IS0tIFtmaWx0ZXJlZE9wdGlvbnNdPVwidGhpcy5kYXRhU291cmNlKCkhXCIgLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSBbZmlsdGVyRmllbGRzXT1cImRhdGEubmFtZVwiIC0tPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJJdGVtVGVtcGxhdGUhXCJcclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RlZEl0ZW1UZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJTZWxlY3RlZEl0ZW1UZW1wbGF0ZSFcIlxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgPC9wLWRyb3Bkb3duPlxyXG5cclxuXHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBBY3Rpb25zIGJhciAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMSBmbGV4LXJvdyBmbGV4LWdyb3ctMFwiPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMHB4O1wiPlxyXG4gICAgICAgICAgICA8a3YtYnV0dG9uIChvbkNsaWNrKT1cImNoYXJ0LmV4cGFuZEFsbCgpXCIgY2xhc3M9XCJidXR0b24tZXhwYW5kLWFsbFwiIFtmdWxsV2lkdGhdPVwiZmFsc2VcIiBzaXplPVwibm9ybWFsXCIgc2V2ZXJpdHk9XCJ0ZXJ0aWFyeVwiIFtpY29uXT1cIidleHBhbmRfYWxsJ1wiIFtwVG9vbHRpcF09XCInRXhwYW5kaXIgVG9kb3MnXCI+XHJcbiAgICAgICAgICAgIDwva3YtYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMHB4O1wiPlxyXG4gICAgICAgICAgICA8a3YtYnV0dG9uIChvbkNsaWNrKT1cImNoYXJ0LmNvbGxhcHNlQWxsKClcIiBjbGFzcz1cImJ1dHRvbi1jb2xhcHBzZS1hbGxcIiBbZnVsbFdpZHRoXT1cImZhbHNlXCIgc2l6ZT1cIm5vcm1hbFwiIHNldmVyaXR5PVwidGVydGlhcnlcIiBbaWNvbl09XCInY29sbGFwc2VfYWxsJ1wiIFtwVG9vbHRpcF09XCInUmVjb2xoZXIgVG9kb3MnXCI+XHJcbiAgICAgICAgICAgIDwva3YtYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMHB4O1wiPlxyXG4gICAgICAgICAgICA8a3YtYnV0dG9uIChvbkNsaWNrKT1cImNoYXJ0LmZpdCgpLnJlbmRlcigpXCIgY2xhc3M9XCJidXR0b24tZm9jdXMtY2VudGVyXCIgW2Z1bGxXaWR0aF09XCJmYWxzZVwiIHNpemU9XCJub3JtYWxcIiBzZXZlcml0eT1cInByaW1hcnlcIiBbaWNvbl09XCInY2VudGVyX2ZvY3VzX3dlYWsnXCIgW3BUb29sdGlwXT1cIidDZW50cmFsaXphciBPcmdhbm9ncmFtYSdcIj5cclxuICAgICAgICAgICAgPC9rdi1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbjwvZGl2PlxyXG5cclxuXHJcbjxsaW5rXHJcbiAgcmVsPVwic3R5bGVzaGVldFwiXHJcbiAgaHJlZj1cImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vaWNvbj9mYW1pbHk9TWF0ZXJpYWwrSWNvbnNcIlxyXG4vPlxyXG5cclxuPGxpbmtcclxuICByZWw9XCJzdHlsZXNoZWV0XCJcclxuICBocmVmPVwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1NYXRlcmlhbCtTeW1ib2xzK091dGxpbmVkOm9wc3osd2dodCxGSUxMLEdSQURANDgsNDAwLDAsMFwiXHJcbi8+XHJcblxyXG48ZGl2IHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cclxuICA8bmctdGVtcGxhdGUgI25vZGVUZW1wbGF0ZSBsZXQtbm9kZT5cclxuICAgIDxkaXYgY2xhc3M9XCJub2RlLWNvbnRlbnRcIj5cclxuICAgICAgZXJyb1xyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
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==
|
|
@@ -136,7 +136,7 @@ export class KvPageFormComponent {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPageFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPageFormComponent, selector: "kv-page-form", inputs: { formGroup: "formGroup", TituloForm: "TituloForm", SubTituloForm: "SubTituloForm", isSaveLoading: "isSaveLoading", popup: "popup", locationUseComponent: "locationUseComponent", iconBtnCancel: "iconBtnCancel", showBtnCancel: "showBtnCancel", txtBtnCancel: "txtBtnCancel", actionsCancelToogle: "actionsCancelToogle", iconBtnCancelToogle: "iconBtnCancelToogle", showBtnCancelToogle: "showBtnCancelToogle", txtBtnCancelToogle: "txtBtnCancelToogle", iconBtnSave: "iconBtnSave", showBtnSave: "showBtnSave", txtBtnSave: "txtBtnSave", disableBtnSave: "disableBtnSave", actionsSaveToogle: "actionsSaveToogle", iconBtnSaveToogle: "iconBtnSaveToogle", showBtnSaveToogle: "showBtnSaveToogle", txtBtnSaveToogle: "txtBtnSaveToogle", iconBtnSecundary: "iconBtnSecundary", showBtnSecundary: "showBtnSecundary", txtBtnSecundary: "txtBtnSecundary", colorBtnSecundary: "colorBtnSecundary", actionsToogle: "actionsToogle", iconBtnToogle: "iconBtnToogle", showBtnToogle: "showBtnToogle", txtBtnToogle: "txtBtnToogle", classBtnToogle: "classBtnToogle", disableBtnSair: "disableBtnSair", showMessageCamposObrigatorios: "showMessageCamposObrigatorios" }, outputs: { onSave: "onSave", onCancel: "onCancel", onClickSecundary: "onClickSecundary" }, viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<div [formGroup]=\"formGroup\" class=\"grid-nogutter m-0\" id=\"page-form-container\" #pageContainer>\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n\r\n <div\r\n class=\"flex flex-column lg:flex-row lg:justify-content-end lg:align-items-center col-12 gap-2 barra-acoes \"\r\n id=\"barra-acoes\"\r\n >\r\n @if(showMessageCamposObrigatorios) {\r\n <span class=\"w-full text-sm\"> <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios</span>\r\n }\r\n <kv-button\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (onClick)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n severity=\"tertiary\"\r\n >\r\n </kv-button>\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'tertiary'\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSecundary\"\r\n [label]=\"txtBtnSecundary\"\r\n [icon]=\"iconBtnSecundary\"\r\n [disabled]=\"isSaveLoading\"\r\n severity=\"secondary\"\r\n (onClick)=\"actionSecundary($event)\"\r\n class=\"w-full lg:w-auto\"\r\n ></kv-button>\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"secondary\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (onClick)=\"save($event)\"\r\n severity=\"primary\"\r\n class=\"w-full lg:w-auto\"\r\n />\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'primary'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n </div>\r\n</div>\r\n", styles: ["*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;right:0;background-color:#fff;padding:10px;z-index:999}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i4.KvButtonPopupComponent, selector: "kv-button-popup", inputs: ["items", "classBtn"] }, { kind: "component", type: i5.KvButtonComponent, selector: "kv-button", inputs: ["
|
|
139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPageFormComponent, selector: "kv-page-form", inputs: { formGroup: "formGroup", TituloForm: "TituloForm", SubTituloForm: "SubTituloForm", isSaveLoading: "isSaveLoading", popup: "popup", locationUseComponent: "locationUseComponent", iconBtnCancel: "iconBtnCancel", showBtnCancel: "showBtnCancel", txtBtnCancel: "txtBtnCancel", actionsCancelToogle: "actionsCancelToogle", iconBtnCancelToogle: "iconBtnCancelToogle", showBtnCancelToogle: "showBtnCancelToogle", txtBtnCancelToogle: "txtBtnCancelToogle", iconBtnSave: "iconBtnSave", showBtnSave: "showBtnSave", txtBtnSave: "txtBtnSave", disableBtnSave: "disableBtnSave", actionsSaveToogle: "actionsSaveToogle", iconBtnSaveToogle: "iconBtnSaveToogle", showBtnSaveToogle: "showBtnSaveToogle", txtBtnSaveToogle: "txtBtnSaveToogle", iconBtnSecundary: "iconBtnSecundary", showBtnSecundary: "showBtnSecundary", txtBtnSecundary: "txtBtnSecundary", colorBtnSecundary: "colorBtnSecundary", actionsToogle: "actionsToogle", iconBtnToogle: "iconBtnToogle", showBtnToogle: "showBtnToogle", txtBtnToogle: "txtBtnToogle", classBtnToogle: "classBtnToogle", disableBtnSair: "disableBtnSair", showMessageCamposObrigatorios: "showMessageCamposObrigatorios" }, outputs: { onSave: "onSave", onCancel: "onCancel", onClickSecundary: "onClickSecundary" }, viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<div [formGroup]=\"formGroup\" class=\"grid-nogutter m-0\" id=\"page-form-container\" #pageContainer>\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n\r\n <div\r\n class=\"flex flex-column lg:flex-row lg:justify-content-end lg:align-items-center col-12 gap-2 barra-acoes \"\r\n id=\"barra-acoes\"\r\n >\r\n @if(showMessageCamposObrigatorios) {\r\n <span class=\"w-full text-sm\"> <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios</span>\r\n }\r\n <kv-button\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (onClick)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n severity=\"tertiary\"\r\n >\r\n </kv-button>\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'tertiary'\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSecundary\"\r\n [label]=\"txtBtnSecundary\"\r\n [icon]=\"iconBtnSecundary\"\r\n [disabled]=\"isSaveLoading\"\r\n severity=\"secondary\"\r\n (onClick)=\"actionSecundary($event)\"\r\n class=\"w-full lg:w-auto\"\r\n ></kv-button>\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"secondary\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (onClick)=\"save($event)\"\r\n severity=\"primary\"\r\n class=\"w-full lg:w-auto\"\r\n />\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'primary'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n </div>\r\n</div>\r\n", styles: ["*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;right:0;background-color:#fff;padding:10px;z-index:999}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i4.KvButtonPopupComponent, selector: "kv-button-popup", inputs: ["items", "classBtn"] }, { kind: "component", type: i5.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "label", "disabled"], outputs: ["onClick"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
140
140
|
}
|
|
141
141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPageFormComponent, decorators: [{
|
|
142
142
|
type: Component,
|
|
@@ -33,11 +33,11 @@ export class KvPickListComponent {
|
|
|
33
33
|
ngOnInit() {
|
|
34
34
|
}
|
|
35
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", "@
|
|
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"] }] }); }
|
|
37
37
|
}
|
|
38
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListComponent, decorators: [{
|
|
39
39
|
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", "@
|
|
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
41
|
}], ctorParameters: () => [], propDecorators: { breakpoint: [{
|
|
42
42
|
type: Input
|
|
43
43
|
}], dragdrop: [{
|
|
@@ -25,11 +25,11 @@ export class ProgressBarComponent {
|
|
|
25
25
|
this.mode = 'determinate';
|
|
26
26
|
}
|
|
27
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: ProgressBarComponent, selector: "kv-progress-bar", inputs: { value: "value", maxValue: "maxValue", label: "label", showValue: "showValue", showLabel: "showLabel", styleClass: "styleClass", labelStyleClass: "labelStyleClass", barStyleClass: "barStyleClass", style: "style", unit: "unit", mode: "mode", color: "color" }, ngImport: i0, template: "<div\r\n role=\"progressbar\"\r\n [class]=\"styleClass ? styleClass : ''\"\r\n [ngStyle]=\"style\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuenow]=\"value\"\r\n [attr.aria-valuemax]=\"100\"\r\n [attr.data-pc-name]=\"'progressbar'\"\r\n [attr.data-pc-section]=\"'root'\"\r\n [ngClass]=\"{'p-progressbar p-component': true, 'p-progressbar-determinate': mode === 'determinate', 'p-progressbar-indeterminate': mode === 'indeterminate'}\"\r\n>\r\n @if(mode === 'determinate') {\r\n <div class=\"p-progressbar-value p-progressbar-value-animate {{ barStyleClass }} font-semibold\"\r\n [style.width]=\"maxValue && value ? (value / maxValue) * 100 + '%' : value + '%'\"\r\n [attr.data-pc-section]=\"'value'\"\r\n ></div>\r\n\r\n <div\r\n class=\"p-progressbar-label {{ labelStyleClass }} w-full\"\r\n [attr.data-pc-section]=\"'label'\"\r\n >\r\n <label *ngIf=\"showValue && maxValue\">{{ value }}/{{ maxValue }}</label>\r\n <label *ngIf=\"showValue && !maxValue\">{{ value }}%</label>\r\n <label *ngIf=\"showLabel\">{{ label }}</label>\r\n </div>\r\n } @if(mode === 'indeterminate') {\r\n <div\r\n class=\"p-progressbar-indeterminate-container\"\r\n [attr.data-pc-section]=\"'container'\"\r\n >\r\n <div\r\n class=\"p-progressbar-value p-progressbar-value-animate\"\r\n [style.background]=\"color\"\r\n [attr.data-pc-section]=\"'value'\"\r\n ></div>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@layer primeng{.p-progressbar{background-color:#c0c1c2;position:relative;overflow:hidden}.p-progressbar-determinate .p-progressbar-value{height:100%;width:0%;position:absolute;display:none;border:0 none;display:flex;align-items:center;justify-content:center;overflow:hidden}.p-progressbar-determinate .p-progressbar-label{color:#fff!important;text-shadow:-.4px -.4px 0 #002542,.4px -.4px 0 #002542,-.4px .4px 0 #002542,.4px .4px 0 #002542;font-weight:
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: ProgressBarComponent, selector: "kv-progress-bar", inputs: { value: "value", maxValue: "maxValue", label: "label", showValue: "showValue", showLabel: "showLabel", styleClass: "styleClass", labelStyleClass: "labelStyleClass", barStyleClass: "barStyleClass", style: "style", unit: "unit", mode: "mode", color: "color" }, ngImport: i0, template: "<div\r\n role=\"progressbar\"\r\n [class]=\"styleClass ? styleClass : ''\"\r\n [ngStyle]=\"style\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuenow]=\"value\"\r\n [attr.aria-valuemax]=\"100\"\r\n [attr.data-pc-name]=\"'progressbar'\"\r\n [attr.data-pc-section]=\"'root'\"\r\n [ngClass]=\"{'p-progressbar p-component': true, 'p-progressbar-determinate': mode === 'determinate', 'p-progressbar-indeterminate': mode === 'indeterminate'}\"\r\n>\r\n @if(mode === 'determinate') {\r\n <div class=\"p-progressbar-value p-progressbar-value-animate {{ barStyleClass }} font-semibold\"\r\n [style.width]=\"maxValue && value ? (value / maxValue) * 100 + '%' : value + '%'\"\r\n [attr.data-pc-section]=\"'value'\"\r\n ></div>\r\n\r\n <div\r\n class=\"p-progressbar-label {{ labelStyleClass }} w-full\"\r\n [attr.data-pc-section]=\"'label'\"\r\n >\r\n <label *ngIf=\"showValue && maxValue\">{{ value }}/{{ maxValue }}</label>\r\n <label *ngIf=\"showValue && !maxValue\">{{ value }}%</label>\r\n <label *ngIf=\"showLabel\">{{ label }}</label>\r\n </div>\r\n } @if(mode === 'indeterminate') {\r\n <div\r\n class=\"p-progressbar-indeterminate-container\"\r\n [attr.data-pc-section]=\"'container'\"\r\n >\r\n <div\r\n class=\"p-progressbar-value p-progressbar-value-animate\"\r\n [style.background]=\"color\"\r\n [attr.data-pc-section]=\"'value'\"\r\n ></div>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@layer primeng{.p-progressbar{background-color:#c0c1c2;position:relative;overflow:hidden;height:.875rem}.p-progressbar-determinate .p-progressbar-value{height:100%;width:0%;position:absolute;display:none;border:0 none;display:flex;align-items:center;justify-content:center;overflow:hidden}.p-progressbar-determinate .p-progressbar-label{font-size:.75rem;color:#fff!important;text-shadow:-.4px -.4px 0 #002542,.4px -.4px 0 #002542,-.4px .4px 0 #002542,.4px .4px 0 #002542;font-weight:400;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;justify-content:center;align-items:center}.p-progressbar-determinate .p-progressbar-value-animate{background-color:#004172!important;transition:width 1s ease-in-out}.p-progressbar-indeterminate .p-progressbar-value:before{background-color:#004172!important;content:\"\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:p-progressbar-indeterminate-anim 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:p-progressbar-indeterminate-anim 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.p-progressbar-indeterminate .p-progressbar-value:after{background-color:#004172!important;content:\"\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation:p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}}@-webkit-keyframes p-progressbar-indeterminate-anim{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes p-progressbar-indeterminate-anim{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@-webkit-keyframes p-progressbar-indeterminate-anim-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes p-progressbar-indeterminate-anim-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
29
29
|
}
|
|
30
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
|
-
args: [{ selector: 'kv-progress-bar', template: "<div\r\n role=\"progressbar\"\r\n [class]=\"styleClass ? styleClass : ''\"\r\n [ngStyle]=\"style\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuenow]=\"value\"\r\n [attr.aria-valuemax]=\"100\"\r\n [attr.data-pc-name]=\"'progressbar'\"\r\n [attr.data-pc-section]=\"'root'\"\r\n [ngClass]=\"{'p-progressbar p-component': true, 'p-progressbar-determinate': mode === 'determinate', 'p-progressbar-indeterminate': mode === 'indeterminate'}\"\r\n>\r\n @if(mode === 'determinate') {\r\n <div class=\"p-progressbar-value p-progressbar-value-animate {{ barStyleClass }} font-semibold\"\r\n [style.width]=\"maxValue && value ? (value / maxValue) * 100 + '%' : value + '%'\"\r\n [attr.data-pc-section]=\"'value'\"\r\n ></div>\r\n\r\n <div\r\n class=\"p-progressbar-label {{ labelStyleClass }} w-full\"\r\n [attr.data-pc-section]=\"'label'\"\r\n >\r\n <label *ngIf=\"showValue && maxValue\">{{ value }}/{{ maxValue }}</label>\r\n <label *ngIf=\"showValue && !maxValue\">{{ value }}%</label>\r\n <label *ngIf=\"showLabel\">{{ label }}</label>\r\n </div>\r\n } @if(mode === 'indeterminate') {\r\n <div\r\n class=\"p-progressbar-indeterminate-container\"\r\n [attr.data-pc-section]=\"'container'\"\r\n >\r\n <div\r\n class=\"p-progressbar-value p-progressbar-value-animate\"\r\n [style.background]=\"color\"\r\n [attr.data-pc-section]=\"'value'\"\r\n ></div>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@layer primeng{.p-progressbar{background-color:#c0c1c2;position:relative;overflow:hidden}.p-progressbar-determinate .p-progressbar-value{height:100%;width:0%;position:absolute;display:none;border:0 none;display:flex;align-items:center;justify-content:center;overflow:hidden}.p-progressbar-determinate .p-progressbar-label{color:#fff!important;text-shadow:-.4px -.4px 0 #002542,.4px -.4px 0 #002542,-.4px .4px 0 #002542,.4px .4px 0 #002542;font-weight:
|
|
32
|
+
args: [{ selector: 'kv-progress-bar', template: "<div\r\n role=\"progressbar\"\r\n [class]=\"styleClass ? styleClass : ''\"\r\n [ngStyle]=\"style\"\r\n [attr.aria-valuemin]=\"0\"\r\n [attr.aria-valuenow]=\"value\"\r\n [attr.aria-valuemax]=\"100\"\r\n [attr.data-pc-name]=\"'progressbar'\"\r\n [attr.data-pc-section]=\"'root'\"\r\n [ngClass]=\"{'p-progressbar p-component': true, 'p-progressbar-determinate': mode === 'determinate', 'p-progressbar-indeterminate': mode === 'indeterminate'}\"\r\n>\r\n @if(mode === 'determinate') {\r\n <div class=\"p-progressbar-value p-progressbar-value-animate {{ barStyleClass }} font-semibold\"\r\n [style.width]=\"maxValue && value ? (value / maxValue) * 100 + '%' : value + '%'\"\r\n [attr.data-pc-section]=\"'value'\"\r\n ></div>\r\n\r\n <div\r\n class=\"p-progressbar-label {{ labelStyleClass }} w-full\"\r\n [attr.data-pc-section]=\"'label'\"\r\n >\r\n <label *ngIf=\"showValue && maxValue\">{{ value }}/{{ maxValue }}</label>\r\n <label *ngIf=\"showValue && !maxValue\">{{ value }}%</label>\r\n <label *ngIf=\"showLabel\">{{ label }}</label>\r\n </div>\r\n } @if(mode === 'indeterminate') {\r\n <div\r\n class=\"p-progressbar-indeterminate-container\"\r\n [attr.data-pc-section]=\"'container'\"\r\n >\r\n <div\r\n class=\"p-progressbar-value p-progressbar-value-animate\"\r\n [style.background]=\"color\"\r\n [attr.data-pc-section]=\"'value'\"\r\n ></div>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@layer primeng{.p-progressbar{background-color:#c0c1c2;position:relative;overflow:hidden;height:.875rem}.p-progressbar-determinate .p-progressbar-value{height:100%;width:0%;position:absolute;display:none;border:0 none;display:flex;align-items:center;justify-content:center;overflow:hidden}.p-progressbar-determinate .p-progressbar-label{font-size:.75rem;color:#fff!important;text-shadow:-.4px -.4px 0 #002542,.4px -.4px 0 #002542,-.4px .4px 0 #002542,.4px .4px 0 #002542;font-weight:400;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;justify-content:center;align-items:center}.p-progressbar-determinate .p-progressbar-value-animate{background-color:#004172!important;transition:width 1s ease-in-out}.p-progressbar-indeterminate .p-progressbar-value:before{background-color:#004172!important;content:\"\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:p-progressbar-indeterminate-anim 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:p-progressbar-indeterminate-anim 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.p-progressbar-indeterminate .p-progressbar-value:after{background-color:#004172!important;content:\"\";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation:p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}}@-webkit-keyframes p-progressbar-indeterminate-anim{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes p-progressbar-indeterminate-anim{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@-webkit-keyframes p-progressbar-indeterminate-anim-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes p-progressbar-indeterminate-anim-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}\n"] }]
|
|
33
33
|
}], propDecorators: { value: [{
|
|
34
34
|
type: Input
|
|
35
35
|
}], maxValue: [{
|