@rtsee/ngx 0.0.39 → 0.0.40

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 (114) hide show
  1. package/dist/ngx/esm2022/lib/common/components/preloader/preloader.component.mjs +33 -0
  2. package/dist/ngx/esm2022/lib/components/rtsee/rtsee-controls/rtsee-controls.component.mjs +25 -0
  3. package/dist/ngx/esm2022/lib/components/rtsee/rtsee.component.mjs +32 -0
  4. package/dist/ngx/esm2022/lib/components/rtsee-container/rtsee-container.component.mjs +11 -0
  5. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/event-thumbnail/event-thumbnail.component.mjs +76 -0
  6. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.mjs +11 -0
  7. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.mjs +33 -0
  8. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-session/rtsee-events-dashboard-session.component.mjs +21 -0
  9. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.mjs +16 -0
  10. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat/chat.component.mjs +19 -0
  11. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat-input/chat-input.component.mjs +33 -0
  12. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.mjs +27 -0
  13. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chats-list/chats-list.component.mjs +22 -0
  14. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/contacts-multiselect/contacts-multiselect.component.mjs +18 -0
  15. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/manage-chat/manage-chat.component.mjs +21 -0
  16. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/search/search.component.mjs +31 -0
  17. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/main-menu.component.mjs +32 -0
  18. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message/components/message-time-and-status/message-time-and-status.component.mjs +24 -0
  19. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message/message.component.mjs +58 -0
  20. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message-widgets/call-widget/call-widget.component.mjs +34 -0
  21. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messages-list/messages-list.component.mjs +70 -0
  22. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messenger/messenger.component.mjs +31 -0
  23. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messenger-header/messenger-header.component.mjs +33 -0
  24. package/dist/ngx/esm2022/lib/components/rtsee-messenger/profile/profile.component.mjs +26 -0
  25. package/dist/ngx/esm2022/lib/components/rtsee-peer/rtsee-peer.component.mjs +36 -0
  26. package/dist/ngx/esm2022/lib/components/rtsee-peers-list/rtsee-peers-list.component.mjs +11 -0
  27. package/dist/ngx/esm2022/lib/components/rtsee-settings/rtsee-settings.component.mjs +43 -0
  28. package/dist/ngx/esm2022/lib/components/rtsee-soundbar/rtsee-soundbar.component.mjs +59 -0
  29. package/dist/ngx/esm2022/lib/directives/shave.directive.mjs +22 -0
  30. package/dist/ngx/esm2022/lib/directives/widget.directive.mjs +17 -0
  31. package/dist/ngx/esm2022/lib/ngx.module.mjs +141 -0
  32. package/dist/ngx/esm2022/lib/ngx.service.mjs +17 -0
  33. package/dist/ngx/esm2022/lib/services/default-images.service.mjs +14 -0
  34. package/dist/ngx/esm2022/lib/services/events-widgets.service.mjs +23 -0
  35. package/dist/ngx/esm2022/lib/services/message-widgets.service.mjs +26 -0
  36. package/dist/ngx/esm2022/lib/services/time-format-helper.service.mjs +92 -0
  37. package/dist/ngx/fesm2022/rtsee-ngx.mjs +1089 -0
  38. package/dist/ngx/fesm2022/rtsee-ngx.mjs.map +1 -0
  39. package/dist/ngx/lib/common/components/preloader/preloader.component.d.ts +1 -1
  40. package/dist/ngx/lib/components/rtsee/rtsee-controls/rtsee-controls.component.d.ts +1 -1
  41. package/dist/ngx/lib/components/rtsee/rtsee.component.d.ts +1 -1
  42. package/dist/ngx/lib/components/rtsee-container/rtsee-container.component.d.ts +1 -1
  43. package/dist/ngx/lib/components/rtsee-events-dashboard/components/event-thumbnail/event-thumbnail.component.d.ts +1 -1
  44. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.d.ts +1 -1
  45. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.d.ts +1 -1
  46. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-session/rtsee-events-dashboard-session.component.d.ts +1 -1
  47. package/dist/ngx/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.d.ts +1 -1
  48. package/dist/ngx/lib/components/rtsee-messenger/chat/chat.component.d.ts +1 -1
  49. package/dist/ngx/lib/components/rtsee-messenger/chat-input/chat-input.component.d.ts +1 -1
  50. package/dist/ngx/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.d.ts +1 -1
  51. package/dist/ngx/lib/components/rtsee-messenger/chats-list/chats-list.component.d.ts +1 -1
  52. package/dist/ngx/lib/components/rtsee-messenger/main-menu/components/contacts-multiselect/contacts-multiselect.component.d.ts +1 -1
  53. package/dist/ngx/lib/components/rtsee-messenger/main-menu/components/manage-chat/manage-chat.component.d.ts +1 -1
  54. package/dist/ngx/lib/components/rtsee-messenger/main-menu/components/search/search.component.d.ts +2 -2
  55. package/dist/ngx/lib/components/rtsee-messenger/main-menu/main-menu.component.d.ts +1 -1
  56. package/dist/ngx/lib/components/rtsee-messenger/message/components/message-time-and-status/message-time-and-status.component.d.ts +1 -1
  57. package/dist/ngx/lib/components/rtsee-messenger/message/message.component.d.ts +1 -1
  58. package/dist/ngx/lib/components/rtsee-messenger/message-widgets/call-widget/call-widget.component.d.ts +1 -1
  59. package/dist/ngx/lib/components/rtsee-messenger/messages-list/messages-list.component.d.ts +1 -1
  60. package/dist/ngx/lib/components/rtsee-messenger/messenger/messenger.component.d.ts +1 -1
  61. package/dist/ngx/lib/components/rtsee-messenger/messenger-header/messenger-header.component.d.ts +1 -1
  62. package/dist/ngx/lib/components/rtsee-messenger/profile/profile.component.d.ts +1 -1
  63. package/dist/ngx/lib/components/rtsee-peer/rtsee-peer.component.d.ts +1 -1
  64. package/dist/ngx/lib/components/rtsee-peers-list/rtsee-peers-list.component.d.ts +1 -1
  65. package/dist/ngx/lib/components/rtsee-settings/rtsee-settings.component.d.ts +1 -1
  66. package/dist/ngx/lib/components/rtsee-soundbar/rtsee-soundbar.component.d.ts +1 -1
  67. package/dist/ngx/lib/directives/shave.directive.d.ts +1 -1
  68. package/dist/ngx/lib/directives/widget.directive.d.ts +1 -1
  69. package/dist/ngx/package.json +13 -6
  70. package/package.json +30 -38
  71. package/dist/ngx/bundles/rtsee-ngx.umd.js +0 -1208
  72. package/dist/ngx/bundles/rtsee-ngx.umd.js.map +0 -1
  73. package/dist/ngx/esm2015/lib/common/components/preloader/preloader.component.js +0 -34
  74. package/dist/ngx/esm2015/lib/components/rtsee/rtsee-controls/rtsee-controls.component.js +0 -27
  75. package/dist/ngx/esm2015/lib/components/rtsee/rtsee.component.js +0 -33
  76. package/dist/ngx/esm2015/lib/components/rtsee-container/rtsee-container.component.js +0 -14
  77. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/event-thumbnail/event-thumbnail.component.js +0 -73
  78. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.js +0 -14
  79. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.js +0 -32
  80. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-session/rtsee-events-dashboard-session.component.js +0 -22
  81. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.js +0 -18
  82. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat/chat.component.js +0 -20
  83. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat-input/chat-input.component.js +0 -37
  84. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.js +0 -27
  85. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chats-list/chats-list.component.js +0 -23
  86. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/components/contacts-multiselect/contacts-multiselect.component.js +0 -20
  87. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/components/manage-chat/manage-chat.component.js +0 -23
  88. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/components/search/search.component.js +0 -34
  89. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/main-menu.component.js +0 -35
  90. package/dist/ngx/esm2015/lib/components/rtsee-messenger/message/components/message-time-and-status/message-time-and-status.component.js +0 -24
  91. package/dist/ngx/esm2015/lib/components/rtsee-messenger/message/message.component.js +0 -53
  92. package/dist/ngx/esm2015/lib/components/rtsee-messenger/message-widgets/call-widget/call-widget.component.js +0 -37
  93. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messages-list/messages-list.component.js +0 -69
  94. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messenger/messenger.component.js +0 -32
  95. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messenger-header/messenger-header.component.js +0 -33
  96. package/dist/ngx/esm2015/lib/components/rtsee-messenger/profile/profile.component.js +0 -28
  97. package/dist/ngx/esm2015/lib/components/rtsee-peer/rtsee-peer.component.js +0 -35
  98. package/dist/ngx/esm2015/lib/components/rtsee-peers-list/rtsee-peers-list.component.js +0 -15
  99. package/dist/ngx/esm2015/lib/components/rtsee-settings/rtsee-settings.component.js +0 -42
  100. package/dist/ngx/esm2015/lib/components/rtsee-soundbar/rtsee-soundbar.component.js +0 -58
  101. package/dist/ngx/esm2015/lib/directives/shave.directive.js +0 -22
  102. package/dist/ngx/esm2015/lib/directives/widget.directive.js +0 -16
  103. package/dist/ngx/esm2015/lib/ngx.module.js +0 -143
  104. package/dist/ngx/esm2015/lib/ngx.service.js +0 -16
  105. package/dist/ngx/esm2015/lib/services/default-images.service.js +0 -16
  106. package/dist/ngx/esm2015/lib/services/events-widgets.service.js +0 -25
  107. package/dist/ngx/esm2015/lib/services/message-widgets.service.js +0 -28
  108. package/dist/ngx/esm2015/lib/services/time-format-helper.service.js +0 -92
  109. package/dist/ngx/fesm2015/rtsee-ngx.js +0 -1121
  110. package/dist/ngx/fesm2015/rtsee-ngx.js.map +0 -1
  111. /package/dist/ngx/{esm2015/lib/components/rtsee-messenger/main-menu/components/models/MainMenuState.js → esm2022/lib/components/rtsee-messenger/main-menu/components/models/MainMenuState.mjs} +0 -0
  112. /package/dist/ngx/{esm2015/public-api.js → esm2022/public-api.mjs} +0 -0
  113. /package/dist/ngx/{esm2015/rtsee-ngx.js → esm2022/rtsee-ngx.mjs} +0 -0
  114. /package/dist/ngx/{rtsee-ngx.d.ts → index.d.ts} +0 -0
