@unifylib/ui-lib 1.1.64 → 1.2.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/cli/generators/dashboard.js +147 -0
- package/cli/generators/form-screen.js +95 -0
- package/cli/generators/line-editor.js +110 -0
- package/cli/generators/permission-matrix.js +115 -0
- package/cli/generators/section-form.js +103 -0
- package/cli/generators/table-screen.js +181 -0
- package/cli/index.js +185 -0
- package/cli/utils.js +228 -0
- package/esm2022/lib/base-model/audit-log-entry.mjs +1 -1
- package/esm2022/lib/base-model/field-info.mjs +2 -1
- package/esm2022/lib/components/action-comment/action-comment.component.mjs +6 -5
- package/esm2022/lib/components/advanced-filter/filter-builder/filter-builder.component.mjs +8 -3
- package/esm2022/lib/components/audit-log-list/audit-log.component.mjs +58 -22
- package/esm2022/lib/components/auto-complete/auto-complete.component.mjs +11 -3
- package/esm2022/lib/components/base-form/base-form.component.mjs +1 -1
- package/esm2022/lib/components/base-form-canvas/base-form-canvas.component.mjs +72 -4
- package/esm2022/lib/components/base-table/base-table.component.mjs +81 -24
- package/esm2022/lib/components/button-actions/button-actions.component.mjs +3 -3
- package/esm2022/lib/components/editable-base-table/editable-base-table.component.mjs +3 -3
- package/esm2022/lib/components/equation-builder/equation-builder.component.mjs +9 -4
- package/esm2022/lib/components/multi-auto-complete/multi-auto-complete.component.mjs +20 -4
- package/esm2022/lib/components/paginator/paginator.component.mjs +26 -6
- package/esm2022/lib/components/permission-matrix/permission-matrix.component.mjs +46 -4
- package/esm2022/lib/components/report-details-dialog/report-details-dialog.component.mjs +3 -3
- package/esm2022/lib/components/report-form/report-form.component.mjs +3 -3
- package/esm2022/lib/components/search-bar/search-bar.component.mjs +5 -4
- package/esm2022/lib/components/section-form-canvas/section-form-canvas.component.mjs +11 -3
- package/esm2022/lib/components/shared/attachment-uploader/attachment-uploader.component.mjs +5 -3
- package/esm2022/lib/components/snackbar-static/snackbar-static.component.mjs +3 -3
- package/esm2022/lib/components/title-bar/title-bar.component.mjs +3 -3
- package/esm2022/lib/utils/base-utils.mjs +6 -3
- package/fesm2022/iq-ui-lib.mjs +375 -108
- package/fesm2022/iq-ui-lib.mjs.map +1 -1
- package/fesm2022/unifylib-ui-lib.mjs +375 -108
- package/fesm2022/unifylib-ui-lib.mjs.map +1 -1
- package/lib/base-model/audit-log-entry.d.ts +1 -0
- package/lib/base-model/field-info.d.ts +1 -0
- package/lib/components/advanced-filter/filter-builder/filter-builder.component.d.ts +2 -0
- package/lib/components/audit-log-list/audit-log.component.d.ts +6 -2
- package/lib/components/auto-complete/auto-complete.component.d.ts +2 -1
- package/lib/components/base-form-canvas/base-form-canvas.component.d.ts +5 -0
- package/lib/components/base-table/base-table.component.d.ts +11 -3
- package/lib/components/multi-auto-complete/multi-auto-complete.component.d.ts +3 -1
- package/lib/components/paginator/paginator.component.d.ts +6 -1
- package/lib/components/permission-matrix/permission-matrix.component.d.ts +5 -1
- package/lib/components/section-form-canvas/section-form-canvas.component.d.ts +3 -1
- package/lib/components/shared/attachment-uploader/attachment-uploader.component.d.ts +2 -1
- package/package.json +4 -1
|
@@ -115,7 +115,7 @@ export class TitleBarComponent {
|
|
|
115
115
|
this.onViewModeChanged(value === 'PENDING');
|
|
116
116
|
}
|
|
117
117
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TitleBarComponent, deps: [{ token: i1.Location }, { token: i2.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TitleBarComponent, isStandalone: true, selector: "app-title-bar", inputs: { pageTitle: "pageTitle", showExtractButton: "showExtractButton", totalElements: "totalElements", titleMode: "titleMode", pageInfo: "pageInfo", subTitle: "subTitle", statusDesc: "statusDesc", newAction: "newAction", extraButton: "extraButton", showDetails: "showDetails", showImport: "showImport", showButton: "showButton", extraData: "extraData", titleCorporateAdmin: "titleCorporateAdmin", hideBackButton: "hideBackButton", buttons: "buttons", buttonsDisplayMode: "buttonsDisplayMode", draftSupported: "draftSupported", isPending: "isPending", onViewModeChange: "onViewModeChange" }, outputs: { newActionClicked: "newActionClicked", extraButtonClicked: "extraButtonClicked", extractReport: "extractReport", buttonClicked: "buttonClicked", viewModeChanged: "viewModeChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row mainTitleBar gap-20 default-align\">\r\n\r\n <div class=\"column flex-auto textTitle\" >\r\n <h2 *ngIf=\"!pageInfo.hideTitle\" style=\"margin: 0;\">\r\n <span class=\"textTitle__titleMode\">{{ titleMode | translate }}</span>\r\n {{ listTitle | translate }}\r\n <span *ngIf=\"titleCorporateAdmin && isRoot\">({{ titleCorporateAdmin }})</span>\r\n {{ extraData }}\r\n </h2>\r\n <span *ngIf=\"subTitle\" class=\"textTitle__subTitle\">{{ subTitle | translate }}</span>\r\n <div *ngIf=\"pageInfo.draftSupported\" class=\"chips-container\">\r\n <mat-chip-listbox #box aria-label=\"Color selection\" [multiple]=\"false\" [value]=\"currentIsPending ? 'PENDING' : 'COMPLETED'\" (click)=\"$event.stopPropagation()\" (change)=\"onChipSelectionChange($event, box)\">\r\n <mat-chip-option [selected]=\"!currentIsPending\" [color]=\"'accent'\" value=\"COMPLETED\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"!currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'finished' | translate}}\r\n </mat-chip-option>\r\n <mat-chip-option [selected]=\"currentIsPending\" [color]=\"'accent'\" value=\"PENDING\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'todo' | translate}}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"column end-items gap-20\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" style=\"width: 100px\" *ngIf=\"!hideBackButton\" (click)=\"goBack()\" id=\"title-bar-back-btn\">\r\n <mat-icon color=\"second\">{{ backIcon }}</mat-icon>\r\n <span style=\"font-weight: bold\">{{ 'back' | translate }}</span>\r\n </button>\r\n\r\n <div class=\"row flex-auto gap-20 buttons-wrapper\">\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'dropdown'\">\r\n <button\r\n type=\"button\"\r\n *ngIf=\"buttons && buttons.length > 0\"\r\n mat-flat-button\r\n [matMenuTriggerFor]=\"actionMenu\"\r\n class=\"title-bar-action-button\"\r\n [attr.id]=\"'title-bar-action-button'\">\r\n <div class=\"button-content\">\r\n <mat-icon class=\"button-icon\">{{ buttons[0].icon }}</mat-icon>\r\n <span class=\"button-label\">{{ buttons[0].label | translate }}</span>\r\n <mat-icon class=\"button-arrow\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #actionMenu=\"matMenu\" class=\"title-bar-action-menu\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-menu-item\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-menu-item\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'list'\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["", ":host{display:block;width:100%}.mainTitleBar{display:flex;width:100%;gap:20px;align-items:center;justify-content:flex-start}.mainTitleBar.row{flex-direction:row;margin-left:0!important;margin-right:0!important;padding-bottom:20px;border-bottom:1px solid #F0EEEE}.mainTitleBar.column{flex-direction:column}.mainTitleBar .textTitle{flex:1 1 0;display:flex;flex-direction:column;width:auto;gap:12px}.mainTitleBar .textTitle h2{margin:0;padding:0;line-height:1.2}.mainTitleBar .textTitle__titleMode{font-weight:200;color:gray}.mainTitleBar .textTitle__subTitle{color:#888;font-size:16px;font-weight:300;font-style:normal}.mainTitleBar .textTitle .chips-container{margin-top:0}.mainTitleBar .end-items{display:flex;flex-direction:row;align-items:center;gap:20px}.mainTitleBar .buttons-wrapper{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-direction:row;text-align-last:end;margin-left:0!important;margin-right:0!important}.mainTitleBar .buttons-wrapper .action-btn{width:210px!important}.mainTitleBar .title-bar-action-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 12px!important;min-width:209px!important;box-shadow:none!important}.mainTitleBar .title-bar-action-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-action-button .button-content{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}.mainTitleBar .title-bar-action-button .button-icon{font-size:14px;width:14px;height:14px;color:#fff}.mainTitleBar .title-bar-action-button .button-label{font-weight:500;font-size:16px;line-height:1.2;color:#fff;white-space:nowrap;height:16px}.mainTitleBar .title-bar-action-button .button-arrow{font-size:14px;width:14px;height:14px;color:#fff;margin-left:auto}.mainTitleBar .actionButton{width:100%}.mainTitleBar .actionButton__expand{font-size:20px!important;color:var(--accent-color);margin-top:5px}.mainTitleBar .title-bar-list-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 16px!important;min-width:auto!important;box-shadow:none!important;display:flex!important;align-items:center!important;gap:8px!important;font-weight:500!important;font-size:16px!important;line-height:1.2!important;white-space:nowrap!important;text-decoration:none!important;box-sizing:border-box!important;outline:none!important;cursor:pointer!important}.mainTitleBar .title-bar-list-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-list-button mat-icon{font-size:20px!important;width:20px!important;height:28px!important;color:#fff!important;margin:0!important}.mainTitleBar .title-bar-list-button span{color:#fff!important}.mainTitleBar mat-chip-listbox{display:flex;flex-direction:row;gap:8px;align-items:center}.mainTitleBar mat-chip-listbox mat-chip-option{height:32px!important;min-height:32px!important;border-radius:8px!important;font-size:16px!important;line-height:1.2!important;font-weight:400!important;border:none!important;box-shadow:none!important;transition:all .2s ease;font-family:Lusail,sans-serif!important;padding:0!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true],.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true]{background:#0d4261!important;color:#fff!important;font-weight:500!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] .mdc-evolution-chip__text-label{color:#fff!important;font-weight:500!important;padding-left:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] mat-icon{color:#fff!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]){background:#e9e9e9!important;color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]) .mdc-evolution-chip__text-label{color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__action{padding:8px 12px!important;min-height:32px!important;display:flex!important;align-items:center!important;gap:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__text-label{padding:0!important;font-size:16px!important;line-height:1.2!important;font-family:Lusail,sans-serif!important}.mainTitleBar mat-chip-listbox mat-chip-option mat-icon{font-size:14px!important;width:14px!important;height:14px!important;margin-right:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__graphic,.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__checkmark{display:none!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__action--primary{padding:10px!important}.mainTitleBar mat-chip-listbox mat-chip-option:hover{opacity:.9}.row{display:flex;flex-direction:row;width:100%}.column{display:flex;flex-direction:column;width:auto}.fx-flex-fill{width:100%;height:100%;flex:1 1 auto}.flex-auto{flex:1 1 auto;display:flex;flex-direction:column}.end-items{align-items:flex-end}.gap-20{gap:20px}@media (max-width: 960px){.mainTitleBar.row.default-align{justify-content:flex-end}}@media (max-width: 768px){.mainTitleBar.row,.mainTitleBar.column{flex-direction:column;align-items:flex-start;gap:20px}.end-items{align-items:flex-start}}@media (max-width: 600px){.gap-20{gap:10px}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }] }); }
|
|
118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TitleBarComponent, isStandalone: true, selector: "app-title-bar", inputs: { pageTitle: "pageTitle", showExtractButton: "showExtractButton", totalElements: "totalElements", titleMode: "titleMode", pageInfo: "pageInfo", subTitle: "subTitle", statusDesc: "statusDesc", newAction: "newAction", extraButton: "extraButton", showDetails: "showDetails", showImport: "showImport", showButton: "showButton", extraData: "extraData", titleCorporateAdmin: "titleCorporateAdmin", hideBackButton: "hideBackButton", buttons: "buttons", buttonsDisplayMode: "buttonsDisplayMode", draftSupported: "draftSupported", isPending: "isPending", onViewModeChange: "onViewModeChange" }, outputs: { newActionClicked: "newActionClicked", extraButtonClicked: "extraButtonClicked", extractReport: "extractReport", buttonClicked: "buttonClicked", viewModeChanged: "viewModeChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row mainTitleBar gap-20 default-align\">\r\n\r\n <div class=\"column flex-auto textTitle\" >\r\n <h2 *ngIf=\"!pageInfo.hideTitle\" style=\"margin: 0;\">\r\n <span class=\"textTitle__titleMode\">{{ titleMode | translate }}</span>\r\n {{ listTitle | translate }}\r\n <span *ngIf=\"titleCorporateAdmin && isRoot\">({{ titleCorporateAdmin }})</span>\r\n {{ extraData }}\r\n </h2>\r\n <span *ngIf=\"subTitle\" class=\"textTitle__subTitle\">{{ subTitle | translate }}</span>\r\n <div *ngIf=\"pageInfo.draftSupported\" class=\"chips-container\">\r\n <mat-chip-listbox #box [attr.aria-label]=\"'BASE_TABLE.documentStatus' | translate\" [multiple]=\"false\" [value]=\"currentIsPending ? 'PENDING' : 'COMPLETED'\" (click)=\"$event.stopPropagation()\" (change)=\"onChipSelectionChange($event, box)\">\r\n <mat-chip-option [selected]=\"!currentIsPending\" [color]=\"'accent'\" value=\"COMPLETED\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"!currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'finished' | translate}}\r\n </mat-chip-option>\r\n <mat-chip-option [selected]=\"currentIsPending\" [color]=\"'accent'\" value=\"PENDING\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'todo' | translate}}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"column end-items gap-20\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" style=\"width: 100px\" *ngIf=\"!hideBackButton\" (click)=\"goBack()\" id=\"title-bar-back-btn\">\r\n <mat-icon color=\"second\">{{ backIcon }}</mat-icon>\r\n <span style=\"font-weight: bold\">{{ 'back' | translate }}</span>\r\n </button>\r\n\r\n <div class=\"row flex-auto gap-20 buttons-wrapper\">\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'dropdown'\">\r\n <button\r\n type=\"button\"\r\n *ngIf=\"buttons && buttons.length > 0\"\r\n mat-flat-button\r\n [matMenuTriggerFor]=\"actionMenu\"\r\n class=\"title-bar-action-button\"\r\n [attr.id]=\"'title-bar-action-button'\">\r\n <div class=\"button-content\">\r\n <mat-icon class=\"button-icon\">{{ buttons[0].icon }}</mat-icon>\r\n <span class=\"button-label\">{{ buttons[0].label | translate }}</span>\r\n <mat-icon class=\"button-arrow\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #actionMenu=\"matMenu\" class=\"title-bar-action-menu\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-menu-item\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-menu-item\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'list'\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["", ":host{display:block;width:100%}.mainTitleBar{display:flex;width:100%;gap:20px;align-items:center;justify-content:flex-start}.mainTitleBar.row{flex-direction:row;margin-left:0!important;margin-right:0!important;padding-bottom:20px;border-bottom:1px solid #F0EEEE}.mainTitleBar.column{flex-direction:column}.mainTitleBar .textTitle{flex:1 1 0;display:flex;flex-direction:column;width:auto;gap:12px}.mainTitleBar .textTitle h2{margin:0;padding:0;line-height:1.2}.mainTitleBar .textTitle__titleMode{font-weight:200;color:gray}.mainTitleBar .textTitle__subTitle{color:#888;font-size:16px;font-weight:300;font-style:normal}.mainTitleBar .textTitle .chips-container{margin-top:0}.mainTitleBar .end-items{display:flex;flex-direction:row;align-items:center;gap:20px}.mainTitleBar .buttons-wrapper{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-direction:row;text-align-last:end;margin-left:0!important;margin-right:0!important}.mainTitleBar .buttons-wrapper .action-btn{width:210px!important}.mainTitleBar .title-bar-action-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 12px!important;min-width:209px!important;box-shadow:none!important}.mainTitleBar .title-bar-action-button:focus-visible{outline:3px solid #fff!important;outline-offset:3px!important;position:relative;z-index:1}.mainTitleBar .title-bar-action-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-action-button .button-content{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}.mainTitleBar .title-bar-action-button .button-icon{font-size:14px;width:14px;height:14px;color:#fff}.mainTitleBar .title-bar-action-button .button-label{font-weight:500;font-size:16px;line-height:1.2;color:#fff;white-space:nowrap;height:16px}.mainTitleBar .title-bar-action-button .button-arrow{font-size:14px;width:14px;height:14px;color:#fff;margin-left:auto}.mainTitleBar .actionButton{width:100%}.mainTitleBar .actionButton__expand{font-size:20px!important;color:var(--accent-color);margin-top:5px}.mainTitleBar .title-bar-list-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 16px!important;min-width:auto!important;box-shadow:none!important;display:flex!important;align-items:center!important;gap:8px!important;font-weight:500!important;font-size:16px!important;line-height:1.2!important;white-space:nowrap!important;text-decoration:none!important;box-sizing:border-box!important;cursor:pointer!important}.mainTitleBar .title-bar-list-button:focus-visible{outline:3px solid #0d4261!important;outline-offset:3px!important;position:relative;z-index:1}.mainTitleBar .title-bar-list-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-list-button mat-icon{font-size:20px!important;width:20px!important;height:28px!important;color:#fff!important;margin:0!important}.mainTitleBar .title-bar-list-button span{color:#fff!important}.mainTitleBar mat-chip-listbox{display:flex;flex-direction:row;gap:8px;align-items:center}.mainTitleBar mat-chip-listbox mat-chip-option{height:32px!important;min-height:32px!important;border-radius:8px!important;font-size:16px!important;line-height:1.2!important;font-weight:400!important;border:none!important;box-shadow:none!important;transition:all .2s ease;font-family:Lusail,sans-serif!important;padding:0!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true],.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true]{background:#0d4261!important;color:#fff!important;font-weight:500!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] .mdc-evolution-chip__text-label{color:#fff!important;font-weight:500!important;padding-left:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] mat-icon{color:#fff!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]){background:#e9e9e9!important;color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]) .mdc-evolution-chip__text-label{color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__action{padding:8px 12px!important;min-height:32px!important;display:flex!important;align-items:center!important;gap:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__text-label{padding:0!important;font-size:16px!important;line-height:1.2!important;font-family:Lusail,sans-serif!important}.mainTitleBar mat-chip-listbox mat-chip-option mat-icon{font-size:14px!important;width:14px!important;height:14px!important;margin-right:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__graphic,.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__checkmark{display:none!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__action--primary{padding:10px!important}.mainTitleBar mat-chip-listbox mat-chip-option:hover{opacity:.9}.row{display:flex;flex-direction:row;width:100%}.column{display:flex;flex-direction:column;width:auto}.fx-flex-fill{width:100%;height:100%;flex:1 1 auto}.flex-auto{flex:1 1 auto;display:flex;flex-direction:column}.end-items{align-items:flex-end}.gap-20{gap:20px}@media (max-width: 960px){.mainTitleBar.row.default-align{justify-content:flex-end}}@media (max-width: 768px){.mainTitleBar.row,.mainTitleBar.column{flex-direction:column;align-items:flex-start;gap:20px}.end-items{align-items:flex-start}}@media (max-width: 600px){.gap-20{gap:10px}}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button{--mdc-filled-button-container-color: #000 !important;--mdc-filled-button-label-text-color: #fff !important;--mat-filled-button-state-layer-color: #fff !important;--mdc-filled-button-hover-state-layer-color: #fff !important;--mdc-filled-button-focus-state-layer-color: #fff !important;--mdc-filled-button-pressed-state-layer-color: #fff !important;background-color:#000!important;background:#000!important;color:#fff!important;border:2px solid #000!important;text-decoration:none!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base:hover,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button:hover,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button:hover{background-color:#000!important;background:#000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base mat-icon,:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base .mat-icon,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button mat-icon,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button .mat-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button mat-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button .mat-icon{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base span,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button span,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button span{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base .mdc-button__label,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button .mdc-button__label,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button .mdc-button__label{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button{--mdc-filled-button-container-color: #000 !important;--mdc-filled-button-label-text-color: #fff !important;--mat-filled-button-state-layer-color: #fff !important;--mdc-filled-button-hover-state-layer-color: #fff !important;--mdc-filled-button-focus-state-layer-color: #fff !important;--mdc-filled-button-pressed-state-layer-color: #fff !important;background-color:#000!important;background:#000!important;color:#fff!important;border:2px solid #000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base:hover,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button:hover{background-color:#000!important;background:#000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-icon,:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-label,:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-arrow,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-label,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-arrow{color:#fff!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }] }); }
|
|
119
119
|
}
|
|
120
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TitleBarComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
@@ -130,7 +130,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
130
130
|
TranslateModule,
|
|
131
131
|
MatChipListbox,
|
|
132
132
|
MatChipOption,
|
|
133
|
-
], template: "<div class=\"row mainTitleBar gap-20 default-align\">\r\n\r\n <div class=\"column flex-auto textTitle\" >\r\n <h2 *ngIf=\"!pageInfo.hideTitle\" style=\"margin: 0;\">\r\n <span class=\"textTitle__titleMode\">{{ titleMode | translate }}</span>\r\n {{ listTitle | translate }}\r\n <span *ngIf=\"titleCorporateAdmin && isRoot\">({{ titleCorporateAdmin }})</span>\r\n {{ extraData }}\r\n </h2>\r\n <span *ngIf=\"subTitle\" class=\"textTitle__subTitle\">{{ subTitle | translate }}</span>\r\n <div *ngIf=\"pageInfo.draftSupported\" class=\"chips-container\">\r\n <mat-chip-listbox #box aria-label=\"Color selection\" [multiple]=\"false\" [value]=\"currentIsPending ? 'PENDING' : 'COMPLETED'\" (click)=\"$event.stopPropagation()\" (change)=\"onChipSelectionChange($event, box)\">\r\n <mat-chip-option [selected]=\"!currentIsPending\" [color]=\"'accent'\" value=\"COMPLETED\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"!currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'finished' | translate}}\r\n </mat-chip-option>\r\n <mat-chip-option [selected]=\"currentIsPending\" [color]=\"'accent'\" value=\"PENDING\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'todo' | translate}}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"column end-items gap-20\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" style=\"width: 100px\" *ngIf=\"!hideBackButton\" (click)=\"goBack()\" id=\"title-bar-back-btn\">\r\n <mat-icon color=\"second\">{{ backIcon }}</mat-icon>\r\n <span style=\"font-weight: bold\">{{ 'back' | translate }}</span>\r\n </button>\r\n\r\n <div class=\"row flex-auto gap-20 buttons-wrapper\">\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'dropdown'\">\r\n <button\r\n type=\"button\"\r\n *ngIf=\"buttons && buttons.length > 0\"\r\n mat-flat-button\r\n [matMenuTriggerFor]=\"actionMenu\"\r\n class=\"title-bar-action-button\"\r\n [attr.id]=\"'title-bar-action-button'\">\r\n <div class=\"button-content\">\r\n <mat-icon class=\"button-icon\">{{ buttons[0].icon }}</mat-icon>\r\n <span class=\"button-label\">{{ buttons[0].label | translate }}</span>\r\n <mat-icon class=\"button-arrow\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #actionMenu=\"matMenu\" class=\"title-bar-action-menu\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-menu-item\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-menu-item\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'list'\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.mainTitleBar{display:flex;width:100%;gap:20px;align-items:center;justify-content:flex-start}.mainTitleBar.row{flex-direction:row;margin-left:0!important;margin-right:0!important;padding-bottom:20px;border-bottom:1px solid #F0EEEE}.mainTitleBar.column{flex-direction:column}.mainTitleBar .textTitle{flex:1 1 0;display:flex;flex-direction:column;width:auto;gap:12px}.mainTitleBar .textTitle h2{margin:0;padding:0;line-height:1.2}.mainTitleBar .textTitle__titleMode{font-weight:200;color:gray}.mainTitleBar .textTitle__subTitle{color:#888;font-size:16px;font-weight:300;font-style:normal}.mainTitleBar .textTitle .chips-container{margin-top:0}.mainTitleBar .end-items{display:flex;flex-direction:row;align-items:center;gap:20px}.mainTitleBar .buttons-wrapper{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-direction:row;text-align-last:end;margin-left:0!important;margin-right:0!important}.mainTitleBar .buttons-wrapper .action-btn{width:210px!important}.mainTitleBar .title-bar-action-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 12px!important;min-width:209px!important;box-shadow:none!important}.mainTitleBar .title-bar-action-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-action-button .button-content{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}.mainTitleBar .title-bar-action-button .button-icon{font-size:14px;width:14px;height:14px;color:#fff}.mainTitleBar .title-bar-action-button .button-label{font-weight:500;font-size:16px;line-height:1.2;color:#fff;white-space:nowrap;height:16px}.mainTitleBar .title-bar-action-button .button-arrow{font-size:14px;width:14px;height:14px;color:#fff;margin-left:auto}.mainTitleBar .actionButton{width:100%}.mainTitleBar .actionButton__expand{font-size:20px!important;color:var(--accent-color);margin-top:5px}.mainTitleBar .title-bar-list-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 16px!important;min-width:auto!important;box-shadow:none!important;display:flex!important;align-items:center!important;gap:8px!important;font-weight:500!important;font-size:16px!important;line-height:1.2!important;white-space:nowrap!important;text-decoration:none!important;box-sizing:border-box!important;outline:none!important;cursor:pointer!important}.mainTitleBar .title-bar-list-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-list-button mat-icon{font-size:20px!important;width:20px!important;height:28px!important;color:#fff!important;margin:0!important}.mainTitleBar .title-bar-list-button span{color:#fff!important}.mainTitleBar mat-chip-listbox{display:flex;flex-direction:row;gap:8px;align-items:center}.mainTitleBar mat-chip-listbox mat-chip-option{height:32px!important;min-height:32px!important;border-radius:8px!important;font-size:16px!important;line-height:1.2!important;font-weight:400!important;border:none!important;box-shadow:none!important;transition:all .2s ease;font-family:Lusail,sans-serif!important;padding:0!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true],.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true]{background:#0d4261!important;color:#fff!important;font-weight:500!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] .mdc-evolution-chip__text-label{color:#fff!important;font-weight:500!important;padding-left:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] mat-icon{color:#fff!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]){background:#e9e9e9!important;color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]) .mdc-evolution-chip__text-label{color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__action{padding:8px 12px!important;min-height:32px!important;display:flex!important;align-items:center!important;gap:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__text-label{padding:0!important;font-size:16px!important;line-height:1.2!important;font-family:Lusail,sans-serif!important}.mainTitleBar mat-chip-listbox mat-chip-option mat-icon{font-size:14px!important;width:14px!important;height:14px!important;margin-right:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__graphic,.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__checkmark{display:none!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__action--primary{padding:10px!important}.mainTitleBar mat-chip-listbox mat-chip-option:hover{opacity:.9}.row{display:flex;flex-direction:row;width:100%}.column{display:flex;flex-direction:column;width:auto}.fx-flex-fill{width:100%;height:100%;flex:1 1 auto}.flex-auto{flex:1 1 auto;display:flex;flex-direction:column}.end-items{align-items:flex-end}.gap-20{gap:20px}@media (max-width: 960px){.mainTitleBar.row.default-align{justify-content:flex-end}}@media (max-width: 768px){.mainTitleBar.row,.mainTitleBar.column{flex-direction:column;align-items:flex-start;gap:20px}.end-items{align-items:flex-start}}@media (max-width: 600px){.gap-20{gap:10px}}\n"] }]
|
|
133
|
+
], template: "<div class=\"row mainTitleBar gap-20 default-align\">\r\n\r\n <div class=\"column flex-auto textTitle\" >\r\n <h2 *ngIf=\"!pageInfo.hideTitle\" style=\"margin: 0;\">\r\n <span class=\"textTitle__titleMode\">{{ titleMode | translate }}</span>\r\n {{ listTitle | translate }}\r\n <span *ngIf=\"titleCorporateAdmin && isRoot\">({{ titleCorporateAdmin }})</span>\r\n {{ extraData }}\r\n </h2>\r\n <span *ngIf=\"subTitle\" class=\"textTitle__subTitle\">{{ subTitle | translate }}</span>\r\n <div *ngIf=\"pageInfo.draftSupported\" class=\"chips-container\">\r\n <mat-chip-listbox #box [attr.aria-label]=\"'BASE_TABLE.documentStatus' | translate\" [multiple]=\"false\" [value]=\"currentIsPending ? 'PENDING' : 'COMPLETED'\" (click)=\"$event.stopPropagation()\" (change)=\"onChipSelectionChange($event, box)\">\r\n <mat-chip-option [selected]=\"!currentIsPending\" [color]=\"'accent'\" value=\"COMPLETED\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"!currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'finished' | translate}}\r\n </mat-chip-option>\r\n <mat-chip-option [selected]=\"currentIsPending\" [color]=\"'accent'\" value=\"PENDING\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon *ngIf=\"currentIsPending\" style=\"font-size: 14px; width: 14px; height: 14px; margin-right: 4px;\">check</mat-icon>\r\n {{'todo' | translate}}\r\n </mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"column end-items gap-20\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" style=\"width: 100px\" *ngIf=\"!hideBackButton\" (click)=\"goBack()\" id=\"title-bar-back-btn\">\r\n <mat-icon color=\"second\">{{ backIcon }}</mat-icon>\r\n <span style=\"font-weight: bold\">{{ 'back' | translate }}</span>\r\n </button>\r\n\r\n <div class=\"row flex-auto gap-20 buttons-wrapper\">\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'dropdown'\">\r\n <button\r\n type=\"button\"\r\n *ngIf=\"buttons && buttons.length > 0\"\r\n mat-flat-button\r\n [matMenuTriggerFor]=\"actionMenu\"\r\n class=\"title-bar-action-button\"\r\n [attr.id]=\"'title-bar-action-button'\">\r\n <div class=\"button-content\">\r\n <mat-icon class=\"button-icon\">{{ buttons[0].icon }}</mat-icon>\r\n <span class=\"button-label\">{{ buttons[0].label | translate }}</span>\r\n <mat-icon class=\"button-arrow\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #actionMenu=\"matMenu\" class=\"title-bar-action-menu\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-menu-item\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-menu-item\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-menu-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"buttonsDisplayMode === 'list'\">\r\n <ng-container *ngFor=\"let btn of buttons\">\r\n <a\r\n *ngIf=\"resolveButtonHref(btn) as href\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n [href]=\"href\"\r\n (click)=\"onButtonClick(btn, $event)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </a>\r\n <button\r\n *ngIf=\"!resolveButtonHref(btn)\"\r\n type=\"button\"\r\n mat-flat-button\r\n color=\"primary\"\r\n class=\"title-bar-list-button\"\r\n (click)=\"onButtonClick(btn)\"\r\n [attr.id]=\"btn.id || ('title-bar-list-btn-' + (btn.action || btn.label || btn.key))\">\r\n <mat-icon>{{ btn.icon }}</mat-icon>\r\n <span>{{ btn.label | translate }}</span>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.mainTitleBar{display:flex;width:100%;gap:20px;align-items:center;justify-content:flex-start}.mainTitleBar.row{flex-direction:row;margin-left:0!important;margin-right:0!important;padding-bottom:20px;border-bottom:1px solid #F0EEEE}.mainTitleBar.column{flex-direction:column}.mainTitleBar .textTitle{flex:1 1 0;display:flex;flex-direction:column;width:auto;gap:12px}.mainTitleBar .textTitle h2{margin:0;padding:0;line-height:1.2}.mainTitleBar .textTitle__titleMode{font-weight:200;color:gray}.mainTitleBar .textTitle__subTitle{color:#888;font-size:16px;font-weight:300;font-style:normal}.mainTitleBar .textTitle .chips-container{margin-top:0}.mainTitleBar .end-items{display:flex;flex-direction:row;align-items:center;gap:20px}.mainTitleBar .buttons-wrapper{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-direction:row;text-align-last:end;margin-left:0!important;margin-right:0!important}.mainTitleBar .buttons-wrapper .action-btn{width:210px!important}.mainTitleBar .title-bar-action-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 12px!important;min-width:209px!important;box-shadow:none!important}.mainTitleBar .title-bar-action-button:focus-visible{outline:3px solid #fff!important;outline-offset:3px!important;position:relative;z-index:1}.mainTitleBar .title-bar-action-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-action-button .button-content{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}.mainTitleBar .title-bar-action-button .button-icon{font-size:14px;width:14px;height:14px;color:#fff}.mainTitleBar .title-bar-action-button .button-label{font-weight:500;font-size:16px;line-height:1.2;color:#fff;white-space:nowrap;height:16px}.mainTitleBar .title-bar-action-button .button-arrow{font-size:14px;width:14px;height:14px;color:#fff;margin-left:auto}.mainTitleBar .actionButton{width:100%}.mainTitleBar .actionButton__expand{font-size:20px!important;color:var(--accent-color);margin-top:5px}.mainTitleBar .title-bar-list-button{background:#0d4261!important;color:#fff!important;border-radius:8px!important;height:44px!important;padding:8px 16px!important;min-width:auto!important;box-shadow:none!important;display:flex!important;align-items:center!important;gap:8px!important;font-weight:500!important;font-size:16px!important;line-height:1.2!important;white-space:nowrap!important;text-decoration:none!important;box-sizing:border-box!important;cursor:pointer!important}.mainTitleBar .title-bar-list-button:focus-visible{outline:3px solid #0d4261!important;outline-offset:3px!important;position:relative;z-index:1}.mainTitleBar .title-bar-list-button:hover{background:#0a3550!important}.mainTitleBar .title-bar-list-button mat-icon{font-size:20px!important;width:20px!important;height:28px!important;color:#fff!important;margin:0!important}.mainTitleBar .title-bar-list-button span{color:#fff!important}.mainTitleBar mat-chip-listbox{display:flex;flex-direction:row;gap:8px;align-items:center}.mainTitleBar mat-chip-listbox mat-chip-option{height:32px!important;min-height:32px!important;border-radius:8px!important;font-size:16px!important;line-height:1.2!important;font-weight:400!important;border:none!important;box-shadow:none!important;transition:all .2s ease;font-family:Lusail,sans-serif!important;padding:0!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true],.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true]{background:#0d4261!important;color:#fff!important;font-weight:500!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] .mdc-evolution-chip__text-label,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] .mdc-evolution-chip__text-label{color:#fff!important;font-weight:500!important;padding-left:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option.mdc-evolution-chip--selected mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[selected=true] mat-icon,.mainTitleBar mat-chip-listbox mat-chip-option[aria-selected=true] mat-icon{color:#fff!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]){background:#e9e9e9!important;color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option:not(.mdc-evolution-chip--selected):not([selected=true]):not([aria-selected=true]) .mdc-evolution-chip__text-label{color:#000!important;font-weight:400!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__action{padding:8px 12px!important;min-height:32px!important;display:flex!important;align-items:center!important;gap:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option .mdc-evolution-chip__text-label{padding:0!important;font-size:16px!important;line-height:1.2!important;font-family:Lusail,sans-serif!important}.mainTitleBar mat-chip-listbox mat-chip-option mat-icon{font-size:14px!important;width:14px!important;height:14px!important;margin-right:4px!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__graphic,.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__checkmark{display:none!important}.mainTitleBar mat-chip-listbox mat-chip-option ::ng-deep .mdc-evolution-chip__action--primary{padding:10px!important}.mainTitleBar mat-chip-listbox mat-chip-option:hover{opacity:.9}.row{display:flex;flex-direction:row;width:100%}.column{display:flex;flex-direction:column;width:auto}.fx-flex-fill{width:100%;height:100%;flex:1 1 auto}.flex-auto{flex:1 1 auto;display:flex;flex-direction:column}.end-items{align-items:flex-end}.gap-20{gap:20px}@media (max-width: 960px){.mainTitleBar.row.default-align{justify-content:flex-end}}@media (max-width: 768px){.mainTitleBar.row,.mainTitleBar.column{flex-direction:column;align-items:flex-start;gap:20px}.end-items{align-items:flex-start}}@media (max-width: 600px){.gap-20{gap:10px}}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button{--mdc-filled-button-container-color: #000 !important;--mdc-filled-button-label-text-color: #fff !important;--mat-filled-button-state-layer-color: #fff !important;--mdc-filled-button-hover-state-layer-color: #fff !important;--mdc-filled-button-focus-state-layer-color: #fff !important;--mdc-filled-button-pressed-state-layer-color: #fff !important;background-color:#000!important;background:#000!important;color:#fff!important;border:2px solid #000!important;text-decoration:none!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base:hover,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button:hover,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button:hover{background-color:#000!important;background:#000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base mat-icon,:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base .mat-icon,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button mat-icon,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button .mat-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button mat-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button .mat-icon{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base span,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button span,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button span{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-list-button.mat-mdc-button-base .mdc-button__label,:host-context(html.high-contrast) .mainTitleBar a.title-bar-list-button .mdc-button__label,:host-context(html.high-contrast) .mainTitleBar button.title-bar-list-button .mdc-button__label{color:#fff!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button{--mdc-filled-button-container-color: #000 !important;--mdc-filled-button-label-text-color: #fff !important;--mat-filled-button-state-layer-color: #fff !important;--mdc-filled-button-hover-state-layer-color: #fff !important;--mdc-filled-button-focus-state-layer-color: #fff !important;--mdc-filled-button-pressed-state-layer-color: #fff !important;background-color:#000!important;background:#000!important;color:#fff!important;border:2px solid #000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base:hover,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button:hover{background-color:#000!important;background:#000!important}:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-icon,:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-label,:host-context(html.high-contrast) .mainTitleBar .title-bar-action-button.mat-mdc-button-base .button-arrow,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-icon,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-label,:host-context(html.high-contrast) .mainTitleBar button.title-bar-action-button .button-arrow{color:#fff!important}\n"] }]
|
|
134
134
|
}], ctorParameters: () => [{ type: i1.Location }, { type: i2.Directionality }], propDecorators: { pageTitle: [{
|
|
135
135
|
type: Input
|
|
136
136
|
}], showExtractButton: [{
|
|
@@ -182,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
182
182
|
}], viewModeChanged: [{
|
|
183
183
|
type: Output
|
|
184
184
|
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGl0bGUtYmFyL3RpdGxlLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RpdGxlLWJhci90aXRsZS1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBVyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHcEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBb0J0RSxNQUFNLE9BQU8saUJBQWlCO0lBd0U1QixZQUFvQixRQUFpQixFQUNqQixHQUFtQjtRQURuQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQWdCO1FBdkV2QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBR3ZCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQU1uQyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBTXZCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFNdEIsY0FBUyxH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QUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sV0FBVztzQkFEVixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLE1BQU07Z0JBSVAsa0JBQWtCO3NCQURqQixNQUFNO2dCQUtQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxTQUFTO3NCQURSLEtBQUs7Z0JBT04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0xvY2F0aW9uLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtNYXRNZW51LCBNYXRNZW51SXRlbSwgTWF0TWVudVRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge0RpcmVjdGlvbmFsaXR5fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHtCdXR0b25BY3Rpb25TZXR0aW5ncywgUGFnZUluZm99IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsXCI7XHJcbmltcG9ydCB7TWF0Q2hpcExpc3Rib3gsIE1hdENoaXBPcHRpb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGlwc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGl0bGUtYmFyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nSWYsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uLFxyXG4gICAgTWF0TWVudUl0ZW0sXHJcbiAgICBNYXRNZW51LFxyXG4gICAgTmdGb3JPZixcclxuICAgIE1hdE1lbnVUcmlnZ2VyLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0Q2hpcExpc3Rib3gsXHJcbiAgICBNYXRDaGlwT3B0aW9uLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpdGxlLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGl0bGUtYmFyLmNvbXBvbmVudC5jc3MnLCAndGl0bGUtYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRpdGxlQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFnZVRpdGxlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dFeHRyYWN0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdG90YWxFbGVtZW50cz86IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICB0aXRsZU1vZGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBhZ2VJbmZvOiBQYWdlSW5mbztcclxuXHJcbiAgQElucHV0KClcclxuICBzdWJUaXRsZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc3RhdHVzRGVzYz86IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBuZXdBY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIEBJbnB1dCgpIC8vIEB0cy1pZ25vcmVcclxuICBleHRyYUJ1dHRvbjogc3RyaW5nO1xyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBzaG93RGV0YWlsczogYW55ID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0ltcG9ydCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgbmV3QWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZXh0cmFCdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZXh0cmFjdFJlcG9ydCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBleHRyYURhdGEgPSAnJztcclxuXHJcbiAgbGlzdFRpdGxlID0gJyc7XHJcbiAgbmV3QnV0dG9uID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGl0bGVDb3Jwb3JhdGVBZG1pbjogc3RyaW5nID0gJyc7XHJcblxyXG4gIGlzUm9vdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgaGlkZUJhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBidXR0b25zOiBCdXR0b25BY3Rpb25TZXR0aW5nc1tdID0gW107XHJcbiAgQElucHV0KCkgYnV0dG9uc0Rpc3BsYXlNb2RlOiAnZHJvcGRvd24nIHwgJ2xpc3QnID0gJ2Ryb3Bkb3duJztcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uQWN0aW9uU2V0dGluZ3M+KCk7XHJcbiAgQElucHV0KCkgZHJhZnRTdXBwb3J0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1BlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBvblZpZXdNb2RlQ2hhbmdlPzogKGlzUGVuZGluZzogYm9vbGVhbikgPT4gdm9pZDtcclxuICBAT3V0cHV0KCkgdmlld01vZGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwcml2YXRlIF9pc1BlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhdGlvbjpMb2NhdGlvbixcclxuICAgICAgICAgICAgICBwcml2YXRlIGRpcjogRGlyZWN0aW9uYWxpdHkpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5saXN0VGl0bGUgPSB0aGlzLnBhZ2VUaXRsZTtcclxuICAgIHRoaXMubmV3QnV0dG9uID0gdGhpcy5leHRyYUJ1dHRvbjtcclxuICAgIC8vIHRoaXMuaXNSb290ID0gdGhpcy5hdXRoU2VydmljZS5pc1Jvb3RPcmcoKTtcclxuICAgIHRoaXMuaXNSb290ID0gZmFsc2U7XHJcbiAgICB0aGlzLl9pc1BlbmRpbmcgPSB0aGlzLmlzUGVuZGluZztcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzW1wicGFnZVRpdGxlXCJdICYmICFjaGFuZ2VzW1wicGFnZVRpdGxlXCJdLmlzRmlyc3RDaGFuZ2UoKSApIHtcclxuICAgICAgdGhpcy5saXN0VGl0bGUgPSB0aGlzLnBhZ2VUaXRsZTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzW1wiaXNQZW5kaW5nXCJdKSB7XHJcbiAgICAgIHRoaXMuX2lzUGVuZGluZyA9IHRoaXMuaXNQZW5kaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRJc1BlbmRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNQZW5kaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGJhY2tJY29uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXIudmFsdWUgPT09ICdydGwnID8gJ2Fycm93X2JhY2snIDogJ2Fycm93X2ZvcndhcmQnO1xyXG4gIH1cclxuXHJcbiAgcHVibGlzaEV2ZW50KCkge1xyXG4gICAgdGhpcy5uZXdBY3Rpb25DbGlja2VkLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZG9FeHRyYWN0UmVwb3J0KHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuZXh0cmFjdFJlcG9ydC5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgcHVibGlzaEV4dHJhQnV0dG9uRXZlbnQoKSB7XHJcbiAgICB0aGlzLmV4dHJhQnV0dG9uQ2xpY2tlZC5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgZ29CYWNrKCkge1xyXG4gICAgdGhpcy5sb2NhdGlvbi5iYWNrKClcclxuICB9XHJcblxyXG4gIHJlc29sdmVCdXR0b25IcmVmKGJ0bjogQnV0dG9uQWN0aW9uU2V0dGluZ3MpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmIChidG4uc2hvd0NvbW1lbnREaWFsb2cpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsaCA9IGJ0bi5saW5rSHJlZjtcclxuICAgIGlmIChsaCA9PSBudWxsIHx8IGxoID09PSAnJykge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgbGggPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgcmVzb2x2ZWQgPSBsaCh1bmRlZmluZWQgYXMgdW5rbm93bik7XHJcbiAgICAgIGNvbnN0IHMgPSByZXNvbHZlZCAhPSBudWxsID8gU3RyaW5nKHJlc29sdmVkKS50cmltKCkgOiAnJztcclxuICAgICAgcmV0dXJuIHMubGVuZ3RoID4gMCA/IHMgOiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcyA9IFN0cmluZyhsaCkudHJpbSgpO1xyXG4gICAgcmV0dXJuIHMubGVuZ3RoID4gMCA/IHMgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgb25CdXR0b25DbGljayhidG46IEJ1dHRvbkFjdGlvblNldHRpbmdzLCBldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IGhyZWYgPSB0aGlzLnJlc29sdmVCdXR0b25IcmVmKGJ0bik7XHJcbiAgICBpZiAoaHJlZiAmJiBldmVudCkge1xyXG4gICAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmJ1dHRvbiA9PT0gMSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQoYnRuKTtcclxuICB9XHJcblxyXG4gIG9uVmlld01vZGVDaGFuZ2VkKGlzUGVuZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faXNQZW5kaW5nID0gaXNQZW5kaW5nO1xyXG4gICAgICAgIGlmICh0aGlzLm9uVmlld01vZGVDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5vblZpZXdNb2RlQ2hhbmdlKGlzUGVuZGluZyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZpZXdNb2RlQ2hhbmdlZC5lbWl0KGlzUGVuZGluZyk7XHJcbiAgfVxyXG5cclxuICBvbkNoaXBTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSwgbGlzdGJveD86IE1hdENoaXBMaXN0Ym94KTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICE9PSAnQ09NUExFVEVEJyAmJiB2YWx1ZSAhPT0gJ1BFTkRJTkcnKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gbGlzdGJveCAmJiAobGlzdGJveC52YWx1ZSA9IHRoaXMuX2lzUGVuZGluZyA/ICdQRU5ESU5HJyA6ICdDT01QTEVURUQnKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9pc1BlbmRpbmcgIT09ICh2YWx1ZSA9PT0gJ1BFTkRJTkcnKSkgdGhpcy5vblZpZXdNb2RlQ2hhbmdlZCh2YWx1ZSA9PT0gJ1BFTkRJTkcnKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBtYWluVGl0bGVCYXIgZ2FwLTIwIGRlZmF1bHQtYWxpZ25cIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbHVtbiBmbGV4LWF1dG8gdGV4dFRpdGxlXCIgPlxyXG4gICAgPGgyICpuZ0lmPVwiIXBhZ2VJbmZvLmhpZGVUaXRsZVwiIHN0eWxlPVwibWFyZ2luOiAwO1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRleHRUaXRsZV9fdGl0bGVNb2RlXCI+e3sgdGl0bGVNb2RlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICB7eyBsaXN0VGl0bGUgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPHNwYW4gKm5nSWY9XCJ0aXRsZUNvcnBvcmF0ZUFkbWluICYmIGlzUm9vdFwiPih7eyB0aXRsZUNvcnBvcmF0ZUFkbWluIH19KTwvc3Bhbj5cclxuICAgICAge3sgZXh0cmFEYXRhIH19XHJcbiAgICA8L2gyPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJzdWJUaXRsZVwiIGNsYXNzPVwidGV4dFRpdGxlX19zdWJUaXRsZVwiPnt7IHN1YlRpdGxlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPGRpdiAqbmdJZj1cInBhZ2VJbmZvLmRyYWZ0U3VwcG9ydGVkXCIgY2xhc3M9XCJjaGlwcy1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1jaGlwLWxpc3Rib3ggI2JveCBhcmlhLWxhYmVsPVwiQ29sb3Igc2VsZWN0aW9uXCIgW211bHRpcGxlXT1cImZhbHNlXCIgW3ZhbHVlXT1cImN1cnJlbnRJc1BlbmRpbmcgPyAnUEVORElORycgOiAnQ09NUExFVEVEJ1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAoY2hhbmdlKT1cIm9uQ2hpcFNlbGVjdGlvbkNoYW5nZSgkZXZlbnQsIGJveClcIj5cclxuICAgICAgICA8bWF0LWNoaXAtb3B0aW9uIFtzZWxlY3RlZF09XCIhY3VycmVudElzUGVuZGluZ1wiIFtjb2xvcl09XCInYWNjZW50J1wiIHZhbHVlPVwiQ09NUExFVEVEXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIWN1cnJlbnRJc1BlbmRpbmdcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDsgd2lkdGg6IDE0cHg7IGhlaWdodDogMTRweDsgbWFyZ2luLXJpZ2h0OiA0cHg7XCI+Y2hlY2s8L21hdC1pY29uPlxyXG4gICAgICAgICAge3snZmluaXNoZWQnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1jaGlwLW9wdGlvbj5cclxuICAgICAgICA8bWF0LWNoaXAtb3B0aW9uIFtzZWxlY3RlZF09XCJjdXJyZW50SXNQZW5kaW5nXCIgW2NvbG9yXT1cIidhY2NlbnQnXCIgdmFsdWU9XCJQRU5ESU5HXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY3VycmVudElzUGVuZGluZ1wiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4OyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyBtYXJnaW4tcmlnaHQ6IDRweDtcIj5jaGVjazwvbWF0LWljb24+XHJcbiAgICAgICAgICB7eyd0b2RvJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9tYXQtY2hpcC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LWNoaXAtbGlzdGJveD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1uIGVuZC1pdGVtcyBnYXAtMjBcIj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cIndpZHRoOiAxMDBweFwiICpuZ0lmPVwiIWhpZGVCYWNrQnV0dG9uXCIgKGNsaWNrKT1cImdvQmFjaygpXCIgaWQ9XCJ0aXRsZS1iYXItYmFjay1idG5cIj5cclxuICAgICAgPG1hdC1pY29uIGNvbG9yPVwic2Vjb25kXCI+e3sgYmFja0ljb24gfX08L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkXCI+e3sgJ2JhY2snIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBmbGV4LWF1dG8gZ2FwLTIwIGJ1dHRvbnMtd3JhcHBlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnV0dG9uc0Rpc3BsYXlNb2RlID09PSAnZHJvcGRvd24nXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAqbmdJZj1cImJ1dHRvbnMgJiYgYnV0dG9ucy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFjdGlvbk1lbnVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0aXRsZS1iYXItYWN0aW9uLWJ1dHRvblwiXHJcbiAgICAgICAgICBbYXR0ci5pZF09XCIndGl0bGUtYmFyLWFjdGlvbi1idXR0b24nXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYnV0dG9uLWljb25cIj57eyBidXR0b25zWzBdLmljb24gfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1dHRvbi1sYWJlbFwiPnt7IGJ1dHRvbnNbMF0ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImJ1dHRvbi1hcnJvd1wiPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPG1hdC1tZW51ICNhY3Rpb25NZW51PVwibWF0TWVudVwiIGNsYXNzPVwidGl0bGUtYmFyLWFjdGlvbi1tZW51XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidG4gb2YgYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwicmVzb2x2ZUJ1dHRvbkhyZWYoYnRuKSBhcyBocmVmXCJcclxuICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgICAgICAgW2hyZWZdPVwiaHJlZlwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soYnRuLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbYXR0ci5pZF09XCJidG4uaWQgfHwgKCd0aXRsZS1iYXItbWVudS1idG4tJyArIChidG4uYWN0aW9uIHx8IGJ0bi5sYWJlbCB8fCBidG4ua2V5KSlcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24+e3sgYnRuLmljb24gfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhcmVzb2x2ZUJ1dHRvbkhyZWYoYnRuKVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKGJ0bilcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmlkXT1cImJ0bi5pZCB8fCAoJ3RpdGxlLWJhci1tZW51LWJ0bi0nICsgKGJ0bi5hY3Rpb24gfHwgYnRuLmxhYmVsIHx8IGJ0bi5rZXkpKVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj57eyBidG4uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgYnRuLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ1dHRvbnNEaXNwbGF5TW9kZSA9PT0gJ2xpc3QnXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIGJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICpuZ0lmPVwicmVzb2x2ZUJ1dHRvbkhyZWYoYnRuKSBhcyBocmVmXCJcclxuICAgICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidGl0bGUtYmFyLWxpc3QtYnV0dG9uXCJcclxuICAgICAgICAgICAgW2hyZWZdPVwiaHJlZlwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKGJ0biwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ0bi5pZCB8fCAoJ3RpdGxlLWJhci1saXN0LWJ0bi0nICsgKGJ0bi5hY3Rpb24gfHwgYnRuLmxhYmVsIHx8IGJ0bi5rZXkpKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+e3sgYnRuLmljb24gfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBidG4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIXJlc29sdmVCdXR0b25IcmVmKGJ0bilcIlxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidGl0bGUtYmFyLWxpc3QtYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soYnRuKVwiXHJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ0bi5pZCB8fCAoJ3RpdGxlLWJhci1saXN0LWJ0bi0nICsgKGJ0bi5hY3Rpb24gfHwgYnRuLmxhYmVsIHx8IGJ0bi5rZXkpKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+e3sgYnRuLmljb24gfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBidG4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGl0bGUtYmFyL3RpdGxlLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnZvaWNlcS91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RpdGxlLWJhci90aXRsZS1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBVyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHcEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBb0J0RSxNQUFNLE9BQU8saUJBQWlCO0lBd0U1QixZQUFvQixRQUFpQixFQUNqQixHQUFtQjtRQURuQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFFBQUcsR0FBSCxHQUFHLENBQWdCO1FBdkV2QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBR3ZCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQU1uQyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBTXZCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFNdEIsY0FBUyxH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QUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBS04sV0FBVztzQkFEVixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLE1BQU07Z0JBSVAsa0JBQWtCO3NCQURqQixNQUFNO2dCQUtQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxTQUFTO3NCQURSLEtBQUs7Z0JBT04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLGNBQWM7c0JBRGIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0xvY2F0aW9uLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtNYXRNZW51LCBNYXRNZW51SXRlbSwgTWF0TWVudVRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge0RpcmVjdGlvbmFsaXR5fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHtCdXR0b25BY3Rpb25TZXR0aW5ncywgUGFnZUluZm99IGZyb20gXCIuLi8uLi9iYXNlLW1vZGVsXCI7XHJcbmltcG9ydCB7TWF0Q2hpcExpc3Rib3gsIE1hdENoaXBPcHRpb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGlwc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGl0bGUtYmFyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nSWYsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uLFxyXG4gICAgTWF0TWVudUl0ZW0sXHJcbiAgICBNYXRNZW51LFxyXG4gICAgTmdGb3JPZixcclxuICAgIE1hdE1lbnVUcmlnZ2VyLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0Q2hpcExpc3Rib3gsXHJcbiAgICBNYXRDaGlwT3B0aW9uLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpdGxlLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGl0bGUtYmFyLmNvbXBvbmVudC5jc3MnLCAndGl0bGUtYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRpdGxlQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFnZVRpdGxlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dFeHRyYWN0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdG90YWxFbGVtZW50cz86IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICB0aXRsZU1vZGU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBhZ2VJbmZvOiBQYWdlSW5mbztcclxuXHJcbiAgQElucHV0KClcclxuICBzdWJUaXRsZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc3RhdHVzRGVzYz86IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBuZXdBY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIEBJbnB1dCgpIC8vIEB0cy1pZ25vcmVcclxuICBleHRyYUJ1dHRvbjogc3RyaW5nO1xyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBzaG93RGV0YWlsczogYW55ID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0ltcG9ydCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgbmV3QWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZXh0cmFCdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZXh0cmFjdFJlcG9ydCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBleHRyYURhdGEgPSAnJztcclxuXHJcbiAgbGlzdFRpdGxlID0gJyc7XHJcbiAgbmV3QnV0dG9uID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGl0bGVDb3Jwb3JhdGVBZG1pbjogc3RyaW5nID0gJyc7XHJcblxyXG4gIGlzUm9vdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgaGlkZUJhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBidXR0b25zOiBCdXR0b25BY3Rpb25TZXR0aW5nc1tdID0gW107XHJcbiAgQElucHV0KCkgYnV0dG9uc0Rpc3BsYXlNb2RlOiAnZHJvcGRvd24nIHwgJ2xpc3QnID0gJ2Ryb3Bkb3duJztcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uQWN0aW9uU2V0dGluZ3M+KCk7XHJcbiAgQElucHV0KCkgZHJhZnRTdXBwb3J0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1BlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBvblZpZXdNb2RlQ2hhbmdlPzogKGlzUGVuZGluZzogYm9vbGVhbikgPT4gdm9pZDtcclxuICBAT3V0cHV0KCkgdmlld01vZGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwcml2YXRlIF9pc1BlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhdGlvbjpMb2NhdGlvbixcclxuICAgICAgICAgICAgICBwcml2YXRlIGRpcjogRGlyZWN0aW9uYWxpdHkpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5saXN0VGl0bGUgPSB0aGlzLnBhZ2VUaXRsZTtcclxuICAgIHRoaXMubmV3QnV0dG9uID0gdGhpcy5leHRyYUJ1dHRvbjtcclxuICAgIC8vIHRoaXMuaXNSb290ID0gdGhpcy5hdXRoU2VydmljZS5pc1Jvb3RPcmcoKTtcclxuICAgIHRoaXMuaXNSb290ID0gZmFsc2U7XHJcbiAgICB0aGlzLl9pc1BlbmRpbmcgPSB0aGlzLmlzUGVuZGluZztcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzW1wicGFnZVRpdGxlXCJdICYmICFjaGFuZ2VzW1wicGFnZVRpdGxlXCJdLmlzRmlyc3RDaGFuZ2UoKSApIHtcclxuICAgICAgdGhpcy5saXN0VGl0bGUgPSB0aGlzLnBhZ2VUaXRsZTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzW1wiaXNQZW5kaW5nXCJdKSB7XHJcbiAgICAgIHRoaXMuX2lzUGVuZGluZyA9IHRoaXMuaXNQZW5kaW5nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRJc1BlbmRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNQZW5kaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGJhY2tJY29uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXIudmFsdWUgPT09ICdydGwnID8gJ2Fycm93X2JhY2snIDogJ2Fycm93X2ZvcndhcmQnO1xyXG4gIH1cclxuXHJcbiAgcHVibGlzaEV2ZW50KCkge1xyXG4gICAgdGhpcy5uZXdBY3Rpb25DbGlja2VkLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZG9FeHRyYWN0UmVwb3J0KHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuZXh0cmFjdFJlcG9ydC5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgcHVibGlzaEV4dHJhQnV0dG9uRXZlbnQoKSB7XHJcbiAgICB0aGlzLmV4dHJhQnV0dG9uQ2xpY2tlZC5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgZ29CYWNrKCkge1xyXG4gICAgdGhpcy5sb2NhdGlvbi5iYWNrKClcclxuICB9XHJcblxyXG4gIHJlc29sdmVCdXR0b25IcmVmKGJ0bjogQnV0dG9uQWN0aW9uU2V0dGluZ3MpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmIChidG4uc2hvd0NvbW1lbnREaWFsb2cpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsaCA9IGJ0bi5saW5rSHJlZjtcclxuICAgIGlmIChsaCA9PSBudWxsIHx8IGxoID09PSAnJykge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgbGggPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgcmVzb2x2ZWQgPSBsaCh1bmRlZmluZWQgYXMgdW5rbm93bik7XHJcbiAgICAgIGNvbnN0IHMgPSByZXNvbHZlZCAhPSBudWxsID8gU3RyaW5nKHJlc29sdmVkKS50cmltKCkgOiAnJztcclxuICAgICAgcmV0dXJuIHMubGVuZ3RoID4gMCA/IHMgOiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcyA9IFN0cmluZyhsaCkudHJpbSgpO1xyXG4gICAgcmV0dXJuIHMubGVuZ3RoID4gMCA/IHMgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgb25CdXR0b25DbGljayhidG46IEJ1dHRvbkFjdGlvblNldHRpbmdzLCBldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IGhyZWYgPSB0aGlzLnJlc29sdmVCdXR0b25IcmVmKGJ0bik7XHJcbiAgICBpZiAoaHJlZiAmJiBldmVudCkge1xyXG4gICAgICBpZiAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmJ1dHRvbiA9PT0gMSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQoYnRuKTtcclxuICB9XHJcblxyXG4gIG9uVmlld01vZGVDaGFuZ2VkKGlzUGVuZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faXNQZW5kaW5nID0gaXNQZW5kaW5nO1xyXG4gICAgICAgIGlmICh0aGlzLm9uVmlld01vZGVDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5vblZpZXdNb2RlQ2hhbmdlKGlzUGVuZGluZyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZpZXdNb2RlQ2hhbmdlZC5lbWl0KGlzUGVuZGluZyk7XHJcbiAgfVxyXG5cclxuICBvbkNoaXBTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSwgbGlzdGJveD86IE1hdENoaXBMaXN0Ym94KTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICE9PSAnQ09NUExFVEVEJyAmJiB2YWx1ZSAhPT0gJ1BFTkRJTkcnKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gbGlzdGJveCAmJiAobGlzdGJveC52YWx1ZSA9IHRoaXMuX2lzUGVuZGluZyA/ICdQRU5ESU5HJyA6ICdDT01QTEVURUQnKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9pc1BlbmRpbmcgIT09ICh2YWx1ZSA9PT0gJ1BFTkRJTkcnKSkgdGhpcy5vblZpZXdNb2RlQ2hhbmdlZCh2YWx1ZSA9PT0gJ1BFTkRJTkcnKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBtYWluVGl0bGVCYXIgZ2FwLTIwIGRlZmF1bHQtYWxpZ25cIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbHVtbiBmbGV4LWF1dG8gdGV4dFRpdGxlXCIgPlxyXG4gICAgPGgyICpuZ0lmPVwiIXBhZ2VJbmZvLmhpZGVUaXRsZVwiIHN0eWxlPVwibWFyZ2luOiAwO1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRleHRUaXRsZV9fdGl0bGVNb2RlXCI+e3sgdGl0bGVNb2RlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICB7eyBsaXN0VGl0bGUgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPHNwYW4gKm5nSWY9XCJ0aXRsZUNvcnBvcmF0ZUFkbWluICYmIGlzUm9vdFwiPih7eyB0aXRsZUNvcnBvcmF0ZUFkbWluIH19KTwvc3Bhbj5cclxuICAgICAge3sgZXh0cmFEYXRhIH19XHJcbiAgICA8L2gyPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJzdWJUaXRsZVwiIGNsYXNzPVwidGV4dFRpdGxlX19zdWJUaXRsZVwiPnt7IHN1YlRpdGxlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPGRpdiAqbmdJZj1cInBhZ2VJbmZvLmRyYWZ0U3VwcG9ydGVkXCIgY2xhc3M9XCJjaGlwcy1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1jaGlwLWxpc3Rib3ggI2JveCBbYXR0ci5hcmlhLWxhYmVsXT1cIidCQVNFX1RBQkxFLmRvY3VtZW50U3RhdHVzJyB8IHRyYW5zbGF0ZVwiIFttdWx0aXBsZV09XCJmYWxzZVwiIFt2YWx1ZV09XCJjdXJyZW50SXNQZW5kaW5nID8gJ1BFTkRJTkcnIDogJ0NPTVBMRVRFRCdcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKGNoYW5nZSk9XCJvbkNoaXBTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LCBib3gpXCI+XHJcbiAgICAgICAgPG1hdC1jaGlwLW9wdGlvbiBbc2VsZWN0ZWRdPVwiIWN1cnJlbnRJc1BlbmRpbmdcIiBbY29sb3JdPVwiJ2FjY2VudCdcIiB2YWx1ZT1cIkNPTVBMRVRFRFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFjdXJyZW50SXNQZW5kaW5nXCIgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7IG1hcmdpbi1yaWdodDogNHB4O1wiPmNoZWNrPC9tYXQtaWNvbj5cclxuICAgICAgICAgIHt7J2ZpbmlzaGVkJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9tYXQtY2hpcC1vcHRpb24+XHJcbiAgICAgICAgPG1hdC1jaGlwLW9wdGlvbiBbc2VsZWN0ZWRdPVwiY3VycmVudElzUGVuZGluZ1wiIFtjb2xvcl09XCInYWNjZW50J1wiIHZhbHVlPVwiUEVORElOR1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImN1cnJlbnRJc1BlbmRpbmdcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDsgd2lkdGg6IDE0cHg7IGhlaWdodDogMTRweDsgbWFyZ2luLXJpZ2h0OiA0cHg7XCI+Y2hlY2s8L21hdC1pY29uPlxyXG4gICAgICAgICAge3sndG9kbycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxyXG4gICAgICA8L21hdC1jaGlwLWxpc3Rib3g+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbHVtbiBlbmQtaXRlbXMgZ2FwLTIwXCI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgc3R5bGU9XCJ3aWR0aDogMTAwcHhcIiAqbmdJZj1cIiFoaWRlQmFja0J1dHRvblwiIChjbGljayk9XCJnb0JhY2soKVwiIGlkPVwidGl0bGUtYmFyLWJhY2stYnRuXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInNlY29uZFwiPnt7IGJhY2tJY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogYm9sZFwiPnt7ICdiYWNrJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgZmxleC1hdXRvIGdhcC0yMCBidXR0b25zLXdyYXBwZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ1dHRvbnNEaXNwbGF5TW9kZSA9PT0gJ2Ryb3Bkb3duJ1wiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgKm5nSWY9XCJidXR0b25zICYmIGJ1dHRvbnMubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICBtYXQtZmxhdC1idXR0b25cclxuICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25NZW51XCJcclxuICAgICAgICAgIGNsYXNzPVwidGl0bGUtYmFyLWFjdGlvbi1idXR0b25cIlxyXG4gICAgICAgICAgW2F0dHIuaWRdPVwiJ3RpdGxlLWJhci1hY3Rpb24tYnV0dG9uJ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImJ1dHRvbi1pY29uXCI+e3sgYnV0dG9uc1swXS5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tbGFiZWxcIj57eyBidXR0b25zWzBdLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJidXR0b24tYXJyb3dcIj5rZXlib2FyZF9hcnJvd19kb3duPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtbWVudSAjYWN0aW9uTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cInRpdGxlLWJhci1hY3Rpb24tbWVudVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIGJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAqbmdJZj1cInJlc29sdmVCdXR0b25IcmVmKGJ0bikgYXMgaHJlZlwiXHJcbiAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAgIFtocmVmXT1cImhyZWZcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKGJ0biwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiYnRuLmlkIHx8ICgndGl0bGUtYmFyLW1lbnUtYnRuLScgKyAoYnRuLmFjdGlvbiB8fCBidG4ubGFiZWwgfHwgYnRuLmtleSkpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPnt7IGJ0bi5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBidG4ubGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXJlc29sdmVCdXR0b25IcmVmKGJ0bilcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidG4pXCJcclxuICAgICAgICAgICAgICBbYXR0ci5pZF09XCJidG4uaWQgfHwgKCd0aXRsZS1iYXItbWVudS1idG4tJyArIChidG4uYWN0aW9uIHx8IGJ0bi5sYWJlbCB8fCBidG4ua2V5KSlcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24+e3sgYnRuLmljb24gfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDxzcGFuPnt7IGJ0bi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidXR0b25zRGlzcGxheU1vZGUgPT09ICdsaXN0J1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBidXR0b25zXCI+XHJcbiAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAqbmdJZj1cInJlc29sdmVCdXR0b25IcmVmKGJ0bikgYXMgaHJlZlwiXHJcbiAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInRpdGxlLWJhci1saXN0LWJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtocmVmXT1cImhyZWZcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidG4sICRldmVudClcIlxyXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJidG4uaWQgfHwgKCd0aXRsZS1iYXItbGlzdC1idG4tJyArIChidG4uYWN0aW9uIHx8IGJ0bi5sYWJlbCB8fCBidG4ua2V5KSlcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPnt7IGJ0bi5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgYnRuLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cIiFyZXNvbHZlQnV0dG9uSHJlZihidG4pXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInRpdGxlLWJhci1saXN0LWJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKGJ0bilcIlxyXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJidG4uaWQgfHwgKCd0aXRsZS1iYXItbGlzdC1idG4tJyArIChidG4uYWN0aW9uIHx8IGJ0bi5sYWJlbCB8fCBidG4ua2V5KSlcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPnt7IGJ0bi5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgYnRuLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -40,9 +40,12 @@ export function buildFormFields(fields, item) {
|
|
|
40
40
|
? []
|
|
41
41
|
: '';
|
|
42
42
|
const extractedValue = item ? extractFieldName(item, field.property) : undefined;
|
|
43
|
-
|
|
43
|
+
let validators = field.required
|
|
44
44
|
? [...(field.validators || []), Validators.required]
|
|
45
|
-
: field.validators || [];
|
|
45
|
+
: [...(field.validators || [])];
|
|
46
|
+
if (field.type === 'number' && !field.allowNegative) {
|
|
47
|
+
validators = [...validators, Validators.min(0)];
|
|
48
|
+
}
|
|
46
49
|
fieldsControls[field.property] = extractedValue !== undefined && extractedValue !== null
|
|
47
50
|
? [extractedValue, validators]
|
|
48
51
|
: [emptyValue, validators];
|
|
@@ -98,4 +101,4 @@ export function getWfActionId(stateType) {
|
|
|
98
101
|
}
|
|
99
102
|
return actionId;
|
|
100
103
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL3V0aWxzL2Jhc2UtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFZLGVBQWUsRUFBWSxhQUFhLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUVFLGFBQVEsR0FBYSxlQUFlLENBQUM7SUE0QnZDLENBQUM7SUExQkMsUUFBUSxDQUFDLE1BQVc7UUFDbEIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDckMsT0FBTywwQkFBMEIsQ0FBQTtRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtRQUNuRSxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUN4SSxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVcsRUFBRSxPQUFPO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1B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LFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGaWVsZEluZm8sIEVNUFRZX1BBR0VfSU5GTywgUGFnZUluZm8sIEZpbHRlclJlcXVlc3QsIFNBVkVfQU5EX0NPTVBMRVRFfSBmcm9tIFwiLi4vYmFzZS1tb2RlbFwiO1xyXG5pbXBvcnQge0FQUFJPVkUsIE5FVywgU0FWRX0gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvZG8tYWN0aW9uLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlVXRpbHMge1xyXG5cclxuICBwYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcblxyXG4gIGxhYmVsS2V5KGNvbHVtbjogYW55KSB7XHJcbiAgICBpZiAoY29sdW1uLnR5cGUgPT09ICd3b3JrZmxvd1N0YXR1cycpIHtcclxuICAgICAgcmV0dXJuICdJTlZFTlRPUlkud29ya2Zsb3dTdGF0dXMnXHJcbiAgICB9XHJcbiAgICBpZiAoIWNvbHVtbi5wcm9wZXJ0eS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmVkS2V5ID0gY29sdW1uLmxhYmVsID8gY29sdW1uLmxhYmVsIDogY29sdW1uLnByb3BlcnR5XHJcbiAgICByZXR1cm4gY29uZmlndXJlZEtleS5zdGFydHNXaXRoKHRoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbikgPyBgJHtjb25maWd1cmVkS2V5fWAgOiBgJHt0aGlzLnBhZ2VJbmZvLmxhYmVsc1NlY3Rpb259LiR7Y29uZmlndXJlZEtleX1gO1xyXG4gIH1cclxuXHJcbiAgbGFiZWxLZXlCeVZhbHVlKGNvbHVtbjogYW55LCBlbGVtZW50KSB7XHJcbiAgICBpZiAoIWNvbHVtbi5wcm9wZXJ0eS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhpcy5wYWdlSW5mby5sYWJlbHNTZWN0aW9ufS4ke2VsZW1lbnRbY29sdW1uLnByb3BlcnR5XX1gXHJcbiAgfVxyXG5cclxuICBmb3JtYXRUaW1lVG9EYXRlKHY6IGFueSl7XHJcbiAgICBjb25zdCBmcm9tVGltZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBpZiAodikge1xyXG4gICAgICBsZXQgc3BsaXQgPSB2LnNwbGl0KFwiOlwiKTtcclxuICAgICAgZnJvbVRpbWUuc2V0SG91cnMoc3BsaXRbMF0sIHNwbGl0WzFdKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZShmcm9tVGltZS5nZXRUaW1lKCkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUZpZWxkcyhmaWVsZHM6IEZpZWxkSW5mb1tdLCBpdGVtOmFueSl7XHJcbiAgbGV0IGZpZWxkc0NvbnRyb2xzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGZvciAobGV0IGZpZWxkIG9mIGZpZWxkcykge1xyXG4gICAgaWYgKGZpZWxkLnR5cGUgIT09ICdzcGFjZXInKSB7XHJcbiAgICAgIGNvbnN0IGVtcHR5VmFsdWUgPVxyXG4gICAgICAgIGZpZWxkLnR5cGUgPT09ICdsb29rdXAnIHx8IGZpZWxkLnR5cGUgPT09ICdtdWx0aS1zZWxlY3QnXHJcbiAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgIDogZmllbGQudHlwZSA9PT0gJ211bHRpLXN0YXRlLWNoZWNrYm94J1xyXG4gICAgICAgICAgICA/IFtdXHJcbiAgICAgICAgICAgIDogJyc7XHJcbiAgICAgIGNvbnN0IGV4dHJhY3RlZFZhbHVlID0gaXRlbSA/IGV4dHJhY3RGaWVsZE5hbWUoaXRlbSwgZmllbGQucHJvcGVydHkpIDogdW5kZWZpbmVkO1xyXG4gICAgICBjb25zdCB2YWxpZGF0b3JzID0gZmllbGQucmVxdWlyZWRcclxuICAgICAgICA/IFsuLi4oZmllbGQudmFsaWRhdG9ycyB8fCBbXSksIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgICAgOiBmaWVsZC52YWxpZGF0b3JzIHx8IFtdO1xyXG5cclxuICAgICAgZmllbGRzQ29udHJvbHNbZmllbGQucHJvcGVydHldID0gZXh0cmFjdGVkVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBleHRyYWN0ZWRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICAgID8gW2V4dHJhY3RlZFZhbHVlLCB2YWxpZGF0b3JzXVxyXG4gICAgICAgIDogW2VtcHR5VmFsdWUsIHZhbGlkYXRvcnNdO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gZmllbGRzQ29udHJvbHM7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSXRlbXNMaXN0KHNlYXJjaFN0cjogc3RyaW5nLCBhcGlQYXRoPzogc3RyaW5nLCBjYXNjYWRlZEJ5UHJvcGVydHk/OnN0cmluZyl7XHJcbiAgY29uc3QgZmlsdGVyUmVxdWVzdCA6IEZpbHRlclJlcXVlc3QgPSBuZXcgRmlsdGVyUmVxdWVzdCgpO1xyXG4gIC8vIHJldHVybiB7XHJcbiAgZmlsdGVyUmVxdWVzdC5hcGlVcmkgPSBjYXNjYWRlZEJ5UHJvcGVydHkgPyBgJHthcGlQYXRofS8ke2Nhc2NhZGVkQnlQcm9wZXJ0eX1gIDphcGlQYXRoO1xyXG4gIGZpbHRlclJlcXVlc3Quc2VhcmNoU3RyPSBzZWFyY2hTdHJcclxuICBmaWx0ZXJSZXF1ZXN0LnBhZ2VJbmRleCA9IDA7XHJcbiAgZmlsdGVyUmVxdWVzdC5wYWdlU2l6ZT0gMTA7XHJcbiAgZmlsdGVyUmVxdWVzdC5zb3J0S2V5PSAnaWQnO1xyXG4gIGZpbHRlclJlcXVlc3Quc29ydERpcmVjdGlvbiA9IFwiREVTQ1wiIGFzIGNvbnN0O1xyXG4gIC8vIH1cclxuICByZXR1cm4gZmlsdGVyUmVxdWVzdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RGaWVsZE5hbWUoZWxlbWVudDogYW55LCBwcm9wZXJ0eTogc3RyaW5nKSB7XHJcbiAgaWYgKHByb3BlcnR5LmluY2x1ZGVzKCcuJykpIHtcclxuICAgIHJldHVybiBwcm9wZXJ0eS5zcGxpdCgnLicpLnJlZHVjZSgoYWNjLCBwYXJ0KSA9PiBhY2MgJiYgYWNjW3BhcnRdLCBlbGVtZW50KTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGVsZW1lbnRbcHJvcGVydHldO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvc2l0aXZlV2ZBY3Rpb25LZXkoc3RhdGVUeXBlOiBhbnkpIHtcclxuICBpZiAgKHN0YXRlVHlwZSA9PT0gXCJDT01QTEVURURcIikge1xyXG4gICAgcmV0dXJuIFwic2F2ZVwiO1xyXG4gIH0gZWxzZSBpZiAgKHN0YXRlVHlwZSA9PT0gXCJQRU5ESU5HXCIgfHwgc3RhdGVUeXBlID09PSBcIk5FV1wiKSB7XHJcbiAgICByZXR1cm4gXCJhcHByb3ZlXCI7XHJcbiAgfVxyXG4gIHJldHVybiBcInNhdmVcIjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldE5lZ2F0aXZlV2ZBY3Rpb25LZXkoc3RhdGVUeXBlOiBhbnkpIHtcclxuICBpZiAgKHN0YXRlVHlwZSA9PT0gXCJDT01QTEVURURcIiApIHtcclxuICAgIHJldHVybiBcImNhbmNlbFwiO1xyXG4gIH0gZWxzZSBpZiAgKHN0YXRlVHlwZSA9PT0gXCJQRU5ESU5HXCJ8fCBzdGF0ZVR5cGUgPT09IFwiTkVXXCIpIHtcclxuICAgIHJldHVybiBcInJlamVjdFwiO1xyXG4gIH1cclxuICByZXR1cm4gXCJjYW5jZWxcIjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFdmQWN0aW9uSWQoc3RhdGVUeXBlKSB7XHJcbiAgbGV0IGFjdGlvbklkID0gTkVXO1xyXG4gIGlmICAoc3RhdGVUeXBlID09PSBcIkNPTVBMRVRFRFwiKSB7XHJcbiAgICBhY3Rpb25JZCA9ICBTQVZFO1xyXG4gIH0gZWxzZSBpZiAgKHN0YXRlVHlwZSA9PT0gXCJQRU5ESU5HXCIgfHwgc3RhdGVUeXBlID09PSBcIk5FV1wiKSB7XHJcbiAgICBhY3Rpb25JZCA9ICBBUFBST1ZFO1xyXG4gIH1cclxuICByZXR1cm4gYWN0aW9uSWQ7XHJcbn1cclxuXHJcbiJdfQ==
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL3V0aWxzL2Jhc2UtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFZLGVBQWUsRUFBWSxhQUFhLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUVFLGFBQVEsR0FBYSxlQUFlLENBQUM7SUE0QnZDLENBQUM7SUExQkMsUUFBUSxDQUFDLE1BQVc7UUFDbEIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDckMsT0FBTywwQkFBMEIsQ0FBQTtRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQTtRQUNuRSxPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUN4SSxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVcsRUFBRSxPQUFPO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1B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QUFHLENBQUM7SUFDbkIsSUFBSyxTQUFTLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDL0IsUUFBUSxHQUFJLElBQUksQ0FBQztJQUNuQixDQUFDO1NBQU0sSUFBSyxTQUFTLEtBQUssU0FBUyxJQUFJLFNBQVMsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUMzRCxRQUFRLEdBQUksT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGaWVsZEluZm8sIEVNUFRZX1BBR0VfSU5GTywgUGFnZUluZm8sIEZpbHRlclJlcXVlc3QsIFNBVkVfQU5EX0NPTVBMRVRFfSBmcm9tIFwiLi4vYmFzZS1tb2RlbFwiO1xyXG5pbXBvcnQge0FQUFJPVkUsIE5FVywgU0FWRX0gZnJvbSBcIi4uL2Jhc2UtbW9kZWwvZG8tYWN0aW9uLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlVXRpbHMge1xyXG5cclxuICBwYWdlSW5mbzogUGFnZUluZm8gPSBFTVBUWV9QQUdFX0lORk87XHJcblxyXG4gIGxhYmVsS2V5KGNvbHVtbjogYW55KSB7XHJcbiAgICBpZiAoY29sdW1uLnR5cGUgPT09ICd3b3JrZmxvd1N0YXR1cycpIHtcclxuICAgICAgcmV0dXJuICdJTlZFTlRPUlkud29ya2Zsb3dTdGF0dXMnXHJcbiAgICB9XHJcbiAgICBpZiAoIWNvbHVtbi5wcm9wZXJ0eS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmVkS2V5ID0gY29sdW1uLmxhYmVsID8gY29sdW1uLmxhYmVsIDogY29sdW1uLnByb3BlcnR5XHJcbiAgICByZXR1cm4gY29uZmlndXJlZEtleS5zdGFydHNXaXRoKHRoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbikgPyBgJHtjb25maWd1cmVkS2V5fWAgOiBgJHt0aGlzLnBhZ2VJbmZvLmxhYmVsc1NlY3Rpb259LiR7Y29uZmlndXJlZEtleX1gO1xyXG4gIH1cclxuXHJcbiAgbGFiZWxLZXlCeVZhbHVlKGNvbHVtbjogYW55LCBlbGVtZW50KSB7XHJcbiAgICBpZiAoIWNvbHVtbi5wcm9wZXJ0eS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhpcy5wYWdlSW5mby5sYWJlbHNTZWN0aW9ufS4ke2VsZW1lbnRbY29sdW1uLnByb3BlcnR5XX1gXHJcbiAgfVxyXG5cclxuICBmb3JtYXRUaW1lVG9EYXRlKHY6IGFueSl7XHJcbiAgICBjb25zdCBmcm9tVGltZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBpZiAodikge1xyXG4gICAgICBsZXQgc3BsaXQgPSB2LnNwbGl0KFwiOlwiKTtcclxuICAgICAgZnJvbVRpbWUuc2V0SG91cnMoc3BsaXRbMF0sIHNwbGl0WzFdKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZShmcm9tVGltZS5nZXRUaW1lKCkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUZpZWxkcyhmaWVsZHM6IEZpZWxkSW5mb1tdLCBpdGVtOmFueSl7XHJcbiAgbGV0IGZpZWxkc0NvbnRyb2xzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGZvciAobGV0IGZpZWxkIG9mIGZpZWxkcykge1xyXG4gICAgaWYgKGZpZWxkLnR5cGUgIT09ICdzcGFjZXInKSB7XHJcbiAgICAgIGNvbnN0IGVtcHR5VmFsdWUgPVxyXG4gICAgICAgIGZpZWxkLnR5cGUgPT09ICdsb29rdXAnIHx8IGZpZWxkLnR5cGUgPT09ICdtdWx0aS1zZWxlY3QnXHJcbiAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgIDogZmllbGQudHlwZSA9PT0gJ211bHRpLXN0YXRlLWNoZWNrYm94J1xyXG4gICAgICAgICAgICA/IFtdXHJcbiAgICAgICAgICAgIDogJyc7XHJcbiAgICAgIGNvbnN0IGV4dHJhY3RlZFZhbHVlID0gaXRlbSA/IGV4dHJhY3RGaWVsZE5hbWUoaXRlbSwgZmllbGQucHJvcGVydHkpIDogdW5kZWZpbmVkO1xyXG4gICAgICBsZXQgdmFsaWRhdG9ycyA9IGZpZWxkLnJlcXVpcmVkXHJcbiAgICAgICAgPyBbLi4uKGZpZWxkLnZhbGlkYXRvcnMgfHwgW10pLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgICAgIDogWy4uLihmaWVsZC52YWxpZGF0b3JzIHx8IFtdKV07XHJcbiAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJyAmJiAhZmllbGQuYWxsb3dOZWdhdGl2ZSkge1xyXG4gICAgICAgIHZhbGlkYXRvcnMgPSBbLi4udmFsaWRhdG9ycywgVmFsaWRhdG9ycy5taW4oMCldO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmaWVsZHNDb250cm9sc1tmaWVsZC5wcm9wZXJ0eV0gPSBleHRyYWN0ZWRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIGV4dHJhY3RlZFZhbHVlICE9PSBudWxsXHJcbiAgICAgICAgPyBbZXh0cmFjdGVkVmFsdWUsIHZhbGlkYXRvcnNdXHJcbiAgICAgICAgOiBbZW1wdHlWYWx1ZSwgdmFsaWRhdG9yc107XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBmaWVsZHNDb250cm9scztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRJdGVtc0xpc3Qoc2VhcmNoU3RyOiBzdHJpbmcsIGFwaVBhdGg/OiBzdHJpbmcsIGNhc2NhZGVkQnlQcm9wZXJ0eT86c3RyaW5nKXtcclxuICBjb25zdCBmaWx0ZXJSZXF1ZXN0IDogRmlsdGVyUmVxdWVzdCA9IG5ldyBGaWx0ZXJSZXF1ZXN0KCk7XHJcbiAgLy8gcmV0dXJuIHtcclxuICBmaWx0ZXJSZXF1ZXN0LmFwaVVyaSA9IGNhc2NhZGVkQnlQcm9wZXJ0eSA/IGAke2FwaVBhdGh9LyR7Y2FzY2FkZWRCeVByb3BlcnR5fWAgOmFwaVBhdGg7XHJcbiAgZmlsdGVyUmVxdWVzdC5zZWFyY2hTdHI9IHNlYXJjaFN0clxyXG4gIGZpbHRlclJlcXVlc3QucGFnZUluZGV4ID0gMDtcclxuICBmaWx0ZXJSZXF1ZXN0LnBhZ2VTaXplPSAxMDtcclxuICBmaWx0ZXJSZXF1ZXN0LnNvcnRLZXk9ICdpZCc7XHJcbiAgZmlsdGVyUmVxdWVzdC5zb3J0RGlyZWN0aW9uID0gXCJERVNDXCIgYXMgY29uc3Q7XHJcbiAgLy8gfVxyXG4gIHJldHVybiBmaWx0ZXJSZXF1ZXN0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEZpZWxkTmFtZShlbGVtZW50OiBhbnksIHByb3BlcnR5OiBzdHJpbmcpIHtcclxuICBpZiAocHJvcGVydHkuaW5jbHVkZXMoJy4nKSkge1xyXG4gICAgcmV0dXJuIHByb3BlcnR5LnNwbGl0KCcuJykucmVkdWNlKChhY2MsIHBhcnQpID0+IGFjYyAmJiBhY2NbcGFydF0sIGVsZW1lbnQpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZWxlbWVudFtwcm9wZXJ0eV07XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9zaXRpdmVXZkFjdGlvbktleShzdGF0ZVR5cGU6IGFueSkge1xyXG4gIGlmICAoc3RhdGVUeXBlID09PSBcIkNPTVBMRVRFRFwiKSB7XHJcbiAgICByZXR1cm4gXCJzYXZlXCI7XHJcbiAgfSBlbHNlIGlmICAoc3RhdGVUeXBlID09PSBcIlBFTkRJTkdcIiB8fCBzdGF0ZVR5cGUgPT09IFwiTkVXXCIpIHtcclxuICAgIHJldHVybiBcImFwcHJvdmVcIjtcclxuICB9XHJcbiAgcmV0dXJuIFwic2F2ZVwiO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmVnYXRpdmVXZkFjdGlvbktleShzdGF0ZVR5cGU6IGFueSkge1xyXG4gIGlmICAoc3RhdGVUeXBlID09PSBcIkNPTVBMRVRFRFwiICkge1xyXG4gICAgcmV0dXJuIFwiY2FuY2VsXCI7XHJcbiAgfSBlbHNlIGlmICAoc3RhdGVUeXBlID09PSBcIlBFTkRJTkdcInx8IHN0YXRlVHlwZSA9PT0gXCJORVdcIikge1xyXG4gICAgcmV0dXJuIFwicmVqZWN0XCI7XHJcbiAgfVxyXG4gIHJldHVybiBcImNhbmNlbFwiO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2ZBY3Rpb25JZChzdGF0ZVR5cGUpIHtcclxuICBsZXQgYWN0aW9uSWQgPSBORVc7XHJcbiAgaWYgIChzdGF0ZVR5cGUgPT09IFwiQ09NUExFVEVEXCIpIHtcclxuICAgIGFjdGlvbklkID0gIFNBVkU7XHJcbiAgfSBlbHNlIGlmICAoc3RhdGVUeXBlID09PSBcIlBFTkRJTkdcIiB8fCBzdGF0ZVR5cGUgPT09IFwiTkVXXCIpIHtcclxuICAgIGFjdGlvbklkID0gIEFQUFJPVkU7XHJcbiAgfVxyXG4gIHJldHVybiBhY3Rpb25JZDtcclxufVxyXG5cclxuIl19
|