verben-ng-ui 1.5.9 → 1.6.1
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/src/lib/components/data-view/data-view.component.mjs +3 -3
- package/esm2022/src/lib/components/svg/lib-icon-manifest.mjs +104 -0
- package/esm2022/src/lib/components/svg/svg.component.mjs +111 -76
- package/esm2022/src/lib/services/icon.service.mjs +15 -4
- package/esm2022/src/lib/verbena-input/verbena-input.component.mjs +2 -2
- package/esm2022/src/lib/verbena-textarea/verbena-textarea.component.mjs +2 -2
- package/fesm2022/verben-ng-ui-src-lib-components-data-view.mjs +2 -2
- package/fesm2022/verben-ng-ui-src-lib-components-data-view.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-components-svg.mjs +213 -75
- package/fesm2022/verben-ng-ui-src-lib-components-svg.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-services.mjs +14 -3
- package/fesm2022/verben-ng-ui-src-lib-services.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-verbena-input.mjs +2 -2
- package/fesm2022/verben-ng-ui-src-lib-verbena-input.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-verbena-textarea.mjs +2 -2
- package/fesm2022/verben-ng-ui-src-lib-verbena-textarea.mjs.map +1 -1
- package/package.json +96 -96
- package/src/lib/components/svg/lib-icon-manifest.d.ts +1 -0
- package/src/lib/components/svg/svg.component.d.ts +12 -3
- package/src/lib/services/icon.service.d.ts +1 -0
|
@@ -209,11 +209,11 @@ export class DataViewComponent {
|
|
|
209
209
|
this.searchValue = val;
|
|
210
210
|
}
|
|
211
211
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataViewComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
212
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: DataViewComponent, selector: "verben-data-view", inputs: { buttonClass: "buttonClass", iconClass: "iconClass", activeIconClass: "activeIconClass", columnCustomClass: "columnCustomClass", filterCustomClass: "filterCustomClass", sortCustomClass: "sortCustomClass", extendCustomClass: "extendCustomClass", exportCustomClass: "exportCustomClass", selectCustomClass: "selectCustomClass", importCustomClass: "importCustomClass", zIndex: "zIndex", createCustomClass: "createCustomClass", tableIcon: "tableIcon", cardIcon: "cardIcon", cardClass: "cardClass", tableClass: "tableClass", searchKey: "searchKey", searchValue: "searchValue", viewState: "viewState", searchTemplate: "searchTemplate", importTemplate: "importTemplate", columnTemplate: "columnTemplate", extendTemplate: "extendTemplate", filterTemplate: "filterTemplate", sortTemplate: "sortTemplate", children: "children", exportTemplate: "exportTemplate", createTemplate: "createTemplate", selectedColumnCount: "selectedColumnCount", selectedSortCount: "selectedSortCount", selectedFilterTableCount: "selectedFilterTableCount", inputWidth: "inputWidth", milliseconds: "milliseconds", showColumnChild: "showColumnChild", showSortChild: "showSortChild", showFilterChild: "showFilterChild", showImportChild: "showImportChild", showExportChild: "showExportChild", showExtendChild: "showExtendChild", create: "create", showSelected: "showSelected", useTwoWayBinding: "useTwoWayBinding", isTableView: "isTableView" }, outputs: { viewChange: "viewChange", stateChange: "stateChange", onSearchChange: "onSearchChange" }, viewQueries: [{ propertyName: "filterContentWrapper", first: true, predicate: ["filterContentWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"toolbar\">\n <div class=\"dv-search-group\">\n <div *ngIf=\"viewState.isToggle\" class=\"toggle-button-container\">\n <button type=\"button\" (click)=\"toggleView()\" [ngClass]=\"buttonClass\">\n <verben-svg\n [icon]=\"tableIcon\"\n [class.active]=\"!isTableView\"\n [ngClass]=\"!isTableView ? activeIconClass : iconClass\"\n ></verben-svg>\n <verben-svg\n [icon]=\"cardIcon\"\n [class.active]=\"isTableView\"\n [ngClass]=\"isTableView ? activeIconClass : iconClass\"\n [width]=\"25\"\n [height]=\"25\"\n ></verben-svg>\n </button>\n </div>\n <!-- Search Input -->\n <div\n [style.width]=\"inputWidth\"\n class=\"search-input\"\n *ngIf=\"viewState.isSearch\"\n >\n <verben-svg [icon]=\"'search2'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n <input\n *ngIf=\"!useTwoWayBinding\"\n [type]=\"'text'\"\n [placeholder]=\"'Search'\"\n (input)=\"onSearch($event)\"\n [style.border]=\"'0'\"\n [value]=\"searchValue\"\n />\n <input\n *ngIf=\"useTwoWayBinding\"\n [type]=\"'text'\"\n [placeholder]=\"'Search'\"\n (input)=\"onSearch($event)\"\n [style.border]=\"'0'\"\n [(ngModel)]=\"searchValue\"\n />\n <verben-svg\n *ngIf=\"searchValue.length > 0\"\n [icon]=\"'close'\"\n [width]=\"15\"\n (click)=\"onClearSearch()\"\n class=\"close-icon-class\"\n [height]=\"15\"\n ></verben-svg>\n </div>\n </div>\n <div class=\"relative dv-actions\">\n <!-- Column Section -->\n <ng-container\n [appOutSideClick]=\"showColumnChild\"\n (outSideClick)=\"closeChildView('column')\"\n *ngIf=\"viewState.isColumn && isTableView\"\n >\n <ng-container *ngIf=\"columnTemplate; else defaultColumn\"></ng-container>\n <ng-template #defaultColumn>\n <span\n [ngClass]=\"['dv-action', columnCustomClass ? columnCustomClass : '']\"\n [class.is-open]=\"showColumnChild\"\n (click)=\"toggleChildView('column')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'column'\"></verben-svg>\n <span>Columns</span\n ><span class=\"dv-count\">{{ selectedColumnCount }}</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n [style.display]=\"showColumnChild ? 'block' : 'none'\"\n >\n <!-- Kept in the DOM (hidden via display) rather than *ngIf so the\n projected panel stays change-detected and reflects host state\n updates (e.g. restored column arrangement) even while collapsed. -->\n <ng-content select=\"[column-content]\"></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Filter Section -->\n <ng-container\n [appOutSideClick]=\"showFilterChild\"\n (outSideClick)=\"closeChildView('filter')\"\n *ngIf=\"viewState.isFilter\"\n >\n <ng-container *ngIf=\"filterTemplate; else defaultFilter\"></ng-container>\n <ng-template #defaultFilter>\n <span\n [ngClass]=\"['dv-action', filterCustomClass ? filterCustomClass : '']\"\n [class.is-open]=\"showFilterChild\"\n (click)=\"toggleChildView('filter')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'filter'\"></verben-svg>\n <span>Filter</span\n ><span class=\"dv-count\">{{ selectedFilterTableCount }}</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n [style.display]=\"showFilterChild ? 'block' : 'none'\"\n >\n <!-- Kept in the DOM (hidden via display) rather than *ngIf so the\n projected panel stays change-detected and reflects host state\n updates (e.g. restored filters) even while collapsed. -->\n <ng-content select=\"[filter-content]\"></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!--import Section-->\n <ng-container\n [appOutSideClick]=\"showImportChild\"\n (outSideClick)=\"closeChildView('import')\"\n *ngIf=\"viewState.isImport\"\n >\n <ng-container *ngIf=\"importTemplate; else defaultImport\"></ng-container>\n <ng-template #defaultImport>\n <span\n [ngClass]=\"['dv-action', importCustomClass ? importCustomClass : '']\"\n [class.is-open]=\"showImportChild\"\n (click)=\"toggleChildView('import')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'file'\"></verben-svg>\n <span>Import</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n >\n <ng-content\n *ngIf=\"showImportChild\"\n select=\"[import-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!-- Sort Section -->\n <ng-container\n [appOutSideClick]=\"showSortChild\"\n (outSideClick)=\"closeChildView('sort')\"\n *ngIf=\"viewState.isSort\"\n >\n <ng-container *ngIf=\"sortTemplate; else defaultSort\"></ng-container>\n <ng-template #defaultSort>\n <span\n [ngClass]=\"['dv-action', sortCustomClass ? sortCustomClass : '']\"\n [class.is-open]=\"showSortChild\"\n (click)=\"toggleChildView('sort')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'sort'\"></verben-svg>\n <span>Sort</span><span class=\"dv-count\">{{ selectedSortCount }}</span>\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showSortChild\"\n select=\"[sort-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!--Extend Section-->\n <ng-container\n [appOutSideClick]=\"showExtendChild\"\n (outSideClick)=\"closeChildView('extend')\"\n *ngIf=\"viewState.isExtend\"\n >\n <ng-container *ngIf=\"extendTemplate; else defaultExtend\"></ng-container>\n <ng-template #defaultExtend>\n <span\n [ngClass]=\"['dv-action', importCustomClass ? extendCustomClass : '']\"\n [class.is-open]=\"showExtendChild\"\n (click)=\"toggleChildView('extend')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'extend'\"></verben-svg>\n <span>Extend</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n >\n <ng-content\n *ngIf=\"showImportChild\"\n select=\"[extend-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!-- Export Section -->\n <ng-container\n [appOutSideClick]=\"showExportChild\"\n (outSideClick)=\"closeChildView('export')\"\n *ngIf=\"viewState.isExport\"\n >\n <ng-container *ngIf=\"exportTemplate; else defaultExport\"></ng-container>\n <ng-template #defaultExport>\n <span\n [ngClass]=\"['dv-action', exportCustomClass ? exportCustomClass : '']\"\n [class.is-open]=\"showExportChild\"\n (click)=\"toggleChildView('export')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'export'\"></verben-svg>\n Export\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showExportChild\"\n select=\"[export-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Select Section -->\n <!-- <div *ngIf=\"viewState.isSelect\">\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n selectCustomClass ? selectCustomClass : ''\n ]\"\n [style.background-color]=\"'var(--vbn-color-surface-alt)'\"\n (click)=\"toggleChildView('select')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'select'\"></verben-svg>\n <span>Select</span>\n <verben-svg [width]=\"6\" [icon]=\"'chevron-down'\"></verben-svg>\n </span>\n </div> -->\n\n <!-- Create Button jj-->\n\n <div\n [appOutSideClick]=\"create\"\n (outSideClick)=\"closeChildView('create')\"\n *ngIf=\"viewState.isCreate\"\n >\n <verbena-button\n [bgColor]=\"'var(--vbn-color-primary)'\"\n [buttonClass]=\"createCustomClass\"\n [textColor]=\"'var(--vbn-color-on-primary)'\"\n [svg]=\"'add'\"\n [svgPosition]=\"'right'\"\n [text]=\"'Create New'\"\n (click)=\"toggleChildView('create')\"\n >\n </verbena-button>\n <ng-container *ngIf=\"createTemplate; else defaultCreate\"></ng-container>\n <ng-template #defaultCreate>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content *ngIf=\"create\" select=\"[create-content]\"></ng-content>\n </div>\n </ng-template>\n </div>\n\n <!-- Children / Custom action buttons -->\n <ng-container *ngIf=\"children; else defaultChildren\">\n <ng-container *ngTemplateOutlet=\"$any(children)\"></ng-container>\n </ng-container>\n <ng-template #defaultChildren>\n <ng-content select=\"[children]\"></ng-content>\n </ng-template>\n </div>\n</div>\n\n<!-- Grid and List View Handling -->\n<div *ngIf=\"isTableView; else listViewTemplate\">\n <div [style.overflow]=\"'auto'\" [class]=\"tableClass\">\n <ng-content select=\"[table-content]\"></ng-content>\n </div>\n</div>\n<ng-template #listViewTemplate>\n <div [class]=\"cardClass\">\n <ng-content select=\"[card-content]\"></ng-content>\n </div>\n</ng-template>\n", styles: [".toggle-button-container button{display:inline-flex;align-items:center;gap:2px;height:36px;padding:3px;box-sizing:border-box;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text-muted);cursor:pointer}.toggle-button-container button:focus-visible{outline:2px solid var(--vbn-color-border-focus);outline-offset:1px}.input-class{border:none;min-width:100%;display:block}.toggle-button-container verben-svg{display:inline-grid;place-items:center;width:28px;height:28px;box-sizing:border-box;padding:4px;border-radius:6px;transition:background-color .15s ease}.toggle-button-container verben-svg.active{background-color:var(--vbn-color-surface-alt);box-shadow:0 1px 2px #0000001a}.justify-end{justify-self:end}.flex{display:flex}.flex-1{flex:1}.justify-between{justify-content:space-between}.items-center{align-items:center}.font-semibold{font-weight:600}.font-normal{font-weight:400}.text-sm{font-size:14px}.text-xs{font-size:12px}.gap{gap:7px}.pd{padding:5px 8px}.rounded-sm{border-radius:10px}.cursor-pointer{cursor:pointer}.search-input{position:relative;display:flex;align-items:center;gap:8px;flex:0 1 auto;min-width:85px;max-width:100%;height:36px;box-sizing:border-box;padding:0 32px 0 10px;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text-muted);transition:border-color .15s ease,box-shadow .15s ease}.search-input:focus-within{border-color:var(--vbn-color-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--vbn-color-border-focus) 18%,transparent)}.search-input input{display:block;width:100%;min-width:0;padding:0;outline:0;background-color:transparent;color:var(--vbn-color-text);font:inherit;font-size:14px}.search-input input::placeholder{color:var(--vbn-color-text-muted);font-size:14px}sup{color:var(--vbn-color-border-focus);font-weight:500}.data-view-element{position:absolute;top:calc(100% + 6px);right:0;max-width:100%;text-align:left}.relative{position:relative}.z-10{z-index:100000000000}.close-icon-class{position:absolute;top:50%;right:8px;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;transform:translateY(-50%);cursor:pointer}.close-icon-class:hover{background-color:var(--vbn-color-surface-alt)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.dv-search-group{display:flex;align-items:center;gap:8px;flex:1 1 155px;min-width:0}.dv-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.dv-action{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;box-sizing:border-box;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text);font-size:12.5px;font-weight:500;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease,border-color .15s ease}.dv-action:hover{background-color:var(--vbn-color-surface-alt)}.dv-action.is-open{border-color:var(--vbn-color-text-muted);background-color:var(--vbn-color-surface-alt)}.dv-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:999px;background-color:var(--vbn-color-surface-alt);box-shadow:inset 0 0 0 1px var(--vbn-color-border);color:var(--vbn-color-text-muted);font-size:11px;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i3.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "styleType", "size", "block", "disable", "disabled", "isLoading", "spinnerSize", "spinnerColor", "svg", "svgPosition", "svgWidth", "svgHeight", "svgSize", "svgColor", "icon", "useIcon", "iconPosition", "iconColor", "variant", "weight", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "buttonClass", "buttonTextClass"] }, { kind: "directive", type: i4.OutSideClickDirective, selector: "[appOutSideClick]", inputs: ["appOutSideClick"], outputs: ["outSideClick"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
212
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: DataViewComponent, selector: "verben-data-view", inputs: { buttonClass: "buttonClass", iconClass: "iconClass", activeIconClass: "activeIconClass", columnCustomClass: "columnCustomClass", filterCustomClass: "filterCustomClass", sortCustomClass: "sortCustomClass", extendCustomClass: "extendCustomClass", exportCustomClass: "exportCustomClass", selectCustomClass: "selectCustomClass", importCustomClass: "importCustomClass", zIndex: "zIndex", createCustomClass: "createCustomClass", tableIcon: "tableIcon", cardIcon: "cardIcon", cardClass: "cardClass", tableClass: "tableClass", searchKey: "searchKey", searchValue: "searchValue", viewState: "viewState", searchTemplate: "searchTemplate", importTemplate: "importTemplate", columnTemplate: "columnTemplate", extendTemplate: "extendTemplate", filterTemplate: "filterTemplate", sortTemplate: "sortTemplate", children: "children", exportTemplate: "exportTemplate", createTemplate: "createTemplate", selectedColumnCount: "selectedColumnCount", selectedSortCount: "selectedSortCount", selectedFilterTableCount: "selectedFilterTableCount", inputWidth: "inputWidth", milliseconds: "milliseconds", showColumnChild: "showColumnChild", showSortChild: "showSortChild", showFilterChild: "showFilterChild", showImportChild: "showImportChild", showExportChild: "showExportChild", showExtendChild: "showExtendChild", create: "create", showSelected: "showSelected", useTwoWayBinding: "useTwoWayBinding", isTableView: "isTableView" }, outputs: { viewChange: "viewChange", stateChange: "stateChange", onSearchChange: "onSearchChange" }, viewQueries: [{ propertyName: "filterContentWrapper", first: true, predicate: ["filterContentWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"toolbar\">\n <div class=\"dv-search-group\">\n <div *ngIf=\"viewState.isToggle\" class=\"toggle-button-container\">\n <button type=\"button\" (click)=\"toggleView()\" [ngClass]=\"buttonClass\">\n <verben-svg\n [icon]=\"tableIcon\"\n [class.active]=\"!isTableView\"\n [ngClass]=\"!isTableView ? activeIconClass : iconClass\"\n ></verben-svg>\n <verben-svg\n [icon]=\"cardIcon\"\n [class.active]=\"isTableView\"\n [ngClass]=\"isTableView ? activeIconClass : iconClass\"\n [width]=\"25\"\n [height]=\"25\"\n ></verben-svg>\n </button>\n </div>\n <!-- Search Input -->\n <div\n [style.width]=\"inputWidth\"\n class=\"search-input\"\n *ngIf=\"viewState.isSearch\"\n >\n <verben-svg [icon]=\"'search2'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n <input\n *ngIf=\"!useTwoWayBinding\"\n [type]=\"'text'\"\n [placeholder]=\"'Search'\"\n (input)=\"onSearch($event)\"\n [style.border]=\"'0'\"\n [value]=\"searchValue\"\n />\n <input\n *ngIf=\"useTwoWayBinding\"\n [type]=\"'text'\"\n [placeholder]=\"'Search'\"\n (input)=\"onSearch($event)\"\n [style.border]=\"'0'\"\n [(ngModel)]=\"searchValue\"\n />\n <verben-svg\n *ngIf=\"searchValue.length > 0\"\n [icon]=\"'close'\"\n [width]=\"15\"\n (click)=\"onClearSearch()\"\n class=\"close-icon-class\"\n [height]=\"15\"\n ></verben-svg>\n </div>\n </div>\n <div class=\"relative dv-actions\">\n <!-- Column Section -->\n <ng-container\n [appOutSideClick]=\"showColumnChild\"\n (outSideClick)=\"closeChildView('column')\"\n *ngIf=\"viewState.isColumn && isTableView\"\n >\n <ng-container *ngIf=\"columnTemplate; else defaultColumn\"></ng-container>\n <ng-template #defaultColumn>\n <span\n [ngClass]=\"['dv-action', columnCustomClass ? columnCustomClass : '']\"\n [class.is-open]=\"showColumnChild\"\n (click)=\"toggleChildView('column')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'column'\"></verben-svg>\n <span>Columns</span\n ><span class=\"dv-count\">{{ selectedColumnCount }}</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n [style.display]=\"showColumnChild ? 'block' : 'none'\"\n >\n <!-- Kept in the DOM (hidden via display) rather than *ngIf so the\n projected panel stays change-detected and reflects host state\n updates (e.g. restored column arrangement) even while collapsed. -->\n <ng-content select=\"[column-content]\"></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Filter Section -->\n <ng-container\n [appOutSideClick]=\"showFilterChild\"\n (outSideClick)=\"closeChildView('filter')\"\n *ngIf=\"viewState.isFilter\"\n >\n <ng-container *ngIf=\"filterTemplate; else defaultFilter\"></ng-container>\n <ng-template #defaultFilter>\n <span\n [ngClass]=\"['dv-action', filterCustomClass ? filterCustomClass : '']\"\n [class.is-open]=\"showFilterChild\"\n (click)=\"toggleChildView('filter')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'filter'\"></verben-svg>\n <span>Filter</span\n ><span class=\"dv-count\">{{ selectedFilterTableCount }}</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n [style.display]=\"showFilterChild ? 'block' : 'none'\"\n >\n <!-- Kept in the DOM (hidden via display) rather than *ngIf so the\n projected panel stays change-detected and reflects host state\n updates (e.g. restored filters) even while collapsed. -->\n <ng-content select=\"[filter-content]\"></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!--import Section-->\n <ng-container\n [appOutSideClick]=\"showImportChild\"\n (outSideClick)=\"closeChildView('import')\"\n *ngIf=\"viewState.isImport\"\n >\n <ng-container *ngIf=\"importTemplate; else defaultImport\"></ng-container>\n <ng-template #defaultImport>\n <span\n [ngClass]=\"['dv-action', importCustomClass ? importCustomClass : '']\"\n [class.is-open]=\"showImportChild\"\n (click)=\"toggleChildView('import')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'file'\"></verben-svg>\n <span>Import</span>\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showImportChild\"\n select=\"[import-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!-- Sort Section -->\n <ng-container\n [appOutSideClick]=\"showSortChild\"\n (outSideClick)=\"closeChildView('sort')\"\n *ngIf=\"viewState.isSort\"\n >\n <ng-container *ngIf=\"sortTemplate; else defaultSort\"></ng-container>\n <ng-template #defaultSort>\n <span\n [ngClass]=\"['dv-action', sortCustomClass ? sortCustomClass : '']\"\n [class.is-open]=\"showSortChild\"\n (click)=\"toggleChildView('sort')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'sort'\"></verben-svg>\n <span>Sort</span><span class=\"dv-count\">{{ selectedSortCount }}</span>\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showSortChild\"\n select=\"[sort-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!--Extend Section-->\n <ng-container\n [appOutSideClick]=\"showExtendChild\"\n (outSideClick)=\"closeChildView('extend')\"\n *ngIf=\"viewState.isExtend\"\n >\n <ng-container *ngIf=\"extendTemplate; else defaultExtend\"></ng-container>\n <ng-template #defaultExtend>\n <span\n [ngClass]=\"['dv-action', importCustomClass ? extendCustomClass : '']\"\n [class.is-open]=\"showExtendChild\"\n (click)=\"toggleChildView('extend')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'extend'\"></verben-svg>\n <span>Extend</span>\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showImportChild\"\n select=\"[extend-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!-- Export Section -->\n <ng-container\n [appOutSideClick]=\"showExportChild\"\n (outSideClick)=\"closeChildView('export')\"\n *ngIf=\"viewState.isExport\"\n >\n <ng-container *ngIf=\"exportTemplate; else defaultExport\"></ng-container>\n <ng-template #defaultExport>\n <span\n [ngClass]=\"['dv-action', exportCustomClass ? exportCustomClass : '']\"\n [class.is-open]=\"showExportChild\"\n (click)=\"toggleChildView('export')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'export'\"></verben-svg>\n Export\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showExportChild\"\n select=\"[export-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Select Section -->\n <!-- <div *ngIf=\"viewState.isSelect\">\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n selectCustomClass ? selectCustomClass : ''\n ]\"\n [style.background-color]=\"'var(--vbn-color-surface-alt)'\"\n (click)=\"toggleChildView('select')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'select'\"></verben-svg>\n <span>Select</span>\n <verben-svg [width]=\"6\" [icon]=\"'chevron-down'\"></verben-svg>\n </span>\n </div> -->\n\n <!-- Create Button jj-->\n\n <div\n [appOutSideClick]=\"create\"\n (outSideClick)=\"closeChildView('null')\"\n *ngIf=\"viewState.isCreate\"\n >\n <verbena-button\n [bgColor]=\"'var(--vbn-color-primary)'\"\n [buttonClass]=\"createCustomClass\"\n [textColor]=\"'var(--vbn-color-on-primary)'\"\n [svg]=\"'add'\"\n [svgPosition]=\"'right'\"\n [text]=\"'Create New'\"\n (click)=\"toggleChildView('create')\"\n >\n </verbena-button>\n <ng-container *ngIf=\"createTemplate; else defaultCreate\"></ng-container>\n <ng-template #defaultCreate>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content *ngIf=\"create\" select=\"[create-content]\"></ng-content>\n </div>\n </ng-template>\n </div>\n\n <!-- Children / Custom action buttons -->\n <ng-container *ngIf=\"children; else defaultChildren\">\n <ng-container *ngTemplateOutlet=\"$any(children)\"></ng-container>\n </ng-container>\n <ng-template #defaultChildren>\n <ng-content select=\"[children]\"></ng-content>\n </ng-template>\n </div>\n</div>\n\n<!-- Grid and List View Handling -->\n<div *ngIf=\"isTableView; else listViewTemplate\">\n <div [style.overflow]=\"'auto'\" [class]=\"tableClass\">\n <ng-content select=\"[table-content]\"></ng-content>\n </div>\n</div>\n<ng-template #listViewTemplate>\n <div [class]=\"cardClass\">\n <ng-content select=\"[card-content]\"></ng-content>\n </div>\n</ng-template>\n", styles: [".toggle-button-container button{display:inline-flex;align-items:center;gap:2px;height:36px;padding:3px;box-sizing:border-box;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text-muted);cursor:pointer}.toggle-button-container button:focus-visible{outline:2px solid var(--vbn-color-border-focus);outline-offset:1px}.input-class{border:none;min-width:100%;display:block}.toggle-button-container verben-svg{display:inline-grid;place-items:center;width:28px;height:28px;box-sizing:border-box;padding:4px;border-radius:6px;transition:background-color .15s ease}.toggle-button-container verben-svg.active{background-color:var(--vbn-color-surface-alt);box-shadow:0 1px 2px #0000001a}.justify-end{justify-self:end}.flex{display:flex}.flex-1{flex:1}.justify-between{justify-content:space-between}.items-center{align-items:center}.font-semibold{font-weight:600}.font-normal{font-weight:400}.text-sm{font-size:14px}.text-xs{font-size:12px}.gap{gap:7px}.pd{padding:5px 8px}.rounded-sm{border-radius:10px}.cursor-pointer{cursor:pointer}.search-input{position:relative;display:flex;align-items:center;gap:8px;flex:0 1 auto;min-width:85px;max-width:100%;height:36px;box-sizing:border-box;padding:0 32px 0 10px;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text-muted);transition:border-color .15s ease,box-shadow .15s ease}.search-input:focus-within{border-color:var(--vbn-color-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--vbn-color-border-focus) 18%,transparent)}.search-input input{display:block;width:100%;min-width:0;padding:0;outline:0;background-color:transparent;color:var(--vbn-color-text);font:inherit;font-size:14px}.search-input input::placeholder{color:var(--vbn-color-text-muted);font-size:14px}sup{color:var(--vbn-color-border-focus);font-weight:500}.data-view-element{position:absolute;top:calc(100% + 6px);right:0;max-width:100%;text-align:left}.relative{position:relative}.z-10{z-index:100000000000}.close-icon-class{position:absolute;top:50%;right:8px;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;transform:translateY(-50%);cursor:pointer}.close-icon-class:hover{background-color:var(--vbn-color-surface-alt)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.dv-search-group{display:flex;align-items:center;gap:8px;flex:1 1 155px;min-width:0}.dv-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.dv-action{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;box-sizing:border-box;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text);font-size:12.5px;font-weight:500;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease,border-color .15s ease}.dv-action:hover{background-color:var(--vbn-color-surface-alt)}.dv-action.is-open{border-color:var(--vbn-color-text-muted);background-color:var(--vbn-color-surface-alt)}.dv-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:999px;background-color:var(--vbn-color-surface-alt);box-shadow:inset 0 0 0 1px var(--vbn-color-border);color:var(--vbn-color-text-muted);font-size:11px;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i3.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "styleType", "size", "block", "disable", "disabled", "isLoading", "spinnerSize", "spinnerColor", "svg", "svgPosition", "svgWidth", "svgHeight", "svgSize", "svgColor", "icon", "useIcon", "iconPosition", "iconColor", "variant", "weight", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "buttonClass", "buttonTextClass"] }, { kind: "directive", type: i4.OutSideClickDirective, selector: "[appOutSideClick]", inputs: ["appOutSideClick"], outputs: ["outSideClick"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
213
213
|
}
|
|
214
214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataViewComponent, decorators: [{
|
|
215
215
|
type: Component,
|
|
216
|
-
args: [{ selector: 'verben-data-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"toolbar\">\n <div class=\"dv-search-group\">\n <div *ngIf=\"viewState.isToggle\" class=\"toggle-button-container\">\n <button type=\"button\" (click)=\"toggleView()\" [ngClass]=\"buttonClass\">\n <verben-svg\n [icon]=\"tableIcon\"\n [class.active]=\"!isTableView\"\n [ngClass]=\"!isTableView ? activeIconClass : iconClass\"\n ></verben-svg>\n <verben-svg\n [icon]=\"cardIcon\"\n [class.active]=\"isTableView\"\n [ngClass]=\"isTableView ? activeIconClass : iconClass\"\n [width]=\"25\"\n [height]=\"25\"\n ></verben-svg>\n </button>\n </div>\n <!-- Search Input -->\n <div\n [style.width]=\"inputWidth\"\n class=\"search-input\"\n *ngIf=\"viewState.isSearch\"\n >\n <verben-svg [icon]=\"'search2'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n <input\n *ngIf=\"!useTwoWayBinding\"\n [type]=\"'text'\"\n [placeholder]=\"'Search'\"\n (input)=\"onSearch($event)\"\n [style.border]=\"'0'\"\n [value]=\"searchValue\"\n />\n <input\n *ngIf=\"useTwoWayBinding\"\n [type]=\"'text'\"\n [placeholder]=\"'Search'\"\n (input)=\"onSearch($event)\"\n [style.border]=\"'0'\"\n [(ngModel)]=\"searchValue\"\n />\n <verben-svg\n *ngIf=\"searchValue.length > 0\"\n [icon]=\"'close'\"\n [width]=\"15\"\n (click)=\"onClearSearch()\"\n class=\"close-icon-class\"\n [height]=\"15\"\n ></verben-svg>\n </div>\n </div>\n <div class=\"relative dv-actions\">\n <!-- Column Section -->\n <ng-container\n [appOutSideClick]=\"showColumnChild\"\n (outSideClick)=\"closeChildView('column')\"\n *ngIf=\"viewState.isColumn && isTableView\"\n >\n <ng-container *ngIf=\"columnTemplate; else defaultColumn\"></ng-container>\n <ng-template #defaultColumn>\n <span\n [ngClass]=\"['dv-action', columnCustomClass ? columnCustomClass : '']\"\n [class.is-open]=\"showColumnChild\"\n (click)=\"toggleChildView('column')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'column'\"></verben-svg>\n <span>Columns</span\n ><span class=\"dv-count\">{{ selectedColumnCount }}</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n [style.display]=\"showColumnChild ? 'block' : 'none'\"\n >\n <!-- Kept in the DOM (hidden via display) rather than *ngIf so the\n projected panel stays change-detected and reflects host state\n updates (e.g. restored column arrangement) even while collapsed. -->\n <ng-content select=\"[column-content]\"></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Filter Section -->\n <ng-container\n [appOutSideClick]=\"showFilterChild\"\n (outSideClick)=\"closeChildView('filter')\"\n *ngIf=\"viewState.isFilter\"\n >\n <ng-container *ngIf=\"filterTemplate; else defaultFilter\"></ng-container>\n <ng-template #defaultFilter>\n <span\n [ngClass]=\"['dv-action', filterCustomClass ? filterCustomClass : '']\"\n [class.is-open]=\"showFilterChild\"\n (click)=\"toggleChildView('filter')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'filter'\"></verben-svg>\n <span>Filter</span\n ><span class=\"dv-count\">{{ selectedFilterTableCount }}</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n [style.display]=\"showFilterChild ? 'block' : 'none'\"\n >\n <!-- Kept in the DOM (hidden via display) rather than *ngIf so the\n projected panel stays change-detected and reflects host state\n updates (e.g. restored filters) even while collapsed. -->\n <ng-content select=\"[filter-content]\"></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!--import Section-->\n <ng-container\n [appOutSideClick]=\"showImportChild\"\n (outSideClick)=\"closeChildView('import')\"\n *ngIf=\"viewState.isImport\"\n >\n <ng-container *ngIf=\"importTemplate; else defaultImport\"></ng-container>\n <ng-template #defaultImport>\n <span\n [ngClass]=\"['dv-action', importCustomClass ? importCustomClass : '']\"\n [class.is-open]=\"showImportChild\"\n (click)=\"toggleChildView('import')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'file'\"></verben-svg>\n <span>Import</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n >\n <ng-content\n *ngIf=\"showImportChild\"\n select=\"[import-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!-- Sort Section -->\n <ng-container\n [appOutSideClick]=\"showSortChild\"\n (outSideClick)=\"closeChildView('sort')\"\n *ngIf=\"viewState.isSort\"\n >\n <ng-container *ngIf=\"sortTemplate; else defaultSort\"></ng-container>\n <ng-template #defaultSort>\n <span\n [ngClass]=\"['dv-action', sortCustomClass ? sortCustomClass : '']\"\n [class.is-open]=\"showSortChild\"\n (click)=\"toggleChildView('sort')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'sort'\"></verben-svg>\n <span>Sort</span><span class=\"dv-count\">{{ selectedSortCount }}</span>\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showSortChild\"\n select=\"[sort-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!--Extend Section-->\n <ng-container\n [appOutSideClick]=\"showExtendChild\"\n (outSideClick)=\"closeChildView('extend')\"\n *ngIf=\"viewState.isExtend\"\n >\n <ng-container *ngIf=\"extendTemplate; else defaultExtend\"></ng-container>\n <ng-template #defaultExtend>\n <span\n [ngClass]=\"['dv-action', importCustomClass ? extendCustomClass : '']\"\n [class.is-open]=\"showExtendChild\"\n (click)=\"toggleChildView('extend')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'extend'\"></verben-svg>\n <span>Extend</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n >\n <ng-content\n *ngIf=\"showImportChild\"\n select=\"[extend-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!-- Export Section -->\n <ng-container\n [appOutSideClick]=\"showExportChild\"\n (outSideClick)=\"closeChildView('export')\"\n *ngIf=\"viewState.isExport\"\n >\n <ng-container *ngIf=\"exportTemplate; else defaultExport\"></ng-container>\n <ng-template #defaultExport>\n <span\n [ngClass]=\"['dv-action', exportCustomClass ? exportCustomClass : '']\"\n [class.is-open]=\"showExportChild\"\n (click)=\"toggleChildView('export')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'export'\"></verben-svg>\n Export\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showExportChild\"\n select=\"[export-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Select Section -->\n <!-- <div *ngIf=\"viewState.isSelect\">\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n selectCustomClass ? selectCustomClass : ''\n ]\"\n [style.background-color]=\"'var(--vbn-color-surface-alt)'\"\n (click)=\"toggleChildView('select')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'select'\"></verben-svg>\n <span>Select</span>\n <verben-svg [width]=\"6\" [icon]=\"'chevron-down'\"></verben-svg>\n </span>\n </div> -->\n\n <!-- Create Button jj-->\n\n <div\n [appOutSideClick]=\"create\"\n (outSideClick)=\"closeChildView('create')\"\n *ngIf=\"viewState.isCreate\"\n >\n <verbena-button\n [bgColor]=\"'var(--vbn-color-primary)'\"\n [buttonClass]=\"createCustomClass\"\n [textColor]=\"'var(--vbn-color-on-primary)'\"\n [svg]=\"'add'\"\n [svgPosition]=\"'right'\"\n [text]=\"'Create New'\"\n (click)=\"toggleChildView('create')\"\n >\n </verbena-button>\n <ng-container *ngIf=\"createTemplate; else defaultCreate\"></ng-container>\n <ng-template #defaultCreate>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content *ngIf=\"create\" select=\"[create-content]\"></ng-content>\n </div>\n </ng-template>\n </div>\n\n <!-- Children / Custom action buttons -->\n <ng-container *ngIf=\"children; else defaultChildren\">\n <ng-container *ngTemplateOutlet=\"$any(children)\"></ng-container>\n </ng-container>\n <ng-template #defaultChildren>\n <ng-content select=\"[children]\"></ng-content>\n </ng-template>\n </div>\n</div>\n\n<!-- Grid and List View Handling -->\n<div *ngIf=\"isTableView; else listViewTemplate\">\n <div [style.overflow]=\"'auto'\" [class]=\"tableClass\">\n <ng-content select=\"[table-content]\"></ng-content>\n </div>\n</div>\n<ng-template #listViewTemplate>\n <div [class]=\"cardClass\">\n <ng-content select=\"[card-content]\"></ng-content>\n </div>\n</ng-template>\n", styles: [".toggle-button-container button{display:inline-flex;align-items:center;gap:2px;height:36px;padding:3px;box-sizing:border-box;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text-muted);cursor:pointer}.toggle-button-container button:focus-visible{outline:2px solid var(--vbn-color-border-focus);outline-offset:1px}.input-class{border:none;min-width:100%;display:block}.toggle-button-container verben-svg{display:inline-grid;place-items:center;width:28px;height:28px;box-sizing:border-box;padding:4px;border-radius:6px;transition:background-color .15s ease}.toggle-button-container verben-svg.active{background-color:var(--vbn-color-surface-alt);box-shadow:0 1px 2px #0000001a}.justify-end{justify-self:end}.flex{display:flex}.flex-1{flex:1}.justify-between{justify-content:space-between}.items-center{align-items:center}.font-semibold{font-weight:600}.font-normal{font-weight:400}.text-sm{font-size:14px}.text-xs{font-size:12px}.gap{gap:7px}.pd{padding:5px 8px}.rounded-sm{border-radius:10px}.cursor-pointer{cursor:pointer}.search-input{position:relative;display:flex;align-items:center;gap:8px;flex:0 1 auto;min-width:85px;max-width:100%;height:36px;box-sizing:border-box;padding:0 32px 0 10px;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text-muted);transition:border-color .15s ease,box-shadow .15s ease}.search-input:focus-within{border-color:var(--vbn-color-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--vbn-color-border-focus) 18%,transparent)}.search-input input{display:block;width:100%;min-width:0;padding:0;outline:0;background-color:transparent;color:var(--vbn-color-text);font:inherit;font-size:14px}.search-input input::placeholder{color:var(--vbn-color-text-muted);font-size:14px}sup{color:var(--vbn-color-border-focus);font-weight:500}.data-view-element{position:absolute;top:calc(100% + 6px);right:0;max-width:100%;text-align:left}.relative{position:relative}.z-10{z-index:100000000000}.close-icon-class{position:absolute;top:50%;right:8px;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;transform:translateY(-50%);cursor:pointer}.close-icon-class:hover{background-color:var(--vbn-color-surface-alt)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.dv-search-group{display:flex;align-items:center;gap:8px;flex:1 1 155px;min-width:0}.dv-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.dv-action{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;box-sizing:border-box;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text);font-size:12.5px;font-weight:500;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease,border-color .15s ease}.dv-action:hover{background-color:var(--vbn-color-surface-alt)}.dv-action.is-open{border-color:var(--vbn-color-text-muted);background-color:var(--vbn-color-surface-alt)}.dv-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:999px;background-color:var(--vbn-color-surface-alt);box-shadow:inset 0 0 0 1px var(--vbn-color-border);color:var(--vbn-color-text-muted);font-size:11px;font-weight:600}\n"] }]
|
|
216
|
+
args: [{ selector: 'verben-data-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"toolbar\">\n <div class=\"dv-search-group\">\n <div *ngIf=\"viewState.isToggle\" class=\"toggle-button-container\">\n <button type=\"button\" (click)=\"toggleView()\" [ngClass]=\"buttonClass\">\n <verben-svg\n [icon]=\"tableIcon\"\n [class.active]=\"!isTableView\"\n [ngClass]=\"!isTableView ? activeIconClass : iconClass\"\n ></verben-svg>\n <verben-svg\n [icon]=\"cardIcon\"\n [class.active]=\"isTableView\"\n [ngClass]=\"isTableView ? activeIconClass : iconClass\"\n [width]=\"25\"\n [height]=\"25\"\n ></verben-svg>\n </button>\n </div>\n <!-- Search Input -->\n <div\n [style.width]=\"inputWidth\"\n class=\"search-input\"\n *ngIf=\"viewState.isSearch\"\n >\n <verben-svg [icon]=\"'search2'\" [width]=\"20\" [height]=\"20\"></verben-svg>\n <input\n *ngIf=\"!useTwoWayBinding\"\n [type]=\"'text'\"\n [placeholder]=\"'Search'\"\n (input)=\"onSearch($event)\"\n [style.border]=\"'0'\"\n [value]=\"searchValue\"\n />\n <input\n *ngIf=\"useTwoWayBinding\"\n [type]=\"'text'\"\n [placeholder]=\"'Search'\"\n (input)=\"onSearch($event)\"\n [style.border]=\"'0'\"\n [(ngModel)]=\"searchValue\"\n />\n <verben-svg\n *ngIf=\"searchValue.length > 0\"\n [icon]=\"'close'\"\n [width]=\"15\"\n (click)=\"onClearSearch()\"\n class=\"close-icon-class\"\n [height]=\"15\"\n ></verben-svg>\n </div>\n </div>\n <div class=\"relative dv-actions\">\n <!-- Column Section -->\n <ng-container\n [appOutSideClick]=\"showColumnChild\"\n (outSideClick)=\"closeChildView('column')\"\n *ngIf=\"viewState.isColumn && isTableView\"\n >\n <ng-container *ngIf=\"columnTemplate; else defaultColumn\"></ng-container>\n <ng-template #defaultColumn>\n <span\n [ngClass]=\"['dv-action', columnCustomClass ? columnCustomClass : '']\"\n [class.is-open]=\"showColumnChild\"\n (click)=\"toggleChildView('column')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'column'\"></verben-svg>\n <span>Columns</span\n ><span class=\"dv-count\">{{ selectedColumnCount }}</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n [style.display]=\"showColumnChild ? 'block' : 'none'\"\n >\n <!-- Kept in the DOM (hidden via display) rather than *ngIf so the\n projected panel stays change-detected and reflects host state\n updates (e.g. restored column arrangement) even while collapsed. -->\n <ng-content select=\"[column-content]\"></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Filter Section -->\n <ng-container\n [appOutSideClick]=\"showFilterChild\"\n (outSideClick)=\"closeChildView('filter')\"\n *ngIf=\"viewState.isFilter\"\n >\n <ng-container *ngIf=\"filterTemplate; else defaultFilter\"></ng-container>\n <ng-template #defaultFilter>\n <span\n [ngClass]=\"['dv-action', filterCustomClass ? filterCustomClass : '']\"\n [class.is-open]=\"showFilterChild\"\n (click)=\"toggleChildView('filter')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'filter'\"></verben-svg>\n <span>Filter</span\n ><span class=\"dv-count\">{{ selectedFilterTableCount }}</span>\n </span>\n <div\n [style.z-index]=\"zIndex\"\n class=\"data-view-element\"\n [style.display]=\"showFilterChild ? 'block' : 'none'\"\n >\n <!-- Kept in the DOM (hidden via display) rather than *ngIf so the\n projected panel stays change-detected and reflects host state\n updates (e.g. restored filters) even while collapsed. -->\n <ng-content select=\"[filter-content]\"></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!--import Section-->\n <ng-container\n [appOutSideClick]=\"showImportChild\"\n (outSideClick)=\"closeChildView('import')\"\n *ngIf=\"viewState.isImport\"\n >\n <ng-container *ngIf=\"importTemplate; else defaultImport\"></ng-container>\n <ng-template #defaultImport>\n <span\n [ngClass]=\"['dv-action', importCustomClass ? importCustomClass : '']\"\n [class.is-open]=\"showImportChild\"\n (click)=\"toggleChildView('import')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'file'\"></verben-svg>\n <span>Import</span>\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showImportChild\"\n select=\"[import-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!-- Sort Section -->\n <ng-container\n [appOutSideClick]=\"showSortChild\"\n (outSideClick)=\"closeChildView('sort')\"\n *ngIf=\"viewState.isSort\"\n >\n <ng-container *ngIf=\"sortTemplate; else defaultSort\"></ng-container>\n <ng-template #defaultSort>\n <span\n [ngClass]=\"['dv-action', sortCustomClass ? sortCustomClass : '']\"\n [class.is-open]=\"showSortChild\"\n (click)=\"toggleChildView('sort')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'sort'\"></verben-svg>\n <span>Sort</span><span class=\"dv-count\">{{ selectedSortCount }}</span>\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showSortChild\"\n select=\"[sort-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!--Extend Section-->\n <ng-container\n [appOutSideClick]=\"showExtendChild\"\n (outSideClick)=\"closeChildView('extend')\"\n *ngIf=\"viewState.isExtend\"\n >\n <ng-container *ngIf=\"extendTemplate; else defaultExtend\"></ng-container>\n <ng-template #defaultExtend>\n <span\n [ngClass]=\"['dv-action', importCustomClass ? extendCustomClass : '']\"\n [class.is-open]=\"showExtendChild\"\n (click)=\"toggleChildView('extend')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'extend'\"></verben-svg>\n <span>Extend</span>\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showImportChild\"\n select=\"[extend-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n <!-- Export Section -->\n <ng-container\n [appOutSideClick]=\"showExportChild\"\n (outSideClick)=\"closeChildView('export')\"\n *ngIf=\"viewState.isExport\"\n >\n <ng-container *ngIf=\"exportTemplate; else defaultExport\"></ng-container>\n <ng-template #defaultExport>\n <span\n [ngClass]=\"['dv-action', exportCustomClass ? exportCustomClass : '']\"\n [class.is-open]=\"showExportChild\"\n (click)=\"toggleChildView('export')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'export'\"></verben-svg>\n Export\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showExportChild\"\n select=\"[export-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Select Section -->\n <!-- <div *ngIf=\"viewState.isSelect\">\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n selectCustomClass ? selectCustomClass : ''\n ]\"\n [style.background-color]=\"'var(--vbn-color-surface-alt)'\"\n (click)=\"toggleChildView('select')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'select'\"></verben-svg>\n <span>Select</span>\n <verben-svg [width]=\"6\" [icon]=\"'chevron-down'\"></verben-svg>\n </span>\n </div> -->\n\n <!-- Create Button jj-->\n\n <div\n [appOutSideClick]=\"create\"\n (outSideClick)=\"closeChildView('null')\"\n *ngIf=\"viewState.isCreate\"\n >\n <verbena-button\n [bgColor]=\"'var(--vbn-color-primary)'\"\n [buttonClass]=\"createCustomClass\"\n [textColor]=\"'var(--vbn-color-on-primary)'\"\n [svg]=\"'add'\"\n [svgPosition]=\"'right'\"\n [text]=\"'Create New'\"\n (click)=\"toggleChildView('create')\"\n >\n </verbena-button>\n <ng-container *ngIf=\"createTemplate; else defaultCreate\"></ng-container>\n <ng-template #defaultCreate>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content *ngIf=\"create\" select=\"[create-content]\"></ng-content>\n </div>\n </ng-template>\n </div>\n\n <!-- Children / Custom action buttons -->\n <ng-container *ngIf=\"children; else defaultChildren\">\n <ng-container *ngTemplateOutlet=\"$any(children)\"></ng-container>\n </ng-container>\n <ng-template #defaultChildren>\n <ng-content select=\"[children]\"></ng-content>\n </ng-template>\n </div>\n</div>\n\n<!-- Grid and List View Handling -->\n<div *ngIf=\"isTableView; else listViewTemplate\">\n <div [style.overflow]=\"'auto'\" [class]=\"tableClass\">\n <ng-content select=\"[table-content]\"></ng-content>\n </div>\n</div>\n<ng-template #listViewTemplate>\n <div [class]=\"cardClass\">\n <ng-content select=\"[card-content]\"></ng-content>\n </div>\n</ng-template>\n", styles: [".toggle-button-container button{display:inline-flex;align-items:center;gap:2px;height:36px;padding:3px;box-sizing:border-box;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text-muted);cursor:pointer}.toggle-button-container button:focus-visible{outline:2px solid var(--vbn-color-border-focus);outline-offset:1px}.input-class{border:none;min-width:100%;display:block}.toggle-button-container verben-svg{display:inline-grid;place-items:center;width:28px;height:28px;box-sizing:border-box;padding:4px;border-radius:6px;transition:background-color .15s ease}.toggle-button-container verben-svg.active{background-color:var(--vbn-color-surface-alt);box-shadow:0 1px 2px #0000001a}.justify-end{justify-self:end}.flex{display:flex}.flex-1{flex:1}.justify-between{justify-content:space-between}.items-center{align-items:center}.font-semibold{font-weight:600}.font-normal{font-weight:400}.text-sm{font-size:14px}.text-xs{font-size:12px}.gap{gap:7px}.pd{padding:5px 8px}.rounded-sm{border-radius:10px}.cursor-pointer{cursor:pointer}.search-input{position:relative;display:flex;align-items:center;gap:8px;flex:0 1 auto;min-width:85px;max-width:100%;height:36px;box-sizing:border-box;padding:0 32px 0 10px;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text-muted);transition:border-color .15s ease,box-shadow .15s ease}.search-input:focus-within{border-color:var(--vbn-color-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--vbn-color-border-focus) 18%,transparent)}.search-input input{display:block;width:100%;min-width:0;padding:0;outline:0;background-color:transparent;color:var(--vbn-color-text);font:inherit;font-size:14px}.search-input input::placeholder{color:var(--vbn-color-text-muted);font-size:14px}sup{color:var(--vbn-color-border-focus);font-weight:500}.data-view-element{position:absolute;top:calc(100% + 6px);right:0;max-width:100%;text-align:left}.relative{position:relative}.z-10{z-index:100000000000}.close-icon-class{position:absolute;top:50%;right:8px;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;transform:translateY(-50%);cursor:pointer}.close-icon-class:hover{background-color:var(--vbn-color-surface-alt)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.dv-search-group{display:flex;align-items:center;gap:8px;flex:1 1 155px;min-width:0}.dv-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.dv-action{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;box-sizing:border-box;border:1px solid var(--vbn-color-border);border-radius:8px;background-color:var(--vbn-color-surface);color:var(--vbn-color-text);font-size:12.5px;font-weight:500;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease,border-color .15s ease}.dv-action:hover{background-color:var(--vbn-color-surface-alt)}.dv-action.is-open{border-color:var(--vbn-color-text-muted);background-color:var(--vbn-color-surface-alt)}.dv-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:999px;background-color:var(--vbn-color-surface-alt);box-shadow:inset 0 0 0 1px var(--vbn-color-border);color:var(--vbn-color-text-muted);font-size:11px;font-weight:600}\n"] }]
|
|
217
217
|
}], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { buttonClass: [{
|
|
218
218
|
type: Input
|
|
219
219
|
}], iconClass: [{
|
|
@@ -310,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
310
310
|
type: ViewChild,
|
|
311
311
|
args: ['filterContentWrapper']
|
|
312
312
|
}] } });
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2RhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBb0I5QyxNQUFNLE9BQU8saUJBQWlCO0lBZ0VSO0lBL0RYLFdBQVcsQ0FBVTtJQUNyQixTQUFTLENBQVU7SUFDbkIsZUFBZSxHQUFZLEVBQUUsQ0FBQztJQUM5QixpQkFBaUIsR0FBWSxFQUFFLENBQUM7SUFDaEMsaUJBQWlCLEdBQVksRUFBRSxDQUFDO0lBQ2hDLGVBQWUsR0FBWSxFQUFFLENBQUM7SUFDOUIsaUJBQWlCLEdBQVksRUFBRSxDQUFDO0lBQ2hDLGlCQUFpQixHQUFZLEVBQUUsQ0FBQztJQUNoQyxpQkFBaUIsR0FBWSxFQUFFLENBQUM7SUFDaEMsaUJBQWlCLEdBQVksRUFBRSxDQUFDO0lBQ2hDLE1BQU0sR0FBWSxDQUFDLENBQUM7SUFDcEIsaUJBQWlCLEdBQVcsRUFBRSxDQUFDO0lBQy9CLFNBQVMsR0FBVyxRQUFRLENBQUM7SUFDN0IsUUFBUSxHQUFXLFdBQVcsQ0FBQztJQUMvQixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLFVBQVUs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SztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQzRCLG9CQUFvQjtzQkFBdEQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW50ZXJmYWNlIFZpZXdTdGF0ZSB7XG4gIGlzU2VhcmNoPzogYm9vbGVhbjtcbiAgaXNDb2x1bW4/OiBib29sZWFuO1xuICBpc0ZpbHRlcj86IGJvb2xlYW47XG4gIGlzU29ydD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgaXNTZWxlY3Q/OiBib29sZWFuO1xuICBpc0NyZWF0ZT86IGJvb2xlYW47XG4gIGlzVG9nZ2xlPzogYm9vbGVhbjtcbiAgaXNJbXBvcnQ/OiBib29sZWFuO1xuICBpc0V4dGVuZD86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYnV0dG9uQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25DbGFzcz86IHN0cmluZztcbiAgQElucHV0KCkgYWN0aXZlSWNvbkNsYXNzPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNvbHVtbkN1c3RvbUNsYXNzPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGZpbHRlckN1c3RvbUNsYXNzPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHNvcnRDdXN0b21DbGFzcz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBleHRlbmRDdXN0b21DbGFzcz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBleHBvcnRDdXN0b21DbGFzcz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzZWxlY3RDdXN0b21DbGFzcz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpbXBvcnRDdXN0b21DbGFzcz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB6SW5kZXg/OiBudW1iZXIgPSA1O1xuICBASW5wdXQoKSBjcmVhdGVDdXN0b21DbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRhYmxlSWNvbjogc3RyaW5nID0gJ2dyaWQtMyc7XG4gIEBJbnB1dCgpIGNhcmRJY29uOiBzdHJpbmcgPSAnbGlzdC12aWV3JztcbiAgQElucHV0KCkgY2FyZENsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdGFibGVDbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHNlYXJjaEtleTogc3RyaW5nID0gJ3NlYXJjaCc7XG4gIEBJbnB1dCgpIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBzZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBASW5wdXQoKSB2aWV3U3RhdGU6IFZpZXdTdGF0ZSA9IHtcbiAgICBpc1NlYXJjaDogdHJ1ZSxcbiAgICBpc0NvbHVtbjogdHJ1ZSxcbiAgICBpc0ZpbHRlcjogdHJ1ZSxcbiAgICBpc1NvcnQ6IHRydWUsXG4gICAgaXNFeHBvcnQ6IHRydWUsXG4gICAgaXNTZWxlY3Q6IHRydWUsXG4gICAgaXNDcmVhdGU6IHRydWUsXG4gICAgaXNUb2dnbGU6IHRydWUsXG4gICAgaXNFeHRlbmQ6IHRydWUsXG4gICAgaXNJbXBvcnQ6IHRydWUsXG4gIH07XG5cbiAgQElucHV0KCkgc2VhcmNoVGVtcGxhdGU/OiBOb2RlO1xuICBASW5wdXQoKSBpbXBvcnRUZW1wbGF0ZT86IE5vZGU7XG4gIEBJbnB1dCgpIGNvbHVtblRlbXBsYXRlPzogTm9kZTtcbiAgQElucHV0KCkgZXh0ZW5kVGVtcGxhdGU/OiBOb2RlO1xuICBASW5wdXQoKSBmaWx0ZXJUZW1wbGF0ZT86IE5vZGU7XG4gIEBJbnB1dCgpIHNvcnRUZW1wbGF0ZT86IE5vZGU7XG4gIEBJbnB1dCgpIGNoaWxkcmVuPzogTm9kZTtcbiAgQElucHV0KCkgZXhwb3J0VGVtcGxhdGU/OiBOb2RlO1xuICBASW5wdXQoKSBjcmVhdGVUZW1wbGF0ZT86IE5vZGU7XG4gIEBJbnB1dCgpIHNlbGVjdGVkQ29sdW1uQ291bnQ/OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBzZWxlY3RlZFNvcnRDb3VudDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgc2VsZWN0ZWRGaWx0ZXJUYWJsZUNvdW50OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBpbnB1dFdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIG1pbGxpc2Vjb25kczogbnVtYmVyID0gNDAwO1xuICBASW5wdXQoKSBzaG93Q29sdW1uQ2hpbGQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd1NvcnRDaGlsZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93RmlsdGVyQ2hpbGQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0ltcG9ydENoaWxkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dFeHBvcnRDaGlsZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93RXh0ZW5kQ2hpbGQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY3JlYXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB1c2VUd29XYXlCaW5kaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgaXNUYWJsZVZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHZpZXdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBzdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBrZXk6IHN0cmluZzsgdmFsdWU6IGJvb2xlYW4gfT4oKTtcbiAgQE91dHB1dCgpIG9uU2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+KCk7XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlckNvbnRlbnRXcmFwcGVyJykgZmlsdGVyQ29udGVudFdyYXBwZXIhOiBFbGVtZW50UmVmO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0XG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5taWxsaXNlY29uZHMpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5vblNlYXJjaENoYW5nZS5lbWl0KHsga2V5OiB0aGlzLnNlYXJjaEtleSwgdmFsdWUgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZVZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5pc1RhYmxlVmlldyA9ICF0aGlzLmlzVGFibGVWaWV3O1xuICAgIHRoaXMudmlld0NoYW5nZS5lbWl0KHRoaXMuaXNUYWJsZVZpZXcpO1xuICB9XG5cbiAgb25TZWFyY2goZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH1cbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgb25DbGVhclNlYXJjaCgpIHtcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgdGhpcy5vblNlYXJjaENoYW5nZS5lbWl0KHsga2V5OiB0aGlzLnNlYXJjaEtleSwgdmFsdWU6IHRoaXMuc2VhcmNoVmFsdWUgfSk7XG4gIH1cbiAgdG9nZ2xlQ2hpbGRWaWV3KHZpZXdUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHZpZXdUeXBlKSB7XG4gICAgICBjYXNlICdjb2x1bW4nOlxuICAgICAgICB0aGlzLnNob3dDb2x1bW5DaGlsZCA9ICF0aGlzLnNob3dDb2x1bW5DaGlsZDtcbiAgICAgICAgdGhpcy5yZXNldENoaWxkVmlld3NFeGNlcHQoJ2NvbHVtbicpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZpbHRlcic6XG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlckNoaWxkID0gIXRoaXMuc2hvd0ZpbHRlckNoaWxkO1xuICAgICAgICB0aGlzLnJlc2V0Q2hpbGRWaWV3c0V4Y2VwdCgnZmlsdGVyJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc29ydCc6XG4gICAgICAgIHRoaXMuc2hvd1NvcnRDaGlsZCA9ICF0aGlzLnNob3dTb3J0Q2hpbGQ7XG4gICAgICAgIHRoaXMucmVzZXRDaGlsZFZpZXdzRXhjZXB0KCdzb3J0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgdGhpcy5zaG93U2VsZWN0ZWQgPSAhdGhpcy5zaG93U2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMucmVzZXRDaGlsZFZpZXdzRXhjZXB0KCdzZWxlY3QnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdleHBvcnQnOlxuICAgICAgICB0aGlzLnNob3dFeHBvcnRDaGlsZCA9ICF0aGlzLnNob3dFeHBvcnRDaGlsZDtcbiAgICAgICAgdGhpcy5yZXNldENoaWxkVmlld3NFeGNlcHQoJ2V4cG9ydCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ltcG9ydCc6XG4gICAgICAgIHRoaXMuc2hvd0ltcG9ydENoaWxkID0gIXRoaXMuc2hvd0ltcG9ydENoaWxkO1xuICAgICAgICB0aGlzLnJlc2V0Q2hpbGRWaWV3c0V4Y2VwdCgnaW1wb3J0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXh0ZW5kJzpcbiAgICAgICAgdGhpcy5zaG93RXh0ZW5kQ2hpbGQgPSAhdGhpcy5zaG93RXh0ZW5kQ2hpbGQ7XG4gICAgICAgIHRoaXMucmVzZXRDaGlsZFZpZXdzRXhjZXB0KCdleHRlbmQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICB0aGlzLmNyZWF0ZSA9ICF0aGlzLmNyZWF0ZTtcbiAgICAgICAgdGhpcy5yZXNldENoaWxkVmlld3NFeGNlcHQoJ2NyZWF0ZScpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KHtcbiAgICAgIGtleTogdmlld1R5cGUsXG4gICAgICB2YWx1ZTogdGhpcy5nZXRDaGlsZFZpZXdTdGF0ZSh2aWV3VHlwZSksXG4gICAgfSk7XG4gIH1cbiAgcmVzZXRDaGlsZFZpZXdzRXhjZXB0KHZpZXdUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodmlld1R5cGUgIT09ICdjb2x1bW4nKSB0aGlzLnNob3dDb2x1bW5DaGlsZCA9IGZhbHNlO1xuICAgIGlmICh2aWV3VHlwZSAhPT0gJ2ZpbHRlcicpIHRoaXMuc2hvd0ZpbHRlckNoaWxkID0gZmFsc2U7XG4gICAgaWYgKHZpZXdUeXBlICE9PSAnc29ydCcpIHRoaXMuc2hvd1NvcnRDaGlsZCA9IGZhbHNlO1xuICAgIGlmICh2aWV3VHlwZSAhPT0gJ3NlbGVjdCcpIHRoaXMuc2hvd1NlbGVjdGVkID0gZmFsc2U7XG4gICAgaWYgKHZpZXdUeXBlICE9PSAnZXhwb3J0JykgdGhpcy5zaG93RXhwb3J0Q2hpbGQgPSBmYWxzZTtcbiAgICBpZiAodmlld1R5cGUgIT09ICdpbXBvcnQnKSB0aGlzLnNob3dJbXBvcnRDaGlsZCA9IGZhbHNlO1xuICAgIGlmICh2aWV3VHlwZSAhPT0gJ2V4dGVuZCcpIHRoaXMuc2hvd0V4dGVuZENoaWxkID0gZmFsc2U7XG4gICAgaWYgKHZpZXdUeXBlICE9PSAnY3JlYXRlJykgdGhpcy5jcmVhdGUgPSBmYWxzZTtcbiAgfVxuXG4gIGNsb3NlQ2hpbGRWaWV3KHZpZXdUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHZpZXdUeXBlKSB7XG4gICAgICBjYXNlICdjb2x1bW4nOlxuICAgICAgICB0aGlzLnNob3dDb2x1bW5DaGlsZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZpbHRlcic6XG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlckNoaWxkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc29ydCc6XG4gICAgICAgIHRoaXMuc2hvd1NvcnRDaGlsZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIHRoaXMuc2hvd1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXhwb3J0JzpcbiAgICAgICAgdGhpcy5zaG93RXhwb3J0Q2hpbGQgPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpbXBvcnQnOlxuICAgICAgICB0aGlzLnNob3dJbXBvcnRDaGlsZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2V4dGVuZCc6XG4gICAgICAgIHRoaXMuc2hvd0V4dGVuZENoaWxkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY3JlYXRlJzpcbiAgICAgICAgdGhpcy5jcmVhdGUgPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCh7XG4gICAgICBrZXk6IHZpZXdUeXBlLFxuICAgICAgdmFsdWU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZCB0byBnZXQgdGhlIHN0YXRlIG9mIGEgc3BlY2lmaWMgY2hpbGQgdmlld1xuICBnZXRDaGlsZFZpZXdTdGF0ZSh2aWV3VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh2aWV3VHlwZSkge1xuICAgICAgY2FzZSAnY29sdW1uJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0NvbHVtbkNoaWxkO1xuICAgICAgY2FzZSAnZmlsdGVyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0ZpbHRlckNoaWxkO1xuICAgICAgY2FzZSAnc29ydCc6XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dTb3J0Q2hpbGQ7XG4gICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93U2VsZWN0ZWQ7XG4gICAgICBjYXNlICdleHBvcnQnOlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93RXhwb3J0Q2hpbGQ7XG4gICAgICBjYXNlICdpbXBvcnQnOlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93SW1wb3J0Q2hpbGQ7XG4gICAgICBjYXNlICdleHRlbmQnOlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93RXh0ZW5kQ2hpbGQ7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VhcmNoVmFsdWUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gdmFsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxuICA8ZGl2IGNsYXNzPVwiZHYtc2VhcmNoLWdyb3VwXCI+XG4gICAgPGRpdiAqbmdJZj1cInZpZXdTdGF0ZS5pc1RvZ2dsZVwiIGNsYXNzPVwidG9nZ2xlLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJ0b2dnbGVWaWV3KClcIiBbbmdDbGFzc109XCJidXR0b25DbGFzc1wiPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIFtpY29uXT1cInRhYmxlSWNvblwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCIhaXNUYWJsZVZpZXdcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIiFpc1RhYmxlVmlldyA/IGFjdGl2ZUljb25DbGFzcyA6IGljb25DbGFzc1wiXG4gICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgW2ljb25dPVwiY2FyZEljb25cIlxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaXNUYWJsZVZpZXdcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cImlzVGFibGVWaWV3ID8gYWN0aXZlSWNvbkNsYXNzIDogaWNvbkNsYXNzXCJcbiAgICAgICAgICBbd2lkdGhdPVwiMjVcIlxuICAgICAgICAgIFtoZWlnaHRdPVwiMjVcIlxuICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTZWFyY2ggSW5wdXQgLS0+XG4gICAgPGRpdlxuICAgICAgW3N0eWxlLndpZHRoXT1cImlucHV0V2lkdGhcIlxuICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNTZWFyY2hcIlxuICAgID5cbiAgICAgIDx2ZXJiZW4tc3ZnIFtpY29uXT1cIidzZWFyY2gyJ1wiIFt3aWR0aF09XCIyMFwiIFtoZWlnaHRdPVwiMjBcIj48L3ZlcmJlbi1zdmc+XG4gICAgICA8aW5wdXRcbiAgICAgICAgKm5nSWY9XCIhdXNlVHdvV2F5QmluZGluZ1wiXG4gICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoJ1wiXG4gICAgICAgIChpbnB1dCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlcl09XCInMCdcIlxuICAgICAgICBbdmFsdWVdPVwic2VhcmNoVmFsdWVcIlxuICAgICAgLz5cbiAgICAgIDxpbnB1dFxuICAgICAgICAqbmdJZj1cInVzZVR3b1dheUJpbmRpbmdcIlxuICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlYXJjaCdcIlxuICAgICAgICAoaW5wdXQpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIFtzdHlsZS5ib3JkZXJdPVwiJzAnXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXG4gICAgICAvPlxuICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgKm5nSWY9XCJzZWFyY2hWYWx1ZS5sZW5ndGggPiAwXCJcbiAgICAgICAgW2ljb25dPVwiJ2Nsb3NlJ1wiXG4gICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgIChjbGljayk9XCJvbkNsZWFyU2VhcmNoKClcIlxuICAgICAgICBjbGFzcz1cImNsb3NlLWljb24tY2xhc3NcIlxuICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZHYtYWN0aW9uc1wiPlxuICAgIDwhLS0gQ29sdW1uIFNlY3Rpb24gLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW2FwcE91dFNpZGVDbGlja109XCJzaG93Q29sdW1uQ2hpbGRcIlxuICAgICAgKG91dFNpZGVDbGljayk9XCJjbG9zZUNoaWxkVmlldygnY29sdW1uJylcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNDb2x1bW4gJiYgaXNUYWJsZVZpZXdcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5UZW1wbGF0ZTsgZWxzZSBkZWZhdWx0Q29sdW1uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb2x1bW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiWydkdi1hY3Rpb24nLCBjb2x1bW5DdXN0b21DbGFzcyA/IGNvbHVtbkN1c3RvbUNsYXNzIDogJyddXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJzaG93Q29sdW1uQ2hpbGRcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGlsZFZpZXcoJ2NvbHVtbicpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtpY29uXT1cIidjb2x1bW4nXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgIDxzcGFuPkNvbHVtbnM8L3NwYW5cbiAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJkdi1jb3VudFwiPnt7IHNlbGVjdGVkQ29sdW1uQ291bnQgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiXG4gICAgICAgICAgY2xhc3M9XCJkYXRhLXZpZXctZWxlbWVudFwiXG4gICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwic2hvd0NvbHVtbkNoaWxkID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8IS0tIEtlcHQgaW4gdGhlIERPTSAoaGlkZGVuIHZpYSBkaXNwbGF5KSByYXRoZXIgdGhhbiAqbmdJZiBzbyB0aGVcbiAgICAgICAgICAgICAgcHJvamVjdGVkIHBhbmVsIHN0YXlzIGNoYW5nZS1kZXRlY3RlZCBhbmQgcmVmbGVjdHMgaG9zdCBzdGF0ZVxuICAgICAgICAgICAgICB1cGRhdGVzIChlLmcuIHJlc3RvcmVkIGNvbHVtbiBhcnJhbmdlbWVudCkgZXZlbiB3aGlsZSBjb2xsYXBzZWQuIC0tPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb2x1bW4tY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gRmlsdGVyIFNlY3Rpb24gLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW2FwcE91dFNpZGVDbGlja109XCJzaG93RmlsdGVyQ2hpbGRcIlxuICAgICAgKG91dFNpZGVDbGljayk9XCJjbG9zZUNoaWxkVmlldygnZmlsdGVyJylcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNGaWx0ZXJcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0RmlsdGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGaWx0ZXI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiWydkdi1hY3Rpb24nLCBmaWx0ZXJDdXN0b21DbGFzcyA/IGZpbHRlckN1c3RvbUNsYXNzIDogJyddXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJzaG93RmlsdGVyQ2hpbGRcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGlsZFZpZXcoJ2ZpbHRlcicpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtpY29uXT1cIidmaWx0ZXInXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgIDxzcGFuPkZpbHRlcjwvc3BhblxuICAgICAgICAgID48c3BhbiBjbGFzcz1cImR2LWNvdW50XCI+e3sgc2VsZWN0ZWRGaWx0ZXJUYWJsZUNvdW50IH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBbc3R5bGUuei1pbmRleF09XCJ6SW5kZXhcIlxuICAgICAgICAgIGNsYXNzPVwiZGF0YS12aWV3LWVsZW1lbnRcIlxuICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cInNob3dGaWx0ZXJDaGlsZCA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSBLZXB0IGluIHRoZSBET00gKGhpZGRlbiB2aWEgZGlzcGxheSkgcmF0aGVyIHRoYW4gKm5nSWYgc28gdGhlXG4gICAgICAgICAgICAgICBwcm9qZWN0ZWQgcGFuZWwgc3RheXMgY2hhbmdlLWRldGVjdGVkIGFuZCByZWZsZWN0cyBob3N0IHN0YXRlXG4gICAgICAgICAgICAgICB1cGRhdGVzIChlLmcuIHJlc3RvcmVkIGZpbHRlcnMpIGV2ZW4gd2hpbGUgY29sbGFwc2VkLiAtLT5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmlsdGVyLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLWltcG9ydCBTZWN0aW9uLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW2FwcE91dFNpZGVDbGlja109XCJzaG93SW1wb3J0Q2hpbGRcIlxuICAgICAgKG91dFNpZGVDbGljayk9XCJjbG9zZUNoaWxkVmlldygnaW1wb3J0JylcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNJbXBvcnRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbXBvcnRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0SW1wb3J0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRJbXBvcnQ+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiWydkdi1hY3Rpb24nLCBpbXBvcnRDdXN0b21DbGFzcyA/IGltcG9ydEN1c3RvbUNsYXNzIDogJyddXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJzaG93SW1wb3J0Q2hpbGRcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGlsZFZpZXcoJ2ltcG9ydCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtpY29uXT1cIidmaWxlJ1wiPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICA8c3Bhbj5JbXBvcnQ8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiXG4gICAgICAgICAgY2xhc3M9XCJkYXRhLXZpZXctZWxlbWVudFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgKm5nSWY9XCJzaG93SW1wb3J0Q2hpbGRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiW2ltcG9ydC1jb250ZW50XVwiXG4gICAgICAgICAgPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gU29ydCBTZWN0aW9uIC0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFthcHBPdXRTaWRlQ2xpY2tdPVwic2hvd1NvcnRDaGlsZFwiXG4gICAgICAob3V0U2lkZUNsaWNrKT1cImNsb3NlQ2hpbGRWaWV3KCdzb3J0JylcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNTb3J0XCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic29ydFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRTb3J0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTb3J0PlxuICAgICAgICA8c3BhblxuICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnZHYtYWN0aW9uJywgc29ydEN1c3RvbUNsYXNzID8gc29ydEN1c3RvbUNsYXNzIDogJyddXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJzaG93U29ydENoaWxkXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2hpbGRWaWV3KCdzb3J0JylcIlxuICAgICAgICA+XG4gICAgICAgICAgPHZlcmJlbi1zdmcgW3dpZHRoXT1cIjE1XCIgW2ljb25dPVwiJ3NvcnQnXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgIDxzcGFuPlNvcnQ8L3NwYW4+PHNwYW4gY2xhc3M9XCJkdi1jb3VudFwiPnt7IHNlbGVjdGVkU29ydENvdW50IH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgW3N0eWxlLnotaW5kZXhdPVwiekluZGV4XCIgY2xhc3M9XCJkYXRhLXZpZXctZWxlbWVudFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICAqbmdJZj1cInNob3dTb3J0Q2hpbGRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiW3NvcnQtY29udGVudF1cIlxuICAgICAgICAgID48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tRXh0ZW5kIFNlY3Rpb24tLT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbYXBwT3V0U2lkZUNsaWNrXT1cInNob3dFeHRlbmRDaGlsZFwiXG4gICAgICAob3V0U2lkZUNsaWNrKT1cImNsb3NlQ2hpbGRWaWV3KCdleHRlbmQnKVwiXG4gICAgICAqbmdJZj1cInZpZXdTdGF0ZS5pc0V4dGVuZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4dGVuZFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRFeHRlbmRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEV4dGVuZD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBbbmdDbGFzc109XCJbJ2R2LWFjdGlvbicsIGltcG9ydEN1c3RvbUNsYXNzID8gZXh0ZW5kQ3VzdG9tQ2xhc3MgOiAnJ11cIlxuICAgICAgICAgIFtjbGFzcy5pcy1vcGVuXT1cInNob3dFeHRlbmRDaGlsZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNoaWxkVmlldygnZXh0ZW5kJylcIlxuICAgICAgICA+XG4gICAgICAgICAgPHZlcmJlbi1zdmcgW3dpZHRoXT1cIjE1XCIgW2ljb25dPVwiJ2V4dGVuZCdcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgPHNwYW4+RXh0ZW5kPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBbc3R5bGUuei1pbmRleF09XCJ6SW5kZXhcIlxuICAgICAgICAgIGNsYXNzPVwiZGF0YS12aWV3LWVsZW1lbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0ltcG9ydENoaWxkXCJcbiAgICAgICAgICAgIHNlbGVjdD1cIltleHRlbmQtY29udGVudF1cIlxuICAgICAgICAgID48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIEV4cG9ydCBTZWN0aW9uIC0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFthcHBPdXRTaWRlQ2xpY2tdPVwic2hvd0V4cG9ydENoaWxkXCJcbiAgICAgIChvdXRTaWRlQ2xpY2spPVwiY2xvc2VDaGlsZFZpZXcoJ2V4cG9ydCcpXCJcbiAgICAgICpuZ0lmPVwidmlld1N0YXRlLmlzRXhwb3J0XCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXhwb3J0VGVtcGxhdGU7IGVsc2UgZGVmYXVsdEV4cG9ydFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RXhwb3J0PlxuICAgICAgICA8c3BhblxuICAgICAgICAgIFtuZ0NsYXNzXT1cIlsnZHYtYWN0aW9uJywgZXhwb3J0Q3VzdG9tQ2xhc3MgPyBleHBvcnRDdXN0b21DbGFzcyA6ICcnXVwiXG4gICAgICAgICAgW2NsYXNzLmlzLW9wZW5dPVwic2hvd0V4cG9ydENoaWxkXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2hpbGRWaWV3KCdleHBvcnQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dmVyYmVuLXN2ZyBbd2lkdGhdPVwiMTVcIiBbaWNvbl09XCInZXhwb3J0J1wiPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICBFeHBvcnRcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiIGNsYXNzPVwiZGF0YS12aWV3LWVsZW1lbnRcIj5cbiAgICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgKm5nSWY9XCJzaG93RXhwb3J0Q2hpbGRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiW2V4cG9ydC1jb250ZW50XVwiXG4gICAgICAgICAgPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBTZWxlY3QgU2VjdGlvbiAtLT5cbiAgICA8IS0tIDxkaXYgKm5nSWY9XCJ2aWV3U3RhdGUuaXNTZWxlY3RcIj5cbiAgICAgPHNwYW5cbiAgICAgICBbbmdDbGFzc109XCJbXG4gICAgICAgICAnZmxleCBnYXAgdGV4dC14cyBpdGVtcy1jZW50ZXIgcGQgcm91bmRlZCBjdXJzb3ItcG9pbnRlcicsXG4gICAgICAgICBzZWxlY3RDdXN0b21DbGFzcyA/IHNlbGVjdEN1c3RvbUNsYXNzIDogJydcbiAgICAgICBdXCJcbiAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIndmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UtYWx0KSdcIlxuICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGlsZFZpZXcoJ3NlbGVjdCcpXCJcbiAgICAgPlxuICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtpY29uXT1cIidzZWxlY3QnXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgIDxzcGFuPlNlbGVjdDwvc3Bhbj5cbiAgICAgICA8dmVyYmVuLXN2ZyBbd2lkdGhdPVwiNlwiIFtpY29uXT1cIidjaGV2cm9uLWRvd24nXCI+PC92ZXJiZW4tc3ZnPlxuICAgICA8L3NwYW4+XG4gICA8L2Rpdj4gLS0+XG5cbiAgICA8IS0tIENyZWF0ZSBCdXR0b24gamotLT5cblxuICAgIDxkaXZcbiAgICAgIFthcHBPdXRTaWRlQ2xpY2tdPVwiY3JlYXRlXCJcbiAgICAgIChvdXRTaWRlQ2xpY2spPVwiY2xvc2VDaGlsZFZpZXcoJ2NyZWF0ZScpXCJcbiAgICAgICpuZ0lmPVwidmlld1N0YXRlLmlzQ3JlYXRlXCJcbiAgICA+XG4gICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgW2JnQ29sb3JdPVwiJ3ZhcigtLXZibi1jb2xvci1wcmltYXJ5KSdcIlxuICAgICAgICBbYnV0dG9uQ2xhc3NdPVwiY3JlYXRlQ3VzdG9tQ2xhc3NcIlxuICAgICAgICBbdGV4dENvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itb24tcHJpbWFyeSknXCJcbiAgICAgICAgW3N2Z109XCInYWRkJ1wiXG4gICAgICAgIFtzdmdQb3NpdGlvbl09XCIncmlnaHQnXCJcbiAgICAgICAgW3RleHRdPVwiJ0NyZWF0ZSBOZXcnXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNoaWxkVmlldygnY3JlYXRlJylcIlxuICAgICAgPlxuICAgICAgPC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjcmVhdGVUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0Q3JlYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDcmVhdGU+XG4gICAgICAgIDxkaXYgW3N0eWxlLnotaW5kZXhdPVwiekluZGV4XCIgY2xhc3M9XCJkYXRhLXZpZXctZWxlbWVudFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiY3JlYXRlXCIgc2VsZWN0PVwiW2NyZWF0ZS1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBDaGlsZHJlbiAvIEN1c3RvbSBhY3Rpb24gYnV0dG9ucyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hpbGRyZW47IGVsc2UgZGVmYXVsdENoaWxkcmVuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiJGFueShjaGlsZHJlbilcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDaGlsZHJlbj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjaGlsZHJlbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBHcmlkIGFuZCBMaXN0IFZpZXcgSGFuZGxpbmcgLS0+XG48ZGl2ICpuZ0lmPVwiaXNUYWJsZVZpZXc7IGVsc2UgbGlzdFZpZXdUZW1wbGF0ZVwiPlxuICA8ZGl2IFtzdHlsZS5vdmVyZmxvd109XCInYXV0bydcIiBbY2xhc3NdPVwidGFibGVDbGFzc1wiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZS1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbGlzdFZpZXdUZW1wbGF0ZT5cbiAgPGRpdiBbY2xhc3NdPVwiY2FyZENsYXNzXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NhcmQtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2RhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBb0I5QyxNQUFNLE9BQU8saUJBQWlCO0lBZ0VSO0lBL0RYLFdBQVcsQ0FBVTtJQUNyQixTQUFTLENBQVU7SUFDbkIsZUFBZSxHQUFZLEVBQUUsQ0FBQztJQUM5QixpQkFBaUIsR0FBWSxFQUFFLENBQUM7SUFDaEMsaUJBQWlCLEdBQVksRUFBRSxDQUFDO0lBQ2hDLGVBQWUsR0FBWSxFQUFFLENBQUM7SUFDOUIsaUJBQWlCLEdBQVksRUFBRSxDQUFDO0lBQ2hDLGlCQUFpQixHQUFZLEVBQUUsQ0FBQztJQUNoQyxpQkFBaUIsR0FBWSxFQUFFLENBQUM7SUFDaEMsaUJBQWlCLEdBQVksRUFBRSxDQUFDO0lBQ2hDLE1BQU0sR0FBWSxDQUFDLENBQUM7SUFDcEIsaUJBQWlCLEdBQVcsRUFBRSxDQUFDO0lBQy9CLFNBQVMsR0FBVyxRQUFRLENBQUM7SUFDN0IsUUFBUSxHQUFXLFdBQVcsQ0FBQztJQUMvQixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLFVBQVUs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SztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQzRCLG9CQUFvQjtzQkFBdEQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW50ZXJmYWNlIFZpZXdTdGF0ZSB7XG4gIGlzU2VhcmNoPzogYm9vbGVhbjtcbiAgaXNDb2x1bW4/OiBib29sZWFuO1xuICBpc0ZpbHRlcj86IGJvb2xlYW47XG4gIGlzU29ydD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgaXNTZWxlY3Q/OiBib29sZWFuO1xuICBpc0NyZWF0ZT86IGJvb2xlYW47XG4gIGlzVG9nZ2xlPzogYm9vbGVhbjtcbiAgaXNJbXBvcnQ/OiBib29sZWFuO1xuICBpc0V4dGVuZD86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS12aWV3LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYnV0dG9uQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb25DbGFzcz86IHN0cmluZztcbiAgQElucHV0KCkgYWN0aXZlSWNvbkNsYXNzPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNvbHVtbkN1c3RvbUNsYXNzPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGZpbHRlckN1c3RvbUNsYXNzPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHNvcnRDdXN0b21DbGFzcz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBleHRlbmRDdXN0b21DbGFzcz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBleHBvcnRDdXN0b21DbGFzcz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzZWxlY3RDdXN0b21DbGFzcz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpbXBvcnRDdXN0b21DbGFzcz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB6SW5kZXg/OiBudW1iZXIgPSA1O1xuICBASW5wdXQoKSBjcmVhdGVDdXN0b21DbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRhYmxlSWNvbjogc3RyaW5nID0gJ2dyaWQtMyc7XG4gIEBJbnB1dCgpIGNhcmRJY29uOiBzdHJpbmcgPSAnbGlzdC12aWV3JztcbiAgQElucHV0KCkgY2FyZENsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdGFibGVDbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHNlYXJjaEtleTogc3RyaW5nID0gJ3NlYXJjaCc7XG4gIEBJbnB1dCgpIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBzZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBASW5wdXQoKSB2aWV3U3RhdGU6IFZpZXdTdGF0ZSA9IHtcbiAgICBpc1NlYXJjaDogdHJ1ZSxcbiAgICBpc0NvbHVtbjogdHJ1ZSxcbiAgICBpc0ZpbHRlcjogdHJ1ZSxcbiAgICBpc1NvcnQ6IHRydWUsXG4gICAgaXNFeHBvcnQ6IHRydWUsXG4gICAgaXNTZWxlY3Q6IHRydWUsXG4gICAgaXNDcmVhdGU6IHRydWUsXG4gICAgaXNUb2dnbGU6IHRydWUsXG4gICAgaXNFeHRlbmQ6IHRydWUsXG4gICAgaXNJbXBvcnQ6IHRydWUsXG4gIH07XG5cbiAgQElucHV0KCkgc2VhcmNoVGVtcGxhdGU/OiBOb2RlO1xuICBASW5wdXQoKSBpbXBvcnRUZW1wbGF0ZT86IE5vZGU7XG4gIEBJbnB1dCgpIGNvbHVtblRlbXBsYXRlPzogTm9kZTtcbiAgQElucHV0KCkgZXh0ZW5kVGVtcGxhdGU/OiBOb2RlO1xuICBASW5wdXQoKSBmaWx0ZXJUZW1wbGF0ZT86IE5vZGU7XG4gIEBJbnB1dCgpIHNvcnRUZW1wbGF0ZT86IE5vZGU7XG4gIEBJbnB1dCgpIGNoaWxkcmVuPzogTm9kZTtcbiAgQElucHV0KCkgZXhwb3J0VGVtcGxhdGU/OiBOb2RlO1xuICBASW5wdXQoKSBjcmVhdGVUZW1wbGF0ZT86IE5vZGU7XG4gIEBJbnB1dCgpIHNlbGVjdGVkQ29sdW1uQ291bnQ/OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBzZWxlY3RlZFNvcnRDb3VudDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgc2VsZWN0ZWRGaWx0ZXJUYWJsZUNvdW50OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBpbnB1dFdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIG1pbGxpc2Vjb25kczogbnVtYmVyID0gNDAwO1xuICBASW5wdXQoKSBzaG93Q29sdW1uQ2hpbGQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd1NvcnRDaGlsZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93RmlsdGVyQ2hpbGQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0ltcG9ydENoaWxkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dFeHBvcnRDaGlsZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93RXh0ZW5kQ2hpbGQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY3JlYXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB1c2VUd29XYXlCaW5kaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgaXNUYWJsZVZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHZpZXdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBzdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBrZXk6IHN0cmluZzsgdmFsdWU6IGJvb2xlYW4gfT4oKTtcbiAgQE91dHB1dCgpIG9uU2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+KCk7XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlckNvbnRlbnRXcmFwcGVyJykgZmlsdGVyQ29udGVudFdyYXBwZXIhOiBFbGVtZW50UmVmO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0XG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5taWxsaXNlY29uZHMpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5vblNlYXJjaENoYW5nZS5lbWl0KHsga2V5OiB0aGlzLnNlYXJjaEtleSwgdmFsdWUgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZVZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5pc1RhYmxlVmlldyA9ICF0aGlzLmlzVGFibGVWaWV3O1xuICAgIHRoaXMudmlld0NoYW5nZS5lbWl0KHRoaXMuaXNUYWJsZVZpZXcpO1xuICB9XG5cbiAgb25TZWFyY2goZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH1cbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgb25DbGVhclNlYXJjaCgpIHtcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgdGhpcy5vblNlYXJjaENoYW5nZS5lbWl0KHsga2V5OiB0aGlzLnNlYXJjaEtleSwgdmFsdWU6IHRoaXMuc2VhcmNoVmFsdWUgfSk7XG4gIH1cbiAgdG9nZ2xlQ2hpbGRWaWV3KHZpZXdUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHZpZXdUeXBlKSB7XG4gICAgICBjYXNlICdjb2x1bW4nOlxuICAgICAgICB0aGlzLnNob3dDb2x1bW5DaGlsZCA9ICF0aGlzLnNob3dDb2x1bW5DaGlsZDtcbiAgICAgICAgdGhpcy5yZXNldENoaWxkVmlld3NFeGNlcHQoJ2NvbHVtbicpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZpbHRlcic6XG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlckNoaWxkID0gIXRoaXMuc2hvd0ZpbHRlckNoaWxkO1xuICAgICAgICB0aGlzLnJlc2V0Q2hpbGRWaWV3c0V4Y2VwdCgnZmlsdGVyJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc29ydCc6XG4gICAgICAgIHRoaXMuc2hvd1NvcnRDaGlsZCA9ICF0aGlzLnNob3dTb3J0Q2hpbGQ7XG4gICAgICAgIHRoaXMucmVzZXRDaGlsZFZpZXdzRXhjZXB0KCdzb3J0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgdGhpcy5zaG93U2VsZWN0ZWQgPSAhdGhpcy5zaG93U2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMucmVzZXRDaGlsZFZpZXdzRXhjZXB0KCdzZWxlY3QnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdleHBvcnQnOlxuICAgICAgICB0aGlzLnNob3dFeHBvcnRDaGlsZCA9ICF0aGlzLnNob3dFeHBvcnRDaGlsZDtcbiAgICAgICAgdGhpcy5yZXNldENoaWxkVmlld3NFeGNlcHQoJ2V4cG9ydCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ltcG9ydCc6XG4gICAgICAgIHRoaXMuc2hvd0ltcG9ydENoaWxkID0gIXRoaXMuc2hvd0ltcG9ydENoaWxkO1xuICAgICAgICB0aGlzLnJlc2V0Q2hpbGRWaWV3c0V4Y2VwdCgnaW1wb3J0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXh0ZW5kJzpcbiAgICAgICAgdGhpcy5zaG93RXh0ZW5kQ2hpbGQgPSAhdGhpcy5zaG93RXh0ZW5kQ2hpbGQ7XG4gICAgICAgIHRoaXMucmVzZXRDaGlsZFZpZXdzRXhjZXB0KCdleHRlbmQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICB0aGlzLmNyZWF0ZSA9ICF0aGlzLmNyZWF0ZTtcbiAgICAgICAgdGhpcy5yZXNldENoaWxkVmlld3NFeGNlcHQoJ2NyZWF0ZScpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KHtcbiAgICAgIGtleTogdmlld1R5cGUsXG4gICAgICB2YWx1ZTogdGhpcy5nZXRDaGlsZFZpZXdTdGF0ZSh2aWV3VHlwZSksXG4gICAgfSk7XG4gIH1cbiAgcmVzZXRDaGlsZFZpZXdzRXhjZXB0KHZpZXdUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodmlld1R5cGUgIT09ICdjb2x1bW4nKSB0aGlzLnNob3dDb2x1bW5DaGlsZCA9IGZhbHNlO1xuICAgIGlmICh2aWV3VHlwZSAhPT0gJ2ZpbHRlcicpIHRoaXMuc2hvd0ZpbHRlckNoaWxkID0gZmFsc2U7XG4gICAgaWYgKHZpZXdUeXBlICE9PSAnc29ydCcpIHRoaXMuc2hvd1NvcnRDaGlsZCA9IGZhbHNlO1xuICAgIGlmICh2aWV3VHlwZSAhPT0gJ3NlbGVjdCcpIHRoaXMuc2hvd1NlbGVjdGVkID0gZmFsc2U7XG4gICAgaWYgKHZpZXdUeXBlICE9PSAnZXhwb3J0JykgdGhpcy5zaG93RXhwb3J0Q2hpbGQgPSBmYWxzZTtcbiAgICBpZiAodmlld1R5cGUgIT09ICdpbXBvcnQnKSB0aGlzLnNob3dJbXBvcnRDaGlsZCA9IGZhbHNlO1xuICAgIGlmICh2aWV3VHlwZSAhPT0gJ2V4dGVuZCcpIHRoaXMuc2hvd0V4dGVuZENoaWxkID0gZmFsc2U7XG4gICAgaWYgKHZpZXdUeXBlICE9PSAnY3JlYXRlJykgdGhpcy5jcmVhdGUgPSBmYWxzZTtcbiAgfVxuXG4gIGNsb3NlQ2hpbGRWaWV3KHZpZXdUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHZpZXdUeXBlKSB7XG4gICAgICBjYXNlICdjb2x1bW4nOlxuICAgICAgICB0aGlzLnNob3dDb2x1bW5DaGlsZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZpbHRlcic6XG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlckNoaWxkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc29ydCc6XG4gICAgICAgIHRoaXMuc2hvd1NvcnRDaGlsZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIHRoaXMuc2hvd1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXhwb3J0JzpcbiAgICAgICAgdGhpcy5zaG93RXhwb3J0Q2hpbGQgPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpbXBvcnQnOlxuICAgICAgICB0aGlzLnNob3dJbXBvcnRDaGlsZCA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2V4dGVuZCc6XG4gICAgICAgIHRoaXMuc2hvd0V4dGVuZENoaWxkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY3JlYXRlJzpcbiAgICAgICAgdGhpcy5jcmVhdGUgPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCh7XG4gICAgICBrZXk6IHZpZXdUeXBlLFxuICAgICAgdmFsdWU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZCB0byBnZXQgdGhlIHN0YXRlIG9mIGEgc3BlY2lmaWMgY2hpbGQgdmlld1xuICBnZXRDaGlsZFZpZXdTdGF0ZSh2aWV3VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh2aWV3VHlwZSkge1xuICAgICAgY2FzZSAnY29sdW1uJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0NvbHVtbkNoaWxkO1xuICAgICAgY2FzZSAnZmlsdGVyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0ZpbHRlckNoaWxkO1xuICAgICAgY2FzZSAnc29ydCc6XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dTb3J0Q2hpbGQ7XG4gICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93U2VsZWN0ZWQ7XG4gICAgICBjYXNlICdleHBvcnQnOlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93RXhwb3J0Q2hpbGQ7XG4gICAgICBjYXNlICdpbXBvcnQnOlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93SW1wb3J0Q2hpbGQ7XG4gICAgICBjYXNlICdleHRlbmQnOlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93RXh0ZW5kQ2hpbGQ7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2VhcmNoVmFsdWUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gdmFsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxuICA8ZGl2IGNsYXNzPVwiZHYtc2VhcmNoLWdyb3VwXCI+XG4gICAgPGRpdiAqbmdJZj1cInZpZXdTdGF0ZS5pc1RvZ2dsZVwiIGNsYXNzPVwidG9nZ2xlLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJ0b2dnbGVWaWV3KClcIiBbbmdDbGFzc109XCJidXR0b25DbGFzc1wiPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIFtpY29uXT1cInRhYmxlSWNvblwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCIhaXNUYWJsZVZpZXdcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIiFpc1RhYmxlVmlldyA/IGFjdGl2ZUljb25DbGFzcyA6IGljb25DbGFzc1wiXG4gICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgW2ljb25dPVwiY2FyZEljb25cIlxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaXNUYWJsZVZpZXdcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cImlzVGFibGVWaWV3ID8gYWN0aXZlSWNvbkNsYXNzIDogaWNvbkNsYXNzXCJcbiAgICAgICAgICBbd2lkdGhdPVwiMjVcIlxuICAgICAgICAgIFtoZWlnaHRdPVwiMjVcIlxuICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBTZWFyY2ggSW5wdXQgLS0+XG4gICAgPGRpdlxuICAgICAgW3N0eWxlLndpZHRoXT1cImlucHV0V2lkdGhcIlxuICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNTZWFyY2hcIlxuICAgID5cbiAgICAgIDx2ZXJiZW4tc3ZnIFtpY29uXT1cIidzZWFyY2gyJ1wiIFt3aWR0aF09XCIyMFwiIFtoZWlnaHRdPVwiMjBcIj48L3ZlcmJlbi1zdmc+XG4gICAgICA8aW5wdXRcbiAgICAgICAgKm5nSWY9XCIhdXNlVHdvV2F5QmluZGluZ1wiXG4gICAgICAgIFt0eXBlXT1cIid0ZXh0J1wiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoJ1wiXG4gICAgICAgIChpbnB1dCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlcl09XCInMCdcIlxuICAgICAgICBbdmFsdWVdPVwic2VhcmNoVmFsdWVcIlxuICAgICAgLz5cbiAgICAgIDxpbnB1dFxuICAgICAgICAqbmdJZj1cInVzZVR3b1dheUJpbmRpbmdcIlxuICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlYXJjaCdcIlxuICAgICAgICAoaW5wdXQpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIFtzdHlsZS5ib3JkZXJdPVwiJzAnXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXG4gICAgICAvPlxuICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgKm5nSWY9XCJzZWFyY2hWYWx1ZS5sZW5ndGggPiAwXCJcbiAgICAgICAgW2ljb25dPVwiJ2Nsb3NlJ1wiXG4gICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgIChjbGljayk9XCJvbkNsZWFyU2VhcmNoKClcIlxuICAgICAgICBjbGFzcz1cImNsb3NlLWljb24tY2xhc3NcIlxuICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgZHYtYWN0aW9uc1wiPlxuICAgIDwhLS0gQ29sdW1uIFNlY3Rpb24gLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW2FwcE91dFNpZGVDbGlja109XCJzaG93Q29sdW1uQ2hpbGRcIlxuICAgICAgKG91dFNpZGVDbGljayk9XCJjbG9zZUNoaWxkVmlldygnY29sdW1uJylcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNDb2x1bW4gJiYgaXNUYWJsZVZpZXdcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5UZW1wbGF0ZTsgZWxzZSBkZWZhdWx0Q29sdW1uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb2x1bW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiWydkdi1hY3Rpb24nLCBjb2x1bW5DdXN0b21DbGFzcyA/IGNvbHVtbkN1c3RvbUNsYXNzIDogJyddXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJzaG93Q29sdW1uQ2hpbGRcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGlsZFZpZXcoJ2NvbHVtbicpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtpY29uXT1cIidjb2x1bW4nXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgIDxzcGFuPkNvbHVtbnM8L3NwYW5cbiAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJkdi1jb3VudFwiPnt7IHNlbGVjdGVkQ29sdW1uQ291bnQgfX08L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiXG4gICAgICAgICAgY2xhc3M9XCJkYXRhLXZpZXctZWxlbWVudFwiXG4gICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwic2hvd0NvbHVtbkNoaWxkID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8IS0tIEtlcHQgaW4gdGhlIERPTSAoaGlkZGVuIHZpYSBkaXNwbGF5KSByYXRoZXIgdGhhbiAqbmdJZiBzbyB0aGVcbiAgICAgICAgICAgICAgcHJvamVjdGVkIHBhbmVsIHN0YXlzIGNoYW5nZS1kZXRlY3RlZCBhbmQgcmVmbGVjdHMgaG9zdCBzdGF0ZVxuICAgICAgICAgICAgICB1cGRhdGVzIChlLmcuIHJlc3RvcmVkIGNvbHVtbiBhcnJhbmdlbWVudCkgZXZlbiB3aGlsZSBjb2xsYXBzZWQuIC0tPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb2x1bW4tY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gRmlsdGVyIFNlY3Rpb24gLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW2FwcE91dFNpZGVDbGlja109XCJzaG93RmlsdGVyQ2hpbGRcIlxuICAgICAgKG91dFNpZGVDbGljayk9XCJjbG9zZUNoaWxkVmlldygnZmlsdGVyJylcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNGaWx0ZXJcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0RmlsdGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGaWx0ZXI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiWydkdi1hY3Rpb24nLCBmaWx0ZXJDdXN0b21DbGFzcyA/IGZpbHRlckN1c3RvbUNsYXNzIDogJyddXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJzaG93RmlsdGVyQ2hpbGRcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGlsZFZpZXcoJ2ZpbHRlcicpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtpY29uXT1cIidmaWx0ZXInXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgIDxzcGFuPkZpbHRlcjwvc3BhblxuICAgICAgICAgID48c3BhbiBjbGFzcz1cImR2LWNvdW50XCI+e3sgc2VsZWN0ZWRGaWx0ZXJUYWJsZUNvdW50IH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBbc3R5bGUuei1pbmRleF09XCJ6SW5kZXhcIlxuICAgICAgICAgIGNsYXNzPVwiZGF0YS12aWV3LWVsZW1lbnRcIlxuICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cInNob3dGaWx0ZXJDaGlsZCA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSBLZXB0IGluIHRoZSBET00gKGhpZGRlbiB2aWEgZGlzcGxheSkgcmF0aGVyIHRoYW4gKm5nSWYgc28gdGhlXG4gICAgICAgICAgICAgICBwcm9qZWN0ZWQgcGFuZWwgc3RheXMgY2hhbmdlLWRldGVjdGVkIGFuZCByZWZsZWN0cyBob3N0IHN0YXRlXG4gICAgICAgICAgICAgICB1cGRhdGVzIChlLmcuIHJlc3RvcmVkIGZpbHRlcnMpIGV2ZW4gd2hpbGUgY29sbGFwc2VkLiAtLT5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmlsdGVyLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLWltcG9ydCBTZWN0aW9uLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW2FwcE91dFNpZGVDbGlja109XCJzaG93SW1wb3J0Q2hpbGRcIlxuICAgICAgKG91dFNpZGVDbGljayk9XCJjbG9zZUNoaWxkVmlldygnaW1wb3J0JylcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNJbXBvcnRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbXBvcnRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0SW1wb3J0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRJbXBvcnQ+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiWydkdi1hY3Rpb24nLCBpbXBvcnRDdXN0b21DbGFzcyA/IGltcG9ydEN1c3RvbUNsYXNzIDogJyddXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJzaG93SW1wb3J0Q2hpbGRcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGlsZFZpZXcoJ2ltcG9ydCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtpY29uXT1cIidmaWxlJ1wiPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICA8c3Bhbj5JbXBvcnQ8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBbc3R5bGUuei1pbmRleF09XCJ6SW5kZXhcIiBjbGFzcz1cImRhdGEtdmlldy1lbGVtZW50XCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0ltcG9ydENoaWxkXCJcbiAgICAgICAgICAgIHNlbGVjdD1cIltpbXBvcnQtY29udGVudF1cIlxuICAgICAgICAgID48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIFNvcnQgU2VjdGlvbiAtLT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbYXBwT3V0U2lkZUNsaWNrXT1cInNob3dTb3J0Q2hpbGRcIlxuICAgICAgKG91dFNpZGVDbGljayk9XCJjbG9zZUNoaWxkVmlldygnc29ydCcpXCJcbiAgICAgICpuZ0lmPVwidmlld1N0YXRlLmlzU29ydFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNvcnRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0U29ydFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0U29ydD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBbbmdDbGFzc109XCJbJ2R2LWFjdGlvbicsIHNvcnRDdXN0b21DbGFzcyA/IHNvcnRDdXN0b21DbGFzcyA6ICcnXVwiXG4gICAgICAgICAgW2NsYXNzLmlzLW9wZW5dPVwic2hvd1NvcnRDaGlsZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNoaWxkVmlldygnc29ydCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtpY29uXT1cIidzb3J0J1wiPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICA8c3Bhbj5Tb3J0PC9zcGFuPjxzcGFuIGNsYXNzPVwiZHYtY291bnRcIj57eyBzZWxlY3RlZFNvcnRDb3VudCB9fTwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiIGNsYXNzPVwiZGF0YS12aWV3LWVsZW1lbnRcIj5cbiAgICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgKm5nSWY9XCJzaG93U29ydENoaWxkXCJcbiAgICAgICAgICAgIHNlbGVjdD1cIltzb3J0LWNvbnRlbnRdXCJcbiAgICAgICAgICA+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLUV4dGVuZCBTZWN0aW9uLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW2FwcE91dFNpZGVDbGlja109XCJzaG93RXh0ZW5kQ2hpbGRcIlxuICAgICAgKG91dFNpZGVDbGljayk9XCJjbG9zZUNoaWxkVmlldygnZXh0ZW5kJylcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNFeHRlbmRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleHRlbmRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0RXh0ZW5kXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRFeHRlbmQ+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiWydkdi1hY3Rpb24nLCBpbXBvcnRDdXN0b21DbGFzcyA/IGV4dGVuZEN1c3RvbUNsYXNzIDogJyddXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJzaG93RXh0ZW5kQ2hpbGRcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGlsZFZpZXcoJ2V4dGVuZCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtpY29uXT1cIidleHRlbmQnXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgIDxzcGFuPkV4dGVuZDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiIGNsYXNzPVwiZGF0YS12aWV3LWVsZW1lbnRcIj5cbiAgICAgICAgICA8bmctY29udGVudFxuICAgICAgICAgICAgKm5nSWY9XCJzaG93SW1wb3J0Q2hpbGRcIlxuICAgICAgICAgICAgc2VsZWN0PVwiW2V4dGVuZC1jb250ZW50XVwiXG4gICAgICAgICAgPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gRXhwb3J0IFNlY3Rpb24gLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgW2FwcE91dFNpZGVDbGlja109XCJzaG93RXhwb3J0Q2hpbGRcIlxuICAgICAgKG91dFNpZGVDbGljayk9XCJjbG9zZUNoaWxkVmlldygnZXhwb3J0JylcIlxuICAgICAgKm5nSWY9XCJ2aWV3U3RhdGUuaXNFeHBvcnRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleHBvcnRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0RXhwb3J0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRFeHBvcnQ+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgW25nQ2xhc3NdPVwiWydkdi1hY3Rpb24nLCBleHBvcnRDdXN0b21DbGFzcyA/IGV4cG9ydEN1c3RvbUNsYXNzIDogJyddXCJcbiAgICAgICAgICBbY2xhc3MuaXMtb3Blbl09XCJzaG93RXhwb3J0Q2hpbGRcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGlsZFZpZXcoJ2V4cG9ydCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCIxNVwiIFtpY29uXT1cIidleHBvcnQnXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgIEV4cG9ydFxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgW3N0eWxlLnotaW5kZXhdPVwiekluZGV4XCIgY2xhc3M9XCJkYXRhLXZpZXctZWxlbWVudFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICAqbmdJZj1cInNob3dFeHBvcnRDaGlsZFwiXG4gICAgICAgICAgICBzZWxlY3Q9XCJbZXhwb3J0LWNvbnRlbnRdXCJcbiAgICAgICAgICA+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFNlbGVjdCBTZWN0aW9uIC0tPlxuICAgIDwhLS0gPGRpdiAqbmdJZj1cInZpZXdTdGF0ZS5pc1NlbGVjdFwiPlxuICAgICA8c3BhblxuICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICdmbGV4IGdhcCB0ZXh0LXhzIGl0ZW1zLWNlbnRlciBwZCByb3VuZGVkIGN1cnNvci1wb2ludGVyJyxcbiAgICAgICAgIHNlbGVjdEN1c3RvbUNsYXNzID8gc2VsZWN0Q3VzdG9tQ2xhc3MgOiAnJ1xuICAgICAgIF1cIlxuICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itc3VyZmFjZS1hbHQpJ1wiXG4gICAgICAgKGNsaWNrKT1cInRvZ2dsZUNoaWxkVmlldygnc2VsZWN0JylcIlxuICAgICA+XG4gICAgICAgPHZlcmJlbi1zdmcgW3dpZHRoXT1cIjE1XCIgW2ljb25dPVwiJ3NlbGVjdCdcIj48L3ZlcmJlbi1zdmc+XG4gICAgICAgPHNwYW4+U2VsZWN0PC9zcGFuPlxuICAgICAgIDx2ZXJiZW4tc3ZnIFt3aWR0aF09XCI2XCIgW2ljb25dPVwiJ2NoZXZyb24tZG93bidcIj48L3ZlcmJlbi1zdmc+XG4gICAgIDwvc3Bhbj5cbiAgIDwvZGl2PiAtLT5cblxuICAgIDwhLS0gQ3JlYXRlIEJ1dHRvbiBqai0tPlxuXG4gICAgPGRpdlxuICAgICAgW2FwcE91dFNpZGVDbGlja109XCJjcmVhdGVcIlxuICAgICAgKG91dFNpZGVDbGljayk9XCJjbG9zZUNoaWxkVmlldygnbnVsbCcpXCJcbiAgICAgICpuZ0lmPVwidmlld1N0YXRlLmlzQ3JlYXRlXCJcbiAgICA+XG4gICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgW2JnQ29sb3JdPVwiJ3ZhcigtLXZibi1jb2xvci1wcmltYXJ5KSdcIlxuICAgICAgICBbYnV0dG9uQ2xhc3NdPVwiY3JlYXRlQ3VzdG9tQ2xhc3NcIlxuICAgICAgICBbdGV4dENvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itb24tcHJpbWFyeSknXCJcbiAgICAgICAgW3N2Z109XCInYWRkJ1wiXG4gICAgICAgIFtzdmdQb3NpdGlvbl09XCIncmlnaHQnXCJcbiAgICAgICAgW3RleHRdPVwiJ0NyZWF0ZSBOZXcnXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNoaWxkVmlldygnY3JlYXRlJylcIlxuICAgICAgPlxuICAgICAgPC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjcmVhdGVUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0Q3JlYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDcmVhdGU+XG4gICAgICAgIDxkaXYgW3N0eWxlLnotaW5kZXhdPVwiekluZGV4XCIgY2xhc3M9XCJkYXRhLXZpZXctZWxlbWVudFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiY3JlYXRlXCIgc2VsZWN0PVwiW2NyZWF0ZS1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBDaGlsZHJlbiAvIEN1c3RvbSBhY3Rpb24gYnV0dG9ucyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hpbGRyZW47IGVsc2UgZGVmYXVsdENoaWxkcmVuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiJGFueShjaGlsZHJlbilcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDaGlsZHJlbj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjaGlsZHJlbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBHcmlkIGFuZCBMaXN0IFZpZXcgSGFuZGxpbmcgLS0+XG48ZGl2ICpuZ0lmPVwiaXNUYWJsZVZpZXc7IGVsc2UgbGlzdFZpZXdUZW1wbGF0ZVwiPlxuICA8ZGl2IFtzdHlsZS5vdmVyZmxvd109XCInYXV0bydcIiBbY2xhc3NdPVwidGFibGVDbGFzc1wiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZS1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbGlzdFZpZXdUZW1wbGF0ZT5cbiAgPGRpdiBbY2xhc3NdPVwiY2FyZENsYXNzXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NhcmQtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal manifest of built-in SVG icon names shipped in `verben-ng-ui/assets/{default,outline,solid}`.
|
|
3
|
+
* Used by `SvgComponent` to avoid issuing failing HTTP 404 requests to `assets/lib-icons/...`
|
|
4
|
+
* when a consumer passes an application-level custom icon from `assets/icons/...`.
|
|
5
|
+
*/
|
|
6
|
+
const SHARED_LIB_ICONS = [
|
|
7
|
+
'academic-cap', 'adjustments-horizontal', 'adjustments-vertical', 'archive-box',
|
|
8
|
+
'archive-box-arrow-down', 'archive-box-x-mark', 'arrow-down', 'arrow-down-circle',
|
|
9
|
+
'arrow-down-left', 'arrow-down-on-square', 'arrow-down-on-square-stack',
|
|
10
|
+
'arrow-down-right', 'arrow-down-tray', 'arrow-left', 'arrow-left-circle',
|
|
11
|
+
'arrow-left-end-on-rectangle', 'arrow-left-on-rectangle',
|
|
12
|
+
'arrow-left-start-on-rectangle', 'arrow-long-down', 'arrow-long-left',
|
|
13
|
+
'arrow-long-right', 'arrow-long-up', 'arrow-path', 'arrow-path-rounded-square',
|
|
14
|
+
'arrow-right', 'arrow-right-circle', 'arrow-right-end-on-rectangle',
|
|
15
|
+
'arrow-right-on-rectangle', 'arrow-right-start-on-rectangle', 'arrow-small-down',
|
|
16
|
+
'arrow-small-left', 'arrow-small-right', 'arrow-small-up',
|
|
17
|
+
'arrow-top-right-on-square', 'arrow-trending-down', 'arrow-trending-up',
|
|
18
|
+
'arrow-turn-down-left', 'arrow-turn-down-right', 'arrow-turn-left-down',
|
|
19
|
+
'arrow-turn-left-up', 'arrow-turn-right-down', 'arrow-turn-right-up',
|
|
20
|
+
'arrow-turn-up-left', 'arrow-turn-up-right', 'arrow-up', 'arrow-up-circle',
|
|
21
|
+
'arrow-up-left', 'arrow-up-on-square', 'arrow-up-on-square-stack',
|
|
22
|
+
'arrow-up-right', 'arrow-up-tray', 'arrow-uturn-down', 'arrow-uturn-left',
|
|
23
|
+
'arrow-uturn-right', 'arrow-uturn-up', 'arrows-pointing-in',
|
|
24
|
+
'arrows-pointing-out', 'arrows-right-left', 'arrows-up-down', 'at-symbol',
|
|
25
|
+
'backspace', 'backward', 'banknotes', 'bars-2', 'bars-3', 'bars-3-bottom-left',
|
|
26
|
+
'bars-3-bottom-right', 'bars-3-center-left', 'bars-4', 'bars-arrow-down',
|
|
27
|
+
'bars-arrow-up', 'battery-0', 'battery-100', 'battery-50', 'beaker', 'bell',
|
|
28
|
+
'bell-alert', 'bell-slash', 'bell-snooze', 'bold', 'bolt', 'bolt-slash',
|
|
29
|
+
'book-open', 'bookmark', 'bookmark-slash', 'bookmark-square', 'briefcase',
|
|
30
|
+
'bug-ant', 'building-library', 'building-office', 'building-office-2',
|
|
31
|
+
'building-storefront', 'cake', 'calculator', 'calendar', 'calendar-date-range',
|
|
32
|
+
'calendar-days', 'camera', 'chart-bar', 'chart-bar-square', 'chart-pie',
|
|
33
|
+
'chat-bubble-bottom-center', 'chat-bubble-bottom-center-text',
|
|
34
|
+
'chat-bubble-left', 'chat-bubble-left-ellipsis', 'chat-bubble-left-right',
|
|
35
|
+
'chat-bubble-oval-left', 'chat-bubble-oval-left-ellipsis', 'check',
|
|
36
|
+
'check-badge', 'check-circle', 'chevron-double-down', 'chevron-double-left',
|
|
37
|
+
'chevron-double-right', 'chevron-double-up', 'chevron-down', 'chevron-left',
|
|
38
|
+
'chevron-right', 'chevron-up', 'chevron-up-down', 'circle-stack', 'clipboard',
|
|
39
|
+
'clipboard-document', 'clipboard-document-check', 'clipboard-document-list',
|
|
40
|
+
'clock', 'cloud', 'cloud-arrow-down', 'cloud-arrow-up', 'code-bracket',
|
|
41
|
+
'code-bracket-square', 'cog', 'cog-6-tooth', 'cog-8-tooth', 'command-line',
|
|
42
|
+
'computer-desktop', 'cpu-chip', 'credit-card', 'cube', 'cube-transparent',
|
|
43
|
+
'currency-bangladeshi', 'currency-dollar', 'currency-euro', 'currency-pound',
|
|
44
|
+
'currency-rupee', 'currency-yen', 'cursor-arrow-rays', 'cursor-arrow-ripple',
|
|
45
|
+
'device-phone-mobile', 'device-tablet', 'divide', 'document',
|
|
46
|
+
'document-arrow-down', 'document-arrow-up', 'document-chart-bar',
|
|
47
|
+
'document-check', 'document-currency-bangladeshi', 'document-currency-dollar',
|
|
48
|
+
'document-currency-euro', 'document-currency-pound', 'document-currency-rupee',
|
|
49
|
+
'document-currency-yen', 'document-duplicate', 'document-magnifying-glass',
|
|
50
|
+
'document-minus', 'document-plus', 'document-text', 'ellipsis-horizontal',
|
|
51
|
+
'ellipsis-horizontal-circle', 'ellipsis-vertical', 'envelope', 'envelope-open',
|
|
52
|
+
'equals', 'exclamation-circle', 'exclamation-triangle', 'eye', 'eye-dropper',
|
|
53
|
+
'eye-slash', 'face-frown', 'face-smile', 'film', 'finger-print', 'fire', 'flag',
|
|
54
|
+
'folder', 'folder-arrow-down', 'folder-minus', 'folder-open', 'folder-plus',
|
|
55
|
+
'forward', 'funnel', 'gif', 'gift', 'gift-top', 'globe-alt', 'globe-americas',
|
|
56
|
+
'globe-asia-australia', 'globe-europe-africa', 'h1', 'h2', 'h3', 'hand-raised',
|
|
57
|
+
'hand-thumb-down', 'hand-thumb-up', 'hashtag', 'heart', 'home', 'home-modern',
|
|
58
|
+
'identification', 'inbox', 'inbox-arrow-down', 'inbox-stack',
|
|
59
|
+
'information-circle', 'italic', 'key', 'language', 'lifebuoy', 'light-bulb',
|
|
60
|
+
'link', 'link-slash', 'list-bullet', 'lock-closed', 'lock-open',
|
|
61
|
+
'magnifying-glass', 'magnifying-glass-circle', 'magnifying-glass-minus',
|
|
62
|
+
'magnifying-glass-plus', 'map', 'map-pin', 'megaphone', 'microphone', 'minus',
|
|
63
|
+
'minus-circle', 'minus-small', 'moon', 'musical-note', 'newspaper', 'no-symbol',
|
|
64
|
+
'numbered-list', 'paint-brush', 'paper-airplane', 'paper-clip', 'pause',
|
|
65
|
+
'pause-circle', 'pencil', 'pencil-square', 'percent-badge', 'phone',
|
|
66
|
+
'phone-arrow-down-left', 'phone-arrow-up-right', 'phone-x-mark', 'photo', 'play',
|
|
67
|
+
'play-circle', 'play-pause', 'plus', 'plus-circle', 'plus-small', 'power',
|
|
68
|
+
'presentation-chart-bar', 'presentation-chart-line', 'printer', 'puzzle-piece',
|
|
69
|
+
'qr-code', 'question-mark-circle', 'queue-list', 'radio', 'receipt-percent',
|
|
70
|
+
'receipt-refund', 'rectangle-group', 'rectangle-stack', 'rocket-launch', 'rss',
|
|
71
|
+
'scale', 'scissors', 'server', 'server-stack', 'share', 'shield-check',
|
|
72
|
+
'shield-exclamation', 'shopping-bag', 'shopping-cart', 'signal', 'signal-slash',
|
|
73
|
+
'slash', 'sparkles', 'speaker-wave', 'speaker-x-mark', 'square-2-stack',
|
|
74
|
+
'square-3-stack-3d', 'squares-2x2', 'squares-plus', 'star', 'stop',
|
|
75
|
+
'stop-circle', 'strikethrough', 'sun', 'swatch', 'table-cells', 'tag', 'ticket',
|
|
76
|
+
'trash', 'trophy', 'truck', 'tv', 'underline', 'user', 'user-circle',
|
|
77
|
+
'user-group', 'user-minus', 'user-plus', 'users', 'variable', 'video-camera',
|
|
78
|
+
'video-camera-slash', 'view-columns', 'viewfinder-circle', 'wallet', 'wifi',
|
|
79
|
+
'window', 'wrench', 'wrench-screwdriver', 'x-circle', 'x-mark',
|
|
80
|
+
];
|
|
81
|
+
const DEFAULT_ONLY_LIB_ICONS = [
|
|
82
|
+
'2fa-mail', '2fa-sms', 'accounting', 'accounting-new', 'add', 'alert',
|
|
83
|
+
'apple-logo', 'arrow-down-3', 'attach', 'cardViewAlt', 'chart-of-account',
|
|
84
|
+
'chat', 'check-2', 'checked', 'chevron', 'chevron-right-thick', 'close',
|
|
85
|
+
'close-circle', 'close-circle-full', 'close-no-circle', 'column', 'dangerInfo',
|
|
86
|
+
'dashboard', 'defaultPageIcon', 'delete', 'edit', 'edit-icon', 'elipsis',
|
|
87
|
+
'emoji', 'error', 'export', 'eye-closed', 'file', 'filter', 'gear',
|
|
88
|
+
'google-logo', 'grid', 'grid-2', 'grid-3', 'info', 'list', 'list-view',
|
|
89
|
+
'long-arrow', 'menu', 'microsoft-logo', 'not-allowed', 'off', 'on',
|
|
90
|
+
'procurement', 'sales', 'search', 'search2', 'security', 'select',
|
|
91
|
+
'skip-forward', 'sort', 'square-dot', 'stat', 'success', 'table-view',
|
|
92
|
+
'terminal', 'tick', 'warning', 'workflow',
|
|
93
|
+
];
|
|
94
|
+
const VARIANT_ICON_SET = new Set(SHARED_LIB_ICONS);
|
|
95
|
+
const DEFAULT_ICON_SET = new Set([
|
|
96
|
+
...SHARED_LIB_ICONS,
|
|
97
|
+
...DEFAULT_ONLY_LIB_ICONS,
|
|
98
|
+
]);
|
|
99
|
+
export const LIB_ICON_SETS = {
|
|
100
|
+
default: DEFAULT_ICON_SET,
|
|
101
|
+
outline: VARIANT_ICON_SET,
|
|
102
|
+
solid: VARIANT_ICON_SET,
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWljb24tbWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL3N2Zy9saWItaWNvbi1tYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBc0I7SUFDMUMsY0FBYyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLGFBQWE7SUFDL0Usd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLG1CQUFtQjtJQUNqRixpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEI7SUFDdkUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQjtJQUN4RSw2QkFBNkIsRUFBRSx5QkFBeUI7SUFDeEQsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCO0lBQ3JFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsMkJBQTJCO0lBQzlFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSw4QkFBOEI7SUFDbkUsMEJBQTBCLEVBQUUsZ0NBQWdDLEVBQUUsa0JBQWtCO0lBQ2hGLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQjtJQUN6RCwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUI7SUFDdkUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCO0lBQ3ZFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQjtJQUNwRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsaUJBQWlCO0lBQzFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEI7SUFDakUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQjtJQUN6RSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0I7SUFDM0QscUJBQXFC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O0NBQzFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUF3QixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hFLE1BQU0sZ0JBQWdCLEdBQXdCLElBQUksR0FBRyxDQUFDO0lBQ3BELEdBQUcsZ0JBQWdCO0lBQ25CLEdBQUcsc0JBQXNCO0NBQzFCLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBaUU7SUFDekYsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLEtBQUssRUFBRSxnQkFBZ0I7Q0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJuYWwgbWFuaWZlc3Qgb2YgYnVpbHQtaW4gU1ZHIGljb24gbmFtZXMgc2hpcHBlZCBpbiBgdmVyYmVuLW5nLXVpL2Fzc2V0cy97ZGVmYXVsdCxvdXRsaW5lLHNvbGlkfWAuXG4gKiBVc2VkIGJ5IGBTdmdDb21wb25lbnRgIHRvIGF2b2lkIGlzc3VpbmcgZmFpbGluZyBIVFRQIDQwNCByZXF1ZXN0cyB0byBgYXNzZXRzL2xpYi1pY29ucy8uLi5gXG4gKiB3aGVuIGEgY29uc3VtZXIgcGFzc2VzIGFuIGFwcGxpY2F0aW9uLWxldmVsIGN1c3RvbSBpY29uIGZyb20gYGFzc2V0cy9pY29ucy8uLi5gLlxuICovXG5jb25zdCBTSEFSRURfTElCX0lDT05TOiByZWFkb25seSBzdHJpbmdbXSA9IFtcbiAgJ2FjYWRlbWljLWNhcCcsICdhZGp1c3RtZW50cy1ob3Jpem9udGFsJywgJ2FkanVzdG1lbnRzLXZlcnRpY2FsJywgJ2FyY2hpdmUtYm94JyxcbiAgJ2FyY2hpdmUtYm94LWFycm93LWRvd24nLCAnYXJjaGl2ZS1ib3gteC1tYXJrJywgJ2Fycm93LWRvd24nLCAnYXJyb3ctZG93bi1jaXJjbGUnLFxuICAnYXJyb3ctZG93bi1sZWZ0JywgJ2Fycm93LWRvd24tb24tc3F1YXJlJywgJ2Fycm93LWRvd24tb24tc3F1YXJlLXN0YWNrJyxcbiAgJ2Fycm93LWRvd24tcmlnaHQnLCAnYXJyb3ctZG93bi10cmF5JywgJ2Fycm93LWxlZnQnLCAnYXJyb3ctbGVmdC1jaXJjbGUnLFxuICAnYXJyb3ctbGVmdC1lbmQtb24tcmVjdGFuZ2xlJywgJ2Fycm93LWxlZnQtb24tcmVjdGFuZ2xlJyxcbiAgJ2Fycm93LWxlZnQtc3RhcnQtb24tcmVjdGFuZ2xlJywgJ2Fycm93LWxvbmctZG93bicsICdhcnJvdy1sb25nLWxlZnQnLFxuICAnYXJyb3ctbG9uZy1yaWdodCcsICdhcnJvdy1sb25nLXVwJywgJ2Fycm93LXBhdGgnLCAnYXJyb3ctcGF0aC1yb3VuZGVkLXNxdWFyZScsXG4gICdhcnJvdy1yaWdodCcsICdhcnJvdy1yaWdodC1jaXJjbGUnLCAnYXJyb3ctcmlnaHQtZW5kLW9uLXJlY3RhbmdsZScsXG4gICdhcnJvdy1yaWdodC1vbi1yZWN0YW5nbGUnLCAnYXJyb3ctcmlnaHQtc3RhcnQtb24tcmVjdGFuZ2xlJywgJ2Fycm93LXNtYWxsLWRvd24nLFxuICAnYXJyb3ctc21hbGwtbGVmdCcsICdhcnJvdy1zbWFsbC1yaWdodCcsICdhcnJvdy1zbWFsbC11cCcsXG4gICdhcnJvdy10b3AtcmlnaHQtb24tc3F1YXJlJywgJ2Fycm93LXRyZW5kaW5nLWRvd24nLCAnYXJyb3ctdHJlbmRpbmctdXAnLFxuICAnYXJyb3ctdHVybi1kb3duLWxlZnQnLCAnYXJyb3ctdHVybi1kb3duLXJpZ2h0JywgJ2Fycm93LXR1cm4tbGVmdC1kb3duJyxcbiAgJ2Fycm93LXR1cm4tbGVmdC11cCcsICdhcnJvdy10dXJuLXJpZ2h0LWRvd24nLCAnYXJyb3ctdHVybi1yaWdodC11cCcsXG4gICdhcnJvdy10dXJuLXVwLWxlZnQnLCAnYXJyb3ctdHVybi11cC1yaWdodCcsICdhcnJvdy11cCcsICdhcnJvdy11cC1jaXJjbGUnLFxuICAnYXJyb3ctdXAtbGVmdCcsICdhcnJvdy11cC1vbi1zcXVhcmUnLCAnYXJyb3ctdXAtb24tc3F1YXJlLXN0YWNrJyxcbiAgJ2Fycm93LXVwLXJpZ2h0JywgJ2Fycm93LXVwLXRyYXknLCAnYXJyb3ctdXR1cm4tZG93bicsICdhcnJvdy11dHVybi1sZWZ0JyxcbiAgJ2Fycm93LXV0dXJuLXJpZ2h0JywgJ2Fycm93LXV0dXJuLXVwJywgJ2Fycm93cy1wb2ludGluZy1pbicsXG4gICdhcnJvd3MtcG9pbnRpbmctb3V0JywgJ2Fycm93cy1yaWdodC1sZWZ0JywgJ2Fycm93cy11cC1kb3duJywgJ2F0LXN5bWJvbCcsXG4gICdiYWNrc3BhY2UnLCAnYmFja3dhcmQnLCAnYmFua25vdGVzJywgJ2JhcnMtMicsICdiYXJzLTMnLCAnYmFycy0zLWJvdHRvbS1sZWZ0JyxcbiAgJ2JhcnMtMy1ib3R0b20tcmlnaHQnLCAnYmFycy0zLWNlbnRlci1sZWZ0JywgJ2JhcnMtNCcsICdiYXJzLWFycm93LWRvd24nLFxuICAnYmFycy1hcnJvdy11cCcsICdiYXR0ZXJ5LTAnLCAnYmF0dGVyeS0xMDAnLCAnYmF0dGVyeS01MCcsICdiZWFrZXInLCAnYmVsbCcsXG4gICdiZWxsLWFsZXJ0JywgJ2JlbGwtc2xhc2gnLCAnYmVsbC1zbm9vemUnLCAnYm9sZCcsICdib2x0JywgJ2JvbHQtc2xhc2gnLFxuICAnYm9vay1vcGVuJywgJ2Jvb2ttYXJrJywgJ2Jvb2ttYXJrLXNsYXNoJywgJ2Jvb2ttYXJrLXNxdWFyZScsICdicmllZmNhc2UnLFxuICAnYnVnLWFudCcsICdidWlsZGluZy1saWJyYXJ5JywgJ2J1aWxkaW5nLW9mZmljZScsICdidWlsZGluZy1vZmZpY2UtMicsXG4gICdidWlsZGluZy1zdG9yZWZyb250JywgJ2Nha2UnLCAnY2FsY3VsYXRvcicsICdjYWxlbmRhcicsICdjYWxlbmRhci1kYXRlLXJhbmdlJyxcbiAgJ2NhbGVuZGFyLWRheXMnLCAnY2FtZXJhJywgJ2NoYXJ0LWJhcicsICdjaGFydC1iYXItc3F1YXJlJywgJ2NoYXJ0LXBpZScsXG4gICdjaGF0LWJ1YmJsZS1ib3R0b20tY2VudGVyJywgJ2NoYXQtYnViYmxlLWJvdHRvbS1jZW50ZXItdGV4dCcsXG4gICdjaGF0LWJ1YmJsZS1sZWZ0JywgJ2NoYXQtYnViYmxlLWxlZnQtZWxsaXBzaXMnLCAnY2hhdC1idWJibGUtbGVmdC1yaWdodCcsXG4gICdjaGF0LWJ1YmJsZS1vdmFsLWxlZnQnLCAnY2hhdC1idWJibGUtb3ZhbC1sZWZ0LWVsbGlwc2lzJywgJ2NoZWNrJyxcbiAgJ2NoZWNrLWJhZGdlJywgJ2NoZWNrLWNpcmNsZScsICdjaGV2cm9uLWRvdWJsZS1kb3duJywgJ2NoZXZyb24tZG91YmxlLWxlZnQnLFxuICAnY2hldnJvbi1kb3VibGUtcmlnaHQnLCAnY2hldnJvbi1kb3VibGUtdXAnLCAnY2hldnJvbi1kb3duJywgJ2NoZXZyb24tbGVmdCcsXG4gICdjaGV2cm9uLXJpZ2h0JywgJ2NoZXZyb24tdXAnLCAnY2hldnJvbi11cC1kb3duJywgJ2NpcmNsZS1zdGFjaycsICdjbGlwYm9hcmQnLFxuICAnY2xpcGJvYXJkLWRvY3VtZW50JywgJ2NsaXBib2FyZC1kb2N1bWVudC1jaGVjaycsICdjbGlwYm9hcmQtZG9jdW1lbnQtbGlzdCcsXG4gICdjbG9jaycsICdjbG91ZCcsICdjbG91ZC1hcnJvdy1kb3duJywgJ2Nsb3VkLWFycm93LXVwJywgJ2NvZGUtYnJhY2tldCcsXG4gICdjb2RlLWJyYWNrZXQtc3F1YXJlJywgJ2NvZycsICdjb2ctNi10b290aCcsICdjb2ctOC10b290aCcsICdjb21tYW5kLWxpbmUnLFxuICAnY29tcHV0ZXItZGVza3RvcCcsICdjcHUtY2hpcCcsICdjcmVkaXQtY2FyZCcsICdjdWJlJywgJ2N1YmUtdHJhbnNwYXJlbnQnLFxuICAnY3VycmVuY3ktYmFuZ2xhZGVzaGknLCAnY3VycmVuY3ktZG9sbGFyJywgJ2N1cnJlbmN5LWV1cm8nLCAnY3VycmVuY3ktcG91bmQnLFxuICAnY3VycmVuY3ktcnVwZWUnLCAnY3VycmVuY3kteWVuJywgJ2N1cnNvci1hcnJvdy1yYXlzJywgJ2N1cnNvci1hcnJvdy1yaXBwbGUnLFxuICAnZGV2aWNlLXBob25lLW1vYmlsZScsICdkZXZpY2UtdGFibGV0JywgJ2RpdmlkZScsICdkb2N1bWVudCcsXG4gICdkb2N1bWVudC1hcnJvdy1kb3duJywgJ2RvY3VtZW50LWFycm93LXVwJywgJ2RvY3VtZW50LWNoYXJ0LWJhcicsXG4gICdkb2N1bWVudC1jaGVjaycsICdkb2N1bWVudC1jdXJyZW5jeS1iYW5nbGFkZXNoaScsICdkb2N1bWVudC1jdXJyZW5jeS1kb2xsYXInLFxuICAnZG9jdW1lbnQtY3VycmVuY3ktZXVybycsICdkb2N1bWVudC1jdXJyZW5jeS1wb3VuZCcsICdkb2N1bWVudC1jdXJyZW5jeS1ydXBlZScsXG4gICdkb2N1bWVudC1jdXJyZW5jeS15ZW4nLCAnZG9jdW1lbnQtZHVwbGljYXRlJywgJ2RvY3VtZW50LW1hZ25pZnlpbmctZ2xhc3MnLFxuICAnZG9jdW1lbnQtbWludXMnLCAnZG9jdW1lbnQtcGx1cycsICdkb2N1bWVudC10ZXh0JywgJ2VsbGlwc2lzLWhvcml6b250YWwnLFxuICAnZWxsaXBzaXMtaG9yaXpvbnRhbC1jaXJjbGUnLCAnZWxsaXBzaXMtdmVydGljYWwnLCAnZW52ZWxvcGUnLCAnZW52ZWxvcGUtb3BlbicsXG4gICdlcXVhbHMnLCAnZXhjbGFtYXRpb24tY2lyY2xlJywgJ2V4Y2xhbWF0aW9uLXRyaWFuZ2xlJywgJ2V5ZScsICdleWUtZHJvcHBlcicsXG4gICdleWUtc2xhc2gnLCAnZmFjZS1mcm93bicsICdmYWNlLXNtaWxlJywgJ2ZpbG0nLCAnZmluZ2VyLXByaW50JywgJ2ZpcmUnLCAnZmxhZycsXG4gICdmb2xkZXInLCAnZm9sZGVyLWFycm93LWRvd24nLCAnZm9sZGVyLW1pbnVzJywgJ2ZvbGRlci1vcGVuJywgJ2ZvbGRlci1wbHVzJyxcbiAgJ2ZvcndhcmQnLCAnZnVubmVsJywgJ2dpZicsICdnaWZ0JywgJ2dpZnQtdG9wJywgJ2dsb2JlLWFsdCcsICdnbG9iZS1hbWVyaWNhcycsXG4gICdnbG9iZS1hc2lhLWF1c3RyYWxpYScsICdnbG9iZS1ldXJvcGUtYWZyaWNhJywgJ2gxJywgJ2gyJywgJ2gzJywgJ2hhbmQtcmFpc2VkJyxcbiAgJ2hhbmQtdGh1bWItZG93bicsICdoYW5kLXRodW1iLXVwJywgJ2hhc2h0YWcnLCAnaGVhcnQnLCAnaG9tZScsICdob21lLW1vZGVybicsXG4gICdpZGVudGlmaWNhdGlvbicsICdpbmJveCcsICdpbmJveC1hcnJvdy1kb3duJywgJ2luYm94LXN0YWNrJyxcbiAgJ2luZm9ybWF0aW9uLWNpcmNsZScsICdpdGFsaWMnLCAna2V5JywgJ2xhbmd1YWdlJywgJ2xpZmVidW95JywgJ2xpZ2h0LWJ1bGInLFxuICAnbGluaycsICdsaW5rLXNsYXNoJywgJ2xpc3QtYnVsbGV0JywgJ2xvY2stY2xvc2VkJywgJ2xvY2stb3BlbicsXG4gICdtYWduaWZ5aW5nLWdsYXNzJywgJ21hZ25pZnlpbmctZ2xhc3MtY2lyY2xlJywgJ21hZ25pZnlpbmctZ2xhc3MtbWludXMnLFxuICAnbWFnbmlmeWluZy1nbGFzcy1wbHVzJywgJ21hcCcsICdtYXAtcGluJywgJ21lZ2FwaG9uZScsICdtaWNyb3Bob25lJywgJ21pbnVzJyxcbiAgJ21pbnVzLWNpcmNsZScsICdtaW51cy1zbWFsbCcsICdtb29uJywgJ211c2ljYWwtbm90ZScsICduZXdzcGFwZXInLCAnbm8tc3ltYm9sJyxcbiAgJ251bWJlcmVkLWxpc3QnLCAncGFpbnQtYnJ1c2gnLCAncGFwZXItYWlycGxhbmUnLCAncGFwZXItY2xpcCcsICdwYXVzZScsXG4gICdwYXVzZS1jaXJjbGUnLCAncGVuY2lsJywgJ3BlbmNpbC1zcXVhcmUnLCAncGVyY2VudC1iYWRnZScsICdwaG9uZScsXG4gICdwaG9uZS1hcnJvdy1kb3duLWxlZnQnLCAncGhvbmUtYXJyb3ctdXAtcmlnaHQnLCAncGhvbmUteC1tYXJrJywgJ3Bob3RvJywgJ3BsYXknLFxuICAncGxheS1jaXJjbGUnLCAncGxheS1wYXVzZScsICdwbHVzJywgJ3BsdXMtY2lyY2xlJywgJ3BsdXMtc21hbGwnLCAncG93ZXInLFxuICAncHJlc2VudGF0aW9uLWNoYXJ0LWJhcicsICdwcmVzZW50YXRpb24tY2hhcnQtbGluZScsICdwcmludGVyJywgJ3B1enpsZS1waWVjZScsXG4gICdxci1jb2RlJywgJ3F1ZXN0aW9uLW1hcmstY2lyY2xlJywgJ3F1ZXVlLWxpc3QnLCAncmFkaW8nLCAncmVjZWlwdC1wZXJjZW50JyxcbiAgJ3JlY2VpcHQtcmVmdW5kJywgJ3JlY3RhbmdsZS1ncm91cCcsICdyZWN0YW5nbGUtc3RhY2snLCAncm9ja2V0LWxhdW5jaCcsICdyc3MnLFxuICAnc2NhbGUnLCAnc2Npc3NvcnMnLCAnc2VydmVyJywgJ3NlcnZlci1zdGFjaycsICdzaGFyZScsICdzaGllbGQtY2hlY2snLFxuICAnc2hpZWxkLWV4Y2xhbWF0aW9uJywgJ3Nob3BwaW5nLWJhZycsICdzaG9wcGluZy1jYXJ0JywgJ3NpZ25hbCcsICdzaWduYWwtc2xhc2gnLFxuICAnc2xhc2gnLCAnc3BhcmtsZXMnLCAnc3BlYWtlci13YXZlJywgJ3NwZWFrZXIteC1tYXJrJywgJ3NxdWFyZS0yLXN0YWNrJyxcbiAgJ3NxdWFyZS0zLXN0YWNrLTNkJywgJ3NxdWFyZXMtMngyJywgJ3NxdWFyZXMtcGx1cycsICdzdGFyJywgJ3N0b3AnLFxuICAnc3RvcC1jaXJjbGUnLCAnc3RyaWtldGhyb3VnaCcsICdzdW4nLCAnc3dhdGNoJywgJ3RhYmxlLWNlbGxzJywgJ3RhZycsICd0aWNrZXQnLFxuICAndHJhc2gnLCAndHJvcGh5JywgJ3RydWNrJywgJ3R2JywgJ3VuZGVybGluZScsICd1c2VyJywgJ3VzZXItY2lyY2xlJyxcbiAgJ3VzZXItZ3JvdXAnLCAndXNlci1taW51cycsICd1c2VyLXBsdXMnLCAndXNlcnMnLCAndmFyaWFibGUnLCAndmlkZW8tY2FtZXJhJyxcbiAgJ3ZpZGVvLWNhbWVyYS1zbGFzaCcsICd2aWV3LWNvbHVtbnMnLCAndmlld2ZpbmRlci1jaXJjbGUnLCAnd2FsbGV0JywgJ3dpZmknLFxuICAnd2luZG93JywgJ3dyZW5jaCcsICd3cmVuY2gtc2NyZXdkcml2ZXInLCAneC1jaXJjbGUnLCAneC1tYXJrJyxcbl07XG5cbmNvbnN0IERFRkFVTFRfT05MWV9MSUJfSUNPTlM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW1xuICAnMmZhLW1haWwnLCAnMmZhLXNtcycsICdhY2NvdW50aW5nJywgJ2FjY291bnRpbmctbmV3JywgJ2FkZCcsICdhbGVydCcsXG4gICdhcHBsZS1sb2dvJywgJ2Fycm93LWRvd24tMycsICdhdHRhY2gnLCAnY2FyZFZpZXdBbHQnLCAnY2hhcnQtb2YtYWNjb3VudCcsXG4gICdjaGF0JywgJ2NoZWNrLTInLCAnY2hlY2tlZCcsICdjaGV2cm9uJywgJ2NoZXZyb24tcmlnaHQtdGhpY2snLCAnY2xvc2UnLFxuICAnY2xvc2UtY2lyY2xlJywgJ2Nsb3NlLWNpcmNsZS1mdWxsJywgJ2Nsb3NlLW5vLWNpcmNsZScsICdjb2x1bW4nLCAnZGFuZ2VySW5mbycsXG4gICdkYXNoYm9hcmQnLCAnZGVmYXVsdFBhZ2VJY29uJywgJ2RlbGV0ZScsICdlZGl0JywgJ2VkaXQtaWNvbicsICdlbGlwc2lzJyxcbiAgJ2Vtb2ppJywgJ2Vycm9yJywgJ2V4cG9ydCcsICdleWUtY2xvc2VkJywgJ2ZpbGUnLCAnZmlsdGVyJywgJ2dlYXInLFxuICAnZ29vZ2xlLWxvZ28nLCAnZ3JpZCcsICdncmlkLTInLCAnZ3JpZC0zJywgJ2luZm8nLCAnbGlzdCcsICdsaXN0LXZpZXcnLFxuICAnbG9uZy1hcnJvdycsICdtZW51JywgJ21pY3Jvc29mdC1sb2dvJywgJ25vdC1hbGxvd2VkJywgJ29mZicsICdvbicsXG4gICdwcm9jdXJlbWVudCcsICdzYWxlcycsICdzZWFyY2gnLCAnc2VhcmNoMicsICdzZWN1cml0eScsICdzZWxlY3QnLFxuICAnc2tpcC1mb3J3YXJkJywgJ3NvcnQnLCAnc3F1YXJlLWRvdCcsICdzdGF0JywgJ3N1Y2Nlc3MnLCAndGFibGUtdmlldycsXG4gICd0ZXJtaW5hbCcsICd0aWNrJywgJ3dhcm5pbmcnLCAnd29ya2Zsb3cnLFxuXTtcblxuY29uc3QgVkFSSUFOVF9JQ09OX1NFVDogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoU0hBUkVEX0xJQl9JQ09OUyk7XG5jb25zdCBERUZBVUxUX0lDT05fU0VUOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gIC4uLlNIQVJFRF9MSUJfSUNPTlMsXG4gIC4uLkRFRkFVTFRfT05MWV9MSUJfSUNPTlMsXG5dKTtcblxuZXhwb3J0IGNvbnN0IExJQl9JQ09OX1NFVFM6IFJlY29yZDwnZGVmYXVsdCcgfCAnb3V0bGluZScgfCAnc29saWQnLCBSZWFkb25seVNldDxzdHJpbmc+PiA9IHtcbiAgZGVmYXVsdDogREVGQVVMVF9JQ09OX1NFVCxcbiAgb3V0bGluZTogVkFSSUFOVF9JQ09OX1NFVCxcbiAgc29saWQ6IFZBUklBTlRfSUNPTl9TRVQsXG59O1xuIl19
|