@@ -1,28 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { CallWidgetComponent } from '../components/rtsee-messenger/message-widgets/call-widget/call-widget.component';
3
- import * as i0 from "@angular/core";
4
- export class MessageWidgetsService {
5
- constructor() {
6
- this.widgetsMap = [
7
- { name: 'rtsee-call', component: CallWidgetComponent },
8
- ];
9
- }
10
- getWidgetComponentByName(name) {
11
- /* eslint-disable */
12
- const mapping = this.widgetsMap.find((e) => e.name === name);
13
- if (!mapping) {
14
- return null;
15
- }
16
- return mapping.component;
17
- /* eslint-enable */
18
- }
19
- }
20
- MessageWidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageWidgetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
- MessageWidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageWidgetsService, providedIn: 'root' });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageWidgetsService, decorators: [{
23
- type: Injectable,
24
- args: [{
25
- providedIn: 'root',
26
- }]
27
- }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS13aWRnZXRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9tZXNzYWdlLXdpZGdldHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlGQUFpRixDQUFDOztBQVV0SCxNQUFNLE9BQU8scUJBQXFCO0lBSGxDO1FBSUUsZUFBVSxHQUFxQjtZQUM3QixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFO1NBQ3ZELENBQUM7S0FXSDtJQVRDLHdCQUF3QixDQUFDLElBQVk7UUFDbkMsb0JBQW9CO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3pCLG1CQUFtQjtJQUNyQixDQUFDOztrSEFiVSxxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWxsV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWVzc2FnZS13aWRnZXRzL2NhbGwtd2lkZ2V0L2NhbGwtd2lkZ2V0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lc3NhZ2VXaWRnZXQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbXBvbmVudDogYW55O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVdpZGdldHNTZXJ2aWNlIHtcbiAgd2lkZ2V0c01hcDogSU1lc3NhZ2VXaWRnZXRbXSA9IFtcbiAgICB7IG5hbWU6ICdydHNlZS1jYWxsJywgY29tcG9uZW50OiBDYWxsV2lkZ2V0Q29tcG9uZW50IH0sXG4gIF07XG5cbiAgZ2V0V2lkZ2V0Q29tcG9uZW50QnlOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgY29uc3QgbWFwcGluZyA9IHRoaXMud2lkZ2V0c01hcC5maW5kKChlKSA9PiBlLm5hbWUgPT09IG5hbWUpO1xuICAgIGlmICghbWFwcGluZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBtYXBwaW5nLmNvbXBvbmVudDtcbiAgICAvKiBlc2xpbnQtZW5hYmxlICovXG4gIH1cbn1cbiJdfQ==
@@ -1,92 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as dayjs from 'dayjs';
3
- import * as relativeTime from 'dayjs/plugin/relativeTime';
4
- import * as i0 from "@angular/core";
5
- dayjs.extend(relativeTime);
6
- export class TimeFormatHelperService {
7
- toAgo(time) {
8
- /* eslint-disable */
9
- return dayjs(time).fromNow();
10
- /* eslint-enable */
11
- }
12
- toDayOfWeek(time) {
13
- /* eslint-disable */
14
- return dayjs(time).format('ddd');
15
- /* eslint-enable */
16
- }
17
- toTime(time) {
18
- /* eslint-disable */
19
- return dayjs(time).format('HH:mm');
20
- /* eslint-enable */
21
- }
22
- toDate(time) {
23
- /* eslint-disable */
24
- return dayjs(time).format('D MMMM');
25
- /* eslint-enable */
26
- }
27
- toDateNumeral(time) {
28
- /* eslint-disable */
29
- return dayjs(time).format('DD.MM');
30
- /* eslint-enable */
31
- }
32
- toDateNumeralWithYear(time) {
33
- /* eslint-disable */
34
- return dayjs(time).format('DD.MM.YY');
35
- /* eslint-enable */
36
- }
37
- toDateWithYear(time) {
38
- /* eslint-disable */
39
- return dayjs(time).format('MMMM D, YYYY ');
40
- /* eslint-enable */
41
- }
42
- formatDate(time) {
43
- const today = new Date();
44
- const dayMs = 1000 * 60 * 60 * 24;
45
- const twoDays = dayMs * 2;
46
- if (!time) {
47
- return '';
48
- }
49
- if (today.getTime() - time.getTime() < dayMs &&
50
- today.getDay() === time.getDay()) {
51
- return 'Today';
52
- }
53
- if (today.getTime() - time.getTime() < twoDays &&
54
- today.getTime() - time.getTime() > dayMs &&
55
- today.getDay() !== time.getDay()) {
56
- return 'Yesterday';
57
- }
58
- if (today.getFullYear() === time.getFullYear()) {
59
- return this.toDate(time);
60
- }
61
- return this.toDateWithYear(time);
62
- }
63
- formatTimeOrDate(time) {
64
- if (!time) {
65
- return '';
66
- }
67
- const today = new Date();
68
- const dayMs = 1000 * 60 * 60 * 24;
69
- if (today.getTime() - time.getTime() < dayMs &&
70
- today.getDay() === time.getDay()) {
71
- return this.toTime(time);
72
- }
73
- if (today.getTime() - time.getTime() > dayMs &&
74
- today.getTime() - time.getTime() < dayMs * 7) {
75
- return this.toDayOfWeek(time);
76
- }
77
- if (today.getTime() - time.getTime() > dayMs * 7 &&
78
- today.getFullYear() === time.getFullYear()) {
79
- return this.toDateNumeral(time);
80
- }
81
- return this.toDateNumeralWithYear(time);
82
- }
83
- }
84
- TimeFormatHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: TimeFormatHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
85
- TimeFormatHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: TimeFormatHelperService, providedIn: 'root' });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: TimeFormatHelperService, decorators: [{
87
- type: Injectable,
88
- args: [{
89
- providedIn: 'root',
90
- }]
91
- }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1mb3JtYXQtaGVscGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9zZXJ2aWNlcy90aW1lLWZvcm1hdC1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sS0FBSyxZQUFZLE1BQU0sMkJBQTJCLENBQUM7O0FBQzFELEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFLM0IsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxLQUFLLENBQUMsSUFBVTtRQUNkLG9CQUFvQjtRQUNwQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQVksQ0FBQztRQUN2QyxtQkFBbUI7SUFDckIsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFVO1FBQ3BCLG9CQUFvQjtRQUNwQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsbUJBQW1CO0lBQ3JCLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBVTtRQUNmLG9CQUFvQjtRQUNwQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFXLENBQUM7UUFDN0MsbUJBQW1CO0lBQ3JCLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBVTtRQUNmLG9CQUFvQjtRQUNwQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFXLENBQUM7UUFDOUMsbUJBQW1CO0lBQ3JCLENBQUM7SUFDRCxhQUFhLENBQUMsSUFBVTtRQUN0QixvQkFBb0I7UUFDcEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE9B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cEdVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0ICogYXMgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0ICogYXMgcmVsYXRpdmVUaW1lIGZyb20gJ2RheWpzL3BsdWdpbi9yZWxhdGl2ZVRpbWUnO1xuZGF5anMuZXh0ZW5kKHJlbGF0aXZlVGltZSk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lRm9ybWF0SGVscGVyU2VydmljZSB7XG4gIHRvQWdvKHRpbWU6IERhdGUpOiBzdHJpbmcge1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgcmV0dXJuIGRheWpzKHRpbWUpLmZyb21Ob3coKSBhcyBzdHJpbmc7XG4gICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICB9XG4gIHRvRGF5T2ZXZWVrKHRpbWU6IERhdGUpOiBzdHJpbmcge1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgcmV0dXJuIGRheWpzKHRpbWUpLmZvcm1hdCgnZGRkJyk7XG4gICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICB9XG4gIHRvVGltZSh0aW1lOiBEYXRlKTogc3RyaW5nIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHJldHVybiBkYXlqcyh0aW1lKS5mb3JtYXQoJ0hIOm1tJykgYXMgc3RyaW5nO1xuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbiAgfVxuICB0b0RhdGUodGltZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICByZXR1cm4gZGF5anModGltZSkuZm9ybWF0KCdEIE1NTU0nKSBhcyBzdHJpbmc7XG4gICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICB9XG4gIHRvRGF0ZU51bWVyYWwodGltZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICByZXR1cm4gZGF5anModGltZSkuZm9ybWF0KCdERC5NTScpO1xuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbiAgfVxuXG4gIHRvRGF0ZU51bWVyYWxXaXRoWWVhcih0aW1lOiBEYXRlKTogc3RyaW5nIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHJldHVybiBkYXlqcyh0aW1lKS5mb3JtYXQoJ0RELk1NLllZJyk7XG4gICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICB9XG5cbiAgdG9EYXRlV2l0aFllYXIodGltZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICByZXR1cm4gZGF5anModGltZSkuZm9ybWF0KCdNTU1NIEQsIFlZWVkgJykgYXMgc3RyaW5nO1xuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbiAgfVxuXG4gIGZvcm1hdERhdGUodGltZTogRGF0ZSkge1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBkYXlNcyA9IDEwMDAgKiA2MCAqIDYwICogMjQ7XG4gICAgY29uc3QgdHdvRGF5cyA9IGRheU1zICogMjtcblxuICAgIGlmICghdGltZSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRvZGF5LmdldFRpbWUoKSAtIHRpbWUuZ2V0VGltZSgpIDwgZGF5TXMgJiZcbiAgICAgIHRvZGF5LmdldERheSgpID09PSB0aW1lLmdldERheSgpXG4gICAgKSB7XG4gICAgICByZXR1cm4gJ1RvZGF5JztcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0b2RheS5nZXRUaW1lKCkgLSB0aW1lLmdldFRpbWUoKSA8IHR3b0RheXMgJiZcbiAgICAgIHRvZGF5LmdldFRpbWUoKSAtIHRpbWUuZ2V0VGltZSgpID4gZGF5TXMgJiZcbiAgICAgIHRvZGF5LmdldERheSgpICE9PSB0aW1lLmdldERheSgpXG4gICAgKSB7XG4gICAgICByZXR1cm4gJ1llc3RlcmRheSc7XG4gICAgfVxuXG4gICAgaWYgKHRvZGF5LmdldEZ1bGxZZWFyKCkgPT09IHRpbWUuZ2V0RnVsbFllYXIoKSkge1xuICAgICAgcmV0dXJuIHRoaXMudG9EYXRlKHRpbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRvRGF0ZVdpdGhZZWFyKHRpbWUpO1xuICB9XG5cbiAgZm9ybWF0VGltZU9yRGF0ZSh0aW1lOiBEYXRlKSB7XG4gICAgaWYgKCF0aW1lKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGRheU1zID0gMTAwMCAqIDYwICogNjAgKiAyNDtcblxuICAgIGlmIChcbiAgICAgIHRvZGF5LmdldFRpbWUoKSAtIHRpbWUuZ2V0VGltZSgpIDwgZGF5TXMgJiZcbiAgICAgIHRvZGF5LmdldERheSgpID09PSB0aW1lLmdldERheSgpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy50b1RpbWUodGltZSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdG9kYXkuZ2V0VGltZSgpIC0gdGltZS5nZXRUaW1lKCkgPiBkYXlNcyAmJlxuICAgICAgdG9kYXkuZ2V0VGltZSgpIC0gdGltZS5nZXRUaW1lKCkgPCBkYXlNcyAqIDdcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLnRvRGF5T2ZXZWVrKHRpbWUpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRvZGF5LmdldFRpbWUoKSAtIHRpbWUuZ2V0VGltZSgpID4gZGF5TXMgKiA3ICYmXG4gICAgICB0b2RheS5nZXRGdWxsWWVhcigpID09PSB0aW1lLmdldEZ1bGxZZWFyKClcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLnRvRGF0ZU51bWVyYWwodGltZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudG9EYXRlTnVtZXJhbFdpdGhZZWFyKHRpbWUpO1xuICB9XG59XG4iXX0=