@arsedizioni/ars-utils 18.2.344 → 18.2.346

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.
Files changed (90) hide show
  1. package/clipper.common/common/services/clipper.service.d.ts +4 -0
  2. package/clipper.ui/ui/search-result-manager/search-result-manager.d.ts +0 -1
  3. package/esm2022/clipper.common/common/common.module.mjs +4 -4
  4. package/esm2022/clipper.common/common/interceptors/auth.interceptor.mjs +3 -3
  5. package/esm2022/clipper.common/common/services/clipper.service.mjs +10 -4
  6. package/esm2022/clipper.ui/ui/browser-dialog/browser-dialog.component.mjs +3 -3
  7. package/esm2022/clipper.ui/ui/document/document.component.mjs +3 -3
  8. package/esm2022/clipper.ui/ui/document-index/document-index.component.mjs +3 -3
  9. package/esm2022/clipper.ui/ui/document-manager/document-manager.mjs +3 -3
  10. package/esm2022/clipper.ui/ui/document-menu/document-menu.component.mjs +3 -3
  11. package/esm2022/clipper.ui/ui/references/references.component.mjs +3 -3
  12. package/esm2022/clipper.ui/ui/search-calendar/search-calendar.component.mjs +3 -3
  13. package/esm2022/clipper.ui/ui/search-dialog/search-dialog.component.mjs +3 -3
  14. package/esm2022/clipper.ui/ui/search-facets/search-facets.component.mjs +3 -3
  15. package/esm2022/clipper.ui/ui/search-free-text-help/search-free-text-help.component.mjs +3 -3
  16. package/esm2022/clipper.ui/ui/search-free-text-query-builder/search-free-text-query-builder.component.mjs +3 -3
  17. package/esm2022/clipper.ui/ui/search-result-item/search-result-item.component.mjs +3 -3
  18. package/esm2022/clipper.ui/ui/search-result-manager/search-result-manager.mjs +4 -5
  19. package/esm2022/core/core.module.mjs +8 -8
  20. package/esm2022/core/dateFnsAdapter.mjs +3 -3
  21. package/esm2022/core/directives/autoFocusDirective.mjs +3 -3
  22. package/esm2022/core/directives/changeDateIntervalDirective.mjs +3 -3
  23. package/esm2022/core/directives/copyClipboardDirective.mjs +4 -4
  24. package/esm2022/core/directives/validators.mjs +33 -33
  25. package/esm2022/core/pipes/format.pipe.mjs +4 -4
  26. package/esm2022/core/pipes/replace.pipe.mjs +4 -4
  27. package/esm2022/core/pipes/safe-html.pipe.mjs +4 -4
  28. package/esm2022/core/pipes/safe-url.pipe.mjs +4 -4
  29. package/esm2022/core/pipes/search-callback.pipe.mjs +3 -3
  30. package/esm2022/core/pipes/search-filter.pipe.mjs +4 -4
  31. package/esm2022/core/services/broadcast.service.mjs +3 -3
  32. package/esm2022/core/services/environment.service.mjs +3 -3
  33. package/esm2022/core/services/screen.service.mjs +3 -3
  34. package/esm2022/core/services/theme.service.mjs +3 -3
  35. package/esm2022/help/components/help-viewer/help-viewer.component.mjs +6 -6
  36. package/esm2022/help/help.module.mjs +4 -4
  37. package/esm2022/help/services/help.service.mjs +3 -3
  38. package/esm2022/support.common/common/common.module.mjs +4 -4
  39. package/esm2022/support.common/common/interceptors/auth.interceptor.mjs +3 -3
  40. package/esm2022/support.common/common/services/support.service.mjs +3 -3
  41. package/esm2022/support.ui/ui/notifications-browser/notification/notification.component.mjs +3 -3
  42. package/esm2022/support.ui/ui/notifications-browser/notifications-browser.component.mjs +3 -3
  43. package/esm2022/tinymce/full-screen-editor/full-screen-editor.component.mjs +3 -3
  44. package/esm2022/tinymce/tinymce.module.mjs +4 -4
  45. package/esm2022/ui/ui/dialogs/busy/busy-dialog.component.mjs +3 -3
  46. package/esm2022/ui/ui/dialogs/confirm/confirm-dialog.component.mjs +3 -3
  47. package/esm2022/ui/ui/dialogs/credentials/credentials-dialog.component.mjs +3 -3
  48. package/esm2022/ui/ui/dialogs/info/info-dialog.component.mjs +3 -3
  49. package/esm2022/ui/ui/dialogs/recover-password/recover-password-dialog.component.mjs +3 -3
  50. package/esm2022/ui/ui/dialogs/reset-password/reset-password-dialog.component.mjs +3 -3
  51. package/esm2022/ui/ui/dialogs/toast/toast.component.mjs +3 -3
  52. package/esm2022/ui/ui/paginatorIntl.mjs +3 -3
  53. package/esm2022/ui/ui/services/dialog.service.mjs +3 -3
  54. package/esm2022/ui/ui/services/ui.service.mjs +3 -3
  55. package/esm2022/ui/ui/ui.module.mjs +4 -4
  56. package/esm2022/ui.application/ui/components/button-selector/button-selector.component.mjs +3 -3
  57. package/esm2022/ui.application/ui/components/button-toggle/button-toggle.component.mjs +3 -3
  58. package/esm2022/ui.application/ui/components/calendar-empty-header/calendar-empy-header.component.mjs +3 -3
  59. package/esm2022/ui.application/ui/components/chips-selector/chips-selector.component.mjs +3 -3
  60. package/esm2022/ui.application/ui/components/file-input/file-input.component.mjs +3 -3
  61. package/esm2022/ui.application/ui/components/file-preview/file-preview.component.mjs +3 -3
  62. package/esm2022/ui.application/ui/components/filter-bar/filter-bar.component.mjs +3 -3
  63. package/esm2022/ui.application/ui/dialogs/prompt/prompt-dialog.component.mjs +3 -3
  64. package/esm2022/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +3 -3
  65. package/esm2022/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +3 -3
  66. package/esm2022/ui.application/ui/dialogs/select/select-dialog.component.mjs +3 -3
  67. package/esm2022/ui.application/ui/dialogs/select-file/select-file-dialog.component.mjs +3 -3
  68. package/esm2022/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.mjs +3 -3
  69. package/esm2022/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.mjs +6 -6
  70. package/esm2022/ui.application/ui/dialogs/send-to/send-to-dialog.component.mjs +3 -3
  71. package/esm2022/ui.application/ui/directives/resize-table-column.directive.mjs +3 -3
  72. package/esm2022/ui.application/ui/services/applicationDialog.service.mjs +3 -3
  73. package/esm2022/ui.application/ui/ui.module.mjs +4 -4
  74. package/esm2022/ui.oauth/ui/components/login/login-oauth.component.mjs +3 -3
  75. package/esm2022/ui.oauth/ui/ui.module.mjs +4 -4
  76. package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +16 -10
  77. package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
  78. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +39 -40
  79. package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
  80. package/fesm2022/arsedizioni-ars-utils-core.mjs +89 -89
  81. package/fesm2022/arsedizioni-ars-utils-help.mjs +13 -13
  82. package/fesm2022/arsedizioni-ars-utils-support.common.mjs +10 -10
  83. package/fesm2022/arsedizioni-ars-utils-support.ui.mjs +6 -6
  84. package/fesm2022/arsedizioni-ars-utils-tinymce.mjs +7 -7
  85. package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +58 -58
  86. package/fesm2022/arsedizioni-ars-utils-ui.mjs +34 -34
  87. package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +7 -7
  88. package/package.json +7 -7
  89. package/core/services/broadcastChannelHandler.d.ts +0 -83
  90. package/esm2022/core/services/broadcastChannelHandler.mjs +0 -80
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arsedizioni/ars-utils",
3
- "version": "18.2.344",
3
+ "version": "18.2.346",
4
4
  "author": {
5
5
  "email": "software@arsedizioni.it",
6
6
  "name": "Fabio Buscaroli, Alberto Doria"
@@ -59,18 +59,18 @@
59
59
  "esm": "./esm2022/help/arsedizioni-ars-utils-help.mjs",
60
60
  "default": "./fesm2022/arsedizioni-ars-utils-help.mjs"
61
61
  },
