keevo-components 2.0.47 → 2.0.48
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/components/kv-pick-list/kv-pick-list.component.mjs +6 -3
- package/fesm2022/keevo-components.mjs +5 -2
- package/fesm2022/keevo-components.mjs.map +1 -1
- package/lib/components/kv-button/kv-button.component.d.ts +1 -1
- package/lib/components/kv-pick-list/kv-pick-list.component.d.ts +1 -0
- package/lib/components/kv-tag/kv-tag.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -160,6 +160,9 @@ export class KvPickListComponent {
|
|
|
160
160
|
this.showDropOverlay();
|
|
161
161
|
this.onSourceSelect.emit(event);
|
|
162
162
|
}
|
|
163
|
+
getItemId(item) {
|
|
164
|
+
return item?.[this.itemIdField];
|
|
165
|
+
}
|
|
163
166
|
showDropOverlay() {
|
|
164
167
|
const selectedInSource = this.source.some(item => this.selectedItems[item[this.itemIdField]]);
|
|
165
168
|
const selectedInTarget = this.target.some(item => this.selectedItems[item[this.itemIdField]]);
|
|
@@ -316,11 +319,11 @@ export class KvPickListComponent {
|
|
|
316
319
|
return this.selectedPreview === item;
|
|
317
320
|
}
|
|
318
321
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
319
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPickListComponent, selector: "kv-picklist", inputs: { itemIdField: "itemIdField", breakpoint: "breakpoint", dragdrop: "dragdrop", filterBy: "filterBy", itemTemplate: "itemTemplate", responsive: "responsive", source: "source", sourceHeader: "sourceHeader", sourceStyle: "sourceStyle", stripedRows: "stripedRows", target: "target", targetHeader: "targetHeader", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls", showCheckBox: "showCheckBox" }, outputs: { onMoveToSource: "onMoveToSource", onMoveToTarget: "onMoveToTarget", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect" }, viewQueries: [{ propertyName: "picklist", first: true, predicate: PickList, descendants: true }], ngImport: i0, template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\" \r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\" >\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\" [id]=\"'id_pick_list'+item.idindicativolotacao\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox) {\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}:host ::ng-deep .p-picklist .p-picklist-filter-container{border-left:0px;border-right:0px}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}@keyframes shake-base{0%{transform:translate(0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}to{transform:translate(-1px,-1px)}}.drag-preview-clone{animation-name:shake-base;animation-duration:.25s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;position:fixed;z-index:9999;opacity:.85;pointer-events:none;transition:transform .1s ease;box-shadow:0 10px 20px #0003;border-radius:6px;padding:8px;background-color:#fff}.drag-preview-clone.level-1{margin-top:.5rem}.drag-preview-clone.level-2{margin-bottom:1rem}.drag-preview-clone.level-3{margin-left:.5rem}\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-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,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,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}: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:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::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}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.PickList, selector: "p-pickList", inputs: ["source", "target", "sourceHeader", "tabindex", "rightButtonAriaLabel", "leftButtonAriaLabel", "allRightButtonAriaLabel", "allLeftButtonAriaLabel", "upButtonAriaLabel", "downButtonAriaLabel", "topButtonAriaLabel", "bottomButtonAriaLabel", "targetHeader", "responsive", "filterBy", "filterLocale", "trackBy", "sourceTrackBy", "targetTrackBy", "showSourceFilter", "showTargetFilter", "metaKeySelection", "dragdrop", "style", "styleClass", "sourceStyle", "targetStyle", "showSourceControls", "showTargetControls", "sourceFilterPlaceholder", "targetFilterPlaceholder", "disabled", "ariaSourceFilterLabel", "ariaTargetFilterLabel", "filterMatchMode", "stripedRows", "keepSelection", "breakpoint"], outputs: ["onMoveToSource", "onMoveAllToSource", "onMoveAllToTarget", "onMoveToTarget", "onSourceReorder", "onTargetReorder", "onSourceSelect", "onTargetSelect", "onSourceFilter", "onTargetFilter", "onFocus", "onBlur"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.KvCheckComponent, selector: "kv-check", outputs: ["onCheckChange"] }] }); }
|
|
322
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPickListComponent, selector: "kv-picklist", inputs: { itemIdField: "itemIdField", breakpoint: "breakpoint", dragdrop: "dragdrop", filterBy: "filterBy", itemTemplate: "itemTemplate", responsive: "responsive", source: "source", sourceHeader: "sourceHeader", sourceStyle: "sourceStyle", stripedRows: "stripedRows", target: "target", targetHeader: "targetHeader", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls", showCheckBox: "showCheckBox" }, outputs: { onMoveToSource: "onMoveToSource", onMoveToTarget: "onMoveToTarget", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect" }, viewQueries: [{ propertyName: "picklist", first: true, predicate: PickList, descendants: true }], ngImport: i0, template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\" \r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\" >\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\" [id]=\"'id_pick_list' + getItemId(item)\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox) {\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}:host ::ng-deep .p-picklist .p-picklist-filter-container{border-left:0px;border-right:0px}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}@keyframes shake-base{0%{transform:translate(0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}to{transform:translate(-1px,-1px)}}.drag-preview-clone{animation-name:shake-base;animation-duration:.25s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;position:fixed;z-index:9999;opacity:.85;pointer-events:none;transition:transform .1s ease;box-shadow:0 10px 20px #0003;border-radius:6px;padding:8px;background-color:#fff}.drag-preview-clone.level-1{margin-top:.5rem}.drag-preview-clone.level-2{margin-bottom:1rem}.drag-preview-clone.level-3{margin-left:.5rem}\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-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,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,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}: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:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::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}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.PickList, selector: "p-pickList", inputs: ["source", "target", "sourceHeader", "tabindex", "rightButtonAriaLabel", "leftButtonAriaLabel", "allRightButtonAriaLabel", "allLeftButtonAriaLabel", "upButtonAriaLabel", "downButtonAriaLabel", "topButtonAriaLabel", "bottomButtonAriaLabel", "targetHeader", "responsive", "filterBy", "filterLocale", "trackBy", "sourceTrackBy", "targetTrackBy", "showSourceFilter", "showTargetFilter", "metaKeySelection", "dragdrop", "style", "styleClass", "sourceStyle", "targetStyle", "showSourceControls", "showTargetControls", "sourceFilterPlaceholder", "targetFilterPlaceholder", "disabled", "ariaSourceFilterLabel", "ariaTargetFilterLabel", "filterMatchMode", "stripedRows", "keepSelection", "breakpoint"], outputs: ["onMoveToSource", "onMoveAllToSource", "onMoveAllToTarget", "onMoveToTarget", "onSourceReorder", "onTargetReorder", "onSourceSelect", "onTargetSelect", "onSourceFilter", "onTargetFilter", "onFocus", "onBlur"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.KvCheckComponent, selector: "kv-check", outputs: ["onCheckChange"] }] }); }
|
|
320
323
|
}
|
|
321
324
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListComponent, decorators: [{
|
|
322
325
|
type: Component,
|
|
323
|
-
args: [{ selector: 'kv-picklist', template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\" \r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\" >\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\" [id]=\"'id_pick_list'+item
|
|
326
|
+
args: [{ selector: 'kv-picklist', template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\" \r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\" >\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\" [id]=\"'id_pick_list' + getItemId(item)\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox) {\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}:host ::ng-deep .p-picklist .p-picklist-filter-container{border-left:0px;border-right:0px}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}@keyframes shake-base{0%{transform:translate(0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}to{transform:translate(-1px,-1px)}}.drag-preview-clone{animation-name:shake-base;animation-duration:.25s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;position:fixed;z-index:9999;opacity:.85;pointer-events:none;transition:transform .1s ease;box-shadow:0 10px 20px #0003;border-radius:6px;padding:8px;background-color:#fff}.drag-preview-clone.level-1{margin-top:.5rem}.drag-preview-clone.level-2{margin-bottom:1rem}.drag-preview-clone.level-3{margin-left:.5rem}\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-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,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,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}: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:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::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}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"] }]
|
|
324
327
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { picklist: [{
|
|
325
328
|
type: ViewChild,
|
|
326
329
|
args: [PickList]
|
|
@@ -369,4 +372,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
369
372
|
}], onTargetSelect: [{
|
|
370
373
|
type: Output
|
|
371
374
|
}] } });
|
|
372
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGljay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGljay1saXN0L2t2LXBpY2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFVNUMsTUFBTSxPQUFPLG1CQUFtQjtJQU05QixZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUkxQixnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQixlQUFVLEdBQVcsUUFBUSxDQUFDO1FBQzlCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFHekIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUUzQixpQkFBWSxHQUFXLDJCQUEyQixDQUFDO1FBRW5ELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGlCQUFZLEdBQVcsNEJBQTRCLENBQUM7UUFFcEQsdUJBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUNuQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU3QixtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsc0JBQWlCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUQsc0JB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QyxDQUFDO0lBRTVDLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBUztRQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDO0lBQ3ZDLENBQUM7OEdBcGFVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDh3QkFFbkIsUUFBUSxnREN0QnJCLGcwQ0ErQkE7OzJGRFhhLG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDRSxhQUFhO2dGQVNGLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUTtnQkFRVixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFBpY2tMaXN0IH0gZnJvbSAncHJpbWVuZy9waWNrbGlzdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXBpY2tsaXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtcGljay1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL2t2LXBpY2stbGlzdC5jb21wb25lbnQuc2NzcycsXHJcbiAgICAnLi4va2Vldm8tY29tcG9uZW50cy1zdHlsZXMuc2NzcydcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlBpY2tMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZChQaWNrTGlzdCkgcGlja2xpc3QhOiBQaWNrTGlzdDtcclxuXHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQpID0+IHRoaXMub25LZXlEb3duKGV2ZW50KSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBpdGVtSWRGaWVsZDogc3RyaW5nID0gJ2lkJztcclxuICBASW5wdXQoKSBicmVha3BvaW50OiBzdHJpbmcgPSBcIjE0MDBweFwiO1xyXG4gIEBJbnB1dCgpIGRyYWdkcm9wOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBmaWx0ZXJCeSE6IHN0cmluZztcclxuICBASW5wdXQoKSBpdGVtVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNvdXJjZSE6IGFueVtdO1xyXG4gIEBJbnB1dCgpIHNvdXJjZUhlYWRlcjogc3RyaW5nID0gJ1TDrXR1bG8gZGEgbGlzdGEgZGUgb3JpZ2VtJztcclxuICBASW5wdXQoKSBzb3VyY2VTdHlsZSE6IGFueTtcclxuICBASW5wdXQoKSBzdHJpcGVkUm93czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRhcmdldCE6IGFueVtdO1xyXG4gIEBJbnB1dCgpIHRhcmdldEhlYWRlcjogc3RyaW5nID0gJ1TDrXR1bG8gZGUgbGlzdGEgZGUgZGVzdGlubyc7XHJcbiAgQElucHV0KCkgdGFyZ2V0U3R5bGUhOiBhbnk7XHJcbiAgQElucHV0KCkgc2hvd1NvdXJjZUNvbnRyb2xzOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93VGFyZ2V0Q29udHJvbHM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dDaGVja0JveDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25Nb3ZlVG9Tb3VyY2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk1vdmVUb1RhcmdldDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTW92ZUFsbFRvU291cmNlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Nb3ZlQWxsVG9UYXJnZXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblNvdXJjZVNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uVGFyZ2V0U2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgc2VsZWN0ZWRQcmV2aWV3ITogYW55O1xyXG4gIG5nTW9kZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZEl0ZW1zOiB7IFtrZXk6IG51bWJlcl06IGJvb2xlYW4gfSA9IHt9O1xyXG4gIHVsdGltb0l0ZW1TZWxlY2lvbmFkbzogeyBpdGVtOiBhbnksIGluZGV4OiBudW1iZXIgfVtdID0gW107XHJcbiAgbGFzdERyYWdnZWRJdGVtczogYW55W10gPSBbXTtcclxuICBkcmFnZ2VkSWRzOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICBtb3VzZVggPSAwO1xyXG4gIG1vdXNlWSA9IDA7XHJcbiAgcHJldmlld0Nsb25lczogSFRNTEVsZW1lbnRbXSA9IFtdO1xyXG5cclxubmdPbkluaXQoKSB7XHJcbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICB0aGlzLm1vdXNlWCA9IGV2ZW50LmNsaWVudFg7XHJcbiAgICB0aGlzLm1vdXNlWSA9IGV2ZW50LmNsaWVudFk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbm5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICB0aGlzLmNyZWF0ZURyb3BPdmVybGF5KCk7XHJcbn1cclxuXHJcbiAgZHJvcE92ZXJsYXkhOiBIVE1MRGl2RWxlbWVudDtcclxuXHJcbiAgY3JlYXRlRHJvcE92ZXJsYXkoKSB7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LmlubmVyVGV4dCA9ICdTb2x0YXInO1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmJhY2tncm91bmQgPSAnI0JGREJGRSc7IC8vIEF6dWwgY2xhcm8gdmlzw612ZWxcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuY29sb3IgPSAnIzFFM0E4QSc7IC8vIEF6dWwgZXNjdXJvIHBybyB0ZXh0b1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5ib3JkZXIgPSAnOXB4ICMxRTQwQUYnOyAvLyBCb3JkYSBhenVsIGVzY3Vyb1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5ib3hTaGFkb3cgPSAnMCAycHggNnB4IHJnYmEoMzAsIDU4LCAxMzgsIDAuMiknOyAvLyBTaGFkb3cgcmVkdXppZGFcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnY2VudGVyJztcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuYWxpZ25JdGVtcyA9ICdjZW50ZXInO1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS56SW5kZXggPSAnOTk5OSc7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmZvbnRTaXplID0gJzEuNXJlbSc7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmZvbnRXZWlnaHQgPSAnYm9sZCc7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnYWxsJztcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUudHJhbnNpdGlvbiA9ICdhbGwgMC4ycyBlYXNlJztcclxuXHJcblxyXG4gICAgLy8gRW5jYWl4YXIgbm8gbWVzbW8gbHVnYXIgZG8gdGFyZ2V0XHJcbiAgICBjb25zdCB0YXJnZXRMaXN0RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1waWNrbGlzdC10YXJnZXQnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICh0YXJnZXRMaXN0RWwpIHtcclxuICAgICAgY29uc3QgcmVjdCA9IHRhcmdldExpc3RFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS50b3AgPSByZWN0LnRvcCArICdweCc7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUubGVmdCA9IHJlY3QubGVmdCArICdweCc7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUud2lkdGggPSByZWN0LndpZHRoICsgJ3B4JztcclxuICAgICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5oZWlnaHQgPSByZWN0LmhlaWdodCArICdweCc7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJblNvdXJjZSA9IHRoaXMuc291cmNlLnNvbWUoaXRlbSA9PiB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbVt0aGlzLml0ZW1JZEZpZWxkXV0pO1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEluVGFyZ2V0ID0gdGhpcy50YXJnZXQuc29tZShpdGVtID0+IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtW3RoaXMuaXRlbUlkRmllbGRdXSk7XHJcbiAgICBcclxuICAgICAgaWYgKHNlbGVjdGVkSW5Tb3VyY2UpIHtcclxuICAgICAgICB0aGlzLk9uTW92ZVRvVGFyZ2V0KHt9KTtcclxuICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZEluVGFyZ2V0KSB7XHJcbiAgICAgICAgdGhpcy5Pbk1vdmVUb1NvdXJjZSh7fSk7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICB0aGlzLmhpZGVEcm9wT3ZlcmxheSgpO1xyXG4gICAgfSk7XHJcbiAgICBcclxuXHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuYmFja2dyb3VuZCA9ICcjOTNDNUZEJzsgLy8gQXp1bCB1bSBwb3VjbyBtYWlzIGVzY3VybyBubyBob3ZlclxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuYmFja2dyb3VuZCA9ICcjQkZEQkZFJztcclxuICAgIH0pO1xyXG4gICAgXHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmRyb3BPdmVybGF5KTtcclxuICB9XHJcblxyXG5cclxuICBoYW5kbGVNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMubW91c2VYID0gZXZlbnQuY2xpZW50WDtcclxuICAgIHRoaXMubW91c2VZID0gZXZlbnQuY2xpZW50WTtcclxuICB9XHJcblxyXG4gIGNsZWFyUHJldmlld0Nsb25lcygpIHtcclxuICAgIHRoaXMucHJldmlld0Nsb25lcy5mb3JFYWNoKGNsb25lID0+IGNsb25lLnJlbW92ZSgpKTtcclxuICAgIHRoaXMucHJldmlld0Nsb25lcyA9IFtdO1xyXG4gIH1cclxuICBcclxuICBPbk1vdmVUb1NvdXJjZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNsZWFyUHJldmlld0Nsb25lcygpO1xyXG4gICAgdGhpcy5waWNrbGlzdC5tb3ZlTGVmdCgpO1xyXG4gICAgdGhpcy5vbk1vdmVUb1NvdXJjZS5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHt9O1xyXG4gICAgdGhpcy5oaWRlRHJvcE92ZXJsYXkoKVxyXG4gICAgdGhpcy5jbGVhclByZXZpZXdDbG9uZXMoKTtcclxuICB9XHJcbiAgXHJcbiAgT25Nb3ZlVG9UYXJnZXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jbGVhclByZXZpZXdDbG9uZXMoKTtcclxuICAgIHRoaXMucGlja2xpc3QubW92ZVJpZ2h0KCk7XHJcbiAgICB0aGlzLm9uTW92ZVRvVGFyZ2V0LmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0ge307XHJcbiAgICB0aGlzLmhpZGVEcm9wT3ZlcmxheSgpXHJcbiAgICB0aGlzLmNsZWFyUHJldmlld0Nsb25lcygpO1xyXG4gIH1cclxuICBcclxuXHJcbiAgZ2V0U2VsZWN0ZWRJdGVtcygpOiBhbnlbXSB7XHJcbiAgICAvLyBGaWx0cmEgb3MgaXRlbnMgZGEgbGlzdGEgZGUgb3JpZ2VtIChzb3VyY2UpIGNvbSBiYXNlIG5vcyBpdGVucyBzZWxlY2lvbmFkb3NcclxuICAgIHJldHVybiB0aGlzLnNvdXJjZS5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF07IC8vIE9idMOpbSBvIElEIGRvIGl0ZW1cclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtSWRdID09PSB0cnVlOyAvLyBWZXJpZmljYSBzZSBlc3TDoSBtYXJjYWRvIGNvbW8gdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBPbk1vdmVBbGxUb1NvdXJjZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uTW92ZVRvU291cmNlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0ge307XHJcbiAgICB0aGlzLmhpZGVEcm9wT3ZlcmxheSgpXHJcbiAgICB0aGlzLmNsZWFyUHJldmlld0Nsb25lcygpO1xyXG4gIH1cclxuXHJcbiAgT25Nb3ZlQWxsVG9UYXJnZXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbk1vdmVUb1RhcmdldC5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHt9O1xyXG4gICAgdGhpcy5oaWRlRHJvcE92ZXJsYXkoKVxyXG4gICAgdGhpcy5jbGVhclByZXZpZXdDbG9uZXMoKTtcclxuICB9XHJcblxyXG4gIE9uU291cmNlU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLmdldFNlbGVjdGVkSXRlbXMoKTtcclxuICBcclxuICAgIC8vIFByaW1laXJvIHJlbW92ZSB0b2RvcyBvcyBwcmV2aWV3cyBhbnRpZ29zXHJcbiAgICB0aGlzLmNsZWFyUHJldmlld0Nsb25lcygpO1xyXG4gIFxyXG4gICAgaWYgKHNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuaGlkZURyb3BPdmVybGF5KCk7XHJcbiAgICAgIHRoaXMub25Tb3VyY2VTZWxlY3QuZW1pdChldmVudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICBcclxuICAgIHNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF07XHJcbiAgXHJcbiAgICAgIC8vIFNlIGrDoSBleGlzdGUgdW0gY2xvbmUgcGFyYSBlc3NlIGl0ZW0sIG7Do28gY3JpYSBub3ZhbWVudGVcclxuICAgICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJldmlld18nICsgaXRlbUlkKSkge1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lkX3BpY2tfbGlzdCcgKyBpdGVtSWQpO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbCkge1xyXG4gICAgICAgICAgY29uc3QgcmVjdCA9IG9yaWdpbmFsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgY29uc3QgY2xvbmUgPSBvcmlnaW5hbC5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICBjbG9uZS5jbGFzc0xpc3QuYWRkKCdkcmFnLXByZXZpZXctY2xvbmUnKTtcclxuICAgICAgICAgIGNsb25lLmNsYXNzTGlzdC5hZGQoYGxldmVsLSR7aW5kZXggKyAxfWApO1xyXG4gICAgICAgICAgY2xvbmUuaWQgPSAncHJldmlld18nICsgaXRlbUlkO1xyXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjbG9uZSk7XHJcbiAgICAgICAgICB0aGlzLnByZXZpZXdDbG9uZXMucHVzaChjbG9uZSk7XHJcbiAgICAgICAgICB0aGlzLmFuaW1hdGVDbG9uZVRvQ3Vyc29yKGNsb25lLCByZWN0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIFxyXG4gICAgdGhpcy5zaG93RHJvcE92ZXJsYXkoKTtcclxuICAgIHRoaXMub25Tb3VyY2VTZWxlY3QuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICBzaG93RHJvcE92ZXJsYXkoKSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZEluU291cmNlID0gdGhpcy5zb3VyY2Uuc29tZShpdGVtID0+IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtW3RoaXMuaXRlbUlkRmllbGRdXSk7XHJcbiAgICBjb25zdCBzZWxlY3RlZEluVGFyZ2V0ID0gdGhpcy50YXJnZXQuc29tZShpdGVtID0+IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtW3RoaXMuaXRlbUlkRmllbGRdXSk7XHJcbiAgXHJcbiAgICBsZXQgdGFyZ2V0TGlzdEVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIFxyXG4gICAgaWYgKHNlbGVjdGVkSW5Tb3VyY2UpIHtcclxuICAgICAgLy8gSXRlbnMgc2VsZWNpb25hZG9zIG5hIGxpc3RhIGRhIGVzcXVlcmRhIOKGkiBvdmVybGF5IG5vIGxhZG8gZGlyZWl0b1xyXG4gICAgICB0YXJnZXRMaXN0RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1waWNrbGlzdC10YXJnZXQnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgdGhpcy5kcm9wT3ZlcmxheS5pbm5lclRleHQgPSAnU29sdGFyIGFxdWkgcGFyYSBtb3Zlcic7XHJcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkSW5UYXJnZXQpIHtcclxuICAgICAgLy8gSXRlbnMgc2VsZWNpb25hZG9zIG5hIGxpc3RhIGRhIGRpcmVpdGEg4oaSIG92ZXJsYXkgbm8gbGFkbyBlc3F1ZXJkb1xyXG4gICAgICB0YXJnZXRMaXN0RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1waWNrbGlzdC1zb3VyY2UnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgdGhpcy5kcm9wT3ZlcmxheS5pbm5lclRleHQgPSAnU29sdGFyIGFxdWkgcGFyYSByZXRvcm5hcic7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBpZiAodGFyZ2V0TGlzdEVsKSB7XHJcbiAgICAgIGNvbnN0IHJlY3QgPSB0YXJnZXRMaXN0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUudG9wID0gcmVjdC50b3AgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmxlZnQgPSByZWN0LmxlZnQgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLndpZHRoID0gcmVjdC53aWR0aCArICdweCc7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuaGVpZ2h0ID0gcmVjdC5oZWlnaHQgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIGhpZGVEcm9wT3ZlcmxheSgpIHtcclxuICAgIGlmICh0aGlzLmRyb3BPdmVybGF5KSB7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgXHJcbiAgYW5pbWF0ZUNsb25lVG9DdXJzb3IoY2xvbmU6IEhUTUxFbGVtZW50LCBvcmlnaW5SZWN0OiBET01SZWN0KSB7XHJcbiAgICAvLyBDb21lw6dhIGV4YXRhbWVudGUgZGEgcG9zacOnw6NvIGRvIG9yaWdpbmFsXHJcbiAgICBsZXQgcG9zWCA9IG9yaWdpblJlY3QubGVmdDtcclxuICAgIGxldCBwb3NZID0gb3JpZ2luUmVjdC50b3A7XHJcbiAgXHJcbiAgICBjbG9uZS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICBjbG9uZS5zdHlsZS5sZWZ0ID0gYCR7cG9zWH1weGA7XHJcbiAgICBjbG9uZS5zdHlsZS50b3AgPSBgJHtwb3NZfXB4YDtcclxuICAgIGNsb25lLnN0eWxlLndpZHRoID0gYCR7b3JpZ2luUmVjdC53aWR0aH1weGA7XHJcbiAgICBjbG9uZS5zdHlsZS5oZWlnaHQgPSBgJHtvcmlnaW5SZWN0LmhlaWdodH1weGA7XHJcbiAgICBjbG9uZS5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xyXG4gIFxyXG4gICAgY29uc3QgYW5pbWF0ZSA9ICgpID0+IHtcclxuICAgICAgY29uc3QgZHggPSB0aGlzLm1vdXNlWCAtIHBvc1g7XHJcbiAgICAgIGNvbnN0IGR5ID0gdGhpcy5tb3VzZVkgLSBwb3NZO1xyXG4gIFxyXG4gICAgICBwb3NYICs9IGR4ICogMC4xNTtcclxuICAgICAgcG9zWSArPSBkeSAqIDAuMTU7XHJcbiAgXHJcbiAgICAgIGNsb25lLnN0eWxlLmxlZnQgPSBgJHtwb3NYfXB4YDtcclxuICAgICAgY2xvbmUuc3R5bGUudG9wID0gYCR7cG9zWX1weGA7XHJcbiAgXHJcbiAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGNsb25lKSkge1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICBcclxuICAgIGFuaW1hdGUoKTtcclxuICB9XHJcbiAgXHJcbiAgXHJcblxyXG4gIE9uVGFyZ2V0U2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLnRhcmdldC5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF07XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXSA9PT0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIFxyXG4gICAgLy8gTGltcGEgY2xvbmVzIGFudGlnb3NcclxuICAgIHRoaXMuY2xlYXJQcmV2aWV3Q2xvbmVzKCk7XHJcbiAgXHJcbiAgICBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5oaWRlRHJvcE92ZXJsYXkoKTtcclxuICAgICAgdGhpcy5vblRhcmdldFNlbGVjdC5lbWl0KGV2ZW50KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgaXRlbUlkID0gaXRlbVt0aGlzLml0ZW1JZEZpZWxkXTtcclxuICBcclxuICAgICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJldmlld18nICsgaXRlbUlkKSkge1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lkX3BpY2tfbGlzdCcgKyBpdGVtSWQpO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbCkge1xyXG4gICAgICAgICAgY29uc3QgcmVjdCA9IG9yaWdpbmFsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgY29uc3QgY2xvbmUgPSBvcmlnaW5hbC5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICBjbG9uZS5jbGFzc0xpc3QuYWRkKCdkcmFnLXByZXZpZXctY2xvbmUnKTtcclxuICAgICAgICAgIGNsb25lLmNsYXNzTGlzdC5hZGQoYGxldmVsLSR7aW5kZXggKyAxfWApO1xyXG4gICAgICAgICAgY2xvbmUuaWQgPSAncHJldmlld18nICsgaXRlbUlkO1xyXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjbG9uZSk7XHJcbiAgICAgICAgICB0aGlzLnByZXZpZXdDbG9uZXMucHVzaChjbG9uZSk7XHJcbiAgICAgICAgICB0aGlzLmFuaW1hdGVDbG9uZVRvQ3Vyc29yKGNsb25lLCByZWN0KTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBcclxuICAgIHRoaXMuc2hvd0Ryb3BPdmVybGF5KCk7XHJcbiAgICB0aGlzLm9uVGFyZ2V0U2VsZWN0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBcclxuXHJcbiAgb25TZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLnNlbGVjdEFsbEl0ZW1zKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsSXRlbXMoaXNTZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zb3VyY2UuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgY29uc3QgaXRlbUlkID0gaXRlbVt0aGlzLml0ZW1JZEZpZWxkXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF0gPSBpc1NlbGVjdGVkO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy50YXJnZXQuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgY29uc3QgaXRlbUlkID0gaXRlbVt0aGlzLml0ZW1JZEZpZWxkXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF0gPSBpc1NlbGVjdGVkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIGV2ZW50LmtleSA9PT0gJ2EnKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMub25TZWxlY3RBbGwoKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgXHJcbiAgICAgIGNvbnN0IHNvdXJjZVNlbGVjdGVkID0gdGhpcy5waWNrbGlzdC5zZWxlY3RlZEl0ZW1zU291cmNlO1xyXG4gIFxyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zSWRzID0gT2JqZWN0LmVudHJpZXModGhpcy5zZWxlY3RlZEl0ZW1zKVxyXG4gICAgICAgIC5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+IHZhbHVlID09PSB0cnVlKVxyXG4gICAgICAgIC5tYXAoKFtrZXksIF9dKSA9PiBOdW1iZXIoa2V5KSk7XHJcbiAgXHJcbiAgICAgIGNvbnN0IG5vdEluU2VsZWN0ZWQgPSBzb3VyY2VTZWxlY3RlZC5maW5kKFxyXG4gICAgICAgIChpdGVtOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PlxyXG4gICAgICAgICAgIXNlbGVjdGVkSXRlbXNJZHMuaW5jbHVkZXMoaXRlbVt0aGlzLml0ZW1JZEZpZWxkXSlcclxuICAgICAgKTtcclxuICBcclxuICAgICAgY29uc3QgaW5kZXhJblNvdXJjZSA9IHRoaXMuc291cmNlLmZpbmRJbmRleChcclxuICAgICAgICAoaXRlbTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkgPT5cclxuICAgICAgICAgIGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF0gPT09IG5vdEluU2VsZWN0ZWQ/Llt0aGlzLml0ZW1JZEZpZWxkXVxyXG4gICAgICApO1xyXG4gIFxyXG4gICAgICBjb25zdCB1bHRpbW9JdGVtQXJyYXkgPSB7XHJcbiAgICAgICAgaXRlbTogbm90SW5TZWxlY3RlZCxcclxuICAgICAgICBpbmRleDogaW5kZXhJblNvdXJjZSxcclxuICAgICAgfTtcclxuICBcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleEluU291cmNlID0gdGhpcy5zb3VyY2UuZmluZEluZGV4KChzb3VyY2VJdGVtOiBhbnkpID0+XHJcbiAgICAgICAgc2VsZWN0ZWRJdGVtc0lkcy5pbmNsdWRlcyhzb3VyY2VJdGVtW3RoaXMuaXRlbUlkRmllbGRdKVxyXG4gICAgICApO1xyXG4gIFxyXG4gICAgICBpZiAobm90SW5TZWxlY3RlZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgY29uc3QgYmVmb3JlSWRzID0gdGhpcy51bHRpbW9JdGVtU2VsZWNpb25hZG8ubWFwKGkgPT4gaS5pdGVtW3RoaXMuaXRlbUlkRmllbGRdKTtcclxuICAgICAgICBjb25zdCBhZnRlcklkcyA9IHRoaXMucGlja2xpc3Quc2VsZWN0ZWRJdGVtc1NvdXJjZS5tYXAoaSA9PiBpW3RoaXMuaXRlbUlkRmllbGRdKTtcclxuICAgICAgXHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZElkID0gYmVmb3JlSWRzLmZpbmQoaWQgPT4gIWFmdGVySWRzLmluY2x1ZGVzKGlkKSk7XHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgICBpZiAocmVtb3ZlZElkICE9IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IHJlbW92ZWRJdGVtID0gdGhpcy5zb3VyY2UuZmluZChpdGVtID0+IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF0gPT09IHJlbW92ZWRJZCk7XHJcbiAgICAgICAgICBpZiAocmVtb3ZlZEl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RDaGVja0JveChyZW1vdmVkSXRlbSk7XHJcbiAgICAgICAgICAgIHRoaXMudWx0aW1vSXRlbVNlbGVjaW9uYWRvID0gdGhpcy51bHRpbW9JdGVtU2VsZWNpb25hZG8uZmlsdGVyKFxyXG4gICAgICAgICAgICAgIChpKSA9PiBpLml0ZW1bdGhpcy5pdGVtSWRGaWVsZF0gIT09IHJlbW92ZWRJZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBlbnRlcklkcyA9IHRoaXMudWx0aW1vSXRlbVNlbGVjaW9uYWRvLm1hcChpID0+IGkuaXRlbVt0aGlzLml0ZW1JZEZpZWxkXSk7XHJcblxyXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtc0lkcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuc2VsZWN0ZWRJdGVtcylcclxuICAgICAgICAgICAgLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgPT09IHRydWUpXHJcbiAgICAgICAgICAgIC5tYXAoKFtrZXksIF9dKSA9PiBOdW1iZXIoa2V5KSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGNvbnN0IGNsaWNrZWRJZHMgPSBzZWxlY3RlZEl0ZW1zSWRzLmZpbHRlcihpZCA9PiAhZW50ZXJJZHMuaW5jbHVkZXMoaWQpKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNsaWNrZWRJZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBjbGlja2VkSXRlbSA9IHRoaXMuc291cmNlLmZpbmQoaXRlbSA9PiBpdGVtW3RoaXMuaXRlbUlkRmllbGRdID09PSBjbGlja2VkSWRzWzBdKTtcclxuICAgICAgICAgICAgaWYgKGNsaWNrZWRJdGVtKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RDaGVja0JveChjbGlja2VkSXRlbSk7XHJcbiAgICAgICAgICAgICAgdGhpcy51bHRpbW9JdGVtU2VsZWNpb25hZG8gPSB0aGlzLnVsdGltb0l0ZW1TZWxlY2lvbmFkby5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAoaSkgPT4gaS5pdGVtW3RoaXMuaXRlbUlkRmllbGRdICE9PSBjbGlja2VkSWRzWzBdXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICBcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIFxyXG4gIFxyXG4gICAgICB0aGlzLnNlbGVjdENoZWNrQm94KG5vdEluU2VsZWN0ZWQpO1xyXG4gIFxyXG4gICAgICB0aGlzLnVsdGltb0l0ZW1TZWxlY2lvbmFkbyA9IHRoaXMudWx0aW1vSXRlbVNlbGVjaW9uYWRvLmZpbHRlcihcclxuICAgICAgICAoaXRlbSkgPT4gaXRlbS5pbmRleCAhPT0gaW5kZXhJblNvdXJjZVxyXG4gICAgICApO1xyXG4gIFxyXG4gICAgICB0aGlzLnVsdGltb0l0ZW1TZWxlY2lvbmFkby5wdXNoKHVsdGltb0l0ZW1BcnJheSk7XHJcbiAgXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBzZWxlY3RDaGVja0JveChpdGVtOiBhbnkpIHtcclxuICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF07XHJcblxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3ID0gaXRlbTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXSA9IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtSWRdICE9PSB1bmRlZmluZWRcclxuICAgICAgPyAhdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF1cclxuICAgICAgOiB0cnVlO1xyXG5cclxuXHJcbiAgICB0aGlzLm5nTW9kZWwgPSB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXTtcclxuXHJcbiAgfVxyXG5cclxuICBpc0l0ZW1TZWxlY3RlZChpdGVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUHJldmlldyA9PT0gaXRlbTtcclxuICB9XHJcbn1cclxuIiwiPHAtcGlja0xpc3RcclxuICBbc291cmNlXT1cInNvdXJjZVwiXHJcbiAgW3NvdXJjZUhlYWRlcl09XCJzb3VyY2VIZWFkZXJcIlxyXG4gIFtzb3VyY2VTdHlsZV09XCJzb3VyY2VTdHlsZVwiXHJcbiAgW3RhcmdldF09XCJ0YXJnZXRcIiBcclxuICBbdGFyZ2V0SGVhZGVyXT1cInRhcmdldEhlYWRlclwiXHJcbiAgW3RhcmdldFN0eWxlXT1cInRhcmdldFN0eWxlXCJcclxuICBbZHJhZ2Ryb3BdPVwiZHJhZ2Ryb3BcIlxyXG4gIFtyZXNwb25zaXZlXT1cInJlc3BvbnNpdmVcIlxyXG4gIFtmaWx0ZXJCeV09XCJmaWx0ZXJCeVwiXHJcbiAgW2JyZWFrcG9pbnRdPVwiYnJlYWtwb2ludFwiXHJcbiAgW3N0cmlwZWRSb3dzXT1cInN0cmlwZWRSb3dzXCJcclxuICBbc2hvd1NvdXJjZUNvbnRyb2xzXT1cInNob3dTb3VyY2VDb250cm9sc1wiXHJcbiAgW3Nob3dUYXJnZXRDb250cm9sc109XCJzaG93VGFyZ2V0Q29udHJvbHNcIlxyXG4gIChvbk1vdmVUb1NvdXJjZSk9XCJPbk1vdmVUb1NvdXJjZSgkZXZlbnQpXCJcclxuICAob25Nb3ZlVG9UYXJnZXQpPVwiT25Nb3ZlVG9UYXJnZXQoJGV2ZW50KVwiXHJcbiAgKG9uTW92ZUFsbFRvU291cmNlKT1cIk9uTW92ZUFsbFRvU291cmNlKCRldmVudClcIlxyXG4gIChvbk1vdmVBbGxUb1RhcmdldCk9XCJPbk1vdmVBbGxUb1RhcmdldCgkZXZlbnQpXCJcclxuICAob25Tb3VyY2VTZWxlY3QpPVwiT25Tb3VyY2VTZWxlY3QoJGV2ZW50KVwiXHJcbiAgKG9uVGFyZ2V0U2VsZWN0KT1cIk9uVGFyZ2V0U2VsZWN0KCRldmVudClcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlICBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCIgKm5nSWY9XCJpdGVtVGVtcGxhdGVcIiA+XHJcbiAgICAgIDxkaXYgKGNsaWNrKT1cInNlbGVjdENoZWNrQm94KGl0ZW0pXCIgY2xhc3M9XCJmbGV4IG1yLTVcIiBbaWRdPVwiJ2lkX3BpY2tfbGlzdCcraXRlbS5pZGluZGljYXRpdm9sb3RhY2FvXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj5cclxuICAgICAgICBAaWYoc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgICAgIDxrdi1jaGVjayAob25DaGVja0NoYW5nZSk9XCJzZWxlY3RDaGVja0JveChpdGVtKVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRJdGVtc1tpdGVtW2l0ZW1JZEZpZWxkXV1cIiBjbGFzcz1cIm1yLTFcIj48L2t2LWNoZWNrPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PiBcclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtcGlja0xpc3Q+XHJcbiJdfQ==
|
|
375
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGljay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGljay1saXN0L2t2LXBpY2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFVNUMsTUFBTSxPQUFPLG1CQUFtQjtJQU05QixZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUkxQixnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQixlQUFVLEdBQVcsUUFBUSxDQUFDO1FBQzlCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFHekIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUUzQixpQkFBWSxHQUFXLDJCQUEyQixDQUFDO1FBRW5ELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGlCQUFZLEdBQVcsNEJBQTRCLENBQUM7UUFFcEQsdUJBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUNuQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU3QixtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsc0JBQWlCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUQsc0JB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QUM7WUFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUdULElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU1QyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVM7UUFDdEIsT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQztJQUN2QyxDQUFDOzhHQXhhVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw4d0JBRW5CLFFBQVEsZ0RDdEJyQixtMENBZ0NBOzsyRkRaYSxtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsYUFBYTtnRkFTRixRQUFRO3NCQUE1QixTQUFTO3VCQUFDLFFBQVE7Z0JBUVYsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBQaWNrTGlzdCB9IGZyb20gJ3ByaW1lbmcvcGlja2xpc3QnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1waWNrbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LXBpY2stbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbXHJcbiAgICAnLi9rdi1waWNrLWxpc3QuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgJy4uL2tlZXZvLWNvbXBvbmVudHMtc3R5bGVzLnNjc3MnXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZQaWNrTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoUGlja0xpc3QpIHBpY2tsaXN0ITogUGlja0xpc3Q7XHJcblxyXG4gIGZvcm0hOiBGb3JtR3JvdXA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50KSA9PiB0aGlzLm9uS2V5RG93bihldmVudCkpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgaXRlbUlkRmllbGQ6IHN0cmluZyA9ICdpZCc7XHJcbiAgQElucHV0KCkgYnJlYWtwb2ludDogc3RyaW5nID0gXCIxNDAwcHhcIjtcclxuICBASW5wdXQoKSBkcmFnZHJvcDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZmlsdGVyQnkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSByZXNwb25zaXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzb3VyY2UhOiBhbnlbXTtcclxuICBASW5wdXQoKSBzb3VyY2VIZWFkZXI6IHN0cmluZyA9ICdUw610dWxvIGRhIGxpc3RhIGRlIG9yaWdlbSc7XHJcbiAgQElucHV0KCkgc291cmNlU3R5bGUhOiBhbnk7XHJcbiAgQElucHV0KCkgc3RyaXBlZFJvd3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0YXJnZXQhOiBhbnlbXTtcclxuICBASW5wdXQoKSB0YXJnZXRIZWFkZXI6IHN0cmluZyA9ICdUw610dWxvIGRlIGxpc3RhIGRlIGRlc3Rpbm8nO1xyXG4gIEBJbnB1dCgpIHRhcmdldFN0eWxlITogYW55O1xyXG4gIEBJbnB1dCgpIHNob3dTb3VyY2VDb250cm9sczogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1RhcmdldENvbnRyb2xzOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93Q2hlY2tCb3g6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uTW92ZVRvU291cmNlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Nb3ZlVG9UYXJnZXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk1vdmVBbGxUb1NvdXJjZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTW92ZUFsbFRvVGFyZ2V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Tb3VyY2VTZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblRhcmdldFNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHNlbGVjdGVkUHJldmlldyE6IGFueTtcclxuICBuZ01vZGVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRJdGVtczogeyBba2V5OiBudW1iZXJdOiBib29sZWFuIH0gPSB7fTtcclxuICB1bHRpbW9JdGVtU2VsZWNpb25hZG86IHsgaXRlbTogYW55LCBpbmRleDogbnVtYmVyIH1bXSA9IFtdO1xyXG4gIGxhc3REcmFnZ2VkSXRlbXM6IGFueVtdID0gW107XHJcbiAgZHJhZ2dlZElkczogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgbW91c2VYID0gMDtcclxuICBtb3VzZVkgPSAwO1xyXG4gIHByZXZpZXdDbG9uZXM6IEhUTUxFbGVtZW50W10gPSBbXTtcclxuXHJcbm5nT25Jbml0KCkge1xyXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgdGhpcy5tb3VzZVggPSBldmVudC5jbGllbnRYO1xyXG4gICAgdGhpcy5tb3VzZVkgPSBldmVudC5jbGllbnRZO1xyXG4gIH0pO1xyXG59XHJcblxyXG5uZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgdGhpcy5jcmVhdGVEcm9wT3ZlcmxheSgpO1xyXG59XHJcblxyXG4gIGRyb3BPdmVybGF5ITogSFRNTERpdkVsZW1lbnQ7XHJcblxyXG4gIGNyZWF0ZURyb3BPdmVybGF5KCkge1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5pbm5lclRleHQgPSAnU29sdGFyJztcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5iYWNrZ3JvdW5kID0gJyNCRkRCRkUnOyAvLyBBenVsIGNsYXJvIHZpc8OtdmVsXHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmNvbG9yID0gJyMxRTNBOEEnOyAvLyBBenVsIGVzY3VybyBwcm8gdGV4dG9cclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuYm9yZGVyID0gJzlweCAjMUU0MEFGJzsgLy8gQm9yZGEgYXp1bCBlc2N1cm9cclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuYm94U2hhZG93ID0gJzAgMnB4IDZweCByZ2JhKDMwLCA1OCwgMTM4LCAwLjIpJzsgLy8gU2hhZG93IHJlZHV6aWRhXHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2NlbnRlcic7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmFsaWduSXRlbXMgPSAnY2VudGVyJztcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuekluZGV4ID0gJzk5OTknO1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5mb250U2l6ZSA9ICcxLjVyZW0nO1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5mb250V2VpZ2h0ID0gJ2JvbGQnO1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ2FsbCc7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLnRyYW5zaXRpb24gPSAnYWxsIDAuMnMgZWFzZSc7XHJcblxyXG5cclxuICAgIC8vIEVuY2FpeGFyIG5vIG1lc21vIGx1Z2FyIGRvIHRhcmdldFxyXG4gICAgY29uc3QgdGFyZ2V0TGlzdEVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnAtcGlja2xpc3QtdGFyZ2V0JykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAodGFyZ2V0TGlzdEVsKSB7XHJcbiAgICAgIGNvbnN0IHJlY3QgPSB0YXJnZXRMaXN0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUudG9wID0gcmVjdC50b3AgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmxlZnQgPSByZWN0LmxlZnQgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLndpZHRoID0gcmVjdC53aWR0aCArICdweCc7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuaGVpZ2h0ID0gcmVjdC5oZWlnaHQgKyAncHgnO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkSW5Tb3VyY2UgPSB0aGlzLnNvdXJjZS5zb21lKGl0ZW0gPT4gdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1bdGhpcy5pdGVtSWRGaWVsZF1dKTtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJblRhcmdldCA9IHRoaXMudGFyZ2V0LnNvbWUoaXRlbSA9PiB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbVt0aGlzLml0ZW1JZEZpZWxkXV0pO1xyXG4gICAgXHJcbiAgICAgIGlmIChzZWxlY3RlZEluU291cmNlKSB7XHJcbiAgICAgICAgdGhpcy5Pbk1vdmVUb1RhcmdldCh7fSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRJblRhcmdldCkge1xyXG4gICAgICAgIHRoaXMuT25Nb3ZlVG9Tb3VyY2Uoe30pO1xyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgdGhpcy5oaWRlRHJvcE92ZXJsYXkoKTtcclxuICAgIH0pO1xyXG4gICAgXHJcblxyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmJhY2tncm91bmQgPSAnIzkzQzVGRCc7IC8vIEF6dWwgdW0gcG91Y28gbWFpcyBlc2N1cm8gbm8gaG92ZXJcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmJhY2tncm91bmQgPSAnI0JGREJGRSc7XHJcbiAgICB9KTtcclxuICAgIFxyXG5cclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5kcm9wT3ZlcmxheSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgaGFuZGxlTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlWCA9IGV2ZW50LmNsaWVudFg7XHJcbiAgICB0aGlzLm1vdXNlWSA9IGV2ZW50LmNsaWVudFk7XHJcbiAgfVxyXG5cclxuICBjbGVhclByZXZpZXdDbG9uZXMoKSB7XHJcbiAgICB0aGlzLnByZXZpZXdDbG9uZXMuZm9yRWFjaChjbG9uZSA9PiBjbG9uZS5yZW1vdmUoKSk7XHJcbiAgICB0aGlzLnByZXZpZXdDbG9uZXMgPSBbXTtcclxuICB9XHJcbiAgXHJcbiAgT25Nb3ZlVG9Tb3VyY2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jbGVhclByZXZpZXdDbG9uZXMoKTtcclxuICAgIHRoaXMucGlja2xpc3QubW92ZUxlZnQoKTtcclxuICAgIHRoaXMub25Nb3ZlVG9Tb3VyY2UuZW1pdChldmVudCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB7fTtcclxuICAgIHRoaXMuaGlkZURyb3BPdmVybGF5KClcclxuICAgIHRoaXMuY2xlYXJQcmV2aWV3Q2xvbmVzKCk7XHJcbiAgfVxyXG4gIFxyXG4gIE9uTW92ZVRvVGFyZ2V0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY2xlYXJQcmV2aWV3Q2xvbmVzKCk7XHJcbiAgICB0aGlzLnBpY2tsaXN0Lm1vdmVSaWdodCgpO1xyXG4gICAgdGhpcy5vbk1vdmVUb1RhcmdldC5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHt9O1xyXG4gICAgdGhpcy5oaWRlRHJvcE92ZXJsYXkoKVxyXG4gICAgdGhpcy5jbGVhclByZXZpZXdDbG9uZXMoKTtcclxuICB9XHJcbiAgXHJcblxyXG4gIGdldFNlbGVjdGVkSXRlbXMoKTogYW55W10ge1xyXG4gICAgLy8gRmlsdHJhIG9zIGl0ZW5zIGRhIGxpc3RhIGRlIG9yaWdlbSAoc291cmNlKSBjb20gYmFzZSBub3MgaXRlbnMgc2VsZWNpb25hZG9zXHJcbiAgICByZXR1cm4gdGhpcy5zb3VyY2UuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICBjb25zdCBpdGVtSWQgPSBpdGVtW3RoaXMuaXRlbUlkRmllbGRdOyAvLyBPYnTDqW0gbyBJRCBkbyBpdGVtXHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXSA9PT0gdHJ1ZTsgLy8gVmVyaWZpY2Egc2UgZXN0w6EgbWFyY2FkbyBjb21vIHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgT25Nb3ZlQWxsVG9Tb3VyY2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbk1vdmVUb1NvdXJjZS5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHt9O1xyXG4gICAgdGhpcy5oaWRlRHJvcE92ZXJsYXkoKVxyXG4gICAgdGhpcy5jbGVhclByZXZpZXdDbG9uZXMoKTtcclxuICB9XHJcblxyXG4gIE9uTW92ZUFsbFRvVGFyZ2V0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25Nb3ZlVG9UYXJnZXQuZW1pdChldmVudCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB7fTtcclxuICAgIHRoaXMuaGlkZURyb3BPdmVybGF5KClcclxuICAgIHRoaXMuY2xlYXJQcmV2aWV3Q2xvbmVzKCk7XHJcbiAgfVxyXG5cclxuICBPblNvdXJjZVNlbGVjdChldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5nZXRTZWxlY3RlZEl0ZW1zKCk7XHJcbiAgXHJcbiAgICAvLyBQcmltZWlybyByZW1vdmUgdG9kb3Mgb3MgcHJldmlld3MgYW50aWdvc1xyXG4gICAgdGhpcy5jbGVhclByZXZpZXdDbG9uZXMoKTtcclxuICBcclxuICAgIGlmIChzZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmhpZGVEcm9wT3ZlcmxheSgpO1xyXG4gICAgICB0aGlzLm9uU291cmNlU2VsZWN0LmVtaXQoZXZlbnQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgXHJcbiAgICBzZWxlY3RlZEl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtSWQgPSBpdGVtW3RoaXMuaXRlbUlkRmllbGRdO1xyXG4gIFxyXG4gICAgICAvLyBTZSBqw6EgZXhpc3RlIHVtIGNsb25lIHBhcmEgZXNzZSBpdGVtLCBuw6NvIGNyaWEgbm92YW1lbnRlXHJcbiAgICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByZXZpZXdfJyArIGl0ZW1JZCkpIHtcclxuICAgICAgICBjb25zdCBvcmlnaW5hbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZF9waWNrX2xpc3QnICsgaXRlbUlkKTtcclxuICAgICAgICBpZiAob3JpZ2luYWwpIHtcclxuICAgICAgICAgIGNvbnN0IHJlY3QgPSBvcmlnaW5hbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgIGNvbnN0IGNsb25lID0gb3JpZ2luYWwuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgY2xvbmUuY2xhc3NMaXN0LmFkZCgnZHJhZy1wcmV2aWV3LWNsb25lJyk7XHJcbiAgICAgICAgICBjbG9uZS5jbGFzc0xpc3QuYWRkKGBsZXZlbC0ke2luZGV4ICsgMX1gKTtcclxuICAgICAgICAgIGNsb25lLmlkID0gJ3ByZXZpZXdfJyArIGl0ZW1JZDtcclxuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2xvbmUpO1xyXG4gICAgICAgICAgdGhpcy5wcmV2aWV3Q2xvbmVzLnB1c2goY2xvbmUpO1xyXG4gICAgICAgICAgdGhpcy5hbmltYXRlQ2xvbmVUb0N1cnNvcihjbG9uZSwgcmVjdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBcclxuICAgIHRoaXMuc2hvd0Ryb3BPdmVybGF5KCk7XHJcbiAgICB0aGlzLm9uU291cmNlU2VsZWN0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBcclxuICBnZXRJdGVtSWQoaXRlbTogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpdGVtPy5bdGhpcy5pdGVtSWRGaWVsZF07XHJcbiAgfVxyXG4gIFxyXG5cclxuICBzaG93RHJvcE92ZXJsYXkoKSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZEluU291cmNlID0gdGhpcy5zb3VyY2Uuc29tZShpdGVtID0+IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtW3RoaXMuaXRlbUlkRmllbGRdXSk7XHJcbiAgICBjb25zdCBzZWxlY3RlZEluVGFyZ2V0ID0gdGhpcy50YXJnZXQuc29tZShpdGVtID0+IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtW3RoaXMuaXRlbUlkRmllbGRdXSk7XHJcbiAgXHJcbiAgICBsZXQgdGFyZ2V0TGlzdEVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIFxyXG4gICAgaWYgKHNlbGVjdGVkSW5Tb3VyY2UpIHtcclxuICAgICAgLy8gSXRlbnMgc2VsZWNpb25hZG9zIG5hIGxpc3RhIGRhIGVzcXVlcmRhIOKGkiBvdmVybGF5IG5vIGxhZG8gZGlyZWl0b1xyXG4gICAgICB0YXJnZXRMaXN0RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1waWNrbGlzdC10YXJnZXQnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgdGhpcy5kcm9wT3ZlcmxheS5pbm5lclRleHQgPSAnU29sdGFyIGFxdWkgcGFyYSBtb3Zlcic7XHJcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkSW5UYXJnZXQpIHtcclxuICAgICAgLy8gSXRlbnMgc2VsZWNpb25hZG9zIG5hIGxpc3RhIGRhIGRpcmVpdGEg4oaSIG92ZXJsYXkgbm8gbGFkbyBlc3F1ZXJkb1xyXG4gICAgICB0YXJnZXRMaXN0RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1waWNrbGlzdC1zb3VyY2UnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgdGhpcy5kcm9wT3ZlcmxheS5pbm5lclRleHQgPSAnU29sdGFyIGFxdWkgcGFyYSByZXRvcm5hcic7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBpZiAodGFyZ2V0TGlzdEVsKSB7XHJcbiAgICAgIGNvbnN0IHJlY3QgPSB0YXJnZXRMaXN0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUudG9wID0gcmVjdC50b3AgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmxlZnQgPSByZWN0LmxlZnQgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLndpZHRoID0gcmVjdC53aWR0aCArICdweCc7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuaGVpZ2h0ID0gcmVjdC5oZWlnaHQgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIGhpZGVEcm9wT3ZlcmxheSgpIHtcclxuICAgIGlmICh0aGlzLmRyb3BPdmVybGF5KSB7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgXHJcbiAgYW5pbWF0ZUNsb25lVG9DdXJzb3IoY2xvbmU6IEhUTUxFbGVtZW50LCBvcmlnaW5SZWN0OiBET01SZWN0KSB7XHJcbiAgICAvLyBDb21lw6dhIGV4YXRhbWVudGUgZGEgcG9zacOnw6NvIGRvIG9yaWdpbmFsXHJcbiAgICBsZXQgcG9zWCA9IG9yaWdpblJlY3QubGVmdDtcclxuICAgIGxldCBwb3NZID0gb3JpZ2luUmVjdC50b3A7XHJcbiAgXHJcbiAgICBjbG9uZS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICBjbG9uZS5zdHlsZS5sZWZ0ID0gYCR7cG9zWH1weGA7XHJcbiAgICBjbG9uZS5zdHlsZS50b3AgPSBgJHtwb3NZfXB4YDtcclxuICAgIGNsb25lLnN0eWxlLndpZHRoID0gYCR7b3JpZ2luUmVjdC53aWR0aH1weGA7XHJcbiAgICBjbG9uZS5zdHlsZS5oZWlnaHQgPSBgJHtvcmlnaW5SZWN0LmhlaWdodH1weGA7XHJcbiAgICBjbG9uZS5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xyXG4gIFxyXG4gICAgY29uc3QgYW5pbWF0ZSA9ICgpID0+IHtcclxuICAgICAgY29uc3QgZHggPSB0aGlzLm1vdXNlWCAtIHBvc1g7XHJcbiAgICAgIGNvbnN0IGR5ID0gdGhpcy5tb3VzZVkgLSBwb3NZO1xyXG4gIFxyXG4gICAgICBwb3NYICs9IGR4ICogMC4xNTtcclxuICAgICAgcG9zWSArPSBkeSAqIDAuMTU7XHJcbiAgXHJcbiAgICAgIGNsb25lLnN0eWxlLmxlZnQgPSBgJHtwb3NYfXB4YDtcclxuICAgICAgY2xvbmUuc3R5bGUudG9wID0gYCR7cG9zWX1weGA7XHJcbiAgXHJcbiAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGNsb25lKSkge1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICBcclxuICAgIGFuaW1hdGUoKTtcclxuICB9XHJcbiAgXHJcbiAgXHJcblxyXG4gIE9uVGFyZ2V0U2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLnRhcmdldC5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF07XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXSA9PT0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIFxyXG4gICAgLy8gTGltcGEgY2xvbmVzIGFudGlnb3NcclxuICAgIHRoaXMuY2xlYXJQcmV2aWV3Q2xvbmVzKCk7XHJcbiAgXHJcbiAgICBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5oaWRlRHJvcE92ZXJsYXkoKTtcclxuICAgICAgdGhpcy5vblRhcmdldFNlbGVjdC5lbWl0KGV2ZW50KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgaXRlbUlkID0gaXRlbVt0aGlzLml0ZW1JZEZpZWxkXTtcclxuICBcclxuICAgICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJldmlld18nICsgaXRlbUlkKSkge1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lkX3BpY2tfbGlzdCcgKyBpdGVtSWQpO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbCkge1xyXG4gICAgICAgICAgY29uc3QgcmVjdCA9IG9yaWdpbmFsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgY29uc3QgY2xvbmUgPSBvcmlnaW5hbC5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICBjbG9uZS5jbGFzc0xpc3QuYWRkKCdkcmFnLXByZXZpZXctY2xvbmUnKTtcclxuICAgICAgICAgIGNsb25lLmNsYXNzTGlzdC5hZGQoYGxldmVsLSR7aW5kZXggKyAxfWApO1xyXG4gICAgICAgICAgY2xvbmUuaWQgPSAncHJldmlld18nICsgaXRlbUlkO1xyXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjbG9uZSk7XHJcbiAgICAgICAgICB0aGlzLnByZXZpZXdDbG9uZXMucHVzaChjbG9uZSk7XHJcbiAgICAgICAgICB0aGlzLmFuaW1hdGVDbG9uZVRvQ3Vyc29yKGNsb25lLCByZWN0KTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBcclxuICAgIHRoaXMuc2hvd0Ryb3BPdmVybGF5KCk7XHJcbiAgICB0aGlzLm9uVGFyZ2V0U2VsZWN0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBcclxuXHJcbiAgb25TZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLnNlbGVjdEFsbEl0ZW1zKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsSXRlbXMoaXNTZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zb3VyY2UuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgY29uc3QgaXRlbUlkID0gaXRlbVt0aGlzLml0ZW1JZEZpZWxkXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF0gPSBpc1NlbGVjdGVkO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy50YXJnZXQuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgY29uc3QgaXRlbUlkID0gaXRlbVt0aGlzLml0ZW1JZEZpZWxkXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF0gPSBpc1NlbGVjdGVkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIGV2ZW50LmtleSA9PT0gJ2EnKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMub25TZWxlY3RBbGwoKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgXHJcbiAgICAgIGNvbnN0IHNvdXJjZVNlbGVjdGVkID0gdGhpcy5waWNrbGlzdC5zZWxlY3RlZEl0ZW1zU291cmNlO1xyXG4gIFxyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zSWRzID0gT2JqZWN0LmVudHJpZXModGhpcy5zZWxlY3RlZEl0ZW1zKVxyXG4gICAgICAgIC5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+IHZhbHVlID09PSB0cnVlKVxyXG4gICAgICAgIC5tYXAoKFtrZXksIF9dKSA9PiBOdW1iZXIoa2V5KSk7XHJcbiAgXHJcbiAgICAgIGNvbnN0IG5vdEluU2VsZWN0ZWQgPSBzb3VyY2VTZWxlY3RlZC5maW5kKFxyXG4gICAgICAgIChpdGVtOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PlxyXG4gICAgICAgICAgIXNlbGVjdGVkSXRlbXNJZHMuaW5jbHVkZXMoaXRlbVt0aGlzLml0ZW1JZEZpZWxkXSlcclxuICAgICAgKTtcclxuICBcclxuICAgICAgY29uc3QgaW5kZXhJblNvdXJjZSA9IHRoaXMuc291cmNlLmZpbmRJbmRleChcclxuICAgICAgICAoaXRlbTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkgPT5cclxuICAgICAgICAgIGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF0gPT09IG5vdEluU2VsZWN0ZWQ/Llt0aGlzLml0ZW1JZEZpZWxkXVxyXG4gICAgICApO1xyXG4gIFxyXG4gICAgICBjb25zdCB1bHRpbW9JdGVtQXJyYXkgPSB7XHJcbiAgICAgICAgaXRlbTogbm90SW5TZWxlY3RlZCxcclxuICAgICAgICBpbmRleDogaW5kZXhJblNvdXJjZSxcclxuICAgICAgfTtcclxuICBcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleEluU291cmNlID0gdGhpcy5zb3VyY2UuZmluZEluZGV4KChzb3VyY2VJdGVtOiBhbnkpID0+XHJcbiAgICAgICAgc2VsZWN0ZWRJdGVtc0lkcy5pbmNsdWRlcyhzb3VyY2VJdGVtW3RoaXMuaXRlbUlkRmllbGRdKVxyXG4gICAgICApO1xyXG4gIFxyXG4gICAgICBpZiAobm90SW5TZWxlY3RlZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgY29uc3QgYmVmb3JlSWRzID0gdGhpcy51bHRpbW9JdGVtU2VsZWNpb25hZG8ubWFwKGkgPT4gaS5pdGVtW3RoaXMuaXRlbUlkRmllbGRdKTtcclxuICAgICAgICBjb25zdCBhZnRlcklkcyA9IHRoaXMucGlja2xpc3Quc2VsZWN0ZWRJdGVtc1NvdXJjZS5tYXAoaSA9PiBpW3RoaXMuaXRlbUlkRmllbGRdKTtcclxuICAgICAgXHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZElkID0gYmVmb3JlSWRzLmZpbmQoaWQgPT4gIWFmdGVySWRzLmluY2x1ZGVzKGlkKSk7XHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgICBpZiAocmVtb3ZlZElkICE9IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IHJlbW92ZWRJdGVtID0gdGhpcy5zb3VyY2UuZmluZChpdGVtID0+IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF0gPT09IHJlbW92ZWRJZCk7XHJcbiAgICAgICAgICBpZiAocmVtb3ZlZEl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RDaGVja0JveChyZW1vdmVkSXRlbSk7XHJcbiAgICAgICAgICAgIHRoaXMudWx0aW1vSXRlbVNlbGVjaW9uYWRvID0gdGhpcy51bHRpbW9JdGVtU2VsZWNpb25hZG8uZmlsdGVyKFxyXG4gICAgICAgICAgICAgIChpKSA9PiBpLml0ZW1bdGhpcy5pdGVtSWRGaWVsZF0gIT09IHJlbW92ZWRJZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBlbnRlcklkcyA9IHRoaXMudWx0aW1vSXRlbVNlbGVjaW9uYWRvLm1hcChpID0+IGkuaXRlbVt0aGlzLml0ZW1JZEZpZWxkXSk7XHJcblxyXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtc0lkcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuc2VsZWN0ZWRJdGVtcylcclxuICAgICAgICAgICAgLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgPT09IHRydWUpXHJcbiAgICAgICAgICAgIC5tYXAoKFtrZXksIF9dKSA9PiBOdW1iZXIoa2V5KSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGNvbnN0IGNsaWNrZWRJZHMgPSBzZWxlY3RlZEl0ZW1zSWRzLmZpbHRlcihpZCA9PiAhZW50ZXJJZHMuaW5jbHVkZXMoaWQpKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNsaWNrZWRJZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBjbGlja2VkSXRlbSA9IHRoaXMuc291cmNlLmZpbmQoaXRlbSA9PiBpdGVtW3RoaXMuaXRlbUlkRmllbGRdID09PSBjbGlja2VkSWRzWzBdKTtcclxuICAgICAgICAgICAgaWYgKGNsaWNrZWRJdGVtKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RDaGVja0JveChjbGlja2VkSXRlbSk7XHJcbiAgICAgICAgICAgICAgdGhpcy51bHRpbW9JdGVtU2VsZWNpb25hZG8gPSB0aGlzLnVsdGltb0l0ZW1TZWxlY2lvbmFkby5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAoaSkgPT4gaS5pdGVtW3RoaXMuaXRlbUlkRmllbGRdICE9PSBjbGlja2VkSWRzWzBdXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICBcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIFxyXG4gIFxyXG4gICAgICB0aGlzLnNlbGVjdENoZWNrQm94KG5vdEluU2VsZWN0ZWQpO1xyXG4gIFxyXG4gICAgICB0aGlzLnVsdGltb0l0ZW1TZWxlY2lvbmFkbyA9IHRoaXMudWx0aW1vSXRlbVNlbGVjaW9uYWRvLmZpbHRlcihcclxuICAgICAgICAoaXRlbSkgPT4gaXRlbS5pbmRleCAhPT0gaW5kZXhJblNvdXJjZVxyXG4gICAgICApO1xyXG4gIFxyXG4gICAgICB0aGlzLnVsdGltb0l0ZW1TZWxlY2lvbmFkby5wdXNoKHVsdGltb0l0ZW1BcnJheSk7XHJcbiAgXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBzZWxlY3RDaGVja0JveChpdGVtOiBhbnkpIHtcclxuICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF07XHJcblxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3ID0gaXRlbTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXSA9IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtSWRdICE9PSB1bmRlZmluZWRcclxuICAgICAgPyAhdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF1cclxuICAgICAgOiB0cnVlO1xyXG5cclxuXHJcbiAgICB0aGlzLm5nTW9kZWwgPSB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXTtcclxuXHJcbiAgfVxyXG5cclxuICBpc0l0ZW1TZWxlY3RlZChpdGVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUHJldmlldyA9PT0gaXRlbTtcclxuICB9XHJcbn1cclxuIiwiPHAtcGlja0xpc3RcclxuICBbc291cmNlXT1cInNvdXJjZVwiXHJcbiAgW3NvdXJjZUhlYWRlcl09XCJzb3VyY2VIZWFkZXJcIlxyXG4gIFtzb3VyY2VTdHlsZV09XCJzb3VyY2VTdHlsZVwiXHJcbiAgW3RhcmdldF09XCJ0YXJnZXRcIiBcclxuICBbdGFyZ2V0SGVhZGVyXT1cInRhcmdldEhlYWRlclwiXHJcbiAgW3RhcmdldFN0eWxlXT1cInRhcmdldFN0eWxlXCJcclxuICBbZHJhZ2Ryb3BdPVwiZHJhZ2Ryb3BcIlxyXG4gIFtyZXNwb25zaXZlXT1cInJlc3BvbnNpdmVcIlxyXG4gIFtmaWx0ZXJCeV09XCJmaWx0ZXJCeVwiXHJcbiAgW2JyZWFrcG9pbnRdPVwiYnJlYWtwb2ludFwiXHJcbiAgW3N0cmlwZWRSb3dzXT1cInN0cmlwZWRSb3dzXCJcclxuICBbc2hvd1NvdXJjZUNvbnRyb2xzXT1cInNob3dTb3VyY2VDb250cm9sc1wiXHJcbiAgW3Nob3dUYXJnZXRDb250cm9sc109XCJzaG93VGFyZ2V0Q29udHJvbHNcIlxyXG4gIChvbk1vdmVUb1NvdXJjZSk9XCJPbk1vdmVUb1NvdXJjZSgkZXZlbnQpXCJcclxuICAob25Nb3ZlVG9UYXJnZXQpPVwiT25Nb3ZlVG9UYXJnZXQoJGV2ZW50KVwiXHJcbiAgKG9uTW92ZUFsbFRvU291cmNlKT1cIk9uTW92ZUFsbFRvU291cmNlKCRldmVudClcIlxyXG4gIChvbk1vdmVBbGxUb1RhcmdldCk9XCJPbk1vdmVBbGxUb1RhcmdldCgkZXZlbnQpXCJcclxuICAob25Tb3VyY2VTZWxlY3QpPVwiT25Tb3VyY2VTZWxlY3QoJGV2ZW50KVwiXHJcbiAgKG9uVGFyZ2V0U2VsZWN0KT1cIk9uVGFyZ2V0U2VsZWN0KCRldmVudClcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlICBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCIgKm5nSWY9XCJpdGVtVGVtcGxhdGVcIiA+XHJcbiAgICAgIDxkaXYgKGNsaWNrKT1cInNlbGVjdENoZWNrQm94KGl0ZW0pXCIgY2xhc3M9XCJmbGV4IG1yLTVcIiBbaWRdPVwiJ2lkX3BpY2tfbGlzdCcgKyBnZXRJdGVtSWQoaXRlbSlcIlxyXG4gICAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj5cclxuICAgICAgICBAaWYoc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgICAgIDxrdi1jaGVjayAob25DaGVja0NoYW5nZSk9XCJzZWxlY3RDaGVja0JveChpdGVtKVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRJdGVtc1tpdGVtW2l0ZW1JZEZpZWxkXV1cIiBjbGFzcz1cIm1yLTFcIj48L2t2LWNoZWNrPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PiBcclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtcGlja0xpc3Q+XHJcbiJdfQ==
|
|
@@ -7217,6 +7217,9 @@ class KvPickListComponent {
|
|
|
7217
7217
|
this.showDropOverlay();
|
|
7218
7218
|
this.onSourceSelect.emit(event);
|
|
7219
7219
|
}
|
|
7220
|
+
getItemId(item) {
|
|
7221
|
+
return item?.[this.itemIdField];
|
|
7222
|
+
}
|
|
7220
7223
|
showDropOverlay() {
|
|
7221
7224
|
const selectedInSource = this.source.some(item => this.selectedItems[item[this.itemIdField]]);
|
|
7222
7225
|
const selectedInTarget = this.target.some(item => this.selectedItems[item[this.itemIdField]]);
|
|
@@ -7373,11 +7376,11 @@ class KvPickListComponent {
|
|
|
7373
7376
|
return this.selectedPreview === item;
|
|
7374
7377
|
}
|
|
7375
7378
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListComponent, deps: [{ token: i2$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7376
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPickListComponent, selector: "kv-picklist", inputs: { itemIdField: "itemIdField", breakpoint: "breakpoint", dragdrop: "dragdrop", filterBy: "filterBy", itemTemplate: "itemTemplate", responsive: "responsive", source: "source", sourceHeader: "sourceHeader", sourceStyle: "sourceStyle", stripedRows: "stripedRows", target: "target", targetHeader: "targetHeader", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls", showCheckBox: "showCheckBox" }, outputs: { onMoveToSource: "onMoveToSource", onMoveToTarget: "onMoveToTarget", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect" }, viewQueries: [{ propertyName: "picklist", first: true, predicate: PickList, descendants: true }], ngImport: i0, template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\" \r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\" >\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\" [id]=\"'id_pick_list'+item.idindicativolotacao\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox) {\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}:host ::ng-deep .p-picklist .p-picklist-filter-container{border-left:0px;border-right:0px}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}@keyframes shake-base{0%{transform:translate(0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}to{transform:translate(-1px,-1px)}}.drag-preview-clone{animation-name:shake-base;animation-duration:.25s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;position:fixed;z-index:9999;opacity:.85;pointer-events:none;transition:transform .1s ease;box-shadow:0 10px 20px #0003;border-radius:6px;padding:8px;background-color:#fff}.drag-preview-clone.level-1{margin-top:.5rem}.drag-preview-clone.level-2{margin-bottom:1rem}.drag-preview-clone.level-3{margin-left:.5rem}\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-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,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,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}: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:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::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}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\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: i1$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4$1.PickList, selector: "p-pickList", inputs: ["source", "target", "sourceHeader", "tabindex", "rightButtonAriaLabel", "leftButtonAriaLabel", "allRightButtonAriaLabel", "allLeftButtonAriaLabel", "upButtonAriaLabel", "downButtonAriaLabel", "topButtonAriaLabel", "bottomButtonAriaLabel", "targetHeader", "responsive", "filterBy", "filterLocale", "trackBy", "sourceTrackBy", "targetTrackBy", "showSourceFilter", "showTargetFilter", "metaKeySelection", "dragdrop", "style", "styleClass", "sourceStyle", "targetStyle", "showSourceControls", "showTargetControls", "sourceFilterPlaceholder", "targetFilterPlaceholder", "disabled", "ariaSourceFilterLabel", "ariaTargetFilterLabel", "filterMatchMode", "stripedRows", "keepSelection", "breakpoint"], outputs: ["onMoveToSource", "onMoveAllToSource", "onMoveAllToTarget", "onMoveToTarget", "onSourceReorder", "onTargetReorder", "onSourceSelect", "onTargetSelect", "onSourceFilter", "onTargetFilter", "onFocus", "onBlur"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: KvCheckComponent, selector: "kv-check", outputs: ["onCheckChange"] }] }); }
|
|
7379
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPickListComponent, selector: "kv-picklist", inputs: { itemIdField: "itemIdField", breakpoint: "breakpoint", dragdrop: "dragdrop", filterBy: "filterBy", itemTemplate: "itemTemplate", responsive: "responsive", source: "source", sourceHeader: "sourceHeader", sourceStyle: "sourceStyle", stripedRows: "stripedRows", target: "target", targetHeader: "targetHeader", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls", showCheckBox: "showCheckBox" }, outputs: { onMoveToSource: "onMoveToSource", onMoveToTarget: "onMoveToTarget", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect" }, viewQueries: [{ propertyName: "picklist", first: true, predicate: PickList, descendants: true }], ngImport: i0, template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\" \r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\" >\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\" [id]=\"'id_pick_list' + getItemId(item)\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox) {\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}:host ::ng-deep .p-picklist .p-picklist-filter-container{border-left:0px;border-right:0px}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}@keyframes shake-base{0%{transform:translate(0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}to{transform:translate(-1px,-1px)}}.drag-preview-clone{animation-name:shake-base;animation-duration:.25s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;position:fixed;z-index:9999;opacity:.85;pointer-events:none;transition:transform .1s ease;box-shadow:0 10px 20px #0003;border-radius:6px;padding:8px;background-color:#fff}.drag-preview-clone.level-1{margin-top:.5rem}.drag-preview-clone.level-2{margin-bottom:1rem}.drag-preview-clone.level-3{margin-left:.5rem}\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-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,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,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}: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:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::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}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\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: i1$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4$1.PickList, selector: "p-pickList", inputs: ["source", "target", "sourceHeader", "tabindex", "rightButtonAriaLabel", "leftButtonAriaLabel", "allRightButtonAriaLabel", "allLeftButtonAriaLabel", "upButtonAriaLabel", "downButtonAriaLabel", "topButtonAriaLabel", "bottomButtonAriaLabel", "targetHeader", "responsive", "filterBy", "filterLocale", "trackBy", "sourceTrackBy", "targetTrackBy", "showSourceFilter", "showTargetFilter", "metaKeySelection", "dragdrop", "style", "styleClass", "sourceStyle", "targetStyle", "showSourceControls", "showTargetControls", "sourceFilterPlaceholder", "targetFilterPlaceholder", "disabled", "ariaSourceFilterLabel", "ariaTargetFilterLabel", "filterMatchMode", "stripedRows", "keepSelection", "breakpoint"], outputs: ["onMoveToSource", "onMoveAllToSource", "onMoveAllToTarget", "onMoveToTarget", "onSourceReorder", "onTargetReorder", "onSourceSelect", "onTargetSelect", "onSourceFilter", "onTargetFilter", "onFocus", "onBlur"] }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: KvCheckComponent, selector: "kv-check", outputs: ["onCheckChange"] }] }); }
|
|
7377
7380
|
}
|
|
7378
7381
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListComponent, decorators: [{
|
|
7379
7382
|
type: Component,
|
|
7380
|
-
args: [{ selector: 'kv-picklist', template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\" \r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\" >\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\" [id]=\"'id_pick_list'+item
|
|
7383
|
+
args: [{ selector: 'kv-picklist', template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\" \r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\" >\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\" [id]=\"'id_pick_list' + getItemId(item)\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox) {\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}:host ::ng-deep .p-picklist .p-picklist-filter-container{border-left:0px;border-right:0px}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}@keyframes shake-base{0%{transform:translate(0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}to{transform:translate(-1px,-1px)}}.drag-preview-clone{animation-name:shake-base;animation-duration:.25s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;position:fixed;z-index:9999;opacity:.85;pointer-events:none;transition:transform .1s ease;box-shadow:0 10px 20px #0003;border-radius:6px;padding:8px;background-color:#fff}.drag-preview-clone.level-1{margin-top:.5rem}.drag-preview-clone.level-2{margin-bottom:1rem}.drag-preview-clone.level-3{margin-left:.5rem}\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-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,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,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}: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:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::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}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"] }]
|
|
7381
7384
|
}], ctorParameters: () => [{ type: i2$2.FormBuilder }], propDecorators: { picklist: [{
|
|
7382
7385
|
type: ViewChild,
|
|
7383
7386
|
args: [PickList]
|