raise-common-lib-new 0.0.36 → 0.0.38
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/README.md +24 -24
- package/esm2022/lib/actions/toolbar/constants.mjs +2 -0
- package/esm2022/lib/{layout → actions}/toolbar/index.component.mjs +3 -3
- package/esm2022/lib/actions/toolbar-item/index.component.mjs +82 -0
- package/esm2022/lib/commentary/index.component.mjs +19 -10
- package/esm2022/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.mjs +42 -3
- package/esm2022/lib/common-grid/grid-action/grid-action.component.mjs +2 -2
- package/esm2022/lib/common-grid/index.component.mjs +30 -3
- package/esm2022/lib/dialog/common-delete-dialog/index.component.mjs +11 -7
- package/esm2022/lib/dialog/common-dialog/index.component.mjs +45 -12
- package/esm2022/lib/float-box/index.component.mjs +3 -1
- package/esm2022/lib/form/confirm-select/index.component.mjs +78 -0
- package/esm2022/lib/form/drawer-form/constants.mjs +1 -1
- package/esm2022/lib/form/drawer-form/drawer-form.component.mjs +52 -24
- package/esm2022/lib/form/richtexteditor/ai-config.mjs +35 -0
- package/esm2022/lib/form/richtexteditor/data-config.mjs +222 -0
- package/esm2022/lib/form/richtexteditor/index.component.mjs +425 -0
- package/esm2022/lib/form/richtexteditor/openapi.mjs +121 -0
- package/esm2022/lib/form/search-input/index.component.mjs +45 -0
- package/esm2022/lib/form/tag-input/index.component.mjs +1 -1
- package/esm2022/lib/layout/drawer/index.component.mjs +28 -18
- package/esm2022/lib/layout/grid-box/index.component.mjs +28 -19
- package/esm2022/lib/layout/main-container/index.component.mjs +3 -3
- package/esm2022/lib/layout/multi-tab/index.component.mjs +80 -41
- package/esm2022/lib/layout/page-list/index.component.mjs +28 -19
- package/esm2022/lib/layout/rs-aside/index.component.mjs +12 -9
- package/esm2022/lib/layout/rs-footer/index.component.mjs +2 -2
- package/esm2022/lib/layout/rs-header/index.component.mjs +6 -3
- package/esm2022/lib/raise-common-lib.module.mjs +43 -15
- package/esm2022/lib/service/dialog.service.mjs +9 -6
- package/esm2022/lib/service/drawer.service.mjs +8 -6
- package/esm2022/lib/truncated-text-toggle/index.component.mjs +41 -0
- package/esm2022/public-api.mjs +7 -4
- package/fesm2022/raise-common-lib-new.mjs +1433 -220
- package/fesm2022/raise-common-lib-new.mjs.map +1 -1
- package/lib/{form → actions}/toolbar-item/index.component.d.ts +2 -1
- package/lib/commentary/index.component.d.ts +2 -2
- package/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.d.ts +6 -1
- package/lib/common-grid/index.component.d.ts +10 -1
- package/lib/dialog/common-delete-dialog/index.component.d.ts +8 -2
- package/lib/dialog/common-dialog/index.component.d.ts +10 -2
- package/lib/float-box/index.component.d.ts +2 -2
- package/lib/form/confirm-select/index.component.d.ts +28 -0
- package/lib/form/drawer-form/constants.d.ts +2 -0
- package/lib/form/drawer-form/drawer-form.component.d.ts +8 -5
- package/lib/form/richtexteditor/ai-config.d.ts +10 -0
- package/lib/form/richtexteditor/data-config.d.ts +14 -0
- package/lib/form/richtexteditor/index.component.d.ts +83 -0
- package/lib/form/richtexteditor/openapi.d.ts +3 -0
- package/lib/form/search-input/index.component.d.ts +17 -0
- package/lib/layout/drawer/index.component.d.ts +8 -7
- package/lib/layout/grid-box/index.component.d.ts +9 -6
- package/lib/layout/multi-tab/index.component.d.ts +9 -3
- package/lib/layout/page-list/index.component.d.ts +9 -6
- package/lib/layout/rs-aside/index.component.d.ts +3 -1
- package/lib/layout/rs-header/index.component.d.ts +2 -1
- package/lib/raise-common-lib.module.d.ts +37 -32
- package/lib/service/dialog.service.d.ts +3 -1
- package/lib/service/drawer.service.d.ts +1 -1
- package/lib/truncated-text-toggle/index.component.d.ts +15 -0
- package/package.json +2 -2
- package/public-api.d.ts +6 -3
- package/src/assets/img/arrow_right.svg +4 -4
- package/src/assets/img/calendar-disabled.svg +6 -6
- package/src/assets/img/calendar.svg +6 -6
- package/src/assets/img/calendar_arrow_left.svg +3 -3
- package/src/assets/img/calendar_arrow_right.svg +3 -3
- package/src/assets/img/checked-vector.svg +3 -3
- package/src/assets/img/click_show_more_icon.svg +3 -0
- package/src/assets/img/dialog-close.svg +4 -0
- package/src/assets/img/dialog-grow.svg +6 -0
- package/src/assets/img/dialog-shrink.svg +6 -0
- package/src/assets/img/editor-copy.svg +5 -0
- package/src/assets/img/grid-action-detail.svg +4 -5
- package/src/assets/img/grid-action-duplicate.svg +6 -0
- package/src/assets/img/grid-action-export.svg +4 -11
- package/src/assets/img/grid-action-preview.svg +7 -0
- package/src/assets/img/grid-action-refresh.svg +4 -0
- package/src/assets/img/grid-action-verify.svg +7 -0
- package/src/assets/img/grid-action-viewStatus.svg +3 -0
- package/src/assets/img/grid-menu-arrow-up.svg +4 -0
- package/src/assets/img/grid-menu-filter.svg +6 -0
- package/src/assets/img/info.svg +5 -0
- package/src/assets/img/plus.svg +4 -4
- package/src/assets/img/search.svg +4 -4
- package/src/assets/img/shrink-icon.svg +6 -0
- package/src/assets/img/time-disabled.svg +4 -4
- package/src/assets/img/time.svg +4 -4
- package/src/assets/img/toolbar-action-addFolder.svg +17 -0
- package/src/assets/img/toolbar-action-calculator.svg +11 -0
- package/src/assets/img/toolbar-action-collapse.svg +7 -0
- package/src/assets/img/toolbar-action-combine.svg +4 -0
- package/src/assets/img/toolbar-action-edit.svg +4 -0
- package/src/assets/img/toolbar-action-expand.svg +7 -0
- package/src/assets/img/toolbar-action-fetchData.svg +3 -0
- package/src/assets/img/toolbar-action-folderMove.svg +8 -0
- package/src/assets/img/toolbar-action-lock.svg +6 -0
- package/src/assets/img/toolbar-action-preview.svg +7 -0
- package/src/assets/img/toolbar-action-publish.svg +5 -0
- package/src/assets/img/toolbar-action-refresh.svg +3 -13
- package/src/assets/img/toolbar-action-reminders.svg +10 -0
- package/src/assets/img/toolbar-action-rename.svg +7 -0
- package/src/assets/img/toolbar-action-saveSequence.svg +5 -0
- package/src/assets/img/toolbar-action-send-file.svg +5 -0
- package/src/assets/img/toolbar-action-settle.svg +7 -0
- package/src/assets/img/toolbar-action-share.svg +5 -0
- package/src/assets/img/toolbar-action-submitForApproval.svg +4 -0
- package/src/assets/img/toolbar-action-sync.svg +4 -0
- package/src/assets/img/toolbar-action-template.svg +6 -0
- package/src/assets/img/toolbar-action-update.svg +11 -0
- package/src/assets/img/toolbar-action-workflow.svg +9 -0
- package/src/assets/style/reset/button.scss +3 -3
- package/src/assets/style/reset/checkbox.scss +15 -9
- package/src/assets/style/reset/dropdown.scss +56 -14
- package/src/assets/style/reset/grid.scss +134 -2
- package/src/assets/style/reset/mat-dialog.scss +1 -2
- package/src/assets/style/reset/radio.scss +33 -35
- package/src/assets/style/style.scss +0 -1
- package/esm2022/lib/form/toolbar-item/index.component.mjs +0 -56
- package/esm2022/lib/layout/toolbar/constants.mjs +0 -2
- /package/lib/{layout → actions}/toolbar/constants.d.ts +0 -0
- /package/lib/{layout → actions}/toolbar/index.component.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# CsLib
|
|
2
|
-
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Run `ng generate component component-name --project raise-common-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project raise-common-lib`.
|
|
8
|
-
> Note: Don't forget to add `--project raise-common-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
-
|
|
10
|
-
## Build
|
|
11
|
-
|
|
12
|
-
Run `ng build raise-common-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
-
|
|
14
|
-
## Publishing
|
|
15
|
-
|
|
16
|
-
After building your library with `ng build raise-common-lib`, go to the dist folder `cd dist/raise-common-lib` and run `npm publish`.
|
|
17
|
-
|
|
18
|
-
## Running unit tests
|
|
19
|
-
|
|
20
|
-
Run `ng test raise-common-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
-
|
|
22
|
-
## Further help
|
|
23
|
-
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
1
|
+
# CsLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project raise-common-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project raise-common-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project raise-common-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build raise-common-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build raise-common-lib`, go to the dist folder `cd dist/raise-common-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test raise-common-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2FjdGlvbnMvdG9vbGJhci9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVG9vbGJhckJ1dHRvbiB7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIGltYWdlPzogc3RyaW5nO1xyXG4gIGFjdGlvbjogKCkgPT4gdm9pZDtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogVG9vbGJhckJ1dHRvbltdO1xyXG59XHJcbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import * as i1 from "@angular/router";
|
|
|
5
5
|
import * as i2 from "@angular/common";
|
|
6
6
|
import * as i3 from "@angular/material/menu";
|
|
7
7
|
import * as i4 from "@angular/material/icon";
|
|
8
|
-
import * as i5 from "
|
|
8
|
+
import * as i5 from "../toolbar-item/index.component";
|
|
9
9
|
export class RSToolbarComponent {
|
|
10
10
|
router;
|
|
11
11
|
ref;
|
|
@@ -57,7 +57,7 @@ export class RSToolbarComponent {
|
|
|
57
57
|
this.updateButtonVisibility();
|
|
58
58
|
}
|
|
59
59
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSToolbarComponent, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSToolbarComponent, selector: "rs-toolbar", inputs: { buttons: "buttons", disabledOptions: "disabledOptions" }, host: { listeners: { "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true }, { propertyName: "buttonElements", predicate: ["toolbarItem"], descendants: true }], ngImport: i0, template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.rs-toolbar-container{width:100%;display:flex;align-items:center}.rs-toolbar-container .temp-hidden{visibility:hidden;position:absolute}.rs-toolbar-container .action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.rs-toolbar-container .action-toggle:hover{background:#d6e3f533}.rs-toolbar-container .action-toggle .mat-button-wrapper{max-height:24px;height:24px}.rs-toolbar-container .action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.ToolbarItemComponent, selector: "rs-toolbar-item", inputs: ["image", "text", "disabled", "children", "disabledOptions"] }] });
|
|
60
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSToolbarComponent, selector: "rs-toolbar", inputs: { buttons: "buttons", disabledOptions: "disabledOptions" }, host: { listeners: { "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true }, { propertyName: "buttonElements", predicate: ["toolbarItem"], descendants: true }], ngImport: i0, template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.rs-toolbar-container{width:100%;display:flex;align-items:center}.rs-toolbar-container .temp-hidden{visibility:hidden;position:absolute}.rs-toolbar-container .action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.rs-toolbar-container .action-toggle:hover{background:#d6e3f533}.rs-toolbar-container .action-toggle .mat-button-wrapper{max-height:24px;height:24px}.rs-toolbar-container .action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.ToolbarItemComponent, selector: "rs-toolbar-item", inputs: ["image", "text", "disabled", "children", "hideArrow", "disabledOptions"] }] });
|
|
61
61
|
}
|
|
62
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSToolbarComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
76
76
|
type: HostListener,
|
|
77
77
|
args: ["window:resize"]
|
|
78
78
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2FjdGlvbnMvdG9vbGJhci9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvYWN0aW9ucy90b29sYmFyL2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixPQUFPLEVBR0wsU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBSUwsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVN2QixNQUFNLE9BQU8sa0JBQWtCO0lBU1Y7SUFBd0I7SUFSbEMsT0FBTyxHQUFvQixFQUFFLENBQUM7SUFDOUIsZUFBZSxHQUEyQixFQUFFLENBQUM7SUFHdEQsZ0JBQWdCLENBQWM7SUFFRCxjQUFjLENBQXlCO0lBRXBFLFlBQW1CLE1BQWMsRUFBVSxHQUFzQjtRQUE5QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFBRyxDQUFDO0lBQ3JFLGVBQWU7UUFDYixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsY0FBYyxHQUFvQixFQUFFLENBQUM7SUFDckMsYUFBYSxHQUFvQixFQUFFLENBQUM7SUFFN0Isc0JBQXNCO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU87UUFFM0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDNUUsaURBQWlEO1FBQ2pELElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNuQixNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFFeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsTUFBTSxXQUFXLEdBQ2YsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM1RCwyQ0FBMkM7WUFDM0MsSUFDRSxVQUFVO2dCQUNSLENBQUMsR0FBRyw2QkFBNkI7Z0JBQ2pDLFdBQVc7Z0JBQ1gsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuRCxjQUFjLEVBQ2Q7Z0JBQ0EsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzVELFVBQVUsSUFBSSxXQUFXLENBQUM7YUFDM0I7aUJBQU07Z0JBQ0wsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUM7U0FDRjtRQUNELHNEQUFzRDtRQUN0RCxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR0QsY0FBYztRQUNaLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7d0dBeERVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLDZYQ3ZCL0IsczZDQXlDQTs7NEZEbEJhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxZQUFZOzZIQUtiLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHbkIsY0FBYztzQkFBMUMsWUFBWTt1QkFBQyxhQUFhO2dCQStDM0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZHJlbixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IFRvb2xiYXJCdXR0b24gfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLXRvb2xiYXJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUlNUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgYnV0dG9uczogVG9vbGJhckJ1dHRvbltdID0gW107XHJcbiAgQElucHV0KCkgZGlzYWJsZWRPcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJ0b29sYmFyQ29udGFpbmVyXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHRvb2xiYXJDb250YWluZXIhOiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkcmVuKFwidG9vbGJhckl0ZW1cIikgYnV0dG9uRWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlQnV0dG9uVmlzaWJpbGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgdmlzaWJsZUJ1dHRvbnM6IFRvb2xiYXJCdXR0b25bXSA9IFtdO1xyXG4gIGhpZGRlbkJ1dHRvbnM6IFRvb2xiYXJCdXR0b25bXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgdXBkYXRlQnV0dG9uVmlzaWJpbGl0eSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50b29sYmFyQ29udGFpbmVyIHx8ICF0aGlzLmJ1dHRvbkVsZW1lbnRzKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgYnV0dG9uUmVmcyA9IHRoaXMuYnV0dG9uRWxlbWVudHMudG9BcnJheSgpO1xyXG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLnRvb2xiYXJDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIDUwO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJjb250YWluZXJXaWR0aFwiLCBjb250YWluZXJXaWR0aCk7XHJcbiAgICBsZXQgdG90YWxXaWR0aCA9IDA7XHJcbiAgICBjb25zdCBtZW51QnV0dG9uV2lkdGggPSA2MDtcclxuXHJcbiAgICB0aGlzLnZpc2libGVCdXR0b25zID0gW107XHJcbiAgICB0aGlzLmhpZGRlbkJ1dHRvbnMgPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ1dHRvblJlZnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgYnV0dG9uV2lkdGggPVxyXG4gICAgICAgIGJ1dHRvblJlZnNbaV0ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcclxuICAgICAgLy8gY29uc29sZS5sb2coXCJidXR0b25XaWR0aFwiLCBidXR0b25XaWR0aCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0b3RhbFdpZHRoICtcclxuICAgICAgICAgIDQgKyAvLyA0cHggbWFyZ2luIGJldHdlZW4gYnV0dG9uc1xyXG4gICAgICAgICAgYnV0dG9uV2lkdGggK1xyXG4gICAgICAgICAgKGkgPCBidXR0b25SZWZzLmxlbmd0aCAtIDEgPyBtZW51QnV0dG9uV2lkdGggOiAwKSA8PVxyXG4gICAgICAgIGNvbnRhaW5lcldpZHRoXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZUJ1dHRvbnMucHVzaCh0aGlzLmJ1dHRvbnNbaV0pO1xyXG4gICAgICAgIGJ1dHRvblJlZnNbaV0ubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwidGVtcC1oaWRkZW5cIik7XHJcbiAgICAgICAgdG90YWxXaWR0aCArPSBidXR0b25XaWR0aDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBidXR0b25SZWZzW2ldLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInRlbXAtaGlkZGVuXCIpO1xyXG4gICAgICAgIHRoaXMuaGlkZGVuQnV0dG9ucy5wdXNoKHRoaXMuYnV0dG9uc1tpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGNvbnNvbGUubG9nKFwidmlzaWJsZUJ1dHRvbnNcIiwgdGhpcy52aXNpYmxlQnV0dG9ucyk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcImhpZGRlbkJ1dHRvbnNcIiwgdGhpcy5oaWRkZW5CdXR0b25zKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXHJcbiAgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUJ1dHRvblZpc2liaWxpdHkoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjdG9vbGJhckNvbnRhaW5lciBjbGFzcz1cInJzLXRvb2xiYXItY29udGFpbmVyXCI+XHJcbiAgPCEtLSDlj6/op4HmjInpkq4gLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGJ1dHRvbnNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZW1wLWhpZGRlblwiICN0b29sYmFySXRlbT5cclxuICAgICAgPHJzLXRvb2xiYXItaXRlbVxyXG4gICAgICAgIFtpbWFnZV09XCJidXR0b24uaW1hZ2VcIlxyXG4gICAgICAgIFt0ZXh0XT1cImJ1dHRvbi50ZXh0XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiKGJ1dHRvbi5rZXkgJiYgZGlzYWJsZWRPcHRpb25zW2J1dHRvbi5rZXldKSB8fCBmYWxzZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImJ1dHRvbi5hY3Rpb24gJiYgYnV0dG9uLmFjdGlvbigpXCJcclxuICAgICAgICBbY2hpbGRyZW5dPVwiYnV0dG9uLmNoaWxkcmVuIHx8IFtdXCJcclxuICAgICAgICBbZGlzYWJsZWRPcHRpb25zXT1cImRpc2FibGVkT3B0aW9uc1wiXHJcbiAgICAgID5cclxuICAgICAgPC9ycy10b29sYmFyLWl0ZW0+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPCEtLSDkuIvmi4noj5zljZXvvIjlpoLmnpzmnInpmpDol4/mjInpkq7vvIkgLS0+XHJcbiAgPGJ1dHRvblxyXG4gICAgKm5nSWY9XCJoaWRkZW5CdXR0b25zLmxlbmd0aCA+IDBcIlxyXG4gICAgbWF0LWJ1dHRvblxyXG4gICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4gICAgI21lbnVUcmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIlxyXG4gICAgY2xhc3M9XCJhY3Rpb24tdG9nZ2xlXCJcclxuICA+XHJcbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm1vcmVcIj48L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2YgaGlkZGVuQnV0dG9uc1wiPlxyXG4gICAgICA8cnMtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgW2ltYWdlXT1cImJ1dHRvbi5pbWFnZVwiXHJcbiAgICAgICAgW3RleHRdPVwiYnV0dG9uLnRleHRcIlxyXG4gICAgICAgIChjbGljayk9XCJidXR0b24uYWN0aW9uICYmIGJ1dHRvbi5hY3Rpb24oKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkT3B0aW9uc1tidXR0b24ua2V5XSB8fCBmYWxzZVwiXHJcbiAgICAgICAgW2NoaWxkcmVuXT1cImJ1dHRvbi5jaGlsZHJlbiB8fCBbXVwiXHJcbiAgICAgICAgW2Rpc2FibGVkT3B0aW9uc109XCJkaXNhYmxlZE9wdGlvbnNcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvcnMtdG9vbGJhci1pdGVtPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Component, HostBinding, Input, ViewChild, } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/material/menu";
|
|
5
|
+
export class ToolbarItemComponent {
|
|
6
|
+
image;
|
|
7
|
+
text;
|
|
8
|
+
disabled;
|
|
9
|
+
children = [];
|
|
10
|
+
hideArrow = false;
|
|
11
|
+
disabledOptions = {};
|
|
12
|
+
buttonElement;
|
|
13
|
+
get hostDisabled() {
|
|
14
|
+
return !!this.disabled;
|
|
15
|
+
}
|
|
16
|
+
// 暴露方法供父组件调用
|
|
17
|
+
getWidth() {
|
|
18
|
+
return this.buttonElement.nativeElement.offsetWidth;
|
|
19
|
+
}
|
|
20
|
+
ImageType = [
|
|
21
|
+
"Add",
|
|
22
|
+
"Delete",
|
|
23
|
+
"Update",
|
|
24
|
+
"Import",
|
|
25
|
+
"Export",
|
|
26
|
+
"Upload",
|
|
27
|
+
"Download",
|
|
28
|
+
"Duplicate",
|
|
29
|
+
"Refresh",
|
|
30
|
+
"AddFolder",
|
|
31
|
+
"Collapse",
|
|
32
|
+
"Combine",
|
|
33
|
+
"Edit",
|
|
34
|
+
"Lock",
|
|
35
|
+
"Expand",
|
|
36
|
+
"MoveTo",
|
|
37
|
+
"Publish",
|
|
38
|
+
"Preview",
|
|
39
|
+
"ReCalculate",
|
|
40
|
+
"Sync",
|
|
41
|
+
"Share",
|
|
42
|
+
"Rename",
|
|
43
|
+
"SaveSequence",
|
|
44
|
+
"SubmitForApproval",
|
|
45
|
+
"SendToControlPanel",
|
|
46
|
+
"SetReminders",
|
|
47
|
+
"Settle",
|
|
48
|
+
"Template",
|
|
49
|
+
"Workflow",
|
|
50
|
+
"FetchData",
|
|
51
|
+
];
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolbarItemComponent, selector: "rs-toolbar-item", inputs: { image: "image", text: "text", disabled: "disabled", children: "children", hideArrow: "hideArrow", disabledOptions: "disabledOptions" }, host: { properties: { "class.disabled": "this.hostDisabled" } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["buttonElement"], descendants: true }], ngImport: i0, template: "<button\r\n *ngIf=\"!children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" *ngIf=\"image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" *ngIf=\"image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n <span class=\"toolbar-action-arrow\" *ngIf=\"!hideArrow\">\r\n <img src=\"assets/img/down-arrow.svg\" />\r\n </span>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" class=\"toolbar-action-menu-content\">\r\n <ng-container *ngFor=\"let button of children\">\r\n <button\r\n class=\"toolbar-action-item e-btn text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action()\"\r\n >\r\n <span\r\n class=\"toolbar-action-image\"\r\n *ngIf=\"button.image\"\r\n [attr.data-type]=\"button.image\"\r\n >\r\n <img *ngIf=\"!ImageType.includes(button.image)\" [src]=\"button.image\" />\r\n </span>\r\n <span>{{ button.text }}</span>\r\n </button>\r\n </ng-container>\r\n</mat-menu>\r\n", styles: ["rs-toolbar-item.disabled{pointer-events:none}.toolbar-action-item{padding:4px 8px;font-size:11px!important;min-width:100px;font-size:11px}.toolbar-action-item .toolbar-action-image{height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}.toolbar-action-item .toolbar-action-image:before{display:block;width:16px;height:16px}.toolbar-action-item .toolbar-action-image[data-type=Add]:before{content:url(/assets/img/toolbar-action-add.svg)}.toolbar-action-item .toolbar-action-image[data-type=Delete]:before{content:url(/assets/img/toolbar-action-delete.svg)}.toolbar-action-item .toolbar-action-image[data-type=Import]:before{content:url(/assets/img/toolbar-action-import.svg)}.toolbar-action-item .toolbar-action-image[data-type=Upload]:before{content:url(/assets/img/toolbar-action-upload.svg)}.toolbar-action-item .toolbar-action-image[data-type=Download]:before{content:url(/assets/img/toolbar-action-download.svg)}.toolbar-action-item .toolbar-action-image[data-type=Export]:before{content:url(/assets/img/toolbar-action-export.svg)}.toolbar-action-item .toolbar-action-image[data-type=Duplicate]:before{content:url(/assets/img/toolbar-action-duplicate.svg)}.toolbar-action-item .toolbar-action-image[data-type=Refresh]:before{content:url(/assets/img/toolbar-action-refresh.svg)}.toolbar-action-item .toolbar-action-image[data-type=AddFolder]:before{content:url(/assets/img/toolbar-action-addFolder.svg)}.toolbar-action-item .toolbar-action-image[data-type=Collapse]:before{content:url(/assets/img/toolbar-action-collapse.svg)}.toolbar-action-item .toolbar-action-image[data-type=Combine]:before{content:url(/assets/img/toolbar-action-combine.svg)}.toolbar-action-item .toolbar-action-image[data-type=Edit]:before{content:url(/assets/img/toolbar-action-edit.svg)}.toolbar-action-item .toolbar-action-image[data-type=Lock]:before{content:url(/assets/img/toolbar-action-lock.svg)}.toolbar-action-item .toolbar-action-image[data-type=Expand]:before{content:url(/assets/img/toolbar-action-expand.svg)}.toolbar-action-item .toolbar-action-image[data-type=MoveTo]:before{content:url(/assets/img/toolbar-action-folderMove.svg)}.toolbar-action-item .toolbar-action-image[data-type=Publish]:before{content:url(/assets/img/toolbar-action-publish.svg)}.toolbar-action-item .toolbar-action-image[data-type=Preview]:before{content:url(/assets/img/toolbar-action-preview.svg)}.toolbar-action-item .toolbar-action-image[data-type=ReCalculate]:before{content:url(/assets/img/toolbar-action-calculator.svg)}.toolbar-action-item .toolbar-action-image[data-type=Sync]:before{content:url(/assets/img/toolbar-action-sync.svg)}.toolbar-action-item .toolbar-action-image[data-type=Share]:before{content:url(/assets/img/toolbar-action-share.svg)}.toolbar-action-item .toolbar-action-image[data-type=Rename]:before{content:url(/assets/img/toolbar-action-rename.svg)}.toolbar-action-item .toolbar-action-image[data-type=SaveSequence]:before{content:url(/assets/img/toolbar-action-saveSequence.svg)}.toolbar-action-item .toolbar-action-image[data-type=SubmitForApproval]:before{content:url(/assets/img/toolbar-action-submitForApproval.svg)}.toolbar-action-item .toolbar-action-image[data-type=SendToControlPanel]:before{content:url(/assets/img/toolbar-action-send-file.svg)}.toolbar-action-item .toolbar-action-image[data-type=SetReminders]:before{content:url(/assets/img/toolbar-action-reminders.svg)}.toolbar-action-item .toolbar-action-image[data-type=Settle]:before{content:url(/assets/img/toolbar-action-settle.svg)}.toolbar-action-item .toolbar-action-image[data-type=Template]:before{content:url(/assets/img/toolbar-action-template.svg)}.toolbar-action-item .toolbar-action-image[data-type=Workflow]:before{content:url(/assets/img/toolbar-action-workflow.svg)}.toolbar-action-item .toolbar-action-image[data-type=Update]:before{content:url(/assets/img/toolbar-action-update.svg)}.toolbar-action-item .toolbar-action-image[data-type=FetchData]:before{content:url(/assets/img/toolbar-action-fetchData.svg)}.toolbar-action-item .toolbar-action-image img{height:16px;display:block}.toolbar-action-item.e-btn{width:100%;justify-content:flex-start}.toolbar-action-item.mat-menu-item:after{display:none}.toolbar-action-item ::ng-deep .mat-mdc-menu-item-text{font-family:var(--rs-font-family);display:flex;justify-content:center;align-items:center;gap:6px;font-style:normal;background:transparent!important;color:var(--rs-cancel-btn-color)!important;height:24px!important;min-width:auto!important;font-size:12px;border-radius:4px;box-shadow:none!important;line-height:normal}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] });
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarItemComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{ selector: "rs-toolbar-item", template: "<button\r\n *ngIf=\"!children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" *ngIf=\"image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" *ngIf=\"image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n <span class=\"toolbar-action-arrow\" *ngIf=\"!hideArrow\">\r\n <img src=\"assets/img/down-arrow.svg\" />\r\n </span>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" class=\"toolbar-action-menu-content\">\r\n <ng-container *ngFor=\"let button of children\">\r\n <button\r\n class=\"toolbar-action-item e-btn text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action()\"\r\n >\r\n <span\r\n class=\"toolbar-action-image\"\r\n *ngIf=\"button.image\"\r\n [attr.data-type]=\"button.image\"\r\n >\r\n <img *ngIf=\"!ImageType.includes(button.image)\" [src]=\"button.image\" />\r\n </span>\r\n <span>{{ button.text }}</span>\r\n </button>\r\n </ng-container>\r\n</mat-menu>\r\n", styles: ["rs-toolbar-item.disabled{pointer-events:none}.toolbar-action-item{padding:4px 8px;font-size:11px!important;min-width:100px;font-size:11px}.toolbar-action-item .toolbar-action-image{height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}.toolbar-action-item .toolbar-action-image:before{display:block;width:16px;height:16px}.toolbar-action-item .toolbar-action-image[data-type=Add]:before{content:url(/assets/img/toolbar-action-add.svg)}.toolbar-action-item .toolbar-action-image[data-type=Delete]:before{content:url(/assets/img/toolbar-action-delete.svg)}.toolbar-action-item .toolbar-action-image[data-type=Import]:before{content:url(/assets/img/toolbar-action-import.svg)}.toolbar-action-item .toolbar-action-image[data-type=Upload]:before{content:url(/assets/img/toolbar-action-upload.svg)}.toolbar-action-item .toolbar-action-image[data-type=Download]:before{content:url(/assets/img/toolbar-action-download.svg)}.toolbar-action-item .toolbar-action-image[data-type=Export]:before{content:url(/assets/img/toolbar-action-export.svg)}.toolbar-action-item .toolbar-action-image[data-type=Duplicate]:before{content:url(/assets/img/toolbar-action-duplicate.svg)}.toolbar-action-item .toolbar-action-image[data-type=Refresh]:before{content:url(/assets/img/toolbar-action-refresh.svg)}.toolbar-action-item .toolbar-action-image[data-type=AddFolder]:before{content:url(/assets/img/toolbar-action-addFolder.svg)}.toolbar-action-item .toolbar-action-image[data-type=Collapse]:before{content:url(/assets/img/toolbar-action-collapse.svg)}.toolbar-action-item .toolbar-action-image[data-type=Combine]:before{content:url(/assets/img/toolbar-action-combine.svg)}.toolbar-action-item .toolbar-action-image[data-type=Edit]:before{content:url(/assets/img/toolbar-action-edit.svg)}.toolbar-action-item .toolbar-action-image[data-type=Lock]:before{content:url(/assets/img/toolbar-action-lock.svg)}.toolbar-action-item .toolbar-action-image[data-type=Expand]:before{content:url(/assets/img/toolbar-action-expand.svg)}.toolbar-action-item .toolbar-action-image[data-type=MoveTo]:before{content:url(/assets/img/toolbar-action-folderMove.svg)}.toolbar-action-item .toolbar-action-image[data-type=Publish]:before{content:url(/assets/img/toolbar-action-publish.svg)}.toolbar-action-item .toolbar-action-image[data-type=Preview]:before{content:url(/assets/img/toolbar-action-preview.svg)}.toolbar-action-item .toolbar-action-image[data-type=ReCalculate]:before{content:url(/assets/img/toolbar-action-calculator.svg)}.toolbar-action-item .toolbar-action-image[data-type=Sync]:before{content:url(/assets/img/toolbar-action-sync.svg)}.toolbar-action-item .toolbar-action-image[data-type=Share]:before{content:url(/assets/img/toolbar-action-share.svg)}.toolbar-action-item .toolbar-action-image[data-type=Rename]:before{content:url(/assets/img/toolbar-action-rename.svg)}.toolbar-action-item .toolbar-action-image[data-type=SaveSequence]:before{content:url(/assets/img/toolbar-action-saveSequence.svg)}.toolbar-action-item .toolbar-action-image[data-type=SubmitForApproval]:before{content:url(/assets/img/toolbar-action-submitForApproval.svg)}.toolbar-action-item .toolbar-action-image[data-type=SendToControlPanel]:before{content:url(/assets/img/toolbar-action-send-file.svg)}.toolbar-action-item .toolbar-action-image[data-type=SetReminders]:before{content:url(/assets/img/toolbar-action-reminders.svg)}.toolbar-action-item .toolbar-action-image[data-type=Settle]:before{content:url(/assets/img/toolbar-action-settle.svg)}.toolbar-action-item .toolbar-action-image[data-type=Template]:before{content:url(/assets/img/toolbar-action-template.svg)}.toolbar-action-item .toolbar-action-image[data-type=Workflow]:before{content:url(/assets/img/toolbar-action-workflow.svg)}.toolbar-action-item .toolbar-action-image[data-type=Update]:before{content:url(/assets/img/toolbar-action-update.svg)}.toolbar-action-item .toolbar-action-image[data-type=FetchData]:before{content:url(/assets/img/toolbar-action-fetchData.svg)}.toolbar-action-item .toolbar-action-image img{height:16px;display:block}.toolbar-action-item.e-btn{width:100%;justify-content:flex-start}.toolbar-action-item.mat-menu-item:after{display:none}.toolbar-action-item ::ng-deep .mat-mdc-menu-item-text{font-family:var(--rs-font-family);display:flex;justify-content:center;align-items:center;gap:6px;font-style:normal;background:transparent!important;color:var(--rs-cancel-btn-color)!important;height:24px!important;min-width:auto!important;font-size:12px;border-radius:4px;box-shadow:none!important;line-height:normal}\n"] }]
|
|
58
|
+
}], propDecorators: { image: [{
|
|
59
|
+
type: Input,
|
|
60
|
+
args: ["image"]
|
|
61
|
+
}], text: [{
|
|
62
|
+
type: Input,
|
|
63
|
+
args: ["text"]
|
|
64
|
+
}], disabled: [{
|
|
65
|
+
type: Input,
|
|
66
|
+
args: ["disabled"]
|
|
67
|
+
}], children: [{
|
|
68
|
+
type: Input,
|
|
69
|
+
args: ["children"]
|
|
70
|
+
}], hideArrow: [{
|
|
71
|
+
type: Input,
|
|
72
|
+
args: ["hideArrow"]
|
|
73
|
+
}], disabledOptions: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], buttonElement: [{
|
|
76
|
+
type: ViewChild,
|
|
77
|
+
args: ["buttonElement", { static: false }]
|
|
78
|
+
}], hostDisabled: [{
|
|
79
|
+
type: HostBinding,
|
|
80
|
+
args: ["class.disabled"]
|
|
81
|
+
}] } });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2FjdGlvbnMvdG9vbGJhci1pdGVtL2luZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhaXNlLWNvbW1vbi1saWIvc3JjL2xpYi9hY3Rpb25zL3Rvb2xiYXItaXRlbS9pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBQ0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7O0FBT3ZCLE1BQU0sT0FBTyxvQkFBb0I7SUFDZixLQUFLLENBQVM7SUFDZixJQUFJLENBQVM7SUFDVCxRQUFRLENBQVU7SUFDbEIsUUFBUSxHQUFVLEVBQUUsQ0FBQztJQUNwQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQ3RDLGVBQWUsR0FBMkIsRUFBRSxDQUFDO0lBRVAsYUFBYSxDQUFjO0lBQzFFLElBQW1DLFlBQVk7UUFDN0MsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsYUFBYTtJQUNiLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUN0RCxDQUFDO0lBRUQsU0FBUyxHQUFHO1FBQ1YsS0FBSztRQUNMLFFBQVE7UUFDUixRQUFRO1FBQ1IsUUFBUTtRQUNSLFFBQVE7UUFDUixRQUFRO1FBQ1IsVUFBVTtRQUNWLFdBQVc7UUFDWCxTQUFTO1FBQ1QsV0FBVztRQUNYLFVBQVU7UUFDVixTQUFTO1FBQ1QsTUFBTTtRQUNOLE1BQU07UUFDTixRQUFRO1FBQ1IsUUFBUTtRQUNSLFNBQVM7UUFDVCxTQUFTO1FBQ1QsYUFBYTtRQUNiLE1BQU07UUFDTixPQUFPO1FBQ1AsUUFBUTtRQUNSLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxRQUFRO1FBQ1IsVUFBVTtRQUNWLFVBQVU7UUFDVixXQUFXO0tBQ1osQ0FBQzt3R0FqRFMsb0JBQW9COzRGQUFwQixvQkFBb0IsMFhDYmpDLDJnREE4Q0E7OzRGRGpDYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQUtYLEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTztnQkFDQyxJQUFJO3NCQUFsQixLQUFLO3VCQUFDLE1BQU07Z0JBQ00sUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNFLFFBQVE7c0JBQTFCLEtBQUs7dUJBQUMsVUFBVTtnQkFDRyxTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBQ1QsZUFBZTtzQkFBdkIsS0FBSztnQkFFeUMsYUFBYTtzQkFBM0QsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNWLFlBQVk7c0JBQTlDLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLXRvb2xiYXItaXRlbVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb29sYmFySXRlbUNvbXBvbmVudCB7XHJcbiAgQElucHV0KFwiaW1hZ2VcIikgaW1hZ2U6IHN0cmluZztcclxuICBASW5wdXQoXCJ0ZXh0XCIpIHRleHQ6IHN0cmluZztcclxuICBASW5wdXQoXCJkaXNhYmxlZFwiKSBkaXNhYmxlZDogYm9vbGVhbjtcclxuICBASW5wdXQoXCJjaGlsZHJlblwiKSBjaGlsZHJlbjogYW55W10gPSBbXTtcclxuICBASW5wdXQoXCJoaWRlQXJyb3dcIikgaGlkZUFycm93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZWRPcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJidXR0b25FbGVtZW50XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBidXR0b25FbGVtZW50ITogRWxlbWVudFJlZjtcclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5kaXNhYmxlZFwiKSBnZXQgaG9zdERpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuICEhdGhpcy5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8vIOaatOmcsuaWueazleS+m+eItue7hOS7tuiwg+eUqFxyXG4gIGdldFdpZHRoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgfVxyXG5cclxuICBJbWFnZVR5cGUgPSBbXHJcbiAgICBcIkFkZFwiLFxyXG4gICAgXCJEZWxldGVcIixcclxuICAgIFwiVXBkYXRlXCIsXHJcbiAgICBcIkltcG9ydFwiLFxyXG4gICAgXCJFeHBvcnRcIixcclxuICAgIFwiVXBsb2FkXCIsXHJcbiAgICBcIkRvd25sb2FkXCIsXHJcbiAgICBcIkR1cGxpY2F0ZVwiLFxyXG4gICAgXCJSZWZyZXNoXCIsXHJcbiAgICBcIkFkZEZvbGRlclwiLFxyXG4gICAgXCJDb2xsYXBzZVwiLFxyXG4gICAgXCJDb21iaW5lXCIsXHJcbiAgICBcIkVkaXRcIixcclxuICAgIFwiTG9ja1wiLFxyXG4gICAgXCJFeHBhbmRcIixcclxuICAgIFwiTW92ZVRvXCIsXHJcbiAgICBcIlB1Ymxpc2hcIixcclxuICAgIFwiUHJldmlld1wiLFxyXG4gICAgXCJSZUNhbGN1bGF0ZVwiLFxyXG4gICAgXCJTeW5jXCIsXHJcbiAgICBcIlNoYXJlXCIsXHJcbiAgICBcIlJlbmFtZVwiLFxyXG4gICAgXCJTYXZlU2VxdWVuY2VcIixcclxuICAgIFwiU3VibWl0Rm9yQXBwcm92YWxcIixcclxuICAgIFwiU2VuZFRvQ29udHJvbFBhbmVsXCIsXHJcbiAgICBcIlNldFJlbWluZGVyc1wiLFxyXG4gICAgXCJTZXR0bGVcIixcclxuICAgIFwiVGVtcGxhdGVcIixcclxuICAgIFwiV29ya2Zsb3dcIixcclxuICAgIFwiRmV0Y2hEYXRhXCIsXHJcbiAgXTtcclxufVxyXG4iLCI8YnV0dG9uXHJcbiAgKm5nSWY9XCIhY2hpbGRyZW4ubGVuZ3RoXCJcclxuICBjbGFzcz1cInRvb2xiYXItYWN0aW9uLWl0ZW0gZS1idG4gdGV4dFwiXHJcbiAgI2J1dHRvbkVsZW1lbnRcclxuICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXHJcbj5cclxuICA8c3BhbiBjbGFzcz1cInRvb2xiYXItYWN0aW9uLWltYWdlXCIgKm5nSWY9XCJpbWFnZVwiIFthdHRyLmRhdGEtdHlwZV09XCJpbWFnZVwiPlxyXG4gICAgPGltZyAqbmdJZj1cIiFJbWFnZVR5cGUuaW5jbHVkZXMoaW1hZ2UpXCIgW3NyY109XCJpbWFnZVwiIC8+XHJcbiAgPC9zcGFuPlxyXG4gIDxzcGFuPnt7IHRleHQgfX08L3NwYW4+XHJcbjwvYnV0dG9uPlxyXG5cclxuPGJ1dHRvblxyXG4gICpuZ0lmPVwiY2hpbGRyZW4ubGVuZ3RoXCJcclxuICBjbGFzcz1cInRvb2xiYXItYWN0aW9uLWl0ZW0gZS1idG4gdGV4dFwiXHJcbiAgI2J1dHRvbkVsZW1lbnRcclxuICBtYXQtbWVudS1pdGVtXHJcbiAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4gIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkXCJcclxuPlxyXG4gIDxzcGFuIGNsYXNzPVwidG9vbGJhci1hY3Rpb24taW1hZ2VcIiAqbmdJZj1cImltYWdlXCIgW2F0dHIuZGF0YS10eXBlXT1cImltYWdlXCI+XHJcbiAgICA8aW1nICpuZ0lmPVwiIUltYWdlVHlwZS5pbmNsdWRlcyhpbWFnZSlcIiBbc3JjXT1cImltYWdlXCIgLz5cclxuICA8L3NwYW4+XHJcbiAgPHNwYW4+e3sgdGV4dCB9fTwvc3Bhbj5cclxuICA8c3BhbiBjbGFzcz1cInRvb2xiYXItYWN0aW9uLWFycm93XCIgKm5nSWY9XCIhaGlkZUFycm93XCI+XHJcbiAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWcvZG93bi1hcnJvdy5zdmdcIiAvPlxyXG4gIDwvc3Bhbj5cclxuPC9idXR0b24+XHJcbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cInRvb2xiYXItYWN0aW9uLW1lbnUtY29udGVudFwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBjaGlsZHJlblwiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBjbGFzcz1cInRvb2xiYXItYWN0aW9uLWl0ZW0gZS1idG4gdGV4dFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCIoYnV0dG9uLmtleSAmJiBkaXNhYmxlZE9wdGlvbnNbYnV0dG9uLmtleV0pIHx8IGZhbHNlXCJcclxuICAgICAgKGNsaWNrKT1cImJ1dHRvbi5hY3Rpb24oKVwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuXHJcbiAgICAgICAgY2xhc3M9XCJ0b29sYmFyLWFjdGlvbi1pbWFnZVwiXHJcbiAgICAgICAgKm5nSWY9XCJidXR0b24uaW1hZ2VcIlxyXG4gICAgICAgIFthdHRyLmRhdGEtdHlwZV09XCJidXR0b24uaW1hZ2VcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGltZyAqbmdJZj1cIiFJbWFnZVR5cGUuaW5jbHVkZXMoYnV0dG9uLmltYWdlKVwiIFtzcmNdPVwiYnV0dG9uLmltYWdlXCIgLz5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3Bhbj57eyBidXR0b24udGV4dCB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L21hdC1tZW51PlxyXG4iXX0=
|
|
@@ -9,6 +9,7 @@ import * as i3 from "@angular/common";
|
|
|
9
9
|
import * as i4 from "@angular/forms";
|
|
10
10
|
import * as i5 from "../common-grid/grid-action/grid-action.component";
|
|
11
11
|
import * as i6 from "../common-grid/grid-action/grid-action-item/grid-action-item.component";
|
|
12
|
+
import * as i7 from "../truncated-text-toggle/index.component";
|
|
12
13
|
export class RsCommentaryComponent {
|
|
13
14
|
cf;
|
|
14
15
|
dialog;
|
|
@@ -30,11 +31,11 @@ export class RsCommentaryComponent {
|
|
|
30
31
|
lastModifiedOn: "lastModifiedOn",
|
|
31
32
|
messageBody: "messageBody",
|
|
32
33
|
};
|
|
34
|
+
dateTimePipeFormat = "dd-MMM-yyyy hh:mm:a";
|
|
33
35
|
actionComplete = new EventEmitter();
|
|
34
36
|
commentVal = "";
|
|
35
37
|
replyVal = "";
|
|
36
38
|
editCommentVal = "";
|
|
37
|
-
dateTimePipeFormat = "dd-MMM-yyyy hh:mm:a";
|
|
38
39
|
translation;
|
|
39
40
|
ngOnInit() {
|
|
40
41
|
this.getInfo();
|
|
@@ -75,12 +76,12 @@ export class RsCommentaryComponent {
|
|
|
75
76
|
}
|
|
76
77
|
deleteComment(item) {
|
|
77
78
|
const dialogRef = this.dialog.showCommonDilaog({
|
|
78
|
-
title: "
|
|
79
|
-
description:
|
|
79
|
+
title: this.translation["DELETE_COMMENT"],
|
|
80
|
+
description: this.translation["DELETE_COMMENT_CONFIRM"],
|
|
80
81
|
saveBtnLabel: this.translation.DELETE,
|
|
81
82
|
});
|
|
82
83
|
dialogRef.afterClosed().subscribe((res) => {
|
|
83
|
-
if (
|
|
84
|
+
if (res === "close") {
|
|
84
85
|
return;
|
|
85
86
|
}
|
|
86
87
|
const idx = this.commentData.findIndex((ele) => ele[this.filedsKey.messageId] === item[this.filedsKey.messageId]);
|
|
@@ -116,11 +117,17 @@ export class RsCommentaryComponent {
|
|
|
116
117
|
}
|
|
117
118
|
adjustTextareaHeight(e) {
|
|
118
119
|
const textarea = e.target;
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
if (e.type === "focus" && textarea.value) {
|
|
121
|
+
textarea.style.height = "auto";
|
|
122
|
+
textarea.style.height = textarea.scrollHeight + "px";
|
|
123
|
+
}
|
|
124
|
+
else if (e.type === "input") {
|
|
125
|
+
textarea.style.height = "auto";
|
|
126
|
+
textarea.style.height = textarea.scrollHeight + "px";
|
|
127
|
+
}
|
|
121
128
|
}
|
|
122
129
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsCommentaryComponent, deps: [{ token: i1.CommonFunctionService }, { token: i2.DialogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
123
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsCommentaryComponent, selector: "rs-commentary", inputs: { displayName: "displayName", commentData: "commentData", editPermission: "editPermission", deletePermission: "deletePermission", isReadOnly: "isReadOnly", filedsKey: "filedsKey" }, outputs: { actionComplete: "actionComplete" }, ngImport: i0, template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item[filedsKey.commentaries]\r\n : item[filedsKey.commentaries].slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item[filedsKey.commentaries].length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px\"\r\n >\r\n {{\r\n item.isExpanded\r\n ? \"Collapse\"\r\n : \"View All \" + item[filedsKey.commentaries].length + \" Replies\"\r\n }}\r\n <img\r\n class=\"arrow\"\r\n [ngClass]=\"{ collapse: item.isExpanded }\"\r\n src=\"../../assets/img/dropdown-arrow.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #commentBoxTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"comment-box\">\r\n <div class=\"comment-input-wrap\">\r\n <div class=\"avatar\" *ngIf=\"type !== 'editComment'\">\r\n {{ cf.rtn(displayName) }}\r\n </div>\r\n <textarea\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"commentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'reply'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"replyVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'editComment'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"editCommentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n </div>\r\n <div class=\"btn-wrap\">\r\n <button\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"commentVal === '' || isReadOnly || !editPermission\"\r\n (click)=\"addComment()\"\r\n >\r\n {{ translation.COMMENT || \".COMMENT\" }}\r\n </button>\r\n <ng-container *ngIf=\"type === 'reply'\">\r\n <button\r\n class=\"e-btn small\"\r\n (click)=\"item.showReplyInput = false; replyVal = ''\"\r\n >\r\n {{ translation.CANCEL || \".CANCEL\" }}\r\n </button>\r\n <button\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"replyVal === ''\"\r\n (click)=\"addReply(item)\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === 'editComment'\">\r\n <button class=\"e-btn text\" (click)=\"item.showCommentEdit = false\">\r\n <img src=\"../../assets/img/comment-cancel.svg\" alt=\"\" />\r\n </button>\r\n <button\r\n class=\"e-btn text\"\r\n [disabled]=\"editCommentVal === ''\"\r\n (click)=\"updateComment(item)\"\r\n >\r\n <img src=\"../../assets/img/comment-check.svg\" alt=\"\" />\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template #replyItemTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"reply-item\" [ngClass]=\"{ comment: type === 'comment' }\">\r\n <div class=\"avatar\">\r\n {{ cf.rtn(item[filedsKey.ownerName]) }}\r\n </div>\r\n <div class=\"owner-wrap\">\r\n <div class=\"owner-info\">\r\n <div class=\"name\">\r\n {{ item[filedsKey.ownerName] }}\r\n </div>\r\n <div class=\"time\">\r\n {{ item[filedsKey.lastModifiedOn] | date : dateTimePipeFormat }}\r\n </div>\r\n </div>\r\n <div class=\"message-wrap\">\r\n <div class=\"message\" *ngIf=\"!item.showCommentEdit\">\r\n {{ item[filedsKey.messageBody] }}\r\n </div>\r\n <ng-container\r\n *ngIf=\"item.showCommentEdit\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'editComment', item: item }\"\r\n ></ng-container>\r\n </div>\r\n\r\n <button\r\n *ngIf=\"\r\n type === 'comment' && !item.showReplyInput && !item.showCommentEdit\r\n \"\r\n class=\"e-btn text\"\r\n (click)=\"item.showReplyInput = true\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n <ng-container\r\n *ngIf=\"item.showReplyInput\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'reply', item: item }\"\r\n ></ng-container>\r\n\r\n <rs-grid-action *ngIf=\"type === 'comment'\">\r\n <rs-grid-action-item\r\n image=\"Edit\"\r\n [text]=\"translation.EDIT\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n (click)=\"editComment(item)\"\r\n ></rs-grid-action-item>\r\n <rs-grid-action-item\r\n image=\"Delete\"\r\n [text]=\"translation.DELETE\"\r\n [disabled]=\"isReadOnly || !deletePermission\"\r\n (click)=\"deleteComment(item)\"\r\n ></rs-grid-action-item>\r\n </rs-grid-action>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".rs-commentary-wrap{width:100%;height:100%;padding:32px;display:flex;flex-direction:column}.rs-commentary-wrap .comment-box{width:100%}.rs-commentary-wrap .comment-box .comment-input-wrap{margin-bottom:12px;display:flex;gap:12px}.rs-commentary-wrap .comment-box .comment-input-wrap .e-input{flex:1;width:0}.rs-commentary-wrap .comment-box .btn-wrap{display:flex;justify-content:flex-end;gap:12px}.rs-commentary-wrap .comment-box .btn-wrap .e-btn.text{padding:4px}.rs-commentary-wrap .reply-box{height:0;flex:1;overflow:auto;margin-top:16px;margin-right:-32px;padding-right:32px}.rs-commentary-wrap .reply-box .sub-reply-list{padding-left:40px}.rs-commentary-wrap .reply-box .e-btn.text{padding:0!important;min-width:auto;height:auto;color:#6c7c90!important}.rs-commentary-wrap .reply-box .e-btn.text:hover{background:transparent!important;color:#1364b3!important}.rs-commentary-wrap .reply-box .e-btn.text:focus{background:transparent!important;color:#6c7c90!important}.rs-commentary-wrap .reply-box .arrow.collapse{transform:rotate(180deg)}.rs-commentary-wrap .reply-box .reply-item{display:flex;gap:12px;padding:12px 0}.rs-commentary-wrap .reply-box .reply-item.comment{border-top:1px solid #eaedf0}.rs-commentary-wrap .reply-box .reply-item.comment:hover{background-color:#f6faff}.rs-commentary-wrap .reply-box .reply-item.comment:hover rs-grid-action{display:block}.rs-commentary-wrap .reply-box .reply-item rs-grid-action{display:none;position:absolute;cursor:pointer;top:-4px;right:8px}.rs-commentary-wrap .reply-box .owner-wrap{flex:1;width:0;position:relative}.rs-commentary-wrap .reply-box .owner-wrap .owner-info{display:flex;align-items:center;gap:12px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .name{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:700;line-height:14px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .time{color:#6c7c90;font-family:Arial;font-size:10px;font-style:normal;font-weight:400;line-height:12px}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap{padding:8px 0}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap .message{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.rs-commentary-wrap .avatar{width:32px;height:32px;border-radius:100%;border:1px solid rgba(108,124,144,.4);color:#44566c;display:flex;align-items:center;justify-content:center;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.GridActionComponent, selector: "rs-grid-action" }, { kind: "component", type: i6.GridActionItemComponent, selector: "rs-grid-action-item", inputs: ["image", "text", "disabled"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
|
|
130
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsCommentaryComponent, selector: "rs-commentary", inputs: { displayName: "displayName", commentData: "commentData", editPermission: "editPermission", deletePermission: "deletePermission", isReadOnly: "isReadOnly", filedsKey: "filedsKey", dateTimePipeFormat: "dateTimePipeFormat" }, outputs: { actionComplete: "actionComplete" }, ngImport: i0, template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item[filedsKey.commentaries]\r\n : item[filedsKey.commentaries].slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item[filedsKey.commentaries].length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px\"\r\n >\r\n {{\r\n item.isExpanded\r\n ? \"Collapse\"\r\n : \"View All \" + item[filedsKey.commentaries].length + \" Replies\"\r\n }}\r\n <img\r\n class=\"arrow\"\r\n [ngClass]=\"{ collapse: item.isExpanded }\"\r\n src=\"../../assets/img/dropdown-arrow.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #commentBoxTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"comment-box\">\r\n <div class=\"comment-input-wrap\">\r\n <div class=\"avatar\" *ngIf=\"type !== 'editComment'\">\r\n {{ cf.rtn(displayName) }}\r\n </div>\r\n <textarea\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"commentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'reply'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"replyVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'editComment'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"editCommentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n </div>\r\n <div class=\"btn-wrap\">\r\n <button\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"commentVal === '' || isReadOnly || !editPermission\"\r\n (click)=\"addComment()\"\r\n >\r\n {{ translation.COMMENT || \".COMMENT\" }}\r\n </button>\r\n <ng-container *ngIf=\"type === 'reply'\">\r\n <button\r\n class=\"e-btn small\"\r\n (click)=\"item.showReplyInput = false; replyVal = ''\"\r\n >\r\n {{ translation.CANCEL || \".CANCEL\" }}\r\n </button>\r\n <button\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"replyVal === ''\"\r\n (click)=\"addReply(item)\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === 'editComment'\">\r\n <button class=\"e-btn text\" (click)=\"item.showCommentEdit = false\">\r\n <img src=\"../../assets/img/comment-cancel.svg\" alt=\"\" />\r\n </button>\r\n <button\r\n class=\"e-btn text\"\r\n [disabled]=\"editCommentVal === ''\"\r\n (click)=\"updateComment(item)\"\r\n >\r\n <img src=\"../../assets/img/comment-check.svg\" alt=\"\" />\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template #replyItemTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"reply-item\" [ngClass]=\"{ comment: type === 'comment' }\">\r\n <div class=\"avatar\">\r\n {{ cf.rtn(item[filedsKey.ownerName]) }}\r\n </div>\r\n <div class=\"owner-wrap\">\r\n <div class=\"owner-info\">\r\n <div class=\"name\">\r\n {{ item[filedsKey.ownerName] }}\r\n </div>\r\n <div class=\"time\">\r\n {{ item[filedsKey.lastModifiedOn] | date : dateTimePipeFormat }}\r\n </div>\r\n </div>\r\n <div class=\"message-wrap\">\r\n <div class=\"message\" *ngIf=\"!item.showCommentEdit\">\r\n <!-- {{ item[filedsKey.messageBody] }} -->\r\n <truncated-text-toggle\r\n [maximum]=\"1050\"\r\n [data]=\"item[filedsKey.messageBody]\"\r\n >\r\n </truncated-text-toggle>\r\n </div>\r\n <ng-container\r\n *ngIf=\"item.showCommentEdit\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'editComment', item: item }\"\r\n ></ng-container>\r\n </div>\r\n\r\n <button\r\n *ngIf=\"\r\n type === 'comment' && !item.showReplyInput && !item.showCommentEdit\r\n \"\r\n class=\"e-btn text\"\r\n (click)=\"item.showReplyInput = true\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n <ng-container\r\n *ngIf=\"item.showReplyInput\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'reply', item: item }\"\r\n ></ng-container>\r\n\r\n <rs-grid-action *ngIf=\"type === 'comment'\">\r\n <rs-grid-action-item\r\n image=\"Edit\"\r\n [text]=\"translation.EDIT\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n (click)=\"editComment(item)\"\r\n ></rs-grid-action-item>\r\n <rs-grid-action-item\r\n image=\"Delete\"\r\n [text]=\"translation.DELETE\"\r\n [disabled]=\"isReadOnly || !deletePermission\"\r\n (click)=\"deleteComment(item)\"\r\n ></rs-grid-action-item>\r\n </rs-grid-action>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".rs-commentary-wrap{width:100%;height:100%;padding:32px;display:flex;flex-direction:column}.rs-commentary-wrap .comment-box{width:100%}.rs-commentary-wrap .comment-box .comment-input-wrap{margin-bottom:12px;display:flex;gap:12px}.rs-commentary-wrap .comment-box .comment-input-wrap .e-input{flex:1;width:0;height:62px}.rs-commentary-wrap .comment-box .btn-wrap{display:flex;justify-content:flex-end;gap:12px}.rs-commentary-wrap .comment-box .btn-wrap .e-btn.text{padding:4px}.rs-commentary-wrap .reply-box{height:0;flex:1;overflow:auto;margin-top:16px;margin-right:-32px;padding-right:32px}.rs-commentary-wrap .reply-box .sub-reply-list{padding-left:40px}.rs-commentary-wrap .reply-box .e-btn.text{padding:0!important;min-width:auto;height:auto;color:#6c7c90!important}.rs-commentary-wrap .reply-box .e-btn.text:hover{background:transparent!important;color:#1364b3!important}.rs-commentary-wrap .reply-box .e-btn.text:focus{background:transparent!important;color:#6c7c90!important}.rs-commentary-wrap .reply-box .arrow.collapse{transform:rotate(180deg)}.rs-commentary-wrap .reply-box .reply-item{display:flex;gap:12px;padding:12px 0}.rs-commentary-wrap .reply-box .reply-item.comment{border-top:1px solid #eaedf0}.rs-commentary-wrap .reply-box .reply-item.comment:hover{background-color:#f6faff}.rs-commentary-wrap .reply-box .reply-item.comment:hover rs-grid-action{display:block}.rs-commentary-wrap .reply-box .reply-item rs-grid-action{display:none;position:absolute;cursor:pointer;top:-4px;right:8px}.rs-commentary-wrap .reply-box .owner-wrap{flex:1;width:0;position:relative}.rs-commentary-wrap .reply-box .owner-wrap .owner-info{display:flex;align-items:center;gap:8px;height:28px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .name{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:700;line-height:14px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .time{color:#6c7c90;font-family:Arial;font-size:10px;font-style:normal;font-weight:400;line-height:12px}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap{padding:12px 0}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap .message{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px;padding-right:8px;white-space:pre-wrap}.rs-commentary-wrap .avatar{width:32px;height:32px;border-radius:100%;border:1px solid rgba(108,124,144,.4);color:#44566c;display:flex;align-items:center;justify-content:center;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.GridActionComponent, selector: "rs-grid-action" }, { kind: "component", type: i6.GridActionItemComponent, selector: "rs-grid-action-item", inputs: ["image", "text", "disabled", "children", "hideArrow", "disabledOptions"] }, { kind: "component", type: i7.TruncatedTextToggleComponent, selector: "truncated-text-toggle", inputs: ["data", "maximum"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
|
|
124
131
|
}
|
|
125
132
|
__decorate([
|
|
126
133
|
Debounce(300)
|
|
@@ -132,11 +139,11 @@ __decorate([
|
|
|
132
139
|
Debounce(300)
|
|
133
140
|
], RsCommentaryComponent.prototype, "addReply", null);
|
|
134
141
|
__decorate([
|
|
135
|
-
Debounce(
|
|
142
|
+
Debounce(100)
|
|
136
143
|
], RsCommentaryComponent.prototype, "adjustTextareaHeight", null);
|
|
137
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsCommentaryComponent, decorators: [{
|
|
138
145
|
type: Component,
|
|
139
|
-
args: [{ selector: "rs-commentary", template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item[filedsKey.commentaries]\r\n : item[filedsKey.commentaries].slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item[filedsKey.commentaries].length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px\"\r\n >\r\n {{\r\n item.isExpanded\r\n ? \"Collapse\"\r\n : \"View All \" + item[filedsKey.commentaries].length + \" Replies\"\r\n }}\r\n <img\r\n class=\"arrow\"\r\n [ngClass]=\"{ collapse: item.isExpanded }\"\r\n src=\"../../assets/img/dropdown-arrow.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #commentBoxTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"comment-box\">\r\n <div class=\"comment-input-wrap\">\r\n <div class=\"avatar\" *ngIf=\"type !== 'editComment'\">\r\n {{ cf.rtn(displayName) }}\r\n </div>\r\n <textarea\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-input\"\r\n rows=\"
|
|
146
|
+
args: [{ selector: "rs-commentary", template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item[filedsKey.commentaries]\r\n : item[filedsKey.commentaries].slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item[filedsKey.commentaries].length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px\"\r\n >\r\n {{\r\n item.isExpanded\r\n ? \"Collapse\"\r\n : \"View All \" + item[filedsKey.commentaries].length + \" Replies\"\r\n }}\r\n <img\r\n class=\"arrow\"\r\n [ngClass]=\"{ collapse: item.isExpanded }\"\r\n src=\"../../assets/img/dropdown-arrow.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #commentBoxTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"comment-box\">\r\n <div class=\"comment-input-wrap\">\r\n <div class=\"avatar\" *ngIf=\"type !== 'editComment'\">\r\n {{ cf.rtn(displayName) }}\r\n </div>\r\n <textarea\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"commentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'reply'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"replyVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'editComment'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"editCommentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n </div>\r\n <div class=\"btn-wrap\">\r\n <button\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"commentVal === '' || isReadOnly || !editPermission\"\r\n (click)=\"addComment()\"\r\n >\r\n {{ translation.COMMENT || \".COMMENT\" }}\r\n </button>\r\n <ng-container *ngIf=\"type === 'reply'\">\r\n <button\r\n class=\"e-btn small\"\r\n (click)=\"item.showReplyInput = false; replyVal = ''\"\r\n >\r\n {{ translation.CANCEL || \".CANCEL\" }}\r\n </button>\r\n <button\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"replyVal === ''\"\r\n (click)=\"addReply(item)\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === 'editComment'\">\r\n <button class=\"e-btn text\" (click)=\"item.showCommentEdit = false\">\r\n <img src=\"../../assets/img/comment-cancel.svg\" alt=\"\" />\r\n </button>\r\n <button\r\n class=\"e-btn text\"\r\n [disabled]=\"editCommentVal === ''\"\r\n (click)=\"updateComment(item)\"\r\n >\r\n <img src=\"../../assets/img/comment-check.svg\" alt=\"\" />\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template #replyItemTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"reply-item\" [ngClass]=\"{ comment: type === 'comment' }\">\r\n <div class=\"avatar\">\r\n {{ cf.rtn(item[filedsKey.ownerName]) }}\r\n </div>\r\n <div class=\"owner-wrap\">\r\n <div class=\"owner-info\">\r\n <div class=\"name\">\r\n {{ item[filedsKey.ownerName] }}\r\n </div>\r\n <div class=\"time\">\r\n {{ item[filedsKey.lastModifiedOn] | date : dateTimePipeFormat }}\r\n </div>\r\n </div>\r\n <div class=\"message-wrap\">\r\n <div class=\"message\" *ngIf=\"!item.showCommentEdit\">\r\n <!-- {{ item[filedsKey.messageBody] }} -->\r\n <truncated-text-toggle\r\n [maximum]=\"1050\"\r\n [data]=\"item[filedsKey.messageBody]\"\r\n >\r\n </truncated-text-toggle>\r\n </div>\r\n <ng-container\r\n *ngIf=\"item.showCommentEdit\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'editComment', item: item }\"\r\n ></ng-container>\r\n </div>\r\n\r\n <button\r\n *ngIf=\"\r\n type === 'comment' && !item.showReplyInput && !item.showCommentEdit\r\n \"\r\n class=\"e-btn text\"\r\n (click)=\"item.showReplyInput = true\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n <ng-container\r\n *ngIf=\"item.showReplyInput\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'reply', item: item }\"\r\n ></ng-container>\r\n\r\n <rs-grid-action *ngIf=\"type === 'comment'\">\r\n <rs-grid-action-item\r\n image=\"Edit\"\r\n [text]=\"translation.EDIT\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n (click)=\"editComment(item)\"\r\n ></rs-grid-action-item>\r\n <rs-grid-action-item\r\n image=\"Delete\"\r\n [text]=\"translation.DELETE\"\r\n [disabled]=\"isReadOnly || !deletePermission\"\r\n (click)=\"deleteComment(item)\"\r\n ></rs-grid-action-item>\r\n </rs-grid-action>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".rs-commentary-wrap{width:100%;height:100%;padding:32px;display:flex;flex-direction:column}.rs-commentary-wrap .comment-box{width:100%}.rs-commentary-wrap .comment-box .comment-input-wrap{margin-bottom:12px;display:flex;gap:12px}.rs-commentary-wrap .comment-box .comment-input-wrap .e-input{flex:1;width:0;height:62px}.rs-commentary-wrap .comment-box .btn-wrap{display:flex;justify-content:flex-end;gap:12px}.rs-commentary-wrap .comment-box .btn-wrap .e-btn.text{padding:4px}.rs-commentary-wrap .reply-box{height:0;flex:1;overflow:auto;margin-top:16px;margin-right:-32px;padding-right:32px}.rs-commentary-wrap .reply-box .sub-reply-list{padding-left:40px}.rs-commentary-wrap .reply-box .e-btn.text{padding:0!important;min-width:auto;height:auto;color:#6c7c90!important}.rs-commentary-wrap .reply-box .e-btn.text:hover{background:transparent!important;color:#1364b3!important}.rs-commentary-wrap .reply-box .e-btn.text:focus{background:transparent!important;color:#6c7c90!important}.rs-commentary-wrap .reply-box .arrow.collapse{transform:rotate(180deg)}.rs-commentary-wrap .reply-box .reply-item{display:flex;gap:12px;padding:12px 0}.rs-commentary-wrap .reply-box .reply-item.comment{border-top:1px solid #eaedf0}.rs-commentary-wrap .reply-box .reply-item.comment:hover{background-color:#f6faff}.rs-commentary-wrap .reply-box .reply-item.comment:hover rs-grid-action{display:block}.rs-commentary-wrap .reply-box .reply-item rs-grid-action{display:none;position:absolute;cursor:pointer;top:-4px;right:8px}.rs-commentary-wrap .reply-box .owner-wrap{flex:1;width:0;position:relative}.rs-commentary-wrap .reply-box .owner-wrap .owner-info{display:flex;align-items:center;gap:8px;height:28px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .name{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:700;line-height:14px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .time{color:#6c7c90;font-family:Arial;font-size:10px;font-style:normal;font-weight:400;line-height:12px}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap{padding:12px 0}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap .message{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px;padding-right:8px;white-space:pre-wrap}.rs-commentary-wrap .avatar{width:32px;height:32px;border-radius:100%;border:1px solid rgba(108,124,144,.4);color:#44566c;display:flex;align-items:center;justify-content:center;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px}\n"] }]
|
|
140
147
|
}], ctorParameters: function () { return [{ type: i1.CommonFunctionService }, { type: i2.DialogService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { displayName: [{
|
|
141
148
|
type: Input
|
|
142
149
|
}], commentData: [{
|
|
@@ -149,7 +156,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
149
156
|
type: Input
|
|
150
157
|
}], filedsKey: [{
|
|
151
158
|
type: Input
|
|
159
|
+
}], dateTimePipeFormat: [{
|
|
160
|
+
type: Input
|
|
152
161
|
}], actionComplete: [{
|
|
153
162
|
type: Output
|
|
154
163
|
}], addComment: [], deleteComment: [], addReply: [], adjustTextareaHeight: [] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2NvbW1lbnRhcnkvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2NvbW1lbnRhcnkvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQU07QUFDTixPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7QUFROUMsTUFBTSxPQUFPLHFCQUFxQjtJQUV2QjtJQUNDO0lBQ0E7SUFIVixZQUNTLEVBQXlCLEVBQ3hCLE1BQXFCLEVBQ3JCLEdBQXNCO1FBRnZCLE9BQUUsR0FBRixFQUFFLENBQXVCO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFDN0IsQ0FBQztJQUVLLFdBQVcsQ0FBUztJQUNwQixXQUFXLEdBQW1CLEVBQUUsQ0FBQztJQUNqQyxjQUFjLEdBQUcsSUFBSSxDQUFDLENBQUMsU0FBUztJQUNoQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxXQUFXO0lBQ3BDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsU0FBUyxHQUFHO1FBQ25CLFlBQVksRUFBRSxjQUFjO1FBQzVCLFNBQVMsRUFBRSxXQUFXO1FBQ3RCLFNBQVMsRUFBRSxXQUFXO1FBQ3RCLGNBQWMsRUFBRSxnQkFBZ0I7UUFDaEMsV0FBVyxFQUFFLGFBQWE7S0FDM0IsQ0FBQztJQUdGLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFJN0IsQ0FBQztJQUVMLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIs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SztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQVNOLGNBQWM7c0JBRGIsTUFBTTtnQkFxQlAsVUFBVSxNQWtDVixhQUFhLE1BMkJiLFFBQVEsTUFxQlIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gXCIuLi91dGlscy9kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHsgTWVzc2FnZUdyb3VwIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1jb21tZW50YXJ5XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJzQ29tbWVudGFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG5cclxuICBASW5wdXQoKSBkaXNwbGF5TmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbW1lbnREYXRhOiBNZXNzYWdlR3JvdXBbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGVkaXRQZXJtaXNzaW9uID0gdHJ1ZTsgLy8gZWRpdOadg+mZkFxyXG4gIEBJbnB1dCgpIGRlbGV0ZVBlcm1pc3Npb24gPSB0cnVlOyAvLyBkZWxldGXmnYPpmZBcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZmlsZWRzS2V5ID0ge1xyXG4gICAgY29tbWVudGFyaWVzOiBcImNvbW1lbnRhcmllc1wiLFxyXG4gICAgbWVzc2FnZUlkOiBcIm1lc3NhZ2VJZFwiLFxyXG4gICAgb3duZXJOYW1lOiBcIm93bmVyTmFtZVwiLFxyXG4gICAgbGFzdE1vZGlmaWVkT246IFwibGFzdE1vZGlmaWVkT25cIixcclxuICAgIG1lc3NhZ2VCb2R5OiBcIm1lc3NhZ2VCb2R5XCIsXHJcbiAgfTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgYWN0aW9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGFjdGlvbjogXCJhZGRDb21tZW50XCIgfCBcInVwZGF0ZUNvbW1lbnRcIiB8IFwiZGVsZXRlQ29tbWVudFwiIHwgXCJyZXBseUNvbW1lbnRcIjtcclxuICAgIGRhdGE6IGFueTtcclxuICAgIGNhbGxiYWNrOiAocmVzdWx0OiB7IG1lc3NhZ2VJZDogc3RyaW5nIH0pID0+IHZvaWQ7XHJcbiAgfT4oKTtcclxuXHJcbiAgY29tbWVudFZhbCA9IFwiXCI7XHJcbiAgcmVwbHlWYWwgPSBcIlwiO1xyXG4gIGVkaXRDb21tZW50VmFsID0gXCJcIjtcclxuICBkYXRlVGltZVBpcGVGb3JtYXQgPSBcImRkLU1NTS15eXl5IGhoOm1tOmFcIjtcclxuICB0cmFuc2xhdGlvbjtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0SW5mbygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5mbygpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidHJhbnNsYXRpb25cIikpO1xyXG4gIH1cclxuXHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGRDb21tZW50KCkge1xyXG4gICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcclxuICAgICAgYWN0aW9uOiBcImFkZENvbW1lbnRcIixcclxuICAgICAgZGF0YTogeyBpbnB1dFZhbHVlOiB0aGlzLmNvbW1lbnRWYWwgfSxcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbW1lbnREYXRhLnVuc2hpZnQoe1xyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUlkXCJdfWBdOiByZXMubWVzc2FnZUlkLFxyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wiY29tbWVudGFyaWVzXCJdfWBdOiBbXSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcIm93bmVyTmFtZVwiXX1gXTogdGhpcy5kaXNwbGF5TmFtZSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcImxhc3RNb2RpZmllZE9uXCJdfWBdOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUJvZHlcIl19YF06IHRoaXMuY29tbWVudFZhbCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbW1lbnRWYWwgPSBcIlwiO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlZGl0Q29tbWVudChpdGVtKSB7XHJcbiAgICB0aGlzLmVkaXRDb21tZW50VmFsID0gaXRlbVt0aGlzLmZpbGVkc0tleVtcIm1lc3NhZ2VCb2R5XCJdXTtcclxuICAgIGl0ZW0uc2hvd0NvbW1lbnRFZGl0ID0gdHJ1ZTtcclxuICB9XHJcbiAgYXN5bmMgdXBkYXRlQ29tbWVudChpdGVtKSB7XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICBhY3Rpb246IFwidXBkYXRlQ29tbWVudFwiLFxyXG4gICAgICBkYXRhOiB7IC4uLml0ZW0sIGlucHV0VmFsdWU6IHRoaXMuZWRpdENvbW1lbnRWYWwgfSxcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpdGVtW3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUJvZHlcIl1dID0gdGhpcy5lZGl0Q29tbWVudFZhbDtcclxuICAgICAgICBpdGVtLnNob3dDb21tZW50RWRpdCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBARGVib3VuY2UoMzAwKVxyXG4gIGRlbGV0ZUNvbW1lbnQoaXRlbSkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cuc2hvd0NvbW1vbkRpbGFvZyh7XHJcbiAgICAgIHRpdGxlOiBcIkRlbGV0ZSBDb21tZW50P1wiLFxyXG4gICAgICBkZXNjcmlwdGlvbjogXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgQ29tbWVudD9cIixcclxuICAgICAgc2F2ZUJ0bkxhYmVsOiB0aGlzLnRyYW5zbGF0aW9uLkRFTEVURSxcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKCFyZXMpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaWR4ID0gdGhpcy5jb21tZW50RGF0YS5maW5kSW5kZXgoXHJcbiAgICAgICAgKGVsZSkgPT5cclxuICAgICAgICAgIGVsZVt0aGlzLmZpbGVkc0tleS5tZXNzYWdlSWRdID09PSBpdGVtW3RoaXMuZmlsZWRzS2V5Lm1lc3NhZ2VJZF1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XHJcbiAgICAgICAgYWN0aW9uOiBcImRlbGV0ZUNvbW1lbnRcIixcclxuICAgICAgICBkYXRhOiBpdGVtLFxyXG4gICAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbW1lbnREYXRhLnNwbGljZShpZHgsIDEpO1xyXG4gICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGRSZXBseShpdGVtKSB7XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICBhY3Rpb246IFwicmVwbHlDb21tZW50XCIsXHJcbiAgICAgIGRhdGE6IHsgLi4uaXRlbSwgaW5wdXRWYWx1ZTogdGhpcy5yZXBseVZhbCB9LFxyXG4gICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgIGl0ZW1bdGhpcy5maWxlZHNLZXlbXCJjb21tZW50YXJpZXNcIl1dLnVuc2hpZnQoe1xyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUlkXCJdfWBdOiByZXNbdGhpcy5maWxlZHNLZXlbXCJtZXNzYWdlSWRcIl1dLFxyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wiY29tbWVudGFyaWVzXCJdfWBdOiBbXSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcIm93bmVyTmFtZVwiXX1gXTogdGhpcy5kaXNwbGF5TmFtZSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcImxhc3RNb2RpZmllZE9uXCJdfWBdOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUJvZHlcIl19YF06IHRoaXMucmVwbHlWYWwsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yZXBseVZhbCA9IFwiXCI7XHJcbiAgICAgICAgaXRlbS5zaG93UmVwbHlJbnB1dCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGp1c3RUZXh0YXJlYUhlaWdodChlKSB7XHJcbiAgICBjb25zdCB0ZXh0YXJlYSA9IGUudGFyZ2V0O1xyXG4gICAgdGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0ID0gXCJhdXRvXCI7XHJcbiAgICB0ZXh0YXJlYS5zdHlsZS5taW5IZWlnaHQgPSB0ZXh0YXJlYS5zY3JvbGxIZWlnaHQgKyBcInB4XCI7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJycy1jb21tZW50YXJ5LXdyYXBcIj5cclxuICA8bmctY29udGFpbmVyXHJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb21tZW50Qm94VGVtcGxhdGVcIlxyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdHlwZTogJ2NvbW1lbnQnIH1cIlxyXG4gID48L25nLWNvbnRhaW5lcj5cclxuICA8ZGl2IGNsYXNzPVwicmVwbHktYm94XCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbW1lbnREYXRhXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXBseUl0ZW1UZW1wbGF0ZVwiXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdHlwZTogJ2NvbW1lbnQnLCBpdGVtOiBpdGVtIH1cIlxyXG4gICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWItcmVwbHktbGlzdFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICBsZXQgc3ViIG9mIGl0ZW0uaXNFeHBhbmRlZFxyXG4gICAgICAgICAgICAgID8gaXRlbVtmaWxlZHNLZXkuY29tbWVudGFyaWVzXVxyXG4gICAgICAgICAgICAgIDogaXRlbVtmaWxlZHNLZXkuY29tbWVudGFyaWVzXS5zbGljZSgwLCAzKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlcGx5SXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHR5cGU6ICdzdWInLCBpdGVtOiBzdWIgfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiZS1idG4gdGV4dFwiXHJcbiAgICAgICAgKm5nSWY9XCJpdGVtW2ZpbGVkc0tleS5jb21tZW50YXJpZXNdLmxlbmd0aCA+IDNcIlxyXG4gICAgICAgIChjbGljayk9XCJpdGVtLmlzRXhwYW5kZWQgPSAhaXRlbS5pc0V4cGFuZGVkXCJcclxuICAgICAgICBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDhweFwiXHJcbiAgICAgID5cclxuICAgICAgICB7e1xyXG4gICAgICAgICAgaXRlbS5pc0V4cGFuZGVkXHJcbiAgICAgICAgICAgID8gXCJDb2xsYXBzZVwiXHJcbiAgICAgICAgICAgIDogXCJWaWV3IEFsbCBcIiArIGl0ZW1bZmlsZWRzS2V5LmNvbW1lbnRhcmllc10ubGVuZ3RoICsgXCIgUmVwbGllc1wiXHJcbiAgICAgICAgfX1cclxuICAgICAgICA8aW1nXHJcbiAgICAgICAgICBjbGFzcz1cImFycm93XCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgY29sbGFwc2U6IGl0ZW0uaXNFeHBhbmRlZCB9XCJcclxuICAgICAgICAgIHNyYz1cIi4uLy4uL2Fzc2V0cy9pbWcvZHJvcGRvd24tYXJyb3cuc3ZnXCJcclxuICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbW1lbnRCb3hUZW1wbGF0ZSBsZXQtdHlwZT1cInR5cGVcIiBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICA8ZGl2IGNsYXNzPVwiY29tbWVudC1ib3hcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWlucHV0LXdyYXBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImF2YXRhclwiICpuZ0lmPVwidHlwZSAhPT0gJ2VkaXRDb21tZW50J1wiPlxyXG4gICAgICAgIHt7IGNmLnJ0bihkaXNwbGF5TmFtZSkgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2NvbW1lbnQnXCJcclxuICAgICAgICBjbGFzcz1cImUtaW5wdXRcIlxyXG4gICAgICAgIHJvd3M9XCIyXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cImNvbW1lbnRWYWxcIlxyXG4gICAgICAgIChpbnB1dCk9XCJhZGp1c3RUZXh0YXJlYUhlaWdodCgkZXZlbnQpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNSZWFkT25seSB8fCAhZWRpdFBlcm1pc3Npb25cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiV3JpdGUgeW91ciBjb21tZW50Li4uXCJcclxuICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ3JlcGx5J1wiXHJcbiAgICAgICAgY2xhc3M9XCJlLWlucHV0XCJcclxuICAgICAgICByb3dzPVwiMlwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJyZXBseVZhbFwiXHJcbiAgICAgICAgKGlucHV0KT1cImFkanVzdFRleHRhcmVhSGVpZ2h0KCRldmVudClcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiV3JpdGUgeW91ciBjb21tZW50Li4uXCJcclxuICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2VkaXRDb21tZW50J1wiXHJcbiAgICAgICAgY2xhc3M9XCJlLWlucHV0XCJcclxuICAgICAgICByb3dzPVwiMlwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0Q29tbWVudFZhbFwiXHJcbiAgICAgICAgKGlucHV0KT1cImFkanVzdFRleHRhcmVhSGVpZ2h0KCRldmVudClcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiV3JpdGUgeW91ciBjb21tZW50Li4uXCJcclxuICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidG4td3JhcFwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJ0eXBlID09PSAnY29tbWVudCdcIlxyXG4gICAgICAgIGNsYXNzPVwiZS1idG4gZS1wcmltYXJ5IHNtYWxsXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY29tbWVudFZhbCA9PT0gJycgfHwgaXNSZWFkT25seSB8fCAhZWRpdFBlcm1pc3Npb25cIlxyXG4gICAgICAgIChjbGljayk9XCJhZGRDb21tZW50KClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgdHJhbnNsYXRpb24uQ09NTUVOVCB8fCBcIi5DT01NRU5UXCIgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAncmVwbHknXCI+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJlLWJ0biBzbWFsbFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiaXRlbS5zaG93UmVwbHlJbnB1dCA9IGZhbHNlOyByZXBseVZhbCA9ICcnXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyB0cmFuc2xhdGlvbi5DQU5DRUwgfHwgXCIuQ0FOQ0VMXCIgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cImUtYnRuIGUtcHJpbWFyeSBzbWFsbFwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwicmVwbHlWYWwgPT09ICcnXCJcclxuICAgICAgICAgIChjbGljayk9XCJhZGRSZXBseShpdGVtKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgdHJhbnNsYXRpb24uUkVQTFkgfHwgXCIuUkVQTFlcIiB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICdlZGl0Q29tbWVudCdcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZS1idG4gdGV4dFwiIChjbGljayk9XCJpdGVtLnNob3dDb21tZW50RWRpdCA9IGZhbHNlXCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uL2Fzc2V0cy9pbWcvY29tbWVudC1jYW5jZWwuc3ZnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cImUtYnRuIHRleHRcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImVkaXRDb21tZW50VmFsID09PSAnJ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwidXBkYXRlQ29tbWVudChpdGVtKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGltZyBzcmM9XCIuLi8uLi9hc3NldHMvaW1nL2NvbW1lbnQtY2hlY2suc3ZnXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNyZXBseUl0ZW1UZW1wbGF0ZSBsZXQtdHlwZT1cInR5cGVcIiBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICA8ZGl2IGNsYXNzPVwicmVwbHktaXRlbVwiIFtuZ0NsYXNzXT1cInsgY29tbWVudDogdHlwZSA9PT0gJ2NvbW1lbnQnIH1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhdmF0YXJcIj5cclxuICAgICAge3sgY2YucnRuKGl0ZW1bZmlsZWRzS2V5Lm93bmVyTmFtZV0pIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJvd25lci13cmFwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJvd25lci1pbmZvXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj5cclxuICAgICAgICAgIHt7IGl0ZW1bZmlsZWRzS2V5Lm93bmVyTmFtZV0gfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGltZVwiPlxyXG4gICAgICAgICAge3sgaXRlbVtmaWxlZHNLZXkubGFzdE1vZGlmaWVkT25dIHwgZGF0ZSA6IGRhdGVUaW1lUGlwZUZvcm1hdCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2Utd3JhcFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCIgKm5nSWY9XCIhaXRlbS5zaG93Q29tbWVudEVkaXRcIj5cclxuICAgICAgICAgIHt7IGl0ZW1bZmlsZWRzS2V5Lm1lc3NhZ2VCb2R5XSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ0lmPVwiaXRlbS5zaG93Q29tbWVudEVkaXRcIlxyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29tbWVudEJveFRlbXBsYXRlXCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHR5cGU6ICdlZGl0Q29tbWVudCcsIGl0ZW06IGl0ZW0gfVwiXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgdHlwZSA9PT0gJ2NvbW1lbnQnICYmICFpdGVtLnNob3dSZXBseUlucHV0ICYmICFpdGVtLnNob3dDb21tZW50RWRpdFxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgY2xhc3M9XCJlLWJ0biB0ZXh0XCJcclxuICAgICAgICAoY2xpY2spPVwiaXRlbS5zaG93UmVwbHlJbnB1dCA9IHRydWVcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5IHx8ICFlZGl0UGVybWlzc2lvblwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyB0cmFuc2xhdGlvbi5SRVBMWSB8fCBcIi5SRVBMWVwiIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nSWY9XCJpdGVtLnNob3dSZXBseUlucHV0XCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb21tZW50Qm94VGVtcGxhdGVcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHR5cGU6ICdyZXBseScsIGl0ZW06IGl0ZW0gfVwiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxycy1ncmlkLWFjdGlvbiAqbmdJZj1cInR5cGUgPT09ICdjb21tZW50J1wiPlxyXG4gICAgICAgIDxycy1ncmlkLWFjdGlvbi1pdGVtXHJcbiAgICAgICAgICBpbWFnZT1cIkVkaXRcIlxyXG4gICAgICAgICAgW3RleHRdPVwidHJhbnNsYXRpb24uRURJVFwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNSZWFkT25seSB8fCAhZWRpdFBlcm1pc3Npb25cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRDb21tZW50KGl0ZW0pXCJcclxuICAgICAgICA+PC9ycy1ncmlkLWFjdGlvbi1pdGVtPlxyXG4gICAgICAgIDxycy1ncmlkLWFjdGlvbi1pdGVtXHJcbiAgICAgICAgICBpbWFnZT1cIkRlbGV0ZVwiXHJcbiAgICAgICAgICBbdGV4dF09XCJ0cmFuc2xhdGlvbi5ERUxFVEVcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzUmVhZE9ubHkgfHwgIWRlbGV0ZVBlcm1pc3Npb25cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUNvbW1lbnQoaXRlbSlcIlxyXG4gICAgICAgID48L3JzLWdyaWQtYWN0aW9uLWl0ZW0+XHJcbiAgICAgIDwvcnMtZ3JpZC1hY3Rpb24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2NvbW1lbnRhcnkvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2NvbW1lbnRhcnkvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQU07QUFDTixPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7O0FBUTlDLE1BQU0sT0FBTyxxQkFBcUI7SUFFdkI7SUFDQztJQUNBO0lBSFYsWUFDUyxFQUF5QixFQUN4QixNQUFxQixFQUNyQixHQUFzQjtRQUZ2QixPQUFFLEdBQUYsRUFBRSxDQUF1QjtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7SUFFSyxXQUFXLENBQVM7SUFDcEIsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFDakMsY0FBYyxHQUFHLElBQUksQ0FBQyxDQUFDLFNBQVM7SUFDaEMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLENBQUMsV0FBVztJQUNwQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLFNBQVMsR0FBRztRQUNuQixZQUFZLEVBQUUsY0FBYztRQUM1QixTQUFTLEVBQUUsV0FBVztRQUN0QixTQUFTLEVBQUUsV0FBVztRQUN0QixjQUFjLEVBQUUsZ0JBQWdCO1FBQ2hDLFdBQVcsRUFBRSxhQUFhO0tBQzNCLENBQUM7SUFDTyxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztJQUdwRCxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBSTdCLENBQUM7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R0FBRyxDQUFDO3VEQWdCYjtBQW1CRDtJQURDLFFBQVEsQ0FBQyxHQUFHLENBQUM7MERBMEJiO0FBRUQ7SUFEQyxRQUFRLENBQUMsR0FBRyxDQUFDO3FEQW1CYjtBQUdEO0lBREMsUUFBUSxDQUFDLEdBQUcsQ0FBQztpRUFVYjs0RkFwSVUscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7d0tBV2hCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsTUFBTTtnQkFvQlAsVUFBVSxNQWtDVixhQUFhLE1BMkJiLFFBQVEsTUFxQlIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2NvbW1vbi1mdW5jdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gXCIuLi91dGlscy9kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHsgTWVzc2FnZUdyb3VwIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1jb21tZW50YXJ5XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJzQ29tbWVudGFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY2Y6IENvbW1vbkZ1bmN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG5cclxuICBASW5wdXQoKSBkaXNwbGF5TmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbW1lbnREYXRhOiBNZXNzYWdlR3JvdXBbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGVkaXRQZXJtaXNzaW9uID0gdHJ1ZTsgLy8gZWRpdOadg+mZkFxyXG4gIEBJbnB1dCgpIGRlbGV0ZVBlcm1pc3Npb24gPSB0cnVlOyAvLyBkZWxldGXmnYPpmZBcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZmlsZWRzS2V5ID0ge1xyXG4gICAgY29tbWVudGFyaWVzOiBcImNvbW1lbnRhcmllc1wiLFxyXG4gICAgbWVzc2FnZUlkOiBcIm1lc3NhZ2VJZFwiLFxyXG4gICAgb3duZXJOYW1lOiBcIm93bmVyTmFtZVwiLFxyXG4gICAgbGFzdE1vZGlmaWVkT246IFwibGFzdE1vZGlmaWVkT25cIixcclxuICAgIG1lc3NhZ2VCb2R5OiBcIm1lc3NhZ2VCb2R5XCIsXHJcbiAgfTtcclxuICBASW5wdXQoKSBkYXRlVGltZVBpcGVGb3JtYXQgPSBcImRkLU1NTS15eXl5IGhoOm1tOmFcIjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgYWN0aW9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGFjdGlvbjogXCJhZGRDb21tZW50XCIgfCBcInVwZGF0ZUNvbW1lbnRcIiB8IFwiZGVsZXRlQ29tbWVudFwiIHwgXCJyZXBseUNvbW1lbnRcIjtcclxuICAgIGRhdGE6IGFueTtcclxuICAgIGNhbGxiYWNrOiAocmVzdWx0OiB7IG1lc3NhZ2VJZDogc3RyaW5nIH0pID0+IHZvaWQ7XHJcbiAgfT4oKTtcclxuXHJcbiAgY29tbWVudFZhbCA9IFwiXCI7XHJcbiAgcmVwbHlWYWwgPSBcIlwiO1xyXG4gIGVkaXRDb21tZW50VmFsID0gXCJcIjtcclxuICB0cmFuc2xhdGlvbjtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0SW5mbygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5mbygpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidHJhbnNsYXRpb25cIikpO1xyXG4gIH1cclxuXHJcbiAgQERlYm91bmNlKDMwMClcclxuICBhZGRDb21tZW50KCkge1xyXG4gICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcclxuICAgICAgYWN0aW9uOiBcImFkZENvbW1lbnRcIixcclxuICAgICAgZGF0YTogeyBpbnB1dFZhbHVlOiB0aGlzLmNvbW1lbnRWYWwgfSxcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbW1lbnREYXRhLnVuc2hpZnQoe1xyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUlkXCJdfWBdOiByZXMubWVzc2FnZUlkLFxyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wiY29tbWVudGFyaWVzXCJdfWBdOiBbXSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcIm93bmVyTmFtZVwiXX1gXTogdGhpcy5kaXNwbGF5TmFtZSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcImxhc3RNb2RpZmllZE9uXCJdfWBdOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgW2Ake3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUJvZHlcIl19YF06IHRoaXMuY29tbWVudFZhbCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbW1lbnRWYWwgPSBcIlwiO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlZGl0Q29tbWVudChpdGVtKSB7XHJcbiAgICB0aGlzLmVkaXRDb21tZW50VmFsID0gaXRlbVt0aGlzLmZpbGVkc0tleVtcIm1lc3NhZ2VCb2R5XCJdXTtcclxuICAgIGl0ZW0uc2hvd0NvbW1lbnRFZGl0ID0gdHJ1ZTtcclxuICB9XHJcbiAgYXN5bmMgdXBkYXRlQ29tbWVudChpdGVtKSB7XHJcbiAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICBhY3Rpb246IFwidXBkYXRlQ29tbWVudFwiLFxyXG4gICAgICBkYXRhOiB7IC4uLml0ZW0sIGlucHV0VmFsdWU6IHRoaXMuZWRpdENvbW1lbnRWYWwgfSxcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpdGVtW3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUJvZHlcIl1dID0gdGhpcy5lZGl0Q29tbWVudFZhbDtcclxuICAgICAgICBpdGVtLnNob3dDb21tZW50RWRpdCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBARGVib3VuY2UoMzAwKVxyXG4gIGRlbGV0ZUNvbW1lbnQoaXRlbSkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cuc2hvd0NvbW1vbkRpbGFvZyh7XHJcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0aW9uW1wiREVMRVRFX0NPTU1FTlRcIl0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnRyYW5zbGF0aW9uW1wiREVMRVRFX0NPTU1FTlRfQ09ORklSTVwiXSxcclxuICAgICAgc2F2ZUJ0bkxhYmVsOiB0aGlzLnRyYW5zbGF0aW9uLkRFTEVURSxcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcyA9PT0gXCJjbG9zZVwiKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGlkeCA9IHRoaXMuY29tbWVudERhdGEuZmluZEluZGV4KFxyXG4gICAgICAgIChlbGUpID0+XHJcbiAgICAgICAgICBlbGVbdGhpcy5maWxlZHNLZXkubWVzc2FnZUlkXSA9PT0gaXRlbVt0aGlzLmZpbGVkc0tleS5tZXNzYWdlSWRdXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xyXG4gICAgICAgIGFjdGlvbjogXCJkZWxldGVDb21tZW50XCIsXHJcbiAgICAgICAgZGF0YTogaXRlbSxcclxuICAgICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb21tZW50RGF0YS5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIEBEZWJvdW5jZSgzMDApXHJcbiAgYWRkUmVwbHkoaXRlbSkge1xyXG4gICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcclxuICAgICAgYWN0aW9uOiBcInJlcGx5Q29tbWVudFwiLFxyXG4gICAgICBkYXRhOiB7IC4uLml0ZW0sIGlucHV0VmFsdWU6IHRoaXMucmVwbHlWYWwgfSxcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpdGVtW3RoaXMuZmlsZWRzS2V5W1wiY29tbWVudGFyaWVzXCJdXS51bnNoaWZ0KHtcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcIm1lc3NhZ2VJZFwiXX1gXTogcmVzW3RoaXMuZmlsZWRzS2V5W1wibWVzc2FnZUlkXCJdXSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcImNvbW1lbnRhcmllc1wiXX1gXTogW10sXHJcbiAgICAgICAgICBbYCR7dGhpcy5maWxlZHNLZXlbXCJvd25lck5hbWVcIl19YF06IHRoaXMuZGlzcGxheU5hbWUsXHJcbiAgICAgICAgICBbYCR7dGhpcy5maWxlZHNLZXlbXCJsYXN0TW9kaWZpZWRPblwiXX1gXTogRGF0ZS5ub3coKSxcclxuICAgICAgICAgIFtgJHt0aGlzLmZpbGVkc0tleVtcIm1lc3NhZ2VCb2R5XCJdfWBdOiB0aGlzLnJlcGx5VmFsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVwbHlWYWwgPSBcIlwiO1xyXG4gICAgICAgIGl0ZW0uc2hvd1JlcGx5SW5wdXQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBEZWJvdW5jZSgxMDApXHJcbiAgYWRqdXN0VGV4dGFyZWFIZWlnaHQoZSkge1xyXG4gICAgY29uc3QgdGV4dGFyZWEgPSBlLnRhcmdldDtcclxuICAgIGlmIChlLnR5cGUgPT09IFwiZm9jdXNcIiAmJiB0ZXh0YXJlYS52YWx1ZSkge1xyXG4gICAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSBcImF1dG9cIjtcclxuICAgICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gdGV4dGFyZWEuc2Nyb2xsSGVpZ2h0ICsgXCJweFwiO1xyXG4gICAgfSBlbHNlIGlmIChlLnR5cGUgPT09IFwiaW5wdXRcIikge1xyXG4gICAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSBcImF1dG9cIjtcclxuICAgICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gdGV4dGFyZWEuc2Nyb2xsSGVpZ2h0ICsgXCJweFwiO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicnMtY29tbWVudGFyeS13cmFwXCI+XHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29tbWVudEJveFRlbXBsYXRlXCJcclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHR5cGU6ICdjb21tZW50JyB9XCJcclxuICA+PC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBjbGFzcz1cInJlcGx5LWJveFwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb21tZW50RGF0YVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicmVwbHlJdGVtVGVtcGxhdGVcIlxyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHR5cGU6ICdjb21tZW50JywgaXRlbTogaXRlbSB9XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3ViLXJlcGx5LWxpc3RcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgbGV0IHN1YiBvZiBpdGVtLmlzRXhwYW5kZWRcclxuICAgICAgICAgICAgICA/IGl0ZW1bZmlsZWRzS2V5LmNvbW1lbnRhcmllc11cclxuICAgICAgICAgICAgICA6IGl0ZW1bZmlsZWRzS2V5LmNvbW1lbnRhcmllc10uc2xpY2UoMCwgMylcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXBseUl0ZW1UZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB0eXBlOiAnc3ViJywgaXRlbTogc3ViIH1cIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cImUtYnRuIHRleHRcIlxyXG4gICAgICAgICpuZ0lmPVwiaXRlbVtmaWxlZHNLZXkuY29tbWVudGFyaWVzXS5sZW5ndGggPiAzXCJcclxuICAgICAgICAoY2xpY2spPVwiaXRlbS5pc0V4cGFuZGVkID0gIWl0ZW0uaXNFeHBhbmRlZFwiXHJcbiAgICAgICAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiA4cHhcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3tcclxuICAgICAgICAgIGl0ZW0uaXNFeHBhbmRlZFxyXG4gICAgICAgICAgICA/IFwiQ29sbGFwc2VcIlxyXG4gICAgICAgICAgICA6IFwiVmlldyBBbGwgXCIgKyBpdGVtW2ZpbGVkc0tleS5jb21tZW50YXJpZXNdLmxlbmd0aCArIFwiIFJlcGxpZXNcIlxyXG4gICAgICAgIH19XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgY2xhc3M9XCJhcnJvd1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IGNvbGxhcHNlOiBpdGVtLmlzRXhwYW5kZWQgfVwiXHJcbiAgICAgICAgICBzcmM9XCIuLi8uLi9hc3NldHMvaW1nL2Ryb3Bkb3duLWFycm93LnN2Z1wiXHJcbiAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb21tZW50Qm94VGVtcGxhdGUgbGV0LXR5cGU9XCJ0eXBlXCIgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbW1lbnQtYm94XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1pbnB1dC13cmFwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXJcIiAqbmdJZj1cInR5cGUgIT09ICdlZGl0Q29tbWVudCdcIj5cclxuICAgICAgICB7eyBjZi5ydG4oZGlzcGxheU5hbWUpIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8dGV4dGFyZWFcclxuICAgICAgICAqbmdJZj1cInR5cGUgPT09ICdjb21tZW50J1wiXHJcbiAgICAgICAgY2xhc3M9XCJlLWlucHV0XCJcclxuICAgICAgICByb3dzPVwiM1wiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjb21tZW50VmFsXCJcclxuICAgICAgICAoaW5wdXQpPVwiYWRqdXN0VGV4dGFyZWFIZWlnaHQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGZvY3VzKT1cImFkanVzdFRleHRhcmVhSGVpZ2h0KCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5IHx8ICFlZGl0UGVybWlzc2lvblwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uLldSSVRFX1lPVVJfQ09NTUVOVCB8fCAnLldSSVRFX1lPVVJfQ09NTUVOVCdcIlxyXG4gICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgKm5nSWY9XCJ0eXBlID09PSAncmVwbHknXCJcclxuICAgICAgICBjbGFzcz1cImUtaW5wdXRcIlxyXG4gICAgICAgIHJvd3M9XCIzXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInJlcGx5VmFsXCJcclxuICAgICAgICAoaW5wdXQpPVwiYWRqdXN0VGV4dGFyZWFIZWlnaHQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGZvY3VzKT1cImFkanVzdFRleHRhcmVhSGVpZ2h0KCRldmVudClcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbi5XUklURV9ZT1VSX0NPTU1FTlQgfHwgJy5XUklURV9ZT1VSX0NPTU1FTlQnXCJcclxuICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2VkaXRDb21tZW50J1wiXHJcbiAgICAgICAgY2xhc3M9XCJlLWlucHV0XCJcclxuICAgICAgICByb3dzPVwiM1wiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0Q29tbWVudFZhbFwiXHJcbiAgICAgICAgKGlucHV0KT1cImFkanVzdFRleHRhcmVhSGVpZ2h0KCRldmVudClcIlxyXG4gICAgICAgIChmb2N1cyk9XCJhZGp1c3RUZXh0YXJlYUhlaWdodCgkZXZlbnQpXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb24uV1JJVEVfWU9VUl9DT01NRU5UIHx8ICcuV1JJVEVfWU9VUl9DT01NRU5UJ1wiXHJcbiAgICAgID48L3RleHRhcmVhPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnRuLXdyYXBcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2NvbW1lbnQnXCJcclxuICAgICAgICBjbGFzcz1cImUtYnRuIGUtcHJpbWFyeSBzbWFsbFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbW1lbnRWYWwgPT09ICcnIHx8IGlzUmVhZE9ubHkgfHwgIWVkaXRQZXJtaXNzaW9uXCJcclxuICAgICAgICAoY2xpY2spPVwiYWRkQ29tbWVudCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHRyYW5zbGF0aW9uLkNPTU1FTlQgfHwgXCIuQ09NTUVOVFwiIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gJ3JlcGx5J1wiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGNsYXNzPVwiZS1idG4gc21hbGxcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIml0ZW0uc2hvd1JlcGx5SW5wdXQgPSBmYWxzZTsgcmVwbHlWYWwgPSAnJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgdHJhbnNsYXRpb24uQ0FOQ0VMIHx8IFwiLkNBTkNFTFwiIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJlLWJ0biBlLXByaW1hcnkgc21hbGxcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInJlcGx5VmFsID09PSAnJ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwiYWRkUmVwbHkoaXRlbSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IHRyYW5zbGF0aW9uLlJFUExZIHx8IFwiLlJFUExZXCIgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnZWRpdENvbW1lbnQnXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImUtYnRuIHRleHRcIiAoY2xpY2spPVwiaXRlbS5zaG93Q29tbWVudEVkaXQgPSBmYWxzZVwiPlxyXG4gICAgICAgICAgPGltZyBzcmM9XCIuLi8uLi9hc3NldHMvaW1nL2NvbW1lbnQtY2FuY2VsLnN2Z1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJlLWJ0biB0ZXh0XCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJlZGl0Q29tbWVudFZhbCA9PT0gJydcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZUNvbW1lbnQoaXRlbSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbWcgc3JjPVwiLi4vLi4vYXNzZXRzL2ltZy9jb21tZW50LWNoZWNrLnN2Z1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVwbHlJdGVtVGVtcGxhdGUgbGV0LXR5cGU9XCJ0eXBlXCIgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgPGRpdiBjbGFzcz1cInJlcGx5LWl0ZW1cIiBbbmdDbGFzc109XCJ7IGNvbW1lbnQ6IHR5cGUgPT09ICdjb21tZW50JyB9XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyXCI+XHJcbiAgICAgIHt7IGNmLnJ0bihpdGVtW2ZpbGVkc0tleS5vd25lck5hbWVdKSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwib3duZXItd3JhcFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwib3duZXItaW5mb1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+XHJcbiAgICAgICAgICB7eyBpdGVtW2ZpbGVkc0tleS5vd25lck5hbWVdIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj5cclxuICAgICAgICAgIHt7IGl0ZW1bZmlsZWRzS2V5Lmxhc3RNb2RpZmllZE9uXSB8IGRhdGUgOiBkYXRlVGltZVBpcGVGb3JtYXQgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLXdyYXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiICpuZ0lmPVwiIWl0ZW0uc2hvd0NvbW1lbnRFZGl0XCI+XHJcbiAgICAgICAgICA8IS0tIHt7IGl0ZW1bZmlsZWRzS2V5Lm1lc3NhZ2VCb2R5XSB9fSAtLT5cclxuICAgICAgICAgIDx0cnVuY2F0ZWQtdGV4dC10b2dnbGVcclxuICAgICAgICAgICAgW21heGltdW1dPVwiMTA1MFwiXHJcbiAgICAgICAgICAgIFtkYXRhXT1cIml0ZW1bZmlsZWRzS2V5Lm1lc3NhZ2VCb2R5XVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L3RydW5jYXRlZC10ZXh0LXRvZ2dsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdJZj1cIml0ZW0uc2hvd0NvbW1lbnRFZGl0XCJcclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbW1lbnRCb3hUZW1wbGF0ZVwiXHJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB0eXBlOiAnZWRpdENvbW1lbnQnLCBpdGVtOiBpdGVtIH1cIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgIHR5cGUgPT09ICdjb21tZW50JyAmJiAhaXRlbS5zaG93UmVwbHlJbnB1dCAmJiAhaXRlbS5zaG93Q29tbWVudEVkaXRcclxuICAgICAgICBcIlxyXG4gICAgICAgIGNsYXNzPVwiZS1idG4gdGV4dFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIml0ZW0uc2hvd1JlcGx5SW5wdXQgPSB0cnVlXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNSZWFkT25seSB8fCAhZWRpdFBlcm1pc3Npb25cIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgdHJhbnNsYXRpb24uUkVQTFkgfHwgXCIuUkVQTFlcIiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ0lmPVwiaXRlbS5zaG93UmVwbHlJbnB1dFwiXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29tbWVudEJveFRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB0eXBlOiAncmVwbHknLCBpdGVtOiBpdGVtIH1cIlxyXG4gICAgICA+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8cnMtZ3JpZC1hY3Rpb24gKm5nSWY9XCJ0eXBlID09PSAnY29tbWVudCdcIj5cclxuICAgICAgICA8cnMtZ3JpZC1hY3Rpb24taXRlbVxyXG4gICAgICAgICAgaW1hZ2U9XCJFZGl0XCJcclxuICAgICAgICAgIFt0ZXh0XT1cInRyYW5zbGF0aW9uLkVESVRcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzUmVhZE9ubHkgfHwgIWVkaXRQZXJtaXNzaW9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJlZGl0Q29tbWVudChpdGVtKVwiXHJcbiAgICAgICAgPjwvcnMtZ3JpZC1hY3Rpb24taXRlbT5cclxuICAgICAgICA8cnMtZ3JpZC1hY3Rpb24taXRlbVxyXG4gICAgICAgICAgaW1hZ2U9XCJEZWxldGVcIlxyXG4gICAgICAgICAgW3RleHRdPVwidHJhbnNsYXRpb24uREVMRVRFXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5IHx8ICFkZWxldGVQZXJtaXNzaW9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVDb21tZW50KGl0ZW0pXCJcclxuICAgICAgICA+PC9ycy1ncmlkLWFjdGlvbi1pdGVtPlxyXG4gICAgICA8L3JzLWdyaWQtYWN0aW9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|