tnx-shared 5.2.24 → 5.2.25
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/classes/public-function.d.ts +70 -17
- package/classes/public-function.d.ts.map +1 -1
- package/esm2020/classes/public-function.mjs +2 -72
- package/esm2020/components/add-news/add-news.component.mjs +3 -3
- package/esm2020/components/autocomplete-datasource/autocomplete-datasource.component.mjs +1 -1
- package/esm2020/components/autocomplete-picker/autocomplete-picker.component.mjs +1 -1
- package/esm2020/components/avatar-uploader/avatar-uploader.component.mjs +1 -1
- package/esm2020/components/chat/chat-box/chat-box.component.mjs +1 -1
- package/esm2020/components/chat/chat-send-message-box/chat-send-message-box.component.mjs +1 -1
- package/esm2020/components/check-box-list/check-box-list.component.mjs +1 -1
- package/esm2020/components/cocautochuc/cocautochuc-picker/cocautochuc-picker.component.mjs +1 -1
- package/esm2020/components/common-app-component/app-topbar-v1/app-topbar-v1.component.mjs +1 -1
- package/esm2020/components/common-app-component/app-topbar-v2/app-topbar-v2.component.mjs +1 -1
- package/esm2020/components/common-app-component/app.menu.component.mjs +2 -2
- package/esm2020/components/common-app-component/app.topbar.component.mjs +1 -1
- package/esm2020/components/common-app-component/common-app-component.mjs +1 -1
- package/esm2020/components/common-app-component/default-setting-form/default-data-settings.component.mjs +1 -1
- package/esm2020/components/crud/advance-search/advance-search.component.mjs +1 -1
- package/esm2020/components/crud/crud-form/crud-form.component.mjs +1 -1
- package/esm2020/components/crud/crud-list/crud-list.component.mjs +1 -1
- package/esm2020/components/crud/table-detail-form/table-detail-form.component.mjs +1 -1
- package/esm2020/components/crud/tree-table/tree-table.component.mjs +1 -1
- package/esm2020/components/datetime-picker/datetime-picker.component.mjs +1 -1
- package/esm2020/components/dropdown/dropdown-setting-form/dropdown-setting-form.component.mjs +1 -1
- package/esm2020/components/dropdown/dropdown.component.mjs +4 -4
- package/esm2020/components/dropdown/quick-add-form/quick-add-form.component.mjs +1 -1
- package/esm2020/components/entity-permission/entity-permission.component.mjs +1 -1
- package/esm2020/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.mjs +1 -1
- package/esm2020/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.mjs +1 -1
- package/esm2020/components/entity-picker/entity-picker-dialog/components/entity-picker-tree-data/entity-picker-tree-data.component.mjs +1 -1
- package/esm2020/components/entity-picker/entity-picker-dialog/components/entity-picker-tree-selected/entity-picker-tree-selected.component.mjs +1 -1
- package/esm2020/components/entity-picker/entity-picker-dialog/entity-picker-dialog.component.mjs +1 -1
- package/esm2020/components/entity-picker/entity-picker.component.mjs +1 -1
- package/esm2020/components/file-explorer/file-explorer.component.mjs +1 -1
- package/esm2020/components/file-explorer/file-form/file-form.component.mjs +1 -1
- package/esm2020/components/file-explorer/file-ky-so-sim/file-ky-so-sim.component.mjs +1 -1
- package/esm2020/components/file-explorer/file-manager/file-manager.component.mjs +1 -1
- package/esm2020/components/file-explorer/file-picker-dialog/file-picker-dialog.component.mjs +1 -1
- package/esm2020/components/file-explorer/file-tai-lieu/file-tai-lieu.component.mjs +1 -1
- package/esm2020/components/file-explorer/file-version-list/file-version-list.component.mjs +1 -1
- package/esm2020/components/file-explorer/file-viewer/file-viewer.component.mjs +1 -1
- package/esm2020/components/file-explorer/folder-form/folder-form.component.mjs +1 -1
- package/esm2020/components/file-explorer/ky-so-sim-danh-sach-chu-ky/ky-so-sim-danh-sach-chu-ky.component.mjs +1 -1
- package/esm2020/components/file-explorer/signature-detail/signature-detail.component.mjs +1 -1
- package/esm2020/components/file-upload/file-upload.component.mjs +1 -1
- package/esm2020/components/image-uploader/image-uploader.component.mjs +1 -1
- package/esm2020/components/paging-next-back-only/paging-next-back-only.component.mjs +1 -1
- package/esm2020/components/permission-utils/permission-utils.component.mjs +1 -1
- package/esm2020/components/qr-code-generator/qr-code-generator.component.mjs +1 -1
- package/esm2020/components/query-builders/query-builder/query-builder.component.mjs +1 -1
- package/esm2020/components/query-builders/query-builder-group/query-builder-group.component.mjs +2 -2
- package/esm2020/components/query-builders/query-builder-rule/query-builder-rule.component.mjs +3 -3
- package/esm2020/components/radio-button-list/radio-button-list.component.mjs +1 -1
- package/esm2020/components/report-queue/report-queue.component.mjs +1 -1
- package/esm2020/components/service-file-upload/service-file-upload.component.mjs +1 -1
- package/esm2020/components/settings/settings-row/settings-row.component.mjs +1 -1
- package/esm2020/components/settings/settings-workflow/settings-workflow.component.mjs +1 -1
- package/esm2020/components/settings/settings.component.mjs +1 -1
- package/esm2020/components/share-link-by-permission/share-link-by-permission.component.mjs +1 -1
- package/esm2020/components/statemachines/state/state.component.mjs +1 -1
- package/esm2020/components/statemachines/state-metadata/state-metadata.component.mjs +1 -1
- package/esm2020/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.mjs +1 -1
- package/esm2020/components/statemachines/statemachines-designer/statemachines-designer.component.mjs +1 -1
- package/esm2020/components/tn-app-help/helper-current-page/helper-current-page.component.mjs +1 -1
- package/esm2020/components/tn-app-help/tn-app-help.component.mjs +1 -1
- package/esm2020/components/tn-app-notification/tn-app-notification.component.mjs +1 -1
- package/esm2020/components/tn-checkbox/tn-checkbox.component.mjs +1 -1
- package/esm2020/components/tn-color-picker/tn-color-picker.component.mjs +1 -1
- package/esm2020/components/tn-dialog/tn-dialog.component.mjs +1 -1
- package/esm2020/components/tn-tabview/tn-tabview.component.mjs +1 -1
- package/esm2020/components/tn-template/tn-template.component.mjs +1 -1
- package/esm2020/components/tn-tinymce/tn-tinymce.component.mjs +1 -1
- package/esm2020/components/tn-tree/tn-tree.component.mjs +1 -1
- package/esm2020/components/user-picker/user-picker-box/user-picker-box.component.mjs +1 -1
- package/esm2020/components/user-picker/user-picker.component.mjs +1 -1
- package/esm2020/components/usmart/chuoi-phan-tiet/chuoi-phan-tiet.component.mjs +1 -1
- package/esm2020/components/vanban-picker/vanban-den-picker/vanban-den-picker.component.mjs +2 -2
- package/esm2020/components/vanban-picker/vanban-di-picker/vanban-di-picker.component.mjs +2 -2
- package/esm2020/components/vanban-picker/vanban-picker-dialog/vanban-picker-dialog.component.mjs +1 -1
- package/esm2020/components/vanban-picker/vanban-picker.component.mjs +1 -1
- package/esm2020/components/workflow/cho-y-kien-form/cho-y-kien-form.component.mjs +1 -1
- package/esm2020/components/workflow/permission-sharing/permission-sharing.component.mjs +1 -1
- package/esm2020/components/workflow/process-workflow-form/process-workflow-form.component.mjs +1 -1
- package/esm2020/components/workflow/start-workflow/start-workflow.component.mjs +1 -1
- package/esm2020/components/workflow/workflow-history-new/workflow-history-new.component.mjs +1 -1
- package/esm2020/components/workflow/workflow-permission-form/workflow-permission-form.component.mjs +1 -1
- package/esm2020/components/workflow/workflow-picker/workflow-picker.component.mjs +1 -1
- package/esm2020/components/workflow/workflow-setting-new/workflow-setting-new.component.mjs +1 -1
- package/esm2020/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.mjs +1 -1
- package/esm2020/congviec/congviec/congviec-form/congviec-form.component.mjs +1 -1
- package/esm2020/congviec/congviec/congviec.component.mjs +2 -2
- package/esm2020/congviec/dm-linhvuc-congviec/dm-linhvuc-congviec-form/dm-linhvuc-congviec-form.component.mjs +1 -1
- package/esm2020/congviec/dm-loai-congviec/dm-loai-congviec-form/dm-loai-congviec-form.component.mjs +1 -1
- package/esm2020/congviec/dm-priority/dm-priority-form/dm-priority-form.component.mjs +1 -1
- package/esm2020/tnx-shared.module.mjs +1 -1
- package/fesm2015/tnx-shared.mjs +104 -171
- package/fesm2015/tnx-shared.mjs.map +1 -1
- package/fesm2020/tnx-shared.mjs +104 -171
- package/fesm2020/tnx-shared.mjs.map +1 -1
- package/package.json +3 -3
- package/tnx-shared.module.d.ts +2 -1
- package/tnx-shared.module.d.ts.map +1 -1
|
@@ -164,7 +164,7 @@ export class VanbanDenPickerComponent extends DataListBase {
|
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
VanbanDenPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanbanDenPickerComponent, deps: [{ token: i0.Injector }, { token: i1.VanBanDenService }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
-
VanbanDenPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: VanbanDenPickerComponent, selector: "app-vanban-den-picker", inputs: { ids: "ids", hiddenPicker: "hiddenPicker" }, outputs: { onPicked: "onPicked", onRemoved: "onRemoved" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-den-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-den-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-den-picker>\r\n</tn-dialog>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "
|
|
167
|
+
VanbanDenPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: VanbanDenPickerComponent, selector: "app-vanban-den-picker", inputs: { ids: "ids", hiddenPicker: "hiddenPicker" }, outputs: { onPicked: "onPicked", onRemoved: "onRemoved" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-den-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-den-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-den-picker>\r\n</tn-dialog>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.CrudListComponent, selector: "crud-list" }, { kind: "component", type: VanbanDenPickerComponent, selector: "app-vanban-den-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }, { kind: "component", type: i7.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
|
|
168
168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanbanDenPickerComponent, decorators: [{
|
|
169
169
|
type: Component,
|
|
170
170
|
args: [{ selector: 'app-vanban-den-picker', providers: [ComponentContextService], template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-den-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-den-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-den-picker>\r\n</tn-dialog>" }]
|
|
@@ -177,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
177
177
|
}], onRemoved: [{
|
|
178
178
|
type: Output
|
|
179
179
|
}] } });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFuYmFuLWRlbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy92YW5iYW4tcGlja2VyL3ZhbmJhbi1kZW4tcGlja2VyL3ZhbmJhbi1kZW4tcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tZGVuLXBpY2tlci92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFXakQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUFrQ3RELFlBQ2MsU0FBbUIsRUFDbkIsaUJBQW1DLEVBQzdDLG1CQUF1QztRQUV2QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFKUCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUE3QnhDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTdCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ25DLGNBQVMs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dUIsQ0FBQyxpRENkeEMsMHdGQW9DWSxrbEJEcEJDLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLHVCQUF1QixhQUd0QixDQUFDLHVCQUF1QixDQUFDOytKQUt2QixHQUFHO3NCQUFmLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgQ29sdW1uU2NoZW1hQmFzZSwgTW9kZWxTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9jb21tb24nO1xyXG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFuQmFuRGVuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ZhbmJhbi1kZW4uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXZhbmJhbi1kZW4tcGlja2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYW5iYW5EZW5QaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgX2lkczogc3RyaW5nW107XHJcbiAgICBASW5wdXQoKSBzZXQgaWRzKHZhbHVlOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHRoaXMuX2lkcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBoaWRkZW5QaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25QaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblxyXG4gICAgZW52aXJvbm1lbnQ6IGFueSA9IHt9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBU4bqhbyBzdWJzY3JpcHRpb25cclxuICAgICAqL1xyXG4gICAgdmFsdWUgPSBuZXcgU3ViamVjdDxzdHJpbmdbXT4oKTtcclxuICAgIHZhbHVlJCA9IHRoaXMudmFsdWUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICByZWFkeSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgICByZWFkeSQgPSB0aGlzLnJlYWR5LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgc291cmNlID0gY29tYmluZUxhdGVzdChcclxuICAgICAgICB0aGlzLnZhbHVlJCxcclxuICAgICAgICB0aGlzLnJlYWR5JFxyXG4gICAgKTtcclxuICAgIHN1YiA9IHRoaXMuc291cmNlLnN1YnNjcmliZSh2YWx1ZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbmRHZXREYXRhKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBzZWFyY2hTY2hlbWE6IGFueSA9IHt9O1xyXG4gICAgc2VhcmNoRGF0YTogYW55ID0ge307XHJcblxyXG4gICAgc2hvd0Zvcm1QaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcm90ZWN0ZWQgX3ZhbkJhbkRlblNlcnZpY2U6IFZhbkJhbkRlblNlcnZpY2UsXHJcbiAgICAgICAgX2Vudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubG9hZERldGFpbEZyb21RdWVyeVBhcmFtID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fdmFuQmFuRGVuU2VydmljZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nV29ya2Zsb3cgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zaG93RWRpdExpbmsgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5oaWRkZW5QaWNrZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblBhZ2VUaXRsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0dGluZy5tb2RlbFNjaGVtYXMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnc29EZW4nLCBkYXRhVHlwZTogJ2ludCcsIG5hbWU6ICdT4buRIMSR4bq/bicsIGZ1bGxOYW1lOiAnU+G7kSDEkeG6v24nLCBkZXNjcmlwdGlvbjogJ1Phu5EgxJHhur9uJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdzb0t5SGlldScsIG5hbWU6ICdT4buRLCBrw70gaGnhu4d1JywgZnVsbE5hbWU6ICdT4buRLCBrw70gaGnhu4d1JywgZGVzY3JpcHRpb246ICdT4buRLCBrw70gaGnhu4d1JyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICd0cmljaFlldScsIG5hbWU6ICdUcsOtY2ggeeG6v3UnLCBmdWxsTmFtZTogJycsIGRlc2NyaXB0aW9uOiAnJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICduZ2F5QmFuSGFuaCcsIGRhdGFUeXBlOiAnZGF0ZScsIG5hbWU6ICdOZ8OgeSBiYW4gaMOgbmgnLCBmdWxsTmFtZTogJycsIGRlc2NyaXB0aW9uOiAnJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICduZ2F5RGVuJywgZGF0YVR5cGU6ICdkYXRlJywgbmFtZTogJ05nw6B5IMSR4bq/bicsIGZ1bGxOYW1lOiAnJywgZGVzY3JpcHRpb246ICcnIH0pXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29EZW4nLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29LeUhpZXUnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxNTBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAndHJpY2hZZXUnXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlCYW5IYW5oJyxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTI1cHgnXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlEZW4nLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMjBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuZmllbGRTZWFyY2hUZXh0ID0gWydjb2RlJywgJ25hbWUnXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcub2JqZWN0TmFtZSA9ICcgdsSDbiBi4bqjbiDEkeG6v24nO1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMucmVhZHkubmV4dCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFByb21pc2VHZXREYXRhKGdyaWRJbmZvOiBHcmlkSW5mbykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UuZ2V0QnlHcmlkUmVxdWVzdFdpdGhCb2R5T2xkKGdyaWRJbmZvLCAnUGVybWlzc2lvbicpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG1vZGlmeUdyaWRJbmZvKGdyaWRJbmZvPzogR3JpZEluZm8pIHtcclxuICAgICAgICBncmlkSW5mby5zb3J0cyA9IFtcclxuICAgICAgICAgICAgeyBmaWVsZDogJ2lkJywgZGlyOiAtMSB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2lkcyAmJiB0aGlzLl9pZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgb3BlcmF0b3IgPSBPcGVyYXRvci5pbjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICBvcGVyYXRvciA9IE9wZXJhdG9yLm5vdEluO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyaWRJbmZvLmZpbHRlcnMudW5zaGlmdChcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpbnN0YW5jZUlkJywgb3BlcmF0b3IsIHRoaXMuX2lkcylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tBbmRHZXREYXRhKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pZHMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNob3dGb3JtUGlja1ZhbkJhbigpIHtcclxuICAgICAgICB0aGlzLmJlZm9yZUFkZCgpO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cFNpemUubWF4aW1pemUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cEhlYWRlciA9IGBUaMOqbSBt4bubaSAke3RoaXMuc2V0dGluZy5vYmplY3ROYW1lfWA7XHJcbiAgICAgICAgdGhpcy5zaG93Rm9ybVBpY2tlciA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcGlja1ZhbkJhblNlbGVjdGVkKCkge1xyXG4gICAgICAgIHRoaXMuX3BpY2tWYW5CYW4odGhpcy5tb2RlbC5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBwaWNrVmFuQmFuKHJvd0RhdGEpIHtcclxuICAgICAgICB0aGlzLl9waWNrVmFuQmFuKFtyb3dEYXRhXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcGlja1ZhbkJhbihpdGVtcykge1xyXG4gICAgICAgIHRoaXMub25QaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGlkczogaXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5pbnN0YW5jZUlkKSxcclxuICAgICAgICAgICAgaXRlbXNcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB4b2FWYW5CYW5TZWxlY3RlZCgpIHtcclxuICAgICAgICB0aGlzLl94b2FWYW5CYW4odGhpcy5tb2RlbC5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICB4b2FWYW5CYW4ocm93RGF0YSkge1xyXG4gICAgICAgIHRoaXMuX3hvYVZhbkJhbihbcm93RGF0YV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3hvYVZhbkJhbihpdGVtcykge1xyXG4gICAgICAgIHRoaXMub25SZW1vdmVkLmVtaXQoe1xyXG4gICAgICAgICAgICBpZHM6IGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0uaW5zdGFuY2VJZCksXHJcbiAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKSB7XHJcbiAgICAgICAgd2luZG93Lm9wZW4oYCR7dGhpcy5lbnZpcm9ubWVudC5jbGllbnREb21haW4udmFuYmFuRG9tYWlufS92YW5iYW5kZW4jX2E9MSZfaT0ke3Jvd0RhdGEuaWR9YCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVBpY2tlZChkYXRhKSB7XHJcbiAgICAgICAgLy8gY29uc3QgaWRzID0gW1xyXG4gICAgICAgIC8vICAgICAuLi50aGlzLl9pZHMsXHJcbiAgICAgICAgLy8gICAgIC4uLmRhdGEuaWRzLmZpbHRlcihxID0+IHRoaXMuX2lkcy5pbmRleE9mKHEpID09IC0xKVxyXG4gICAgICAgIC8vIF1cclxuICAgICAgICAvLyB0aGlzLmlkcyA9IGlkcztcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIjxjcnVkLWxpc3QgI2NydWRMaXN0IFttb2RlbF09XCJtb2RlbFwiIFtzZXR0aW5nXT1cInNldHRpbmdcIiBbZGF0YVNvdXJjZV09XCJtb2RlbC5kYXRhU291cmNlXCJcclxuICAgIChvblJlbG9hZCk9XCJfdHJpZ2dlclByb2Nlc3NEYXRhKCRldmVudClcIiAob25BZGQpPVwiX2FkZCgkZXZlbnQpXCIgKG9uRWRpdCk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uVmlldyk9XCJfdmlldygkZXZlbnQpXCJcclxuICAgIChvbkRlbGV0ZSk9XCJfZGVsZXRlKCRldmVudClcIiAob25EZWxldGVNdWx0aXBsZSk9XCJfZGVsZXRlTXVsdGlwbGUoJGV2ZW50KVwiIChvblJlbG9hZGVkKT1cIl91bm1hcmtMb2FkaW5nKClcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGlkZGVuUGlja2VyXCIgdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLWNoZWNrXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tcHJpbWFyeVwiIGxhYmVsPVwiQ2jhu41uIHbEg24gYuG6o25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGlja1ZhbkJhblNlbGVjdGVkKClcIj48L2J1dHRvbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1jbG9uZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJDaOG7jW4gdsSDbiBi4bqjblwiIChjbGljayk9XCJzaG93Rm9ybVBpY2tWYW5CYW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlclwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIljDs2EgdsSDbiBi4bqjblwiIChjbGljayk9XCJ4b2FWYW5CYW5TZWxlY3RlZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNmdW5jdGlvbiBsZXQtcm93RGF0YT1cInJvd0RhdGFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1leWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBsaW5rLW9yLWFjdGlvblwiIHBUb29sdGlwPVwiWGVtIGNoaSB0aeG6v3QgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwibmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwieG9hVmFuQmFuKHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwicGlja1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jcnVkLWxpc3Q+XHJcbjx0bi1kaWFsb2cgKm5nSWY9XCJzaG93Rm9ybVBpY2tlclwiICNkaWFsb2cgW3N0eWxlQ2xhc3NdPVwiJ3ZiLWRlbi1mb3JtIHRuLWZvcm0tZGlhbG9nJ1wiXHJcbiAgICBbaGVhZGVyXT1cInNldHRpbmcucG9wdXBIZWFkZXIgfCB0cmFuc2xhdGVcIiBbcG9wdXBTaXplXT1cInNldHRpbmcucG9wdXBTaXplXCIgKG9uSGlkZSk9XCJzaG93Rm9ybVBpY2tlciA9IGZhbHNlXCI+XHJcbiAgICA8YXBwLXZhbmJhbi1kZW4tcGlja2VyIFtwYXJlbnRNb2RlbF09XCJtb2RlbFwiIFtwYXJlbnRDb250ZXh0XT1cImNvbnRleHRcIiBbaGlkZGVuUGlja2VyXT1cInRydWVcIiBbaWRzXT1cIl9pZHNcIlxyXG4gICAgICAgIChvblNhdmVkKT1cInNob3dGb3JtUGlja2VyID0gZmFsc2U7Y3J1ZExpc3QucmVsb2FkKClcIiAob25DYW5jZWwpPVwiX2hhbmRsZUNhbmNlbCgkZXZlbnQpXCJcclxuICAgICAgICAob25QaWNrZWQpPVwiaGFuZGxlUGlja2VkKCRldmVudClcIj5cclxuICAgIDwvYXBwLXZhbmJhbi1kZW4tcGlja2VyPlxyXG48L3RuLWRpYWxvZz4iXX0=
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFuYmFuLWRlbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy92YW5iYW4tcGlja2VyL3ZhbmJhbi1kZW4tcGlja2VyL3ZhbmJhbi1kZW4tcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tZGVuLXBpY2tlci92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFXakQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUFrQ3RELFlBQ2MsU0FBbUIsRUFDbkIsaUJBQW1DLEVBQzdDLG1CQUF1QztRQUV2QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFKUCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUE3QnhDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTdCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ25DLGNBQVMs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dUIsQ0FBQyxpRENkeEMsMHdGQW9DWSwycUJEcEJDLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLHVCQUF1QixhQUd0QixDQUFDLHVCQUF1QixDQUFDOytKQUt2QixHQUFHO3NCQUFmLEtBQUs7Z0JBSUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgQ29sdW1uU2NoZW1hQmFzZSwgTW9kZWxTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9jb21tb24nO1xyXG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFuQmFuRGVuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ZhbmJhbi1kZW4uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXZhbmJhbi1kZW4tcGlja2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi92YW5iYW4tZGVuLXBpY2tlci5jb21wb25lbnQuY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYW5iYW5EZW5QaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgX2lkczogc3RyaW5nW107XHJcbiAgICBASW5wdXQoKSBzZXQgaWRzKHZhbHVlOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHRoaXMuX2lkcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBoaWRkZW5QaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25QaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblxyXG4gICAgZW52aXJvbm1lbnQ6IGFueSA9IHt9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBU4bqhbyBzdWJzY3JpcHRpb25cclxuICAgICAqL1xyXG4gICAgdmFsdWUgPSBuZXcgU3ViamVjdDxzdHJpbmdbXT4oKTtcclxuICAgIHZhbHVlJCA9IHRoaXMudmFsdWUuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICByZWFkeSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgICByZWFkeSQgPSB0aGlzLnJlYWR5LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgc291cmNlID0gY29tYmluZUxhdGVzdChcclxuICAgICAgICB0aGlzLnZhbHVlJCxcclxuICAgICAgICB0aGlzLnJlYWR5JFxyXG4gICAgKTtcclxuICAgIHN1YiA9IHRoaXMuc291cmNlLnN1YnNjcmliZSh2YWx1ZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbmRHZXREYXRhKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBzZWFyY2hTY2hlbWE6IGFueSA9IHt9O1xyXG4gICAgc2VhcmNoRGF0YTogYW55ID0ge307XHJcblxyXG4gICAgc2hvd0Zvcm1QaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcm90ZWN0ZWQgX3ZhbkJhbkRlblNlcnZpY2U6IFZhbkJhbkRlblNlcnZpY2UsXHJcbiAgICAgICAgX2Vudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubG9hZERldGFpbEZyb21RdWVyeVBhcmFtID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fdmFuQmFuRGVuU2VydmljZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nV29ya2Zsb3cgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zaG93RWRpdExpbmsgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5oaWRkZW5QaWNrZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblBhZ2VUaXRsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0dGluZy5tb2RlbFNjaGVtYXMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnc29EZW4nLCBkYXRhVHlwZTogJ2ludCcsIG5hbWU6ICdT4buRIMSR4bq/bicsIGZ1bGxOYW1lOiAnU+G7kSDEkeG6v24nLCBkZXNjcmlwdGlvbjogJ1Phu5EgxJHhur9uJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdzb0t5SGlldScsIG5hbWU6ICdT4buRLCBrw70gaGnhu4d1JywgZnVsbE5hbWU6ICdT4buRLCBrw70gaGnhu4d1JywgZGVzY3JpcHRpb246ICdT4buRLCBrw70gaGnhu4d1JyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICd0cmljaFlldScsIG5hbWU6ICdUcsOtY2ggeeG6v3UnLCBmdWxsTmFtZTogJycsIGRlc2NyaXB0aW9uOiAnJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICduZ2F5QmFuSGFuaCcsIGRhdGFUeXBlOiAnZGF0ZScsIG5hbWU6ICdOZ8OgeSBiYW4gaMOgbmgnLCBmdWxsTmFtZTogJycsIGRlc2NyaXB0aW9uOiAnJyB9KSxcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICduZ2F5RGVuJywgZGF0YVR5cGU6ICdkYXRlJywgbmFtZTogJ05nw6B5IMSR4bq/bicsIGZ1bGxOYW1lOiAnJywgZGVzY3JpcHRpb246ICcnIH0pXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29EZW4nLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29LeUhpZXUnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxNTBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAndHJpY2hZZXUnXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlCYW5IYW5oJyxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTI1cHgnXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25nYXlEZW4nLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMjBweCdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuZmllbGRTZWFyY2hUZXh0ID0gWydjb2RlJywgJ25hbWUnXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcub2JqZWN0TmFtZSA9ICcgdsSDbiBi4bqjbiDEkeG6v24nO1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMucmVhZHkubmV4dCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFByb21pc2VHZXREYXRhKGdyaWRJbmZvOiBHcmlkSW5mbykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UuZ2V0QnlHcmlkUmVxdWVzdFdpdGhCb2R5T2xkKGdyaWRJbmZvLCAnUGVybWlzc2lvbicpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG1vZGlmeUdyaWRJbmZvKGdyaWRJbmZvPzogR3JpZEluZm8pIHtcclxuICAgICAgICBncmlkSW5mby5zb3J0cyA9IFtcclxuICAgICAgICAgICAgeyBmaWVsZDogJ2lkJywgZGlyOiAtMSB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2lkcyAmJiB0aGlzLl9pZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgb3BlcmF0b3IgPSBPcGVyYXRvci5pbjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICBvcGVyYXRvciA9IE9wZXJhdG9yLm5vdEluO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGdyaWRJbmZvLmZpbHRlcnMudW5zaGlmdChcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpbnN0YW5jZUlkJywgb3BlcmF0b3IsIHRoaXMuX2lkcylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tBbmRHZXREYXRhKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pZHMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuUGlja2VyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5faWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNob3dGb3JtUGlja1ZhbkJhbigpIHtcclxuICAgICAgICB0aGlzLmJlZm9yZUFkZCgpO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cFNpemUubWF4aW1pemUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5wb3B1cEhlYWRlciA9IGBUaMOqbSBt4bubaSAke3RoaXMuc2V0dGluZy5vYmplY3ROYW1lfWA7XHJcbiAgICAgICAgdGhpcy5zaG93Rm9ybVBpY2tlciA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcGlja1ZhbkJhblNlbGVjdGVkKCkge1xyXG4gICAgICAgIHRoaXMuX3BpY2tWYW5CYW4odGhpcy5tb2RlbC5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBwaWNrVmFuQmFuKHJvd0RhdGEpIHtcclxuICAgICAgICB0aGlzLl9waWNrVmFuQmFuKFtyb3dEYXRhXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcGlja1ZhbkJhbihpdGVtcykge1xyXG4gICAgICAgIHRoaXMub25QaWNrZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGlkczogaXRlbXMubWFwKGl0ZW0gPT4gaXRlbS5pbnN0YW5jZUlkKSxcclxuICAgICAgICAgICAgaXRlbXNcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB4b2FWYW5CYW5TZWxlY3RlZCgpIHtcclxuICAgICAgICB0aGlzLl94b2FWYW5CYW4odGhpcy5tb2RlbC5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICB4b2FWYW5CYW4ocm93RGF0YSkge1xyXG4gICAgICAgIHRoaXMuX3hvYVZhbkJhbihbcm93RGF0YV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3hvYVZhbkJhbihpdGVtcykge1xyXG4gICAgICAgIHRoaXMub25SZW1vdmVkLmVtaXQoe1xyXG4gICAgICAgICAgICBpZHM6IGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0uaW5zdGFuY2VJZCksXHJcbiAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKSB7XHJcbiAgICAgICAgd2luZG93Lm9wZW4oYCR7dGhpcy5lbnZpcm9ubWVudC5jbGllbnREb21haW4udmFuYmFuRG9tYWlufS92YW5iYW5kZW4jX2E9MSZfaT0ke3Jvd0RhdGEuaWR9YCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVBpY2tlZChkYXRhKSB7XHJcbiAgICAgICAgLy8gY29uc3QgaWRzID0gW1xyXG4gICAgICAgIC8vICAgICAuLi50aGlzLl9pZHMsXHJcbiAgICAgICAgLy8gICAgIC4uLmRhdGEuaWRzLmZpbHRlcihxID0+IHRoaXMuX2lkcy5pbmRleE9mKHEpID09IC0xKVxyXG4gICAgICAgIC8vIF1cclxuICAgICAgICAvLyB0aGlzLmlkcyA9IGlkcztcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIjxjcnVkLWxpc3QgI2NydWRMaXN0IFttb2RlbF09XCJtb2RlbFwiIFtzZXR0aW5nXT1cInNldHRpbmdcIiBbZGF0YVNvdXJjZV09XCJtb2RlbC5kYXRhU291cmNlXCJcclxuICAgIChvblJlbG9hZCk9XCJfdHJpZ2dlclByb2Nlc3NEYXRhKCRldmVudClcIiAob25BZGQpPVwiX2FkZCgkZXZlbnQpXCIgKG9uRWRpdCk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uVmlldyk9XCJfdmlldygkZXZlbnQpXCJcclxuICAgIChvbkRlbGV0ZSk9XCJfZGVsZXRlKCRldmVudClcIiAob25EZWxldGVNdWx0aXBsZSk9XCJfZGVsZXRlTXVsdGlwbGUoJGV2ZW50KVwiIChvblJlbG9hZGVkKT1cIl91bm1hcmtMb2FkaW5nKClcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGlkZGVuUGlja2VyXCIgdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLWNoZWNrXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tcHJpbWFyeVwiIGxhYmVsPVwiQ2jhu41uIHbEg24gYuG6o25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGlja1ZhbkJhblNlbGVjdGVkKClcIj48L2J1dHRvbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1jbG9uZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJDaOG7jW4gdsSDbiBi4bqjblwiIChjbGljayk9XCJzaG93Rm9ybVBpY2tWYW5CYW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlclwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIljDs2EgdsSDbiBi4bqjblwiIChjbGljayk9XCJ4b2FWYW5CYW5TZWxlY3RlZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNmdW5jdGlvbiBsZXQtcm93RGF0YT1cInJvd0RhdGFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1leWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBsaW5rLW9yLWFjdGlvblwiIHBUb29sdGlwPVwiWGVtIGNoaSB0aeG6v3QgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwibmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwieG9hVmFuQmFuKHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwicGlja1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jcnVkLWxpc3Q+XHJcbjx0bi1kaWFsb2cgKm5nSWY9XCJzaG93Rm9ybVBpY2tlclwiICNkaWFsb2cgW3N0eWxlQ2xhc3NdPVwiJ3ZiLWRlbi1mb3JtIHRuLWZvcm0tZGlhbG9nJ1wiXHJcbiAgICBbaGVhZGVyXT1cInNldHRpbmcucG9wdXBIZWFkZXIgfCB0cmFuc2xhdGVcIiBbcG9wdXBTaXplXT1cInNldHRpbmcucG9wdXBTaXplXCIgKG9uSGlkZSk9XCJzaG93Rm9ybVBpY2tlciA9IGZhbHNlXCI+XHJcbiAgICA8YXBwLXZhbmJhbi1kZW4tcGlja2VyIFtwYXJlbnRNb2RlbF09XCJtb2RlbFwiIFtwYXJlbnRDb250ZXh0XT1cImNvbnRleHRcIiBbaGlkZGVuUGlja2VyXT1cInRydWVcIiBbaWRzXT1cIl9pZHNcIlxyXG4gICAgICAgIChvblNhdmVkKT1cInNob3dGb3JtUGlja2VyID0gZmFsc2U7Y3J1ZExpc3QucmVsb2FkKClcIiAob25DYW5jZWwpPVwiX2hhbmRsZUNhbmNlbCgkZXZlbnQpXCJcclxuICAgICAgICAob25QaWNrZWQpPVwiaGFuZGxlUGlja2VkKCRldmVudClcIj5cclxuICAgIDwvYXBwLXZhbmJhbi1kZW4tcGlja2VyPlxyXG48L3RuLWRpYWxvZz4iXX0=
|
|
@@ -159,7 +159,7 @@ export class VanbanDiPickerComponent extends DataListBase {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
VanbanDiPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanbanDiPickerComponent, deps: [{ token: i0.Injector }, { token: i1.VanBanDiService }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
162
|
-
VanbanDiPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: VanbanDiPickerComponent, selector: "app-vanban-di-picker", inputs: { ids: "ids", hiddenPicker: "hiddenPicker" }, outputs: { onPicked: "onPicked", onRemoved: "onRemoved" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-di-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-di-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-di-picker>\r\n</tn-dialog>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "
|
|
162
|
+
VanbanDiPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: VanbanDiPickerComponent, selector: "app-vanban-di-picker", inputs: { ids: "ids", hiddenPicker: "hiddenPicker" }, outputs: { onPicked: "onPicked", onRemoved: "onRemoved" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-di-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-di-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-di-picker>\r\n</tn-dialog>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.CrudListComponent, selector: "crud-list" }, { kind: "component", type: VanbanDiPickerComponent, selector: "app-vanban-di-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }, { kind: "component", type: i7.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
|
|
163
163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanbanDiPickerComponent, decorators: [{
|
|
164
164
|
type: Component,
|
|
165
165
|
args: [{ selector: 'app-vanban-di-picker', providers: [ComponentContextService], template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\r\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button *ngIf=\"hiddenPicker\" type=\"button\" pButton icon=\"pi pi-check\"\r\n class=\"p-button-text p-button-rounded p-button-primary\" label=\"Ch\u1ECDn v\u0103n b\u1EA3n\"\r\n (click)=\"pickVanBanSelected()\"></button>\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <ng-container *ngIf=\"!hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-container>\r\n <ng-container *ngIf=\"hiddenPicker\">\r\n <button type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"pickVanBan(rowData)\"></button>\r\n </ng-container>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'vb-di-form tn-form-dialog'\"\r\n [header]=\"setting.popupHeader | translate\" [popupSize]=\"setting.popupSize\" (onHide)=\"showFormPicker = false\">\r\n <app-vanban-di-picker [parentModel]=\"model\" [parentContext]=\"context\" [hiddenPicker]=\"true\" [ids]=\"_ids\"\r\n (onSaved)=\"showFormPicker = false;crudList.reload()\" (onCancel)=\"_handleCancel($event)\"\r\n (onPicked)=\"handlePicked($event)\">\r\n </app-vanban-di-picker>\r\n</tn-dialog>" }]
|
|
@@ -172,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
172
172
|
}], onRemoved: [{
|
|
173
173
|
type: Output
|
|
174
174
|
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFuYmFuLWRpLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3ZhbmJhbi1waWNrZXIvdmFuYmFuLWRpLXBpY2tlci92YW5iYW4tZGktcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tZGktcGlja2VyL3ZhbmJhbi1kaS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFZLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7O0FBV2pELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0lBaUNyRCxZQUNjLFNBQW1CLEVBQ25CLGdCQUFpQyxFQUMzQyxtQkFBdUM7UUFFdkMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSlAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBNUJ0QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU3QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuQyxjQUFTLEdBQUcs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bXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgQ29sdW1uU2NoZW1hQmFzZSwgTW9kZWxTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9jb21tb24nO1xyXG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFuQmFuRGlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdmFuYmFuLWRpLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC12YW5iYW4tZGktcGlja2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92YW5iYW4tZGktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3ZhbmJhbi1kaS1waWNrZXIuY29tcG9uZW50LmNzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFuYmFuRGlQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgX2lkczogc3RyaW5nW107XHJcbiAgICBASW5wdXQoKSBzZXQgaWRzKHZhbHVlOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHRoaXMuX2lkcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBoaWRkZW5QaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25QaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBlbnZpcm9ubWVudDogYW55ID0ge307XHJcbiAgICAvKipcclxuICAgICAqIFThuqFvIHN1YnNjcmlwdGlvblxyXG4gICAgICovXHJcbiAgICB2YWx1ZSA9IG5ldyBTdWJqZWN0PHN0cmluZ1tdPigpO1xyXG4gICAgdmFsdWUkID0gdGhpcy52YWx1ZS5hc09ic2VydmFibGUoKTtcclxuICAgIHJlYWR5ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAgIHJlYWR5JCA9IHRoaXMucmVhZHkuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBzb3VyY2UgPSBjb21iaW5lTGF0ZXN0KFxyXG4gICAgICAgIHRoaXMudmFsdWUkLFxyXG4gICAgICAgIHRoaXMucmVhZHkkXHJcbiAgICApO1xyXG4gICAgc3ViID0gdGhpcy5zb3VyY2Uuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja0FuZEdldERhdGEoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHNlYXJjaFNjaGVtYTogYW55ID0ge307XHJcbiAgICBzZWFyY2hEYXRhOiBhbnkgPSB7fTtcclxuXHJcbiAgICBzaG93Rm9ybVBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBfdmFuQmFuRGlTZXJ2aWNlOiBWYW5CYW5EaVNlcnZpY2UsXHJcbiAgICAgICAgX2Vudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubG9hZERldGFpbEZyb21RdWVyeVBhcmFtID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fdmFuQmFuRGlTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nUGVybWlzc2lvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblNldHRpbmdXb3JrZmxvdyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNob3dFZGl0TGluayA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuUGFnZVRpdGxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLm1vZGVsU2NoZW1hcyA9IFtcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdzb0RpJywgZGF0YVR5cGU6ICdpbnQnLCBuYW1lOiAnU+G7kSDEkWknLCBmdWxsTmFtZTogJ1Phu5EgxJFpJywgZGVzY3JpcHRpb246ICdT4buRIMSRaScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnc29LeUhpZXUnLCBuYW1lOiAnU+G7kSwga8O9IGhp4buHdScsIGZ1bGxOYW1lOiAnU+G7kSwga8O9IGhp4buHdScsIGRlc2NyaXB0aW9uOiAnU+G7kSwga8O9IGhp4buHdScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAndHJpY2hZZXUnLCBuYW1lOiAnVHLDrWNoIHnhur91JywgZnVsbE5hbWU6ICcnLCBkZXNjcmlwdGlvbjogJycgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnbmdheUJhbkhhbmgnLCBkYXRhVHlwZTogJ2RhdGUnLCBuYW1lOiAnTmfDoHkgYmFuIGjDoG5oJywgZnVsbE5hbWU6ICcnLCBkZXNjcmlwdGlvbjogJycgfSksXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29EaScsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMHB4J1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzb0t5SGlldScsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzE1MHB4J1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICd0cmljaFlldSdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmdheUJhbkhhbmgnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMjVweCdcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5maWVsZFNlYXJjaFRleHQgPSBbJ2NvZGUnLCAnbmFtZSddO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5vYmplY3ROYW1lID0gJyB2xINuIGLhuqNuIMSRaSc7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5yZWFkeS5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvbWlzZUdldERhdGEoZ3JpZEluZm86IEdyaWRJbmZvKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZS5nZXRCeUdyaWRSZXF1ZXN0V2l0aEJvZHlPbGQoZ3JpZEluZm8sICdQZXJtaXNzaW9uJyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbW9kaWZ5R3JpZEluZm8oZ3JpZEluZm8/OiBHcmlkSW5mbykge1xyXG4gICAgICAgIGdyaWRJbmZvLnNvcnRzID0gW1xyXG4gICAgICAgICAgICB7IGZpZWxkOiAnaWQnLCBkaXI6IC0xIH1cclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmICh0aGlzLl9pZHMgJiYgdGhpcy5faWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgbGV0IG9wZXJhdG9yID0gT3BlcmF0b3IuaW47XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgb3BlcmF0b3IgPSBPcGVyYXRvci5ub3RJbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnVuc2hpZnQoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaW5zdGFuY2VJZCcsIG9wZXJhdG9yLCB0aGlzLl9pZHMpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrQW5kR2V0RGF0YSgpIHtcclxuICAgICAgICBpZiAodGhpcy5faWRzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzaG93Rm9ybVBpY2tWYW5CYW4oKSB7XHJcbiAgICAgICAgdGhpcy5iZWZvcmVBZGQoKTtcclxuICAgICAgICB0aGlzLnNldHRpbmcucG9wdXBTaXplLm1heGltaXplID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcucG9wdXBIZWFkZXIgPSBgVGjDqm0gbeG7m2kgJHt0aGlzLnNldHRpbmcub2JqZWN0TmFtZX1gO1xyXG4gICAgICAgIHRoaXMuc2hvd0Zvcm1QaWNrZXIgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHBpY2tWYW5CYW5TZWxlY3RlZCgpIHtcclxuICAgICAgICB0aGlzLl9waWNrVmFuQmFuKHRoaXMubW9kZWwuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcGlja1ZhbkJhbihyb3dEYXRhKSB7XHJcbiAgICAgICAgdGhpcy5fcGlja1ZhbkJhbihbcm93RGF0YV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3BpY2tWYW5CYW4oaXRlbXMpIHtcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoe1xyXG4gICAgICAgICAgICBpZHM6IGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0uaW5zdGFuY2VJZCksXHJcbiAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgeG9hVmFuQmFuU2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgdGhpcy5feG9hVmFuQmFuKHRoaXMubW9kZWwuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgeG9hVmFuQmFuKHJvd0RhdGEpIHtcclxuICAgICAgICB0aGlzLl94b2FWYW5CYW4oW3Jvd0RhdGFdKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF94b2FWYW5CYW4oaXRlbXMpIHtcclxuICAgICAgICB0aGlzLm9uUmVtb3ZlZC5lbWl0KHtcclxuICAgICAgICAgICAgaWRzOiBpdGVtcy5tYXAoaXRlbSA9PiBpdGVtLmluc3RhbmNlSWQpLFxyXG4gICAgICAgICAgICBpdGVtc1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5hdmlnYXRlVG9WYW5CYW4ocm93RGF0YSkge1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKGAke3RoaXMuZW52aXJvbm1lbnQuY2xpZW50RG9tYWluLnZhbmJhbkRvbWFpbn0vdmFuYmFuZGkjX2E9MSZfaT0ke3Jvd0RhdGEuaWR9YCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVBpY2tlZChkYXRhKSB7XHJcbiAgICAgICAgLy8gY29uc3QgaWRzID0gW1xyXG4gICAgICAgIC8vICAgICAuLi50aGlzLl9pZHMsXHJcbiAgICAgICAgLy8gICAgIC4uLmRhdGEuaWRzLmZpbHRlcihxID0+IHRoaXMuX2lkcy5pbmRleE9mKHEpID09IC0xKVxyXG4gICAgICAgIC8vIF1cclxuICAgICAgICAvLyB0aGlzLmlkcyA9IGlkcztcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIjxjcnVkLWxpc3QgI2NydWRMaXN0IFttb2RlbF09XCJtb2RlbFwiIFtzZXR0aW5nXT1cInNldHRpbmdcIiBbZGF0YVNvdXJjZV09XCJtb2RlbC5kYXRhU291cmNlXCJcclxuICAgIChvblJlbG9hZCk9XCJfdHJpZ2dlclByb2Nlc3NEYXRhKCRldmVudClcIiAob25BZGQpPVwiX2FkZCgkZXZlbnQpXCIgKG9uRWRpdCk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uVmlldyk9XCJfdmlldygkZXZlbnQpXCJcclxuICAgIChvbkRlbGV0ZSk9XCJfZGVsZXRlKCRldmVudClcIiAob25EZWxldGVNdWx0aXBsZSk9XCJfZGVsZXRlTXVsdGlwbGUoJGV2ZW50KVwiIChvblJlbG9hZGVkKT1cIl91bm1hcmtMb2FkaW5nKClcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGlkZGVuUGlja2VyXCIgdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLWNoZWNrXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tcHJpbWFyeVwiIGxhYmVsPVwiQ2jhu41uIHbEg24gYuG6o25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGlja1ZhbkJhblNlbGVjdGVkKClcIj48L2J1dHRvbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1jbG9uZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJDaOG7jW4gdsSDbiBi4bqjblwiIChjbGljayk9XCJzaG93Rm9ybVBpY2tWYW5CYW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlclwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIljDs2EgdsSDbiBi4bqjblwiIChjbGljayk9XCJ4b2FWYW5CYW5TZWxlY3RlZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNmdW5jdGlvbiBsZXQtcm93RGF0YT1cInJvd0RhdGFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1leWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBsaW5rLW9yLWFjdGlvblwiIHBUb29sdGlwPVwiWGVtIGNoaSB0aeG6v3QgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwibmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwieG9hVmFuQmFuKHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwicGlja1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jcnVkLWxpc3Q+XHJcbjx0bi1kaWFsb2cgKm5nSWY9XCJzaG93Rm9ybVBpY2tlclwiICNkaWFsb2cgW3N0eWxlQ2xhc3NdPVwiJ3ZiLWRpLWZvcm0gdG4tZm9ybS1kaWFsb2cnXCJcclxuICAgIFtoZWFkZXJdPVwic2V0dGluZy5wb3B1cEhlYWRlciB8IHRyYW5zbGF0ZVwiIFtwb3B1cFNpemVdPVwic2V0dGluZy5wb3B1cFNpemVcIiAob25IaWRlKT1cInNob3dGb3JtUGlja2VyID0gZmFsc2VcIj5cclxuICAgIDxhcHAtdmFuYmFuLWRpLXBpY2tlciBbcGFyZW50TW9kZWxdPVwibW9kZWxcIiBbcGFyZW50Q29udGV4dF09XCJjb250ZXh0XCIgW2hpZGRlblBpY2tlcl09XCJ0cnVlXCIgW2lkc109XCJfaWRzXCJcclxuICAgICAgICAob25TYXZlZCk9XCJzaG93Rm9ybVBpY2tlciA9IGZhbHNlO2NydWRMaXN0LnJlbG9hZCgpXCIgKG9uQ2FuY2VsKT1cIl9oYW5kbGVDYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uUGlja2VkKT1cImhhbmRsZVBpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICA8L2FwcC12YW5iYW4tZGktcGlja2VyPlxyXG48L3RuLWRpYWxvZz4iXX0=
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFuYmFuLWRpLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3ZhbmJhbi1waWNrZXIvdmFuYmFuLWRpLXBpY2tlci92YW5iYW4tZGktcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvdmFuYmFuLXBpY2tlci92YW5iYW4tZGktcGlja2VyL3ZhbmJhbi1kaS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFZLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7O0FBV2pELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxZQUFZO0lBaUNyRCxZQUNjLFNBQW1CLEVBQ25CLGdCQUFpQyxFQUMzQyxtQkFBdUM7UUFFdkMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSlAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBNUJ0QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU3QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuQyxjQUFTLEdBQUcs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bXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgQ29sdW1uU2NoZW1hQmFzZSwgTW9kZWxTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9jb21tb24nO1xyXG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFuQmFuRGlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdmFuYmFuLWRpLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC12YW5iYW4tZGktcGlja2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92YW5iYW4tZGktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3ZhbmJhbi1kaS1waWNrZXIuY29tcG9uZW50LmNzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFuYmFuRGlQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gICAgX2lkczogc3RyaW5nW107XHJcbiAgICBASW5wdXQoKSBzZXQgaWRzKHZhbHVlOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHRoaXMuX2lkcyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBoaWRkZW5QaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25QaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBlbnZpcm9ubWVudDogYW55ID0ge307XHJcbiAgICAvKipcclxuICAgICAqIFThuqFvIHN1YnNjcmlwdGlvblxyXG4gICAgICovXHJcbiAgICB2YWx1ZSA9IG5ldyBTdWJqZWN0PHN0cmluZ1tdPigpO1xyXG4gICAgdmFsdWUkID0gdGhpcy52YWx1ZS5hc09ic2VydmFibGUoKTtcclxuICAgIHJlYWR5ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAgIHJlYWR5JCA9IHRoaXMucmVhZHkuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBzb3VyY2UgPSBjb21iaW5lTGF0ZXN0KFxyXG4gICAgICAgIHRoaXMudmFsdWUkLFxyXG4gICAgICAgIHRoaXMucmVhZHkkXHJcbiAgICApO1xyXG4gICAgc3ViID0gdGhpcy5zb3VyY2Uuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja0FuZEdldERhdGEoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHNlYXJjaFNjaGVtYTogYW55ID0ge307XHJcbiAgICBzZWFyY2hEYXRhOiBhbnkgPSB7fTtcclxuXHJcbiAgICBzaG93Rm9ybVBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBfdmFuQmFuRGlTZXJ2aWNlOiBWYW5CYW5EaVNlcnZpY2UsXHJcbiAgICAgICAgX2Vudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubG9hZERldGFpbEZyb21RdWVyeVBhcmFtID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlYWR5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fdmFuQmFuRGlTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nUGVybWlzc2lvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblNldHRpbmdXb3JrZmxvdyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNob3dFZGl0TGluayA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuUGFnZVRpdGxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLm1vZGVsU2NoZW1hcyA9IFtcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdzb0RpJywgZGF0YVR5cGU6ICdpbnQnLCBuYW1lOiAnU+G7kSDEkWknLCBmdWxsTmFtZTogJ1Phu5EgxJFpJywgZGVzY3JpcHRpb246ICdT4buRIMSRaScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnc29LeUhpZXUnLCBuYW1lOiAnU+G7kSwga8O9IGhp4buHdScsIGZ1bGxOYW1lOiAnU+G7kSwga8O9IGhp4buHdScsIGRlc2NyaXB0aW9uOiAnU+G7kSwga8O9IGhp4buHdScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAndHJpY2hZZXUnLCBuYW1lOiAnVHLDrWNoIHnhur91JywgZnVsbE5hbWU6ICcnLCBkZXNjcmlwdGlvbjogJycgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAnbmdheUJhbkhhbmgnLCBkYXRhVHlwZTogJ2RhdGUnLCBuYW1lOiAnTmfDoHkgYmFuIGjDoG5oJywgZnVsbE5hbWU6ICcnLCBkZXNjcmlwdGlvbjogJycgfSksXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29EaScsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMHB4J1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzb0t5SGlldScsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzE1MHB4J1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICd0cmljaFlldSdcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmdheUJhbkhhbmgnLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMjVweCdcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5maWVsZFNlYXJjaFRleHQgPSBbJ2NvZGUnLCAnbmFtZSddO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5vYmplY3ROYW1lID0gJyB2xINuIGLhuqNuIMSRaSc7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5yZWFkeS5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvbWlzZUdldERhdGEoZ3JpZEluZm86IEdyaWRJbmZvKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZS5nZXRCeUdyaWRSZXF1ZXN0V2l0aEJvZHlPbGQoZ3JpZEluZm8sICdQZXJtaXNzaW9uJyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbW9kaWZ5R3JpZEluZm8oZ3JpZEluZm8/OiBHcmlkSW5mbykge1xyXG4gICAgICAgIGdyaWRJbmZvLnNvcnRzID0gW1xyXG4gICAgICAgICAgICB7IGZpZWxkOiAnaWQnLCBkaXI6IC0xIH1cclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmICh0aGlzLl9pZHMgJiYgdGhpcy5faWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgbGV0IG9wZXJhdG9yID0gT3BlcmF0b3IuaW47XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgb3BlcmF0b3IgPSBPcGVyYXRvci5ub3RJbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnVuc2hpZnQoXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignaW5zdGFuY2VJZCcsIG9wZXJhdG9yLCB0aGlzLl9pZHMpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrQW5kR2V0RGF0YSgpIHtcclxuICAgICAgICBpZiAodGhpcy5faWRzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGRlblBpY2tlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5yZWFkeSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzaG93Rm9ybVBpY2tWYW5CYW4oKSB7XHJcbiAgICAgICAgdGhpcy5iZWZvcmVBZGQoKTtcclxuICAgICAgICB0aGlzLnNldHRpbmcucG9wdXBTaXplLm1heGltaXplID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcucG9wdXBIZWFkZXIgPSBgVGjDqm0gbeG7m2kgJHt0aGlzLnNldHRpbmcub2JqZWN0TmFtZX1gO1xyXG4gICAgICAgIHRoaXMuc2hvd0Zvcm1QaWNrZXIgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHBpY2tWYW5CYW5TZWxlY3RlZCgpIHtcclxuICAgICAgICB0aGlzLl9waWNrVmFuQmFuKHRoaXMubW9kZWwuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcGlja1ZhbkJhbihyb3dEYXRhKSB7XHJcbiAgICAgICAgdGhpcy5fcGlja1ZhbkJhbihbcm93RGF0YV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3BpY2tWYW5CYW4oaXRlbXMpIHtcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoe1xyXG4gICAgICAgICAgICBpZHM6IGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0uaW5zdGFuY2VJZCksXHJcbiAgICAgICAgICAgIGl0ZW1zXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgeG9hVmFuQmFuU2VsZWN0ZWQoKSB7XHJcbiAgICAgICAgdGhpcy5feG9hVmFuQmFuKHRoaXMubW9kZWwuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgeG9hVmFuQmFuKHJvd0RhdGEpIHtcclxuICAgICAgICB0aGlzLl94b2FWYW5CYW4oW3Jvd0RhdGFdKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF94b2FWYW5CYW4oaXRlbXMpIHtcclxuICAgICAgICB0aGlzLm9uUmVtb3ZlZC5lbWl0KHtcclxuICAgICAgICAgICAgaWRzOiBpdGVtcy5tYXAoaXRlbSA9PiBpdGVtLmluc3RhbmNlSWQpLFxyXG4gICAgICAgICAgICBpdGVtc1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5hdmlnYXRlVG9WYW5CYW4ocm93RGF0YSkge1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKGAke3RoaXMuZW52aXJvbm1lbnQuY2xpZW50RG9tYWluLnZhbmJhbkRvbWFpbn0vdmFuYmFuZGkjX2E9MSZfaT0ke3Jvd0RhdGEuaWR9YCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVBpY2tlZChkYXRhKSB7XHJcbiAgICAgICAgLy8gY29uc3QgaWRzID0gW1xyXG4gICAgICAgIC8vICAgICAuLi50aGlzLl9pZHMsXHJcbiAgICAgICAgLy8gICAgIC4uLmRhdGEuaWRzLmZpbHRlcihxID0+IHRoaXMuX2lkcy5pbmRleE9mKHEpID09IC0xKVxyXG4gICAgICAgIC8vIF1cclxuICAgICAgICAvLyB0aGlzLmlkcyA9IGlkcztcclxuICAgICAgICB0aGlzLm9uUGlja2VkLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiIsIjxjcnVkLWxpc3QgI2NydWRMaXN0IFttb2RlbF09XCJtb2RlbFwiIFtzZXR0aW5nXT1cInNldHRpbmdcIiBbZGF0YVNvdXJjZV09XCJtb2RlbC5kYXRhU291cmNlXCJcclxuICAgIChvblJlbG9hZCk9XCJfdHJpZ2dlclByb2Nlc3NEYXRhKCRldmVudClcIiAob25BZGQpPVwiX2FkZCgkZXZlbnQpXCIgKG9uRWRpdCk9XCJfZWRpdCgkZXZlbnQpXCIgKG9uVmlldyk9XCJfdmlldygkZXZlbnQpXCJcclxuICAgIChvbkRlbGV0ZSk9XCJfZGVsZXRlKCRldmVudClcIiAob25EZWxldGVNdWx0aXBsZSk9XCJfZGVsZXRlTXVsdGlwbGUoJGV2ZW50KVwiIChvblJlbG9hZGVkKT1cIl91bm1hcmtMb2FkaW5nKClcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGlkZGVuUGlja2VyXCIgdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLWNoZWNrXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tcHJpbWFyeVwiIGxhYmVsPVwiQ2jhu41uIHbEg24gYuG6o25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGlja1ZhbkJhblNlbGVjdGVkKClcIj48L2J1dHRvbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1jbG9uZVwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJDaOG7jW4gdsSDbiBi4bqjblwiIChjbGljayk9XCJzaG93Rm9ybVBpY2tWYW5CYW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlclwiXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIljDs2EgdsSDbiBi4bqjblwiIChjbGljayk9XCJ4b2FWYW5CYW5TZWxlY3RlZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNmdW5jdGlvbiBsZXQtcm93RGF0YT1cInJvd0RhdGFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS1leWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBsaW5rLW9yLWFjdGlvblwiIHBUb29sdGlwPVwiWGVtIGNoaSB0aeG6v3QgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwibmF2aWdhdGVUb1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwieG9hVmFuQmFuKHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGRlblBpY2tlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10cmFzaFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbGluay1vci1hY3Rpb25cIiBwVG9vbHRpcD1cIljDs2EgdsSDbiBi4bqjblwiXHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIiAoY2xpY2spPVwicGlja1ZhbkJhbihyb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jcnVkLWxpc3Q+XHJcbjx0bi1kaWFsb2cgKm5nSWY9XCJzaG93Rm9ybVBpY2tlclwiICNkaWFsb2cgW3N0eWxlQ2xhc3NdPVwiJ3ZiLWRpLWZvcm0gdG4tZm9ybS1kaWFsb2cnXCJcclxuICAgIFtoZWFkZXJdPVwic2V0dGluZy5wb3B1cEhlYWRlciB8IHRyYW5zbGF0ZVwiIFtwb3B1cFNpemVdPVwic2V0dGluZy5wb3B1cFNpemVcIiAob25IaWRlKT1cInNob3dGb3JtUGlja2VyID0gZmFsc2VcIj5cclxuICAgIDxhcHAtdmFuYmFuLWRpLXBpY2tlciBbcGFyZW50TW9kZWxdPVwibW9kZWxcIiBbcGFyZW50Q29udGV4dF09XCJjb250ZXh0XCIgW2hpZGRlblBpY2tlcl09XCJ0cnVlXCIgW2lkc109XCJfaWRzXCJcclxuICAgICAgICAob25TYXZlZCk9XCJzaG93Rm9ybVBpY2tlciA9IGZhbHNlO2NydWRMaXN0LnJlbG9hZCgpXCIgKG9uQ2FuY2VsKT1cIl9oYW5kbGVDYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uUGlja2VkKT1cImhhbmRsZVBpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICA8L2FwcC12YW5iYW4tZGktcGlja2VyPlxyXG48L3RuLWRpYWxvZz4iXX0=
|
package/esm2020/components/vanban-picker/vanban-picker-dialog/vanban-picker-dialog.component.mjs
CHANGED
|
@@ -61,7 +61,7 @@ export class VanBanPickerDialogComponent extends ComponentBase {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
VanBanPickerDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanPickerDialogComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
64
|
-
VanBanPickerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: VanBanPickerDialogComponent, selector: "app-vanban-picker-dialog", inputs: { control: "control", idVanBanDens: "idVanBanDens", idVanBanDis: "idVanBanDis" }, outputs: { onChanged: "onChanged", onReady: "onReady" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%\">\r\n <div style=\"height: 100%\">\r\n <p-tabView *ngIf=\"useAll\" #tab orientation=\"top\" [styleClass]=\"'tn-tabview-beauty'\"\r\n [activeIndex]=\"currentTabIndex\" (onChange)=\"onTabChange($event)\">\r\n <p-tabPanel [leftIcon]=\"'pi pi-exclamation-circle'\" header=\"V\u0103n b\u1EA3n \u0111\u1EBFn\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n <p-tabPanel [leftIcon]=\"'pi pi-list'\" header=\"V\u0103n b\u1EA3n \u0111i\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <ng-container *ngIf=\"!useAll && control.useVbDen\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!useAll && control.useVbDi\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ng-template #vbden>\r\n <app-vanban-den-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDens\" (onPicked)=\"handlePickedVbDen($event)\"\r\n (onRemoved)=\"handleRemovedVbDen($event)\"></app-vanban-den-picker>\r\n</ng-template>\r\n<ng-template #vbdi>\r\n <app-vanban-di-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDis\" (onPicked)=\"handlePickedVbDi($event)\"\r\n (onRemoved)=\"handleRemovedVbDi($event)\"></app-vanban-di-picker>\r\n</ng-template>", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.p-col-horizontal{padding:.5em;position:relative}.tn-check-box-list{position:relative}.tn-check-box-list.flex-end{justify-content:flex-end}.tn-check-box-list.flex-center{justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TabView, selector: "p-tabView", inputs: ["orientation", "
|
|
64
|
+
VanBanPickerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: VanBanPickerDialogComponent, selector: "app-vanban-picker-dialog", inputs: { control: "control", idVanBanDens: "idVanBanDens", idVanBanDis: "idVanBanDis" }, outputs: { onChanged: "onChanged", onReady: "onReady" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%\">\r\n <div style=\"height: 100%\">\r\n <p-tabView *ngIf=\"useAll\" #tab orientation=\"top\" [styleClass]=\"'tn-tabview-beauty'\"\r\n [activeIndex]=\"currentTabIndex\" (onChange)=\"onTabChange($event)\">\r\n <p-tabPanel [leftIcon]=\"'pi pi-exclamation-circle'\" header=\"V\u0103n b\u1EA3n \u0111\u1EBFn\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n <p-tabPanel [leftIcon]=\"'pi pi-list'\" header=\"V\u0103n b\u1EA3n \u0111i\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <ng-container *ngIf=\"!useAll && control.useVbDen\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!useAll && control.useVbDi\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ng-template #vbden>\r\n <app-vanban-den-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDens\" (onPicked)=\"handlePickedVbDen($event)\"\r\n (onRemoved)=\"handleRemovedVbDen($event)\"></app-vanban-den-picker>\r\n</ng-template>\r\n<ng-template #vbdi>\r\n <app-vanban-di-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDis\" (onPicked)=\"handlePickedVbDi($event)\"\r\n (onRemoved)=\"handleRemovedVbDi($event)\"></app-vanban-di-picker>\r\n</ng-template>", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.p-col-horizontal{padding:.5em;position:relative}.tn-check-box-list{position:relative}.tn-check-box-list.flex-end{justify-content:flex-end}.tn-check-box-list.flex-center{justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i2.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { kind: "component", type: i3.VanbanDiPickerComponent, selector: "app-vanban-di-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }, { kind: "component", type: i4.VanbanDenPickerComponent, selector: "app-vanban-den-picker", inputs: ["ids", "hiddenPicker"], outputs: ["onPicked", "onRemoved"] }] });
|
|
65
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanPickerDialogComponent, decorators: [{
|
|
66
66
|
type: Component,
|
|
67
67
|
args: [{ selector: 'app-vanban-picker-dialog', providers: [ComponentContextService], template: "<div style=\"height: 100%\">\r\n <div style=\"height: 100%\">\r\n <p-tabView *ngIf=\"useAll\" #tab orientation=\"top\" [styleClass]=\"'tn-tabview-beauty'\"\r\n [activeIndex]=\"currentTabIndex\" (onChange)=\"onTabChange($event)\">\r\n <p-tabPanel [leftIcon]=\"'pi pi-exclamation-circle'\" header=\"V\u0103n b\u1EA3n \u0111\u1EBFn\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n <p-tabPanel [leftIcon]=\"'pi pi-list'\" header=\"V\u0103n b\u1EA3n \u0111i\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </p-tabPanel>\r\n </p-tabView>\r\n <ng-container *ngIf=\"!useAll && control.useVbDen\">\r\n <ng-container *ngTemplateOutlet=\"vbden; context: {}\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!useAll && control.useVbDi\">\r\n <ng-container *ngTemplateOutlet=\"vbdi; context: {}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ng-template #vbden>\r\n <app-vanban-den-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDens\" (onPicked)=\"handlePickedVbDen($event)\"\r\n (onRemoved)=\"handleRemovedVbDen($event)\"></app-vanban-den-picker>\r\n</ng-template>\r\n<ng-template #vbdi>\r\n <app-vanban-di-picker [hiddenPicker]=\"true\" [ids]=\"idVanBanDis\" (onPicked)=\"handlePickedVbDi($event)\"\r\n (onRemoved)=\"handleRemovedVbDi($event)\"></app-vanban-di-picker>\r\n</ng-template>", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.p-col-horizontal{padding:.5em;position:relative}.tn-check-box-list{position:relative}.tn-check-box-list.flex-end{justify-content:flex-end}.tn-check-box-list.flex-center{justify-content:center}\n"] }]
|
|
@@ -281,7 +281,7 @@ VanBanPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
281
281
|
useExisting: forwardRef(() => VanBanPickerComponent),
|
|
282
282
|
multi: true
|
|
283
283
|
}
|
|
284
|
-
], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n [style]=\"{'min-height': '300px'}\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button *ngIf=\"readOnly\" type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'tn-form-dialog'\" [header]=\"setting.popupHeader | translate\"\r\n [popupSize]=\"setting.popupSize\" [useDefaultScrollBar]=\"true\" (onHide)=\"_handleCancel($event)\">\r\n <app-vanban-picker-dialog [parentModel]=\"model\" [parentContext]=\"context\" [control]=\"control\"\r\n [idVanBanDens]=\"idVanBanDens\" [idVanBanDis]=\"idVanBanDis\" (onCancel)=\"_handleCancel($event)\"\r\n (onChanged)=\"handleChangeValue($event)\">\r\n </app-vanban-picker-dialog>\r\n</tn-dialog>", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.p-col-horizontal{padding:.5em;position:relative}.tn-check-box-list{position:relative}.tn-check-box-list.flex-end{justify-content:flex-end}.tn-check-box-list.flex-center{justify-content:center}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "
|
|
284
|
+
], usesInheritance: true, ngImport: i0, template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n [style]=\"{'min-height': '300px'}\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n <ng-template #toolbar>\r\n <button type=\"button\" pButton icon=\"pi pi-clone\" class=\"p-button-text p-button-rounded p-button-success\"\r\n label=\"Ch\u1ECDn v\u0103n b\u1EA3n\" (click)=\"showFormPickVanBan()\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-trash\" class=\"p-button-text p-button-rounded p-button-danger\"\r\n label=\"X\u00F3a v\u0103n b\u1EA3n\" (click)=\"xoaVanBanSelected()\"></button>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <button type=\"button\" pButton icon=\"pi pi-eye\"\r\n class=\"p-button-text p-button-rounded p-button-success link-or-action\" pTooltip=\"Xem chi ti\u1EBFt v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"navigateToVanBan(rowData)\"></button>\r\n <button *ngIf=\"readOnly\" type=\"button\" pButton icon=\"pi pi-trash\"\r\n class=\"p-button-text p-button-rounded p-button-danger link-or-action\" pTooltip=\"X\u00F3a v\u0103n b\u1EA3n\"\r\n tooltipPosition=\"top\" (click)=\"xoaVanBan(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>\r\n<tn-dialog *ngIf=\"showFormPicker\" #dialog [styleClass]=\"'tn-form-dialog'\" [header]=\"setting.popupHeader | translate\"\r\n [popupSize]=\"setting.popupSize\" [useDefaultScrollBar]=\"true\" (onHide)=\"_handleCancel($event)\">\r\n <app-vanban-picker-dialog [parentModel]=\"model\" [parentContext]=\"context\" [control]=\"control\"\r\n [idVanBanDens]=\"idVanBanDens\" [idVanBanDis]=\"idVanBanDis\" (onCancel)=\"_handleCancel($event)\"\r\n (onChanged)=\"handleChangeValue($event)\">\r\n </app-vanban-picker-dialog>\r\n</tn-dialog>", styles: [".tn-check-box-list.p-grid{margin-bottom:-.5em}.p-col-horizontal{padding:.5em;position:relative}.tn-check-box-list{position:relative}.tn-check-box-list.flex-end{justify-content:flex-end}.tn-check-box-list.flex-center{justify-content:center}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i7.CrudListComponent, selector: "crud-list" }, { kind: "component", type: i8.VanBanPickerDialogComponent, selector: "app-vanban-picker-dialog", inputs: ["control", "idVanBanDens", "idVanBanDis"], outputs: ["onChanged", "onReady"] }, { kind: "component", type: i9.TnDialogComponent, selector: "tn-dialog", inputs: ["maskClass", "styleClass", "scrollBarStyleClass", "useDefaultScrollBar", "visible", "disabledButton", "modal", "header", "popupSize", "closeOnEscape", "showFooter", "positionTop", "minY", "hiddenSave", "maximizable"], outputs: ["onSave", "onCancel", "onShow", "onHide"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] });
|
|
285
285
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: VanBanPickerComponent, decorators: [{
|
|
286
286
|
type: Component,
|
|
287
287
|
args: [{ selector: 'vanban-picker', providers: [
|
|
@@ -49,7 +49,7 @@ export class ChoYKienFormComponent extends DataFormBase {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
ChoYKienFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ChoYKienFormComponent, deps: [{ token: i0.Injector }, { token: i1.WorkflowHistoryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
ChoYKienFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ChoYKienFormComponent, selector: "cho-y-kien-form", inputs: { bussinessSetting: "bussinessSetting", rowItem: "rowItem" }, usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "component", type: i4.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "useGridTemplate", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
52
|
+
ChoYKienFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ChoYKienFormComponent, selector: "cho-y-kien-form", inputs: { bussinessSetting: "bussinessSetting", rowItem: "rowItem" }, usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i4.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "useGridTemplate", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
53
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ChoYKienFormComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
55
|
args: [{ selector: 'cho-y-kien-form', template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>" }]
|
|
@@ -119,7 +119,7 @@ export class PermissionSharingComponent extends DataListBase {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
PermissionSharingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: PermissionSharingComponent, deps: [{ token: i0.Injector }, { token: i1.WorkflowPermissionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
-
PermissionSharingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: PermissionSharingComponent, selector: "permission-sharing", inputs: { baseService: "baseService", item: "item" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n [hiddenAdd]=\"true\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\"\r\n (onView)=\"_view($event)\" (onDelete)=\"delete($event)\" (onDeleteMultiple)=\"deleteMultiple($event)\"\r\n (onReloaded)=\"_handleReloaded($event)\">\r\n <ng-template #buttonBefore let-rowData=\"rowData\">\r\n <button type=\"button\" pButton icon=\"pi pi-copy\" class=\"p-button-text p-button-rounded link-or-action\"\r\n pTooltip=\"Copy v\u00E0o clipboard\" tooltipPosition=\"top\" (click)=\"copyLinkToClipboard(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>", styles: [".state-designer-container>div:first-child{font-weight:700;font-size:.9em;padding:.5em 0}.container-receiver div{margin-bottom:10px}.container-receiver div:last-child{margin-bottom:0}::ng-deep workflow-history-new tr.recalled{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "
|
|
122
|
+
PermissionSharingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: PermissionSharingComponent, selector: "permission-sharing", inputs: { baseService: "baseService", item: "item" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n [hiddenAdd]=\"true\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\"\r\n (onView)=\"_view($event)\" (onDelete)=\"delete($event)\" (onDeleteMultiple)=\"deleteMultiple($event)\"\r\n (onReloaded)=\"_handleReloaded($event)\">\r\n <ng-template #buttonBefore let-rowData=\"rowData\">\r\n <button type=\"button\" pButton icon=\"pi pi-copy\" class=\"p-button-text p-button-rounded link-or-action\"\r\n pTooltip=\"Copy v\u00E0o clipboard\" tooltipPosition=\"top\" (click)=\"copyLinkToClipboard(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>", styles: [".state-designer-container>div:first-child{font-weight:700;font-size:.9em;padding:.5em 0}.container-receiver div{margin-bottom:10px}.container-receiver div:last-child{margin-bottom:0}::ng-deep workflow-history-new tr.recalled{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.CrudListComponent, selector: "crud-list" }] });
|
|
123
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: PermissionSharingComponent, decorators: [{
|
|
124
124
|
type: Component,
|
|
125
125
|
args: [{ selector: 'permission-sharing', providers: [ComponentContextService], template: "<crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\r\n [hiddenAdd]=\"true\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\"\r\n (onView)=\"_view($event)\" (onDelete)=\"delete($event)\" (onDeleteMultiple)=\"deleteMultiple($event)\"\r\n (onReloaded)=\"_handleReloaded($event)\">\r\n <ng-template #buttonBefore let-rowData=\"rowData\">\r\n <button type=\"button\" pButton icon=\"pi pi-copy\" class=\"p-button-text p-button-rounded link-or-action\"\r\n pTooltip=\"Copy v\u00E0o clipboard\" tooltipPosition=\"top\" (click)=\"copyLinkToClipboard(rowData)\"></button>\r\n </ng-template>\r\n</crud-list>", styles: [".state-designer-container>div:first-child{font-weight:700;font-size:.9em;padding:.5em 0}.container-receiver div{margin-bottom:10px}.container-receiver div:last-child{margin-bottom:0}::ng-deep workflow-history-new tr.recalled{opacity:.5}\n"] }]
|
package/esm2020/components/workflow/process-workflow-form/process-workflow-form.component.mjs
CHANGED
|
@@ -246,7 +246,7 @@ export class ProcessWorkflowFormComponent extends DataFormBase {
|
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
248
|
ProcessWorkflowFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ProcessWorkflowFormComponent, deps: [{ token: i0.Injector }, { token: i1.StateMachinesService }, { token: i2.WorkflowHistoryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
249
|
-
ProcessWorkflowFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ProcessWorkflowFormComponent, selector: "process-workflow-form", inputs: { businessSetting: "businessSetting", item: "item", workflow: "workflow", action: "action" }, outputs: { onInvalidWorkflow: "onInvalidWorkflow" }, viewQueries: [{ propertyName: "formTargetAllowEdit", first: true, predicate: ["targetAllowEdit"], descendants: true }, { propertyName: "formTargetOnlyView", first: true, predicate: ["targetOnlyView"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crud-form *ngIf=\"formReady\" #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\"\r\n [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #separator>\r\n <div style=\"height: 3px; width: 100%; background: #2196f3;\"></div>\r\n </ng-template>\r\n</crud-form>\r\n<tn-tabview *ngIf=\"formReady\" [data]=\"mainTabData\" [allowViewAll]=\"true\" [isDynamicHeight]=\"true\">\r\n <ng-template #allowEdit>\r\n <process-workflow-target #targetAllowEdit [data]=\"dataAllowEdit\" [initValue]=\"initValueForTargetForm\">\r\n </process-workflow-target>\r\n </ng-template>\r\n <ng-template #onlyView>\r\n <process-workflow-target #targetOnlyView [data]=\"dataOnlyView\" [initValue]=\"initValueForTargetForm\"\r\n [action]=\"action\">\r\n </process-workflow-target>\r\n </ng-template>\r\n</tn-tabview>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "component", type: i5.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "useGridTemplate", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "component", type: i6.ProcessWorkflowTargetComponent, selector: "process-workflow-target", inputs: ["data", "initValue", "action"] }, { kind: "component", type: i7.TnTabViewComponent, selector: "tn-tabview", inputs: ["vertical", "data", "allowViewAll", "activeCode", "isDynamicHeight"], outputs: ["activeCodeChange", "tabContentChange"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
|
|
249
|
+
ProcessWorkflowFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ProcessWorkflowFormComponent, selector: "process-workflow-form", inputs: { businessSetting: "businessSetting", item: "item", workflow: "workflow", action: "action" }, outputs: { onInvalidWorkflow: "onInvalidWorkflow" }, viewQueries: [{ propertyName: "formTargetAllowEdit", first: true, predicate: ["targetAllowEdit"], descendants: true }, { propertyName: "formTargetOnlyView", first: true, predicate: ["targetOnlyView"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<crud-form *ngIf=\"formReady\" #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\"\r\n [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #separator>\r\n <div style=\"height: 3px; width: 100%; background: #2196f3;\"></div>\r\n </ng-template>\r\n</crud-form>\r\n<tn-tabview *ngIf=\"formReady\" [data]=\"mainTabData\" [allowViewAll]=\"true\" [isDynamicHeight]=\"true\">\r\n <ng-template #allowEdit>\r\n <process-workflow-target #targetAllowEdit [data]=\"dataAllowEdit\" [initValue]=\"initValueForTargetForm\">\r\n </process-workflow-target>\r\n </ng-template>\r\n <ng-template #onlyView>\r\n <process-workflow-target #targetOnlyView [data]=\"dataOnlyView\" [initValue]=\"initValueForTargetForm\"\r\n [action]=\"action\">\r\n </process-workflow-target>\r\n </ng-template>\r\n</tn-tabview>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i5.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "useGridTemplate", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "component", type: i6.ProcessWorkflowTargetComponent, selector: "process-workflow-target", inputs: ["data", "initValue", "action"] }, { kind: "component", type: i7.TnTabViewComponent, selector: "tn-tabview", inputs: ["vertical", "data", "allowViewAll", "activeCode", "isDynamicHeight"], outputs: ["activeCodeChange", "tabContentChange"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
|
|
250
250
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ProcessWorkflowFormComponent, decorators: [{
|
|
251
251
|
type: Component,
|
|
252
252
|
args: [{ selector: 'process-workflow-form', template: "<crud-form *ngIf=\"formReady\" #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\"\r\n [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #separator>\r\n <div style=\"height: 3px; width: 100%; background: #2196f3;\"></div>\r\n </ng-template>\r\n</crud-form>\r\n<tn-tabview *ngIf=\"formReady\" [data]=\"mainTabData\" [allowViewAll]=\"true\" [isDynamicHeight]=\"true\">\r\n <ng-template #allowEdit>\r\n <process-workflow-target #targetAllowEdit [data]=\"dataAllowEdit\" [initValue]=\"initValueForTargetForm\">\r\n </process-workflow-target>\r\n </ng-template>\r\n <ng-template #onlyView>\r\n <process-workflow-target #targetOnlyView [data]=\"dataOnlyView\" [initValue]=\"initValueForTargetForm\"\r\n [action]=\"action\">\r\n </process-workflow-target>\r\n </ng-template>\r\n</tn-tabview>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" [disabled]=\"model.submitting\" type=\"button\" pButton\r\n icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'FORM.SAVE' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>" }]
|
|
@@ -79,7 +79,7 @@ export class StartWorkflowComponent extends DataFormBase {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
StartWorkflowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StartWorkflowComponent, deps: [{ token: i0.Injector }, { token: i1.WorkflowSettingsService }, { token: i2.StateMachinesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
-
StartWorkflowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: StartWorkflowComponent, selector: "start-workflow", inputs: { workflows: "workflows", defaultWorkflow: "defaultWorkflow" }, outputs: { onInit: "onInit", onSaved: "onSaved", onCancel: "onCancel" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [styleClass]=\"'workflow-setting'\"\r\n [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #designer>\r\n <div *ngFor=\"let workflow of workflows\">\r\n <div class=\"title-workflow\">\r\n Quy tr\u00ECnh {{dicMachinesData[workflow.code].ten}} ({{workflow.code}})\r\n <span *ngIf=\"workflow.code == model.data.workflowCode\" class=\"pi pi-star\" pTooltip=\"Quy tr\u00ECnh \u0111\u00E3 ch\u1ECDn\"\r\n tooltipPosition=\"top\"></span>\r\n </div>\r\n <div class=\"state-machines-container\">\r\n <statemachines-designer #designer [data]=\"dicMachinesData[workflow.code]\" [viewOnly]=\"true\">\r\n </statemachines-designer>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <div class=\"footer-workflow-setting\">\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'B\u1EAFt \u0111\u1EA7u' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n </div>\r\n</ng-template>", styles: [".title-workflow{padding:1em 0 .5em;font-weight:700;font-size:.9em}.title-workflow .pi-star{color:orange}.state-machines-container{border:1px solid #ced4da;border-radius:3px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "
|
|
82
|
+
StartWorkflowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: StartWorkflowComponent, selector: "start-workflow", inputs: { workflows: "workflows", defaultWorkflow: "defaultWorkflow" }, outputs: { onInit: "onInit", onSaved: "onSaved", onCancel: "onCancel" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [styleClass]=\"'workflow-setting'\"\r\n [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #designer>\r\n <div *ngFor=\"let workflow of workflows\">\r\n <div class=\"title-workflow\">\r\n Quy tr\u00ECnh {{dicMachinesData[workflow.code].ten}} ({{workflow.code}})\r\n <span *ngIf=\"workflow.code == model.data.workflowCode\" class=\"pi pi-star\" pTooltip=\"Quy tr\u00ECnh \u0111\u00E3 ch\u1ECDn\"\r\n tooltipPosition=\"top\"></span>\r\n </div>\r\n <div class=\"state-machines-container\">\r\n <statemachines-designer #designer [data]=\"dicMachinesData[workflow.code]\" [viewOnly]=\"true\">\r\n </statemachines-designer>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <div class=\"footer-workflow-setting\">\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'B\u1EAFt \u0111\u1EA7u' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n </div>\r\n</ng-template>", styles: [".title-workflow{padding:1em 0 .5em;font-weight:700;font-size:.9em}.title-workflow .pi-star{color:orange}.state-machines-container{border:1px solid #ced4da;border-radius:3px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "useGridTemplate", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "component", type: i7.StateMachinesDesignerComponent, selector: "statemachines-designer", inputs: ["useScrollBar", "viewOnly", "data", "currentConnection", "containerId", "jsPlumbOption"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
|
|
83
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StartWorkflowComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
85
85
|
args: [{ selector: 'start-workflow', providers: [ComponentContextService], template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [styleClass]=\"'workflow-setting'\"\r\n [disableCaching]=\"true\" (onFormReady)=\"_handleFormReady($event)\">\r\n <ng-template #designer>\r\n <div *ngFor=\"let workflow of workflows\">\r\n <div class=\"title-workflow\">\r\n Quy tr\u00ECnh {{dicMachinesData[workflow.code].ten}} ({{workflow.code}})\r\n <span *ngIf=\"workflow.code == model.data.workflowCode\" class=\"pi pi-star\" pTooltip=\"Quy tr\u00ECnh \u0111\u00E3 ch\u1ECDn\"\r\n tooltipPosition=\"top\"></span>\r\n </div>\r\n <div class=\"state-machines-container\">\r\n <statemachines-designer #designer [data]=\"dicMachinesData[workflow.code]\" [viewOnly]=\"true\">\r\n </statemachines-designer>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <div class=\"footer-workflow-setting\">\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'B\u1EAFt \u0111\u1EA7u' | translate\"\r\n (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n </div>\r\n</ng-template>", styles: [".title-workflow{padding:1em 0 .5em;font-weight:700;font-size:.9em}.title-workflow .pi-star{color:orange}.state-machines-container{border:1px solid #ced4da;border-radius:3px}\n"] }]
|
|
@@ -494,7 +494,7 @@ export class WorkflowHistoryNewComponent extends DataListBase {
|
|
|
494
494
|
}
|
|
495
495
|
}
|
|
496
496
|
WorkflowHistoryNewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WorkflowHistoryNewComponent, deps: [{ token: i0.Injector }, { token: i1.WorkflowHistoryService }, { token: i2.CoCauToChucOldService }, { token: i3.UserGroupRealService }, { token: i4.DmChucVuService }, { token: i5.FileDataService }], target: i0.ɵɵFactoryTarget.Component });
|
|
497
|
-
WorkflowHistoryNewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: WorkflowHistoryNewComponent, selector: "workflow-history-new", inputs: { businessSetting: "businessSetting", isRelativeForm: "isRelativeForm", tableName: "tableName", item: "item", workflowSetting: "workflowSetting" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%\">\r\n <as-split direction=\"vertical\">\r\n <as-split-area [size]=\"40\">\r\n <div class=\"state-designer-container\">\r\n <div>\r\n S\u01A1 \u0111\u1ED3 quy tr\u00ECnh {{workflowTitle}}\r\n </div>\r\n <div>\r\n <statemachines-designer *ngIf=\"!waitToDetach && readyToRaw\" [data]=\"machinesData\"\r\n [currentConnection]=\"currentConnection\" [jsPlumbOption]=\"jsPlumbOption\" [viewOnly]=\"true\">\r\n </statemachines-designer>\r\n <after-view-checked *ngIf=\"waitToDetach\" (loaded)=\"waitToDetach = false\"></after-view-checked>\r\n </div>\r\n </div>\r\n </as-split-area>\r\n <as-split-area [size]=\"60\">\r\n <div style=\"height: 100%\">\r\n <crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\"\r\n [dataSource]=\"model.dataSource\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\">\r\n <ng-template #note let-rowData=\"rowData\">\r\n <div *ngIf=\"rowData.note==null?'':rowData.note\" [innerHTML]=\"rowData.note | safeHtml\"></div>\r\n </ng-template>\r\n <ng-template #receiver let-rowData=\"rowData\">\r\n <div *ngIf=\"!rowData.notInMainThread\" class=\"container-receiver\">\r\n <div *ngIf=\"rowData.struserIds\"><b>C\u00E1n b\u1ED9: </b>{{rowData.struserIds}}</div>\r\n <div *ngIf=\"rowData.strdonViIds\"><b>\u0110\u01A1n v\u1ECB: </b>{{rowData.strdonViIds}}</div>\r\n <div *ngIf=\"rowData.strgroupIds\"><b>Nh\u00F3m: </b>{{rowData.strgroupIds}}</div>\r\n <div *ngIf=\"rowData.strroleIds\"><b>Ch\u1EE9c v\u1EE5: </b>{{rowData.strroleIds}}</div>\r\n </div>\r\n <div *ngIf=\"rowData.notInMainThread\">\r\n <div *ngFor=\"let changedField of rowData.jsonModelChange\">\r\n {{changedField.field}},\r\n {{changedField.valueOld}} => {{changedField.valueNew}}\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #receiverView let-rowData=\"rowData\">\r\n <div class=\"container-receiver\">\r\n <div *ngIf=\"rowData.struserViewIds\"><b>C\u00E1n b\u1ED9: </b>{{rowData.struserViewIds}}</div>\r\n <div *ngIf=\"rowData.strdonViViewIds\"><b>\u0110\u01A1n v\u1ECB: </b>{{rowData.strdonViViewIds}}</div>\r\n <div *ngIf=\"rowData.strgroupViewIds\"><b>Nh\u00F3m: </b>{{rowData.strgroupViewIds}}</div>\r\n <div *ngIf=\"rowData.strroleViewIds\"><b>Ch\u1EE9c v\u1EE5: </b>{{rowData.strroleViewIds}}</div>\r\n </div>\r\n </ng-template>\r\n <ng-template #fileDinhKem let-rowData=\"rowData\">\r\n <file-manager [fileDataService]=\"fileDataService\"\r\n [serviceCode]=\"_workflowHistoryService.serviceCode\"\r\n [entity]=\"_workflowHistoryService.entityName\" [entityKey]=\"rowData.id\"\r\n [layout]=\"layoutFile.SIMPLE\" [readonly]=\"true\">\r\n </file-manager>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <button *ngIf=\"rowData.status == enumWorkflowHistoryStatus.IN_MAIN_THREAD\" pButton\r\n icon=\"pi pi-replay\" class=\"p-button-text p-button-rounded link-or-action\"\r\n pTooltip=\"Thu h\u1ED3i v\u1EC1 b\u01B0\u1EDBc n\u00E0y\" tooltipPosition=\"top\"\r\n (click)=\"rollbackByHistory(rowData)\"></button>\r\n </ng-template>\r\n </crud-list>\r\n </div>\r\n </as-split-area>\r\n </as-split>\r\n</div>", styles: [".state-designer-container{height:100%;display:flex;flex-direction:column}.state-designer-container>div:first-child{position:absolute;left:.5em;top:.5em;font-weight:700;font-size:.9em;padding:.5em 0}.state-designer-container>div:last-child{flex:1 1;overflow:auto}.container-receiver div{margin-bottom:10px}.container-receiver div:last-child{margin-bottom:0}::ng-deep workflow-history-new tr.recalled{opacity:.5}\n"], dependencies: [{ kind: "component", type: i6.SplitComponent, selector: "as-split", inputs: ["direction", "unit", "gutterSize", "gutterStep", "restrictMove", "useTransition", "disabled", "dir", "gutterDblClickDuration", "gutterClickDeltaPx", "gutterAriaLabel"], outputs: ["transitionEnd", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"], exportAs: ["asSplit"] }, { kind: "directive", type: i6.SplitAreaDirective, selector: "as-split-area, [as-split-area]", inputs: ["order", "size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "tooltipZIndex", "escape", "
|
|
497
|
+
WorkflowHistoryNewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: WorkflowHistoryNewComponent, selector: "workflow-history-new", inputs: { businessSetting: "businessSetting", isRelativeForm: "isRelativeForm", tableName: "tableName", item: "item", workflowSetting: "workflowSetting" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%\">\r\n <as-split direction=\"vertical\">\r\n <as-split-area [size]=\"40\">\r\n <div class=\"state-designer-container\">\r\n <div>\r\n S\u01A1 \u0111\u1ED3 quy tr\u00ECnh {{workflowTitle}}\r\n </div>\r\n <div>\r\n <statemachines-designer *ngIf=\"!waitToDetach && readyToRaw\" [data]=\"machinesData\"\r\n [currentConnection]=\"currentConnection\" [jsPlumbOption]=\"jsPlumbOption\" [viewOnly]=\"true\">\r\n </statemachines-designer>\r\n <after-view-checked *ngIf=\"waitToDetach\" (loaded)=\"waitToDetach = false\"></after-view-checked>\r\n </div>\r\n </div>\r\n </as-split-area>\r\n <as-split-area [size]=\"60\">\r\n <div style=\"height: 100%\">\r\n <crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\"\r\n [dataSource]=\"model.dataSource\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\">\r\n <ng-template #note let-rowData=\"rowData\">\r\n <div *ngIf=\"rowData.note==null?'':rowData.note\" [innerHTML]=\"rowData.note | safeHtml\"></div>\r\n </ng-template>\r\n <ng-template #receiver let-rowData=\"rowData\">\r\n <div *ngIf=\"!rowData.notInMainThread\" class=\"container-receiver\">\r\n <div *ngIf=\"rowData.struserIds\"><b>C\u00E1n b\u1ED9: </b>{{rowData.struserIds}}</div>\r\n <div *ngIf=\"rowData.strdonViIds\"><b>\u0110\u01A1n v\u1ECB: </b>{{rowData.strdonViIds}}</div>\r\n <div *ngIf=\"rowData.strgroupIds\"><b>Nh\u00F3m: </b>{{rowData.strgroupIds}}</div>\r\n <div *ngIf=\"rowData.strroleIds\"><b>Ch\u1EE9c v\u1EE5: </b>{{rowData.strroleIds}}</div>\r\n </div>\r\n <div *ngIf=\"rowData.notInMainThread\">\r\n <div *ngFor=\"let changedField of rowData.jsonModelChange\">\r\n {{changedField.field}},\r\n {{changedField.valueOld}} => {{changedField.valueNew}}\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #receiverView let-rowData=\"rowData\">\r\n <div class=\"container-receiver\">\r\n <div *ngIf=\"rowData.struserViewIds\"><b>C\u00E1n b\u1ED9: </b>{{rowData.struserViewIds}}</div>\r\n <div *ngIf=\"rowData.strdonViViewIds\"><b>\u0110\u01A1n v\u1ECB: </b>{{rowData.strdonViViewIds}}</div>\r\n <div *ngIf=\"rowData.strgroupViewIds\"><b>Nh\u00F3m: </b>{{rowData.strgroupViewIds}}</div>\r\n <div *ngIf=\"rowData.strroleViewIds\"><b>Ch\u1EE9c v\u1EE5: </b>{{rowData.strroleViewIds}}</div>\r\n </div>\r\n </ng-template>\r\n <ng-template #fileDinhKem let-rowData=\"rowData\">\r\n <file-manager [fileDataService]=\"fileDataService\"\r\n [serviceCode]=\"_workflowHistoryService.serviceCode\"\r\n [entity]=\"_workflowHistoryService.entityName\" [entityKey]=\"rowData.id\"\r\n [layout]=\"layoutFile.SIMPLE\" [readonly]=\"true\">\r\n </file-manager>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <button *ngIf=\"rowData.status == enumWorkflowHistoryStatus.IN_MAIN_THREAD\" pButton\r\n icon=\"pi pi-replay\" class=\"p-button-text p-button-rounded link-or-action\"\r\n pTooltip=\"Thu h\u1ED3i v\u1EC1 b\u01B0\u1EDBc n\u00E0y\" tooltipPosition=\"top\"\r\n (click)=\"rollbackByHistory(rowData)\"></button>\r\n </ng-template>\r\n </crud-list>\r\n </div>\r\n </as-split-area>\r\n </as-split>\r\n</div>", styles: [".state-designer-container{height:100%;display:flex;flex-direction:column}.state-designer-container>div:first-child{position:absolute;left:.5em;top:.5em;font-weight:700;font-size:.9em;padding:.5em 0}.state-designer-container>div:last-child{flex:1 1;overflow:auto}.container-receiver div{margin-bottom:10px}.container-receiver div:last-child{margin-bottom:0}::ng-deep workflow-history-new tr.recalled{opacity:.5}\n"], dependencies: [{ kind: "component", type: i6.SplitComponent, selector: "as-split", inputs: ["direction", "unit", "gutterSize", "gutterStep", "restrictMove", "useTransition", "disabled", "dir", "gutterDblClickDuration", "gutterClickDeltaPx", "gutterAriaLabel"], outputs: ["transitionEnd", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"], exportAs: ["asSplit"] }, { kind: "directive", type: i6.SplitAreaDirective, selector: "as-split-area, [as-split-area]", inputs: ["order", "size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i10.AfterViewCheckedComponent, selector: "after-view-checked", inputs: ["renderKey"], outputs: ["loaded", "loading", "unloading", "reRender"] }, { kind: "component", type: i11.CrudListComponent, selector: "crud-list" }, { kind: "component", type: i12.StateMachinesDesignerComponent, selector: "statemachines-designer", inputs: ["useScrollBar", "viewOnly", "data", "currentConnection", "containerId", "jsPlumbOption"] }, { kind: "component", type: i13.FileManagerComponent, selector: "file-manager", inputs: ["control", "fileDataService", "layout", "hiddenCreateFolder", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageSummary", "invalidFileLimitMessageDetail", "dataType", "rootFolderName", "serviceCode", "entity", "entityKey", "readonly", "inTaiLieu", "inTaiLieuChung", "copyToFolderId", "value", "multipleCheckWhenClickRow"], outputs: ["onInit", "onReady", "entityKeyChange", "closePopup", "valueChange", "onChanged", "onSelected"] }, { kind: "pipe", type: i14.SafeHtmlPipe, name: "safeHtml" }] });
|
|
498
498
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WorkflowHistoryNewComponent, decorators: [{
|
|
499
499
|
type: Component,
|
|
500
500
|
args: [{ selector: 'workflow-history-new', providers: [ComponentContextService], template: "<div style=\"height: 100%\">\r\n <as-split direction=\"vertical\">\r\n <as-split-area [size]=\"40\">\r\n <div class=\"state-designer-container\">\r\n <div>\r\n S\u01A1 \u0111\u1ED3 quy tr\u00ECnh {{workflowTitle}}\r\n </div>\r\n <div>\r\n <statemachines-designer *ngIf=\"!waitToDetach && readyToRaw\" [data]=\"machinesData\"\r\n [currentConnection]=\"currentConnection\" [jsPlumbOption]=\"jsPlumbOption\" [viewOnly]=\"true\">\r\n </statemachines-designer>\r\n <after-view-checked *ngIf=\"waitToDetach\" (loaded)=\"waitToDetach = false\"></after-view-checked>\r\n </div>\r\n </div>\r\n </as-split-area>\r\n <as-split-area [size]=\"60\">\r\n <div style=\"height: 100%\">\r\n <crud-list *ngIf=\"model.ready\" #crudList [model]=\"model\" [setting]=\"setting\"\r\n [dataSource]=\"model.dataSource\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\">\r\n <ng-template #note let-rowData=\"rowData\">\r\n <div *ngIf=\"rowData.note==null?'':rowData.note\" [innerHTML]=\"rowData.note | safeHtml\"></div>\r\n </ng-template>\r\n <ng-template #receiver let-rowData=\"rowData\">\r\n <div *ngIf=\"!rowData.notInMainThread\" class=\"container-receiver\">\r\n <div *ngIf=\"rowData.struserIds\"><b>C\u00E1n b\u1ED9: </b>{{rowData.struserIds}}</div>\r\n <div *ngIf=\"rowData.strdonViIds\"><b>\u0110\u01A1n v\u1ECB: </b>{{rowData.strdonViIds}}</div>\r\n <div *ngIf=\"rowData.strgroupIds\"><b>Nh\u00F3m: </b>{{rowData.strgroupIds}}</div>\r\n <div *ngIf=\"rowData.strroleIds\"><b>Ch\u1EE9c v\u1EE5: </b>{{rowData.strroleIds}}</div>\r\n </div>\r\n <div *ngIf=\"rowData.notInMainThread\">\r\n <div *ngFor=\"let changedField of rowData.jsonModelChange\">\r\n {{changedField.field}},\r\n {{changedField.valueOld}} => {{changedField.valueNew}}\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #receiverView let-rowData=\"rowData\">\r\n <div class=\"container-receiver\">\r\n <div *ngIf=\"rowData.struserViewIds\"><b>C\u00E1n b\u1ED9: </b>{{rowData.struserViewIds}}</div>\r\n <div *ngIf=\"rowData.strdonViViewIds\"><b>\u0110\u01A1n v\u1ECB: </b>{{rowData.strdonViViewIds}}</div>\r\n <div *ngIf=\"rowData.strgroupViewIds\"><b>Nh\u00F3m: </b>{{rowData.strgroupViewIds}}</div>\r\n <div *ngIf=\"rowData.strroleViewIds\"><b>Ch\u1EE9c v\u1EE5: </b>{{rowData.strroleViewIds}}</div>\r\n </div>\r\n </ng-template>\r\n <ng-template #fileDinhKem let-rowData=\"rowData\">\r\n <file-manager [fileDataService]=\"fileDataService\"\r\n [serviceCode]=\"_workflowHistoryService.serviceCode\"\r\n [entity]=\"_workflowHistoryService.entityName\" [entityKey]=\"rowData.id\"\r\n [layout]=\"layoutFile.SIMPLE\" [readonly]=\"true\">\r\n </file-manager>\r\n </ng-template>\r\n <ng-template #function let-rowData=\"rowData\">\r\n <button *ngIf=\"rowData.status == enumWorkflowHistoryStatus.IN_MAIN_THREAD\" pButton\r\n icon=\"pi pi-replay\" class=\"p-button-text p-button-rounded link-or-action\"\r\n pTooltip=\"Thu h\u1ED3i v\u1EC1 b\u01B0\u1EDBc n\u00E0y\" tooltipPosition=\"top\"\r\n (click)=\"rollbackByHistory(rowData)\"></button>\r\n </ng-template>\r\n </crud-list>\r\n </div>\r\n </as-split-area>\r\n </as-split>\r\n</div>", styles: [".state-designer-container{height:100%;display:flex;flex-direction:column}.state-designer-container>div:first-child{position:absolute;left:.5em;top:.5em;font-weight:700;font-size:.9em;padding:.5em 0}.state-designer-container>div:last-child{flex:1 1;overflow:auto}.container-receiver div{margin-bottom:10px}.container-receiver div:last-child{margin-bottom:0}::ng-deep workflow-history-new tr.recalled{opacity:.5}\n"] }]
|
package/esm2020/components/workflow/workflow-permission-form/workflow-permission-form.component.mjs
CHANGED
|
@@ -142,7 +142,7 @@ export class WorkflowPermissionFormComponent extends DataFormBase {
|
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
WorkflowPermissionFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WorkflowPermissionFormComponent, deps: [{ token: i0.Injector }, { token: i1.WorkflowPermissionService }, { token: i2.WorkflowPermissionDetailService }, { token: i3.UserGroupRealService }], target: i0.ɵɵFactoryTarget.Component });
|
|
145
|
-
WorkflowPermissionFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: WorkflowPermissionFormComponent, selector: "workflow-permission-form", inputs: { businessSetting: "businessSetting", itemId: "itemId" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\"\r\n [label]=\"'FORM.SAVE' | translate\" (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "label", "icon"] }, { kind: "component", type: i6.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "useGridTemplate", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
145
|
+
WorkflowPermissionFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: WorkflowPermissionFormComponent, selector: "workflow-permission-form", inputs: { businessSetting: "businessSetting", itemId: "itemId" }, providers: [ComponentContextService], usesInheritance: true, ngImport: i0, template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\"\r\n [label]=\"'FORM.SAVE' | translate\" (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i6.CrudFormComponent, selector: "crud-form", inputs: ["setting", "context", "filesUploaded", "isViewMode", "disableKeypressControl", "disableCaching", "styleClass", "useGridTemplate", "formId", "formClass", "autoFocus", "trapFocus", "data", "formState"], outputs: ["onFormReady", "onControlReady", "onAllControlReady", "onModelChanged", "dataChange", "onChange", "onAfterTrinhKy"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
146
146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: WorkflowPermissionFormComponent, decorators: [{
|
|
147
147
|
type: Component,
|
|
148
148
|
args: [{ selector: 'workflow-permission-form', providers: [ComponentContextService], template: "<crud-form #crudForm [(data)]=\"model.data\" [setting]=\"setting\" [context]=\"context\" [disableCaching]=\"true\"\r\n (onFormReady)=\"_handleFormReady($event)\">\r\n</crud-form>\r\n<ng-template #buttonTemplate>\r\n <button *ngIf=\"!model.data.__disableEdit && !__isFormView\" type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\"\r\n [label]=\"'FORM.SAVE' | translate\" (click)=\"_handleSave($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"_handleCancel($event)\"></button>\r\n</ng-template>\r\n" }]
|