verben-workflow-ui 0.5.77 → 0.5.78
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 +13 -0
- package/esm2022/src/lib/components/actors/actors.component.mjs +5 -5
- package/esm2022/src/lib/components/actors/actors.facade.mjs +3 -3
- package/esm2022/src/lib/components/actors/actors.form.component.mjs +5 -5
- package/esm2022/src/lib/components/actors/actors.module.mjs +4 -4
- package/esm2022/src/lib/components/actors/actors.service.mjs +3 -3
- package/esm2022/src/lib/components/actors/actors.state.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/label-editor.component.mjs +6 -6
- package/esm2022/src/lib/components/designer/components/node-selector.component.mjs +4 -4
- package/esm2022/src/lib/components/designer/components/swimlane-label.component.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/swimlane-popup.component.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/wf-canvas.component.mjs +6 -6
- package/esm2022/src/lib/components/designer/components/wf-designer.component.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/wf-toolbar.component.mjs +6 -6
- package/esm2022/src/lib/components/designer/services/canvas-state.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/connection-segment-interaction.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/connection.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/keyboard-handler.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/label-management.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-finder.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-interaction.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-precondition.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-selection.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/orthogonal-router.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/position-update.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/rendering.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/swimlane-management.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/swimlane-stats.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/viewport.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-facade.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-mapper.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-persistence.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-state.service.mjs +3 -3
- package/esm2022/src/lib/components/expiration/expiration.component.mjs +3 -3
- package/esm2022/src/lib/components/expiration/expiration.module.mjs +4 -4
- package/esm2022/src/lib/components/file-render/file-render.component.mjs +5 -5
- package/esm2022/src/lib/components/file-render/file-render.module.mjs +4 -4
- package/esm2022/src/lib/components/file-upload/file-upload.component.mjs +5 -5
- package/esm2022/src/lib/components/file-upload/file-upload.module.mjs +4 -4
- package/esm2022/src/lib/components/flowable-status/flowable-status.component.mjs +5 -5
- package/esm2022/src/lib/components/flowable-status/flowable-status.facade.mjs +3 -3
- package/esm2022/src/lib/components/flowable-status/flowable-status.form.component.mjs +5 -5
- package/esm2022/src/lib/components/flowable-status/flowable-status.module.mjs +4 -4
- package/esm2022/src/lib/components/flowable-status/flowable-status.service.mjs +3 -3
- package/esm2022/src/lib/components/flowable-status/flowable-status.state.mjs +3 -3
- package/esm2022/src/lib/components/form-control/form-control.component.mjs +5 -5
- package/esm2022/src/lib/components/form-control/form-control.module.mjs +4 -4
- package/esm2022/src/lib/components/form-group/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/form-group/form-fields/form-fields.component.mjs +5 -5
- package/esm2022/src/lib/components/form-group/form-fields/form-fields.module.mjs +4 -4
- package/esm2022/src/lib/components/form-group/form-fields/form-fields.service.mjs +3 -3
- package/esm2022/src/lib/components/form-group/form-group.component.mjs +5 -5
- package/esm2022/src/lib/components/form-group/form-group.module.mjs +4 -4
- package/esm2022/src/lib/components/form-group/form-group.service.mjs +3 -3
- package/esm2022/src/lib/components/form-response/form-response.component.mjs +5 -5
- package/esm2022/src/lib/components/form-response/form-response.module.mjs +4 -4
- package/esm2022/src/lib/components/form-response/form-response.service.mjs +3 -3
- package/esm2022/src/lib/components/form-timer/form-timer.component.mjs +5 -5
- package/esm2022/src/lib/components/form-timer/form-timer.module.mjs +4 -4
- package/esm2022/src/lib/components/forms/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/forms/forms.component.mjs +5 -5
- package/esm2022/src/lib/components/forms/forms.module.mjs +4 -4
- package/esm2022/src/lib/components/forms/forms.service.mjs +3 -3
- package/esm2022/src/lib/components/journal/journal.component.mjs +3 -3
- package/esm2022/src/lib/components/journal/journal.module.mjs +4 -4
- package/esm2022/src/lib/components/my-queue/my-queue.component.mjs +5 -5
- package/esm2022/src/lib/components/my-queue/my-queue.facade.mjs +3 -3
- package/esm2022/src/lib/components/my-queue/my-queue.module.mjs +4 -4
- package/esm2022/src/lib/components/my-queue/my-queue.service.mjs +3 -3
- package/esm2022/src/lib/components/my-queue/my-queue.state.mjs +3 -3
- package/esm2022/src/lib/components/my-queue/tasks.form.component.mjs +5 -5
- package/esm2022/src/lib/components/operation-popup/operation-popup.component.mjs +5 -5
- package/esm2022/src/lib/components/operation-popup/operation-popup.facade.mjs +3 -3
- package/esm2022/src/lib/components/operation-popup/operation-popup.service.mjs +3 -3
- package/esm2022/src/lib/components/operation-popup/operation-popup.state.mjs +3 -3
- package/esm2022/src/lib/components/stage-details/stage-details.component.mjs +5 -5
- package/esm2022/src/lib/components/stage-details/stage-details.module.mjs +4 -4
- package/esm2022/src/lib/components/task-form/task-form.component.mjs +5 -5
- package/esm2022/src/lib/components/task-form/task-form.module.mjs +4 -4
- package/esm2022/src/lib/components/task-history/task-history.component.mjs +5 -5
- package/esm2022/src/lib/components/task-history/task-history.module.mjs +4 -4
- package/esm2022/src/lib/components/task-history/task-history.service.mjs +3 -3
- package/esm2022/src/lib/components/task-notification/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/task-notification/task-notification.component.mjs +5 -5
- package/esm2022/src/lib/components/task-notification/task-notification.module.mjs +4 -4
- package/esm2022/src/lib/components/task-notification/task-notification.service.mjs +3 -3
- package/esm2022/src/lib/components/tasks/tasks.component.mjs +5 -5
- package/esm2022/src/lib/components/tasks/tasks.facade.mjs +3 -3
- package/esm2022/src/lib/components/tasks/tasks.form.component.mjs +5 -5
- package/esm2022/src/lib/components/tasks/tasks.module.mjs +4 -4
- package/esm2022/src/lib/components/tasks/tasks.service.mjs +3 -3
- package/esm2022/src/lib/components/tasks/tasks.state.mjs +3 -3
- package/esm2022/src/lib/components/wf/wf.component.mjs +3 -3
- package/esm2022/src/lib/components/wf/wf.module.mjs +4 -4
- package/esm2022/src/lib/components/wf/wf.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow/table-style.mjs +6 -6
- package/esm2022/src/lib/components/workflow/workflow.component.mjs +8 -8
- package/esm2022/src/lib/components/workflow/workflow.module.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/action-dialog/action-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/actor-tags-dialog/actor-tags-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/conditions-popup/conditions-popup.component.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/decision-popup/decision-popup.component.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/designer-canvas/designer-canvas.component.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/designer-toolbar/designer-toolbar.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/escalation-dialog/escalation-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/services/connection.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/node-management.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/popup.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/swimlane.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/transformer.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/stage-dialog/stage-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/stage-node/stage-node.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/swimlane-dialog/swimlane-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/workflow-data.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.component.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.module.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.state.mjs +3 -3
- package/esm2022/src/lib/components/workflows/workflow-form/workflow-form.component.mjs +5 -5
- package/esm2022/src/lib/components/workflows/workflows.component.mjs +5 -5
- package/esm2022/src/lib/components/workflows/workflows.facade.mjs +3 -3
- package/esm2022/src/lib/components/workflows/workflows.module.mjs +4 -4
- package/esm2022/src/lib/components/workflows/workflows.service.mjs +3 -3
- package/esm2022/src/lib/components/workflows/workflows.state.mjs +3 -3
- package/esm2022/src/lib/pipes/async-label.pipe.mjs +3 -3
- package/esm2022/src/lib/services/environment.service.mjs +3 -3
- package/esm2022/src/lib/services/http-web-request.service.mjs +3 -3
- package/esm2022/src/lib/services/label.service.mjs +3 -3
- package/esm2022/src/lib/services/util.service.mjs +3 -3
- package/esm2022/src/lib/shared/base-table-style.mjs +6 -6
- package/esm2022/src/lib/shared/components/base-data-view.component.mjs +3 -3
- package/esm2022/src/lib/shared/shared.module.mjs +4 -4
- package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs +21 -21
- package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs +85 -85
- package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs +7 -7
- package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs +21 -21
- package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs +27 -27
- package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs +11 -11
- package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs +16 -16
- package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-journal.mjs +7 -7
- package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs +21 -21
- package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs +13 -13
- package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs +11 -11
- package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs +16 -16
- package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs +21 -21
- package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-wf.mjs +10 -10
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs +67 -67
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs +16 -16
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs +21 -21
- package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-pipes.mjs +3 -3
- package/fesm2022/verben-workflow-ui-src-lib-services.mjs +12 -12
- package/fesm2022/verben-workflow-ui-src-lib-shared.mjs +12 -12
- package/fesm2022/verben-workflow-ui-src-lib-shared.mjs.map +1 -1
- package/package.json +36 -36
- package/src/lib/components/workflow/workflow.component.d.ts +1 -1
- package/styles/styles.css +19 -1436
package/README.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
|
|
4
4
|
|
|
5
|
+
## Theming
|
|
6
|
+
|
|
7
|
+
This library is theme-aware: its component styles read the `verben-ng-ui`
|
|
8
|
+
`--vbn-*` CSS custom properties instead of hardcoded colors, so it automatically
|
|
9
|
+
follows whatever theme the host application configures. It ships **no** theme
|
|
10
|
+
config of its own (no `theme.css`, no `forRoot()`) — that is the host app's job.
|
|
11
|
+
|
|
12
|
+
**Host requirement:** the consuming application must load
|
|
13
|
+
`node_modules/verben-ng-ui/styles/theme.css` (which requires `verben-ng-ui@>=1.3.0`,
|
|
14
|
+
matching this library's peer dependency). See that package's `INTEGRATION.md` for
|
|
15
|
+
the full multi-layer setup. Colors unique to the workflow designer canvas are
|
|
16
|
+
intentionally left as-is (they are functional diagram colors, not brand tokens).
|
|
17
|
+
|
|
5
18
|
## Code scaffolding
|
|
6
19
|
|
|
7
20
|
Run `ng generate component component-name --project verben-workflow-ui` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project verben-workflow-ui`.
|
|
@@ -119,11 +119,11 @@ export class ActorsComponent extends BaseDataViewComponent {
|
|
|
119
119
|
const data = await this.facade.loadData(range.skip, range.limit);
|
|
120
120
|
return data ?? [];
|
|
121
121
|
}
|
|
122
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
123
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ActorsComponent, selector: "lib-actors", usesInheritance: true, ngImport: i0, template: "<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: false,\n isToggle: true,\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data()\"\n [columns]=\"config.columns\"\n [styleConfig]=\"styles\"\n [formGroupConfig]=\"formGroupConfig()\"\n (selectionChange)=\"onSelectionChange($event)\"\n (rowSave)=\"onSave($event.data)\"\n >\n <ng-container libColumn=\"date\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"name\">\n <ng-template #cellEdit let-control=\"control\">\n <verbena-input\n name=\"Name\"\n [formControl]=\"control\"\n placeHolder=\"Enter Name\"\n />\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"tags\">\n <ng-template #cellEdit let-control=\"control\">\n <verben-drop-down\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select tags\"\n [options]=\"tags()\"\n optionLabel=\"Name\"\n id=\"tags\"\n [formControl]=\"control\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-value\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n\n <ng-template\n #cellEdit\n let-value\n let-deleteRow\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-rowIndex=\"rowIndex\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"Id\"\n border=\"5px\"\n [cardDataList]=\"cardData()\"\n rbgColor=\"#f5f6f9\"\n mg=\"20px\"\n >\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"Id\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData()\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex items-center gap-4 justify-between\">\n <div class=\"grid gap-y-2\">\n <span class=\"font-semibold text-[#404040]\">{{\n item.title\n }}</span>\n <p class=\"flex items-center gap-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >E-Mail:</label\n >\n <span id=\"phone\" class=\"text-sm\">{{\n item.data.Identifier\n }}</span>\n </p>\n </div>\n\n <!-- <div class=\"grid gap-y-2\">\n <span for=\"role\" class=\"font-light\">{{\n item.data.WorkflowCode\n }}</span>\n <a\n [routerLink]=\"[\n '/workflow/task-history',\n item.data.Code\n ]\"\n routerLinkActive=\"router-link-active\"\n class=\"underline text-[#0000FF] text-xs\"\n >view history</a\n >\n </div> -->\n\n <div class=\"grid gap-y-1\">\n <p class=\"grid\">\n <label\n for=\"role\"\n class=\"text-[10px] font-light text-[#404040]\"\n >Name</label\n >\n <span id=\"role\" class=\"text-sm font-medium\">{{\n item.data?.Name\n }}</span>\n </p>\n </div>\n </div>\n\n <!-- <div class=\"flex\">\n <span class=\"font-normal text-sm\">{{ item.title }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"\">\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black\">{{ ciItem.value }}</span>\n </div>\n } -->\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <!-- <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onApproval)=\"onApprove($event)\"\n ></lib-user-request-form> -->\n <actors-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onSave)=\"onSave($event)\"\n ></actors-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-end': true\n }\"\n >\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData().length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <lib-data-columns\n [columns]=\"config.columns\"\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n ></lib-data-columns>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <lib-data-sort\n [columns]=\"config.columns\"\n [data]=\"data()\"\n (sortApplied)=\"onSortUpdated($event)\"\n ></lib-data-sort>\n </div>\n <div export-content>\n <lib-data-xport\n [columns]=\"config.columns\"\n [data]=\"data()\"\n [dataQueryFunction]=\"loadData\"\n >\n </lib-data-xport>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n <!-- <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div> -->\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DataTableComponent, selector: "lib-data-table", inputs: ["data", "columns", "dataKey", "formGroupConfig", "groupBy", "useVirtualScroll", "virtualScrollItemSize", "styleConfig"], outputs: ["rowEdit", "rowSave", "rowRevert", "rowDelete", "selectionChange"] }, { kind: "directive", type: i4.ColumnDirective, selector: "[libColumn]", inputs: ["libColumn"] }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i4.DataViewComponent, selector: "verben-data-view", inputs: ["buttonClass", "iconClass", "activeIconClass", "columnCustomClass", "filterCustomClass", "sortCustomClass", "extendCustomClass", "exportCustomClass", "selectCustomClass", "importCustomClass", "zIndex", "createCustomClass", "tableIcon", "cardIcon", "cardClass", "tableClass", "searchKey", "searchValue", "viewState", "searchTemplate", "importTemplate", "columnTemplate", "extendTemplate", "filterTemplate", "sortTemplate", "children", "exportTemplate", "createTemplate", "selectedColumnCount", "selectedSortCount", "selectedFilterTableCount", "inputWidth", "milliseconds", "showColumnChild", "showSortChild", "showFilterChild", "showImportChild", "showExportChild", "showExtendChild", "create", "showSelected", "isTableView"], outputs: ["viewChange", "stateChange", "onSearchChange"] }, { kind: "component", type: i4.CardDataViewComponent, selector: "verben-card-data-view", inputs: ["pd", "mg", "lHeight", "rHeight", "rWidth", "lWidth", "textColor", "lbgColor", "rbgColor", "border", "display", "borderRadius", "activeCss", "inActiveCss", "displayAsRow", "cardDataList", "dataId", "totalRecords", "footer", "noOfVisibleChildren", "showEditIcon", "onItemClick", "onCardChildClick"], outputs: ["editClicked", "loadMoreClick"] }, { kind: "component", type: i4.LeftCardDataComponent, selector: "verben-left-card-data", inputs: ["pd", "mg", "height", "weight", "activeCss", "inActiveCss", "cardDataList", "iconCollapse", "iconExpanded", "parent", "dataId"] }, { kind: "component", type: i4.LeftCardDataViewComponent, selector: "verben-left-card-data-view", inputs: ["cardDataList"] }, { kind: "component", type: i4.RightCardDataViewComponent, selector: "verben-right-card-data-view", inputs: ["parentData", "chilData", "meth"] }, { kind: "component", type: i4.CardDataViewFooterComponent, selector: "verben-card-data-view-footer" }, { kind: "component", type: i4.TableFilterComponent, selector: "verben-table-filter", inputs: ["filterOptions", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "maxFilterLength", "tooltip"], outputs: ["filtersApplied", "resetSortData"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.DataColumnsComponent, selector: "lib-data-columns", inputs: ["columns", "enableDragAndDrop", "maxVisibleItems"], outputs: ["columnsUpdated"] }, { kind: "component", type: i4.DataXportComponent, selector: "lib-data-xport", inputs: ["data", "columns", "useImportKey", "dataFetchUrl", "dataQueryParameters", "dataQueryFunction"], outputs: ["exportDataEvent", "exportDataRangeEvent"] }, { kind: "component", type: i4.DataSortComponent, selector: "lib-data-sort", inputs: ["columns", "data", "enableDragAndDrop"], outputs: ["sortApplied", "resetFilter"] }, { kind: "component", type: i5.ActorsFormComponent, selector: "actors-form", inputs: ["currentData"], outputs: ["onSave", "switchView"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
|
|
122
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ActorFacade }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
123
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ActorsComponent, selector: "lib-actors", usesInheritance: true, ngImport: i0, template: "<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: false,\n isToggle: true,\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data()\"\n [columns]=\"config.columns\"\n [styleConfig]=\"styles\"\n [formGroupConfig]=\"formGroupConfig()\"\n (selectionChange)=\"onSelectionChange($event)\"\n (rowSave)=\"onSave($event.data)\"\n >\n <ng-container libColumn=\"date\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"name\">\n <ng-template #cellEdit let-control=\"control\">\n <verbena-input\n name=\"Name\"\n [formControl]=\"control\"\n placeHolder=\"Enter Name\"\n />\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"tags\">\n <ng-template #cellEdit let-control=\"control\">\n <verben-drop-down\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select tags\"\n [options]=\"tags()\"\n optionLabel=\"Name\"\n id=\"tags\"\n [formControl]=\"control\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-value\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n\n <ng-template\n #cellEdit\n let-value\n let-deleteRow\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-rowIndex=\"rowIndex\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"Id\"\n border=\"5px\"\n [cardDataList]=\"cardData()\"\n rbgColor=\"var(--vbn-color-surface-alt)\"\n mg=\"20px\"\n >\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"Id\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData()\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex items-center gap-4 justify-between\">\n <div class=\"grid gap-y-2\">\n <span class=\"font-semibold text-[var(--vbn-color-on-primary)]\">{{\n item.title\n }}</span>\n <p class=\"flex items-center gap-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >E-Mail:</label\n >\n <span id=\"phone\" class=\"text-sm\">{{\n item.data.Identifier\n }}</span>\n </p>\n </div>\n\n <!-- <div class=\"grid gap-y-2\">\n <span for=\"role\" class=\"font-light\">{{\n item.data.WorkflowCode\n }}</span>\n <a\n [routerLink]=\"[\n '/workflow/task-history',\n item.data.Code\n ]\"\n routerLinkActive=\"router-link-active\"\n class=\"underline text-[var(--vbn-color-border-focus)] text-xs\"\n >view history</a\n >\n </div> -->\n\n <div class=\"grid gap-y-1\">\n <p class=\"grid\">\n <label\n for=\"role\"\n class=\"text-[10px] font-light text-[var(--vbn-color-on-primary)]\"\n >Name</label\n >\n <span id=\"role\" class=\"text-sm font-medium\">{{\n item.data?.Name\n }}</span>\n </p>\n </div>\n </div>\n\n <!-- <div class=\"flex\">\n <span class=\"font-normal text-sm\">{{ item.title }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"\">\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black\">{{ ciItem.value }}</span>\n </div>\n } -->\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <!-- <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onApproval)=\"onApprove($event)\"\n ></lib-user-request-form> -->\n <actors-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onSave)=\"onSave($event)\"\n ></actors-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-end': true\n }\"\n >\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'var(--vbn-color-text-muted)'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData().length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[var(--vbn-color-border-focus)] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <lib-data-columns\n [columns]=\"config.columns\"\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n ></lib-data-columns>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid var(--vbn-color-primary)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"var(--vbn-color-primary)\"\n secondaryColor=\"var(--vbn-color-border-focus)\"\n tertiaryColor=\"var(--vbn-color-on-primary)\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <lib-data-sort\n [columns]=\"config.columns\"\n [data]=\"data()\"\n (sortApplied)=\"onSortUpdated($event)\"\n ></lib-data-sort>\n </div>\n <div export-content>\n <lib-data-xport\n [columns]=\"config.columns\"\n [data]=\"data()\"\n [dataQueryFunction]=\"loadData\"\n >\n </lib-data-xport>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n <!-- <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'var(--vbn-color-text-muted)'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div> -->\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[var(--vbn-color-border-focus)] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DataTableComponent, selector: "lib-data-table", inputs: ["data", "columns", "dataKey", "formGroupConfig", "groupBy", "useVirtualScroll", "virtualScrollItemSize", "styleConfig"], outputs: ["rowEdit", "rowSave", "rowRevert", "rowDelete", "selectionChange"] }, { kind: "directive", type: i4.ColumnDirective, selector: "[libColumn]", inputs: ["libColumn"] }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i4.DataViewComponent, selector: "verben-data-view", inputs: ["buttonClass", "iconClass", "activeIconClass", "columnCustomClass", "filterCustomClass", "sortCustomClass", "extendCustomClass", "exportCustomClass", "selectCustomClass", "importCustomClass", "zIndex", "createCustomClass", "tableIcon", "cardIcon", "cardClass", "tableClass", "searchKey", "searchValue", "viewState", "searchTemplate", "importTemplate", "columnTemplate", "extendTemplate", "filterTemplate", "sortTemplate", "children", "exportTemplate", "createTemplate", "selectedColumnCount", "selectedSortCount", "selectedFilterTableCount", "inputWidth", "milliseconds", "showColumnChild", "showSortChild", "showFilterChild", "showImportChild", "showExportChild", "showExtendChild", "create", "showSelected", "isTableView"], outputs: ["viewChange", "stateChange", "onSearchChange"] }, { kind: "component", type: i4.CardDataViewComponent, selector: "verben-card-data-view", inputs: ["pd", "mg", "lHeight", "rHeight", "rWidth", "lWidth", "textColor", "lbgColor", "rbgColor", "border", "display", "borderRadius", "activeCss", "inActiveCss", "displayAsRow", "cardDataList", "dataId", "totalRecords", "footer", "noOfVisibleChildren", "showEditIcon", "useVirtualScroll", "virtualScrollItemSize", "onItemClick", "onCardChildClick"], outputs: ["editClicked", "loadMoreClick"] }, { kind: "component", type: i4.LeftCardDataComponent, selector: "verben-left-card-data", inputs: ["pd", "mg", "height", "weight", "activeCss", "inActiveCss", "cardDataList", "iconCollapse", "iconExpanded", "parent", "useVirtualScroll", "virtualScrollItemSize", "dataId"] }, { kind: "component", type: i4.LeftCardDataViewComponent, selector: "verben-left-card-data-view", inputs: ["cardDataList"] }, { kind: "component", type: i4.RightCardDataViewComponent, selector: "verben-right-card-data-view", inputs: ["parentData", "chilData", "meth"] }, { kind: "component", type: i4.CardDataViewFooterComponent, selector: "verben-card-data-view-footer" }, { kind: "component", type: i4.TableFilterComponent, selector: "verben-table-filter", inputs: ["filterOptions", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "maxFilterLength", "tooltip"], outputs: ["filtersApplied", "resetSortData"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.DataColumnsComponent, selector: "lib-data-columns", inputs: ["columns", "enableDragAndDrop", "maxVisibleItems"], outputs: ["columnsUpdated"] }, { kind: "component", type: i4.DataXportComponent, selector: "lib-data-xport", inputs: ["data", "columns", "useImportKey", "includeFooterInExport", "dataFetchUrl", "dataQueryParameters", "dataQueryFunction"], outputs: ["exportDataEvent", "exportDataRangeEvent"] }, { kind: "component", type: i4.DataSortComponent, selector: "lib-data-sort", inputs: ["columns", "data", "enableDragAndDrop"], outputs: ["sortApplied", "resetFilter"] }, { kind: "component", type: i5.ActorsFormComponent, selector: "actors-form", inputs: ["currentData"], outputs: ["onSave", "switchView"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
|
|
124
124
|
}
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorsComponent, decorators: [{
|
|
126
126
|
type: Component,
|
|
127
|
-
args: [{ selector: 'lib-actors', template: "<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: false,\n isToggle: true,\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data()\"\n [columns]=\"config.columns\"\n [styleConfig]=\"styles\"\n [formGroupConfig]=\"formGroupConfig()\"\n (selectionChange)=\"onSelectionChange($event)\"\n (rowSave)=\"onSave($event.data)\"\n >\n <ng-container libColumn=\"date\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"name\">\n <ng-template #cellEdit let-control=\"control\">\n <verbena-input\n name=\"Name\"\n [formControl]=\"control\"\n placeHolder=\"Enter Name\"\n />\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"tags\">\n <ng-template #cellEdit let-control=\"control\">\n <verben-drop-down\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select tags\"\n [options]=\"tags()\"\n optionLabel=\"Name\"\n id=\"tags\"\n [formControl]=\"control\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-value\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n\n <ng-template\n #cellEdit\n let-value\n let-deleteRow\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-rowIndex=\"rowIndex\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"Id\"\n border=\"5px\"\n [cardDataList]=\"cardData()\"\n rbgColor=\"#f5f6f9\"\n mg=\"20px\"\n >\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"Id\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData()\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex items-center gap-4 justify-between\">\n <div class=\"grid gap-y-2\">\n <span class=\"font-semibold text-[#404040]\">{{\n item.title\n }}</span>\n <p class=\"flex items-center gap-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >E-Mail:</label\n >\n <span id=\"phone\" class=\"text-sm\">{{\n item.data.Identifier\n }}</span>\n </p>\n </div>\n\n <!-- <div class=\"grid gap-y-2\">\n <span for=\"role\" class=\"font-light\">{{\n item.data.WorkflowCode\n }}</span>\n <a\n [routerLink]=\"[\n '/workflow/task-history',\n item.data.Code\n ]\"\n routerLinkActive=\"router-link-active\"\n class=\"underline text-[#0000FF] text-xs\"\n >view history</a\n >\n </div> -->\n\n <div class=\"grid gap-y-1\">\n <p class=\"grid\">\n <label\n for=\"role\"\n class=\"text-[10px] font-light text-[#404040]\"\n >Name</label\n >\n <span id=\"role\" class=\"text-sm font-medium\">{{\n item.data?.Name\n }}</span>\n </p>\n </div>\n </div>\n\n <!-- <div class=\"flex\">\n <span class=\"font-normal text-sm\">{{ item.title }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"\">\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black\">{{ ciItem.value }}</span>\n </div>\n } -->\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <!-- <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onApproval)=\"onApprove($event)\"\n ></lib-user-request-form> -->\n <actors-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onSave)=\"onSave($event)\"\n ></actors-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-end': true\n }\"\n >\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData().length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <lib-data-columns\n [columns]=\"config.columns\"\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n ></lib-data-columns>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <lib-data-sort\n [columns]=\"config.columns\"\n [data]=\"data()\"\n (sortApplied)=\"onSortUpdated($event)\"\n ></lib-data-sort>\n </div>\n <div export-content>\n <lib-data-xport\n [columns]=\"config.columns\"\n [data]=\"data()\"\n [dataQueryFunction]=\"loadData\"\n >\n </lib-data-xport>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n <!-- <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div> -->\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n" }]
|
|
127
|
+
args: [{ selector: 'lib-actors', template: "<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: false,\n isToggle: true,\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"selectedColumnCount\"\n [selectedSortCount]=\"selectedSortCount\"\n [selectedFilterTableCount]=\"selectedFilterTableCount\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n (onSearchChange)=\"handleSearch($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data()\"\n [columns]=\"config.columns\"\n [styleConfig]=\"styles\"\n [formGroupConfig]=\"formGroupConfig()\"\n (selectionChange)=\"onSelectionChange($event)\"\n (rowSave)=\"onSave($event.data)\"\n >\n <ng-container libColumn=\"date\">\n <ng-template #cell let-row=\"row\" let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"name\">\n <ng-template #cellEdit let-control=\"control\">\n <verbena-input\n name=\"Name\"\n [formControl]=\"control\"\n placeHolder=\"Enter Name\"\n />\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"tags\">\n <ng-template #cellEdit let-control=\"control\">\n <verben-drop-down\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select tags\"\n [options]=\"tags()\"\n optionLabel=\"Name\"\n id=\"tags\"\n [formControl]=\"control\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template\n #cell\n let-value\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-deleteRow=\"deleteRow\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"deleteRow()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n\n <ng-template\n #cellEdit\n let-value\n let-deleteRow\n let-isEditing=\"isEditing\"\n let-toggleRowEdit=\"toggleRowEdit\"\n let-row=\"row\"\n let-rowIndex=\"rowIndex\"\n >\n <div class=\"flex gap-6\">\n <verben-svg\n (click)=\"toggleRowEdit()\"\n icon=\"tick\"\n [width]=\"15\"\n [height]=\"15\"\n class=\"cursor-pointer\"\n ></verben-svg>\n\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"toggleRowEdit()\"\n class=\"cursor-pointer\"\n ></verben-svg>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"Id\"\n border=\"5px\"\n [cardDataList]=\"cardData()\"\n rbgColor=\"var(--vbn-color-surface-alt)\"\n mg=\"20px\"\n >\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"Id\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData()\"\n >\n <ng-template #card let-item>\n <div (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n <div\n (click)=\"currentData = vdcv.onItemClick(item)\"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex items-center gap-4 justify-between\">\n <div class=\"grid gap-y-2\">\n <span class=\"font-semibold text-[var(--vbn-color-on-primary)]\">{{\n item.title\n }}</span>\n <p class=\"flex items-center gap-1\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >E-Mail:</label\n >\n <span id=\"phone\" class=\"text-sm\">{{\n item.data.Identifier\n }}</span>\n </p>\n </div>\n\n <!-- <div class=\"grid gap-y-2\">\n <span for=\"role\" class=\"font-light\">{{\n item.data.WorkflowCode\n }}</span>\n <a\n [routerLink]=\"[\n '/workflow/task-history',\n item.data.Code\n ]\"\n routerLinkActive=\"router-link-active\"\n class=\"underline text-[var(--vbn-color-border-focus)] text-xs\"\n >view history</a\n >\n </div> -->\n\n <div class=\"grid gap-y-1\">\n <p class=\"grid\">\n <label\n for=\"role\"\n class=\"text-[10px] font-light text-[var(--vbn-color-on-primary)]\"\n >Name</label\n >\n <span id=\"role\" class=\"text-sm font-medium\">{{\n item.data?.Name\n }}</span>\n </p>\n </div>\n </div>\n\n <!-- <div class=\"flex\">\n <span class=\"font-normal text-sm\">{{ item.title }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"\">\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black\">{{ ciItem.value }}</span>\n </div>\n } -->\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <!-- <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onApproval)=\"onApprove($event)\"\n ></lib-user-request-form> -->\n <actors-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onSave)=\"onSave($event)\"\n ></actors-form>\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-end': true\n }\"\n >\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'var(--vbn-color-text-muted)'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData().length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[var(--vbn-color-border-focus)] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <lib-data-columns\n [columns]=\"config.columns\"\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n ></lib-data-columns>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid var(--vbn-color-primary)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"var(--vbn-color-primary)\"\n secondaryColor=\"var(--vbn-color-border-focus)\"\n tertiaryColor=\"var(--vbn-color-on-primary)\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <lib-data-sort\n [columns]=\"config.columns\"\n [data]=\"data()\"\n (sortApplied)=\"onSortUpdated($event)\"\n ></lib-data-sort>\n </div>\n <div export-content>\n <lib-data-xport\n [columns]=\"config.columns\"\n [data]=\"data()\"\n [dataQueryFunction]=\"loadData\"\n >\n </lib-data-xport>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n <!-- <div class=\"message-log-button-container flex justify-between\">\n <verbena-button\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'var(--vbn-color-text-muted)'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button>\n </div> -->\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[var(--vbn-color-border-focus)] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n" }]
|
|
128
128
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.ActorFacade }, { type: i2.FormBuilder }] });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0b3JzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvYWN0b3JzL2FjdG9ycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL2FjdG9ycy9hY3RvcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBUyxXQUFXLEVBQUUsTUFBTSxFQUFPLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFrQixNQUFNLG1DQUFtQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQVEzQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxxQkFBNEI7SUF1QnJEO0lBQ0E7SUFDQTtJQXhCVixNQUFNLEdBQTBCO1FBQzlCLFVBQVUsRUFBRSxFQUFFLEVBQUUsd0JBQXdCO1FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsbUNBQW1DO1FBQ3JELGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQixRQUFRLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUk7WUFDMUIsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNwQyw0Q0FBNEM7YUFD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QWU7NEZBQWYsZUFBZSx5RUNsQjVCLG9pV0F5VUE7OzRGRHZUYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXJkRGF0YSwgRm9ybUdyb3VwQ29uZmlnIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IEFjdG9yLCBPYmplY3RTdGF0ZSwgU3RhdHVzLCBUYWcgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZURhdGFWaWV3Q29tcG9uZW50LCBEYXRhVmlld0NvbmZpZyB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL3NoYXJlZCc7XG5pbXBvcnQgeyBjb2x1bW5zIH0gZnJvbSAnLi9hY3RvcnMuY29sdW1ucyc7XG5pbXBvcnQgeyBBY3RvckZhY2FkZSB9IGZyb20gJy4vYWN0b3JzLmZhY2FkZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hY3RvcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0b3JzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FjdG9ycy5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQWN0b3JzQ29tcG9uZW50IGV4dGVuZHMgQmFzZURhdGFWaWV3Q29tcG9uZW50PEFjdG9yPiB7XG4gIGNvbmZpZzogRGF0YVZpZXdDb25maWc8QWN0b3I+ID0ge1xuICAgIGRhdGFTb3VyY2U6IFtdLCAvLyBQb3B1bGF0ZSBmcm9tIHNlcnZpY2VcbiAgICBjb2x1bW5zOiBjb2x1bW5zLCAvLyBZb3VyIGV4aXN0aW5nIGNvbHVtbiBkZWZpbml0aW9uc1xuICAgIGNhcmREYXRhTWFwcGVyOiAoYWN0b3IpID0+ICh7XG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICB0aXRsZTogYWN0b3IuVGFnc1swXT8uTmFtZSxcbiAgICAgIGRhdGE6IGFjdG9yLFxuICAgICAgYm9keTogW1xuICAgICAgICB7IHRpdGxlOiAnTmFtZScsIHZhbHVlOiBhY3Rvci5OYW1lIH0sXG4gICAgICAgIC8vIHsgdGl0bGU6ICdTdGF0dXMnLCB2YWx1ZTogYWN0b3IuU3RhdHVzIH0sXG4gICAgICBdLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgIH0pLFxuICAgIG9uRGV0YWlsVmlldzogKGFjdG9yKSA9PiB7XG4gICAgICAvLyBDdXN0b20gZGV0YWlsIHZpZXcgbG9naWNcbiAgICB9LFxuICB9O1xuXG4gIHRhZ3M6IFdyaXRhYmxlU2lnbmFsPFRhZ1tdPiA9IHNpZ25hbChbXSk7XG4gIGZvcm1Hcm91cENvbmZpZzogV3JpdGFibGVTaWduYWw8Rm9ybUdyb3VwQ29uZmlnPGFueT4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGZhY2FkZTogQWN0b3JGYWNhZGUsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMubG9hZERhdGEgPSB0aGlzLmxvYWREYXRhLmJpbmQodGhpcyk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cENvbmZpZyA9IHNpZ25hbCh7XG4gICAgICBjb250cm9sczoge1xuICAgICAgICBOYW1lOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIElkZW50aWZpZXI6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgVGFnczogdGhpcy5mYi5jb250cm9sKFtdLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgICBBY3RvclRhZ3M6IHRoaXMuZmIuY29udHJvbChbXSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgU3RhdHVzOiB0aGlzLmZiLmNvbnRyb2woU3RhdHVzLkFjdGl2ZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIH0sXG4gICAgICAvLyB2YWxpZGF0b3JPck9wdHM6IG51bGwsXG4gICAgICAvLyBhc3luY1ZhbGlkYXRvcjogbnVsbCxcbiAgICB9KTtcblxuICAgIHRoaXMuZmFjYWRlLmdldFJlcXVlc3RzJCgpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5kYXRhLnNldChkYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmFjYWRlLmdldFRhZ3MkKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnRhZ3Muc2V0KGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbG9hZEluaXRpYWxEYXRhKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmZhY2FkZS5yZXNldFBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuZmFjYWRlLmxvYWRSZXF1ZXN0cygpO1xuICAgICAgdGhpcy5mYWNhZGUubG9hZFRhZ3MoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSGFuZGxlIGVycm9yXG4gICAgfVxuICB9XG5cbiAgLy8gZ2VuZXJhdGVGb3JtR3JvdXAoZGF0YT86IFBhcnRpYWw8QWN0b3I+KSB7XG4gIC8vICAgY29uc29sZS5sb2coZGF0YSk7XG4gIC8vICAgY29uc3QgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAvLyAgICAgTmFtZTogbmV3IEZvcm1Db250cm9sKGRhdGE/Lk5hbWUgPz8gJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gIC8vICAgICBJZGVudGlmaWVyOiBuZXcgRm9ybUNvbnRyb2woZGF0YT8uSWRlbnRpZmllciA/PyAnJywgW1xuICAvLyAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAvLyAgICAgXSksXG4gIC8vICAgICBUYWdzOiBuZXcgRm9ybUNvbnRyb2woZGF0YT8uVGFncyA/PyBbXSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgLy8gICB9KTtcbiAgLy8gICAvLyBjb25zb2xlLmxvZyhmb3JtLnZhbHVlKTtcbiAgLy8gICByZXR1cm4gZm9ybTtcbiAgLy8gfVxuXG4gIC8vIGdldEZvcm1Db250cm9sKGluZGV4OiBudW1iZXIsIGZpZWxkOiBzdHJpbmcpIHtcbiAgLy8gICBjb25zdCBjb250cm9sID0gdGhpcy5lZGl0Rm9ybXMuZ2V0KGluZGV4KT8uZ2V0KGZpZWxkKSBhcyBGb3JtQ29udHJvbDxhbnk+O1xuICAvLyAgIGNvbnNvbGUubG9nKGNvbnRyb2wpO1xuICAvLyAgIHJldHVybiBjb250cm9sO1xuICAvLyB9XG5cbiAgLy8gaXNSb3dWYWxpZChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZWRpdEZvcm1zLmdldChpbmRleCk/LnZhbGlkIHx8IGZhbHNlO1xuICAvLyB9XG5cbiAgcHJvdGVjdGVkIGdldENhcmREYXRhQnlJZGVudGlmaWVyKGNvZGU6IHN0cmluZyk6IENhcmREYXRhIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jYXJkRGF0YSgpPy5maW5kKCh7IGRhdGEgfSkgPT4gZGF0YS5kYXRhLkNvZGUgPT09IGNvZGUpO1xuICB9XG5cbiAgYXN5bmMgbG9hZE1vcmUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLmxvYWRNb3JlKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIEhhbmRsZSBlcnJvclxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uU2F2ZShkYXRhOiBQYXJ0aWFsPEFjdG9yPikge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAuLi50aGlzLmN1cnJlbnREYXRhPy5kYXRhLFxuICAgICAgLi4uZGF0YSxcbiAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuQ2hhbmdlZCxcbiAgICB9IGFzIEFjdG9yO1xuICAgIGF3YWl0IHRoaXMuZmFjYWRlLmFkZFJlcXVlc3QocGF5bG9hZCk7XG4gIH1cblxuICBoYW5kbGVTZWFyY2goZXZlbnQ6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuZmFjYWRlLnNlYXJjaChldmVudC52YWx1ZSk7XG4gIH1cblxuICBoYW5kbGVGZXRjaGVkRXhwb3J0KHsgc2tpcCwgbGltaXQgfTogYW55KSB7XG4gICAgdGhpcy5mYWNhZGUubG9hZERhdGEoc2tpcCwgbGltaXQpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXhwb3J0KGRhdGEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbG9hZERhdGEocmFuZ2U6IHsgc2tpcDogbnVtYmVyOyBsaW1pdDogbnVtYmVyIH0pIHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5mYWNhZGUubG9hZERhdGEocmFuZ2Uuc2tpcCwgcmFuZ2UubGltaXQpO1xuICAgIHJldHVybiBkYXRhID8/IFtdO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3BhY2UteS04XCI+XG4gIDx2ZXJiZW4tZGF0YS12aWV3XG4gICAgI3ZkdlxuICAgIFt2aWV3U3RhdGVdPVwie1xuICAgICAgaXNTZWFyY2g6IHRydWUsXG4gICAgICBpc0NvbHVtbjogdHJ1ZSxcbiAgICAgIGlzRmlsdGVyOiB0cnVlLFxuICAgICAgaXNTb3J0OiB0cnVlLFxuICAgICAgaXNFeHBvcnQ6IHRydWUsXG4gICAgICBpc1NlbGVjdDogdHJ1ZSxcbiAgICAgIGlzQ3JlYXRlOiBmYWxzZSxcbiAgICAgIGlzVG9nZ2xlOiB0cnVlLFxuICAgIH1cIlxuICAgIFtidXR0b25DbGFzc109XCInbXktY3VzdG9tLWJ1dHRvbi1jbGFzcydcIlxuICAgIFtpY29uQ2xhc3NdPVwiJ215LWljb24tY2xhc3MnXCJcbiAgICBbYWN0aXZlSWNvbkNsYXNzXT1cIidteS1hY3RpdmUtaWNvbi1jbGFzcydcIlxuICAgIFtzZWxlY3RlZENvbHVtbkNvdW50XT1cInNlbGVjdGVkQ29sdW1uQ291bnRcIlxuICAgIFtzZWxlY3RlZFNvcnRDb3VudF09XCJzZWxlY3RlZFNvcnRDb3VudFwiXG4gICAgW3NlbGVjdGVkRmlsdGVyVGFibGVDb3VudF09XCJzZWxlY3RlZEZpbHRlclRhYmxlQ291bnRcIlxuICAgICh2aWV3Q2hhbmdlKT1cIm9uVmlld0NoYW5nZSgkZXZlbnQpXCJcbiAgICAoc3RhdGVDaGFuZ2UpPVwib25TdGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAob25TZWFyY2hDaGFuZ2UpPVwiaGFuZGxlU2VhcmNoKCRldmVudClcIlxuICA+XG4gICAgPGRpdiB0YWJsZS1jb250ZW50PlxuICAgICAgPGxpYi1kYXRhLXRhYmxlXG4gICAgICAgIFtkYXRhXT1cImRhdGEoKVwiXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbmZpZy5jb2x1bW5zXCJcbiAgICAgICAgW3N0eWxlQ29uZmlnXT1cInN0eWxlc1wiXG4gICAgICAgIFtmb3JtR3JvdXBDb25maWddPVwiZm9ybUdyb3VwQ29uZmlnKClcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAocm93U2F2ZSk9XCJvblNhdmUoJGV2ZW50LmRhdGEpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBsaWJDb2x1bW49XCJkYXRlXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU+XG4gICAgICAgICAgICB7eyB2YWx1ZSB8IGRhdGUgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIGxpYkNvbHVtbj1cIm5hbWVcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGxFZGl0IGxldC1jb250cm9sPVwiY29udHJvbFwiPlxuICAgICAgICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgICAgICAgbmFtZT1cIk5hbWVcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgTmFtZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbGliQ29sdW1uPVwidGFnc1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbEVkaXQgbGV0LWNvbnRyb2w9XCJjb250cm9sXCI+XG4gICAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGFnc1wiXG4gICAgICAgICAgICAgIFtvcHRpb25zXT1cInRhZ3MoKVwiXG4gICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICAgIGlkPVwidGFnc1wiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbGliQ29sdW1uPVwiYWN0aW9uc1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgI2NlbGxcbiAgICAgICAgICAgIGxldC12YWx1ZVxuICAgICAgICAgICAgbGV0LWlzRWRpdGluZz1cImlzRWRpdGluZ1wiXG4gICAgICAgICAgICBsZXQtdG9nZ2xlUm93RWRpdD1cInRvZ2dsZVJvd0VkaXRcIlxuICAgICAgICAgICAgbGV0LWRlbGV0ZVJvdz1cImRlbGV0ZVJvd1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTZcIj5cbiAgICAgICAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUm93RWRpdCgpXCJcbiAgICAgICAgICAgICAgICBpY29uPVwiZWRpdFwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgPjwvdmVyYmVuLXN2Zz5cblxuICAgICAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgICAgIGljb249XCJkZWxldGVcIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVJvdygpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICNjZWxsRWRpdFxuICAgICAgICAgICAgbGV0LXZhbHVlXG4gICAgICAgICAgICBsZXQtZGVsZXRlUm93XG4gICAgICAgICAgICBsZXQtaXNFZGl0aW5nPVwiaXNFZGl0aW5nXCJcbiAgICAgICAgICAgIGxldC10b2dnbGVSb3dFZGl0PVwidG9nZ2xlUm93RWRpdFwiXG4gICAgICAgICAgICBsZXQtcm93PVwicm93XCJcbiAgICAgICAgICAgIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNlwiPlxuICAgICAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSb3dFZGl0KClcIlxuICAgICAgICAgICAgICAgIGljb249XCJ0aWNrXCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuXG4gICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUm93RWRpdCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9saWItZGF0YS10YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNhcmQtY29udGVudD5cbiAgICAgIDx2ZXJiZW4tY2FyZC1kYXRhLXZpZXdcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiMTJweFwiXG4gICAgICAgIChsb2FkTW9yZUNsaWNrKT1cImxvYWRNb3JlKClcIlxuICAgICAgICAjdmRjdlxuICAgICAgICBkYXRhSWQ9XCJJZFwiXG4gICAgICAgIGJvcmRlcj1cIjVweFwiXG4gICAgICAgIFtjYXJkRGF0YUxpc3RdPVwiY2FyZERhdGEoKVwiXG4gICAgICAgIHJiZ0NvbG9yPVwiI2Y1ZjZmOVwiXG4gICAgICAgIG1nPVwiMjBweFwiXG4gICAgICA+XG4gICAgICAgIDx2ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlldyBjbGFzcz1cInNwYWNlLXktN1wiPlxuICAgICAgICAgIDx2ZXJiZW4tbGVmdC1jYXJkLWRhdGFcbiAgICAgICAgICAgICN2bGNkXG4gICAgICAgICAgICBbcGFyZW50XT1cInZkY3ZcIlxuICAgICAgICAgICAgZGF0YUlkPVwiSWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJiZy1zZWNvbmRhcnktMTAwIHJvdW5kZWQteGwgYm9yZGVyLXByaW1hcnkgYm9yZGVyLVsxcHhdXCJcbiAgICAgICAgICAgIFtjYXJkRGF0YUxpc3RdPVwiY2FyZERhdGEoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjYXJkIGxldC1pdGVtPlxuICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJjdXJyZW50RGF0YSA9IHZkY3Yub25JdGVtQ2xpY2soaXRlbSlcIiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3VycmVudERhdGEgPSB2ZGN2Lm9uSXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBjdXJzb3ItcG9pbnRlciB3LWZ1bGwgYmctc2Vjb25kYXJ5IHJvdW5kZWQteGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTMgcm91bmRlZC14bCByb3VuZGVkLXRyLW5vbmUgcm91bmRlZC1ici1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA/ICdiZy1wcmltYXJ5JyA6ICdiZy1zZWNvbmRhcnktMjAwJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHktMiBweC00IHctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLXktMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQtWyM0MDQwNDBdXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwaG9uZVwiIGNsYXNzPVwidGV4dC1bMTBweF0gZm9udC1saWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPkUtTWFpbDo8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJwaG9uZVwiIGNsYXNzPVwidGV4dC1zbVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5kYXRhLklkZW50aWZpZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJncmlkIGdhcC15LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZvcj1cInJvbGVcIiBjbGFzcz1cImZvbnQtbGlnaHRcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRhdGEuV29ya2Zsb3dDb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIltcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnL3dvcmtmbG93L3Rhc2staGlzdG9yeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5kYXRhLkNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJyb3V0ZXItbGluay1hY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVuZGVybGluZSB0ZXh0LVsjMDAwMEZGXSB0ZXh0LXhzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPnZpZXcgaGlzdG9yeTwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdhcC15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJyb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtWzEwcHhdIGZvbnQtbGlnaHQgdGV4dC1bIzQwNDA0MF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5OYW1lPC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwicm9sZVwiIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5kYXRhPy5OYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW5vcm1hbCB0ZXh0LXNtXCI+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGNpSXRlbSBvZiBpdGVtLmJvZHk7IHRyYWNrIGNpSXRlbS52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW11dGVkIGZvbnQtbGlnaHQgdGV4dC14c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+e3sgY2lJdGVtLnRpdGxlIH19Ojwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmxhY2tcIj57eyBjaUl0ZW0udmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9IC0tPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3ZlcmJlbi1sZWZ0LWNhcmQtZGF0YT5cbiAgICAgICAgPC92ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlldz5cblxuICAgICAgICA8dmVyYmVuLXJpZ2h0LWNhcmQtZGF0YS12aWV3PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcGFyZW50PlxuICAgICAgICAgICAgPCEtLSA8bGliLXVzZXItcmVxdWVzdC1mb3JtXG4gICAgICAgICAgICAgIFtjdXJyZW50RGF0YV09XCJjdXJyZW50RGF0YVwiXG4gICAgICAgICAgICAgIChzd2l0Y2hWaWV3KT1cInZkdi50b2dnbGVWaWV3KClcIlxuICAgICAgICAgICAgICAob25BcHByb3ZhbCk9XCJvbkFwcHJvdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9saWItdXNlci1yZXF1ZXN0LWZvcm0+IC0tPlxuICAgICAgICAgICAgPGFjdG9ycy1mb3JtXG4gICAgICAgICAgICAgIFtjdXJyZW50RGF0YV09XCJjdXJyZW50RGF0YVwiXG4gICAgICAgICAgICAgIChzd2l0Y2hWaWV3KT1cInZkdi50b2dnbGVWaWV3KClcIlxuICAgICAgICAgICAgICAob25TYXZlKT1cIm9uU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2FjdG9ycy1mb3JtPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdmVyYmVuLXJpZ2h0LWNhcmQtZGF0YS12aWV3PlxuXG4gICAgICAgIDx2ZXJiZW4tY2FyZC1kYXRhLXZpZXctZm9vdGVyIGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnZmxleCBnYXAtMiBpdGVtcy1jZW50ZXInOiB0cnVlLFxuICAgICAgICAgICAgICAnanVzdGlmeS1lbmQnOiB0cnVlXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8IS0tIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiF2ZGN2Lmhhc0N1cnJlbnRJdGVtKClcIlxuICAgICAgICAgICAgICBbZm9udFdlaWdodF09XCInYm9sZCdcIlxuICAgICAgICAgICAgICBbYmdDb2xvcl09XCInIzhFOEQ4NydcIlxuICAgICAgICAgICAgICBbYm9yZGVyUmFkaXVzXT1cIic0cHgnXCJcbiAgICAgICAgICAgICAgW3RleHRDb2xvcl09XCInI2ZmZidcIlxuICAgICAgICAgICAgICBbcGRdPVwiJzkuNzlweCAzNy4yOHB4J1wiXG4gICAgICAgICAgICAgIFt0ZXh0XT1cIidEZWxldGUnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvdmVyYmVuYS1idXR0b24+IC0tPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXgge3tcbiAgICAgICAgICAgICAgICB2ZGN2Lmhhc0N1cnJlbnRJdGVtKCkgPyAnZmxleC0xJyA6ICcnXG4gICAgICAgICAgICAgIH19IGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBnYXAtNVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGFnaW5hdG9yLXRleHRcIlxuICAgICAgICAgICAgICAgID57eyBjYXJkRGF0YSgpLmxlbmd0aCB9fSByZWNvcmRzIGxvYWRlZDwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibG9hZE1vcmUoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJsb2FkLW1vcmUgdmlldy1saW5rcyB0ZXh0LVsjMzQ3OUU5XSB1bmRlcmxpbmVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgTG9hZCBtb3JlXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdmVyYmVuLWNhcmQtZGF0YS12aWV3LWZvb3Rlcj5cbiAgICAgIDwvdmVyYmVuLWNhcmQtZGF0YS12aWV3PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY29sdW1uLWNvbnRlbnQ+XG4gICAgICA8bGliLWRhdGEtY29sdW1uc1xuICAgICAgICBbY29sdW1uc109XCJjb25maWcuY29sdW1uc1wiXG4gICAgICAgIChjb2x1bW5zVXBkYXRlZCk9XCJvbkNvbHVtbnNVcGRhdGVkKCRldmVudClcIlxuICAgICAgPjwvbGliLWRhdGEtY29sdW1ucz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGZpbHRlci1jb250ZW50PlxuICAgICAgPHZlcmJlbi10YWJsZS1maWx0ZXJcbiAgICAgICAgW2JvcmRlcl09XCInMXB4IHNvbGlkIHJnYmEoMjEyLCAxNjAsIDcsIDEpJ1wiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgICAgICBib3hTaGFkb3c9XCIycHggMnB4IDJweCAwcHggc2lsdmVyXCJcbiAgICAgICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICAgICAgd2lkdGg9XCI0MjBweFwiXG4gICAgICAgIHRleHRDb2xvcj1cImJsYWNrXCJcbiAgICAgICAgcGQ9XCIxcmVtXCJcbiAgICAgICAgcHJpbWFyeUNvbG9yPVwiI0ZGRTY4MVwiXG4gICAgICAgIHNlY29uZGFyeUNvbG9yPVwiIzM0NzlFOVwiXG4gICAgICAgIHRlcnRpYXJ5Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgICAgW2ZpbHRlck9wdGlvbnNdPVwiZmlsdGVyQXJyYXlcIlxuICAgICAgICBbbWF4RmlsdGVyTGVuZ3RoXT1cIjNcIlxuICAgICAgPjwvdmVyYmVuLXRhYmxlLWZpbHRlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHNvcnQtY29udGVudD5cbiAgICAgIDxsaWItZGF0YS1zb3J0XG4gICAgICAgIFtjb2x1bW5zXT1cImNvbmZpZy5jb2x1bW5zXCJcbiAgICAgICAgW2RhdGFdPVwiZGF0YSgpXCJcbiAgICAgICAgKHNvcnRBcHBsaWVkKT1cIm9uU29ydFVwZGF0ZWQoJGV2ZW50KVwiXG4gICAgICA+PC9saWItZGF0YS1zb3J0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgZXhwb3J0LWNvbnRlbnQ+XG4gICAgICA8bGliLWRhdGEteHBvcnRcbiAgICAgICAgW2NvbHVtbnNdPVwiY29uZmlnLmNvbHVtbnNcIlxuICAgICAgICBbZGF0YV09XCJkYXRhKClcIlxuICAgICAgICBbZGF0YVF1ZXJ5RnVuY3Rpb25dPVwibG9hZERhdGFcIlxuICAgICAgPlxuICAgICAgPC9saWItZGF0YS14cG9ydD5cbiAgICA8L2Rpdj5cbiAgPC92ZXJiZW4tZGF0YS12aWV3PlxuXG4gIDxkaXYgKm5nSWY9XCJ2ZHYuaXNUYWJsZVZpZXdcIiBjbGFzcz1cImZsZXggZ2FwLTIganVzdGlmeS1lbmRcIj5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWxvZy1idXR0b24tY29udGFpbmVyIGZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgW2ZvbnRXZWlnaHRdPVwiJ2JvbGQnXCJcbiAgICAgICAgW2JnQ29sb3JdPVwiJyM4RThEODcnXCJcbiAgICAgICAgW2JvcmRlclJhZGl1c109XCInNHB4J1wiXG4gICAgICAgIFt0ZXh0Q29sb3JdPVwiJyNmZmYnXCJcbiAgICAgICAgW3BkXT1cIic5Ljc5cHggMzcuMjhweCdcIlxuICAgICAgICBbdGV4dF09XCInRGVsZXRlJ1wiXG4gICAgICA+XG4gICAgICA8L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDwvZGl2PiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXIgZ2FwLTVcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwicGFnaW5hdG9yLXRleHRcIj57eyBjYXJkRGF0YSgpLmxlbmd0aCB9fSByZWNvcmRzIGxvYWRlZDwvc3Bhbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cImxvYWRNb3JlKClcIlxuICAgICAgICBjbGFzcz1cImxvYWQtbW9yZSB2aWV3LWxpbmtzIHRleHQtWyMzNDc5RTldIHVuZGVybGluZVwiXG4gICAgICA+XG4gICAgICAgIExvYWQgbW9yZVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0b3JzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvYWN0b3JzL2FjdG9ycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL2FjdG9ycy9hY3RvcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBUyxXQUFXLEVBQUUsTUFBTSxFQUFPLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFrQixNQUFNLG1DQUFtQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQVEzQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxxQkFBNEI7SUF1QnJEO0lBQ0E7SUFDQTtJQXhCVixNQUFNLEdBQTBCO1FBQzlCLFVBQVUsRUFBRSxFQUFFLEVBQUUsd0JBQXdCO1FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsbUNBQW1DO1FBQ3JELGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQixRQUFRLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUk7WUFDMUIsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUU7Z0JBQ0osRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNwQyw0Q0FBNEM7YUFD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QWU7NEZBQWYsZUFBZSx5RUNsQjVCLGt6V0F5VUE7OzRGRHZUYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXJkRGF0YSwgRm9ybUdyb3VwQ29uZmlnIH0gZnJvbSAndmVyYmVuLW5nLXVpJztcbmltcG9ydCB7IEFjdG9yLCBPYmplY3RTdGF0ZSwgU3RhdHVzLCBUYWcgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZURhdGFWaWV3Q29tcG9uZW50LCBEYXRhVmlld0NvbmZpZyB9IGZyb20gJ3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL3NoYXJlZCc7XG5pbXBvcnQgeyBjb2x1bW5zIH0gZnJvbSAnLi9hY3RvcnMuY29sdW1ucyc7XG5pbXBvcnQgeyBBY3RvckZhY2FkZSB9IGZyb20gJy4vYWN0b3JzLmZhY2FkZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hY3RvcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0b3JzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FjdG9ycy5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQWN0b3JzQ29tcG9uZW50IGV4dGVuZHMgQmFzZURhdGFWaWV3Q29tcG9uZW50PEFjdG9yPiB7XG4gIGNvbmZpZzogRGF0YVZpZXdDb25maWc8QWN0b3I+ID0ge1xuICAgIGRhdGFTb3VyY2U6IFtdLCAvLyBQb3B1bGF0ZSBmcm9tIHNlcnZpY2VcbiAgICBjb2x1bW5zOiBjb2x1bW5zLCAvLyBZb3VyIGV4aXN0aW5nIGNvbHVtbiBkZWZpbml0aW9uc1xuICAgIGNhcmREYXRhTWFwcGVyOiAoYWN0b3IpID0+ICh7XG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICB0aXRsZTogYWN0b3IuVGFnc1swXT8uTmFtZSxcbiAgICAgIGRhdGE6IGFjdG9yLFxuICAgICAgYm9keTogW1xuICAgICAgICB7IHRpdGxlOiAnTmFtZScsIHZhbHVlOiBhY3Rvci5OYW1lIH0sXG4gICAgICAgIC8vIHsgdGl0bGU6ICdTdGF0dXMnLCB2YWx1ZTogYWN0b3IuU3RhdHVzIH0sXG4gICAgICBdLFxuICAgICAgY2hpbGRyZW46IFtdLFxuICAgIH0pLFxuICAgIG9uRGV0YWlsVmlldzogKGFjdG9yKSA9PiB7XG4gICAgICAvLyBDdXN0b20gZGV0YWlsIHZpZXcgbG9naWNcbiAgICB9LFxuICB9O1xuXG4gIHRhZ3M6IFdyaXRhYmxlU2lnbmFsPFRhZ1tdPiA9IHNpZ25hbChbXSk7XG4gIGZvcm1Hcm91cENvbmZpZzogV3JpdGFibGVTaWduYWw8Rm9ybUdyb3VwQ29uZmlnPGFueT4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGZhY2FkZTogQWN0b3JGYWNhZGUsXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMubG9hZERhdGEgPSB0aGlzLmxvYWREYXRhLmJpbmQodGhpcyk7XG5cbiAgICB0aGlzLmZvcm1Hcm91cENvbmZpZyA9IHNpZ25hbCh7XG4gICAgICBjb250cm9sczoge1xuICAgICAgICBOYW1lOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIElkZW50aWZpZXI6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgVGFnczogdGhpcy5mYi5jb250cm9sKFtdLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgICBBY3RvclRhZ3M6IHRoaXMuZmIuY29udHJvbChbXSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgU3RhdHVzOiB0aGlzLmZiLmNvbnRyb2woU3RhdHVzLkFjdGl2ZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIH0sXG4gICAgICAvLyB2YWxpZGF0b3JPck9wdHM6IG51bGwsXG4gICAgICAvLyBhc3luY1ZhbGlkYXRvcjogbnVsbCxcbiAgICB9KTtcblxuICAgIHRoaXMuZmFjYWRlLmdldFJlcXVlc3RzJCgpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5kYXRhLnNldChkYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmFjYWRlLmdldFRhZ3MkKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnRhZ3Muc2V0KGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbG9hZEluaXRpYWxEYXRhKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmZhY2FkZS5yZXNldFBhZ2luYXRpb24oKTtcbiAgICAgIHRoaXMuZmFjYWRlLmxvYWRSZXF1ZXN0cygpO1xuICAgICAgdGhpcy5mYWNhZGUubG9hZFRhZ3MoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSGFuZGxlIGVycm9yXG4gICAgfVxuICB9XG5cbiAgLy8gZ2VuZXJhdGVGb3JtR3JvdXAoZGF0YT86IFBhcnRpYWw8QWN0b3I+KSB7XG4gIC8vICAgY29uc29sZS5sb2coZGF0YSk7XG4gIC8vICAgY29uc3QgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAvLyAgICAgTmFtZTogbmV3IEZvcm1Db250cm9sKGRhdGE/Lk5hbWUgPz8gJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gIC8vICAgICBJZGVudGlmaWVyOiBuZXcgRm9ybUNvbnRyb2woZGF0YT8uSWRlbnRpZmllciA/PyAnJywgW1xuICAvLyAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAvLyAgICAgXSksXG4gIC8vICAgICBUYWdzOiBuZXcgRm9ybUNvbnRyb2woZGF0YT8uVGFncyA/PyBbXSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgLy8gICB9KTtcbiAgLy8gICAvLyBjb25zb2xlLmxvZyhmb3JtLnZhbHVlKTtcbiAgLy8gICByZXR1cm4gZm9ybTtcbiAgLy8gfVxuXG4gIC8vIGdldEZvcm1Db250cm9sKGluZGV4OiBudW1iZXIsIGZpZWxkOiBzdHJpbmcpIHtcbiAgLy8gICBjb25zdCBjb250cm9sID0gdGhpcy5lZGl0Rm9ybXMuZ2V0KGluZGV4KT8uZ2V0KGZpZWxkKSBhcyBGb3JtQ29udHJvbDxhbnk+O1xuICAvLyAgIGNvbnNvbGUubG9nKGNvbnRyb2wpO1xuICAvLyAgIHJldHVybiBjb250cm9sO1xuICAvLyB9XG5cbiAgLy8gaXNSb3dWYWxpZChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZWRpdEZvcm1zLmdldChpbmRleCk/LnZhbGlkIHx8IGZhbHNlO1xuICAvLyB9XG5cbiAgcHJvdGVjdGVkIGdldENhcmREYXRhQnlJZGVudGlmaWVyKGNvZGU6IHN0cmluZyk6IENhcmREYXRhIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jYXJkRGF0YSgpPy5maW5kKCh7IGRhdGEgfSkgPT4gZGF0YS5kYXRhLkNvZGUgPT09IGNvZGUpO1xuICB9XG5cbiAgYXN5bmMgbG9hZE1vcmUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZmFjYWRlLmxvYWRNb3JlKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIEhhbmRsZSBlcnJvclxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uU2F2ZShkYXRhOiBQYXJ0aWFsPEFjdG9yPikge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAuLi50aGlzLmN1cnJlbnREYXRhPy5kYXRhLFxuICAgICAgLi4uZGF0YSxcbiAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuQ2hhbmdlZCxcbiAgICB9IGFzIEFjdG9yO1xuICAgIGF3YWl0IHRoaXMuZmFjYWRlLmFkZFJlcXVlc3QocGF5bG9hZCk7XG4gIH1cblxuICBoYW5kbGVTZWFyY2goZXZlbnQ6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuZmFjYWRlLnNlYXJjaChldmVudC52YWx1ZSk7XG4gIH1cblxuICBoYW5kbGVGZXRjaGVkRXhwb3J0KHsgc2tpcCwgbGltaXQgfTogYW55KSB7XG4gICAgdGhpcy5mYWNhZGUubG9hZERhdGEoc2tpcCwgbGltaXQpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXhwb3J0KGRhdGEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbG9hZERhdGEocmFuZ2U6IHsgc2tpcDogbnVtYmVyOyBsaW1pdDogbnVtYmVyIH0pIHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5mYWNhZGUubG9hZERhdGEocmFuZ2Uuc2tpcCwgcmFuZ2UubGltaXQpO1xuICAgIHJldHVybiBkYXRhID8/IFtdO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3BhY2UteS04XCI+XG4gIDx2ZXJiZW4tZGF0YS12aWV3XG4gICAgI3ZkdlxuICAgIFt2aWV3U3RhdGVdPVwie1xuICAgICAgaXNTZWFyY2g6IHRydWUsXG4gICAgICBpc0NvbHVtbjogdHJ1ZSxcbiAgICAgIGlzRmlsdGVyOiB0cnVlLFxuICAgICAgaXNTb3J0OiB0cnVlLFxuICAgICAgaXNFeHBvcnQ6IHRydWUsXG4gICAgICBpc1NlbGVjdDogdHJ1ZSxcbiAgICAgIGlzQ3JlYXRlOiBmYWxzZSxcbiAgICAgIGlzVG9nZ2xlOiB0cnVlLFxuICAgIH1cIlxuICAgIFtidXR0b25DbGFzc109XCInbXktY3VzdG9tLWJ1dHRvbi1jbGFzcydcIlxuICAgIFtpY29uQ2xhc3NdPVwiJ215LWljb24tY2xhc3MnXCJcbiAgICBbYWN0aXZlSWNvbkNsYXNzXT1cIidteS1hY3RpdmUtaWNvbi1jbGFzcydcIlxuICAgIFtzZWxlY3RlZENvbHVtbkNvdW50XT1cInNlbGVjdGVkQ29sdW1uQ291bnRcIlxuICAgIFtzZWxlY3RlZFNvcnRDb3VudF09XCJzZWxlY3RlZFNvcnRDb3VudFwiXG4gICAgW3NlbGVjdGVkRmlsdGVyVGFibGVDb3VudF09XCJzZWxlY3RlZEZpbHRlclRhYmxlQ291bnRcIlxuICAgICh2aWV3Q2hhbmdlKT1cIm9uVmlld0NoYW5nZSgkZXZlbnQpXCJcbiAgICAoc3RhdGVDaGFuZ2UpPVwib25TdGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAob25TZWFyY2hDaGFuZ2UpPVwiaGFuZGxlU2VhcmNoKCRldmVudClcIlxuICA+XG4gICAgPGRpdiB0YWJsZS1jb250ZW50PlxuICAgICAgPGxpYi1kYXRhLXRhYmxlXG4gICAgICAgIFtkYXRhXT1cImRhdGEoKVwiXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbmZpZy5jb2x1bW5zXCJcbiAgICAgICAgW3N0eWxlQ29uZmlnXT1cInN0eWxlc1wiXG4gICAgICAgIFtmb3JtR3JvdXBDb25maWddPVwiZm9ybUdyb3VwQ29uZmlnKClcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAocm93U2F2ZSk9XCJvblNhdmUoJGV2ZW50LmRhdGEpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBsaWJDb2x1bW49XCJkYXRlXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU+XG4gICAgICAgICAgICB7eyB2YWx1ZSB8IGRhdGUgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIGxpYkNvbHVtbj1cIm5hbWVcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGxFZGl0IGxldC1jb250cm9sPVwiY29udHJvbFwiPlxuICAgICAgICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgICAgICAgbmFtZT1cIk5hbWVcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgTmFtZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbGliQ29sdW1uPVwidGFnc1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2VsbEVkaXQgbGV0LWNvbnRyb2w9XCJjb250cm9sXCI+XG4gICAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGFnc1wiXG4gICAgICAgICAgICAgIFtvcHRpb25zXT1cInRhZ3MoKVwiXG4gICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICAgIGlkPVwidGFnc1wiXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbGliQ29sdW1uPVwiYWN0aW9uc1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgI2NlbGxcbiAgICAgICAgICAgIGxldC12YWx1ZVxuICAgICAgICAgICAgbGV0LWlzRWRpdGluZz1cImlzRWRpdGluZ1wiXG4gICAgICAgICAgICBsZXQtdG9nZ2xlUm93RWRpdD1cInRvZ2dsZVJvd0VkaXRcIlxuICAgICAgICAgICAgbGV0LWRlbGV0ZVJvdz1cImRlbGV0ZVJvd1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTZcIj5cbiAgICAgICAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUm93RWRpdCgpXCJcbiAgICAgICAgICAgICAgICBpY29uPVwiZWRpdFwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgPjwvdmVyYmVuLXN2Zz5cblxuICAgICAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgICAgIGljb249XCJkZWxldGVcIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVJvdygpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICNjZWxsRWRpdFxuICAgICAgICAgICAgbGV0LXZhbHVlXG4gICAgICAgICAgICBsZXQtZGVsZXRlUm93XG4gICAgICAgICAgICBsZXQtaXNFZGl0aW5nPVwiaXNFZGl0aW5nXCJcbiAgICAgICAgICAgIGxldC10b2dnbGVSb3dFZGl0PVwidG9nZ2xlUm93RWRpdFwiXG4gICAgICAgICAgICBsZXQtcm93PVwicm93XCJcbiAgICAgICAgICAgIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtNlwiPlxuICAgICAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSb3dFZGl0KClcIlxuICAgICAgICAgICAgICAgIGljb249XCJ0aWNrXCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuXG4gICAgICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUm93RWRpdCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9saWItZGF0YS10YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNhcmQtY29udGVudD5cbiAgICAgIDx2ZXJiZW4tY2FyZC1kYXRhLXZpZXdcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiMTJweFwiXG4gICAgICAgIChsb2FkTW9yZUNsaWNrKT1cImxvYWRNb3JlKClcIlxuICAgICAgICAjdmRjdlxuICAgICAgICBkYXRhSWQ9XCJJZFwiXG4gICAgICAgIGJvcmRlcj1cIjVweFwiXG4gICAgICAgIFtjYXJkRGF0YUxpc3RdPVwiY2FyZERhdGEoKVwiXG4gICAgICAgIHJiZ0NvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UtYWx0KVwiXG4gICAgICAgIG1nPVwiMjBweFwiXG4gICAgICA+XG4gICAgICAgIDx2ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlldyBjbGFzcz1cInNwYWNlLXktN1wiPlxuICAgICAgICAgIDx2ZXJiZW4tbGVmdC1jYXJkLWRhdGFcbiAgICAgICAgICAgICN2bGNkXG4gICAgICAgICAgICBbcGFyZW50XT1cInZkY3ZcIlxuICAgICAgICAgICAgZGF0YUlkPVwiSWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJiZy1zZWNvbmRhcnktMTAwIHJvdW5kZWQteGwgYm9yZGVyLXByaW1hcnkgYm9yZGVyLVsxcHhdXCJcbiAgICAgICAgICAgIFtjYXJkRGF0YUxpc3RdPVwiY2FyZERhdGEoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjYXJkIGxldC1pdGVtPlxuICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJjdXJyZW50RGF0YSA9IHZkY3Yub25JdGVtQ2xpY2soaXRlbSlcIiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3VycmVudERhdGEgPSB2ZGN2Lm9uSXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBjdXJzb3ItcG9pbnRlciB3LWZ1bGwgYmctc2Vjb25kYXJ5IHJvdW5kZWQteGxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTMgcm91bmRlZC14bCByb3VuZGVkLXRyLW5vbmUgcm91bmRlZC1ici1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA/ICdiZy1wcmltYXJ5JyA6ICdiZy1zZWNvbmRhcnktMjAwJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHktMiBweC00IHctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLXktMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQtW3ZhcigtLXZibi1jb2xvci1vbi1wcmltYXJ5KV1cIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBob25lXCIgY2xhc3M9XCJ0ZXh0LVsxMHB4XSBmb250LWxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+RS1NYWlsOjwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cInBob25lXCIgY2xhc3M9XCJ0ZXh0LXNtXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRhdGEuSWRlbnRpZmllclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImdyaWQgZ2FwLXktMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZm9yPVwicm9sZVwiIGNsYXNzPVwiZm9udC1saWdodFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZGF0YS5Xb3JrZmxvd0NvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvd29ya2Zsb3cvdGFzay1oaXN0b3J5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRhdGEuQ29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cInJvdXRlci1saW5rLWFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidW5kZXJsaW5lIHRleHQtW3ZhcigtLXZibi1jb2xvci1ib3JkZXItZm9jdXMpXSB0ZXh0LXhzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPnZpZXcgaGlzdG9yeTwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdhcC15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJyb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtWzEwcHhdIGZvbnQtbGlnaHQgdGV4dC1bdmFyKC0tdmJuLWNvbG9yLW9uLXByaW1hcnkpXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPk5hbWU8L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJyb2xlXCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmRhdGE/Lk5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbm9ybWFsIHRleHQtc21cIj57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY2lJdGVtIG9mIGl0ZW0uYm9keTsgdHJhY2sgY2lJdGVtLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWQgZm9udC1saWdodCB0ZXh0LXhzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyBjaUl0ZW0udGl0bGUgfX06PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ibGFja1wiPnt7IGNpSXRlbS52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH0gLS0+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdmVyYmVuLWxlZnQtY2FyZC1kYXRhPlxuICAgICAgICA8L3ZlcmJlbi1sZWZ0LWNhcmQtZGF0YS12aWV3PlxuXG4gICAgICAgIDx2ZXJiZW4tcmlnaHQtY2FyZC1kYXRhLXZpZXc+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwYXJlbnQ+XG4gICAgICAgICAgICA8IS0tIDxsaWItdXNlci1yZXF1ZXN0LWZvcm1cbiAgICAgICAgICAgICAgW2N1cnJlbnREYXRhXT1cImN1cnJlbnREYXRhXCJcbiAgICAgICAgICAgICAgKHN3aXRjaFZpZXcpPVwidmR2LnRvZ2dsZVZpZXcoKVwiXG4gICAgICAgICAgICAgIChvbkFwcHJvdmFsKT1cIm9uQXBwcm92ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2xpYi11c2VyLXJlcXVlc3QtZm9ybT4gLS0+XG4gICAgICAgICAgICA8YWN0b3JzLWZvcm1cbiAgICAgICAgICAgICAgW2N1cnJlbnREYXRhXT1cImN1cnJlbnREYXRhXCJcbiAgICAgICAgICAgICAgKHN3aXRjaFZpZXcpPVwidmR2LnRvZ2dsZVZpZXcoKVwiXG4gICAgICAgICAgICAgIChvblNhdmUpPVwib25TYXZlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvYWN0b3JzLWZvcm0+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC92ZXJiZW4tcmlnaHQtY2FyZC1kYXRhLXZpZXc+XG5cbiAgICAgICAgPHZlcmJlbi1jYXJkLWRhdGEtdmlldy1mb290ZXIgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdmbGV4IGdhcC0yIGl0ZW1zLWNlbnRlcic6IHRydWUsXG4gICAgICAgICAgICAgICdqdXN0aWZ5LWVuZCc6IHRydWVcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDwhLS0gPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXZkY3YuaGFzQ3VycmVudEl0ZW0oKVwiXG4gICAgICAgICAgICAgIFtmb250V2VpZ2h0XT1cIidib2xkJ1wiXG4gICAgICAgICAgICAgIFtiZ0NvbG9yXT1cIid2YXIoLS12Ym4tY29sb3ItdGV4dC1tdXRlZCknXCJcbiAgICAgICAgICAgICAgW2JvcmRlclJhZGl1c109XCInNHB4J1wiXG4gICAgICAgICAgICAgIFt0ZXh0Q29sb3JdPVwiJ3ZhcigtLXZibi1jb2xvci1zdXJmYWNlKSdcIlxuICAgICAgICAgICAgICBbcGRdPVwiJzkuNzlweCAzNy4yOHB4J1wiXG4gICAgICAgICAgICAgIFt0ZXh0XT1cIidEZWxldGUnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvdmVyYmVuYS1idXR0b24+IC0tPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXgge3tcbiAgICAgICAgICAgICAgICB2ZGN2Lmhhc0N1cnJlbnRJdGVtKCkgPyAnZmxleC0xJyA6ICcnXG4gICAgICAgICAgICAgIH19IGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBnYXAtNVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGFnaW5hdG9yLXRleHRcIlxuICAgICAgICAgICAgICAgID57eyBjYXJkRGF0YSgpLmxlbmd0aCB9fSByZWNvcmRzIGxvYWRlZDwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibG9hZE1vcmUoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJsb2FkLW1vcmUgdmlldy1saW5rcyB0ZXh0LVt2YXIoLS12Ym4tY29sb3ItYm9yZGVyLWZvY3VzKV0gdW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIExvYWQgbW9yZVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3ZlcmJlbi1jYXJkLWRhdGEtdmlldy1mb290ZXI+XG4gICAgICA8L3ZlcmJlbi1jYXJkLWRhdGEtdmlldz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNvbHVtbi1jb250ZW50PlxuICAgICAgPGxpYi1kYXRhLWNvbHVtbnNcbiAgICAgICAgW2NvbHVtbnNdPVwiY29uZmlnLmNvbHVtbnNcIlxuICAgICAgICAoY29sdW1uc1VwZGF0ZWQpPVwib25Db2x1bW5zVXBkYXRlZCgkZXZlbnQpXCJcbiAgICAgID48L2xpYi1kYXRhLWNvbHVtbnM+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBmaWx0ZXItY29udGVudD5cbiAgICAgIDx2ZXJiZW4tdGFibGUtZmlsdGVyXG4gICAgICAgIFtib3JkZXJdPVwiJzFweCBzb2xpZCB2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSknXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICAgIGJveFNoYWRvdz1cIjJweCAycHggMnB4IDBweCBzaWx2ZXJcIlxuICAgICAgICBiZ0NvbG9yPVwid2hpdGVcIlxuICAgICAgICB3aWR0aD1cIjQyMHB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgICBwZD1cIjFyZW1cIlxuICAgICAgICBwcmltYXJ5Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSlcIlxuICAgICAgICBzZWNvbmRhcnlDb2xvcj1cInZhcigtLXZibi1jb2xvci1ib3JkZXItZm9jdXMpXCJcbiAgICAgICAgdGVydGlhcnlDb2xvcj1cInZhcigtLXZibi1jb2xvci1vbi1wcmltYXJ5KVwiXG4gICAgICAgIFtmaWx0ZXJPcHRpb25zXT1cImZpbHRlckFycmF5XCJcbiAgICAgICAgW21heEZpbHRlckxlbmd0aF09XCIzXCJcbiAgICAgID48L3ZlcmJlbi10YWJsZS1maWx0ZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzb3J0LWNvbnRlbnQ+XG4gICAgICA8bGliLWRhdGEtc29ydFxuICAgICAgICBbY29sdW1uc109XCJjb25maWcuY29sdW1uc1wiXG4gICAgICAgIFtkYXRhXT1cImRhdGEoKVwiXG4gICAgICAgIChzb3J0QXBwbGllZCk9XCJvblNvcnRVcGRhdGVkKCRldmVudClcIlxuICAgICAgPjwvbGliLWRhdGEtc29ydD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGV4cG9ydC1jb250ZW50PlxuICAgICAgPGxpYi1kYXRhLXhwb3J0XG4gICAgICAgIFtjb2x1bW5zXT1cImNvbmZpZy5jb2x1bW5zXCJcbiAgICAgICAgW2RhdGFdPVwiZGF0YSgpXCJcbiAgICAgICAgW2RhdGFRdWVyeUZ1bmN0aW9uXT1cImxvYWREYXRhXCJcbiAgICAgID5cbiAgICAgIDwvbGliLWRhdGEteHBvcnQ+XG4gICAgPC9kaXY+XG4gIDwvdmVyYmVuLWRhdGEtdmlldz5cblxuICA8ZGl2ICpuZ0lmPVwidmR2LmlzVGFibGVWaWV3XCIgY2xhc3M9XCJmbGV4IGdhcC0yIGp1c3RpZnktZW5kXCI+XG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwibWVzc2FnZS1sb2ctYnV0dG9uLWNvbnRhaW5lciBmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgIFtmb250V2VpZ2h0XT1cIidib2xkJ1wiXG4gICAgICAgIFtiZ0NvbG9yXT1cIid2YXIoLS12Ym4tY29sb3ItdGV4dC1tdXRlZCknXCJcbiAgICAgICAgW2JvcmRlclJhZGl1c109XCInNHB4J1wiXG4gICAgICAgIFt0ZXh0Q29sb3JdPVwiJ3ZhcigtLXZibi1jb2xvci1zdXJmYWNlKSdcIlxuICAgICAgICBbcGRdPVwiJzkuNzlweCAzNy4yOHB4J1wiXG4gICAgICAgIFt0ZXh0XT1cIidEZWxldGUnXCJcbiAgICAgID5cbiAgICAgIDwvdmVyYmVuYS1idXR0b24+XG4gICAgPC9kaXY+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBnYXAtNVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJwYWdpbmF0b3ItdGV4dFwiPnt7IGNhcmREYXRhKCkubGVuZ3RoIH19IHJlY29yZHMgbG9hZGVkPC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwibG9hZE1vcmUoKVwiXG4gICAgICAgIGNsYXNzPVwibG9hZC1tb3JlIHZpZXctbGlua3MgdGV4dC1bdmFyKC0tdmJuLWNvbG9yLWJvcmRlci1mb2N1cyldIHVuZGVybGluZVwiXG4gICAgICA+XG4gICAgICAgIExvYWQgbW9yZVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -241,10 +241,10 @@ export class ActorFacade {
|
|
|
241
241
|
throw error;
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
245
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
244
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorFacade, deps: [{ token: i1.ActorService }, { token: i2.ActorState }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
245
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorFacade, providedIn: 'root' });
|
|
246
246
|
}
|
|
247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorFacade, decorators: [{
|
|
248
248
|
type: Injectable,
|
|
249
249
|
args: [{
|
|
250
250
|
providedIn: 'root',
|
|
@@ -62,12 +62,12 @@ export class ActorsFormComponent {
|
|
|
62
62
|
this.onSave.emit(this.form.value);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
66
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
65
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorsFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ActorFacade }], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ActorsFormComponent, selector: "actors-form", inputs: { currentData: "currentData" }, outputs: { onSave: "onSave", switchView: "switchView" }, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\">\n <verbena-input name=\"Name\" label=\"Name\" formControlName=\"Name\" placeHolder=\"Enter Name\" />\n <verbena-input name=\"Identifier\" label=\"Identifier\" formControlName=\"Identifier\" placeHolder=\"Actor Identifier\" />\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down selectKey=\"Code\" label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\"\n placeholder=\"Select\" [options]=\"tags()\" optionLabel=\"Name\" id=\"tags\" formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"actorTags\">Actor Tags</label>\n\n <verben-drop-down selectKey=\"Code\" label=\"Actor Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\"\n placeholder=\"Select\" [options]=\"actorTags()\" optionLabel=\"Name\" id=\"actorTags\" formControlName=\"ActorTags\"\n class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down label=\"Status\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Select\"\n [options]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"flex justify-between gap-4 my-2\">\n <verbena-button (click)=\"switchView.emit()\" text=\"Switch To Table\" styleType=\"ylw-outline\"\n class=\"ml-auto\"></verbena-button>\n <verbena-button type=\"submit\" text=\"Save\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\" pd=\"10px 20px\"\n width=\"114px\" height=\"39px\" [disable]=\"form.invalid\"></verbena-button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i3.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i3.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }] });
|
|
67
67
|
}
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorsFormComponent, decorators: [{
|
|
69
69
|
type: Component,
|
|
70
|
-
args: [{ selector: 'actors-form', template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\">\n <verbena-input name=\"Name\" label=\"Name\" formControlName=\"Name\" placeHolder=\"Enter Name\" />\n <verbena-input name=\"Identifier\" label=\"Identifier\" formControlName=\"Identifier\" placeHolder=\"Actor Identifier\" />\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down selectKey=\"Code\" label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\"\n placeholder=\"Select\" [options]=\"tags()\" optionLabel=\"Name\" id=\"tags\" formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"actorTags\">Actor Tags</label>\n\n <verben-drop-down selectKey=\"Code\" label=\"Actor Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\"\n placeholder=\"Select\" [options]=\"actorTags()\" optionLabel=\"Name\" id=\"actorTags\" formControlName=\"ActorTags\"\n class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down label=\"Status\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Select\"\n [options]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"flex justify-between gap-4 my-2\">\n <verbena-button (click)=\"switchView.emit()\" text=\"Switch To Table\" styleType=\"ylw-outline\"\n class=\"ml-auto\"></verbena-button>\n <verbena-button type=\"submit\" text=\"Save\" bgColor=\"
|
|
70
|
+
args: [{ selector: 'actors-form', template: "<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\">\n <verbena-input name=\"Name\" label=\"Name\" formControlName=\"Name\" placeHolder=\"Enter Name\" />\n <verbena-input name=\"Identifier\" label=\"Identifier\" formControlName=\"Identifier\" placeHolder=\"Actor Identifier\" />\n\n <div class=\"space-y-1\">\n <label for=\"tags\">Tags</label>\n\n <verben-drop-down selectKey=\"Code\" label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\"\n placeholder=\"Select\" [options]=\"tags()\" optionLabel=\"Name\" id=\"tags\" formControlName=\"Tags\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"actorTags\">Actor Tags</label>\n\n <verben-drop-down selectKey=\"Code\" label=\"Actor Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\"\n placeholder=\"Select\" [options]=\"actorTags()\" optionLabel=\"Name\" id=\"actorTags\" formControlName=\"ActorTags\"\n class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down label=\"Status\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Select\"\n [options]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n </verben-drop-down>\n </div>\n\n <div class=\"flex justify-between gap-4 my-2\">\n <verbena-button (click)=\"switchView.emit()\" text=\"Switch To Table\" styleType=\"ylw-outline\"\n class=\"ml-auto\"></verbena-button>\n <verbena-button type=\"submit\" text=\"Save\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\" pd=\"10px 20px\"\n width=\"114px\" height=\"39px\" [disable]=\"form.invalid\"></verbena-button>\n </div>\n</form>\n" }]
|
|
71
71
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ActorFacade }], propDecorators: { onSave: [{
|
|
72
72
|
type: Output
|
|
73
73
|
}], switchView: [{
|
|
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
75
75
|
}], currentData: [{
|
|
76
76
|
type: Input
|
|
77
77
|
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0b3JzLmZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy9hY3RvcnMvYWN0b3JzLmZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy9hY3RvcnMvYWN0b3JzLmZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQVMsTUFBTSxFQUFPLE1BQU0sbUNBQW1DLENBQUM7Ozs7O0FBT3ZFLE1BQU0sT0FBTyxtQkFBbUI7SUFnQ1Y7SUFBeUI7SUEvQm5DLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztJQUM1QyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQUVyRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQXNCO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN0QyxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7Z0JBQzNCLFVBQVUs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biAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXJkRGF0YSB9IGZyb20gJ3ZlcmJlbi1uZy11aSc7XG5pbXBvcnQgeyBBY3RvciwgU3RhdHVzLCBUYWcgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgQWN0b3JGYWNhZGUgfSBmcm9tICcuL2FjdG9ycy5mYWNhZGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY3RvcnMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3RvcnMuZm9ybS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFjdG9yc0Zvcm1Db21wb25lbnQge1xuICBAT3V0cHV0KCkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxQYXJ0aWFsPEFjdG9yPj4oKTtcbiAgQE91dHB1dCgpIHN3aXRjaFZpZXcgPSBuZXcgRXZlbnRFbWl0dGVyPHVuZGVmaW5lZD4oKTtcblxuICBASW5wdXQoKVxuICBnZXQgY3VycmVudERhdGEoKTogQ2FyZERhdGEgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudERhdGE7XG4gIH1cbiAgc2V0IGN1cnJlbnREYXRhKHZhbHVlOiBDYXJkRGF0YSB8IG51bGwpIHtcbiAgICB0aGlzLl9jdXJyZW50RGF0YSA9IHZhbHVlO1xuICAgIGNvbnNvbGUubG9nKHZhbHVlPy5kYXRhLCBcIkZPUk0gREFUQVwiKTtcbiAgICBpZiAodmFsdWU/LmRhdGEpIHtcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgTmFtZTogdmFsdWUuZGF0YS5OYW1lIHx8ICcnLFxuICAgICAgICBJZGVudGlmaWVyOiB2YWx1ZS5kYXRhLklkZW50aWZpZXIgfHwgJycsXG4gICAgICAgIFRhZ3M6IHZhbHVlLmRhdGEuVGFncyB8fCBbXSxcbiAgICAgICAgQWN0b3JUYWdzOiB2YWx1ZS5kYXRhLkFjdG9yVGFncyB8fCBbXSxcbiAgICAgICAgU3RhdHVzOiB2YWx1ZS5kYXRhLlN0YXR1cyB8fCBTdGF0dXMuQWN0aXZlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2N1cnJlbnREYXRhOiBDYXJkRGF0YSB8IG51bGwgPSBudWxsO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgdGFnczogV3JpdGFibGVTaWduYWw8VGFnW10+ID0gc2lnbmFsKFtdKTtcbiAgYWN0b3JUYWdzOiBXcml0YWJsZVNpZ25hbDxUYWdbXT4gPSBzaWduYWwoW10pO1xuICBzdGF0dXNPcHRpb25zOiBTdGF0dXNbXSA9IE9iamVjdC52YWx1ZXMoU3RhdHVzKTtcblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGZhY2FkZTogQWN0b3JGYWNhZGUpIHtcbiAgICAvLyB0aGlzLmZhY2FkZS5nZXRXb3JrZmxvdyQoKS5zdWJzY3JpYmUoKHdvcmtmbG93cykgPT4ge1xuICAgIC8vICAgdGhpcy53b3JrZmxvd3MgPSB3b3JrZmxvd3M7XG4gICAgLy8gfSk7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBOYW1lOiBbJycsIHsgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdIH1dLFxuICAgICAgSWRlbnRpZmllcjogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICAgIFRhZ3M6IFtbXSwgeyB2YWxpZGF0b3JzOiBbXSB9XSxcbiAgICAgIEFjdG9yVGFnczogW1tdLCB7IHZhbGlkYXRvcnM6IFtdIH1dLFxuICAgICAgU3RhdHVzOiBbU3RhdHVzLkFjdGl2ZSwgeyB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfV0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmZhY2FkZS5sb2FkQWN0b3JUYWdzKCk7XG5cbiAgICB0aGlzLmZhY2FkZS5nZXRUYWdzJCgpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy50YWdzLnNldChkYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmFjYWRlLmdldEFjdG9yVGFncyQoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuYWN0b3JUYWdzLnNldChkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZVN1Ym1pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAvLyBFbWl0IHNhdmUgZXZlbnQgd2l0aCBmb3JtIHZhbHVlXG4gICAgICBjb25zb2xlLmxvZygnRm9ybSBzYXZlZDonLCB0aGlzLmZvcm0udmFsdWUpO1xuICAgICAgdGhpcy5vblNhdmUuZW1pdCh0aGlzLmZvcm0udmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHB4LTMgcGItMyByb3VuZGVkLXhsIGgtZnVsbCB3LWZ1bGwgcmVsYXRpdmUgc3BhY2UteS00XCJcbiAgKG5nU3VibWl0KT1cImhhbmRsZVN1Ym1pdCgpXCI+XG4gIDx2ZXJiZW5hLWlucHV0IG5hbWU9XCJOYW1lXCIgbGFiZWw9XCJOYW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwiTmFtZVwiIHBsYWNlSG9sZGVyPVwiRW50ZXIgTmFtZVwiIC8+XG4gIDx2ZXJiZW5hLWlucHV0IG5hbWU9XCJJZGVudGlmaWVyXCIgbGFiZWw9XCJJZGVudGlmaWVyXCIgZm9ybUNvbnRyb2xOYW1lPVwiSWRlbnRpZmllclwiIHBsYWNlSG9sZGVyPVwiQWN0b3IgSWRlbnRpZmllclwiIC8+XG5cbiAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgIDxsYWJlbCBmb3I9XCJ0YWdzXCI+VGFnczwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93biBzZWxlY3RLZXk9XCJDb2RlXCIgbGFiZWw9XCJUYWdzXCIgc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiIFttdWx0aXNlbGVjdF09XCJ0cnVlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0XCIgW29wdGlvbnNdPVwidGFncygpXCIgb3B0aW9uTGFiZWw9XCJOYW1lXCIgaWQ9XCJ0YWdzXCIgZm9ybUNvbnRyb2xOYW1lPVwiVGFnc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cImFjdG9yVGFnc1wiPkFjdG9yIFRhZ3M8L2xhYmVsPlxuXG4gICAgPHZlcmJlbi1kcm9wLWRvd24gc2VsZWN0S2V5PVwiQ29kZVwiIGxhYmVsPVwiQWN0b3IgVGFnc1wiIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIiB3aWR0aD1cIjEwMCVcIiBbbXVsdGlzZWxlY3RdPVwidHJ1ZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiIFtvcHRpb25zXT1cImFjdG9yVGFncygpXCIgb3B0aW9uTGFiZWw9XCJOYW1lXCIgaWQ9XCJhY3RvclRhZ3NcIiBmb3JtQ29udHJvbE5hbWU9XCJBY3RvclRhZ3NcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cbiAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICA8bGFiZWwgZm9yPVwic3RhdHVzXCI+U3RhdHVzPC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duIGxhYmVsPVwiU3RhdHVzXCIgc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0XCJcbiAgICAgIFtvcHRpb25zXT1cInN0YXR1c09wdGlvbnNcIiBpZD1cInN0YXR1c1wiIGZvcm1Db250cm9sTmFtZT1cIlN0YXR1c1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gZ2FwLTQgbXktMlwiPlxuICAgIDx2ZXJiZW5hLWJ1dHRvbiAoY2xpY2spPVwic3dpdGNoVmlldy5lbWl0KClcIiB0ZXh0PVwiU3dpdGNoIFRvIFRhYmxlXCIgc3R5bGVUeXBlPVwieWx3LW91dGxpbmVcIlxuICAgICAgY2xhc3M9XCJtbC1hdXRvXCI+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICA8dmVyYmVuYS1idXR0b24gdHlwZT1cInN1Ym1pdFwiIHRleHQ9XCJTYXZlXCIgYmdDb2xvcj1cInZhcigtLXZibi1jb2xvci1wcmltYXJ5KVwiIHRleHRDb2xvcj1cInZhcigtLXZibi1jb2xvci1vbi1wcmltYXJ5KVwiIGJvcmRlclJhZGl1cz1cIjEwcHhcIiBwZD1cIjEwcHggMjBweFwiXG4gICAgICB3aWR0aD1cIjExNHB4XCIgaGVpZ2h0PVwiMzlweFwiIFtkaXNhYmxlXT1cImZvcm0uaW52YWxpZFwiPjwvdmVyYmVuYS1idXR0b24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
@@ -6,11 +6,11 @@ import { RouterLink } from '@angular/router';
|
|
|
6
6
|
import { ActorsFormComponent } from './actors.form.component';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class ActorsModule {
|
|
9
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
10
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
11
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ActorsModule, declarations: [ActorsComponent, ActorsFormComponent], imports: [CommonModule, SharedModule, RouterLink], exports: [ActorsComponent] });
|
|
11
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorsModule, imports: [CommonModule, SharedModule] });
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorsModule, decorators: [{
|
|
14
14
|
type: NgModule,
|
|
15
15
|
args: [{
|
|
16
16
|
declarations: [ActorsComponent, ActorsFormComponent],
|
|
@@ -66,10 +66,10 @@ export class ActorService {
|
|
|
66
66
|
const url = `GetActorTags/${skip}/${limit}/${sortParam}/${sortOrder}`;
|
|
67
67
|
return this.httpService.get(url);
|
|
68
68
|
}
|
|
69
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
70
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
69
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorService, deps: [{ token: i1.HttpWebRequestService }, { token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
70
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorService, providedIn: 'root' });
|
|
71
71
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorService, decorators: [{
|
|
73
73
|
type: Injectable,
|
|
74
74
|
args: [{
|
|
75
75
|
providedIn: 'root',
|
|
@@ -88,10 +88,10 @@ export class ActorState {
|
|
|
88
88
|
const currentRequests = this.data$.getValue();
|
|
89
89
|
this.data$.next([...currentRequests, ...newRequests]);
|
|
90
90
|
}
|
|
91
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
92
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
91
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
92
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorState, providedIn: 'root' });
|
|
93
93
|
}
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ActorState, decorators: [{
|
|
95
95
|
type: Injectable,
|
|
96
96
|
args: [{
|
|
97
97
|
providedIn: 'root',
|
|
@@ -54,8 +54,8 @@ export class LabelEditorComponent {
|
|
|
54
54
|
onEscapePress() {
|
|
55
55
|
this.cancelEditing();
|
|
56
56
|
}
|
|
57
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
58
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
57
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LabelEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LabelEditorComponent, isStandalone: true, selector: "wf-label-editor", inputs: { label: "label", x: "x", y: "y", isConnection: "isConnection", isSwimlane: "isSwimlane" }, outputs: { labelChange: "labelChange", openDialog: "openDialog" }, host: { listeners: { "document:keydown.escape": "onEscapePress()" } }, viewQueries: [{ propertyName: "labelInput", first: true, predicate: ["labelInput"], descendants: true }], ngImport: i0, template: `
|
|
59
59
|
<div
|
|
60
60
|
class="label-container"
|
|
61
61
|
[class.editing]="isEditing"
|
|
@@ -87,9 +87,9 @@ export class LabelEditorComponent {
|
|
|
87
87
|
</span>
|
|
88
88
|
}
|
|
89
89
|
</div>
|
|
90
|
-
`, isInline: true, styles: [":host{display:block;width:100%;height:100%}.label-container{display:flex;align-items:center;justify-content:center;min-width:50px;z-index:1000}.label-container.editing{background:#fff;padding:2px;border-radius:4px;box-shadow:0 2px 4px #0000001a}.label-input{padding:2px 4px;border:1px solid #d36cff;border-radius:2px;font-size:12px;font-family:inherit;outline:none
|
|
90
|
+
`, isInline: true, styles: [":host{display:block;width:100%;height:100%}.label-container{display:flex;align-items:center;justify-content:center;min-width:50px;z-index:1000}.label-container.editing{background:#fff;padding:2px;border-radius:4px;box-shadow:0 2px 4px #0000001a}.label-input{padding:2px 4px;border:1px solid #d36cff;border-radius:2px;font-size:12px;font-family:inherit;outline:none;&.swimlane-input{font-size:14px;font-weight:500;min-width:150px}}.label-text{cursor:text;-webkit-user-select:none;user-select:none;font-size:12px;pointer-events:all;display:inline-block;min-width:20px;min-height:14px;position:relative}.connection-label{background:#fff;padding:2px 4px;border:1px solid #e5e7eb;border-radius:2px}.swimlane-text{font-size:14px;font-weight:500;color:#64748b}.swimlane-label{position:absolute;left:20px}.edit-icon{position:absolute;right:-14px;top:-14px;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
91
91
|
}
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LabelEditorComponent, decorators: [{
|
|
93
93
|
type: Component,
|
|
94
94
|
args: [{ selector: 'wf-label-editor', standalone: true, imports: [CommonModule], template: `
|
|
95
95
|
<div
|
|
@@ -123,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
123
123
|
</span>
|
|
124
124
|
}
|
|
125
125
|
</div>
|
|
126
|
-
`, styles: [":host{display:block;width:100%;height:100%}.label-container{display:flex;align-items:center;justify-content:center;min-width:50px;z-index:1000}.label-container.editing{background:#fff;padding:2px;border-radius:4px;box-shadow:0 2px 4px #0000001a}.label-input{padding:2px 4px;border:1px solid #d36cff;border-radius:2px;font-size:12px;font-family:inherit;outline:none
|
|
126
|
+
`, styles: [":host{display:block;width:100%;height:100%}.label-container{display:flex;align-items:center;justify-content:center;min-width:50px;z-index:1000}.label-container.editing{background:#fff;padding:2px;border-radius:4px;box-shadow:0 2px 4px #0000001a}.label-input{padding:2px 4px;border:1px solid #d36cff;border-radius:2px;font-size:12px;font-family:inherit;outline:none;&.swimlane-input{font-size:14px;font-weight:500;min-width:150px}}.label-text{cursor:text;-webkit-user-select:none;user-select:none;font-size:12px;pointer-events:all;display:inline-block;min-width:20px;min-height:14px;position:relative}.connection-label{background:#fff;padding:2px 4px;border:1px solid #e5e7eb;border-radius:2px}.swimlane-text{font-size:14px;font-weight:500;color:#64748b}.swimlane-label{position:absolute;left:20px}.edit-icon{position:absolute;right:-14px;top:-14px;cursor:pointer}\n"] }]
|
|
127
127
|
}], propDecorators: { label: [{
|
|
128
128
|
type: Input
|
|
129
129
|
}], x: [{
|
|
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
145
145
|
type: HostListener,
|
|
146
146
|
args: ['document:keydown.escape']
|
|
147
147
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvZGVzaWduZXIvY29tcG9uZW50cy9sYWJlbC1lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOztBQWtIdkIsTUFBTSxPQUFPLG9CQUFvQjtJQUN0QixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDTixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbEIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDekMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFakIsVUFBVSxDQUFnQztJQUVuRSxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ0MsSUFBSSxHQUFHLElBQUksQ0FBQztJQUUvQixpQkFBaUI7UUFDZixxRUFBcUU7UUFDckUsb0VBQW9FO1FBRXBFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1FBQzlELE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLDRDQUE0QztRQUUvRCxvRUFBb0U7UUFDcEUsT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUU5QixPQUFPO1lBQ0wsYUFBYSxFQUFFLFFBQVE7WUFDdkIsbUJBQW1CLEVBQUUsUUFBUTtZQUM3QixnQkFBZ0IsRUFBRSxLQUFLO1NBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVELElBQUksUUFBUSxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBR0QsYUFBYTtRQUNYLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO3dHQTlEVSxvQkFBb0I7NEZBQXBCLG9CQUFvQixtYUE1R3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDVCwwNkJBakNTLFlBQVk7OzRGQTZHWCxvQkFBb0I7a0JBaEhoQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDVDs4QkE2RVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLENBQUM7c0JBQVQsS0FBSztnQkFDRyxDQUFDO3NCQUFULEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFa0IsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQW1EdkIsYUFBYTtzQkFEWixZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbXBvbmVudHMvbGFiZWwtZWRpdG9yLmNvbXBvbmVudC50c1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dmLWxhYmVsLWVkaXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibGFiZWwtY29udGFpbmVyXCJcbiAgICAgIFtjbGFzcy5lZGl0aW5nXT1cImlzRWRpdGluZ1wiXG4gICAgICBbY2xhc3Muc3dpbWxhbmUtbGFiZWxdPVwiaXNTd2ltbGFuZVwiXG4gICAgPlxuICAgICAgQGlmIChpc0VkaXRpbmcpIHtcbiAgICAgIDxpbnB1dFxuICAgICAgICAjbGFiZWxJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFt2YWx1ZV09XCJsYWJlbFwiXG4gICAgICAgIChibHVyKT1cImZpbmlzaEVkaXRpbmcoKVwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJmaW5pc2hFZGl0aW5nKClcIlxuICAgICAgICAoa2V5dXAuZXNjYXBlKT1cImNhbmNlbEVkaXRpbmcoKVwiXG4gICAgICAgIGNsYXNzPVwibGFiZWwtaW5wdXRcIlxuICAgICAgICBbY2xhc3Muc3dpbWxhbmUtaW5wdXRdPVwiaXNTd2ltbGFuZVwiXG4gICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJNYXRoLm1heCgxMDAsIGxhYmVsLmxlbmd0aCAqIDgpXCJcbiAgICAgIC8+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgIDxzcGFuXG4gICAgICAgIChkYmxjbGljayk9XCJzdGFydEVkaXRpbmcoKVwiXG4gICAgICAgIGNsYXNzPVwibGFiZWwtdGV4dFwiXG4gICAgICAgIFtjbGFzcy5jb25uZWN0aW9uLWxhYmVsXT1cImlzQ29ubmVjdGlvblwiXG4gICAgICAgIFtjbGFzcy5zd2ltbGFuZS10ZXh0XT1cImlzU3dpbWxhbmVcIlxuICAgICAgPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8c3ZnIChjbGljayk9XCJvcGVuRGlhbG9nLmVtaXQoJGV2ZW50KVwiIGNsYXNzPVwiZWRpdC1pY29uXCIgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE1XCIgdmlld0JveD1cIjAgMCAxNSAxNVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNOC43ODkzNCAzLjE5ODQ1TDExLjgwMjcgNi4yMTE4NE0xMi4xMTQ4IDIuMDAzOEwxMi45OTc0IDIuODg2NEMxMy41ODU4IDMuNDc0ODEgMTMuNTg1OCA0LjQyODc5IDEyLjk5NzQgNS4wMTcxOUw0LjI2OTI1IDEzLjc0NTNIMS4yNTU4NlYxMC43MzE5TDkuOTgzOTkgMi4wMDM4QzEwLjU3MjQgMS40MTU0IDExLjUyNjQgMS40MTU0IDEyLjExNDggMi4wMDM4WlwiIHN0cm9rZT1cIiMzNDc5RTlcIiBzdHJva2UtbGluZWNhcD1cInNxdWFyZVwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG4gICAgICAubGFiZWwtY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogNTBweDtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgIH1cblxuICAgICAgLmxhYmVsLWNvbnRhaW5lci5lZGl0aW5nIHtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgfVxuXG4gICAgICAubGFiZWwtaW5wdXQge1xuICAgICAgICBwYWRkaW5nOiAycHggNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDM2Y2ZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgJi5zd2ltbGFuZS1pbnB1dCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubGFiZWwtdGV4dCB7XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtaW4td2lkdGg6IDIwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE0cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgLmNvbm5lY3Rpb24tbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogMnB4IDRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgfVxuXG4gICAgICAuc3dpbWxhbmUtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgY29sb3I6ICM2NDc0OGI7XG4gICAgICB9XG5cbiAgICAgIC5zd2ltbGFuZS1sYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMjBweDtcbiAgICAgIH1cblxuICAgICAgLmVkaXQtaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0xNHB4O1xuICAgICAgICB0b3A6IC0xNHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTGFiZWxFZGl0b3JDb21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSB4ID0gMDtcbiAgQElucHV0KCkgeSA9IDA7XG4gIEBJbnB1dCgpIGlzQ29ubmVjdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc1N3aW1sYW5lID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBsYWJlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb3BlbkRpYWxvZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKCdsYWJlbElucHV0JykgbGFiZWxJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgaXNFZGl0aW5nID0gZmFsc2U7XG4gIHByb3RlY3RlZCByZWFkb25seSBNYXRoID0gTWF0aDtcblxuICBnZXRFZGl0b3JQb3NpdGlvbigpOiBzdHJpbmcge1xuICAgIC8vIGNvbnN0IG9mZnNldFggPSB0aGlzLmlzQ29ubmVjdGlvbiA/IC0yNSA6IC0yNTsgLy8gQ2VudGVyIHRoZSBsYWJlbFxuICAgIC8vIGNvbnN0IG9mZnNldFkgPSAtMTA7IC8vIFNsaWdodCB1cHdhcmQgb2Zmc2V0IHRvIGNlbnRlciB2ZXJ0aWNhbGx5XG5cbiAgICBjb25zdCBvZmZzZXRYID0gdGhpcy5pc0Nvbm5lY3Rpb24gPyAwIDogMDsgLy8gQ2VudGVyIHRoZSBsYWJlbFxuICAgIGNvbnN0IG9mZnNldFkgPSAwOyAvLyBTbGlnaHQgdXB3YXJkIG9mZnNldCB0byBjZW50ZXIgdmVydGljYWxseVxuXG4gICAgLy8gcmV0dXJuIGB0cmFuc2xhdGUoJHt0aGlzLnggKyBvZmZzZXRYfXB4LCAke3RoaXMueSArIG9mZnNldFl9cHgpYDtcbiAgICByZXR1cm4gYHRyYW5zbGF0ZSg1MCUsIDUwJSlgO1xuICB9XG5cbiAgZ2V0TGFiZWxTdHlsZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLmlzRWRpdGluZykgcmV0dXJuIHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICd0ZXh0LWFuY2hvcic6ICdtaWRkbGUnLFxuICAgICAgJ2RvbWluYW50LWJhc2VsaW5lJzogJ21pZGRsZScsXG4gICAgICAncG9pbnRlci1ldmVudHMnOiAnYWxsJyxcbiAgICB9O1xuICB9XG5cbiAgc3RhcnRFZGl0aW5nKCk6IHZvaWQge1xuICAgIHRoaXMuaXNFZGl0aW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmxhYmVsSW5wdXQpIHtcbiAgICAgICAgdGhpcy5sYWJlbElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5sYWJlbElucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmaW5pc2hFZGl0aW5nKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRWRpdGluZykge1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmxhYmVsSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZS50cmltKCk7XG4gICAgICBpZiAobmV3VmFsdWUgJiYgbmV3VmFsdWUgIT09IHRoaXMubGFiZWwpIHtcbiAgICAgICAgdGhpcy5sYWJlbENoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsRWRpdGluZygpOiB2b2lkIHtcbiAgICB0aGlzLmlzRWRpdGluZyA9IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnKVxuICBvbkVzY2FwZVByZXNzKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuY2VsRWRpdGluZygpO1xuICB9XG59XG4iXX0=
|