62
- "./support.common": {
63
- "types": "./support.common/index.d.ts",
64
- "esm2022": "./esm2022/support.common/arsedizioni-ars-utils-support.common.mjs",
65
- "esm": "./esm2022/support.common/arsedizioni-ars-utils-support.common.mjs",
66
- "default": "./fesm2022/arsedizioni-ars-utils-support.common.mjs"
67
- },
68
62
  "./support.ui": {
69
63
  "types": "./support.ui/index.d.ts",
70
64
  "esm2022": "./esm2022/support.ui/arsedizioni-ars-utils-support.ui.mjs",
71
65
  "esm": "./esm2022/support.ui/arsedizioni-ars-utils-support.ui.mjs",
72
66
  "default": "./fesm2022/arsedizioni-ars-utils-support.ui.mjs"
73
67
  },
68
+ "./support.common": {
69
+ "types": "./support.common/index.d.ts",
70
+ "esm2022": "./esm2022/support.common/arsedizioni-ars-utils-support.common.mjs",
71
+ "esm": "./esm2022/support.common/arsedizioni-ars-utils-support.common.mjs",
72
+ "default": "./fesm2022/arsedizioni-ars-utils-support.common.mjs"
73
+ },
74
74
  "./tinymce": {
75
75
  "types": "./tinymce/index.d.ts",
76
76
  "esm2022": "./esm2022/tinymce/arsedizioni-ars-utils-tinymce.mjs",
@@ -1,83 +0,0 @@
1
- /**
2
- * Standard Broadcast Messages Manager
3
- * https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel
4
- */
5
- /**
6
- * The message bag sent as a message
7
- */
8
- export interface BroadcastChannelMessageBag<T> {
9
- messageId: string;
10
- sender: string;
11
- data?: T;
12
- }
13
- /**
14
- * Message subscription params
15
- */
16
- export interface BroadcastChannelSubscriberInfo<T> {
17
- messageId: string;
18
- action: (bag: BroadcastChannelMessageBag<T>) => void;
19
- }
20
- /**
21
- * Web Standard Broadcast Messages Manager
22
- * https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel
23
- */
24
- export declare class BroadcastChannelManager {
25
- private channel?;
26
- private subscriptions;
27
- /**
28
- * Get the current channel registration
29
- */
30
- get currentBus(): string | null | undefined;
31
- constructor(bus: string);
32
- dispose(): void;
33
- /**
34
- * Send a message
35
- * @param bag The message, see also {@link BroadcastChannelMessageBag}
36
- *
37
- * @example
38
- * channel.sendMessage({ messageId: 'my-broadcast-message', sender: 'the-sender', data: value });
39
- */
40
- sendMessage<T>(bag: BroadcastChannelMessageBag<T>): void;
41
- /**
42
- * Send a message
43
- * @param bag The message, see also {@link BroadcastChannelMessageBag}
44
- * @param delay The number of milliseconds to wait before sending the message, see also {@link setTimeout}
45
- *
46
- * @example
47
- * channel.sendMessage({ messageId: 'my-broadcast-message', sender: 'the-sender', data: value }, 250);
48
- */
49
- sendMessage<T>(bag: BroadcastChannelMessageBag<T>, delay: number | null): void;
50
- /**
51
- * Send a message
52
- * @param messageId The message id
53
- * @param data The data to send
54
- *
55
- * @example
56
- * channel.sendMessage('my-broadcast-message', value);
57
- */
58
- sendMessage<T>(messageId: string, data: T | null): void;
59
- /**
60
- * Send a message
61
- * @param messageId The message id
62
- * @param data The data to send
63
- * @param delay The number of milliseconds to wait before sending the message
64
- *
65
- * @example
66
- * channel.sendMessage('my-broadcast-message', value, 250);
67
- */
68
- sendMessage<T>(messageId: string, data: T | null, delay: number | null): void;
69
- /**
70
- * Subscribe to a message
71
- * @param args The subscription info, see also {@link BroadcastChannelSubscriberInfo}
72
- */
73
- subscribe<T>(args: BroadcastChannelSubscriberInfo<T>): void;
74
- /**
75
- * Remove a message subscription
76
- * @param messageId The message id
77
- */
78
- unsubscribe(messageId: string): void;
79
- /**
80
- * Remove all the current subscriptions
81
- */
82
- unsubscribeAll(): void;
83
- }
@@ -1,80 +0,0 @@
1
- /**
2
- * Standard Broadcast Messages Manager
3
- * https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel
4
- */
5
- /**
6
- * Web Standard Broadcast Messages Manager
7
- * https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel
8
- */
9
- export class BroadcastChannelManager {
10
- /**
11
- * Get the current channel registration
12
- */
13
- get currentBus() {
14
- return this.channel?.name;
15
- }
16
- constructor(bus) {
17
- this.channel = undefined;
18
- this.subscriptions = [];
19
- this.channel = new BroadcastChannel(bus);
20
- this.channel.onmessageerror = (e) => {
21
- console.error('[BroadcastChannelManager] Errore di ricezione del messaggio', e);
22
- };
23
- this.channel.onmessage = (e) => {
24
- const bag = e.data;
25
- if (bag) {
26
- const bagInfo = this.subscriptions.find(m => m.messageId === bag.messageId);
27
- bagInfo?.action(bag);
28
- }
29
- };
30
- }
31
- dispose() {
32
- this.subscriptions = [];
33
- this.channel?.close();
34
- this.channel = null;
35
- }
36
- /**
37
- * overloads
38
- */
39
- sendMessage(messageIdorBag, dataOrDelay = null, delay = 0) {
40
- // console.warn({ messageIdorBag, dataOrDelay, delay });
41
- setTimeout(() => {
42
- if (typeof messageIdorBag === 'string') {
43
- this.channel?.postMessage({ messageId: messageIdorBag, data: dataOrDelay });
44
- }
45
- else {
46
- this.channel?.postMessage(messageIdorBag);
47
- }
48
- }, (typeof dataOrDelay === 'number' ? dataOrDelay : delay) ?? 0);
49
- }
50
- /**
51
- * Subscribe to a message
52
- * @param args The subscription info, see also {@link BroadcastChannelSubscriberInfo}
53
- */
54
- subscribe(args) {
55
- const i = this.subscriptions.findIndex(m => m.messageId === args.messageId);
56
- if (i === -1) {
57
- this.subscriptions.push(args);
58
- }
59
- else {
60
- this.subscriptions[i].action = args.action;
61
- }
62
- }
63
- /**
64
- * Remove a message subscription
65
- * @param messageId The message id
66
- */
67
- unsubscribe(messageId) {
68
- const i = this.subscriptions.findIndex(m => m.messageId === messageId);
69
- if (i !== -1) {
70
- this.subscriptions.splice(i, 1);
71
- }
72
- }
73
- /**
74
- * Remove all the current subscriptions
75
- */
76
- unsubscribeAll() {
77
- this.subscriptions = [];
78
- }
79
- }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0Q2hhbm5lbEhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvY29yZS9zZXJ2aWNlcy9icm9hZGNhc3RDaGFubmVsSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFxQkg7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQzs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZLEdBQVc7UUFWZixZQUFPLEdBQTZCLFNBQVMsQ0FBQztRQUM5QyxrQkFBYSxHQUEwQyxFQUFFLENBQUM7UUFVaEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FBQyw2REFBNkQsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQWUsRUFBRSxFQUFFO1lBQzNDLE1BQU0sR0FBRyxHQUF1RCxDQUFDLENBQUMsSUFBdUMsQ0FBQztZQUMxRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLE1BQU0sT0FBTyxHQUFvRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM3SCxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQXVDRDs7T0FFRztJQUNILFdBQVcsQ0FBSSxjQUFzRCxFQUFFLGNBQTBCLElBQUksRUFBRSxRQUF1QixDQUFDO1FBQzdILHdEQUF3RDtRQUN4RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxPQUFPLGNBQWMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQW1DLENBQUMsQ0FBQztZQUMvRyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsY0FBK0MsQ0FBQyxDQUFDO1lBQzdFLENBQUM7UUFDSCxDQUFDLEVBQUUsQ0FBQyxPQUFPLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUdEOzs7T0FHRztJQUNILFNBQVMsQ0FBSSxJQUF1QztRQUNsRCxNQUFNLENBQUMsR0FBVyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsU0FBaUI7UUFDM0IsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogU3RhbmRhcmQgQnJvYWRjYXN0IE1lc3NhZ2VzIE1hbmFnZXJcclxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0Jyb2FkY2FzdENoYW5uZWxcclxuICovXHJcblxyXG5cclxuLyoqXHJcbiAqIFRoZSBtZXNzYWdlIGJhZyBzZW50IGFzIGEgbWVzc2FnZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBCcm9hZGNhc3RDaGFubmVsTWVzc2FnZUJhZzxUPiB7XHJcbiAgbWVzc2FnZUlkOiBzdHJpbmc7XHJcbiAgc2VuZGVyOiBzdHJpbmcsXHJcbiAgZGF0YT86IFQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNZXNzYWdlIHN1YnNjcmlwdGlvbiBwYXJhbXNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQnJvYWRjYXN0Q2hhbm5lbFN1YnNjcmliZXJJbmZvPFQ+IHtcclxuICBtZXNzYWdlSWQ6IHN0cmluZyxcclxuICBhY3Rpb246IChiYWc6IEJyb2FkY2FzdENoYW5uZWxNZXNzYWdlQmFnPFQ+KSA9PiB2b2lkO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFdlYiBTdGFuZGFyZCBCcm9hZGNhc3QgTWVzc2FnZXMgTWFuYWdlclxyXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvQnJvYWRjYXN0Q2hhbm5lbFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJyb2FkY2FzdENoYW5uZWxNYW5hZ2VyIHtcclxuICBwcml2YXRlIGNoYW5uZWw/OiBCcm9hZGNhc3RDaGFubmVsIHwgbnVsbCA9IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEJyb2FkY2FzdENoYW5uZWxTdWJzY3JpYmVySW5mbzxhbnk+W10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBjdXJyZW50IGNoYW5uZWwgcmVnaXN0cmF0aW9uXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBjdXJyZW50QnVzKCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hhbm5lbD8ubmFtZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKGJ1czogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbChidXMpO1xyXG5cclxuICAgIHRoaXMuY2hhbm5lbC5vbm1lc3NhZ2VlcnJvciA9IChlOiBhbnkpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcignW0Jyb2FkY2FzdENoYW5uZWxNYW5hZ2VyXSBFcnJvcmUgZGkgcmljZXppb25lIGRlbCBtZXNzYWdnaW8nLCBlKTtcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5jaGFubmVsLm9ubWVzc2FnZSA9IChlOiBNZXNzYWdlRXZlbnQpID0+IHtcclxuICAgICAgY29uc3QgYmFnOiBCcm9hZGNhc3RDaGFubmVsTWVzc2FnZUJhZzxhbnk+IHwgbnVsbCB8IHVuZGVmaW5lZCA9IGUuZGF0YSBhcyBCcm9hZGNhc3RDaGFubmVsTWVzc2FnZUJhZzxhbnk+O1xyXG4gICAgICBpZiAoYmFnKSB7XHJcbiAgICAgICAgY29uc3QgYmFnSW5mbzogQnJvYWRjYXN0Q2hhbm5lbFN1YnNjcmliZXJJbmZvPGFueT4gfCB1bmRlZmluZWQgPSB0aGlzLnN1YnNjcmlwdGlvbnMuZmluZChtID0+IG0ubWVzc2FnZUlkID09PSBiYWcubWVzc2FnZUlkKTtcclxuICAgICAgICBiYWdJbmZvPy5hY3Rpb24oYmFnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzcG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG4gICAgdGhpcy5jaGFubmVsPy5jbG9zZSgpO1xyXG4gICAgdGhpcy5jaGFubmVsID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmQgYSBtZXNzYWdlXHJcbiAgICogQHBhcmFtIGJhZyBUaGUgbWVzc2FnZSwgc2VlIGFsc28ge0BsaW5rIEJyb2FkY2FzdENoYW5uZWxNZXNzYWdlQmFnfVxyXG4gICAqIFxyXG4gICAqIEBleGFtcGxlICAgICBcclxuICAgKiBjaGFubmVsLnNlbmRNZXNzYWdlKHsgbWVzc2FnZUlkOiAnbXktYnJvYWRjYXN0LW1lc3NhZ2UnLCBzZW5kZXI6ICd0aGUtc2VuZGVyJywgZGF0YTogdmFsdWUgfSk7XHJcbiAgICovXHJcbiAgc2VuZE1lc3NhZ2U8VD4oYmFnOiBCcm9hZGNhc3RDaGFubmVsTWVzc2FnZUJhZzxUPik6IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogU2VuZCBhIG1lc3NhZ2VcclxuICAgKiBAcGFyYW0gYmFnICAgVGhlIG1lc3NhZ2UsIHNlZSBhbHNvIHtAbGluayBCcm9hZGNhc3RDaGFubmVsTWVzc2FnZUJhZ31cclxuICAgKiBAcGFyYW0gZGVsYXkgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyB0aGUgbWVzc2FnZSwgc2VlIGFsc28ge0BsaW5rIHNldFRpbWVvdXR9XHJcbiAgICogXHJcbiAgICogQGV4YW1wbGUgICAgIFxyXG4gICAqIGNoYW5uZWwuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlSWQ6ICdteS1icm9hZGNhc3QtbWVzc2FnZScsIHNlbmRlcjogJ3RoZS1zZW5kZXInLCBkYXRhOiB2YWx1ZSB9LCAyNTApO1xyXG4gICAqL1xyXG4gIHNlbmRNZXNzYWdlPFQ+KGJhZzogQnJvYWRjYXN0Q2hhbm5lbE1lc3NhZ2VCYWc8VD4sIGRlbGF5OiBudW1iZXIgfCBudWxsKTogdm9pZDtcclxuICAvKipcclxuICAgKiBTZW5kIGEgbWVzc2FnZVxyXG4gICAqIEBwYXJhbSBtZXNzYWdlSWQgVGhlIG1lc3NhZ2UgaWRcclxuICAgKiBAcGFyYW0gZGF0YSAgICAgIFRoZSBkYXRhIHRvIHNlbmRcclxuICAgKiBcclxuICAgKiBAZXhhbXBsZSAgICAgXHJcbiAgICogY2hhbm5lbC5zZW5kTWVzc2FnZSgnbXktYnJvYWRjYXN0LW1lc3NhZ2UnLCB2YWx1ZSk7XHJcbiAgICovXHJcbiAgc2VuZE1lc3NhZ2U8VD4obWVzc2FnZUlkOiBzdHJpbmcsIGRhdGE6IFQgfCBudWxsKTogdm9pZDtcclxuICAvKipcclxuICAgKiBTZW5kIGEgbWVzc2FnZVxyXG4gICAqIEBwYXJhbSBtZXNzYWdlSWQgVGhlIG1lc3NhZ2UgaWRcclxuICAgKiBAcGFyYW0gZGF0YSAgICAgIFRoZSBkYXRhIHRvIHNlbmRcclxuICAgKiBAcGFyYW0gZGVsYXkgICAgIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIHNlbmRpbmcgdGhlIG1lc3NhZ2VcclxuICAgKiBcclxuICAgKiBAZXhhbXBsZSAgICAgXHJcbiAgICogY2hhbm5lbC5zZW5kTWVzc2FnZSgnbXktYnJvYWRjYXN0LW1lc3NhZ2UnLCB2YWx1ZSwgMjUwKTtcclxuICAgKi9cclxuICBzZW5kTWVzc2FnZTxUPihtZXNzYWdlSWQ6IHN0cmluZywgZGF0YTogVCB8IG51bGwsIGRlbGF5OiBudW1iZXIgfCBudWxsKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogb3ZlcmxvYWRzXHJcbiAgICovXHJcbiAgc2VuZE1lc3NhZ2U8VD4obWVzc2FnZUlkb3JCYWc6IHN0cmluZyB8IEJyb2FkY2FzdENoYW5uZWxNZXNzYWdlQmFnPFQ+LCBkYXRhT3JEZWxheTogVCB8IG51bWJlciA9IG51bGwsIGRlbGF5OiBudW1iZXIgfCBudWxsID0gMCkge1xyXG4gICAgLy8gY29uc29sZS53YXJuKHsgbWVzc2FnZUlkb3JCYWcsIGRhdGFPckRlbGF5LCBkZWxheSB9KTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodHlwZW9mIG1lc3NhZ2VJZG9yQmFnID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRoaXMuY2hhbm5lbD8ucG9zdE1lc3NhZ2UoeyBtZXNzYWdlSWQ6IG1lc3NhZ2VJZG9yQmFnLCBkYXRhOiBkYXRhT3JEZWxheSB9IGFzIEJyb2FkY2FzdENoYW5uZWxNZXNzYWdlQmFnPFQ+KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoYW5uZWw/LnBvc3RNZXNzYWdlKG1lc3NhZ2VJZG9yQmFnIGFzIEJyb2FkY2FzdENoYW5uZWxNZXNzYWdlQmFnPFQ+KTtcclxuICAgICAgfVxyXG4gICAgfSwgKHR5cGVvZiBkYXRhT3JEZWxheSA9PT0gJ251bWJlcicgPyBkYXRhT3JEZWxheSA6IGRlbGF5KSA/PyAwKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpYmUgdG8gYSBtZXNzYWdlXHJcbiAgICogQHBhcmFtIGFyZ3MgVGhlIHN1YnNjcmlwdGlvbiBpbmZvLCBzZWUgYWxzbyB7QGxpbmsgQnJvYWRjYXN0Q2hhbm5lbFN1YnNjcmliZXJJbmZvfVxyXG4gICAqL1xyXG4gIHN1YnNjcmliZTxUPihhcmdzOiBCcm9hZGNhc3RDaGFubmVsU3Vic2NyaWJlckluZm88VD4pIHtcclxuICAgIGNvbnN0IGk6IG51bWJlciA9IHRoaXMuc3Vic2NyaXB0aW9ucy5maW5kSW5kZXgobSA9PiBtLm1lc3NhZ2VJZCA9PT0gYXJncy5tZXNzYWdlSWQpO1xyXG4gICAgaWYgKGkgPT09IC0xKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGFyZ3MpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNbaV0uYWN0aW9uID0gYXJncy5hY3Rpb247XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYSBtZXNzYWdlIHN1YnNjcmlwdGlvblxyXG4gICAqIEBwYXJhbSBtZXNzYWdlSWQgVGhlIG1lc3NhZ2UgaWRcclxuICAgKi9cclxuICB1bnN1YnNjcmliZShtZXNzYWdlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaTogbnVtYmVyID0gdGhpcy5zdWJzY3JpcHRpb25zLmZpbmRJbmRleChtID0+IG0ubWVzc2FnZUlkID09PSBtZXNzYWdlSWQpO1xyXG4gICAgaWYgKGkgIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5zcGxpY2UoaSwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYWxsIHRoZSBjdXJyZW50IHN1YnNjcmlwdGlvbnNcclxuICAgKi9cclxuICB1bnN1YnNjcmliZUFsbCgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG4gIH1cclxufVxyXG4iXX0=