tnx-shared 5.3.162 → 5.3.164
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/app-context/component-context.service.d.ts +0 -4
- package/app-context/component-context.service.d.ts.map +1 -1
- package/bundles/tnx-shared.umd.js +954 -512
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/base/component-base.d.ts.map +1 -1
- package/classes/base/i-list-component.d.ts +3 -0
- package/classes/base/i-list-component.d.ts.map +1 -1
- package/classes/base/list-base.d.ts +5 -2
- package/classes/base/list-base.d.ts.map +1 -1
- package/classes/base/list-component-base.d.ts +21 -5
- package/classes/base/list-component-base.d.ts.map +1 -1
- package/classes/form-schema.d.ts +10 -0
- package/classes/form-schema.d.ts.map +1 -1
- package/components/report-queue/report-queue.component.d.ts.map +1 -1
- package/components/settings/settings-authorize-button/settings-authorize-button.component.d.ts +20 -0
- package/components/settings/settings-authorize-button/settings-authorize-button.component.d.ts.map +1 -0
- package/components/settings/settings-authorize-button/settings-authorize-button.component.ngfactory.d.ts.map +1 -0
- package/components/settings/settings-authorize-button/settings-authorize-button.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/configs/component-context.constant.d.ts +8 -0
- package/configs/component-context.constant.d.ts.map +1 -1
- package/const/common.d.ts +2 -2
- package/const/common.d.ts.map +1 -1
- package/directives/authorize.directive.d.ts +8 -3
- package/directives/authorize.directive.d.ts.map +1 -1
- package/enums/common.d.ts +16 -0
- package/enums/common.d.ts.map +1 -1
- package/esm2015/app-context/component-context.service.js +4 -6
- package/esm2015/classes/base/component-base.js +5 -1
- package/esm2015/classes/base/i-list-component.js +1 -1
- package/esm2015/classes/base/list-base.js +20 -6
- package/esm2015/classes/base/list-component-base.js +121 -11
- package/esm2015/classes/form-schema.js +12 -1
- package/esm2015/components/crud/crud-list/crud-list.component.js +2 -2
- package/esm2015/components/report-queue/report-queue.component.js +1 -1
- package/esm2015/components/settings/settings-authorize-button/settings-authorize-button.component.js +142 -0
- package/esm2015/configs/component-context.constant.js +10 -2
- package/esm2015/const/common.js +5 -5
- package/esm2015/directives/authorize.directive.js +37 -6
- package/esm2015/enums/common.js +19 -1
- package/esm2015/services/authen.service.js +3 -1
- package/esm2015/services/basepermission.service.js +28 -0
- package/esm2015/services/common.service.js +1 -1
- package/esm2015/services/module-config.service.js +12 -2
- package/esm2015/tnx-shared.js +4 -2
- package/esm2015/tnx-shared.module.js +3 -1
- package/fesm2015/tnx-shared.js +630 -269
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/services/authen.service.d.ts.map +1 -1
- package/services/basepermission.service.d.ts +11 -0
- package/services/basepermission.service.d.ts.map +1 -0
- package/services/basepermission.service.ngfactory.d.ts.map +1 -0
- package/services/common.service.d.ts.map +1 -1
- package/services/module-config.service.d.ts.map +1 -1
- package/tnx-shared.d.ts +3 -1
- package/tnx-shared.d.ts.map +1 -1
- package/tnx-shared.metadata.json +1 -1
- package/tnx-shared.module.d.ts +2 -1
- package/tnx-shared.module.d.ts.map +1 -1
- package/tnx-shared.module.ngfactory.d.ts.map +1 -1
|
@@ -298,4 +298,4 @@ ReportQueueComponent.propDecorators = {
|
|
|
298
298
|
autoDownload: [{ type: Input }],
|
|
299
299
|
scrollbar: [{ type: ViewChild, args: ['scrollbar',] }]
|
|
300
300
|
};
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXF1ZXVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydC1xdWV1ZS9yZXBvcnQtcXVldWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQWEsT0FBTyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFGLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBT2xHLE1BQU0sT0FBTyxvQkFBb0I7SUFrQjdCLFlBQ1ksZ0JBQWlDLEVBQ2pDLGNBQTZCLEVBQzdCLFlBQWlDLEVBQ2pDLGVBQWdDLEVBQ2hDLGVBQStCLEVBQy9CLHVCQUErQyxFQUMvQyxZQUF5QjtRQU56QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FB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USxlQUFlO1lBSGYsYUFBYTtZQU1iLG1CQUFtQjtZQURuQixlQUFlO1lBRGYsY0FBYztZQUZkLHNCQUFzQjtZQUR0QixXQUFXOzs7OEJBZ0JmLEtBQUs7bUJBQ0wsS0FBSztxQkFDTCxLQUFLOzJCQUNMLEtBQUs7d0JBQ0wsU0FBUyxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb25zdGFudCB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRhbnRzJztcbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jcnVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGlnaFBlcmZvcm1hbmNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2hpZ2gtcGVyZm9ybWFuY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlJztcbmltcG9ydCB7IFNpZ25hbFJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2lnbmFsci5zZXJ2aWNlJztcbmltcG9ydCB7IFRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbXBsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsZUV4cGxvcmVyU2VydmljZSB9IGZyb20gJy4uL2ZpbGUtZXhwbG9yZXIvc2VydmljZXMvZmlsZS1leHBsb3Jlci5zZXJ2aWNlJztcbmltcG9ydCB7IEV4cG9ydEpvYiwgSm9iSXRlbSwgSm9iVHlwZXMsIFJFUE9SVF9RVUVVRV9DT05TVEFOVCB9IGZyb20gJy4vYmFzZS1qb2Ivam9iLWl0ZW0nO1xuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xuaW1wb3J0IHsgVG5DdXN0b21TY3JvbGxiYXJDb21wb25lbnQgfSBmcm9tICcuLi90bi1jdXN0b20tc2Nyb2xsYmFyL3RuLWN1c3RvbS1zY3JvbGxiYXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdyZXBvcnQtcXVldWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXBvcnQtcXVldWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3JlcG9ydC1xdWV1ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFF1ZXVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBwYXJlbnREYXRhTW9kZWw6IGFueTtcbiAgICBASW5wdXQoKSBuYW1lID0gJ3JlcG9ydFF1ZXVlJztcbiAgICBASW5wdXQoKSBoZWFkZXIgPSAnWHXhuqV0IGLDoW8gY8Ohbyc7XG4gICAgQElucHV0KCkgYXV0b0Rvd25sb2FkID0gZmFsc2U7XG4gICAgQFZpZXdDaGlsZCgnc2Nyb2xsYmFyJykgc2Nyb2xsYmFyOiBUbkN1c3RvbVNjcm9sbGJhckNvbXBvbmVudDtcbiAgICBtYXhOYW1lTGVuZ3RoID0gNDA7XG4gICAgZXhwYW5kID0gdHJ1ZTtcbiAgICBxdWV1ZU5hbWUgPSAnUkVQT1JUX1FVRVVFJztcbiAgICBodWIgPSAnQ29tbW9uSHViJztcblxuICAgIGRpY1N0YXR1cyA9IFJFUE9SVF9RVUVVRV9DT05TVEFOVC5kaWNTdGF0dXM7XG4gICAgc3RhdHVzZXMgPSBSRVBPUlRfUVVFVUVfQ09OU1RBTlQuc3RhdHVzZXM7XG5cbiAgICBfcXVldWU6IEpvYkl0ZW1bXSA9IFtdO1xuICAgIG1heEhlaWdodCA9IDIwMDtcbiAgICBpdGVtSGVpZ2h0ID0gNTA7XG4gICAgcG9wdXBIZWlnaHQgPSB0aGlzLml0ZW1IZWlnaHQ7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX25vdGlmaWVyU2VydmljZTogTm90aWZpZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9maWxlU2VydmljZTogRmlsZUV4cGxvcmVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfdGVtcGF0ZVNlcnZpY2U6IFRlbXBsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfc2lnbmFsUlNlcnZpY2U6IFNpZ25hbFJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9oaWdoUGVyZm9ybWFuY2VTZXJ2aWNlOiBIaWdoUGVyZm9ybWFuY2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jcnVkU2VydmljZTogQ3J1ZFNlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50RGF0YU1vZGVsICYmIHRoaXMubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnREYXRhTW9kZWxbdGhpcy5uYW1lXSA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b2dnbGVFeHBhbmQoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kID0gIXRoaXMuZXhwYW5kO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRow6ptIGpvYiB2w6BvIMSR4buDIHRo4buxYyBoaeG7h25cbiAgICAgKi9cbiAgICBhc3luYyBhZGRKb2IoZXhwb3J0Sm9iOiBFeHBvcnRKb2IpIHtcbiAgICAgICAgdmFyIGZvdW5kSW5kZXggPSB0aGlzLl9xdWV1ZS5maW5kSW5kZXgoam9iID0+IGpvYi5fY29kZSA9PSBleHBvcnRKb2IudGVtcGxhdGVDb2RlICYmIGpvYi5fc3RhdHVzID09IHRoaXMuc3RhdHVzZXMuRXhwb3J0aW5nKTtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmcoXCJGaWxlIGPDuW5nIGxv4bqhaSDEkWFuZyDEkcaw4bujYyB44butIGzDvSwgdGjhu60gbOG6oWkgc2F1IGtoaSB44butIGzDvSB4b25nIVwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBqb2IgPSBuZXcgSm9iSXRlbShleHBvcnRKb2IudGVtcGxhdGVDb2RlLCB7fSwgZXhwb3J0Sm9iLmZpbGVOYW1lIHx8IGV4cG9ydEpvYi50ZW1wbGF0ZUNvZGUsIHRoaXMuc3RhdHVzZXMuRXhwb3J0aW5nKTtcbiAgICAgICAgdGhpcy5fcXVldWUucHVzaChqb2IpO1xuICAgICAgICB0aGlzLnVwZGF0ZVBvcHVwSGVpZ2h0KCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxiYXIuc2Nyb2xsVG9Cb3R0b20oKTtcbiAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgdmFyIHJzRGF0YSA9IGF3YWl0IGV4cG9ydEpvYi5kYXRhUHJvbWlzZTtcbiAgICAgICAgaWYgKHJzRGF0YS5kYXRhID09IG51bGwpIHtcbiAgICAgICAgICAgIGpvYi5fc3RhdHVzID0gdGhpcy5zdGF0dXNlcy5FcnJvcjtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShyc0RhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV4cG9ydEpvYi5jYikge1xuICAgICAgICAgICAgam9iLl9kYXRhID0gKDxGdW5jdGlvbj5leHBvcnRKb2IuY2IpKHJzRGF0YS5kYXRhKTtcbiAgICAgICAgfSBlbHNlIGlmIChleHBvcnRKb2Iucm9vdE5hbWUpIHtcbiAgICAgICAgICAgIGpvYi5fZGF0YVtleHBvcnRKb2Iucm9vdE5hbWVdID0gcnNEYXRhLmRhdGE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBqb2IuX2RhdGEgPSByc0RhdGEuZGF0YTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoZXhwb3J0Sm9iLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgSm9iVHlwZXMuTm9ybWFsOlxuICAgICAgICAgICAgICAgIHRoaXMuRXhwb3J0KGpvYik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEpvYlR5cGVzLlNpbmduYWxSOlxuICAgICAgICAgICAgICAgIHRoaXMuRXhwb3J0V2l0aFNpZ25hbFIoam9iKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSm9iVHlwZXMuTWFueTpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRow6ptIGpvYiB2w6BvIMSR4buDIHRo4buxYyBoaeG7h25cbiAgICAgKiAgLSB0ZW1wbGF0ZUNvZGU6IGNvZGUgdGVtcGxhdGUgY+G6pXUgaMOsbmggYsOqbiBxdeG6o24gdHLhu4tcbiAgICAgKiAgLSBkYXRhOiBk4buvIGxp4buHdSBleHBvcnRcbiAgICAgKiAgLSBmaWxlTmFtZTogdMOqbiBj4bunYSBmaWxlIMSRxrDhu6NjIGzGsHVcbiAgICAgKiAgLSB1c2VTaWduYWxSOiB0aGF5IHbDrCBn4buNaSByZXF1ZXN0IHbDoCBjaOG7nSDEkeG6v24ga2hpIHRo4buxYyBoaeG7h24geG9uZ1xuICAgICAqICAgICAgdHLhuqMgduG7gSBiaW5hcnlGaWxlIHRow6wgdOG6oW8gdGnhur9uIHRyw6xuaCByacOqbmcgxJHhu4MgZXhwb3J0LCB2w6AgZMO5bmcgc2lnbmFsUiB0aMO0bmdcbiAgICAgKiAgICAgIGLDoW8ga+G6v3QgcXXhuqMgZXhwb3J0LCB0cuG6oyB24buBIGZpbGVJZCDEkeG7gyB04bqjaS5cbiAgICAgKi9cbiAgICBhc3luYyBhZGRKb2JXaXRoRGF0YShcbiAgICAgICAgdGVtcGxhdGVDb2RlOiBzdHJpbmcsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGZpbGVOYW1lLFxuICAgICAgICB1c2VTaWduYWxSID0gZmFsc2VcbiAgICApIHtcbiAgICAgICAgdmFyIGZvdW5kSW5kZXggPSB0aGlzLl9xdWV1ZS5maW5kSW5kZXgoam9iID0+IGpvYi5fY29kZSA9PSB0ZW1wbGF0ZUNvZGUgJiYgam9iLl9zdGF0dXMgPT0gdGhpcy5zdGF0dXNlcy5FeHBvcnRpbmcpO1xuICAgICAgICBpZiAoZm91bmRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZyhcIkZpbGUgY8O5bmcgbG/huqFpIMSRYW5nIMSRxrDhu6NjIHjhu60gbMO9LCB0aOG7rSBs4bqhaSBzYXUga2hpIHjhu60gbMO9IHhvbmchXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGpvYiA9IG5ldyBKb2JJdGVtKHRlbXBsYXRlQ29kZSwgZGF0YSwgZmlsZU5hbWUgfHwgdGVtcGxhdGVDb2RlLCB0aGlzLnN0YXR1c2VzLkV4cG9ydGluZyk7XG4gICAgICAgIHRoaXMuX3F1ZXVlLnB1c2goam9iKTtcbiAgICAgICAgaWYgKHVzZVNpZ25hbFIpIHtcbiAgICAgICAgICAgIHRoaXMuRXhwb3J0V2l0aFNpZ25hbFIoam9iKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuRXhwb3J0KGpvYik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBFeHBvcnQoam9iOiBKb2JJdGVtKSB7XG4gICAgICAgIHRoaXMuX3RlbXBhdGVTZXJ2aWNlLmV4cG9ydEN4RXhjZWxCeUNvZGVQcm9taXNlKHsgY29kZTogam9iLl9jb2RlLCBkYXRhOiBKU09OLnN0cmluZ2lmeShqb2IuX2RhdGEpLCBmaWxlTmFtZTogam9iLl9maWxlTmFtZSB9KVxuICAgICAgICAgICAgLnRoZW4oZmlsZSA9PiB7XG4gICAgICAgICAgICAgICAgam9iLl9zdGF0dXMgPSB0aGlzLnN0YXR1c2VzLlN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgam9iLl9iaW5hcnlGaWxlID0gZmlsZTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9Eb3dubG9hZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkKGpvYik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuY2F0Y2goYXN5bmMgZXJyID0+IHtcbiAgICAgICAgICAgICAgICBqb2IuX3N0YXR1cyA9IHRoaXMuc3RhdHVzZXMuRXJyb3I7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgZXJyLmVycm9yLnRleHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShKU09OLnBhcnNlKGVycm9yVGV4dCB8fCAnJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXN5bmMgRXhwb3J0V2l0aFNpZ25hbFIoam9iOiBKb2JJdGVtKSB7XG4gICAgICAgIGNvbnN0IHRvcGljID0gdGhpcy5fY29tbW9uU2VydmljZS5ndWlkKCk7XG4gICAgICAgIGpvYi5fdW5pcXVlS2V5ID0gdG9waWM7XG4gICAgICAgIHRoaXMuX3NpZ25hbFJTZXJ2aWNlLnN0YXJ0KHRoaXMuaHViLCB0b3BpYywgKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgICAgIHZhciBycyA9IEpTT04ucGFyc2UobWVzc2FnZSk7XG4gICAgICAgICAgICBpZiAocnMuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIGpvYi5fc3RhdHVzID0gdGhpcy5zdGF0dXNlcy5TdWNjZXNzO1xuICAgICAgICAgICAgICAgIGpvYi5fZmlsZUlkID0gcnMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvRG93bmxvYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZChqb2IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgam9iLl9zdGF0dXMgPSB0aGlzLnN0YXR1c2VzLkVycm9yO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKHJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdGVtcGF0ZVNlcnZpY2UuRXhwb3J0Q3hFeGNlbEJ5Q29kZVdpdGhTaWduYWxSKHsgY29kZTogam9iLl9jb2RlLCBkYXRhOiBKU09OLnN0cmluZ2lmeShqb2IuX2RhdGEpLCBmaWxlTmFtZTogam9iLl9maWxlTmFtZSwgdG9waWM6IHRvcGljIH0pXG4gICAgICAgICAgICAudGhlbihycyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFycy5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGpvYi5fc3RhdHVzID0gdGhpcy5zdGF0dXNlcy5FcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UocnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmNhdGNoKGFzeW5jIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgam9iLl9zdGF0dXMgPSB0aGlzLnN0YXR1c2VzLkVycm9yO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKGVyci5lcnJvcik7XG4gICAgICAgICAgICB9KTs7XG4gICAgfVxuXG4gICAgYXN5bmMgRXhwb3J0Q3hFeGNlbEJ5Q29kZVdpdGhIUFMoam9iOiBKb2JJdGVtKSB7XG4gICAgICAgIHRoaXMuX2hpZ2hQZXJmb3JtYW5jZVNlcnZpY2UuY3JlYXRlUHJvY2Vzcyh0aGlzLnF1ZXVlTmFtZSwgKGFyck1lc3NhZ2UpID0+IHtcbiAgICAgICAgICAgIHZhciBtZXNzYWdlID0gYXJyTWVzc2FnZS5wb3AoKTtcbiAgICAgICAgICAgIHZhciBycyA9IEpTT04ucGFyc2UobWVzc2FnZSk7XG4gICAgICAgICAgICBpZiAocnMuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIGpvYi5fc3RhdHVzID0gdGhpcy5zdGF0dXNlcy5TdWNjZXNzO1xuICAgICAgICAgICAgICAgIGpvYi5fZmlsZUlkID0gcnMuZGF0YTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvRG93bmxvYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZmlsZVNlcnZpY2UuZG93bmxvYWRGaWxlKGpvYi5fZmlsZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgam9iLl9zdGF0dXMgPSB0aGlzLnN0YXR1c2VzLkRvd25sb2FkZWQ7XG4gICAgICAgICAgICAgICAgICAgIGpvYi5fZmlsZUlkID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGpvYi5fc3RhdHVzID0gdGhpcy5zdGF0dXNlcy5FcnJvcjtcbiAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4ocnMgPT4ge1xuICAgICAgICAgICAgam9iLl91bmlxdWVLZXkgPSBycztcblxuICAgICAgICAgICAgdGhpcy5fdGVtcGF0ZVNlcnZpY2UuRXhwb3J0Q3hFeGNlbEJ5Q29kZVdpdGhIUFMoe1xuICAgICAgICAgICAgICAgIGNvZGU6IGpvYi5fY29kZSxcbiAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShqb2IuX2RhdGEpLFxuICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBqb2IuX2ZpbGVOYW1lLFxuICAgICAgICAgICAgICAgIHRvcGljOiB0aGlzLnF1ZXVlTmFtZSxcbiAgICAgICAgICAgICAgICB1bmlxdWVLZXk6IGpvYi5fdW5pcXVlS2V5XG4gICAgICAgICAgICB9KS50aGVuKHJzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJzLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgam9iLl9zdGF0dXMgPSB0aGlzLnN0YXR1c2VzLkVycm9yO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgICAgICBqb2IuX3N0YXR1cyA9IHRoaXMuc3RhdHVzZXMuRXJyb3I7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJM4buXaSBn4buNaSBhcGkgc2VydmVyIGV4cG9ydFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgICAgICBqb2IuX3N0YXR1cyA9IHRoaXMuc3RhdHVzZXMuRXJyb3I7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJM4buXaSBn4buNaSBIUFMgc2VydmljZSA6KFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRvd25sb2FkKGpvYikge1xuICAgICAgICBpZiAoam9iLl9zdGF0dXMgPT0gdGhpcy5zdGF0dXNlcy5Eb3dubG9hZGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGpvYi5fZmlsZUlkKSB7XG4gICAgICAgICAgICB0aGlzLl9maWxlU2VydmljZS5kb3dubG9hZEZpbGUoam9iLl9maWxlSWQsIGZhbHNlLCBqb2IuX2ZpbGVOYW1lKTtcbiAgICAgICAgfSBlbHNlIGlmIChqb2IuX2JpbmFyeUZpbGUpIHtcbiAgICAgICAgICAgIEZpbGVTYXZlci5zYXZlQXMoam9iLl9iaW5hcnlGaWxlLCBqb2IuX2ZpbGVOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBqb2IuX3N0YXR1cyA9IHRoaXMuc3RhdHVzZXMuRG93bmxvYWRlZDtcbiAgICAgICAgam9iLl9iaW5hcnlGaWxlID0gbnVsbDtcbiAgICAgICAgam9iLl9maWxlSWQgPSBudWxsO1xuICAgIH1cblxuICAgIHNob3dRdWV1ZSgpIHtcbiAgICAgICAgbGV0IHNob3cgPSB0aGlzLl9xdWV1ZSAmJiB0aGlzLl9xdWV1ZS5sZW5ndGggPiAwO1xuXG4gICAgICAgIHJldHVybiBzaG93O1xuICAgIH1cblxuICAgIGdldE5hbWUoam9iKSB7XG4gICAgICAgIHZhciBuYW1lID0gam9iLl9maWxlTmFtZS5sZW5ndGggPiB0aGlzLm1heE5hbWVMZW5ndGggPyBgJHtqb2IuX2ZpbGVOYW1lLnN1YnN0cigwLCB0aGlzLm1heE5hbWVMZW5ndGggLSAxMCl9Wy4uLl0ke1RlbXBsYXRlQ29uc3RhbnQuRVhDRUxfRVhURU5TSU9OfWAgOiBqb2IuX2ZpbGVOYW1lO1xuICAgICAgICByZXR1cm4gbmFtZTtcbiAgICB9XG5cbiAgICBjYW5jZWxKb2Ioam9iKSB7XG4gICAgICAgIGxldCBmb3VuZEluZGV4ID0gdGhpcy5fcXVldWUuZmluZEluZGV4KGogPT4gai5fY29kZSA9PSBqb2IuX2NvZGUpO1xuICAgICAgICBpZiAoZm91bmRJbmRleCA9PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZvdW5kSm9iID0gdGhpcy5fcXVldWVbZm91bmRJbmRleF07XG4gICAgICAgIGlmIChmb3VuZEpvYi5fc3RhdHVzID09IHRoaXMuc3RhdHVzZXMuRXhwb3J0aW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2VcbiAgICAgICAgICAgICAgICAuc2hvd0NvbmZpcm0oJ0ZpbGUgbsOgeSDEkWFuZyDEkcaw4bujYyB44butIGzDvS4gQuG6oW4gY8OzIG114buRbiBk4burbmcgbOG6oWk/JywgJ0jhu6d5IHh14bqldCBmaWxlJylcbiAgICAgICAgICAgICAgICAudGhlbihycyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcnMpIHsgcmV0dXJuOyB9XG4gICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVW5zdWJzY3JpYmUgPSBmb3VuZEpvYi5fdHlwZSA9PSBKb2JUeXBlcy5TaW5nbmFsUiAmJiBmb3VuZEpvYi5fdW5pcXVlS2V5O1xuICAgICAgICAgICAgICAgICAgICBpZiAobmVlZFVuc3Vic2NyaWJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaWduYWxSU2VydmljZS51blN1YnNjcmliZVZpZXdDb2RlKGZvdW5kSm9iLl91bmlxdWVLZXksIHRoaXMuaHViKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9xdWV1ZS5zcGxpY2UoZm91bmRJbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUG9wdXBIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChmb3VuZEpvYi5fc3RhdHVzICE9IHRoaXMuc3RhdHVzZXMuRXhwb3J0aW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9xdWV1ZS5zcGxpY2UoZm91bmRJbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvcHVwSGVpZ2h0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgdmFyIGhhc0V4cG9ydGluZyA9IHRoaXMuX3F1ZXVlICYmIHRoaXMuX3F1ZXVlLmZpbHRlcihpdGVtID0+IGl0ZW0uX3N0YXR1cyA9PSB0aGlzLnN0YXR1c2VzLkV4cG9ydGluZykubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAoaGFzRXhwb3J0aW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2VcbiAgICAgICAgICAgICAgICAuc2hvd0NvbmZpcm0oJ0PDsyBmaWxlIMSRYW5nIMSRxrDhu6NjIHjhu60gbMO9LiBC4bqhbiBjw7MgbXXhu5FuIGThu6tuZyBs4bqhaT8nLCAnSOG7p3kgeHXhuqV0IGZpbGUnKVxuICAgICAgICAgICAgICAgIC50aGVuKHJzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFycykgeyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRVbnN1YnNjcmliZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9xdWV1ZS5mb3JFYWNoKGpvYiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVW5zdWJzY3JpYmUgPSBqb2IuX3R5cGUgPT0gSm9iVHlwZXMuU2luZ25hbFIgJiYgam9iLl91bmlxdWVLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmVlZFVuc3Vic2NyaWJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2lnbmFsUlNlcnZpY2UudW5TdWJzY3JpYmVWaWV3Q29kZShqb2IuX3VuaXF1ZUtleSwgdGhpcy5odWIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcXVldWUgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQb3B1cEhlaWdodCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcXVldWUgPSBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVBvcHVwSGVpZ2h0KCkge1xuICAgICAgICBsZXQgaGVpZ2h0ID0gKHRoaXMuX3F1ZXVlIHx8IFtdKS5sZW5ndGggKiB0aGlzLml0ZW1IZWlnaHQ7XG4gICAgICAgIHRoaXMucG9wdXBIZWlnaHQgPSBoZWlnaHQgPiB0aGlzLm1heEhlaWdodCA/IHRoaXMubWF4SGVpZ2h0IDogaGVpZ2h0O1xuICAgIH1cbn1cblxuIl19
|
|
301
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXF1ZXVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydC1xdWV1ZS9yZXBvcnQtcXVldWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RixPQUFPLEVBQWEsT0FBTyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFGLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBT2xHLE1BQU0sT0FBTyxvQkFBb0I7SUFrQjdCLFlBQ1ksZ0JBQWlDLEVBQ2pDLGNBQTZCLEVBQzdCLFlBQWlDLEVBQ2pDLGVBQWdDLEVBQ2hDLGVBQStCLEVBQy9CLHVCQUErQyxFQUMvQyxZQUF5QjtRQU56QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FB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USxlQUFlO1lBSGYsYUFBYTtZQU1iLG1CQUFtQjtZQURuQixlQUFlO1lBRGYsY0FBYztZQUZkLHNCQUFzQjtZQUR0QixXQUFXOzs7OEJBZ0JmLEtBQUs7bUJBQ0wsS0FBSztxQkFDTCxLQUFLOzJCQUNMLEtBQUs7d0JBQ0wsU0FBUyxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb25zdGFudCB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRhbnRzJztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NydWQuc2VydmljZSc7XG5pbXBvcnQgeyBIaWdoUGVyZm9ybWFuY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaGlnaC1wZXJmb3JtYW5jZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2lnbmFsUlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaWduYWxyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVtcGxhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlRXhwbG9yZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsZS1leHBsb3Jlci9zZXJ2aWNlcy9maWxlLWV4cGxvcmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwb3J0Sm9iLCBKb2JJdGVtLCBKb2JUeXBlcywgUkVQT1JUX1FVRVVFX0NPTlNUQU5UIH0gZnJvbSAnLi9iYXNlLWpvYi9qb2ItaXRlbSc7XG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBUbkN1c3RvbVNjcm9sbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3RuLWN1c3RvbS1zY3JvbGxiYXIvdG4tY3VzdG9tLXNjcm9sbGJhci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3JlcG9ydC1xdWV1ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JlcG9ydC1xdWV1ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmVwb3J0LXF1ZXVlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0UXVldWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHBhcmVudERhdGFNb2RlbDogYW55O1xuICAgIEBJbnB1dCgpIG5hbWUgPSAncmVwb3J0UXVldWUnO1xuICAgIEBJbnB1dCgpIGhlYWRlciA9ICdYdeG6pXQgYsOhbyBjw6FvJztcbiAgICBASW5wdXQoKSBhdXRvRG93bmxvYWQgPSBmYWxzZTtcbiAgICBAVmlld0NoaWxkKCdzY3JvbGxiYXInKSBzY3JvbGxiYXI6IFRuQ3VzdG9tU2Nyb2xsYmFyQ29tcG9uZW50O1xuICAgIG1heE5hbWVMZW5ndGggPSA0MDtcbiAgICBleHBhbmQgPSB0cnVlO1xuICAgIHF1ZXVlTmFtZSA9ICdSRVBPUlRfUVVFVUUnO1xuICAgIGh1YiA9ICdDb21tb25IdWInO1xuXG4gICAgZGljU3RhdHVzID0gUkVQT1JUX1FVRVVFX0NPTlNUQU5ULmRpY1N0YXR1cztcbiAgICBzdGF0dXNlcyA9IFJFUE9SVF9RVUVVRV9DT05TVEFOVC5zdGF0dXNlcztcblxuICAgIF9xdWV1ZTogSm9iSXRlbVtdID0gW107XG4gICAgbWF4SGVpZ2h0ID0gMjAwO1xuICAgIGl0ZW1IZWlnaHQgPSA1MDtcbiAgICBwb3B1cEhlaWdodCA9IHRoaXMuaXRlbUhlaWdodDtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfbm90aWZpZXJTZXJ2aWNlOiBOb3RpZmllclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2ZpbGVTZXJ2aWNlOiBGaWxlRXhwbG9yZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF90ZW1wYXRlU2VydmljZTogVGVtcGxhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9zaWduYWxSU2VydmljZTogU2lnbmFsUlNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2hpZ2hQZXJmb3JtYW5jZVNlcnZpY2U6IEhpZ2hQZXJmb3JtYW5jZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NydWRTZXJ2aWNlOiBDcnVkU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnREYXRhTW9kZWwgJiYgdGhpcy5uYW1lKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudERhdGFNb2RlbFt0aGlzLm5hbWVdID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZUV4cGFuZCgpIHtcbiAgICAgICAgdGhpcy5leHBhbmQgPSAhdGhpcy5leHBhbmQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGjDqm0gam9iIHbDoG8gxJHhu4MgdGjhu7FjIGhp4buHblxuICAgICAqL1xuICAgIGFzeW5jIGFkZEpvYihleHBvcnRKb2I6IEV4cG9ydEpvYikge1xuICAgICAgICB2YXIgZm91bmRJbmRleCA9IHRoaXMuX3F1ZXVlLmZpbmRJbmRleChqb2IgPT4gam9iLl9jb2RlID09IGV4cG9ydEpvYi50ZW1wbGF0ZUNvZGUgJiYgam9iLl9zdGF0dXMgPT0gdGhpcy5zdGF0dXNlcy5FeHBvcnRpbmcpO1xuICAgICAgICBpZiAoZm91bmRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZyhcIkZpbGUgY8O5bmcgbG/huqFpIMSRYW5nIMSRxrDhu6NjIHjhu60gbMO9LCB0aOG7rSBs4bqhaSBzYXUga2hpIHjhu60gbMO9IHhvbmchXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGpvYiA9IG5ldyBKb2JJdGVtKGV4cG9ydEpvYi50ZW1wbGF0ZUNvZGUsIHt9LCBleHBvcnRKb2IuZmlsZU5hbWUgfHwgZXhwb3J0Sm9iLnRlbXBsYXRlQ29kZSwgdGhpcy5zdGF0dXNlcy5FeHBvcnRpbmcpO1xuICAgICAgICB0aGlzLl9xdWV1ZS5wdXNoKGpvYik7XG4gICAgICAgIHRoaXMudXBkYXRlUG9wdXBIZWlnaHQoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbGJhci5zY3JvbGxUb0JvdHRvbSgpO1xuICAgICAgICB9LCAxMDApO1xuICAgICAgICB2YXIgcnNEYXRhID0gYXdhaXQgZXhwb3J0Sm9iLmRhdGFQcm9taXNlO1xuICAgICAgICBpZiAocnNEYXRhLmRhdGEgPT0gbnVsbCkge1xuICAgICAgICAgICAgam9iLl9zdGF0dXMgPSB0aGlzLnN0YXR1c2VzLkVycm9yO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKHJzRGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXhwb3J0Sm9iLmNiKSB7XG4gICAgICAgICAgICBqb2IuX2RhdGEgPSAoPEZ1bmN0aW9uPmV4cG9ydEpvYi5jYikocnNEYXRhLmRhdGEpO1xuICAgICAgICB9IGVsc2UgaWYgKGV4cG9ydEpvYi5yb290TmFtZSkge1xuICAgICAgICAgICAgam9iLl9kYXRhW2V4cG9ydEpvYi5yb290TmFtZV0gPSByc0RhdGEuZGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGpvYi5fZGF0YSA9IHJzRGF0YS5kYXRhO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChleHBvcnRKb2IudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBKb2JUeXBlcy5Ob3JtYWw6XG4gICAgICAgICAgICAgICAgdGhpcy5FeHBvcnQoam9iKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSm9iVHlwZXMuU2luZ25hbFI6XG4gICAgICAgICAgICAgICAgdGhpcy5FeHBvcnRXaXRoU2lnbmFsUihqb2IpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBKb2JUeXBlcy5NYW55OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGjDqm0gam9iIHbDoG8gxJHhu4MgdGjhu7FjIGhp4buHblxuICAgICAqICAtIHRlbXBsYXRlQ29kZTogY29kZSB0ZW1wbGF0ZSBj4bqldSBow6xuaCBiw6puIHF14bqjbiB0cuG7i1xuICAgICAqICAtIGRhdGE6IGThu68gbGnhu4d1IGV4cG9ydFxuICAgICAqICAtIGZpbGVOYW1lOiB0w6puIGPhu6dhIGZpbGUgxJHGsOG7o2MgbMawdVxuICAgICAqICAtIHVzZVNpZ25hbFI6IHRoYXkgdsOsIGfhu41pIHJlcXVlc3QgdsOgIGNo4budIMSR4bq/biBraGkgdGjhu7FjIGhp4buHbiB4b25nXG4gICAgICogICAgICB0cuG6oyB24buBIGJpbmFyeUZpbGUgdGjDrCB04bqhbyB0aeG6v24gdHLDrG5oIHJpw6puZyDEkeG7gyBleHBvcnQsIHbDoCBkw7luZyBzaWduYWxSIHRow7RuZ1xuICAgICAqICAgICAgYsOhbyBr4bq/dCBxdeG6oyBleHBvcnQsIHRy4bqjIHbhu4EgZmlsZUlkIMSR4buDIHThuqNpLlxuICAgICAqL1xuICAgIGFzeW5jIGFkZEpvYldpdGhEYXRhKFxuICAgICAgICB0ZW1wbGF0ZUNvZGU6IHN0cmluZyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZmlsZU5hbWUsXG4gICAgICAgIHVzZVNpZ25hbFIgPSBmYWxzZVxuICAgICkge1xuICAgICAgICB2YXIgZm91bmRJbmRleCA9IHRoaXMuX3F1ZXVlLmZpbmRJbmRleChqb2IgPT4gam9iLl9jb2RlID09IHRlbXBsYXRlQ29kZSAmJiBqb2IuX3N0YXR1cyA9PSB0aGlzLnN0YXR1c2VzLkV4cG9ydGluZyk7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKFwiRmlsZSBjw7luZyBsb+G6oWkgxJFhbmcgxJHGsOG7o2MgeOG7rSBsw70sIHRo4butIGzhuqFpIHNhdSBraGkgeOG7rSBsw70geG9uZyFcIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgam9iID0gbmV3IEpvYkl0ZW0odGVtcGxhdGVDb2RlLCBkYXRhLCBmaWxlTmFtZSB8fCB0ZW1wbGF0ZUNvZGUsIHRoaXMuc3RhdHVzZXMuRXhwb3J0aW5nKTtcbiAgICAgICAgdGhpcy5fcXVldWUucHVzaChqb2IpO1xuICAgICAgICBpZiAodXNlU2lnbmFsUikge1xuICAgICAgICAgICAgdGhpcy5FeHBvcnRXaXRoU2lnbmFsUihqb2IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5FeHBvcnQoam9iKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIEV4cG9ydChqb2I6IEpvYkl0ZW0pIHtcbiAgICAgICAgdGhpcy5fdGVtcGF0ZVNlcnZpY2UuZXhwb3J0Q3hFeGNlbEJ5Q29kZVByb21pc2UoeyBjb2RlOiBqb2IuX2NvZGUsIGRhdGE6IEpTT04uc3RyaW5naWZ5KGpvYi5fZGF0YSksIGZpbGVOYW1lOiBqb2IuX2ZpbGVOYW1lIH0pXG4gICAgICAgICAgICAudGhlbihmaWxlID0+IHtcbiAgICAgICAgICAgICAgICBqb2IuX3N0YXR1cyA9IHRoaXMuc3RhdHVzZXMuU3VjY2VzcztcbiAgICAgICAgICAgICAgICBqb2IuX2JpbmFyeUZpbGUgPSBmaWxlO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0Rvd25sb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWQoam9iKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5jYXRjaChhc3luYyBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGpvYi5fc3RhdHVzID0gdGhpcy5zdGF0dXNlcy5FcnJvcjtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCBlcnIuZXJyb3IudGV4dCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKEpTT04ucGFyc2UoZXJyb3JUZXh0IHx8ICcnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBFeHBvcnRXaXRoU2lnbmFsUihqb2I6IEpvYkl0ZW0pIHtcbiAgICAgICAgY29uc3QgdG9waWMgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKTtcbiAgICAgICAgam9iLl91bmlxdWVLZXkgPSB0b3BpYztcbiAgICAgICAgdGhpcy5fc2lnbmFsUlNlcnZpY2Uuc3RhcnQodGhpcy5odWIsIHRvcGljLCAobWVzc2FnZSkgPT4ge1xuICAgICAgICAgICAgdmFyIHJzID0gSlNPTi5wYXJzZShtZXNzYWdlKTtcbiAgICAgICAgICAgIGlmIChycy5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgam9iLl9zdGF0dXMgPSB0aGlzLnN0YXR1c2VzLlN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgam9iLl9maWxlSWQgPSBycy5kYXRhO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9Eb3dubG9hZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkKGpvYik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBqb2IuX3N0YXR1cyA9IHRoaXMuc3RhdHVzZXMuRXJyb3I7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UocnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl90ZW1wYXRlU2VydmljZS5FeHBvcnRDeEV4Y2VsQnlDb2RlV2l0aFNpZ25hbFIoeyBjb2RlOiBqb2IuX2NvZGUsIGRhdGE6IEpTT04uc3RyaW5naWZ5KGpvYi5fZGF0YSksIGZpbGVOYW1lOiBqb2IuX2ZpbGVOYW1lLCB0b3BpYzogdG9waWMgfSlcbiAgICAgICAgICAgIC50aGVuKHJzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJzLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgam9iLl9zdGF0dXMgPSB0aGlzLnN0YXR1c2VzLkVycm9yO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcnVkU2VydmljZS5wcm9jZXNzRXJyb3JSZXNwb25zZShycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuY2F0Y2goYXN5bmMgZXJyID0+IHtcbiAgICAgICAgICAgICAgICBqb2IuX3N0YXR1cyA9IHRoaXMuc3RhdHVzZXMuRXJyb3I7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3J1ZFNlcnZpY2UucHJvY2Vzc0Vycm9yUmVzcG9uc2UoZXJyLmVycm9yKTtcbiAgICAgICAgICAgIH0pOztcbiAgICB9XG5cbiAgICBhc3luYyBFeHBvcnRDeEV4Y2VsQnlDb2RlV2l0aEhQUyhqb2I6IEpvYkl0ZW0pIHtcbiAgICAgICAgdGhpcy5faGlnaFBlcmZvcm1hbmNlU2VydmljZS5jcmVhdGVQcm9jZXNzKHRoaXMucXVldWVOYW1lLCAoYXJyTWVzc2FnZSkgPT4ge1xuICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBhcnJNZXNzYWdlLnBvcCgpO1xuICAgICAgICAgICAgdmFyIHJzID0gSlNPTi5wYXJzZShtZXNzYWdlKTtcbiAgICAgICAgICAgIGlmIChycy5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgam9iLl9zdGF0dXMgPSB0aGlzLnN0YXR1c2VzLlN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgam9iLl9maWxlSWQgPSBycy5kYXRhO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9Eb3dubG9hZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9maWxlU2VydmljZS5kb3dubG9hZEZpbGUoam9iLl9maWxlSWQpO1xuICAgICAgICAgICAgICAgICAgICBqb2IuX3N0YXR1cyA9IHRoaXMuc3RhdHVzZXMuRG93bmxvYWRlZDtcbiAgICAgICAgICAgICAgICAgICAgam9iLl9maWxlSWQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgam9iLl9zdGF0dXMgPSB0aGlzLnN0YXR1c2VzLkVycm9yO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKHJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkudGhlbihycyA9PiB7XG4gICAgICAgICAgICBqb2IuX3VuaXF1ZUtleSA9IHJzO1xuXG4gICAgICAgICAgICB0aGlzLl90ZW1wYXRlU2VydmljZS5FeHBvcnRDeEV4Y2VsQnlDb2RlV2l0aEhQUyh7XG4gICAgICAgICAgICAgICAgY29kZTogam9iLl9jb2RlLFxuICAgICAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KGpvYi5fZGF0YSksXG4gICAgICAgICAgICAgICAgZmlsZU5hbWU6IGpvYi5fZmlsZU5hbWUsXG4gICAgICAgICAgICAgICAgdG9waWM6IHRoaXMucXVldWVOYW1lLFxuICAgICAgICAgICAgICAgIHVuaXF1ZUtleTogam9iLl91bmlxdWVLZXlcbiAgICAgICAgICAgIH0pLnRoZW4ocnMgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcnMuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBqb2IuX3N0YXR1cyA9IHRoaXMuc3RhdHVzZXMuRXJyb3I7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NydWRTZXJ2aWNlLnByb2Nlc3NFcnJvclJlc3BvbnNlKHJzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGpvYi5fc3RhdHVzID0gdGhpcy5zdGF0dXNlcy5FcnJvcjtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkzhu5dpIGfhu41pIGFwaSBzZXJ2ZXIgZXhwb3J0XCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGpvYi5fc3RhdHVzID0gdGhpcy5zdGF0dXNlcy5FcnJvcjtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkzhu5dpIGfhu41pIEhQUyBzZXJ2aWNlIDooXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZG93bmxvYWQoam9iKSB7XG4gICAgICAgIGlmIChqb2IuX3N0YXR1cyA9PSB0aGlzLnN0YXR1c2VzLkRvd25sb2FkZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoam9iLl9maWxlSWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbGVTZXJ2aWNlLmRvd25sb2FkRmlsZShqb2IuX2ZpbGVJZCwgZmFsc2UsIGpvYi5fZmlsZU5hbWUpO1xuICAgICAgICB9IGVsc2UgaWYgKGpvYi5fYmluYXJ5RmlsZSkge1xuICAgICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhqb2IuX2JpbmFyeUZpbGUsIGpvYi5fZmlsZU5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGpvYi5fc3RhdHVzID0gdGhpcy5zdGF0dXNlcy5Eb3dubG9hZGVkO1xuICAgICAgICBqb2IuX2JpbmFyeUZpbGUgPSBudWxsO1xuICAgICAgICBqb2IuX2ZpbGVJZCA9IG51bGw7XG4gICAgfVxuXG4gICAgc2hvd1F1ZXVlKCkge1xuICAgICAgICBsZXQgc2hvdyA9IHRoaXMuX3F1ZXVlICYmIHRoaXMuX3F1ZXVlLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgcmV0dXJuIHNob3c7XG4gICAgfVxuXG4gICAgZ2V0TmFtZShqb2IpIHtcbiAgICAgICAgdmFyIG5hbWUgPSBqb2IuX2ZpbGVOYW1lLmxlbmd0aCA+IHRoaXMubWF4TmFtZUxlbmd0aCA/IGAke2pvYi5fZmlsZU5hbWUuc3Vic3RyKDAsIHRoaXMubWF4TmFtZUxlbmd0aCAtIDEwKX1bLi4uXSR7VGVtcGxhdGVDb25zdGFudC5FWENFTF9FWFRFTlNJT059YCA6IGpvYi5fZmlsZU5hbWU7XG4gICAgICAgIHJldHVybiBuYW1lO1xuICAgIH1cblxuICAgIGNhbmNlbEpvYihqb2IpIHtcbiAgICAgICAgbGV0IGZvdW5kSW5kZXggPSB0aGlzLl9xdWV1ZS5maW5kSW5kZXgoaiA9PiBqLl9jb2RlID09IGpvYi5fY29kZSk7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZm91bmRKb2IgPSB0aGlzLl9xdWV1ZVtmb3VuZEluZGV4XTtcbiAgICAgICAgaWYgKGZvdW5kSm9iLl9zdGF0dXMgPT0gdGhpcy5zdGF0dXNlcy5FeHBvcnRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZVxuICAgICAgICAgICAgICAgIC5zaG93Q29uZmlybSgnRmlsZSBuw6B5IMSRYW5nIMSRxrDhu6NjIHjhu60gbMO9LiBC4bqhbiBjw7MgbXXhu5FuIGThu6tuZyBs4bqhaT8nLCAnSOG7p3kgeHXhuqV0IGZpbGUnKVxuICAgICAgICAgICAgICAgIC50aGVuKHJzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFycykgeyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRVbnN1YnNjcmliZSA9IGZvdW5kSm9iLl90eXBlID09IEpvYlR5cGVzLlNpbmduYWxSICYmIGZvdW5kSm9iLl91bmlxdWVLZXk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZWVkVW5zdWJzY3JpYmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NpZ25hbFJTZXJ2aWNlLnVuU3Vic2NyaWJlVmlld0NvZGUoZm91bmRKb2IuX3VuaXF1ZUtleSwgdGhpcy5odWIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3F1ZXVlLnNwbGljZShmb3VuZEluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQb3B1cEhlaWdodCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGZvdW5kSm9iLl9zdGF0dXMgIT0gdGhpcy5zdGF0dXNlcy5FeHBvcnRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX3F1ZXVlLnNwbGljZShmb3VuZEluZGV4LCAxKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUG9wdXBIZWlnaHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlKCkge1xuICAgICAgICB2YXIgaGFzRXhwb3J0aW5nID0gdGhpcy5fcXVldWUgJiYgdGhpcy5fcXVldWUuZmlsdGVyKGl0ZW0gPT4gaXRlbS5fc3RhdHVzID09IHRoaXMuc3RhdHVzZXMuRXhwb3J0aW5nKS5sZW5ndGggPiAwO1xuXG4gICAgICAgIGlmIChoYXNFeHBvcnRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZVxuICAgICAgICAgICAgICAgIC5zaG93Q29uZmlybSgnQ8OzIGZpbGUgxJFhbmcgxJHGsOG7o2MgeOG7rSBsw70uIELhuqFuIGPDsyBtdeG7kW4gZOG7q25nIGzhuqFpPycsICdI4buneSB4deG6pXQgZmlsZScpXG4gICAgICAgICAgICAgICAgLnRoZW4ocnMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJzKSB7IHJldHVybjsgfVxuICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFVuc3Vic2NyaWJlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3F1ZXVlLmZvckVhY2goam9iID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRVbnN1YnNjcmliZSA9IGpvYi5fdHlwZSA9PSBKb2JUeXBlcy5TaW5nbmFsUiAmJiBqb2IuX3VuaXF1ZUtleTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZWVkVW5zdWJzY3JpYmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaWduYWxSU2VydmljZS51blN1YnNjcmliZVZpZXdDb2RlKGpvYi5fdW5pcXVlS2V5LCB0aGlzLmh1Yik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9xdWV1ZSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvcHVwSGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9xdWV1ZSA9IFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlUG9wdXBIZWlnaHQoKSB7XG4gICAgICAgIGxldCBoZWlnaHQgPSAodGhpcy5fcXVldWUgfHwgW10pLmxlbmd0aCAqIHRoaXMuaXRlbUhlaWdodDtcbiAgICAgICAgdGhpcy5wb3B1cEhlaWdodCA9IGhlaWdodCA+IHRoaXMubWF4SGVpZ2h0ID8gdGhpcy5tYXhIZWlnaHQgOiBoZWlnaHQ7XG4gICAgfVxufVxuXG4iXX0=
|
package/esm2015/components/settings/settings-authorize-button/settings-authorize-button.component.js
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, Injector, Input } from '@angular/core';
|
|
3
|
+
import { ColumnSchemaBase, ComCtxConstants, ComponentContextService, DataListBase, DataType, HeightType, ModelSchema, ModuleConfigService } from '../../../public-api';
|
|
4
|
+
import { BasePermissionService } from '../../../services/basepermission.service';
|
|
5
|
+
export class SettingAuthorizeButtonComponent extends DataListBase {
|
|
6
|
+
constructor(_injector, _basePermissionService, _moduleConfigService) {
|
|
7
|
+
super(_injector);
|
|
8
|
+
this._injector = _injector;
|
|
9
|
+
this._basePermissionService = _basePermissionService;
|
|
10
|
+
this._moduleConfigService = _moduleConfigService;
|
|
11
|
+
this.authorizeButtonKey = '';
|
|
12
|
+
this.dataSource = [];
|
|
13
|
+
this.appCode = '';
|
|
14
|
+
}
|
|
15
|
+
ngOnInit() {
|
|
16
|
+
this.appCode = this._moduleConfigService.getConfig().appCode;
|
|
17
|
+
this.setting.baseService = this._basePermissionService;
|
|
18
|
+
this.customGetData = true;
|
|
19
|
+
this.setting.hiddenAdvanceSearch = true;
|
|
20
|
+
this.setting.hiddenHeader = true;
|
|
21
|
+
this.setting.heightType = HeightType.dynamic;
|
|
22
|
+
this.setting.hiddenOrderColumn = true;
|
|
23
|
+
this.setting.hiddenFilterRow = true;
|
|
24
|
+
this.setting.hiddenSettingWorkflow = true;
|
|
25
|
+
this.setting.hiddenAuthorizeButton = true;
|
|
26
|
+
this.setting.hiddenSettingPermission = true;
|
|
27
|
+
this.setting.fixHeightTypeInDialog = false;
|
|
28
|
+
this.setting.hiddenCheckbox = false;
|
|
29
|
+
this.setting.showEditLink = false;
|
|
30
|
+
this.setting.modelSchemas = [
|
|
31
|
+
new ModelSchema({
|
|
32
|
+
field: 'permissionCode',
|
|
33
|
+
name: 'Mã',
|
|
34
|
+
}),
|
|
35
|
+
new ModelSchema({
|
|
36
|
+
field: 'rawText',
|
|
37
|
+
name: 'Tên',
|
|
38
|
+
}),
|
|
39
|
+
new ModelSchema({
|
|
40
|
+
field: 'isAuthorize',
|
|
41
|
+
name: 'Đã tạo quyền',
|
|
42
|
+
}),
|
|
43
|
+
new ModelSchema({
|
|
44
|
+
field: 'ma1',
|
|
45
|
+
name: 'Mã',
|
|
46
|
+
}),
|
|
47
|
+
];
|
|
48
|
+
this.setting.cols = [
|
|
49
|
+
new ColumnSchemaBase({ field: 'permissionCode', sort: false, showEditLink: false }),
|
|
50
|
+
new ColumnSchemaBase({ field: 'rawText', width: '230px', sort: false }),
|
|
51
|
+
new ColumnSchemaBase({ field: 'isAuthorize', dataType: DataType.boolean, width: '100px', sort: false }),
|
|
52
|
+
];
|
|
53
|
+
super.ngOnInit();
|
|
54
|
+
}
|
|
55
|
+
getDataCustom(gridInfo) {
|
|
56
|
+
this.model.dataSource = this.dataSource;
|
|
57
|
+
this.afterGetData();
|
|
58
|
+
}
|
|
59
|
+
addBasePermission(rowData) {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const insertRes = yield this._basePermissionService.post(rowData);
|
|
62
|
+
if (insertRes.success) {
|
|
63
|
+
this._notifierService.showSuccess('Thêm quyền thành công');
|
|
64
|
+
this.updateDataSource(insertRes.data);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
this._notifierService.showWarning('Có lỗi trong quá trình xử lý, vui lòng thử lại');
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
deleteBasePermission(rowData) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
this._notifierService.showConfirm('Xác nhận xóa quyền').then((res) => __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
if (!res)
|
|
74
|
+
return;
|
|
75
|
+
const deleteRes = yield this._basePermissionService.delete(rowData.id);
|
|
76
|
+
if (deleteRes.success) {
|
|
77
|
+
this._notifierService.showSuccess('Xóa quyền thành công');
|
|
78
|
+
this.updateDataSource(rowData.id, true);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this._notifierService.showWarning(deleteRes.message);
|
|
82
|
+
}));
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
updateDataSource(id, isDeleted = false) {
|
|
86
|
+
const currentRow = this.model.dataSource.find(p => p.id == id);
|
|
87
|
+
if (!currentRow)
|
|
88
|
+
return;
|
|
89
|
+
if (isDeleted) {
|
|
90
|
+
currentRow.id = this._commonService.guid();
|
|
91
|
+
}
|
|
92
|
+
currentRow.isAuthorize = !isDeleted;
|
|
93
|
+
this.afterGetData();
|
|
94
|
+
}
|
|
95
|
+
afterGetData() {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
this._unmarkLoading();
|
|
98
|
+
if (!this.model.dataSource.length)
|
|
99
|
+
return;
|
|
100
|
+
this.model.dataSource.forEach(item => {
|
|
101
|
+
item.name = item.rawText;
|
|
102
|
+
item.code = item.permissionCode;
|
|
103
|
+
item.moduleCode = this.appCode;
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
ngOnDestroy() {
|
|
108
|
+
const buttonSetting = JSON.parse(sessionStorage.getItem(ComCtxConstants.LOCALSTORAGE_KEY.BUTTON_AUTHORIZE) || '{}');
|
|
109
|
+
this.model.dataSource.forEach(rowData => {
|
|
110
|
+
const buttonItem = buttonSetting[this.authorizeButtonKey].find(p => p.code == rowData.code);
|
|
111
|
+
if (rowData.isAuthorize && !buttonItem) {
|
|
112
|
+
buttonSetting[this.authorizeButtonKey].push({
|
|
113
|
+
id: rowData.id,
|
|
114
|
+
code: rowData.code,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
else if (!rowData.isAuthorize && buttonItem) {
|
|
118
|
+
const index = buttonSetting[this.authorizeButtonKey].indexOf(buttonItem);
|
|
119
|
+
buttonSetting[this.authorizeButtonKey].splice(index, 1);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
sessionStorage.setItem(ComCtxConstants.LOCALSTORAGE_KEY.BUTTON_AUTHORIZE, JSON.stringify(buttonSetting));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
SettingAuthorizeButtonComponent.decorators = [
|
|
126
|
+
{ type: Component, args: [{
|
|
127
|
+
selector: 'settings-authorize-button',
|
|
128
|
+
template: "<crud-list #crudList [menuButtons]=\"getMenuButtons\" [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\n [hiddenAdd]=\"true\" [hiddenDelete]=\"true\" [hiddenCopyLink]=\"true\" (onReload)=\"_triggerProcessData($event)\"\n (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_handleReloaded($event)\" (onCopyLink)=\"_copyLink($event)\"\n (onCopyLinkMultiple)=\"_copyLinkMultiple()\">\n <ng-template #function let-rowData=\"rowData\">\n <button *ngIf=\"!rowData.isAuthorize\" class=\"p-button-rounded p-button-text p-button-info link-or-action\"\n type=\"button\" pButton icon=\"pi pi-plus\" pTooltip=\"Th\u00EAm m\u1EDBi\" (click)=\"addBasePermission(rowData)\"></button>\n <button *ngIf=\"rowData.isAuthorize\"\n class=\"p-button-rounded p-button-text p-button-danger p-button-info link-or-action\" type=\"button\" pButton\n icon=\"pi pi-trash\" pTooltip=\"X\u00F3a\" (click)=\"deleteBasePermission(rowData)\"></button>\n </ng-template>\n</crud-list>",
|
|
129
|
+
providers: [ComponentContextService],
|
|
130
|
+
styles: [""]
|
|
131
|
+
},] }
|
|
132
|
+
];
|
|
133
|
+
SettingAuthorizeButtonComponent.ctorParameters = () => [
|
|
134
|
+
{ type: Injector },
|
|
135
|
+
{ type: BasePermissionService },
|
|
136
|
+
{ type: ModuleConfigService }
|
|
137
|
+
];
|
|
138
|
+
SettingAuthorizeButtonComponent.propDecorators = {
|
|
139
|
+
authorizeButtonKey: [{ type: Input }],
|
|
140
|
+
dataSource: [{ type: Input }]
|
|
141
|
+
};
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtYXV0aG9yaXplLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy1hdXRob3JpemUtYnV0dG9uL3NldHRpbmdzLWF1dGhvcml6ZS1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBWSxVQUFVLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakwsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFTakYsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLFlBQVk7SUFLN0QsWUFDYyxTQUFtQixFQUNuQixzQkFBNkMsRUFDN0Msb0JBQXlDO1FBRW5ELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUpQLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBTjlDLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUN4QixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxFQUFFLENBQUM7SUFPYixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFD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LGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMzRDtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsY0FBYyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7OztZQTlISixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsc3BDQUF5RDtnQkFFekQsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7O2FBQ3ZDOzs7WUFWa0MsUUFBUTtZQUVsQyxxQkFBcUI7WUFEa0csbUJBQW1COzs7aUNBWTlJLEtBQUs7eUJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbHVtblNjaGVtYUJhc2UsIENvbUN0eENvbnN0YW50cywgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UsIERhdGFMaXN0QmFzZSwgRGF0YVR5cGUsIEdyaWRJbmZvLCBIZWlnaHRUeXBlLCBNb2RlbFNjaGVtYSwgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQmFzZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZXBlcm1pc3Npb24uc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzZXR0aW5ncy1hdXRob3JpemUtYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZ3MtYXV0aG9yaXplLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2V0dGluZ3MtYXV0aG9yaXplLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0NvbXBvbmVudENvbnRleHRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ0F1dGhvcml6ZUJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIERhdGFMaXN0QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBASW5wdXQoKSBhdXRob3JpemVCdXR0b25LZXkgPSAnJztcbiAgICBASW5wdXQoKSBkYXRhU291cmNlID0gW107XG4gICAgYXBwQ29kZSA9ICcnO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIF9iYXNlUGVybWlzc2lvblNlcnZpY2U6IEJhc2VQZXJtaXNzaW9uU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9pbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYXBwQ29kZSA9IHRoaXMuX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuYXBwQ29kZTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fYmFzZVBlcm1pc3Npb25TZXJ2aWNlO1xuICAgICAgICB0aGlzLmN1c3RvbUdldERhdGEgPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQWR2YW5jZVNlYXJjaCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5IZWFkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGVpZ2h0VHlwZSA9IEhlaWdodFR5cGUuZHluYW1pYztcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbk9yZGVyQ29sdW1uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbkZpbHRlclJvdyA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5TZXR0aW5nV29ya2Zsb3cgPSB0cnVlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQXV0aG9yaXplQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblNldHRpbmdQZXJtaXNzaW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmZpeEhlaWdodFR5cGVJbkRpYWxvZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQ2hlY2tib3ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNob3dFZGl0TGluayA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNldHRpbmcubW9kZWxTY2hlbWFzID0gW1xuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3Blcm1pc3Npb25Db2RlJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTcOjJyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3Jhd1RleHQnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdUw6puJyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lzQXV0aG9yaXplJyxcbiAgICAgICAgICAgICAgICBuYW1lOiAnxJDDoyB04bqhbyBxdXnhu4FuJyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ21hMScsXG4gICAgICAgICAgICAgICAgbmFtZTogJ03DoycsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7IGZpZWxkOiAncGVybWlzc2lvbkNvZGUnLCBzb3J0OiBmYWxzZSwgc2hvd0VkaXRMaW5rOiBmYWxzZSB9KSxcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHsgZmllbGQ6ICdyYXdUZXh0Jywgd2lkdGg6ICcyMzBweCcsIHNvcnQ6IGZhbHNlIH0pLFxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2UoeyBmaWVsZDogJ2lzQXV0aG9yaXplJywgZGF0YVR5cGU6IERhdGFUeXBlLmJvb2xlYW4sIHdpZHRoOiAnMTAwcHgnLCBzb3J0OiBmYWxzZSB9KSxcbiAgICAgICAgXTtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG5cblxuICAgIGdldERhdGFDdXN0b20oZ3JpZEluZm86IEdyaWRJbmZvKSB7XG4gICAgICAgIHRoaXMubW9kZWwuZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZTtcbiAgICAgICAgdGhpcy5hZnRlckdldERhdGEoKTtcbiAgICB9XG5cbiAgICBhc3luYyBhZGRCYXNlUGVybWlzc2lvbihyb3dEYXRhKSB7XG4gICAgICAgIGNvbnN0IGluc2VydFJlcyA9IGF3YWl0IHRoaXMuX2Jhc2VQZXJtaXNzaW9uU2VydmljZS5wb3N0KHJvd0RhdGEpO1xuICAgICAgICBpZiAoaW5zZXJ0UmVzLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93U3VjY2VzcygnVGjDqm0gcXV54buBbiB0aMOgbmggY8O0bmcnKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVNvdXJjZShpbnNlcnRSZXMuZGF0YSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKCdDw7MgbOG7l2kgdHJvbmcgcXXDoSB0csOsbmggeOG7rSBsw70sIHZ1aSBsw7JuZyB0aOG7rSBs4bqhaScpO1xuICAgIH1cblxuICAgIGFzeW5jIGRlbGV0ZUJhc2VQZXJtaXNzaW9uKHJvd0RhdGEpIHtcbiAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dDb25maXJtKCdYw6FjIG5o4bqtbiB4w7NhIHF1eeG7gW4nKS50aGVuKGFzeW5jIHJlcyA9PiB7XG4gICAgICAgICAgICBpZiAoIXJlcykgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgZGVsZXRlUmVzID0gYXdhaXQgdGhpcy5fYmFzZVBlcm1pc3Npb25TZXJ2aWNlLmRlbGV0ZShyb3dEYXRhLmlkKTtcbiAgICAgICAgICAgIGlmIChkZWxldGVSZXMuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93U3VjY2VzcygnWMOzYSBxdXnhu4FuIHRow6BuaCBjw7RuZycpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVNvdXJjZShyb3dEYXRhLmlkLCB0cnVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmcoZGVsZXRlUmVzLm1lc3NhZ2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVEYXRhU291cmNlKGlkOiBhbnksIGlzRGVsZXRlZCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb3cgPSB0aGlzLm1vZGVsLmRhdGFTb3VyY2UuZmluZChwID0+IHAuaWQgPT0gaWQpO1xuICAgICAgICBpZiAoIWN1cnJlbnRSb3cpIHJldHVybjtcbiAgICAgICAgaWYgKGlzRGVsZXRlZCkge1xuICAgICAgICAgICAgY3VycmVudFJvdy5pZCA9IHRoaXMuX2NvbW1vblNlcnZpY2UuZ3VpZCgpO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnRSb3cuaXNBdXRob3JpemUgPSAhaXNEZWxldGVkO1xuICAgICAgICB0aGlzLmFmdGVyR2V0RGF0YSgpO1xuICAgIH1cblxuICAgIGFzeW5jIGFmdGVyR2V0RGF0YSgpIHtcbiAgICAgICAgdGhpcy5fdW5tYXJrTG9hZGluZygpO1xuICAgICAgICBpZiAoIXRoaXMubW9kZWwuZGF0YVNvdXJjZS5sZW5ndGgpIHJldHVybjtcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhU291cmNlLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpdGVtLm5hbWUgPSBpdGVtLnJhd1RleHQ7XG4gICAgICAgICAgICBpdGVtLmNvZGUgPSBpdGVtLnBlcm1pc3Npb25Db2RlO1xuICAgICAgICAgICAgaXRlbS5tb2R1bGVDb2RlID0gdGhpcy5hcHBDb2RlO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBjb25zdCBidXR0b25TZXR0aW5nOiBhbnkgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oQ29tQ3R4Q29uc3RhbnRzLkxPQ0FMU1RPUkFHRV9LRVkuQlVUVE9OX0FVVEhPUklaRSkgfHwgJ3t9Jyk7XG4gICAgICAgIHRoaXMubW9kZWwuZGF0YVNvdXJjZS5mb3JFYWNoKHJvd0RhdGEgPT4ge1xuICAgICAgICAgICAgY29uc3QgYnV0dG9uSXRlbSA9IGJ1dHRvblNldHRpbmdbdGhpcy5hdXRob3JpemVCdXR0b25LZXldLmZpbmQocCA9PiBwLmNvZGUgPT0gcm93RGF0YS5jb2RlKTtcbiAgICAgICAgICAgIGlmIChyb3dEYXRhLmlzQXV0aG9yaXplICYmICFidXR0b25JdGVtKSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uU2V0dGluZ1t0aGlzLmF1dGhvcml6ZUJ1dHRvbktleV0ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiByb3dEYXRhLmlkLFxuICAgICAgICAgICAgICAgICAgICBjb2RlOiByb3dEYXRhLmNvZGUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICghcm93RGF0YS5pc0F1dGhvcml6ZSAmJiBidXR0b25JdGVtKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBidXR0b25TZXR0aW5nW3RoaXMuYXV0aG9yaXplQnV0dG9uS2V5XS5pbmRleE9mKGJ1dHRvbkl0ZW0pO1xuICAgICAgICAgICAgICAgIGJ1dHRvblNldHRpbmdbdGhpcy5hdXRob3JpemVCdXR0b25LZXldLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKENvbUN0eENvbnN0YW50cy5MT0NBTFNUT1JBR0VfS0VZLkJVVFRPTl9BVVRIT1JJWkUsIEpTT04uc3RyaW5naWZ5KGJ1dHRvblNldHRpbmcpKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -68,7 +68,15 @@ ComCtxConstants.LOCALSTORAGE_KEY = {
|
|
|
68
68
|
COLUMN_SETTING: 'COLUMN_SETTING',
|
|
69
69
|
COLOR_SETTING: 'COLOR_SETTING',
|
|
70
70
|
DEFAULT_DATA: 'DEFAULT_DATA',
|
|
71
|
-
ADVANCE_FILTER: 'ADVANCE_FILTER'
|
|
71
|
+
ADVANCE_FILTER: 'ADVANCE_FILTER',
|
|
72
|
+
BUTTON_AUTHORIZE: 'BUTTON_AUTHORIZE',
|
|
73
|
+
BUTTON_SETTING: 'BUTTON_SETTING'
|
|
74
|
+
};
|
|
75
|
+
ComCtxConstants.COMMON_VN = {
|
|
76
|
+
ADD: 'THEM_MOI',
|
|
77
|
+
EDIT: 'SUA',
|
|
78
|
+
DELETE: 'XOA',
|
|
79
|
+
DELETE_MULTIPLE: 'XOA_CAC_MUC_DA_CHON',
|
|
72
80
|
};
|
|
73
81
|
ComCtxConstants.COMMON = {
|
|
74
82
|
ADD: 'ADD',
|
|
@@ -187,4 +195,4 @@ ComCtxConstants.NOTIFICATION = {
|
|
|
187
195
|
NOTIFICATION_CHANGE: 'NOTIFICATION_CHANGE',
|
|
188
196
|
NOTIFICATION_USER_CHANGE: 'NOTIFICATION_USER_CHANGE'
|
|
189
197
|
};
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWNvbnRleHQuY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY29uZmlncy9jb21wb25lbnQtY29udGV4dC5jb25zdGFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZUFBZTs7QUFFakIsb0JBQUksR0FBRztJQUNWLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QywyQkFBMkIsRUFBRSx3QkFBd0I7SUFDckQseUJBQXlCLEVBQUUsMkJBQTJCO0lBQ3RELHVCQUF1QixFQUFFLHlCQUF5QjtJQUNsRCxtQkFBbUIsRUFBRSxxQkFBcUI7SUFDMUMsNkJBQTZCLEVBQUUsK0JBQStCO0lBQzlELHFCQUFxQixFQUFFLHVCQUF1QjtJQUM5QyxTQUFTLEVBQUUsV0FBVztJQUN0QixpQkFBaUIsRUFBRSxtQkFBbUI7SUFDdEMsd0JBQXdCLEVBQUUsMEJBQTBCO0lBQ3BELGdDQUFnQyxFQUFFLGtDQUFrQztJQUNwRSw0QkFBNEIsRUFBRSw4QkFBOEI7SUFDNUQsc0JBQXNCLEVBQUUsd0JBQXdCO0lBQ2hELGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QyxvQkFBb0IsRUFBRSxzQkFBc0I7SUFDNUMsaUJBQWlCLEVBQUUsbUJBQW1CO0lBQ3RDLHdCQUF3QixFQUFFLDBCQUEwQjtJQUNwRCxvQkFBb0IsRUFBRSxzQkFBc0I7SUFDNUMsZ0NBQWdDLEVBQUUsa0NBQWtDO0lBQ3BFLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxnQkFBZ0IsRUFBRSxrQkFBa0I7SUFDcEMsdUJBQXVCLEVBQUUseUJBQXlCO0lBQ2xELGFBQWEsRUFBRSxlQUFlO0lBQzlCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMs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O0FBRUssa0NBQWtCLEdBQUc7SUFDeEIsZ0JBQWdCLEVBQUU7UUFDZCxZQUFZLEVBQUUsY0FBYztRQUM1QixpQkFBaUIsRUFBRSxtQkFBbUI7S0FDekM7Q0FDSixDQUFDO0FBRUssaUNBQWlCLEdBQUc7SUFDdkIsSUFBSSxFQUFFLENBQUM7SUFDUCxPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxDQUFDO0lBQ1YsSUFBSSxFQUFFLENBQUM7SUFDUCxLQUFLLEVBQUUsQ0FBQztJQUNSLE9BQU8sRUFBRSxDQUFDO0lBQ1YsVUFBVSxFQUFFLENBQUM7SUFDYixNQUFNLEVBQUUsQ0FBQztJQUNULEdBQUcsRUFBRSxDQUFDO0lBQ04sS0FBSyxFQUFFLENBQUM7SUFDUixPQUFPLEVBQUUsRUFBRTtJQUNYLGdCQUFnQixFQUFFLEVBQUU7SUFDcEIsWUFBWSxFQUFFLEVBQUU7SUFDaEIsT0FBTyxFQUFFLEVBQUU7SUFDWCxXQUFXLEVBQUUsRUFBRTtJQUNmLE1BQU0sRUFBRSxFQUFFO0lBQ1YsUUFBUSxFQUFFLEVBQUU7SUFDWixXQUFXLEVBQUUsRUFBRTtDQUNsQixDQUFDO0FBRUssMEJBQVUsR0FBRztJQUNoQixrQkFBa0IsRUFBRSxvQkFBb0I7SUFDeEMsdUJBQXVCLEVBQUUseUJBQXlCO0lBQ2xELHVCQUF1QixFQUFFLHlCQUF5QjtDQUNyRCxDQUFDO0FBRUssNEJBQVksR0FBRztJQUNsQixtQkFBbUIsRUFBRSxxQkFBcUI7SUFDMUMsbUJBQW1CLEVBQUUscUJBQXFCO0lBQzFDLHdCQUF3QixFQUFFLDBCQUEwQjtDQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIENvbUN0eENvbnN0YW50cyB7XG5cbiAgICBzdGF0aWMgUk9PVCA9IHtcbiAgICAgICAgVVNFUl9SRUFEWTogJ1VTRVJfUkVBRFknLFxuICAgICAgICBVU0VSX0xPQURFRDogJ1VTRVJfTE9BREVEJyxcbiAgICAgICAgVVNFUl9JTkZPX0NIQU5HRUQ6ICdVU0VSX0lORk9fQ0hBTkdFRCcsXG4gICAgICAgIE5FRURfQ0xFQVJfUEVSTUlTU0lPTl9DQUNIRTogJ0NMRUFSX1BFUk1JU1NJT05fQ0FDSEUnLFxuICAgICAgICBBRFZBTkNFX1NFQVJDSF9UT0dHTEVfQk9YOiAnQURWQU5DRV9TRUFSQ0hfVE9HR0xFX0JPWCcsXG4gICAgICAgIEFEVkFOQ0VfU0VBUkNIX0hJREVfQk9YOiAnQURWQU5DRV9TRUFSQ0hfSElERV9CT1gnLFxuICAgICAgICBBRFZBTkNFX1NFQVJDSF9JTklUOiAnQURWQU5DRV9TRUFSQ0hfSU5JVCcsXG4gICAgICAgIEFEVkFOQ0VfU0VBUkNIX1RSSUdHRVJfU0VBUkNIOiAnQURWQU5DRV9TRUFSQ0hfVFJJR0dFUl9TRUFSQ0gnLFxuICAgICAgICBBRFZBTkNFX0JJTkRfRFJPUERPV046ICdBRFZBTkNFX0JJTkRfRFJPUERPV04nLFxuICAgICAgICBPTl9TRUFSQ0g6ICdPTl9TRUFSQ0gnLFxuICAgICAgICBPTl9TRUFSQ0hfVkVSU0lPTjogJ09OX1NFQVJDSF9WRVJTSU9OJyxcbiAgICAgICAgQURWQU5DRV9TRUFSQ0hNT0RFTF9JTklUOiAnQURWQU5DRV9TRUFSQ0hNT0RFTF9JTklUJyxcbiAgICAgICAgT05fQURWQU5DRV9TRUFSQ0hfRk9STV9JTklUSUFMRUQ6ICdPTl9BRFZBTkNFX1NFQVJDSF9GT1JNX0lOSVRJQUxFRCcsXG4gICAgICAgIE9OX0FEVkFOQ0VfU0VBUkNIX0ZPUk1fRVZFTlQ6ICdPTl9BRFZBTkNFX1NFQVJDSF9GT1JNX0VWRU5UJyxcbiAgICAgICAgRElTQUJMRV9BRFZBTkNFX1NFQVJDSDogJ0RJU0FCTEVfQURWQU5DRV9TRUFSQ0gnLFxuICAgICAgICBERVNUUk9ZX0NPTVBPTkVOVDogJ0RFU1RST1lfQ09NUE9ORU5UJyxcbiAgICAgICAgQ0hBVF9NRVNTQUdFX1NFTkRJTkc6ICdDSEFUX01FU1NBR0VfU0VORElORycsXG4gICAgICAgIENIQVRfTUVTU0FHRV9TRU5UOiAnQ0hBVF9NRVNTQUdFX1NFTlQnLFxuICAgICAgICBDSEFUX01FU1NBR0VfQVRUQUNIX0ZJTEU6ICdDSEFUX01FU1NBR0VfQVRUQUNIX0ZJTEUnLFxuICAgICAgICBDSEFUX0hBU19ORVdfTUVTU0FHRTogJ0NIQVRfSEFTX05FV19NRVNTQUdFJyxcbiAgICAgICAgQ0hBVF9IQVNfTkVXX01FU1NBR0VfTk9UX1VQREFURUQ6ICdDSEFUX0hBU19ORVdfTUVTU0FHRV9OT1RfVVBEQVRFRCcsXG4gICAgICAgIENIQVRfU0NST0xMSU5HOiAnQ0hBVF9TQ1JPTExJTkcnLFxuICAgICAgICBDSEFUX0xPQURfTU9SRTogJ0NIQVRfTE9BRF9NT1JFJyxcbiAgICAgICAgQ0hBVF9EQVRBX0xPQURFRDogJ0NIQVRfREFUQV9MT0FERUQnLFxuICAgICAgICBDSEFUX0lOU1RBTkNFX0lEX0xPQURFRDogJ0NIQVRfSU5TVEFOQ0VfSURfTE9BREVEJyxcbiAgICAgICAgQ0hBVF9NT1VTRV9VUDogJ0NIQVRfTU9VU0VfVVAnLFxuICAgICAgICBOT1RJX0NMSUNLOiAnTk9USV9DTElDSycsXG4gICAgICAgIEtFWV9ET1dOX0NUUkxfUzogJ0tFWV9ET1dOX0NUUkxfUycsIC8vIHNhdmUgYWN0aXZlIENSVUQgZm9ybVxuICAgICAgICBLRVlfRE9XTl9FU0M6ICdLRVlfRE9XTl9FU0MnLCAvLyBleGl0IGFjdGl2ZSBDUlVEIGZvcm1cbiAgICAgICAgS0VZX0RPV05fQ1RSTF9GOiAnS0VZX0RPV05fQ1RSTF9GJywgLy8gZm9jdXMgdG8gdG9wIHNlYXJjaCBib3ggd2hlbiBpbiBtYWluIHNjcmVlblxuICAgICAgICBLRVlfRE9XTl9DVFJMX0Q6ICdLRVlfRE9XTl9DVFJMX0QnLCAvLyBjcmVhdGUgbmV3IGl0ZW0gd2hlbiBhY3RpdmF0aW5nIENSVUQgbGlzdFxuICAgICAgICBCT0RZX01PVVNFX0RPV046ICdCT0RZX01PVVNFX0RPV04nLFxuICAgICAgICBCT0RZX01PVVNFX1VQOiAnQk9EWV9NT1VTRV9VUCcsXG4gICAgICAgIEJPRFlfVE9VQ0hfU1RBUlQ6ICdCT0RZX1RPVUNIX1NUQVJUJyxcbiAgICAgICAgQk9EWV9UT1VDSF9FTkQ6ICdCT0RZX1RPVUNIX0VORCcsXG4gICAgICAgIFdJTkRPV19SRVNJWkU6ICdXSU5ET1dfUkVTSVpFJyxcbiAgICAgICAgU1dJUEVfTEVGVDogJ1NXSVBFX0xFRlQnLFxuICAgICAgICBTV0lQRV9SSUdIVDogJ1NXSVBFX1JJR0hUJyxcbiAgICAgICAgUFJFU1M6ICdQUkVTUycsXG4gICAgICAgIFBSRVNTX1VQOiAnUFJFU1NfVVAnLFxuICAgICAgICBLRVlfRE9XTl9BUlJPV0xFRlQ6ICdLRVlfRE9XTl9BUlJPV0xFRlQnLFxuICAgICAgICBLRVlfRE9XTl9BUlJPV1JJR0hUOiAnS0VZX0RPV05fQVJST1dSSUdIVCcsXG4gICAgICAgIEtFWV9ET1dOX0FSUk9XRE9XTjogJ0tFWV9ET1dOX0FSUk9XRE9XTicsXG4gICAgICAgIEtFWV9ET1dOX0FSUk9XVVA6ICdLRVlfRE9XTl9BUlJPV1VQJyxcbiAgICAgICAgUEVSU09OQUxJWkVfVVBEQVRFRDogJ1BFUlNPTkFMSVpFX1VQREFURUQnLFxuICAgICAgICBOT1RFX1RBU0tfQ1JFQVRFOiAnTk9URV9UQVNLX0NSRUFURScsXG4gICAgICAgIFFVSUNLX05PVEVfUElOOiAnUVVJQ0tfTk9URV9QSU4nLFxuICAgICAgICBRVUlDS19OT1RFX1VOUElOOiAnUVVJQ0tfTk9URV9VTlBJTicsXG4gICAgICAgIFFVSUNLX05PVEVfQ09NUExFVEU6ICdRVUlDS19OT1RFX0NPTVBMRVRFJyxcbiAgICAgICAgUVVJQ0tfTk9URV9JTkNPTVBMRVRFOiAnUVVJQ0tfTk9URV9JTkNPTVBMRVRFJyxcbiAgICAgICAgREVTVFJPWV9UQVNLX0RFVEFJTF9DT01QT05FTlQ6ICdERVNUUk9ZX1RBU0tfREVUQUlMX0NPTVBPTkVOVCcsXG4gICAgICAgIE1FTlVfQ0hBTkdFRDogJ01FTlVfQ0hBTkdFRCcsXG4gICAgICAgIEFEVkFOQ0VfU0VBUkNIX0lOSVRfV0lUSE9VVF9VUERBVEVfUk9VVEVSOiAnQURWQU5DRV9TRUFSQ0hfSU5JVF9XSVRIT1VUX1VQREFURV9ST1VURVInLFxuICAgICAgICBTSE9XX1dBSVRfQk9YOiAnU0hPV19XQUlUX0JPWCcsXG4gICAgICAgIFNIT1dfUkVKRUNUX0NPTkZJUk06ICdTSE9XX1JFSkVDVF9DT05GSVJNJyxcbiAgICAgICAgTUVOVV9SRUxPQUQ6ICdNRU5VX1JFTE9BRCdcbiAgICB9O1xuXG4gICAgc3RhdGljIFJPT1RfVVNNQVJUID0ge1xuICAgICAgICBTSE9XX0NPTkZJR19EQVRBX0RFRkFVTFQ6ICdTSE9XX0NPTkZJR19EQVRBX0RFRkFVTFQnLFxuICAgICAgICBDT05GSUdfREFUQV9ERUZBVUxUX09QRU5FRDogJ0NPTkZJR19EQVRBX0RFRkFVTFRfT1BFTkVEJyxcbiAgICAgICAgQ09ORklHX0RBVEFfREVGQVVMVF9DTE9TRUQ6ICdDT05GSUdfREFUQV9ERUZBVUxUX0NMT1NFRCdcbiAgICB9O1xuXG4gICAgc3RhdGljIExPQ0FMU1RPUkFHRV9LRVkgPSB7XG4gICAgICAgIFBBR0VfU0VUVElORzogJ1BBR0VfU0VUVElORycsXG4gICAgICAgIENPTFVNTl9TRVRUSU5HOiAnQ09MVU1OX1NFVFRJTkcnLFxuICAgICAgICBDT0xPUl9TRVRUSU5HOiAnQ09MT1JfU0VUVElORycsXG4gICAgICAgIERFRkFVTFRfREFUQTogJ0RFRkFVTFRfREFUQScsXG4gICAgICAgIEFEVkFOQ0VfRklMVEVSOiAnQURWQU5DRV9GSUxURVInXG4gICAgfTtcblxuICAgIHN0YXRpYyBDT01NT04gPSB7XG4gICAgICAgIEFERDogJ0FERCcsXG4gICAgICAgIEVESVQ6ICdFRElUJyxcbiAgICAgICAgRURJVF9WRVJTSU9OOiAnRURJVF9WRVJTSU9OJyxcbiAgICAgICAgREVMRVRFX1ZFUlNJT046ICdERUxFVEVfVkVSU0lPTicsXG4gICAgICAgIFRSSUdHRVJfVVBMT0FEOiAnVFJJR0dFUl9VUExPQUQnLFxuICAgICAgICBUUklHR0VSX0VESVQ6ICdUUklHR0VSX0VESVQnLFxuICAgICAgICBUUklHR0VSX0RFTEVURTogJ1RSSUdHRVJfREVMRVRFJyxcbiAgICAgICAgVFJJR0dFUl9DVVNUT01fQlVUVE9OX0NMSUNLOiAnVFJJR0dFUl9DVVNUT01fQlVUVE9OX0NMSUNLJyxcbiAgICAgICAgUkVMT0FEX0RBVEFfVkVSU0lPTjogJ1JFTE9BRF9EQVRBX1ZFUlNJT04nLFxuICAgICAgICBTQVZFOiAnU0FWRScsXG4gICAgICAgIENVU1RPTV9TQVZFOiAnQ1VTVE9NX1NBVkUnLFxuICAgICAgICBDVVNUT01fU0FWRV9XT1JLRkxPV19ET05FOiAnQ1VTVE9NX1NBVkVfV09SS0ZMT1dfRE9ORScsXG4gICAgICAgIENVU1RPTV9TQVZFX0VQOiAnQ1VTVE9NX1NBVkVfRVAnLCAvLyBTYXZlIGVudGl0eSBwZXJtaXNzaW9uXG4gICAgICAgIFNBVkVfREFUQV9ERUZBVUxUOiAnU0FWRURfREFUQV9ERUZBVUxUJyxcbiAgICAgICAgU0FWRUQ6ICdTQVZFRCcsXG4gICAgICAgIENBTkNFTDogJ0NBTkNFTCcsXG4gICAgICAgIENIRUNLX0VYSVNUOiAnQ0hFQ0tfRVhJU1QnLFxuICAgICAgICBTRVRfU0VMRUNURURfUk9XOiAnU0VUX1NFTEVDVEVEX1JPVycsXG4gICAgICAgIFJFTU9WRV9FUlJPUl9FWElTVDogJ1JFTU9WRV9FUlJPUl9FWElTVCcsXG4gICAgICAgIE9OX0ZPUk1fRVZFTlRfQ1VTVE9NOiAnT05fRk9STV9FVkVOVF9DVVNUT00nLFxuICAgICAgICBPTl9GT1JNX0VWRU5UOiAnT05fRk9STV9FVkVOVCcsXG4gICAgICAgIE9OX0RBVEFNT0RFTF9DSEFOR0VEOiAnT05fREFUQU1PREVMX0NIQU5HRUQnLFxuICAgICAgICBPTl9GT1JNX0lOSVRJQUxFRDogJ09OX0ZPUk1fSU5JVElBTEVEJyxcbiAgICAgICAgT05fU0hPVzogJ09OX1NIT1cnLFxuICAgICAgICBPTl9GT1JNX1ZBTElEQVRFRDogJ09OX0ZPUk1fVkFMSURBVEVEJyxcbiAgICAgICAgRVhQT1JUX0VYQ0VMOiAnRVhQT1JUX0VYQ0VMJyxcbiAgICAgICAgRVhQT1JUX0FMTF9FWENFTDogJ0VYUE9SVF9BTExfRVhDRUwnLFxuICAgICAgICBFWFBPUlRfQUxMX09CSkVDVF9FWENFTDogJ0VYUE9SVF9BTExfT0JKRUNUX0VYQ0VMJyxcbiAgICAgICAgRVhQT1JUX0VYQ0VMX0JZX1RFTVBMQVRFOiAnRVhQT1JUX0VYQ0VMX0JZX1RFTVBMQVRFJyxcbiAgICAgICAgREVMRVRFX01VTFRJUExFOiAnREVMRVRFX01VTFRJUExFJyxcbiAgICAgICAgREVMRVRFOiAnREVMRVRFJyxcbiAgICAgICAgR0VUX0RBVEFfT1VUUFVUOiAnR0VUX0RBVEFfT1VUUFVUJyxcbiAgICAgICAgQ0xPU0VfRURJVF9GT1JNOiAnQ0xPU0VfRURJVF9GT1JNJyxcbiAgICAgICAgREFUQV9MT0FERUQ6ICdEQVRBX0xPQURFRCcsXG4gICAgICAgIERBVEFfTE9BRElORzogJ0RBVEFfTE9BRElORycsXG4gICAgICAgIEZPUk1fU0NIRU1BX0NIQU5HRUQ6ICdGT1JNX1NDSEVNQV9DSEFOR0VEJyxcbiAgICAgICAgVFJJR0dFUl9TSE9XX1NFVFRJTkc6ICdUUklHR0VSX1NIT1dfU0VUVElORycsXG4gICAgICAgIEZPUkNFX1JFTkRFUjogJ0ZPUkNFX1JFTkRFUicsXG4gICAgICAgIFJBRElPX1NFTEVDVEVEOiAnUkFESU9fU0VMRUNURUQnLFxuICAgICAgICBGT0NVU19UT19GSVJTVF9JTlBVVF9DT05UUk9MOiAnRk9DVVNfVE9fRklSU1RfSU5QVVRfQ09OVFJPTCcsXG4gICAgICAgIFNJTkdMRV9GSUxFX1NBVkVEOiAnU0lOR0xFX0ZJTEVfU0FWRUQnLFxuICAgICAgICBSRUxPQURfQ1JVRF9GT1JNOiAnUkVMT0FEX0NSVURfRk9STScsXG4gICAgICAgIEJJTkRFRF9ERVRBSUxfREFUQTogJ0JJTkRFRF9ERVRBSUxfREFUQScsXG4gICAgICAgIEFGVEVSX0JJTkRFRF9ERVRBSUxfREFUQTogJ0FGVEVSX0JJTkRFRF9ERVRBSUxfREFUQScsXG4gICAgICAgIFVQREFURV9SRUZGSUVMRDogJ1VQREFURV9SRUZGSUVMRCcsXG4gICAgICAgIEVOVElUWV9NRVRBREFUQV9MT0FERUQ6ICdFTlRJVFlfTUVUQURBVEFfTE9BREVEJyxcbiAgICAgICAgRU5USVRZX01FVEFEQVRBX0NIQU5HRVNUQVRVUzogJ0VOVElUWV9NRVRBREFUQV9DSEFOR0VTVEFUVVMnLFxuICAgICAgICBFTlRJVFlfUEVSTUlTU09OX0xPQURFRDogJ0VOVElUWV9QRVJNSVNTT05fTE9BREVEJyxcbiAgICAgICAgRU5USVRZX1BFUk1JU1NPTl9NT0RJRlk6ICdFTlRJVFlfUEVSTUlTU09OX01PRElGWScsXG4gICAgICAgIEVOVElUWV9XRl9TSE9XSElTVE9SWTogJ0VOVElUWV9XRl9TSE9XSElTVE9SWScsXG4gICAgICAgIEVOVElUWV9NRVRBREFUQV9SRUxPQURFRDogJ0VOVElUWV9NRVRBREFUQV9SRUxPQURFRCcsXG4gICAgICAgIFNDUk9MTF9UT19CT1RUT006ICdTQ1JPTExfVE9fQk9UVE9NJyxcbiAgICAgICAgVEFCTEVfU0NIRU1BX1BBR0lOR19ORVhUOiAnVEFCTEVfU0NIRU1BX1BBR0lOR19ORVhUJyxcbiAgICAgICAgVEFCTEVfU0NIRU1BX1BBR0lOR19QUkVWOiAnVEFCTEVfU0NIRU1BX1BBR0lOR19QUkVWJyxcbiAgICAgICAgVEFCTEVfU0NIRU1BX1BBR0lOR19PTERFU1Q6ICdUQUJMRV9TQ0hFTUFfUEFHSU5HX09MREVTVCcsXG4gICAgICAgIFRBQkxFX1NDSEVNQV9QQUdJTkdfTkVXRVNUOiAnVEFCTEVfU0NIRU1BX1BBR0lOR19ORVdFU1QnLFxuICAgICAgICBST1dfU0VMRUNURUQ6ICdST1dfU0VMRUNURUQnLFxuICAgICAgICBST1dfU0VMRUNUX0FMTF9DSEFOR0VEOiAnUk9XX1NFTEVDVF9BTExfQ0hBTkdFRCcsXG4gICAgICAgIEhJRERFTl9TQVZFOiAnSElEREVOX1NBVkUnLFxuICAgICAgICBTRVRfVklFV19NT0RFOiAnU0VUX1ZJRVdfTU9ERScsXG4gICAgICAgIFJFTE9BRF9DUlVEX0xJU1Q6ICdSRUxPQURfQ1JVRF9MSVNUJyxcbiAgICAgICAgUkVMT0FEX0RBVEFfQ1JVRF9MSVNUOiAnUkVMT0FEX0RBVEFfQ1JVRF9MSVNUJyxcbiAgICAgICAgVEFCTEVfUkVOREVSRUQ6ICdUQUJMRV9SRU5ERVJFRCcsXG4gICAgICAgIEFERF9DVVNUT01fRklMVEVSOiAnIEFERF9DVVNUT01fRklMVEVSJyxcbiAgICAgICAgU0FWRV9GSUxFX0lOX0ZPUk06ICdTQVZFX0ZJTEVfSU5fRk9STScsXG4gICAgICAgIFNIT1dfTk9USUZZOiAnU0hPV19OT1RJRlknLFxuICAgICAgICBGT1JDRV9SRUxPQUQ6ICdGT1JDRV9SRUxPQUQnLFxuICAgICAgICBSRU9SREVSX1NBVkU6ICdSRU9SREVSX1NBVkUnXG4gICAgfTtcblxuICAgIHN0YXRpYyBQQVJBTV9TRUFSQ0ggPSB7XG4gICAgICAgIFNUQVJUOiAnX19zJyxcbiAgICAgICAgRU5EOiAnX19lJ1xuICAgIH07XG5cbiAgICBzdGF0aWMgRW50aXR5UGlja2VyRGlhbG9nRXZlbnRzID0ge1xuICAgICAgICBDTE9TRV9QT1BVUDogJ0NMT1NFX1BPUFVQJyxcbiAgICAgICAgTEFTVF9FTlRJVFlfQ0hBTkdFOiAnTEFTVF9FTlRJVFlfQ0hBTkdFJ1xuICAgIH07XG5cbiAgICBzdGF0aWMgVGFza1JlbGF0aW9uc2hpcENvZGVzID0ge1xuICAgICAgICBUQVNLX1JFTEFUSU9OU0hJUF9DT0RFOiAnQ29uZ1ZpZWNMaWVuUXVhbidcbiAgICB9O1xuXG4gICAgc3RhdGljIEN1c3RvbUJ1dHRvbkV2ZW50cyA9IHtcbiAgICAgICAgVGFza1JlbGF0aW9uc2hpcDoge1xuICAgICAgICAgICAgQUREX05FV19UQVNLOiAnQUREX05FV19UQVNLJyxcbiAgICAgICAgICAgIEFERF9FWElTVElOR19UQVNLOiAnQUREX0VYSVNUSU5HX1RBU0snXG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgc3RhdGljIEFVVE9DT01QTEVURV9MSVNUID0ge1xuICAgICAgICBVU0VSOiAwLFxuICAgICAgICBTVFVERU5UOiAxLFxuICAgICAgICBURUFDSEVSOiAyLFxuICAgICAgICBST09NOiAzLFxuICAgICAgICBDTEFTUzogNCxcbiAgICAgICAgU1VCSkVDVDogNSxcbiAgICAgICAgTkdVT0lfVEhVRTogNixcbiAgICAgICAgRE9OX1ZJOiA3LFxuICAgICAgICBLSE86IDgsXG4gICAgICAgIE5HQU5IOiA5LFxuICAgICAgICBUSElFVEJJOiAxMCxcbiAgICAgICAgSE9DUEhBTl9SQU5HQlVPQzogMTEsXG4gICAgICAgIE9SR0FOSVpBVElPTjogMTIsXG4gICAgICAgIEhPUERPTkc6IDEzLFxuICAgICAgICBURUFDSEVSUExVUzogMTQsXG4gICAgICAgIERFX1RBSTogMTUsXG4gICAgICAgIEJJRVVfTUFVOiAxNixcbiAgICAgICAgVEVBQ0hFUkZVTEw6IDE3LFxuICAgIH07XG5cbiAgICBzdGF0aWMgUEVSTUlTU0lPTiA9IHtcbiAgICAgICAgUkVGUkVTSF9QRVJNSVNTSU9OOiAnUkVGUkVTSF9QRVJNSVNTSU9OJyxcbiAgICAgICAgU0VMRUNURURfT0JKRUNUX0NIQU5HRUQ6ICdTRUxFQ1RFRF9PQkpFQ1RfQ0hBTkdFRCcsXG4gICAgICAgIFJFRlJFU0hfVVNFUl9QRVJNSVNTSU9OOiAnUkVGUkVTSF9VU0VSX1BFUk1JU1NJT04nLFxuICAgIH07XG5cbiAgICBzdGF0aWMgTk9USUZJQ0FUSU9OID0ge1xuICAgICAgICBOT1RJRklDQVRJT05fUkVMT0FEOiAnTk9USUZJQ0FUSU9OX1JFTE9BRCcsXG4gICAgICAgIE5PVElGSUNBVElPTl9DSEFOR0U6ICdOT1RJRklDQVRJT05fQ0hBTkdFJyxcbiAgICAgICAgTk9USUZJQ0FUSU9OX1VTRVJfQ0hBTkdFOiAnTk9USUZJQ0FUSU9OX1VTRVJfQ0hBTkdFJ1xuICAgIH07XG59XG4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWNvbnRleHQuY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY29uZmlncy9jb21wb25lbnQtY29udGV4dC5jb25zdGFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZUFBZTs7QUFFakIsb0JBQUksR0FBRztJQUNWLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QywyQkFBMkIsRUFBRSx3QkFBd0I7SUFDckQseUJBQXlCLEVBQUUsMkJBQTJCO0lBQ3RELHVCQUF1QixFQUFFLHlCQUF5QjtJQUNsRCxtQkFBbUIsRUFBRSxxQkFBcUI7SUFDMUMsNkJBQTZCLEVBQUUsK0JBQStCO0lBQzlELHFCQUFxQixFQUFFLHVCQUF1QjtJQUM5QyxTQUFTLEVBQUUsV0FBVztJQUN0QixpQkFBaUIsRUFBRSxtQkFBbUI7SUFDdEMsd0JBQXdCLEVBQUUsMEJBQTBCO0lBQ3BELGdDQUFnQyxFQUFFLGtDQUFrQztJQUNwRSw0QkFBNEIsRUFBRSw4QkFBOEI7SUFDNUQsc0JBQXNCLEVBQUUsd0JBQXdCO0lBQ2hELGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QyxvQkFBb0IsRUFBRSxzQkFBc0I7SUFDNUMsaUJBQWlCLEVBQUUsbUJBQW1CO0lBQ3RDLHdCQUF3QixFQUFFLDBCQUEwQjtJQUNwRCxvQkFBb0IsRUFBRSxzQkFBc0I7SUFDNUMsZ0NBQWdDLEVBQUUsa0NBQWtDO0lBQ3BFLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxnQkFBZ0IsRUFBRSxrQkFBa0I7SUFDcEMsdUJBQXVCLEVBQUUseUJBQXlCO0lBQ2xELGFBQWEsRUFBRSxlQUFlO0lBQzlCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMs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e1xuXG4gICAgc3RhdGljIFJPT1QgPSB7XG4gICAgICAgIFVTRVJfUkVBRFk6ICdVU0VSX1JFQURZJyxcbiAgICAgICAgVVNFUl9MT0FERUQ6ICdVU0VSX0xPQURFRCcsXG4gICAgICAgIFVTRVJfSU5GT19DSEFOR0VEOiAnVVNFUl9JTkZPX0NIQU5HRUQnLFxuICAgICAgICBORUVEX0NMRUFSX1BFUk1JU1NJT05fQ0FDSEU6ICdDTEVBUl9QRVJNSVNTSU9OX0NBQ0hFJyxcbiAgICAgICAgQURWQU5DRV9TRUFSQ0hfVE9HR0xFX0JPWDogJ0FEVkFOQ0VfU0VBUkNIX1RPR0dMRV9CT1gnLFxuICAgICAgICBBRFZBTkNFX1NFQVJDSF9ISURFX0JPWDogJ0FEVkFOQ0VfU0VBUkNIX0hJREVfQk9YJyxcbiAgICAgICAgQURWQU5DRV9TRUFSQ0hfSU5JVDogJ0FEVkFOQ0VfU0VBUkNIX0lOSVQnLFxuICAgICAgICBBRFZBTkNFX1NFQVJDSF9UUklHR0VSX1NFQVJDSDogJ0FEVkFOQ0VfU0VBUkNIX1RSSUdHRVJfU0VBUkNIJyxcbiAgICAgICAgQURWQU5DRV9CSU5EX0RST1BET1dOOiAnQURWQU5DRV9CSU5EX0RST1BET1dOJyxcbiAgICAgICAgT05fU0VBUkNIOiAnT05fU0VBUkNIJyxcbiAgICAgICAgT05fU0VBUkNIX1ZFUlNJT046ICdPTl9TRUFSQ0hfVkVSU0lPTicsXG4gICAgICAgIEFEVkFOQ0VfU0VBUkNITU9ERUxfSU5JVDogJ0FEVkFOQ0VfU0VBUkNITU9ERUxfSU5JVCcsXG4gICAgICAgIE9OX0FEVkFOQ0VfU0VBUkNIX0ZPUk1fSU5JVElBTEVEOiAnT05fQURWQU5DRV9TRUFSQ0hfRk9STV9JTklUSUFMRUQnLFxuICAgICAgICBPTl9BRFZBTkNFX1NFQVJDSF9GT1JNX0VWRU5UOiAnT05fQURWQU5DRV9TRUFSQ0hfRk9STV9FVkVOVCcsXG4gICAgICAgIERJU0FCTEVfQURWQU5DRV9TRUFSQ0g6ICdESVNBQkxFX0FEVkFOQ0VfU0VBUkNIJyxcbiAgICAgICAgREVTVFJPWV9DT01QT05FTlQ6ICdERVNUUk9ZX0NPTVBPTkVOVCcsXG4gICAgICAgIENIQVRfTUVTU0FHRV9TRU5ESU5HOiAnQ0hBVF9NRVNTQUdFX1NFTkRJTkcnLFxuICAgICAgICBDSEFUX01FU1NBR0VfU0VOVDogJ0NIQVRfTUVTU0FHRV9TRU5UJyxcbiAgICAgICAgQ0hBVF9NRVNTQUdFX0FUVEFDSF9GSUxFOiAnQ0hBVF9NRVNTQUdFX0FUVEFDSF9GSUxFJyxcbiAgICAgICAgQ0hBVF9IQVNfTkVXX01FU1NBR0U6ICdDSEFUX0hBU19ORVdfTUVTU0FHRScsXG4gICAgICAgIENIQVRfSEFTX05FV19NRVNTQUdFX05PVF9VUERBVEVEOiAnQ0hBVF9IQVNfTkVXX01FU1NBR0VfTk9UX1VQREFURUQnLFxuICAgICAgICBDSEFUX1NDUk9MTElORzogJ0NIQVRfU0NST0xMSU5HJyxcbiAgICAgICAgQ0hBVF9MT0FEX01PUkU6ICdDSEFUX0xPQURfTU9SRScsXG4gICAgICAgIENIQVRfREFUQV9MT0FERUQ6ICdDSEFUX0RBVEFfTE9BREVEJyxcbiAgICAgICAgQ0hBVF9JTlNUQU5DRV9JRF9MT0FERUQ6ICdDSEFUX0lOU1RBTkNFX0lEX0xPQURFRCcsXG4gICAgICAgIENIQVRfTU9VU0VfVVA6ICdDSEFUX01PVVNFX1VQJyxcbiAgICAgICAgTk9USV9DTElDSzogJ05PVElfQ0xJQ0snLFxuICAgICAgICBLRVlfRE9XTl9DVFJMX1M6ICdLRVlfRE9XTl9DVFJMX1MnLCAvLyBzYXZlIGFjdGl2ZSBDUlVEIGZvcm1cbiAgICAgICAgS0VZX0RPV05fRVNDOiAnS0VZX0RPV05fRVNDJywgLy8gZXhpdCBhY3RpdmUgQ1JVRCBmb3JtXG4gICAgICAgIEtFWV9ET1dOX0NUUkxfRjogJ0tFWV9ET1dOX0NUUkxfRicsIC8vIGZvY3VzIHRvIHRvcCBzZWFyY2ggYm94IHdoZW4gaW4gbWFpbiBzY3JlZW5cbiAgICAgICAgS0VZX0RPV05fQ1RSTF9EOiAnS0VZX0RPV05fQ1RSTF9EJywgLy8gY3JlYXRlIG5ldyBpdGVtIHdoZW4gYWN0aXZhdGluZyBDUlVEIGxpc3RcbiAgICAgICAgQk9EWV9NT1VTRV9ET1dOOiAnQk9EWV9NT1VTRV9ET1dOJyxcbiAgICAgICAgQk9EWV9NT1VTRV9VUDogJ0JPRFlfTU9VU0VfVVAnLFxuICAgICAgICBCT0RZX1RPVUNIX1NUQVJUOiAnQk9EWV9UT1VDSF9TVEFSVCcsXG4gICAgICAgIEJPRFlfVE9VQ0hfRU5EOiAnQk9EWV9UT1VDSF9FTkQnLFxuICAgICAgICBXSU5ET1dfUkVTSVpFOiAnV0lORE9XX1JFU0laRScsXG4gICAgICAgIFNXSVBFX0xFRlQ6ICdTV0lQRV9MRUZUJyxcbiAgICAgICAgU1dJUEVfUklHSFQ6ICdTV0lQRV9SSUdIVCcsXG4gICAgICAgIFBSRVNTOiAnUFJFU1MnLFxuICAgICAgICBQUkVTU19VUDogJ1BSRVNTX1VQJyxcbiAgICAgICAgS0VZX0RPV05fQVJST1dMRUZUOiAnS0VZX0RPV05fQVJST1dMRUZUJyxcbiAgICAgICAgS0VZX0RPV05fQVJST1dSSUdIVDogJ0tFWV9ET1dOX0FSUk9XUklHSFQnLFxuICAgICAgICBLRVlfRE9XTl9BUlJPV0RPV046ICdLRVlfRE9XTl9BUlJPV0RPV04nLFxuICAgICAgICBLRVlfRE9XTl9BUlJPV1VQOiAnS0VZX0RPV05fQVJST1dVUCcsXG4gICAgICAgIFBFUlNPTkFMSVpFX1VQREFURUQ6ICdQRVJTT05BTElaRV9VUERBVEVEJyxcbiAgICAgICAgTk9URV9UQVNLX0NSRUFURTogJ05PVEVfVEFTS19DUkVBVEUnLFxuICAgICAgICBRVUlDS19OT1RFX1BJTjogJ1FVSUNLX05PVEVfUElOJyxcbiAgICAgICAgUVVJQ0tfTk9URV9VTlBJTjogJ1FVSUNLX05PVEVfVU5QSU4nLFxuICAgICAgICBRVUlDS19OT1RFX0NPTVBMRVRFOiAnUVVJQ0tfTk9URV9DT01QTEVURScsXG4gICAgICAgIFFVSUNLX05PVEVfSU5DT01QTEVURTogJ1FVSUNLX05PVEVfSU5DT01QTEVURScsXG4gICAgICAgIERFU1RST1lfVEFTS19ERVRBSUxfQ09NUE9ORU5UOiAnREVTVFJPWV9UQVNLX0RFVEFJTF9DT01QT05FTlQnLFxuICAgICAgICBNRU5VX0NIQU5HRUQ6ICdNRU5VX0NIQU5HRUQnLFxuICAgICAgICBBRFZBTkNFX1NFQVJDSF9JTklUX1dJVEhPVVRfVVBEQVRFX1JPVVRFUjogJ0FEVkFOQ0VfU0VBUkNIX0lOSVRfV0lUSE9VVF9VUERBVEVfUk9VVEVSJyxcbiAgICAgICAgU0hPV19XQUlUX0JPWDogJ1NIT1dfV0FJVF9CT1gnLFxuICAgICAgICBTSE9XX1JFSkVDVF9DT05GSVJNOiAnU0hPV19SRUpFQ1RfQ09ORklSTScsXG4gICAgICAgIE1FTlVfUkVMT0FEOiAnTUVOVV9SRUxPQUQnXG4gICAgfTtcblxuICAgIHN0YXRpYyBST09UX1VTTUFSVCA9IHtcbiAgICAgICAgU0hPV19DT05GSUdfREFUQV9ERUZBVUxUOiAnU0hPV19DT05GSUdfREFUQV9ERUZBVUxUJyxcbiAgICAgICAgQ09ORklHX0RBVEFfREVGQVVMVF9PUEVORUQ6ICdDT05GSUdfREFUQV9ERUZBVUxUX09QRU5FRCcsXG4gICAgICAgIENPTkZJR19EQVRBX0RFRkFVTFRfQ0xPU0VEOiAnQ09ORklHX0RBVEFfREVGQVVMVF9DTE9TRUQnXG4gICAgfTtcblxuICAgIHN0YXRpYyBMT0NBTFNUT1JBR0VfS0VZID0ge1xuICAgICAgICBQQUdFX1NFVFRJTkc6ICdQQUdFX1NFVFRJTkcnLFxuICAgICAgICBDT0xVTU5fU0VUVElORzogJ0NPTFVNTl9TRVRUSU5HJyxcbiAgICAgICAgQ09MT1JfU0VUVElORzogJ0NPTE9SX1NFVFRJTkcnLFxuICAgICAgICBERUZBVUxUX0RBVEE6ICdERUZBVUxUX0RBVEEnLFxuICAgICAgICBBRFZBTkNFX0ZJTFRFUjogJ0FEVkFOQ0VfRklMVEVSJyxcbiAgICAgICAgQlVUVE9OX0FVVEhPUklaRTogJ0JVVFRPTl9BVVRIT1JJWkUnLFxuICAgICAgICBCVVRUT05fU0VUVElORzogJ0JVVFRPTl9TRVRUSU5HJ1xuICAgIH07XG4gICAgc3RhdGljIENPTU1PTl9WTiA9IHtcbiAgICAgICAgQUREOiAnVEhFTV9NT0knLFxuICAgICAgICBFRElUOiAnU1VBJyxcbiAgICAgICAgREVMRVRFOiAnWE9BJyxcbiAgICAgICAgREVMRVRFX01VTFRJUExFOiAnWE9BX0NBQ19NVUNfREFfQ0hPTicsXG4gICAgfTtcblxuICAgIHN0YXRpYyBDT01NT04gPSB7XG4gICAgICAgIEFERDogJ0FERCcsXG4gICAgICAgIEVESVQ6ICdFRElUJyxcbiAgICAgICAgRURJVF9WRVJTSU9OOiAnRURJVF9WRVJTSU9OJyxcbiAgICAgICAgREVMRVRFX1ZFUlNJT046ICdERUxFVEVfVkVSU0lPTicsXG4gICAgICAgIFRSSUdHRVJfVVBMT0FEOiAnVFJJR0dFUl9VUExPQUQnLFxuICAgICAgICBUUklHR0VSX0VESVQ6ICdUUklHR0VSX0VESVQnLFxuICAgICAgICBUUklHR0VSX0RFTEVURTogJ1RSSUdHRVJfREVMRVRFJyxcbiAgICAgICAgVFJJR0dFUl9DVVNUT01fQlVUVE9OX0NMSUNLOiAnVFJJR0dFUl9DVVNUT01fQlVUVE9OX0NMSUNLJyxcbiAgICAgICAgUkVMT0FEX0RBVEFfVkVSU0lPTjogJ1JFTE9BRF9EQVRBX1ZFUlNJT04nLFxuICAgICAgICBTQVZFOiAnU0FWRScsXG4gICAgICAgIENVU1RPTV9TQVZFOiAnQ1VTVE9NX1NBVkUnLFxuICAgICAgICBDVVNUT01fU0FWRV9XT1JLRkxPV19ET05FOiAnQ1VTVE9NX1NBVkVfV09SS0ZMT1dfRE9ORScsXG4gICAgICAgIENVU1RPTV9TQVZFX0VQOiAnQ1VTVE9NX1NBVkVfRVAnLCAvLyBTYXZlIGVudGl0eSBwZXJtaXNzaW9uXG4gICAgICAgIFNBVkVfREFUQV9ERUZBVUxUOiAnU0FWRURfREFUQV9ERUZBVUxUJyxcbiAgICAgICAgU0FWRUQ6ICdTQVZFRCcsXG4gICAgICAgIENBTkNFTDogJ0NBTkNFTCcsXG4gICAgICAgIENIRUNLX0VYSVNUOiAnQ0hFQ0tfRVhJU1QnLFxuICAgICAgICBTRVRfU0VMRUNURURfUk9XOiAnU0VUX1NFTEVDVEVEX1JPVycsXG4gICAgICAgIFJFTU9WRV9FUlJPUl9FWElTVDogJ1JFTU9WRV9FUlJPUl9FWElTVCcsXG4gICAgICAgIE9OX0ZPUk1fRVZFTlRfQ1VTVE9NOiAnT05fRk9STV9FVkVOVF9DVVNUT00nLFxuICAgICAgICBPTl9GT1JNX0VWRU5UOiAnT05fRk9STV9FVkVOVCcsXG4gICAgICAgIE9OX0RBVEFNT0RFTF9DSEFOR0VEOiAnT05fREFUQU1PREVMX0NIQU5HRUQnLFxuICAgICAgICBPTl9GT1JNX0lOSVRJQUxFRDogJ09OX0ZPUk1fSU5JVElBTEVEJyxcbiAgICAgICAgT05fU0hPVzogJ09OX1NIT1cnLFxuICAgICAgICBPTl9GT1JNX1ZBTElEQVRFRDogJ09OX0ZPUk1fVkFMSURBVEVEJyxcbiAgICAgICAgRVhQT1JUX0VYQ0VMOiAnRVhQT1JUX0VYQ0VMJyxcbiAgICAgICAgRVhQT1JUX0FMTF9FWENFTDogJ0VYUE9SVF9BTExfRVhDRUwnLFxuICAgICAgICBFWFBPUlRfQUxMX09CSkVDVF9FWENFTDogJ0VYUE9SVF9BTExfT0JKRUNUX0VYQ0VMJyxcbiAgICAgICAgRVhQT1JUX0VYQ0VMX0JZX1RFTVBMQVRFOiAnRVhQT1JUX0VYQ0VMX0JZX1RFTVBMQVRFJyxcbiAgICAgICAgREVMRVRFX01VTFRJUExFOiAnREVMRVRFX01VTFRJUExFJyxcbiAgICAgICAgREVMRVRFOiAnREVMRVRFJyxcbiAgICAgICAgR0VUX0RBVEFfT1VUUFVUOiAnR0VUX0RBVEFfT1VUUFVUJyxcbiAgICAgICAgQ0xPU0VfRURJVF9GT1JNOiAnQ0xPU0VfRURJVF9GT1JNJyxcbiAgICAgICAgREFUQV9MT0FERUQ6ICdEQVRBX0xPQURFRCcsXG4gICAgICAgIERBVEFfTE9BRElORzogJ0RBVEFfTE9BRElORycsXG4gICAgICAgIEZPUk1fU0NIRU1BX0NIQU5HRUQ6ICdGT1JNX1NDSEVNQV9DSEFOR0VEJyxcbiAgICAgICAgVFJJR0dFUl9TSE9XX1NFVFRJTkc6ICdUUklHR0VSX1NIT1dfU0VUVElORycsXG4gICAgICAgIEZPUkNFX1JFTkRFUjogJ0ZPUkNFX1JFTkRFUicsXG4gICAgICAgIFJBRElPX1NFTEVDVEVEOiAnUkFESU9fU0VMRUNURUQnLFxuICAgICAgICBGT0NVU19UT19GSVJTVF9JTlBVVF9DT05UUk9MOiAnRk9DVVNfVE9fRklSU1RfSU5QVVRfQ09OVFJPTCcsXG4gICAgICAgIFNJTkdMRV9GSUxFX1NBVkVEOiAnU0lOR0xFX0ZJTEVfU0FWRUQnLFxuICAgICAgICBSRUxPQURfQ1JVRF9GT1JNOiAnUkVMT0FEX0NSVURfRk9STScsXG4gICAgICAgIEJJTkRFRF9ERVRBSUxfREFUQTogJ0JJTkRFRF9ERVRBSUxfREFUQScsXG4gICAgICAgIEFGVEVSX0JJTkRFRF9ERVRBSUxfREFUQTogJ0FGVEVSX0JJTkRFRF9ERVRBSUxfREFUQScsXG4gICAgICAgIFVQREFURV9SRUZGSUVMRDogJ1VQREFURV9SRUZGSUVMRCcsXG4gICAgICAgIEVOVElUWV9NRVRBREFUQV9MT0FERUQ6ICdFTlRJVFlfTUVUQURBVEFfTE9BREVEJyxcbiAgICAgICAgRU5USVRZX01FVEFEQVRBX0NIQU5HRVNUQVRVUzogJ0VOVElUWV9NRVRBREFUQV9DSEFOR0VTVEFUVVMnLFxuICAgICAgICBFTlRJVFlfUEVSTUlTU09OX0xPQURFRDogJ0VOVElUWV9QRVJNSVNTT05fTE9BREVEJyxcbiAgICAgICAgRU5USVRZX1BFUk1JU1NPTl9NT0RJRlk6ICdFTlRJVFlfUEVSTUlTU09OX01PRElGWScsXG4gICAgICAgIEVOVElUWV9XRl9TSE9XSElTVE9SWTogJ0VOVElUWV9XRl9TSE9XSElTVE9SWScsXG4gICAgICAgIEVOVElUWV9NRVRBREFUQV9SRUxPQURFRDogJ0VOVElUWV9NRVRBREFUQV9SRUxPQURFRCcsXG4gICAgICAgIFNDUk9MTF9UT19CT1RUT006ICdTQ1JPTExfVE9fQk9UVE9NJyxcbiAgICAgICAgVEFCTEVfU0NIRU1BX1BBR0lOR19ORVhUOiAnVEFCTEVfU0NIRU1BX1BBR0lOR19ORVhUJyxcbiAgICAgICAgVEFCTEVfU0NIRU1BX1BBR0lOR19QUkVWOiAnVEFCTEVfU0NIRU1BX1BBR0lOR19QUkVWJyxcbiAgICAgICAgVEFCTEVfU0NIRU1BX1BBR0lOR19PTERFU1Q6ICdUQUJMRV9TQ0hFTUFfUEFHSU5HX09MREVTVCcsXG4gICAgICAgIFRBQkxFX1NDSEVNQV9QQUdJTkdfTkVXRVNUOiAnVEFCTEVfU0NIRU1BX1BBR0lOR19ORVdFU1QnLFxuICAgICAgICBST1dfU0VMRUNURUQ6ICdST1dfU0VMRUNURUQnLFxuICAgICAgICBST1dfU0VMRUNUX0FMTF9DSEFOR0VEOiAnUk9XX1NFTEVDVF9BTExfQ0hBTkdFRCcsXG4gICAgICAgIEhJRERFTl9TQVZFOiAnSElEREVOX1NBVkUnLFxuICAgICAgICBTRVRfVklFV19NT0RFOiAnU0VUX1ZJRVdfTU9ERScsXG4gICAgICAgIFJFTE9BRF9DUlVEX0xJU1Q6ICdSRUxPQURfQ1JVRF9MSVNUJyxcbiAgICAgICAgUkVMT0FEX0RBVEFfQ1JVRF9MSVNUOiAnUkVMT0FEX0RBVEFfQ1JVRF9MSVNUJyxcbiAgICAgICAgVEFCTEVfUkVOREVSRUQ6ICdUQUJMRV9SRU5ERVJFRCcsXG4gICAgICAgIEFERF9DVVNUT01fRklMVEVSOiAnIEFERF9DVVNUT01fRklMVEVSJyxcbiAgICAgICAgU0FWRV9GSUxFX0lOX0ZPUk06ICdTQVZFX0ZJTEVfSU5fRk9STScsXG4gICAgICAgIFNIT1dfTk9USUZZOiAnU0hPV19OT1RJRlknLFxuICAgICAgICBGT1JDRV9SRUxPQUQ6ICdGT1JDRV9SRUxPQUQnLFxuICAgICAgICBSRU9SREVSX1NBVkU6ICdSRU9SREVSX1NBVkUnXG4gICAgfTtcblxuICAgIHN0YXRpYyBQQVJBTV9TRUFSQ0ggPSB7XG4gICAgICAgIFNUQVJUOiAnX19zJyxcbiAgICAgICAgRU5EOiAnX19lJ1xuICAgIH07XG5cbiAgICBzdGF0aWMgRW50aXR5UGlja2VyRGlhbG9nRXZlbnRzID0ge1xuICAgICAgICBDTE9TRV9QT1BVUDogJ0NMT1NFX1BPUFVQJyxcbiAgICAgICAgTEFTVF9FTlRJVFlfQ0hBTkdFOiAnTEFTVF9FTlRJVFlfQ0hBTkdFJ1xuICAgIH07XG5cbiAgICBzdGF0aWMgVGFza1JlbGF0aW9uc2hpcENvZGVzID0ge1xuICAgICAgICBUQVNLX1JFTEFUSU9OU0hJUF9DT0RFOiAnQ29uZ1ZpZWNMaWVuUXVhbidcbiAgICB9O1xuXG4gICAgc3RhdGljIEN1c3RvbUJ1dHRvbkV2ZW50cyA9IHtcbiAgICAgICAgVGFza1JlbGF0aW9uc2hpcDoge1xuICAgICAgICAgICAgQUREX05FV19UQVNLOiAnQUREX05FV19UQVNLJyxcbiAgICAgICAgICAgIEFERF9FWElTVElOR19UQVNLOiAnQUREX0VYSVNUSU5HX1RBU0snXG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgc3RhdGljIEFVVE9DT01QTEVURV9MSVNUID0ge1xuICAgICAgICBVU0VSOiAwLFxuICAgICAgICBTVFVERU5UOiAxLFxuICAgICAgICBURUFDSEVSOiAyLFxuICAgICAgICBST09NOiAzLFxuICAgICAgICBDTEFTUzogNCxcbiAgICAgICAgU1VCSkVDVDogNSxcbiAgICAgICAgTkdVT0lfVEhVRTogNixcbiAgICAgICAgRE9OX1ZJOiA3LFxuICAgICAgICBLSE86IDgsXG4gICAgICAgIE5HQU5IOiA5LFxuICAgICAgICBUSElFVEJJOiAxMCxcbiAgICAgICAgSE9DUEhBTl9SQU5HQlVPQzogMTEsXG4gICAgICAgIE9SR0FOSVpBVElPTjogMTIsXG4gICAgICAgIEhPUERPTkc6IDEzLFxuICAgICAgICBURUFDSEVSUExVUzogMTQsXG4gICAgICAgIERFX1RBSTogMTUsXG4gICAgICAgIEJJRVVfTUFVOiAxNixcbiAgICAgICAgVEVBQ0hFUkZVTEw6IDE3LFxuICAgIH07XG5cbiAgICBzdGF0aWMgUEVSTUlTU0lPTiA9IHtcbiAgICAgICAgUkVGUkVTSF9QRVJNSVNTSU9OOiAnUkVGUkVTSF9QRVJNSVNTSU9OJyxcbiAgICAgICAgU0VMRUNURURfT0JKRUNUX0NIQU5HRUQ6ICdTRUxFQ1RFRF9PQkpFQ1RfQ0hBTkdFRCcsXG4gICAgICAgIFJFRlJFU0hfVVNFUl9QRVJNSVNTSU9OOiAnUkVGUkVTSF9VU0VSX1BFUk1JU1NJT04nLFxuICAgIH07XG5cbiAgICBzdGF0aWMgTk9USUZJQ0FUSU9OID0ge1xuICAgICAgICBOT1RJRklDQVRJT05fUkVMT0FEOiAnTk9USUZJQ0FUSU9OX1JFTE9BRCcsXG4gICAgICAgIE5PVElGSUNBVElPTl9DSEFOR0U6ICdOT1RJRklDQVRJT05fQ0hBTkdFJyxcbiAgICAgICAgTk9USUZJQ0FUSU9OX1VTRVJfQ0hBTkdFOiAnTk9USUZJQ0FUSU9OX1VTRVJfQ0hBTkdFJ1xuICAgIH07XG59XG4iXX0=
|
package/esm2015/const/common.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EnumGioiTinh, PermissionBase } from '../enums/common';
|
|
1
|
+
import { EnumGioiTinh, PermissionBase, PermissionName } from '../enums/common';
|
|
2
2
|
export const maximumPageSize = 99999;
|
|
3
3
|
export const FieldDefineIsWorkflowControl = '__WorkflowField';
|
|
4
4
|
export const FieldDefineIsTaskFormControl = '__TaskForm';
|
|
@@ -13,9 +13,9 @@ export const TopicReloadCountCongViecV5 = '__TopicReloadCountCongViecV5';
|
|
|
13
13
|
export const FieldWorkflowCodeInCrudForm = '_WorkflowCode';
|
|
14
14
|
const ɵ0 = PermissionBase.READ, ɵ1 = PermissionBase.EDIT, ɵ2 = PermissionBase.DELETE;
|
|
15
15
|
export const DataSourcePermissionBase = [
|
|
16
|
-
{ id: ɵ0, ten:
|
|
17
|
-
{ id: ɵ1, ten:
|
|
18
|
-
{ id: ɵ2, ten:
|
|
16
|
+
{ id: ɵ0, ten: PermissionName.WATCH },
|
|
17
|
+
{ id: ɵ1, ten: PermissionName.EDIT },
|
|
18
|
+
{ id: ɵ2, ten: PermissionName.DELETE }
|
|
19
19
|
];
|
|
20
20
|
const ɵ3 = EnumGioiTinh.NAM, ɵ4 = EnumGioiTinh.NU;
|
|
21
21
|
export const DataSourceGioiTinh = [
|
|
@@ -23,4 +23,4 @@ export const DataSourceGioiTinh = [
|
|
|
23
23
|
{ id: ɵ4, ten: 'Nữ' }
|
|
24
24
|
];
|
|
25
25
|
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4 };
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliL2NvbnN0L2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLGlCQUFpQixDQUFDO0FBQzlELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLFlBQVksQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxzQkFBc0IsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyx3QkFBd0IsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFDcEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxjQUFjLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcseUJBQXlCLENBQUM7QUFDL0QsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsOEJBQThCLENBQUM7QUFDekUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsZUFBZSxDQUFDO1dBRWpELGNBQWMsQ0FBQyxJQUFJLE9BQ25CLGNBQWMsQ0FBQyxJQUFJLE9BQ25CLGNBQWMsQ0FBQyxNQUFNO0FBSC9CLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBQ3BDLEVBQUUsRUFBRSxJQUFxQixFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFO0lBQ3RELEVBQUUsRUFBRSxJQUFxQixFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsSUFBSSxFQUFFO0lBQ3JELEVBQUUsRUFBRSxJQUF1QixFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsTUFBTSxFQUFFO0NBQzVELENBQUM7V0FHUSxZQUFZLENBQUMsR0FBRyxPQUNoQixZQUFZLENBQUMsRUFBRTtBQUZ6QixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUM5QixFQUFFLEVBQUUsSUFBa0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFO0lBQ3BDLEVBQUUsRUFBRSxJQUFpQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7Q0FDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudW1HaW9pVGluaCwgUGVybWlzc2lvbkJhc2UsIFBlcm1pc3Npb25OYW1lIH0gZnJvbSAnLi4vZW51bXMvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IG1heGltdW1QYWdlU2l6ZSA9IDk5OTk5O1xuZXhwb3J0IGNvbnN0IEZpZWxkRGVmaW5lSXNXb3JrZmxvd0NvbnRyb2wgPSAnX19Xb3JrZmxvd0ZpZWxkJztcbmV4cG9ydCBjb25zdCBGaWVsZERlZmluZUlzVGFza0Zvcm1Db250cm9sID0gJ19fVGFza0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFRvcGljUmVsb2FkTm90aWZpY2F0aW9uID0gJ19fUmVsb2FkTm90aWZpY2F0aW9uJztcbmV4cG9ydCBjb25zdCBSZWdleFNwbGl0RmllbGRCeUl0ZW0gPSAnW157XSt7e2l0ZW0uKFtefX1dKyl9fSc7XG5leHBvcnQgY29uc3QgQ29sb3JCbGFjayA9ICcjMDAwMDAwJztcbmV4cG9ydCBjb25zdCBDb2xvcldoaXRlID0gJyNmZmZmZmYnO1xuZXhwb3J0IGNvbnN0IFRhZ1NlcGFyYXRvciA9ICdffF8nO1xuZXhwb3J0IGNvbnN0IEtleUZpbHRlclN0YXRlQnlNZW51Q29uZ1ZpZWMgPSAnX1N0YXRlQnlNZW51JztcbmV4cG9ydCBjb25zdCBUb3BpY1JlbG9hZENvbmdWaWVjVjUgPSAnX19Ub3BpY1JlbG9hZENvbmdWaWVjVjUnO1xuZXhwb3J0IGNvbnN0IFRvcGljUmVsb2FkQ291bnRDb25nVmllY1Y1ID0gJ19fVG9waWNSZWxvYWRDb3VudENvbmdWaWVjVjUnO1xuZXhwb3J0IGNvbnN0IEZpZWxkV29ya2Zsb3dDb2RlSW5DcnVkRm9ybSA9ICdfV29ya2Zsb3dDb2RlJztcbmV4cG9ydCBjb25zdCBEYXRhU291cmNlUGVybWlzc2lvbkJhc2UgPSBbXG4gICAgeyBpZDogUGVybWlzc2lvbkJhc2UuUkVBRCwgdGVuOiBQZXJtaXNzaW9uTmFtZS5XQVRDSCB9LFxuICAgIHsgaWQ6IFBlcm1pc3Npb25CYXNlLkVESVQsIHRlbjogUGVybWlzc2lvbk5hbWUuRURJVCB9LFxuICAgIHsgaWQ6IFBlcm1pc3Npb25CYXNlLkRFTEVURSwgdGVuOiBQZXJtaXNzaW9uTmFtZS5ERUxFVEUgfVxuXTtcblxuZXhwb3J0IGNvbnN0IERhdGFTb3VyY2VHaW9pVGluaCA9IFtcbiAgICB7IGlkOiBFbnVtR2lvaVRpbmguTkFNLCB0ZW46ICdOYW0nIH0sXG4gICAgeyBpZDogRW51bUdpb2lUaW5oLk5VLCB0ZW46ICdO4buvJyB9XG5dOyJdfQ==
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input } from '@angular/core';
|
|
1
|
+
import { Directive, ElementRef, Input, isDevMode } from '@angular/core';
|
|
2
2
|
import { PermissionTypes } from '../classes/constants';
|
|
3
3
|
import { ModuleConfigService } from '../services/module-config.service';
|
|
4
4
|
import { PermissionService } from '../services/permission.service';
|
|
5
5
|
import { UserService } from '../services/user.service';
|
|
6
|
+
import { ComCtxConstants, CommonService, EnumProperties } from '../public-api';
|
|
6
7
|
export class AuthorizeDirective {
|
|
7
|
-
constructor(_el, _permissionService, _userService, _moduleConfigService) {
|
|
8
|
+
constructor(_el, _permissionService, _userService, _commonService, _moduleConfigService) {
|
|
8
9
|
this._el = _el;
|
|
9
10
|
this._permissionService = _permissionService;
|
|
10
11
|
this._userService = _userService;
|
|
12
|
+
this._commonService = _commonService;
|
|
11
13
|
this._moduleConfigService = _moduleConfigService;
|
|
12
14
|
this._permissionTypes = PermissionTypes.CONTROL;
|
|
13
15
|
this.ignoreAdmin = false;
|
|
@@ -27,12 +29,15 @@ export class AuthorizeDirective {
|
|
|
27
29
|
this._permissionTypes = value;
|
|
28
30
|
}
|
|
29
31
|
ngOnInit() {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
}
|
|
33
|
+
ngAfterViewInit() {
|
|
34
|
+
this.setAuthorizeButton();
|
|
33
35
|
if (this._moduleCode) {
|
|
34
36
|
this.appCode = this._moduleCode;
|
|
35
37
|
}
|
|
38
|
+
if (!this.enableAuthorize) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
36
41
|
const currentUser = this._userService.getCurrentUser();
|
|
37
42
|
if (!currentUser || !(this.appCode)) {
|
|
38
43
|
console.log('Không đọc được user hoặc appCode');
|
|
@@ -64,6 +69,31 @@ export class AuthorizeDirective {
|
|
|
64
69
|
}
|
|
65
70
|
});
|
|
66
71
|
}
|
|
72
|
+
setAuthorizeButton() {
|
|
73
|
+
var _a, _b, _c;
|
|
74
|
+
let key = window.location.pathname.substring(1).toUpperCase().replace(/\//g, '_');
|
|
75
|
+
if (isDevMode()) {
|
|
76
|
+
key = `${this.appCode}_${window.location.pathname.substring(1).toUpperCase()}`;
|
|
77
|
+
}
|
|
78
|
+
// const componentName = this._element.closest(EnumProperties.CRUD_LIST)?.parentNode[EnumProperties.TAG_NAME];
|
|
79
|
+
// if (componentName && !key.endsWith(componentName)) {
|
|
80
|
+
// key += `_${componentName}`;
|
|
81
|
+
// }
|
|
82
|
+
const buttonText = (_b = (_a = this._element.getAttribute(EnumProperties.LABEL)) !== null && _a !== void 0 ? _a : this._element.getAttribute(EnumProperties.NG_REFLECT_TEXT)) !== null && _b !== void 0 ? _b : this._element.getAttribute(EnumProperties.NG_REFLECT_LABEL);
|
|
83
|
+
if (!buttonText) {
|
|
84
|
+
this.enableAuthorize = false;
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.buttonSetting = JSON.parse(sessionStorage.getItem(ComCtxConstants.LOCALSTORAGE_KEY.BUTTON_AUTHORIZE) || '{}');
|
|
88
|
+
const permissionCode = `[${key}]_[${this._commonService.convertStringToUnSign(buttonText).replace(/ /g, '_').toUpperCase()}]`;
|
|
89
|
+
const isSetAuthorize = (_c = this.buttonSetting[key]) === null || _c === void 0 ? void 0 : _c.find(p => p.code == permissionCode);
|
|
90
|
+
if (isSetAuthorize) {
|
|
91
|
+
this.permission = permissionCode;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
this.enableAuthorize = false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
67
97
|
ngAfterContentChecked() {
|
|
68
98
|
if (this._label && !this._bind && this._element.innerHTML !== '' && this.keepHTML) {
|
|
69
99
|
this._label.innerHTML = this._element.innerHTML;
|
|
@@ -81,6 +111,7 @@ AuthorizeDirective.ctorParameters = () => [
|
|
|
81
111
|
{ type: ElementRef },
|
|
82
112
|
{ type: PermissionService },
|
|
83
113
|
{ type: UserService },
|
|
114
|
+
{ type: CommonService },
|
|
84
115
|
{ type: ModuleConfigService }
|
|
85
116
|
];
|
|
86
117
|
AuthorizeDirective.propDecorators = {
|
|
@@ -92,4 +123,4 @@ AuthorizeDirective.propDecorators = {
|
|
|
92
123
|
enableAuthorize: [{ type: Input }],
|
|
93
124
|
keepHTML: [{ type: Input, args: ['keepHTML',] }]
|
|
94
125
|
};
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9kaXJlY3RpdmVzL2F1dGhvcml6ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBTXZELE1BQU0sT0FBTyxrQkFBa0I7SUE2QjNCLFlBQ1ksR0FBZSxFQUNmLGtCQUFxQyxFQUNyQyxZQUF5QixFQUN6QixvQkFBeUM7UUFIekMsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQTVCM0MscUJBQWdCLEdBQW9CLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFDbkQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFVOUIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBSXhDLGtJQUFrSTtRQUN6SCxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUt6QyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBU2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDN0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDdEQsQ0FBQztJQS9CRCxJQUFhLFlBQVksQ0FBQyxLQUFVO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLGNBQWMsQ0FBQyxLQUFVO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQTJCRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsT0FBTztTQUNWO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUNuQztRQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE9BQU87U0FDVjtRQUVELElBQUksV0FBVztlQUNSLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTTtlQUNoRCxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFO1lBQ3hFLE9BQU87U0FDVjtRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3BGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDZixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLFlBQVksRUFBRTtvQkFDeEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7b0JBQzlDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQztvQkFDeEksaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7aUJBQzlCO2dCQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDZixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBRTdDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7d0JBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQ3hEO2lCQUNKO2dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDMUI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMvRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztZQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNyQjtJQUNMLENBQUM7OztZQTVGSixTQUFTLFNBQUM7Z0JBQ1AsOENBQThDO2dCQUM5QyxRQUFRLEVBQUUsZ0JBQWdCO2FBQzdCOzs7WUFUd0MsVUFBVTtZQUcxQyxpQkFBaUI7WUFDakIsV0FBVztZQUZYLG1CQUFtQjs7OzJCQWdCdkIsS0FBSzs2QkFJTCxLQUFLO3FDQUlMLEtBQUs7eUJBRUwsS0FBSzt5QkFDTCxLQUFLOzhCQUVMLEtBQUs7dUJBR0wsS0FBSyxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBlcm1pc3Npb25UeXBlcyB9IGZyb20gJy4uL2NsYXNzZXMvY29uc3RhbnRzJztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wZXJtaXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbYXBwQXV0aG9yaXplXSdcbn0pXG5leHBvcnQgY2xhc3MgQXV0aG9yaXplRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgICBwcm90ZWN0ZWQgX21vZHVsZUNvZGU6IGFueTtcbiAgICBwcm90ZWN0ZWQgX2VsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIHByb3RlY3RlZCBfbGFiZWw6IEhUTUxFbGVtZW50O1xuICAgIHByb3RlY3RlZCBfYmluZDogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX3Blcm1pc3Npb25UeXBlczogUGVybWlzc2lvblR5cGVzID0gUGVybWlzc2lvblR5cGVzLkNPTlRST0w7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlnbm9yZUFkbWluID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBzZXQgYXBwQXV0aG9yaXplKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fbW9kdWxlQ29kZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBwZXJtaXNzaW9uVHlwZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX3Blcm1pc3Npb25UeXBlcyA9IHZhbHVlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGlzTmF2aWdhdGlvblBlcm1pc3Npb24gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGNvbnRyb2xsZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBwZXJtaXNzaW9uOiBzdHJpbmc7XG4gICAgLy8gRMO5bmcgdHJvbmcgbeG7mXQgc+G7kSB0csaw4budbmcgaOG7o3AgY29kZSBkw7luZyBjaHVuZyB0ZW1wbGF0ZSwgYnXhu5ljIHBo4bqjaSBraGFpIGLDoW8gZGlyZWN0aXZlIG5oxrBuZyBraMO0bmcgcGjhuqNpIGVsZW1lbnQgbsOgbyBjxaluZyBj4bqnbiBjaGVja1xuICAgIEBJbnB1dCgpIGVuYWJsZUF1dGhvcml6ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdrZWVwSFRNTCcpIGtlZXBIVE1MOiBib29sZWFuO1xuXG4gICAgYXBwQ29kZTogc3RyaW5nID0gJyc7XG4gICAgZW52aXJvbm1lbnQ6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudCA9IF9lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmFwcENvZGUgPSB0aGlzLl9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmFwcENvZGU7XG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSB0aGlzLl9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50O1xuICAgICAgICB0aGlzLmlnbm9yZUFkbWluID0gdGhpcy5lbnZpcm9ubWVudC5pc0lnbm9yZUFkbWluO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuZW5hYmxlQXV0aG9yaXplKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX21vZHVsZUNvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwQ29kZSA9IHRoaXMuX21vZHVsZUNvZGU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFVzZXIgPSB0aGlzLl91c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpO1xuICAgICAgICBpZiAoIWN1cnJlbnRVc2VyIHx8ICEodGhpcy5hcHBDb2RlKSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0tow7RuZyDEkeG7jWMgxJHGsOG7o2MgdXNlciBob+G6t2MgYXBwQ29kZScpO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjdXJyZW50VXNlclxuICAgICAgICAgICAgJiYgY3VycmVudFVzZXIuaXNzdXBlcnVzZXIudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnXG4gICAgICAgICAgICAmJiAoIXRoaXMuaWdub3JlQWRtaW4gJiYgY3VycmVudFVzZXIuaXNhZG1pbi50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvbGREaXNwbGF5ID0gdGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5O1xuICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIHRoaXMuX3Blcm1pc3Npb25TZXJ2aWNlLmlzQXV0aG9yaXplZCh0aGlzLmFwcENvZGUsIHRoaXMucGVybWlzc2lvbikudGhlbihpc0F1dGhvcml6ZWQgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gb2xkRGlzcGxheTtcbiAgICAgICAgICAgIGlmICghaXNBdXRob3JpemVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnQubm9kZU5hbWUgPT0gJ1AtVEFCUEFORUwnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gdGhpcy5fZWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5pZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyVGFiTGFiZWwgPSB0aGlzLl9lbGVtZW50LmNsb3Nlc3QoJy5wLXRhYnZpZXctcGFuZWxzJykucHJldmlvdXNFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKGAjJHtpZH0tbGFiZWxgKS5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJUYWJMYWJlbC5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMua2VlcEhUTUwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2xhYmVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9sYWJlbCAmJiAhdGhpcy5fYmluZCAmJiB0aGlzLl9lbGVtZW50LmlubmVySFRNTCAhPT0gJycgJiYgdGhpcy5rZWVwSFRNTCkge1xuICAgICAgICAgICAgdGhpcy5fbGFiZWwuaW5uZXJIVE1MID0gdGhpcy5fZWxlbWVudC5pbm5lckhUTUw7XG4gICAgICAgICAgICB0aGlzLl9iaW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9kaXJlY3RpdmVzL2F1dGhvcml6ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0UsTUFBTSxPQUFPLGtCQUFrQjtJQThCM0IsWUFDWSxHQUFlLEVBQ2Ysa0JBQXFDLEVBQ3JDLFlBQXlCLEVBQ3pCLGNBQTZCLEVBQzdCLG9CQUF5QztRQUp6QyxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBOUIzQyxxQkFBZ0IsR0FBb0IsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUNuRCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVU5QiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFJeEMsa0lBQWtJO1FBQ3pILG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBS3pDLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFXakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxH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RyxDQUFDO1FBQzlILE1BQU0sY0FBYyxHQUFHLE1BQUEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsMENBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxjQUFjLENBQUMsQ0FBQztRQUNwRixJQUFJLGNBQWMsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQztTQUNwQzthQUNJO1lBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7U0FDaEM7SUFDTCxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDckI7SUFDTCxDQUFDOzs7WUExSEosU0FBUyxTQUFDO2dCQUNQLDhDQUE4QztnQkFDOUMsUUFBUSxFQUFFLGdCQUFnQjthQUM3Qjs7O1lBVnVELFVBQVU7WUFHekQsaUJBQWlCO1lBQ2pCLFdBQVc7WUFDTSxhQUFhO1lBSDlCLG1CQUFtQjs7OzJCQWlCdkIsS0FBSzs2QkFJTCxLQUFLO3FDQUlMLEtBQUs7eUJBRUwsS0FBSzt5QkFDTCxLQUFLOzhCQUVMLEtBQUs7dUJBR0wsS0FBSyxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGVybWlzc2lvblR5cGVzIH0gZnJvbSAnLi4vY2xhc3Nlcy9jb25zdGFudHMnO1xuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21vZHVsZS1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Blcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21DdHhDb25zdGFudHMsIENvbW1vblNlcnZpY2UsIEVudW1Qcm9wZXJ0aWVzIH0gZnJvbSAnLi4vcHVibGljLWFwaSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1thcHBBdXRob3JpemVdJ1xufSlcbmV4cG9ydCBjbGFzcyBBdXRob3JpemVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyVmlld0luaXQge1xuICAgIHByb3RlY3RlZCBfbW9kdWxlQ29kZTogYW55O1xuICAgIHByb3RlY3RlZCBfZWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgcHJvdGVjdGVkIF9sYWJlbDogSFRNTEVsZW1lbnQ7XG4gICAgcHJvdGVjdGVkIF9iaW5kOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfcGVybWlzc2lvblR5cGVzOiBQZXJtaXNzaW9uVHlwZXMgPSBQZXJtaXNzaW9uVHlwZXMuQ09OVFJPTDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWdub3JlQWRtaW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNldCBhcHBBdXRob3JpemUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9tb2R1bGVDb2RlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHBlcm1pc3Npb25UeXBlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fcGVybWlzc2lvblR5cGVzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNOYXZpZ2F0aW9uUGVybWlzc2lvbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgY29udHJvbGxlcjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHBlcm1pc3Npb246IHN0cmluZztcbiAgICAvLyBEw7luZyB0cm9uZyBt4buZdCBz4buRIHRyxrDhu51uZyBo4bujcCBjb2RlIGTDuW5nIGNodW5nIHRlbXBsYXRlLCBideG7mWMgcGjhuqNpIGtoYWkgYsOhbyBkaXJlY3RpdmUgbmjGsG5nIGtow7RuZyBwaOG6o2kgZWxlbWVudCBuw6BvIGPFqW5nIGPhuqduIGNoZWNrXG4gICAgQElucHV0KCkgZW5hYmxlQXV0aG9yaXplOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgICBASW5wdXQoJ2tlZXBIVE1MJykga2VlcEhUTUw6IGJvb2xlYW47XG5cbiAgICBhcHBDb2RlOiBzdHJpbmcgPSAnJztcbiAgICBlbnZpcm9ubWVudDogYW55O1xuICAgIGJ1dHRvblNldHRpbmc6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudCA9IF9lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmFwcENvZGUgPSB0aGlzLl9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmFwcENvZGU7XG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSB0aGlzLl9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50O1xuICAgICAgICB0aGlzLmlnbm9yZUFkbWluID0gdGhpcy5lbnZpcm9ubWVudC5pc0lnbm9yZUFkbWluO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRBdXRob3JpemVCdXR0b24oKTtcbiAgICAgICAgaWYgKHRoaXMuX21vZHVsZUNvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwQ29kZSA9IHRoaXMuX21vZHVsZUNvZGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmVuYWJsZUF1dGhvcml6ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gdGhpcy5fdXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKTtcbiAgICAgICAgaWYgKCFjdXJyZW50VXNlciB8fCAhKHRoaXMuYXBwQ29kZSkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdLaMO0bmcgxJHhu41jIMSRxrDhu6NjIHVzZXIgaG/hurdjIGFwcENvZGUnKTtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudFVzZXJcbiAgICAgICAgICAgICYmIGN1cnJlbnRVc2VyLmlzc3VwZXJ1c2VyLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJ1xuICAgICAgICAgICAgJiYgKCF0aGlzLmlnbm9yZUFkbWluICYmIGN1cnJlbnRVc2VyLmlzYWRtaW4udG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9sZERpc3BsYXkgPSB0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXk7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgdGhpcy5fcGVybWlzc2lvblNlcnZpY2UuaXNBdXRob3JpemVkKHRoaXMuYXBwQ29kZSwgdGhpcy5wZXJtaXNzaW9uKS50aGVuKGlzQXV0aG9yaXplZCA9PiB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBvbGREaXNwbGF5O1xuICAgICAgICAgICAgaWYgKCFpc0F1dGhvcml6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fZWxlbWVudC5ub2RlTmFtZSA9PSAnUC1UQUJQQU5FTCcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWQgPSB0aGlzLl9lbGVtZW50LmZpcnN0RWxlbWVudENoaWxkLmlkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJUYWJMYWJlbCA9IHRoaXMuX2VsZW1lbnQuY2xvc2VzdCgnLnAtdGFidmlldy1wYW5lbHMnKS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoYCMke2lkfS1sYWJlbGApLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclRhYkxhYmVsLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5rZWVwSFRNTCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fbGFiZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldEF1dGhvcml6ZUJ1dHRvbigpIHtcbiAgICAgICAgbGV0IGtleSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMSkudG9VcHBlckNhc2UoKS5yZXBsYWNlKC9cXC8vZywgJ18nKTtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICBrZXkgPSBgJHt0aGlzLmFwcENvZGV9XyR7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZygxKS50b1VwcGVyQ2FzZSgpfWA7XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc3QgY29tcG9uZW50TmFtZSA9IHRoaXMuX2VsZW1lbnQuY2xvc2VzdChFbnVtUHJvcGVydGllcy5DUlVEX0xJU1QpPy5wYXJlbnROb2RlW0VudW1Qcm9wZXJ0aWVzLlRBR19OQU1FXTtcbiAgICAgICAgLy8gaWYgKGNvbXBvbmVudE5hbWUgJiYgIWtleS5lbmRzV2l0aChjb21wb25lbnROYW1lKSkge1xuICAgICAgICAvLyAgICAga2V5ICs9IGBfJHtjb21wb25lbnROYW1lfWA7XG4gICAgICAgIC8vIH1cbiAgICAgICAgY29uc3QgYnV0dG9uVGV4dCA9IHRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKEVudW1Qcm9wZXJ0aWVzLkxBQkVMKSA/PyB0aGlzLl9lbGVtZW50LmdldEF0dHJpYnV0ZShFbnVtUHJvcGVydGllcy5OR19SRUZMRUNUX1RFWFQpID8/IHRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKEVudW1Qcm9wZXJ0aWVzLk5HX1JFRkxFQ1RfTEFCRUwpO1xuICAgICAgICBpZiAoIWJ1dHRvblRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlQXV0aG9yaXplID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5idXR0b25TZXR0aW5nID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKENvbUN0eENvbnN0YW50cy5MT0NBTFNUT1JBR0VfS0VZLkJVVFRPTl9BVVRIT1JJWkUpIHx8ICd7fScpO1xuICAgICAgICBjb25zdCBwZXJtaXNzaW9uQ29kZSA9IGBbJHtrZXl9XV9bJHt0aGlzLl9jb21tb25TZXJ2aWNlLmNvbnZlcnRTdHJpbmdUb1VuU2lnbihidXR0b25UZXh0KS5yZXBsYWNlKC8gL2csICdfJykudG9VcHBlckNhc2UoKX1dYDtcbiAgICAgICAgY29uc3QgaXNTZXRBdXRob3JpemUgPSB0aGlzLmJ1dHRvblNldHRpbmdba2V5XT8uZmluZChwID0+IHAuY29kZSA9PSBwZXJtaXNzaW9uQ29kZSk7XG4gICAgICAgIGlmIChpc1NldEF1dGhvcml6ZSkge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uID0gcGVybWlzc2lvbkNvZGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZUF1dGhvcml6ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgICAgICBpZiAodGhpcy5fbGFiZWwgJiYgIXRoaXMuX2JpbmQgJiYgdGhpcy5fZWxlbWVudC5pbm5lckhUTUwgIT09ICcnICYmIHRoaXMua2VlcEhUTUwpIHtcbiAgICAgICAgICAgIHRoaXMuX2xhYmVsLmlubmVySFRNTCA9IHRoaXMuX2VsZW1lbnQuaW5uZXJIVE1MO1xuICAgICAgICAgICAgdGhpcy5fYmluZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
package/esm2015/enums/common.js
CHANGED
|
@@ -45,4 +45,22 @@ export var EnumCanBo;
|
|
|
45
45
|
EnumCanBo[EnumCanBo["NGOAI_DON_VI"] = 2] = "NGOAI_DON_VI";
|
|
46
46
|
EnumCanBo[EnumCanBo["TRONG_DON_VI"] = 3] = "TRONG_DON_VI";
|
|
47
47
|
})(EnumCanBo || (EnumCanBo = {}));
|
|
48
|
-
|
|
48
|
+
export var PermissionName;
|
|
49
|
+
(function (PermissionName) {
|
|
50
|
+
PermissionName["WATCH"] = "Xem";
|
|
51
|
+
PermissionName["ADD"] = "Th\u00EAm m\u1EDBi";
|
|
52
|
+
PermissionName["EDIT"] = "S\u1EEDa";
|
|
53
|
+
PermissionName["DELETE"] = "X\u00F3a";
|
|
54
|
+
PermissionName["DELETE_MULTIPLE"] = "X\u00F3a c\u00E1c m\u1EE5c \u0111\u00E3 ch\u1ECDn";
|
|
55
|
+
})(PermissionName || (PermissionName = {}));
|
|
56
|
+
export var EnumProperties;
|
|
57
|
+
(function (EnumProperties) {
|
|
58
|
+
EnumProperties["NG_REFLECT_TEXT"] = "ng-reflect-text";
|
|
59
|
+
EnumProperties["NG_REFLECT_LABEL"] = "ng-reflect-label";
|
|
60
|
+
EnumProperties["CRUD_LIST"] = "crud-list";
|
|
61
|
+
EnumProperties["LABEL"] = "label";
|
|
62
|
+
EnumProperties["TAG_NAME"] = "tagName";
|
|
63
|
+
EnumProperties["TOOLTIP"] = "ptooltip";
|
|
64
|
+
EnumProperties["RESULTS"] = "_results";
|
|
65
|
+
})(EnumProperties || (EnumProperties = {}));
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliL2VudW1zL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3RCLG1EQUFRLENBQUE7SUFDUixtREFBUSxDQUFBO0lBQ1IsdURBQVUsQ0FBQTtJQUNWLG1EQUFRLENBQUE7QUFDWixDQUFDLEVBTFcsY0FBYyxLQUFkLGNBQWMsUUFLekI7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLG9CQUFvQixDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLFdBQVcsQ0FBQztBQUNsRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxVQUFVLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsV0FBVyxDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUU5QyxNQUFNLENBQU4sSUFBWSxjQU1YO0FBTkQsV0FBWSxjQUFjO0lBQ3RCLHFDQUFtQixDQUFBO0lBQ25CLCtCQUFhLENBQUE7SUFDYiwrQkFBYSxDQUFBO0lBQ2IsK0JBQWEsQ0FBQTtJQUNiLCtCQUFhLENBQUE7QUFDakIsQ0FBQyxFQU5XLGNBQWMsS0FBZCxjQUFjLFFBTXpCO0FBRUQsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUNwQiw2Q0FBTyxDQUFBO0lBQ1AsMkNBQU0sQ0FBQTtBQUNWLENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QjtBQUNELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDdkIsMkRBQVcsQ0FBQTtJQUNYLHlEQUFVLENBQUE7QUFDZCxDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3RCLHVEQUFVLENBQUE7SUFDViwyREFBWSxDQUFBO0FBQ2hCLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQUVELE1BQU0sQ0FBTixJQUFZLG1CQUVYO0FBRkQsV0FBWSxtQkFBbUI7SUFDM0Isc0RBQStCLENBQUE7QUFDbkMsQ0FBQyxFQUZXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFFOUI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ2pCLHlDQUFRLENBQUE7SUFDUix5REFBWSxDQUFBO0lBQ1oseURBQVksQ0FBQTtBQUNoQixDQUFDLEVBSlcsU0FBUyxLQUFULFNBQVMsUUFJcEI7QUFDRCxNQUFNLENBQU4sSUFBWSxjQU1YO0FBTkQsV0FBWSxjQUFjO0lBQ3RCLCtCQUFhLENBQUE7SUFDYiw0Q0FBZ0IsQ0FBQTtJQUNoQixtQ0FBWSxDQUFBO0lBQ1oscUNBQWMsQ0FBQTtJQUNkLHVGQUF1QyxDQUFBO0FBQzNDLENBQUMsRUFOVyxjQUFjLEtBQWQsY0FBYyxRQU16QjtBQUVELE1BQU0sQ0FBTixJQUFZLGNBUVg7QUFSRCxXQUFZLGNBQWM7SUFDdEIscURBQW1DLENBQUE7SUFDbkMsdURBQXFDLENBQUE7SUFDckMseUNBQXVCLENBQUE7SUFDdkIsaUNBQWUsQ0FBQTtJQUNmLHNDQUFvQixDQUFBO0lBQ3BCLHNDQUFvQixDQUFBO0lBQ3BCLHNDQUFvQixDQUFBO0FBQ3hCLENBQUMsRUFSVyxjQUFjLEtBQWQsY0FBYyxRQVF6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFBlcm1pc3Npb25CYXNlIHtcbiAgICBSRUFEID0gMSxcbiAgICBFRElUID0gMixcbiAgICBERUxFVEUgPSA0LFxuICAgIEZVTEwgPSA3XG59XG5cbmV4cG9ydCBjb25zdCBGaWVsZENoZWNrYm94Q3J1ZExpc3QgPSAnX2NoZWNrYm94JztcbmV4cG9ydCBjb25zdCBGaWVsZE9yZGVyQ3J1ZExpc3QgPSAnX2luZGV4JztcbmV4cG9ydCBjb25zdCBGaWVsZEluZGV4SW5EYXRhU291cmNlID0gJ19pbmRleEluRGF0YVNvdXJjZSc7XG5leHBvcnQgY29uc3QgRmllbGRDb2xFeHBhbmRDcnVkTGlzdCA9ICdfY2hlY2tib3gnO1xuZXhwb3J0IGNvbnN0IEZpZWxkQ29sUmVvcmRlckNydWRMaXN0ID0gJ19yZW9yZGVyJztcbmV4cG9ydCBjb25zdCBGaWVsZEZ1bmN0aW9uQ3J1ZExpc3QgPSAnX2Z1bmN0aW9uJztcblxuZXhwb3J0IGNvbnN0IEtleUZ1bmN0aW9uUmVsb2FkID0gJ3JlbG9hZEJhc2UnO1xuXG5leHBvcnQgZW51bSBFbnVtVHlwZVNwbGFzaCB7XG4gICAgREVGQVVMVCA9ICdEZWZhdWx0JyxcbiAgICBORVdfVjEgPSAndjEnLFxuICAgIE5FV19WMiA9ICd2MicsXG4gICAgTkVXX1YzID0gJ3YzJyxcbiAgICBORVdfVjQgPSAndjQnLFxufVxuXG5leHBvcnQgZW51bSBFbnVtR2lvaVRpbmgge1xuICAgIE5BTSA9IDEsXG4gICAgTlUgPSAwXG59XG5leHBvcnQgZW51bSBFbnVtSG9jSGFtSG9jVmkge1xuICAgIEhPQ19IQU0gPSAxLFxuICAgIEhPQ19WSSA9IDIsXG59XG5cbmV4cG9ydCBlbnVtIEVudW1Vc2VyU291cmNlIHtcbiAgICBDQU5fQk8gPSAxLFxuICAgIEhPQ19WSUVOID0gMixcbn1cblxuZXhwb3J0IGVudW0gRW51bUFwcFN3aXRjaGVyQ29kZSB7XG4gICAgQ09OR05HVU9JRFVORyA9ICdDT05HTkdVT0lEVU5HJyxcbn1cblxuZXhwb3J0IGVudW0gRW51bUNhbkJvIHtcbiAgICBGVUxMID0gMSxcbiAgICBOR09BSV9ET05fVkksXG4gICAgVFJPTkdfRE9OX1ZJXG59XG5leHBvcnQgZW51bSBQZXJtaXNzaW9uTmFtZSB7XG4gICAgV0FUQ0ggPSAnWGVtJyxcbiAgICBBREQgPSAnVGjDqm0gbeG7m2knLFxuICAgIEVESVQgPSAnU+G7rWEnLFxuICAgIERFTEVURSA9ICdYw7NhJyxcbiAgICBERUxFVEVfTVVMVElQTEUgPSAnWMOzYSBjw6FjIG3hu6VjIMSRw6MgY2jhu41uJyxcbn1cblxuZXhwb3J0IGVudW0gRW51bVByb3BlcnRpZXMge1xuICAgIE5HX1JFRkxFQ1RfVEVYVCA9ICduZy1yZWZsZWN0LXRleHQnLFxuICAgIE5HX1JFRkxFQ1RfTEFCRUwgPSAnbmctcmVmbGVjdC1sYWJlbCcsXG4gICAgQ1JVRF9MSVNUID0gJ2NydWQtbGlzdCcsXG4gICAgTEFCRUwgPSAnbGFiZWwnLFxuICAgIFRBR19OQU1FID0gJ3RhZ05hbWUnLFxuICAgIFRPT0xUSVAgPSAncHRvb2x0aXAnLFxuICAgIFJFU1VMVFMgPSAnX3Jlc3VsdHMnLFxufSJdfQ==
|