@smartbit4all/ng-client 6.0.17 → 6.0.19
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/esm2022/lib/session/projects.mjs +1 -2
- package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +1 -1
- package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +5 -5
- package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +40 -20
- package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +1 -1
- package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +1 -1
- package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +17 -16
- package/esm2022/lib/smart-ng-client.module.mjs +4 -3
- package/esm2022/lib/smart-tree/smarttree.component.mjs +3 -3
- package/esm2022/lib/view-context/api/api/view.service.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/menu/click/menu.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/menu/hover/hover-menu.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +1 -1
- package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +13 -4
- package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +3 -3
- package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +1 -1
- package/esm2022/lib/view-context/smart-view-context.module.mjs +5 -3
- package/esm2022/lib/view-context/smart-view-context.service.mjs +2 -2
- package/fesm2022/smartbit4all-ng-client.mjs +85 -109
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/session/projects.d.ts +0 -1
- package/lib/session/smart-backend-bootstrap.config.d.ts +1 -1
- package/lib/session/smart-timer/smart-session-timer.component.d.ts +9 -6
- package/lib/view-context/api/model/uiAction.d.ts +12 -0
- package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +6 -1
- package/lib/view-context/smart-view-context.module.d.ts +2 -1
- package/lib/view-context/smart-view-context.service.d.ts +1 -1
- package/package.json +1 -1
- package/smartbit4all-ng-client-6.0.19.tgz +0 -0
- package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +0 -63
- package/lib/session/smart-timer/smart-session-timer.service.d.ts +0 -21
- package/smartbit4all-ng-client-6.0.17.tgz +0 -0
|
@@ -6,8 +6,7 @@ export * from './api/index';
|
|
|
6
6
|
export * from './smart-session.module';
|
|
7
7
|
export * from './smart-session-handler.service';
|
|
8
8
|
export * from './smart-timer/smart-session-timer.component';
|
|
9
|
-
export * from './smart-timer/smart-session-timer.service';
|
|
10
9
|
export * from './smart-backend-bootstrap.service';
|
|
11
10
|
export * from './smart-backend-bootstrap.config';
|
|
12
11
|
export * from './smart-default-error-ui.service';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL3Byb2plY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzbWFydC1zZXNzaW9uXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydC1zZXNzaW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FwaS9pbmRleCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc21hcnQtc2Vzc2lvbi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0LXNlc3Npb24taGFuZGxlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydC10aW1lci9zbWFydC1zZXNzaW9uLXRpbWVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc21hcnQtYmFja2VuZC1ib290c3RyYXAuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc21hcnQtYmFja2VuZC1ib290c3RyYXAuY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydC1kZWZhdWx0LWVycm9yLXVpLnNlcnZpY2UnO1xyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYmFja2VuZC1ib290c3RyYXAuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc2Vzc2lvbi9zbWFydC1iYWNrZW5kLWJvb3RzdHJhcC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3IsIFVpQWN0aW9uUmVxdWVzdCB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9hcGknO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdIYW5kbGVyTW9kZWwgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0Lm1vZGVsJztcclxuaW1wb3J0IHsgU2Vzc2lvbkVycm9yIH0gZnJvbSAnLi9zbWFydC1zZXNzaW9uLWhhbmRsZXIuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogRXh0ZXJuYWxseSBwcm92aWRlZCBzZXNzaW9uICsgdmlld0NvbnRleHQgdG8gaHlkcmF0ZSB0aGUgYm9vdHN0cmFwIHdpdGgsXHJcbiAqIGJ5cGFzc2luZyB0aGUgcmVndWxhciBgc3RhcnQoKWAgZmxvdy4gVHlwaWNhbCB1c2UgY2FzZTogYSBuYXRpdmUgbW9iaWxlXHJcbiAqIHNoZWxsIHRoYXQgcGVyZm9ybWVkIGF1dGhlbnRpY2F0aW9uIGl0c2VsZiBhbmQgaGFuZHMgb2ZmIHRoZSByZXN1bHQgdG8gYVxyXG4gKiB3ZWJ2aWV3LWhvc3RlZCBBbmd1bGFyIGFwcCB2aWEgVVJMIGZyYWdtZW50LlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEJhY2tlbmRCb290c3RyYXBDcmVkZW50aWFscyB7XHJcbiAgLyoqIFNJRCBpc3N1ZWQgYnkgdGhlIGJhY2tlbmQ7IHdpbGwgYmUgc2VudCBhcyBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDxzZXNzaW9uVG9rZW4+YC4gKi9cclxuICBzZXNzaW9uVG9rZW46IHN0cmluZztcclxuICAvKiogVVVJRCBvZiBhbiBhbHJlYWR5LWV4aXN0aW5nIHZpZXdDb250ZXh0IG9uIHRoZSBiYWNrZW5kLiAqL1xyXG4gIHZpZXdDb250ZXh0VXVpZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIGxvbmctbGl2ZWQgcmVmcmVzaCB0b2tlbiBwYWlyZWQgd2l0aCB0aGUgU0lELiBJZiBwcm92aWRlZCwgaXQgaXNcclxuICAgKiBwZXJzaXN0ZWQgdG8gbG9jYWxTdG9yYWdlIHNvIHRoZSBhdXRvbm9tb3VzIGBTbWFydEVycm9yQ2F0Y2hpbmdJbnRlcmNlcHRvcmBcclxuICAgKiBSRUZSRVNIIGZsb3cgY2FuIHJlY292ZXIgZnJvbSBgc2Vzc2lvbi5leHBpcmVkYCBlcnJvcnMgd2l0aG91dCBkcm9wcGluZ1xyXG4gICAqIHRoZSB1c2VyIGJhY2sgdG8gYSBmcmVzaCBhbm9ueW1vdXMgc2Vzc2lvbi5cclxuICAgKi9cclxuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRCYWNrZW5kQm9vdHN0cmFwQ29uZmlnIHtcclxuICB1cmw6IHN0cmluZztcclxuICBjb29raWVOYW1lOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVmlldyBuYW1lIHRoZSBiYWNrZW5kIHVzZXMgZm9yIGdlbmVyaWMgbWVzc2FnZSBkaWFsb2dzLiBEZWZhdWx0cyB0b1xyXG4gICAqIGAnbWVzc2FnZS1kaWFsb2cnYCAodGhlIHBsYXRmb3JtIGNvbnZlbnRpb24pIHdoZW4gb21pdHRlZC5cclxuICAgKi9cclxuICBtZXNzYWdlRGlhbG9nTmFtZT86IHN0cmluZztcclxuICB2aWV3SGFuZGxlcnM6IFNtYXJ0Vmlld0hhbmRsZXJNb2RlbFtdO1xyXG4gIGFjdGlvbkRlc2NyaXB0b3JzOiBNYXA8c3RyaW5nLCBVaUFjdGlvbkRlc2NyaXB0b3I+O1xyXG5cclxuICAvKiogT3B0aW9uYWwgb3ZlcnJpZGUgZm9yIHRoZSBkZWZhdWx0IGBoYW5kbGVTZXNzaW9uRXJyb3JgIGZsb3cuICovXHJcbiAgb25TZXNzaW9uRXJyb3I/OiAoZXJyOiBTZXNzaW9uRXJyb3IpID0+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYmFja2VuZC1ib290c3RyYXAuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc2Vzc2lvbi9zbWFydC1iYWNrZW5kLWJvb3RzdHJhcC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3IsIFVpQWN0aW9uUmVxdWVzdCB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9hcGknO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdIYW5kbGVyTW9kZWwgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0Lm1vZGVsJztcclxuaW1wb3J0IHsgU2Vzc2lvbkVycm9yIH0gZnJvbSAnLi9zbWFydC1zZXNzaW9uLWhhbmRsZXIuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogRXh0ZXJuYWxseSBwcm92aWRlZCBzZXNzaW9uICsgdmlld0NvbnRleHQgdG8gaHlkcmF0ZSB0aGUgYm9vdHN0cmFwIHdpdGgsXHJcbiAqIGJ5cGFzc2luZyB0aGUgcmVndWxhciBgc3RhcnQoKWAgZmxvdy4gVHlwaWNhbCB1c2UgY2FzZTogYSBuYXRpdmUgbW9iaWxlXHJcbiAqIHNoZWxsIHRoYXQgcGVyZm9ybWVkIGF1dGhlbnRpY2F0aW9uIGl0c2VsZiBhbmQgaGFuZHMgb2ZmIHRoZSByZXN1bHQgdG8gYVxyXG4gKiB3ZWJ2aWV3LWhvc3RlZCBBbmd1bGFyIGFwcCB2aWEgVVJMIGZyYWdtZW50LlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEJhY2tlbmRCb290c3RyYXBDcmVkZW50aWFscyB7XHJcbiAgLyoqIFNJRCBpc3N1ZWQgYnkgdGhlIGJhY2tlbmQ7IHdpbGwgYmUgc2VudCBhcyBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDxzZXNzaW9uVG9rZW4+YC4gKi9cclxuICBzZXNzaW9uVG9rZW46IHN0cmluZztcclxuICAvKiogVVVJRCBvZiBhbiBhbHJlYWR5LWV4aXN0aW5nIHZpZXdDb250ZXh0IG9uIHRoZSBiYWNrZW5kLiAqL1xyXG4gIHZpZXdDb250ZXh0VXVpZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIGxvbmctbGl2ZWQgcmVmcmVzaCB0b2tlbiBwYWlyZWQgd2l0aCB0aGUgU0lELiBJZiBwcm92aWRlZCwgaXQgaXNcclxuICAgKiBwZXJzaXN0ZWQgdG8gbG9jYWxTdG9yYWdlIHNvIHRoZSBhdXRvbm9tb3VzIGBTbWFydEVycm9yQ2F0Y2hpbmdJbnRlcmNlcHRvcmBcclxuICAgKiBSRUZSRVNIIGZsb3cgY2FuIHJlY292ZXIgZnJvbSBgc2Vzc2lvbi5leHBpcmVkYCBlcnJvcnMgd2l0aG91dCBkcm9wcGluZ1xyXG4gICAqIHRoZSB1c2VyIGJhY2sgdG8gYSBmcmVzaCBhbm9ueW1vdXMgc2Vzc2lvbi5cclxuICAgKi9cclxuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRCYWNrZW5kQm9vdHN0cmFwQ29uZmlnIHtcclxuICB1cmw6IHN0cmluZztcclxuICBjb29raWVOYW1lOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVmlldyBuYW1lIHRoZSBiYWNrZW5kIHVzZXMgZm9yIGdlbmVyaWMgbWVzc2FnZSBkaWFsb2dzLiBEZWZhdWx0cyB0b1xyXG4gICAqIGAnbWVzc2FnZS1kaWFsb2cnYCAodGhlIHBsYXRmb3JtIGNvbnZlbnRpb24pIHdoZW4gb21pdHRlZC5cclxuICAgKi9cclxuICBtZXNzYWdlRGlhbG9nTmFtZT86IHN0cmluZztcclxuICB2aWV3SGFuZGxlcnM6IFNtYXJ0Vmlld0hhbmRsZXJNb2RlbFtdO1xyXG4gIGFjdGlvbkRlc2NyaXB0b3JzOiBNYXA8c3RyaW5nLCBVaUFjdGlvbkRlc2NyaXB0b3I+O1xyXG5cclxuICAvKiogT3B0aW9uYWwgb3ZlcnJpZGUgZm9yIHRoZSBkZWZhdWx0IGBoYW5kbGVTZXNzaW9uRXJyb3JgIGZsb3cuICovXHJcbiAgb25TZXNzaW9uRXJyb3I/OiAoZXJyOiBTZXNzaW9uRXJyb3IpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xyXG5cclxuICAvKiogT3B0aW9uYWwgb3ZlcnJpZGUgZm9yIHRoZSBkZWZhdWx0IGBvcGVuU21hcnRMaW5rYCBoYW5kbGVyLiAqL1xyXG4gIG9uU21hcnRMaW5rPzogKGNoYW5uZWw6IHN0cmluZywgdXVpZDogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcclxuXHJcbiAgLyoqIEhvb2sgZm9yIGhvc3QgVVggd2hlbiBgc3RhcnQoKWAgcmVqZWN0cyAoc25hY2tiYXIgKyByZXRyeSkuICovXHJcbiAgb25TdGFydEVycm9yPzogKGVycjogdW5rbm93bikgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEhvb2sgY2FsbGVkIHdoZW4gYSBCRkYgY2FsbCBmYWlscyBhdCB0aGUgdHJhbnNwb3J0IGxldmVsIOKAlCBzZXJ2ZXJcclxuICAgKiB1bnJlYWNoYWJsZSAoc3RhdHVzIDApLCBnYXRld2F5L3NlcnZpY2UtdW5hdmFpbGFibGUgKDUwMi81MDMvNTA0KSwgb3JcclxuICAgKiBnZW5lcmljIHNlcnZlci1lcnJvciAoNTAwKS4gRGVmYXVsdDogYSBjb25zb2xlLndhcm4gbGluZTsgdGhlIHJlcXVlc3RcclxuICAgKiBzdGlsbCByZWplY3RzIHdpdGggdGhlIG9yaWdpbmFsIGVycm9yLCBhbGxvd2luZyBwZXItY2FsbCBoYW5kbGluZy5cclxuICAgKlxyXG4gICAqIEZpcmUtYW5kLWZvcmdldDogZXZlcnkgZmFpbGVkIHJlcXVlc3QgaW52b2tlcyB0aGUgaG9vayAobm8gZGVkdXApOyB0aGVcclxuICAgKiBob3N0IGlzIHJlc3BvbnNpYmxlIGZvciBvd24gVUkgZGVkdXBsaWNhdGlvbiBpZiBuZWVkZWQgKGUuZy4gc25hY2tiYXJcclxuICAgKiB3aXRoIGEgXCJ0aGlzIG1lc3NhZ2UgaXMgYWxyZWFkeSBzaG93aW5nXCIgZ3VhcmQpLlxyXG4gICAqL1xyXG4gIG9uVHJhbnNwb3J0RXJyb3I/OiAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEhvb2sgY2FsbGVkIHdoZW4gdGhlIGJhY2tlbmQgcmVwb3J0cyB0aGUgY3VycmVudCB2aWV3Q29udGV4dCBpcyBnb25lXHJcbiAgICogKGxvZ291dCwgc2Vzc2lvbiBleHBpcnksIGJhY2tlbmQgcmVzdGFydCkg4oCUIGkuZS4gd2hlbiB0aGVcclxuICAgKiBgU21hcnRFcnJvckNhdGNoaW5nSW50ZXJjZXB0b3JgIHdvdWxkIGhpc3RvcmljYWxseSBhdXRvLXRyaWdnZXJcclxuICAgKiBgUkVTVEFSVF9WSUVXQ09OVEVYVGAuXHJcbiAgICpcclxuICAgKiBEZWZhdWx0OiByZWJ1aWxkcyBhIGZyZXNoIGFub255bW91cyB2aWV3Q29udGV4dCB2aWFcclxuICAgKiBgdmlld0NvbnRleHQuaW5pdE5ld1ZpZXdDb250ZXh0KClgICh0aGUgaGlzdG9yaWNhbCB3ZWIgZmxvdykuXHJcbiAgICpcclxuICAgKiBNb2JpbGUvZW1iZWRkZWQgaG9zdHMgb3ZlcnJpZGUgdGhpcyB0byBmdWxseSBkZWxlZ2F0ZSB0byB0aGUgc2hlbGwg4oCUXHJcbiAgICogdHlwaWNhbGx5IGJ5IGNhbGxpbmcgYSBKUyBicmlkZ2UgdGhhdCBzaWduYWxzIHRoZSBuYXRpdmUgc2lkZSB0b1xyXG4gICAqIHRlYXIgZG93biB0aGUgd2VidmlldyBhbmQgcmV0dXJuIHRvIHRoZSBuYXRpdmUgbG9naW4gcGFnZS5cclxuICAgKi9cclxuICBvblZpZXdDb250ZXh0TG9zdD86IChlcnI6IFNlc3Npb25FcnJvcikgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEhvb2sgY2FsbGVkIHdoZW4gYW4gYWN0aW9uIGlzIHJlamVjdGVkIGJ5IHRoZSBzZXJ2ZXIgYnkgcmV0dXJuaW5nIGEgNHh4IHN0YXR1cyBjb2RlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHJlcSB0aGUgVWlBY3Rpb25SZXF1ZXN0IGF0dGVtcHRlZCB0byBiZSBleGVjdXRlZFxyXG4gICAqIEBwYXJhbSBlcnIgdGhlIGVycm9yIHRoZSBzZXJ2ZXIgcmVzcG9uZGVkIHdpdGhcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIG9uQWN0aW9uRXJyb3I/OiAocmVxOiBVaUFjdGlvblJlcXVlc3QsIGVycjogYW55KSA9PiB2b2lkO1xyXG59XHJcbiJdfQ==
|
|
@@ -36,14 +36,14 @@ export class SmartBackendBootstrapService {
|
|
|
36
36
|
this.viewContext.setViewHandlers(config.viewHandlers);
|
|
37
37
|
this.viewContext.setMessageDialogName(config.messageDialogName ?? 'message-dialog');
|
|
38
38
|
this.viewContext.setActionDescriptors(config.actionDescriptors);
|
|
39
|
-
this.viewContext.openSmartLink.subscribe((channel) => {
|
|
40
|
-
this.handleSmartLink(channel);
|
|
39
|
+
this.viewContext.openSmartLink.subscribe(([channel, uuid]) => {
|
|
40
|
+
this.handleSmartLink(channel, uuid);
|
|
41
41
|
});
|
|
42
42
|
this.uiActionService.setActionErrorHandler(config.onActionError ?? ((_, err) => console.log(err)));
|
|
43
43
|
}
|
|
44
|
-
async handleSmartLink(channel) {
|
|
44
|
+
async handleSmartLink(channel, uuid) {
|
|
45
45
|
if (this.config?.onSmartLink) {
|
|
46
|
-
await this.config.onSmartLink(channel);
|
|
46
|
+
await this.config.onSmartLink(channel, uuid);
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
49
|
// Default: simply unblock showPublishedView's `await openSmartLink.toPromise()`.
|
|
@@ -214,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
214
214
|
type: Injectable,
|
|
215
215
|
args: [{ providedIn: 'root' }]
|
|
216
216
|
}], ctorParameters: () => [{ type: i1.SmartSessionService }, { type: i2.SmartViewContextService }, { type: i3.UiActionService }] });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYmFja2VuZC1ib290c3RyYXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3Nlc3Npb24vc21hcnQtYmFja2VuZC1ib290c3RyYXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVkzQzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDaEQ7UUFDRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLHlCQUF5QixDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQUdELE1BQU0sT0FBTyw0QkFBNEI7SUFRdkMsWUFDVSxPQUE0QixFQUM1QixXQUFvQyxFQUNwQyxlQUFnQztRQUZoQyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBUmxDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBUzVCLENBQUM7SUFFSixTQUFTLENBQUMsTUFBbUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FDVix1RkFBdUYsQ0FDeEYsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUU7WUFDM0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQ3hDLE1BQU0sQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDdkQsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZSxDQUFDLE9BQWU7UUFDM0MsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsT0FBTztRQUNULENBQUM7UUFDRCxpRkFBaUY7UUFDakYsOEVBQThFO1FBQzlFLDRFQUE0RTtRQUM1RSxtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsSUFBSSxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FDckYsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzFELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsSUFBSSxLQUFLLENBQ1Asb0pBQW9KLENBQ3JKLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDN0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUF1QztRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsSUFBSSxLQUFLLENBQUMsaUZBQWlGLENBQUMsQ0FDN0YsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsSUFBSSxLQUFLLENBQ1Asb0pBQW9KLENBQ3JKLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDN0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN2QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUQsc0VBQXNFO1FBQ3RFLHdFQUF3RTtRQUN4RSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLGdFQUFnRTtRQUNoRSxPQUFPLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMvRCxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztZQUNsQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUM7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxxQkFBcUIsQ0FBQyxHQUFpQjtRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsSUFBSSxLQUFLLENBQ1AseUZBQXlGLENBQzFGLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7SUFFTyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBaUI7UUFDaEQsSUFBSSxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLGlCQUFpQixFQUFFLENBQUM7Z0JBQ25DLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekMsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM5QyxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsU0FBUyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxHQUFzQjtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsSUFBSSxLQUFLLENBQ1Asd0ZBQXdGLENBQ3pGLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBTztRQUNuQixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNDLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUF1QztRQUNwRSxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNyRSxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFZO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQUMsT0FBTyxXQUFXLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQywwREFBMEQsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN6RixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFpQjtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsSUFBSSxLQUFLLENBQ1Asc0ZBQXNGLENBQ3ZGLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFpQjtRQUM3QyxJQUFJLENBQUM7WUFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLE9BQU87WUFDVCxDQUFDO1lBQ0Qsa0ZBQWtGO1lBQ2xGLGlGQUFpRjtZQUNqRixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQyxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDOytHQTVPVSw0QkFBNEI7bUhBQTVCLDRCQUE0QixjQURmLE1BQU07OzRGQUNuQiw0QkFBNEI7a0JBRHhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU21hcnRTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vc21hcnQtc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uRXJyb3IsIFNtYXJ0U2Vzc2lvbkhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC1zZXNzaW9uLWhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRCYWNrZW5kQm9vdHN0cmFwQ29uZmlnLFxyXG4gIFNtYXJ0QmFja2VuZEJvb3RzdHJhcENyZWRlbnRpYWxzLFxyXG59IGZyb20gJy4vc21hcnQtYmFja2VuZC1ib290c3RyYXAuY29uZmlnJztcclxuaW1wb3J0IHsgVWlBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24uc2VydmljZSc7XHJcblxyXG50eXBlIEJvb3RzdHJhcE1vZGUgPSAnc3RhcnQnIHwgJ2Jvb3RzdHJhcFdpdGgnO1xyXG5cclxuLyoqXHJcbiAqIFRocm93biBieSBgd2hlblJlYWR5KClgIHdoZW4gdGhlIHZpZXdjb250ZXh0IHdhcyByZWJ1aWx0IGJldHdlZW4gdGhlXHJcbiAqIGNhbGxlcidzIGVudHJ5IGludG8gYHdoZW5SZWFkeSgpYCBhbmQgdGhlIGdhdGUgcmVsZWFzaW5nLiBBbnkgdXVpZCB0aGVcclxuICogY2FsbGVyIHJlc29sdmVkIGJlZm9yZSBlbnRlcmluZyBpcyBub3cgc3RhbGU7IGBTbWFydENvbXBvbmVudEFwaUNsaWVudC5ydW4oKWBcclxuICogY2F0Y2hlcyB0aGlzIGFuZCBza2lwcyB0aGUgbG9hZCDigJQgdGhlIGNvbXBvbmVudCBpcyBleHBlY3RlZCB0byByZWNlaXZlIGFcclxuICogZnJlc2ggdXVpZCB0aHJvdWdoIGB1dWlkT2ZQYWdlSGFzQmVlbkNoYW5nZWRgIChOT1JNQUwgdmlld3MpIG9yIHRvIGJlXHJcbiAqIHJlY3JlYXRlZCBieSBgb3BlblZpZXdgIChFTUJFRERFRC9ESUFMT0cgdmlld3MpLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZpZXdDb250ZXh0UmVidWlsdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoJ1ZpZXdDb250ZXh0UmVidWlsdCcpO1xyXG4gICAgdGhpcy5uYW1lID0gJ1ZpZXdDb250ZXh0UmVidWlsdEVycm9yJztcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlIGltcGxlbWVudHMgU21hcnRTZXNzaW9uSGFuZGxlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY29uZmlnPzogU21hcnRCYWNrZW5kQm9vdHN0cmFwQ29uZmlnO1xyXG4gIHByaXZhdGUgcnVubmluZ0luaXQ/OiBQcm9taXNlPHZvaWQ+O1xyXG4gIHByaXZhdGUgbGFzdEluaXRGYWlsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIG1vZGU/OiBCb290c3RyYXBNb2RlO1xyXG4gIHByaXZhdGUgcnVubmluZ1ZpZXdDb250ZXh0TG9zdD86IFByb21pc2U8dm9pZD47XHJcbiAgcHJpdmF0ZSBydW5uaW5nU2Vzc2lvbkVycm9yPzogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlc3Npb246IFNtYXJ0U2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpZXdDb250ZXh0OiBTbWFydFZpZXdDb250ZXh0U2VydmljZSxcclxuICAgIHByaXZhdGUgdWlBY3Rpb25TZXJ2aWNlOiBVaUFjdGlvblNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGNvbmZpZ3VyZShjb25maWc6IFNtYXJ0QmFja2VuZEJvb3RzdHJhcENvbmZpZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAnU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IGlnbm9yaW5nIGR1cGxpY2F0ZSBjb25maWd1cmUoKSBjYWxsLidcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XHJcblxyXG4gICAgdGhpcy5zZXNzaW9uLnNldFVybChjb25maWcudXJsKTtcclxuICAgIHRoaXMuc2Vzc2lvbi5zZXRDb29raWVOYW1lKGNvbmZpZy5jb29raWVOYW1lKTtcclxuICAgIHRoaXMuc2Vzc2lvbi5zZXRTZXNzaW9uSGFuZGxlclNlcnZpY2UodGhpcyk7XHJcblxyXG4gICAgdGhpcy52aWV3Q29udGV4dC5zZXRWaWV3SGFuZGxlcnMoY29uZmlnLnZpZXdIYW5kbGVycyk7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0LnNldE1lc3NhZ2VEaWFsb2dOYW1lKGNvbmZpZy5tZXNzYWdlRGlhbG9nTmFtZSA/PyAnbWVzc2FnZS1kaWFsb2cnKTtcclxuICAgIHRoaXMudmlld0NvbnRleHQuc2V0QWN0aW9uRGVzY3JpcHRvcnMoY29uZmlnLmFjdGlvbkRlc2NyaXB0b3JzKTtcclxuXHJcbiAgICB0aGlzLnZpZXdDb250ZXh0Lm9wZW5TbWFydExpbmsuc3Vic2NyaWJlKChjaGFubmVsOiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy5oYW5kbGVTbWFydExpbmsoY2hhbm5lbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnVpQWN0aW9uU2VydmljZS5zZXRBY3Rpb25FcnJvckhhbmRsZXIoXHJcbiAgICAgIGNvbmZpZy5vbkFjdGlvbkVycm9yID8/ICgoXywgZXJyKSA9PiBjb25zb2xlLmxvZyhlcnIpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlU21hcnRMaW5rKGNoYW5uZWw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnPy5vblNtYXJ0TGluaykge1xyXG4gICAgICBhd2FpdCB0aGlzLmNvbmZpZy5vblNtYXJ0TGluayhjaGFubmVsKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gRGVmYXVsdDogc2ltcGx5IHVuYmxvY2sgc2hvd1B1Ymxpc2hlZFZpZXcncyBgYXdhaXQgb3BlblNtYXJ0TGluay50b1Byb21pc2UoKWAuXHJcbiAgICAvLyBUaGUgdmlld0NvbnRleHQgaXMgYWxyZWFkeSBpbml0aWFsaXplZCBieSBzdGFydCgpL2Jvb3RzdHJhcFdpdGgoKSDigJQgY2FsbGluZ1xyXG4gICAgLy8gaW5pdGlhbGl6ZSgpIGhlcmUgd2l0aG91dCBhIHV1aWQgd291bGQgYWx3YXlzIHRyaWdnZXIgc3RhcnRWaWV3Q29udGV4dCgpLFxyXG4gICAgLy8gY3JlYXRpbmcgYSBzZWNvbmQgdmlld2NvbnRleHQgYW5kIHByb2R1Y2luZyBkdXBsaWNhdGUgVUkgKGUuZy4gdHdvIGxvZ2luIHBhZ2VzKS5cclxuICAgIHRoaXMudmlld0NvbnRleHQub3BlblNtYXJ0TGluay5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcclxuICAgICAgICBuZXcgRXJyb3IoJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHN0YXJ0KCkuJylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdib290c3RyYXBXaXRoJyAmJiAhdGhpcy5sYXN0SW5pdEZhaWxlZCkge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXHJcbiAgICAgICAgbmV3IEVycm9yKFxyXG4gICAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuYm9vdHN0cmFwV2l0aCgpIHdhcyBhbHJlYWR5IGNhbGxlZDsgc3RhcnQoKSBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBpdC4gQ2FsbCByZXNldCgpIGZpcnN0IHRvIHN3aXRjaCBlbnRyeSBwb2ludHMuJ1xyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJ1bm5pbmdJbml0ICYmICF0aGlzLmxhc3RJbml0RmFpbGVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJ1bm5pbmdJbml0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RlID0gJ3N0YXJ0JztcclxuICAgIHRoaXMubGFzdEluaXRGYWlsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMucnVubmluZ0luaXQgPSB0aGlzLnJ1bkluaXQoKTtcclxuICAgIHJldHVybiB0aGlzLnJ1bm5pbmdJbml0O1xyXG4gIH1cclxuXHJcbiAgYm9vdHN0cmFwV2l0aChjcmVkczogU21hcnRCYWNrZW5kQm9vdHN0cmFwQ3JlZGVudGlhbHMpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5jb25maWcpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxyXG4gICAgICAgIG5ldyBFcnJvcignU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZS5jb25maWd1cmUoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYm9vdHN0cmFwV2l0aCgpLicpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnc3RhcnQnICYmICF0aGlzLmxhc3RJbml0RmFpbGVkKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcclxuICAgICAgICBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAnU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZS5zdGFydCgpIHdhcyBhbHJlYWR5IGNhbGxlZDsgYm9vdHN0cmFwV2l0aCgpIGlzIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGl0LiBDYWxsIHJlc2V0KCkgZmlyc3QgdG8gc3dpdGNoIGVudHJ5IHBvaW50cy4nXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucnVubmluZ0luaXQgJiYgIXRoaXMubGFzdEluaXRGYWlsZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucnVubmluZ0luaXQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1vZGUgPSAnYm9vdHN0cmFwV2l0aCc7XHJcbiAgICB0aGlzLmxhc3RJbml0RmFpbGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnJ1bm5pbmdJbml0ID0gdGhpcy5ydW5Cb290c3RyYXBXaXRoKGNyZWRzKTtcclxuICAgIHJldHVybiB0aGlzLnJ1bm5pbmdJbml0O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgd2hlblJlYWR5KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLnJ1bm5pbmdJbml0KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQm9vdHN0cmFwTm90U3RhcnRlZCcpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5ydW5uaW5nSW5pdDtcclxuICAgIGNvbnN0IGdlbmVyYXRpb25CZWZvcmUgPSB0aGlzLnZpZXdDb250ZXh0LmdldEdlbmVyYXRpb24oKTtcclxuICAgIC8vIEdhdGUgb24gYW55IGluLWZsaWdodCBzZXNzaW9uL3ZpZXdjb250ZXh0IHJlY292ZXJ5IHNvIGEgY29tcG9uZW50J3NcclxuICAgIC8vIEJGRiBjYWxsIGNhbm5vdCByYWNlIGFnYWluc3QgdGhlIHNlc3Npb24gYmVpbmcgdG9ybiBkb3duIGFuZCByZWJ1aWx0LlxyXG4gICAgLy8gVGhlIGxvb3AgaGFuZGxlcyBjYXNjYWRpbmcgcmVjb3ZlcmllcyAoZS5nLiB2Yy1sb3N0IHN1cmZhY2VzIGR1cmluZ1xyXG4gICAgLy8gYSBzZXNzaW9uIHJlc3RhcnQpOiBlYWNoIHNldHRsZSBjbGVhcnMgaXRzIG93biBsYXRjaCBpbiBmaW5hbGx5LCBhbmRcclxuICAgIC8vIHRoZSBuZXh0IGl0ZXJhdGlvbiBwaWNrcyB1cCB3aGF0ZXZlciBzdGFydGVkIGluIHRoZSBtZWFudGltZS5cclxuICAgIHdoaWxlICh0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3QgfHwgdGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucnVubmluZ1ZpZXdDb250ZXh0TG9zdDtcclxuICAgICAgYXdhaXQgdGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmlld0NvbnRleHQuZ2V0R2VuZXJhdGlvbigpICE9PSBnZW5lcmF0aW9uQmVmb3JlKSB7XHJcbiAgICAgIHRocm93IG5ldyBWaWV3Q29udGV4dFJlYnVpbHRFcnJvcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVzZXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnJ1bm5pbmdJbml0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5sYXN0SW5pdEZhaWxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5tb2RlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5ydW5uaW5nVmlld0NvbnRleHRMb3N0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yID0gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhcnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCBieSBgU21hcnRFcnJvckNhdGNoaW5nSW50ZXJjZXB0b3JgIHdoZW4gdGhlIGJhY2tlbmQgcmVwb3J0c1xyXG4gICAqIGBzZXNzaW9uLnZpZXdjb250ZXh0Lm1pc3NpbmdgLiBJZGVtcG90ZW50IGFjcm9zcyBjb25jdXJyZW50IGFuZFxyXG4gICAqIHNlcXVlbnRpYWwgY2FsbHMgdW50aWwgdGhlIG5leHQgYHJlc2V0KClgIOKAlCBtdWx0aXBsZSByYWNpbmcgQkZGXHJcbiAgICogZmFpbHVyZXMgY29sbGFwc2UgaW50byBhIHNpbmdsZSByZWNvdmVyeSBhdHRlbXB0LlxyXG4gICAqL1xyXG4gIGhhbmRsZVZpZXdDb250ZXh0TG9zdChlcnI6IFNlc3Npb25FcnJvcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZykge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXHJcbiAgICAgICAgbmV3IEVycm9yKFxyXG4gICAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGhhbmRsZVZpZXdDb250ZXh0TG9zdCgpLidcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ydW5uaW5nVmlld0NvbnRleHRMb3N0KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3Q7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3QgPSB0aGlzLnJ1blZpZXdDb250ZXh0TG9zdChlcnIpO1xyXG4gICAgcmV0dXJuIHRoaXMucnVubmluZ1ZpZXdDb250ZXh0TG9zdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcnVuVmlld0NvbnRleHRMb3N0KGVycjogU2Vzc2lvbkVycm9yKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5jb25maWc/Lm9uVmlld0NvbnRleHRMb3N0KSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb25maWcub25WaWV3Q29udGV4dExvc3QoZXJyKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5pbml0TmV3Vmlld0NvbnRleHQoKTtcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHRoaXMucnVubmluZ1ZpZXdDb250ZXh0TG9zdCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCBieSBgU21hcnRFcnJvckNhdGNoaW5nSW50ZXJjZXB0b3JgIGZvciB0cmFuc3BvcnQtbGV2ZWwgZmFpbHVyZXNcclxuICAgKiAoc3RhdHVzIDAsIDV4eCkuIEZpcmUtYW5kLWZvcmdldDsgdGhlIHJlcXVlc3Qgc3RpbGwgcmVqZWN0cyB3aXRoIHRoZVxyXG4gICAqIG9yaWdpbmFsIGVycm9yIHNvIGNhbGxlcnMgY2FuIGRvIHBlci1jYWxsIGhhbmRsaW5nLlxyXG4gICAqL1xyXG4gIGFzeW5jIGhhbmRsZVRyYW5zcG9ydEVycm9yKGVycjogSHR0cEVycm9yUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5jb25maWcpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxyXG4gICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICdTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlLmNvbmZpZ3VyZSgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBoYW5kbGVUcmFuc3BvcnRFcnJvcigpLidcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb25maWcub25UcmFuc3BvcnRFcnJvcikge1xyXG4gICAgICBhd2FpdCB0aGlzLmNvbmZpZy5vblRyYW5zcG9ydEVycm9yKGVycik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnNvbGUud2FybignVHJhbnNwb3J0IGVycm9yIOKAlCBzZXJ2ZXIgdW5yZWFjaGFibGUgb3IgNXh4JywgZXJyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcnVuSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5pbml0aWFsaXplKCk7XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQuaW5pdFZpZXdDb250ZXh0KCk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgYXdhaXQgdGhpcy5oYW5kbGVJbml0RmFpbHVyZShlcnIpO1xyXG4gICAgICB0aHJvdyBlcnI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJ1bkJvb3RzdHJhcFdpdGgoY3JlZHM6IFNtYXJ0QmFja2VuZEJvb3RzdHJhcENyZWRlbnRpYWxzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLnNlc3Npb24uc2V0U2Vzc2lvblRva2VuKGNyZWRzLnNlc3Npb25Ub2tlbiwgY3JlZHMucmVmcmVzaFRva2VuKTtcclxuICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5pbml0RnJvbUV4aXN0aW5nVmlld0NvbnRleHQoY3JlZHMudmlld0NvbnRleHRVdWlkKTtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICBhd2FpdCB0aGlzLmhhbmRsZUluaXRGYWlsdXJlKGVycik7XHJcbiAgICAgIHRocm93IGVycjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlSW5pdEZhaWx1cmUoZXJyOiB1bmtub3duKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmxhc3RJbml0RmFpbGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmNvbmZpZz8ub25TdGFydEVycm9yKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb25maWcub25TdGFydEVycm9yKGVycik7XHJcbiAgICAgIH0gY2F0Y2ggKGNhbGxiYWNrRXJyKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZS5vblN0YXJ0RXJyb3IgY2FsbGJhY2sgdGhyZXcnLCBjYWxsYmFja0Vycik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVNlc3Npb25FcnJvcihlcnI6IFNlc3Npb25FcnJvcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZykge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXHJcbiAgICAgICAgbmV3IEVycm9yKFxyXG4gICAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGhhbmRsZVNlc3Npb25FcnJvcigpLidcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJ1bm5pbmdTZXNzaW9uRXJyb3I7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJ1bm5pbmdTZXNzaW9uRXJyb3IgPSB0aGlzLnJ1blNlc3Npb25FcnJvcihlcnIpO1xyXG4gICAgcmV0dXJuIHRoaXMucnVubmluZ1Nlc3Npb25FcnJvcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcnVuU2Vzc2lvbkVycm9yKGVycjogU2Vzc2lvbkVycm9yKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5jb25maWc/Lm9uU2Vzc2lvbkVycm9yKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5jb25maWcub25TZXNzaW9uRXJyb3IoZXJyKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy8gRGVmYXVsdDogY2xlYXIgdGhlIHNlc3Npb24gYW5kIGxldCB0aGUgYmFja2VuZCByZWJ1aWxkIHZpYSBSRVNUQVJUX1ZJRVdDT05URVhULlxyXG4gICAgICAvLyBObyByb3V0ZXIgbmF2aWdhdGlvbiBoZXJlIOKAlCB0aGUgbmV3IHZpZXdjb250ZXh0IGRyaXZlcyBuYXZpZ2F0aW9uIHNlcnZlci1zaWRlLlxyXG4gICAgICBhd2FpdCB0aGlzLnNlc3Npb24uY2xlYXJBbmRTdGFydE5ld1Nlc3Npb24oKTtcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHRoaXMucnVubmluZ1Nlc3Npb25FcnJvciA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYmFja2VuZC1ib290c3RyYXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3Nlc3Npb24vc21hcnQtYmFja2VuZC1ib290c3RyYXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVkzQzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDaEQ7UUFDRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLHlCQUF5QixDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQUdELE1BQU0sT0FBTyw0QkFBNEI7SUFRdkMsWUFDVSxPQUE0QixFQUM1QixXQUFvQyxFQUNwQyxlQUFnQztRQUZoQyxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBUmxDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBUzVCLENBQUM7SUFFSixTQUFTLENBQUMsTUFBbUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FDVix1RkFBdUYsQ0FDeEYsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFD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LENBQUMsS0FBSyxDQUFDLDBEQUEwRCxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3pGLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQWlCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUNuQixJQUFJLEtBQUssQ0FDUCxzRkFBc0YsQ0FDdkYsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZSxDQUFDLEdBQWlCO1FBQzdDLElBQUksQ0FBQztZQUNILElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEMsT0FBTztZQUNULENBQUM7WUFDRCxrRkFBa0Y7WUFDbEYsaUZBQWlGO1lBQ2pGLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9DLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7K0dBNU9VLDRCQUE0QjttSEFBNUIsNEJBQTRCLGNBRGYsTUFBTTs7NEZBQ25CLDRCQUE0QjtrQkFEeEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTbWFydFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC1zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9zbWFydC12aWV3LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25FcnJvciwgU21hcnRTZXNzaW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXNlc3Npb24taGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBTbWFydEJhY2tlbmRCb290c3RyYXBDb25maWcsXHJcbiAgU21hcnRCYWNrZW5kQm9vdHN0cmFwQ3JlZGVudGlhbHMsXHJcbn0gZnJvbSAnLi9zbWFydC1iYWNrZW5kLWJvb3RzdHJhcC5jb25maWcnO1xyXG5pbXBvcnQgeyBVaUFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi5zZXJ2aWNlJztcclxuXHJcbnR5cGUgQm9vdHN0cmFwTW9kZSA9ICdzdGFydCcgfCAnYm9vdHN0cmFwV2l0aCc7XHJcblxyXG4vKipcclxuICogVGhyb3duIGJ5IGB3aGVuUmVhZHkoKWAgd2hlbiB0aGUgdmlld2NvbnRleHQgd2FzIHJlYnVpbHQgYmV0d2VlbiB0aGVcclxuICogY2FsbGVyJ3MgZW50cnkgaW50byBgd2hlblJlYWR5KClgIGFuZCB0aGUgZ2F0ZSByZWxlYXNpbmcuIEFueSB1dWlkIHRoZVxyXG4gKiBjYWxsZXIgcmVzb2x2ZWQgYmVmb3JlIGVudGVyaW5nIGlzIG5vdyBzdGFsZTsgYFNtYXJ0Q29tcG9uZW50QXBpQ2xpZW50LnJ1bigpYFxyXG4gKiBjYXRjaGVzIHRoaXMgYW5kIHNraXBzIHRoZSBsb2FkIOKAlCB0aGUgY29tcG9uZW50IGlzIGV4cGVjdGVkIHRvIHJlY2VpdmUgYVxyXG4gKiBmcmVzaCB1dWlkIHRocm91Z2ggYHV1aWRPZlBhZ2VIYXNCZWVuQ2hhbmdlZGAgKE5PUk1BTCB2aWV3cykgb3IgdG8gYmVcclxuICogcmVjcmVhdGVkIGJ5IGBvcGVuVmlld2AgKEVNQkVEREVEL0RJQUxPRyB2aWV3cykuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVmlld0NvbnRleHRSZWJ1aWx0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcignVmlld0NvbnRleHRSZWJ1aWx0Jyk7XHJcbiAgICB0aGlzLm5hbWUgPSAnVmlld0NvbnRleHRSZWJ1aWx0RXJyb3InO1xyXG4gIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UgaW1wbGVtZW50cyBTbWFydFNlc3Npb25IYW5kbGVyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjb25maWc/OiBTbWFydEJhY2tlbmRCb290c3RyYXBDb25maWc7XHJcbiAgcHJpdmF0ZSBydW5uaW5nSW5pdD86IFByb21pc2U8dm9pZD47XHJcbiAgcHJpdmF0ZSBsYXN0SW5pdEZhaWxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgbW9kZT86IEJvb3RzdHJhcE1vZGU7XHJcbiAgcHJpdmF0ZSBydW5uaW5nVmlld0NvbnRleHRMb3N0PzogUHJvbWlzZTx2b2lkPjtcclxuICBwcml2YXRlIHJ1bm5pbmdTZXNzaW9uRXJyb3I/OiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2Vzc2lvbjogU21hcnRTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgdmlld0NvbnRleHQ6IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1aUFjdGlvblNlcnZpY2U6IFVpQWN0aW9uU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgY29uZmlndXJlKGNvbmZpZzogU21hcnRCYWNrZW5kQm9vdHN0cmFwQ29uZmlnKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb25maWcpIHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICdTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlIGFscmVhZHkgY29uZmlndXJlZDsgaWdub3JpbmcgZHVwbGljYXRlIGNvbmZpZ3VyZSgpIGNhbGwuJ1xyXG4gICAgICApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcclxuXHJcbiAgICB0aGlzLnNlc3Npb24uc2V0VXJsKGNvbmZpZy51cmwpO1xyXG4gICAgdGhpcy5zZXNzaW9uLnNldENvb2tpZU5hbWUoY29uZmlnLmNvb2tpZU5hbWUpO1xyXG4gICAgdGhpcy5zZXNzaW9uLnNldFNlc3Npb25IYW5kbGVyU2VydmljZSh0aGlzKTtcclxuXHJcbiAgICB0aGlzLnZpZXdDb250ZXh0LnNldFZpZXdIYW5kbGVycyhjb25maWcudmlld0hhbmRsZXJzKTtcclxuICAgIHRoaXMudmlld0NvbnRleHQuc2V0TWVzc2FnZURpYWxvZ05hbWUoY29uZmlnLm1lc3NhZ2VEaWFsb2dOYW1lID8/ICdtZXNzYWdlLWRpYWxvZycpO1xyXG4gICAgdGhpcy52aWV3Q29udGV4dC5zZXRBY3Rpb25EZXNjcmlwdG9ycyhjb25maWcuYWN0aW9uRGVzY3JpcHRvcnMpO1xyXG5cclxuICAgIHRoaXMudmlld0NvbnRleHQub3BlblNtYXJ0TGluay5zdWJzY3JpYmUoKFtjaGFubmVsLCB1dWlkXSkgPT4ge1xyXG4gICAgICB0aGlzLmhhbmRsZVNtYXJ0TGluayhjaGFubmVsLCB1dWlkKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlLnNldEFjdGlvbkVycm9ySGFuZGxlcihcclxuICAgICAgY29uZmlnLm9uQWN0aW9uRXJyb3IgPz8gKChfLCBlcnIpID0+IGNvbnNvbGUubG9nKGVycikpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVTbWFydExpbmsoY2hhbm5lbDogc3RyaW5nLCB1dWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmNvbmZpZz8ub25TbWFydExpbmspIHtcclxuICAgICAgYXdhaXQgdGhpcy5jb25maWcub25TbWFydExpbmsoY2hhbm5lbCwgdXVpZCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIERlZmF1bHQ6IHNpbXBseSB1bmJsb2NrIHNob3dQdWJsaXNoZWRWaWV3J3MgYGF3YWl0IG9wZW5TbWFydExpbmsudG9Qcm9taXNlKClgLlxyXG4gICAgLy8gVGhlIHZpZXdDb250ZXh0IGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQgYnkgc3RhcnQoKS9ib290c3RyYXBXaXRoKCkg4oCUIGNhbGxpbmdcclxuICAgIC8vIGluaXRpYWxpemUoKSBoZXJlIHdpdGhvdXQgYSB1dWlkIHdvdWxkIGFsd2F5cyB0cmlnZ2VyIHN0YXJ0Vmlld0NvbnRleHQoKSxcclxuICAgIC8vIGNyZWF0aW5nIGEgc2Vjb25kIHZpZXdjb250ZXh0IGFuZCBwcm9kdWNpbmcgZHVwbGljYXRlIFVJIChlLmcuIHR3byBsb2dpbiBwYWdlcykuXHJcbiAgICB0aGlzLnZpZXdDb250ZXh0Lm9wZW5TbWFydExpbmsuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZykge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXHJcbiAgICAgICAgbmV3IEVycm9yKCdTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlLmNvbmZpZ3VyZSgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBzdGFydCgpLicpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnYm9vdHN0cmFwV2l0aCcgJiYgIXRoaXMubGFzdEluaXRGYWlsZWQpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxyXG4gICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICdTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlLmJvb3RzdHJhcFdpdGgoKSB3YXMgYWxyZWFkeSBjYWxsZWQ7IHN0YXJ0KCkgaXMgbXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggaXQuIENhbGwgcmVzZXQoKSBmaXJzdCB0byBzd2l0Y2ggZW50cnkgcG9pbnRzLidcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ydW5uaW5nSW5pdCAmJiAhdGhpcy5sYXN0SW5pdEZhaWxlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ydW5uaW5nSW5pdDtcclxuICAgIH1cclxuICAgIHRoaXMubW9kZSA9ICdzdGFydCc7XHJcbiAgICB0aGlzLmxhc3RJbml0RmFpbGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnJ1bm5pbmdJbml0ID0gdGhpcy5ydW5Jbml0KCk7XHJcbiAgICByZXR1cm4gdGhpcy5ydW5uaW5nSW5pdDtcclxuICB9XHJcblxyXG4gIGJvb3RzdHJhcFdpdGgoY3JlZHM6IFNtYXJ0QmFja2VuZEJvb3RzdHJhcENyZWRlbnRpYWxzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcclxuICAgICAgICBuZXcgRXJyb3IoJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2UuY29uZmlndXJlKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGJvb3RzdHJhcFdpdGgoKS4nKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ3N0YXJ0JyAmJiAhdGhpcy5sYXN0SW5pdEZhaWxlZCkge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXHJcbiAgICAgICAgbmV3IEVycm9yKFxyXG4gICAgICAgICAgJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2Uuc3RhcnQoKSB3YXMgYWxyZWFkeSBjYWxsZWQ7IGJvb3RzdHJhcFdpdGgoKSBpcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBpdC4gQ2FsbCByZXNldCgpIGZpcnN0IHRvIHN3aXRjaCBlbnRyeSBwb2ludHMuJ1xyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJ1bm5pbmdJbml0ICYmICF0aGlzLmxhc3RJbml0RmFpbGVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJ1bm5pbmdJbml0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RlID0gJ2Jvb3RzdHJhcFdpdGgnO1xyXG4gICAgdGhpcy5sYXN0SW5pdEZhaWxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5ydW5uaW5nSW5pdCA9IHRoaXMucnVuQm9vdHN0cmFwV2l0aChjcmVkcyk7XHJcbiAgICByZXR1cm4gdGhpcy5ydW5uaW5nSW5pdDtcclxuICB9XHJcblxyXG4gIGFzeW5jIHdoZW5SZWFkeSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5ydW5uaW5nSW5pdCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Jvb3RzdHJhcE5vdFN0YXJ0ZWQnKTtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMucnVubmluZ0luaXQ7XHJcbiAgICBjb25zdCBnZW5lcmF0aW9uQmVmb3JlID0gdGhpcy52aWV3Q29udGV4dC5nZXRHZW5lcmF0aW9uKCk7XHJcbiAgICAvLyBHYXRlIG9uIGFueSBpbi1mbGlnaHQgc2Vzc2lvbi92aWV3Y29udGV4dCByZWNvdmVyeSBzbyBhIGNvbXBvbmVudCdzXHJcbiAgICAvLyBCRkYgY2FsbCBjYW5ub3QgcmFjZSBhZ2FpbnN0IHRoZSBzZXNzaW9uIGJlaW5nIHRvcm4gZG93biBhbmQgcmVidWlsdC5cclxuICAgIC8vIFRoZSBsb29wIGhhbmRsZXMgY2FzY2FkaW5nIHJlY292ZXJpZXMgKGUuZy4gdmMtbG9zdCBzdXJmYWNlcyBkdXJpbmdcclxuICAgIC8vIGEgc2Vzc2lvbiByZXN0YXJ0KTogZWFjaCBzZXR0bGUgY2xlYXJzIGl0cyBvd24gbGF0Y2ggaW4gZmluYWxseSwgYW5kXHJcbiAgICAvLyB0aGUgbmV4dCBpdGVyYXRpb24gcGlja3MgdXAgd2hhdGV2ZXIgc3RhcnRlZCBpbiB0aGUgbWVhbnRpbWUuXHJcbiAgICB3aGlsZSAodGhpcy5ydW5uaW5nVmlld0NvbnRleHRMb3N0IHx8IHRoaXMucnVubmluZ1Nlc3Npb25FcnJvcikge1xyXG4gICAgICBhd2FpdCB0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3Q7XHJcbiAgICAgIGF3YWl0IHRoaXMucnVubmluZ1Nlc3Npb25FcnJvcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZpZXdDb250ZXh0LmdldEdlbmVyYXRpb24oKSAhPT0gZ2VuZXJhdGlvbkJlZm9yZSkge1xyXG4gICAgICB0aHJvdyBuZXcgVmlld0NvbnRleHRSZWJ1aWx0RXJyb3IoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHJlc2V0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5ydW5uaW5nSW5pdCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMubGFzdEluaXRGYWlsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMubW9kZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMucnVubmluZ1ZpZXdDb250ZXh0TG9zdCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMucnVubmluZ1Nlc3Npb25FcnJvciA9IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0aGlzLnN0YXJ0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxsZWQgYnkgYFNtYXJ0RXJyb3JDYXRjaGluZ0ludGVyY2VwdG9yYCB3aGVuIHRoZSBiYWNrZW5kIHJlcG9ydHNcclxuICAgKiBgc2Vzc2lvbi52aWV3Y29udGV4dC5taXNzaW5nYC4gSWRlbXBvdGVudCBhY3Jvc3MgY29uY3VycmVudCBhbmRcclxuICAgKiBzZXF1ZW50aWFsIGNhbGxzIHVudGlsIHRoZSBuZXh0IGByZXNldCgpYCDigJQgbXVsdGlwbGUgcmFjaW5nIEJGRlxyXG4gICAqIGZhaWx1cmVzIGNvbGxhcHNlIGludG8gYSBzaW5nbGUgcmVjb3ZlcnkgYXR0ZW1wdC5cclxuICAgKi9cclxuICBoYW5kbGVWaWV3Q29udGV4dExvc3QoZXJyOiBTZXNzaW9uRXJyb3IpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5jb25maWcpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxyXG4gICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICdTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlLmNvbmZpZ3VyZSgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBoYW5kbGVWaWV3Q29udGV4dExvc3QoKS4nXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucnVubmluZ1ZpZXdDb250ZXh0TG9zdCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ydW5uaW5nVmlld0NvbnRleHRMb3N0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5ydW5uaW5nVmlld0NvbnRleHRMb3N0ID0gdGhpcy5ydW5WaWV3Q29udGV4dExvc3QoZXJyKTtcclxuICAgIHJldHVybiB0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJ1blZpZXdDb250ZXh0TG9zdChlcnI6IFNlc3Npb25FcnJvcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnPy5vblZpZXdDb250ZXh0TG9zdCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29uZmlnLm9uVmlld0NvbnRleHRMb3N0KGVycik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQuaW5pdE5ld1ZpZXdDb250ZXh0KCk7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICB0aGlzLnJ1bm5pbmdWaWV3Q29udGV4dExvc3QgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxsZWQgYnkgYFNtYXJ0RXJyb3JDYXRjaGluZ0ludGVyY2VwdG9yYCBmb3IgdHJhbnNwb3J0LWxldmVsIGZhaWx1cmVzXHJcbiAgICogKHN0YXR1cyAwLCA1eHgpLiBGaXJlLWFuZC1mb3JnZXQ7IHRoZSByZXF1ZXN0IHN0aWxsIHJlamVjdHMgd2l0aCB0aGVcclxuICAgKiBvcmlnaW5hbCBlcnJvciBzbyBjYWxsZXJzIGNhbiBkbyBwZXItY2FsbCBoYW5kbGluZy5cclxuICAgKi9cclxuICBhc3luYyBoYW5kbGVUcmFuc3BvcnRFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlnKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcclxuICAgICAgICBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAnU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZS5jb25maWd1cmUoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgaGFuZGxlVHJhbnNwb3J0RXJyb3IoKS4nXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLm9uVHJhbnNwb3J0RXJyb3IpIHtcclxuICAgICAgYXdhaXQgdGhpcy5jb25maWcub25UcmFuc3BvcnRFcnJvcihlcnIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLndhcm4oJ1RyYW5zcG9ydCBlcnJvciDigJQgc2VydmVyIHVucmVhY2hhYmxlIG9yIDV4eCcsIGVycik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJ1bkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBhd2FpdCB0aGlzLnNlc3Npb24uaW5pdGlhbGl6ZSgpO1xyXG4gICAgICBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmluaXRWaWV3Q29udGV4dCgpO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuaGFuZGxlSW5pdEZhaWx1cmUoZXJyKTtcclxuICAgICAgdGhyb3cgZXJyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBydW5Cb290c3RyYXBXaXRoKGNyZWRzOiBTbWFydEJhY2tlbmRCb290c3RyYXBDcmVkZW50aWFscyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5zZXNzaW9uLnNldFNlc3Npb25Ub2tlbihjcmVkcy5zZXNzaW9uVG9rZW4sIGNyZWRzLnJlZnJlc2hUb2tlbik7XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQuaW5pdEZyb21FeGlzdGluZ1ZpZXdDb250ZXh0KGNyZWRzLnZpZXdDb250ZXh0VXVpZCk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgYXdhaXQgdGhpcy5oYW5kbGVJbml0RmFpbHVyZShlcnIpO1xyXG4gICAgICB0aHJvdyBlcnI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUluaXRGYWlsdXJlKGVycjogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5sYXN0SW5pdEZhaWxlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5jb25maWc/Lm9uU3RhcnRFcnJvcikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29uZmlnLm9uU3RhcnRFcnJvcihlcnIpO1xyXG4gICAgICB9IGNhdGNoIChjYWxsYmFja0Vycikge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1NtYXJ0QmFja2VuZEJvb3RzdHJhcFNlcnZpY2Uub25TdGFydEVycm9yIGNhbGxiYWNrIHRocmV3JywgY2FsbGJhY2tFcnIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZXNzaW9uRXJyb3IoZXJyOiBTZXNzaW9uRXJyb3IpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5jb25maWcpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxyXG4gICAgICAgIG5ldyBFcnJvcihcclxuICAgICAgICAgICdTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlLmNvbmZpZ3VyZSgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBoYW5kbGVTZXNzaW9uRXJyb3IoKS4nXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucnVubmluZ1Nlc3Npb25FcnJvcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ydW5uaW5nU2Vzc2lvbkVycm9yID0gdGhpcy5ydW5TZXNzaW9uRXJyb3IoZXJyKTtcclxuICAgIHJldHVybiB0aGlzLnJ1bm5pbmdTZXNzaW9uRXJyb3I7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJ1blNlc3Npb25FcnJvcihlcnI6IFNlc3Npb25FcnJvcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnPy5vblNlc3Npb25FcnJvcikge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY29uZmlnLm9uU2Vzc2lvbkVycm9yKGVycik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIERlZmF1bHQ6IGNsZWFyIHRoZSBzZXNzaW9uIGFuZCBsZXQgdGhlIGJhY2tlbmQgcmVidWlsZCB2aWEgUkVTVEFSVF9WSUVXQ09OVEVYVC5cclxuICAgICAgLy8gTm8gcm91dGVyIG5hdmlnYXRpb24gaGVyZSDigJQgdGhlIG5ldyB2aWV3Y29udGV4dCBkcml2ZXMgbmF2aWdhdGlvbiBzZXJ2ZXItc2lkZS5cclxuICAgICAgYXdhaXQgdGhpcy5zZXNzaW9uLmNsZWFyQW5kU3RhcnROZXdTZXNzaW9uKCk7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICB0aGlzLnJ1bm5pbmdTZXNzaW9uRXJyb3IgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,39 +1,59 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, computed, output, signal } from '@angular/core';
|
|
2
2
|
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
-
import { SmartSessionTimerService } from './smart-session-timer.service';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "
|
|
4
|
+
import * as i1 from "../smart-session.service";
|
|
6
5
|
import * as i2 from "../smart-backend-bootstrap.service";
|
|
7
|
-
import * as i3 from "@angular/common";
|
|
8
6
|
export class SmartSessionTimerComponent {
|
|
9
|
-
constructor(
|
|
10
|
-
this.
|
|
7
|
+
constructor(session, bootstrap) {
|
|
8
|
+
this.session = session;
|
|
11
9
|
this.bootstrap = bootstrap;
|
|
12
10
|
this._destroy$ = new Subject();
|
|
11
|
+
this.secondsLeft = signal(undefined);
|
|
12
|
+
this.timeFormatted = computed(() => {
|
|
13
|
+
const secs = this.secondsLeft();
|
|
14
|
+
if (!secs || secs < 1) {
|
|
15
|
+
return '--:--';
|
|
16
|
+
}
|
|
17
|
+
const minutes = Math.floor(secs / 60);
|
|
18
|
+
const remainingSeconds = secs % 60;
|
|
19
|
+
return `${minutes}:${remainingSeconds < 10 ? '0' : ''}${remainingSeconds}`;
|
|
20
|
+
});
|
|
21
|
+
this.onTimerExpired = output();
|
|
13
22
|
}
|
|
14
23
|
ngOnInit() {
|
|
15
24
|
this.bootstrap.whenReady().then(() => {
|
|
16
|
-
this.
|
|
17
|
-
|
|
18
|
-
this.service.timeChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
19
|
-
this.timeInSeconds = this.service.timeLeftInSeconds;
|
|
25
|
+
this.session.sessionExpiracyChanged.pipe(takeUntil(this._destroy$)).subscribe(() => {
|
|
26
|
+
this.updateSecondsLeft();
|
|
20
27
|
});
|
|
28
|
+
this.timerId = setInterval(() => {
|
|
29
|
+
this.updateSecondsLeft();
|
|
30
|
+
}, 1000);
|
|
21
31
|
});
|
|
22
32
|
}
|
|
33
|
+
updateSecondsLeft() {
|
|
34
|
+
const expirationStr = this.session.sessionInfoData?.expiration;
|
|
35
|
+
if (!expirationStr) {
|
|
36
|
+
this.secondsLeft.set(undefined);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const expiration = new Date(expirationStr);
|
|
40
|
+
const now = new Date();
|
|
41
|
+
const secsLeft = Math.floor((expiration.getTime() - now.getTime()) / 1000);
|
|
42
|
+
if (secsLeft < 1) {
|
|
43
|
+
this.onTimerExpired.emit();
|
|
44
|
+
}
|
|
45
|
+
this.secondsLeft.set(secsLeft);
|
|
46
|
+
}
|
|
23
47
|
ngOnDestroy() {
|
|
48
|
+
clearInterval(this.timerId);
|
|
24
49
|
this._destroy$.next();
|
|
25
50
|
this._destroy$.complete();
|
|
26
51
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
let remainingSeconds = seconds % 60;
|
|
30
|
-
return `${minutes}:${remainingSeconds < 10 ? '0' : ''}${remainingSeconds}`;
|
|
31
|
-
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartSessionTimerComponent, deps: [{ token: i1.SmartSessionTimerService }, { token: i2.SmartBackendBootstrapService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartSessionTimerComponent, selector: "smart-session-timer", providers: [SmartSessionTimerService], ngImport: i0, template: "<div class=\"smart-session-timer-container\">\r\n <span class=\"smart-session-timer\" *ngIf=\"timeInSeconds\">\r\n {{ formatTime(timeInSeconds!) }}\r\n </span>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartSessionTimerComponent, deps: [{ token: i1.SmartSessionService }, { token: i2.SmartBackendBootstrapService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartSessionTimerComponent, selector: "smart-session-timer", outputs: { onTimerExpired: "onTimerExpired" }, ngImport: i0, template: "<div class=\"smart-session-timer-container\">\r\n <span class=\"smart-session-timer\">{{ timeFormatted() }}</span>\r\n</div>\r\n", styles: [""] }); }
|
|
34
54
|
}
|
|
35
55
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartSessionTimerComponent, decorators: [{
|
|
36
56
|
type: Component,
|
|
37
|
-
args: [{ selector: 'smart-session-timer',
|
|
38
|
-
}], ctorParameters: () => [{ type: i1.
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
args: [{ selector: 'smart-session-timer', template: "<div class=\"smart-session-timer-container\">\r\n <span class=\"smart-session-timer\">{{ timeFormatted() }}</span>\r\n</div>\r\n" }]
|
|
58
|
+
}], ctorParameters: () => [{ type: i1.SmartSessionService }, { type: i2.SmartBackendBootstrapService }] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2Vzc2lvbi10aW1lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zZXNzaW9uL3NtYXJ0LXRpbWVyL3NtYXJ0LXNlc3Npb24tdGltZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc2Vzc2lvbi9zbWFydC10aW1lci9zbWFydC1zZXNzaW9uLXRpbWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBUzFDLE1BQU0sT0FBTywwQkFBMEI7SUFrQnJDLFlBQ1UsT0FBNEIsRUFDNUIsU0FBdUM7UUFEdkMsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBOEI7UUFuQnpDLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVqRCxnQkFBVyxHQUFHLE1BQU0sQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUFDcEQsa0JBQWEsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQztZQUVELE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sZ0JBQWdCLEdBQVcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUMzQyxPQUFPLEdBQUcsT0FBTyxJQUFJLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3RSxDQUFDLENBQUMsQ0FBQztRQUdILG1CQUFjLEdBQUcsTUFBTSxFQUFRLENBQUM7SUFLN0IsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pGLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUM5QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDO1FBQy9ELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMzRSxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVztRQUNULGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBdERVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDBHQ1h2QyxtSUFHQTs7NEZEUWEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIE9uRGVzdHJveSwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNtYXJ0U2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC1zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydEJhY2tlbmRCb290c3RyYXBTZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtYmFja2VuZC1ib290c3RyYXAuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NtYXJ0LXNlc3Npb24tdGltZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1zZXNzaW9uLXRpbWVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1zZXNzaW9uLXRpbWVyLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0U2Vzc2lvblRpbWVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgc2Vjb25kc0xlZnQgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHRpbWVGb3JtYXR0ZWQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcclxuICAgIGNvbnN0IHNlY3MgPSB0aGlzLnNlY29uZHNMZWZ0KCk7XHJcbiAgICBpZiAoIXNlY3MgfHwgc2VjcyA8IDEpIHtcclxuICAgICAgcmV0dXJuICctLTotLSc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWludXRlczogbnVtYmVyID0gTWF0aC5mbG9vcihzZWNzIC8gNjApO1xyXG4gICAgY29uc3QgcmVtYWluaW5nU2Vjb25kczogbnVtYmVyID0gc2VjcyAlIDYwO1xyXG4gICAgcmV0dXJuIGAke21pbnV0ZXN9OiR7cmVtYWluaW5nU2Vjb25kcyA8IDEwID8gJzAnIDogJyd9JHtyZW1haW5pbmdTZWNvbmRzfWA7XHJcbiAgfSk7XHJcblxyXG4gIHRpbWVySWQ/OiBudW1iZXI7XHJcbiAgb25UaW1lckV4cGlyZWQgPSBvdXRwdXQ8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlc3Npb246IFNtYXJ0U2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJvb3RzdHJhcDogU21hcnRCYWNrZW5kQm9vdHN0cmFwU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmJvb3RzdHJhcC53aGVuUmVhZHkoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5zZXNzaW9uLnNlc3Npb25FeHBpcmFjeUNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudXBkYXRlU2Vjb25kc0xlZnQoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudGltZXJJZCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVNlY29uZHNMZWZ0KCk7XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVNlY29uZHNMZWZ0KCkge1xyXG4gICAgY29uc3QgZXhwaXJhdGlvblN0ciA9IHRoaXMuc2Vzc2lvbi5zZXNzaW9uSW5mb0RhdGE/LmV4cGlyYXRpb247XHJcbiAgICBpZiAoIWV4cGlyYXRpb25TdHIpIHtcclxuICAgICAgdGhpcy5zZWNvbmRzTGVmdC5zZXQodW5kZWZpbmVkKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGV4cGlyYXRpb24gPSBuZXcgRGF0ZShleHBpcmF0aW9uU3RyKTtcclxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBzZWNzTGVmdCA9IE1hdGguZmxvb3IoKGV4cGlyYXRpb24uZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKSkgLyAxMDAwKTtcclxuICAgIGlmIChzZWNzTGVmdCA8IDEpIHtcclxuICAgICAgdGhpcy5vblRpbWVyRXhwaXJlZC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlY29uZHNMZWZ0LnNldChzZWNzTGVmdCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcklkKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzbWFydC1zZXNzaW9uLXRpbWVyLWNvbnRhaW5lclwiPlxyXG4gIDxzcGFuIGNsYXNzPVwic21hcnQtc2Vzc2lvbi10aW1lclwiPnt7IHRpbWVGb3JtYXR0ZWQoKSB9fTwvc3Bhbj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -165,7 +165,7 @@ export class SmartfileuploaderComponent {
|
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartfileuploaderComponent, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartfileuploaderComponent, selector: "smartfileuploader", inputs: { uploadCallback: "uploadCallback", fileFormats: "fileFormats", maxSizeMb: "maxSizeMb", i18n: "i18n", useIconButton: "useIconButton", isMultiple: "isMultiple", autoUpload: "autoUpload", isDisabled: "isDisabled" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"container\"\r\n [ngClass]=\"{ disabledWidget: isDisabled }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [class.dragover]=\"isDragOver\"\r\n>\r\n <div class=\"fileContainer\" (click)=\"fileInput.click()\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n [disabled]=\"isDisabled\"\r\n style=\"display: none\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <div class=\"icon\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n </div>\r\n <div class=\"labels\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary title\">\r\n {{ i18n!.addFile }}\r\n </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n <div class=\"uploadButton\" *ngIf=\"files.length\">\r\n <ui-action-button (actionClick)=\"uploadFile()\" [descriptor]=\"uploadButton\">\r\n </ui-action-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"errors.length\" class=\"errorMessage\">\r\n <smart-icon [icon]=\"'error'\" [color]=\"'warn'\"></smart-icon>\r\n <div class=\"errors\">\r\n <span *ngFor=\"let error of errors\">{{ error }}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <ng-container *ngIf=\"filePreviewUrl(file); else fileIcon\">\r\n <img [src]=\"filePreviewUrl(file)\" [alt]=\"file.name\" width=\"50\" height=\"50\" />\r\n </ng-container>\r\n <ng-template #fileIcon>\r\n <smart-icon [icon]=\"'insert_drive_file'\"></smart-icon>\r\n </ng-template>\r\n\r\n <div class=\"fileData\">\r\n <div class=\"fileDataContainer\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fileActions\">\r\n <smart-icon class=\"downloadIcon\" icon=\"download\" (click)=\"downloadFile(file)\"></smart-icon>\r\n <smart-icon class=\"removeIcon\" icon=\"delete\" (click)=\"remove(i)\"></smart-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}.container{display:flex;flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileContainer{cursor:pointer;padding:1rem;display:flex;flex-direction:column}.fileContainer:hover{background-color:rgb(from var(--border-color) r g b / .1)}.disabledWidget ::ng-deep .fileContainer:hover{background-color:unset;cursor:unset}.disabledWidget ::ng-deep *{opacity:.85}.dragover{background-color:rgb(from var(--border-color) r g b / .1)}.fileUploadContentContainer{display:flex;flex-direction:row;gap:1rem}.icon mat-icon{font-size:3rem;width:unset;height:unset}.icon{align-content:center}.labels{flex:1;display:flex;flex-direction:column;justify-content:center;width:fit-content}.uploadButton{align-content:center}.primary{color:var(--primary-color)}.secondary{color:var(--gray)}.label{margin:unset}.subLabel{font-size:smaller}.title{padding-bottom:.3rem}.errorMessage,.uploadedFilesContainer{border-top:2px solid var(--border-color)}.errorMessage{display:flex;flex-direction:row;align-items:center;color:var(--warninig-color);padding:.5rem 1rem;gap:1rem}.errorMessage ::ng-deep mat-icon{color:var(--warninig-color)}.errors{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;gap:1rem}.uploadedFile:last-child{border-bottom:none}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep .pi{width:unset!important}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses", "iconPlaceholder"], outputs: ["actionClick", "actionDoubleClick"] }] }); }
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartfileuploaderComponent, selector: "smartfileuploader", inputs: { uploadCallback: "uploadCallback", fileFormats: "fileFormats", maxSizeMb: "maxSizeMb", i18n: "i18n", useIconButton: "useIconButton", isMultiple: "isMultiple", autoUpload: "autoUpload", isDisabled: "isDisabled" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"container\"\r\n [ngClass]=\"{ disabledWidget: isDisabled }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [class.dragover]=\"isDragOver\"\r\n>\r\n <div class=\"fileContainer\" (click)=\"fileInput.click()\">\r\n <input\r\n #fileInput\r\n id=\"addFile\"\r\n placeholder=\"fileInput\"\r\n type=\"file\"\r\n (change)=\"getFile($event)\"\r\n class=\"file\"\r\n accept=\"{{ fileFormats?.join(', ') }}\"\r\n [size]=\"maxSizeMb\"\r\n [multiple]=\"isMultiple\"\r\n [disabled]=\"isDisabled\"\r\n style=\"display: none\"\r\n />\r\n <div class=\"fileUploadContentContainer\">\r\n <div class=\"icon\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\r\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\r\n </mat-label>\r\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\r\n {{ i18n!.addFile }}\r\n </button>\r\n </div>\r\n <div class=\"labels\">\r\n <mat-label *ngIf=\"useIconButton\" class=\"label primary title\">\r\n {{ i18n!.addFile }}\r\n </mat-label>\r\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\r\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\r\n </div>\r\n <div class=\"uploadButton\" *ngIf=\"files.length\">\r\n <ui-action-button (actionClick)=\"uploadFile()\" [descriptor]=\"uploadButton\">\r\n </ui-action-button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"errors.length\" class=\"errorMessage\">\r\n <smart-icon [icon]=\"'error'\" [color]=\"'warn'\"></smart-icon>\r\n <div class=\"errors\">\r\n <span *ngFor=\"let error of errors\">{{ error }}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\r\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\r\n <ng-container *ngIf=\"filePreviewUrl(file); else fileIcon\">\r\n <img [src]=\"filePreviewUrl(file)\" [alt]=\"file.name\" width=\"50\" height=\"50\" />\r\n </ng-container>\r\n <ng-template #fileIcon>\r\n <smart-icon [icon]=\"'insert_drive_file'\"></smart-icon>\r\n </ng-template>\r\n\r\n <div class=\"fileData\">\r\n <div class=\"fileDataContainer\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fileActions\">\r\n <smart-icon class=\"downloadIcon\" icon=\"download\" (click)=\"downloadFile(file)\"></smart-icon>\r\n <smart-icon class=\"removeIcon\" icon=\"delete\" (click)=\"remove(i)\"></smart-icon>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}.container{display:flex;flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileContainer{cursor:pointer;padding:1rem;display:flex;flex-direction:column}.fileContainer:hover{background-color:rgb(from var(--border-color) r g b / .1)}.disabledWidget ::ng-deep .fileContainer:hover{background-color:unset;cursor:unset}.disabledWidget ::ng-deep *{opacity:.85}.dragover{background-color:rgb(from var(--border-color) r g b / .1)}.fileUploadContentContainer{display:flex;flex-direction:row;gap:1rem}.icon mat-icon{font-size:3rem;width:unset;height:unset}.icon{align-content:center}.labels{flex:1;display:flex;flex-direction:column;justify-content:center;width:fit-content}.uploadButton{align-content:center}.primary{color:var(--primary-color)}.secondary{color:var(--gray)}.label{margin:unset}.subLabel{font-size:smaller}.title{padding-bottom:.3rem}.errorMessage,.uploadedFilesContainer{border-top:2px solid var(--border-color)}.errorMessage{display:flex;flex-direction:row;align-items:center;color:var(--warninig-color);padding:.5rem 1rem;gap:1rem}.errorMessage ::ng-deep mat-icon{color:var(--warninig-color)}.errors{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;gap:1rem}.uploadedFile:last-child{border-bottom:none}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep .pi{width:unset!important}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "viewActivated", "addedCssClass", "addBasicClasses", "iconPlaceholder"], outputs: ["actionClick", "actionDoubleClick"] }] }); }
|
|
169
169
|
}
|
|
170
170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartfileuploaderComponent, decorators: [{
|
|
171
171
|
type: Component,
|
package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs
CHANGED
|
@@ -152,7 +152,7 @@ export class SmartFileEditorComponent {
|
|
|
152
152
|
useExisting: forwardRef(() => SmartFileEditorComponent),
|
|
153
153
|
multi: true,
|
|
154
154
|
},
|
|
155
|
-
], viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }], ngImport: i0, template: "@if (widgetInstance && widgetInstance.fileUploaderProperties) {\r\n <h4\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ widgetInstance.label }}\r\n </h4>\r\n\r\n <div class=\"fileEditorComponent\">\r\n @if (widgetInstance.value && !isTypeSupported(widgetInstance.value)) {\r\n <div class=\"errorMessage\">\r\n <smart-icon [icon]=\"errorIcon\" [color]=\"'var(--warninig-color)'\"></smart-icon>\r\n <span> Unsupported widgetInstance.value type for this widget.</span>\r\n </div>\r\n } @else if (!widgetInstance.value || fileToChange) {\r\n <smart-upload-widget\r\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n [uploadDescriptor]=\"widgetInstance.fileUploaderProperties.uploadDescriptor!\"\r\n [isMultiple]=\"false\"\r\n [isDisabled]=\"widgetInstance.isDisabled\"\r\n (uploadFilesEvent)=\"upload($event)\"\r\n />\r\n }\r\n\r\n <div\r\n [ngClass]=\"{ disabledWidget: widgetInstance.isDisabled }\"\r\n class=\"uploadedFileContainer\"\r\n [style.display]=\"\r\n widgetInstance.value && isTypeSupported(widgetInstance.value) ? 'block' : 'none'\r\n \"\r\n >\r\n <div class=\"uploadedFile\">\r\n <smart-icon class=\"uploadedFileIcon\" [icon]=\"fileIcon\"></smart-icon>\r\n\r\n <div class=\"fileData\">\r\n <div class=\"fileDataContainer\">\r\n <span class=\"fileName\">{{ widgetInstance.value?.fileName }}</span>\r\n <span class=\"fileSize\">{{ formatSize(widgetInstance.value?.size) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fileActions\">\r\n <smart-ui-action-toolbar\r\n [id]=\"widgetInstance.toolbarId\"\r\n #toolbar\r\n ></smart-ui-action-toolbar>\r\n\r\n @if (!fileToChange) {\r\n <ui-action-button\r\n class=\"changeButton\"\r\n (actionClick)=\"change(widgetInstance.value)\"\r\n [disabled]=\"widgetInstance.isDisabled\"\r\n [descriptor]=\"changeButton\"\r\n >\r\n </ui-action-button>\r\n } @else {\r\n <ui-action-button\r\n class=\"removeIcon\"\r\n (actionClick)=\"cancelChange()\"\r\n [descriptor]=\"removeButton\"\r\n ></ui-action-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem;width:100%}.fileEditorComponent{border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileEditorComponent ::ng-deep smartfileuploader ::ng-deep .container{border:unset;border-radius:unset}.uploadedFileContainer{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;gap:1rem}.fileEditorComponent:has(::ng-deep prime-file-uploader) ::ng-deep .uploadedFile,.fileEditorComponent:has(::ng-deep smartfileuploader) ::ng-deep .uploadedFile{border-top:1px solid #e0e0e0}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.uploadedFileIcon{width:3rem;display:flex;justify-content:center}:host ::ng-deep .p-fileupload-content{border:unset;border-radius:var(--def-border-radius)}smart-icon ::ng-deep .pi{font-size:2rem!important}.fileEditorComponent:has(::ng-deep .errorMessage){border-color:var(--warninig-color)}.errorMessage{padding:1rem;font-size:1.5rem;color:var(--warninig-color);display:flex;flex-direction:row;align-items:center;gap:1rem}:host ::ng-deep .disabledWidget ::ng-deep .changeButton *,:host ::ng-deep .disabledWidget ::ng-deep .fileData *{opacity:.7}:host ::ng-deep smartfileuploader ::ng-deep .uploadedFile,:host ::ng-deep .p-fileupload-file{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 12px,#f1f1f1 12px 24px)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i3.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i4.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses", "iconPlaceholder"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: i5.UploadWidgetComponent, selector: "smart-upload-widget", inputs: ["uploadDescriptor", "isMultiple", "isDisabled"], outputs: ["uploadFilesEvent"] }] }); }
|
|
155
|
+
], viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true }], ngImport: i0, template: "@if (widgetInstance && widgetInstance.fileUploaderProperties) {\r\n <h4\r\n *ngIf=\"widgetInstance.showLabel\"\r\n class=\"labelContainer {{ widgetInstance.cssLabelClass ?? '' }}\"\r\n [ngClass]=\"getLabelNgClass()\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n >\r\n {{ widgetInstance.label }}\r\n </h4>\r\n\r\n <div class=\"fileEditorComponent\">\r\n @if (widgetInstance.value && !isTypeSupported(widgetInstance.value)) {\r\n <div class=\"errorMessage\">\r\n <smart-icon [icon]=\"errorIcon\" [color]=\"'var(--warninig-color)'\"></smart-icon>\r\n <span> Unsupported widgetInstance.value type for this widget.</span>\r\n </div>\r\n } @else if (!widgetInstance.value || fileToChange) {\r\n <smart-upload-widget\r\n class=\"widgetContent {{ widgetInstance.cssClass ?? '' }}\"\r\n [ngClass]=\"getNgClass()\"\r\n [ngStyle]=\"getStyle()\"\r\n [uploadDescriptor]=\"widgetInstance.fileUploaderProperties.uploadDescriptor!\"\r\n [isMultiple]=\"false\"\r\n [isDisabled]=\"widgetInstance.isDisabled\"\r\n (uploadFilesEvent)=\"upload($event)\"\r\n />\r\n }\r\n\r\n <div\r\n [ngClass]=\"{ disabledWidget: widgetInstance.isDisabled }\"\r\n class=\"uploadedFileContainer\"\r\n [style.display]=\"\r\n widgetInstance.value && isTypeSupported(widgetInstance.value) ? 'block' : 'none'\r\n \"\r\n >\r\n <div class=\"uploadedFile\">\r\n <smart-icon class=\"uploadedFileIcon\" [icon]=\"fileIcon\"></smart-icon>\r\n\r\n <div class=\"fileData\">\r\n <div class=\"fileDataContainer\">\r\n <span class=\"fileName\">{{ widgetInstance.value?.fileName }}</span>\r\n <span class=\"fileSize\">{{ formatSize(widgetInstance.value?.size) }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fileActions\">\r\n <smart-ui-action-toolbar\r\n [id]=\"widgetInstance.toolbarId\"\r\n #toolbar\r\n ></smart-ui-action-toolbar>\r\n\r\n @if (!fileToChange) {\r\n <ui-action-button\r\n class=\"changeButton\"\r\n (actionClick)=\"change(widgetInstance.value)\"\r\n [disabled]=\"widgetInstance.isDisabled\"\r\n [descriptor]=\"changeButton\"\r\n >\r\n </ui-action-button>\r\n } @else {\r\n <ui-action-button\r\n class=\"removeIcon\"\r\n (actionClick)=\"cancelChange()\"\r\n [descriptor]=\"removeButton\"\r\n ></ui-action-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem;width:100%}.fileEditorComponent{border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileEditorComponent ::ng-deep smartfileuploader ::ng-deep .container{border:unset;border-radius:unset}.uploadedFileContainer{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;gap:1rem}.fileEditorComponent:has(::ng-deep prime-file-uploader) ::ng-deep .uploadedFile,.fileEditorComponent:has(::ng-deep smartfileuploader) ::ng-deep .uploadedFile{border-top:1px solid #e0e0e0}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep button{border:unset}.fileActions ::ng-deep button:hover{border:unset}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.uploadedFileIcon{width:3rem;display:flex;justify-content:center}:host ::ng-deep .p-fileupload-content{border:unset;border-radius:var(--def-border-radius)}smart-icon ::ng-deep .pi{font-size:2rem!important}.fileEditorComponent:has(::ng-deep .errorMessage){border-color:var(--warninig-color)}.errorMessage{padding:1rem;font-size:1.5rem;color:var(--warninig-color);display:flex;flex-direction:row;align-items:center;gap:1rem}:host ::ng-deep .disabledWidget ::ng-deep .changeButton *,:host ::ng-deep .disabledWidget ::ng-deep .fileData *{opacity:.7}:host ::ng-deep smartfileuploader ::ng-deep .uploadedFile,:host ::ng-deep .p-fileupload-file{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 12px,#f1f1f1 12px 24px)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i3.UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i4.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "viewActivated", "addedCssClass", "addBasicClasses", "iconPlaceholder"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: i5.UploadWidgetComponent, selector: "smart-upload-widget", inputs: ["uploadDescriptor", "isMultiple", "isDisabled"], outputs: ["uploadFilesEvent"] }] }); }
|
|
156
156
|
}
|
|
157
157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFileEditorComponent, decorators: [{
|
|
158
158
|
type: Component,
|