@cometchat/chat-uikit-angular 4.0.0-beta.1.4 → 4.0.0-beta.1.5

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 (131) hide show
  1. package/Calls/CallingExtension.d.ts +4 -3
  2. package/Calls/CallingExtensionDecorator.d.ts +0 -1
  3. package/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.d.ts +4 -3
  4. package/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.d.ts +4 -3
  5. package/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.d.ts +14 -6
  6. package/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.d.ts +0 -1
  7. package/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.d.ts +5 -5
  8. package/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.d.ts +6 -5
  9. package/CometChatContacts/cometchat-contacts/cometchat-contacts.component.d.ts +65 -0
  10. package/CometChatContacts/cometchat-contacts.module.d.ts +12 -0
  11. package/CometChatConversations/cometchat-conversations/cometchat-conversations.component.d.ts +21 -15
  12. package/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.d.ts +13 -4
  13. package/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.d.ts +2 -1
  14. package/CometChatDetails/cometchat-details/cometchat-details.component.d.ts +7 -7
  15. package/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.d.ts +14 -12
  16. package/CometChatGroups/cometchat-groups/cometchat-groups.component.d.ts +12 -6
  17. package/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.d.ts +6 -4
  18. package/CometChatList/cometchat-list.component.d.ts +2 -1
  19. package/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.d.ts +2 -2
  20. package/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.d.ts +23 -6
  21. package/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.d.ts +1 -1
  22. package/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.d.ts +95 -0
  23. package/CometChatMessageInformation/cometchat-message-information.module.d.ts +10 -0
  24. package/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.d.ts +45 -26
  25. package/CometChatMessageList/cometchat-message-list.module.d.ts +3 -1
  26. package/CometChatMessages/cometchat-messages/cometchat-messages.component.d.ts +5 -3
  27. package/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.d.ts +0 -1
  28. package/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.d.ts +3 -3
  29. package/CometChatUsers/cometchat-users/cometchat-users.component.d.ts +11 -5
  30. package/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.d.ts +2 -2
  31. package/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.d.ts +4 -8
  32. package/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.d.ts +1 -4
  33. package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.d.ts +4 -8
  34. package/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.d.ts +1 -4
  35. package/Extensions/ImageModeration/ImageModerationExtension.d.ts +4 -4
  36. package/Extensions/LinkPreviewExtension/LinkPreviewExtension.d.ts +4 -4
  37. package/Extensions/MessageTranslation/MessageTranslationExtension.d.ts +4 -8
  38. package/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.d.ts +1 -4
  39. package/Extensions/PollsExtension/PollsExtension.d.ts +4 -4
  40. package/Extensions/PollsExtension/PollsExtensionDecorator.d.ts +0 -1
  41. package/Extensions/Reactions/ReactionExtension.d.ts +4 -4
  42. package/Extensions/Reactions/ReactionExtensionDecorator.d.ts +0 -1
  43. package/Extensions/SmartReplies/SmartRepliesExtension.d.ts +4 -8
  44. package/Extensions/SmartReplies/SmartRepliesExtensionDecorator.d.ts +2 -2
  45. package/Extensions/Stickers/StickersExtension.d.ts +4 -8
  46. package/Extensions/Stickers/StickersExtensionDecorator.d.ts +2 -2
  47. package/Extensions/TextModerator/TextModeratorExtension.d.ts +4 -3
  48. package/Extensions/TextModerator/TextModeratorExtensionDecorator.d.ts +0 -1
  49. package/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.d.ts +4 -4
  50. package/Shared/CometChatUIkit/CometChatUIKit.d.ts +10 -6
  51. package/Shared/Framework/DataSource.d.ts +0 -1
  52. package/Shared/Framework/DataSourceDecorator.d.ts +0 -1
  53. package/Shared/Utils/ComeChatException.d.ts +1 -2
  54. package/Shared/Utils/MessageUtils.d.ts +2 -1
  55. package/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.d.ts +38 -9
  56. package/Shared/Views/CometChatTabs/cometchat-tabs.module.d.ts +1 -5
  57. package/esm2020/Calls/CallingExtension.mjs +7 -4
  58. package/esm2020/Calls/CallingExtensionDecorator.mjs +4 -4
  59. package/esm2020/Calls/CometChatCallButtons/cometchat-call-buttons/cometchat-call-buttons.component.mjs +58 -21
  60. package/esm2020/Calls/CometChatIncomingCall/cometchat-incoming-call/cometchat-incoming-call.component.mjs +48 -17
  61. package/esm2020/Calls/CometChatOngoingCall/cometchat-ongoing-call/cometchat-ongoing-call.component.mjs +110 -9
  62. package/esm2020/Calls/CometChatOutgoingCall/cometchat-outgoing-call/cometchat-outgoing-call.component.mjs +9 -7
  63. package/esm2020/CometChatAddMembers/cometchat-add-members/cometchat-add-members.component.mjs +9 -6
  64. package/esm2020/CometChatBannedMembers/cometchat-banned-members/cometchat-banned-members.component.mjs +12 -7
  65. package/esm2020/CometChatContacts/cometchat-contacts/cometchat-contacts.component.mjs +273 -0
  66. package/esm2020/CometChatContacts/cometchat-contacts.module.mjs +23 -0
  67. package/esm2020/CometChatConversations/cometchat-conversations/cometchat-conversations.component.mjs +122 -65
  68. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages/cometchat-conversations-with-messages.component.mjs +105 -17
  69. package/esm2020/CometChatConversationsWithMessages/cometchat-conversations-with-messages.module.mjs +6 -2
  70. package/esm2020/CometChatDetails/cometchat-details/cometchat-details.component.mjs +13 -11
  71. package/esm2020/CometChatGroupMembers/cometchat-group-members/cometchat-group-members.component.mjs +45 -46
  72. package/esm2020/CometChatGroups/cometchat-groups/cometchat-groups.component.mjs +69 -28
  73. package/esm2020/CometChatGroupsWithMessages/cometchat-groups-with-messages/cometchat-groups-with-messages.component.mjs +60 -21
  74. package/esm2020/CometChatList/cometchat-list.component.mjs +8 -9
  75. package/esm2020/CometChatMessageBubble/cometchat-message-bubble/cometchat-message-bubble.component.mjs +4 -5
  76. package/esm2020/CometChatMessageComposer/cometchat-message-composer/cometchat-message-composer.component.mjs +200 -30
  77. package/esm2020/CometChatMessageHeader/cometchat-message-header/cometchat-message-header.component.mjs +4 -5
  78. package/esm2020/CometChatMessageInformation/cometchat-message-information/cometchat-message-information.component.mjs +288 -0
  79. package/esm2020/CometChatMessageInformation/cometchat-message-information.module.mjs +28 -0
  80. package/esm2020/CometChatMessageList/cometchat-message-list/cometchat-message-list.component.mjs +401 -185
  81. package/esm2020/CometChatMessageList/cometchat-message-list.module.mjs +12 -4
  82. package/esm2020/CometChatMessages/cometchat-messages/cometchat-messages.component.mjs +28 -15
  83. package/esm2020/CometChatThreadedMessages/cometchat-threaded-messages/cometchat-threaded-messages.component.mjs +3 -4
  84. package/esm2020/CometChatTransferOwnership/cometchat-transfer-ownership/cometchat-transfer-ownership.component.mjs +14 -15
  85. package/esm2020/CometChatUsers/cometchat-users/cometchat-users.component.mjs +72 -45
  86. package/esm2020/CometChatUsersWithMessages/cometchat-users-with-messages/cometchat-users-with-messages.component.mjs +21 -9
  87. package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtension.mjs +7 -6
  88. package/esm2020/Extensions/CollaborativeDocument/CollaborativeDocumentExtensionDecorator.mjs +3 -4
  89. package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtension.mjs +7 -6
  90. package/esm2020/Extensions/CollaborativeWhiteboard/CollaborativeWhiteboardExtensionDecorator.mjs +3 -4
  91. package/esm2020/Extensions/ImageModeration/ImageModerationExtension.mjs +7 -5
  92. package/esm2020/Extensions/LinkPreviewExtension/LinkPreviewExtension.mjs +7 -5
  93. package/esm2020/Extensions/MessageTranslation/MessageTranslationExtension.mjs +7 -6
  94. package/esm2020/Extensions/MessageTranslation/MessageTranslationExtensionDecorator.mjs +2 -4
  95. package/esm2020/Extensions/PollsExtension/PollsExtension.mjs +7 -5
  96. package/esm2020/Extensions/PollsExtension/PollsExtensionDecorator.mjs +1 -1
  97. package/esm2020/Extensions/Reactions/ReactionExtension.mjs +7 -5
  98. package/esm2020/Extensions/Reactions/ReactionExtensionDecorator.mjs +3 -2
  99. package/esm2020/Extensions/SmartReplies/SmartRepliesExtension.mjs +7 -6
  100. package/esm2020/Extensions/SmartReplies/SmartRepliesExtensionDecorator.mjs +5 -7
  101. package/esm2020/Extensions/Stickers/StickersExtension.mjs +7 -10
  102. package/esm2020/Extensions/Stickers/StickersExtensionDecorator.mjs +5 -7
  103. package/esm2020/Extensions/TextModerator/TextModeratorExtension.mjs +16 -4
  104. package/esm2020/Extensions/TextModerator/TextModeratorExtensionDecorator.mjs +1 -1
  105. package/esm2020/Extensions/ThumbnailGeneration/ThumbnailGenerationExtension.mjs +7 -5
  106. package/esm2020/Shared/CometChatUIkit/CometChatUIKit.mjs +66 -32
  107. package/esm2020/Shared/Framework/DataSource.mjs +1 -1
  108. package/esm2020/Shared/Framework/DataSourceDecorator.mjs +1 -1
  109. package/esm2020/Shared/Utils/ComeChatException.mjs +2 -2
  110. package/esm2020/Shared/Utils/MessageUtils.mjs +36 -6
  111. package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs/cometchat-tabs.component.mjs +61 -25
  112. package/esm2020/Shared/Views/CometChatTabs/cometchat-tabs.module.mjs +2 -18
  113. package/esm2020/public-api.mjs +8 -5
  114. package/fesm2015/cometchat-chat-uikit-angular.mjs +3658 -3185
  115. package/fesm2015/cometchat-chat-uikit-angular.mjs.map +1 -1
  116. package/fesm2020/cometchat-chat-uikit-angular.mjs +3639 -3164
  117. package/fesm2020/cometchat-chat-uikit-angular.mjs.map +1 -1
  118. package/package.json +5 -5
  119. package/public-api.d.ts +7 -4
  120. package/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.d.ts +0 -139
  121. package/Calls/CometChatCallDetails/cometchat-call-details.module.d.ts +0 -10
  122. package/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.d.ts +0 -125
  123. package/Calls/CometChatCallHistory/cometchat-call-history.module.d.ts +0 -10
  124. package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.d.ts +0 -59
  125. package/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.d.ts +0 -12
  126. package/esm2020/Calls/CometChatCallDetails/cometchat-call-details/cometchat-call-details.component.mjs +0 -452
  127. package/esm2020/Calls/CometChatCallDetails/cometchat-call-details.module.mjs +0 -31
  128. package/esm2020/Calls/CometChatCallHistory/cometchat-call-history/cometchat-call-history.component.mjs +0 -397
  129. package/esm2020/Calls/CometChatCallHistory/cometchat-call-history.module.mjs +0 -28
  130. package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details/cometchat-call-history-with-details.component.mjs +0 -143
  131. package/esm2020/Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module.mjs +0 -39
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectorRef, OnInit, TemplateRef } from '@angular/core';
2
- import { CometChat } from '@cometchat-pro/chat';
2
+ import { CometChat } from '@cometchat/chat-sdk-javascript';
3
3
  import { AvatarStyle, BaseStyle, ListItemStyle } from '@cometchat/uikit-elements';
4
4
  import { Subscription } from 'rxjs';
5
5
  import { CometChatOption, SelectionMode, TitleAlignment, States } from '@cometchat/uikit-resources';
@@ -26,7 +26,7 @@ export declare class CometChatUsersComponent implements OnInit {
26
26
  title: string;
27
27
  onError: (error: CometChat.CometChatException) => void;
28
28
  emptyStateView: TemplateRef<any>;
29
- onSelect: (user: CometChat.User) => void;
29
+ onSelect: (user: CometChat.User, selected: boolean) => void;
30
30
  errorStateView: TemplateRef<any>;
31
31
  loadingIconURL: string;
32
32
  showSectionHeader: boolean;
@@ -51,6 +51,9 @@ export declare class CometChatUsersComponent implements OnInit {
51
51
  limit: number;
52
52
  userListenerId: string;
53
53
  loggedInUser: CometChat.User | null;
54
+ requestBuilder: CometChat.UsersRequest;
55
+ firstReload: boolean;
56
+ connectionListenerId: string;
54
57
  /**
55
58
  * Events
56
59
  */
@@ -59,6 +62,8 @@ export declare class CometChatUsersComponent implements OnInit {
59
62
  onScrolledToBottom: any;
60
63
  constructor(ref: ChangeDetectorRef, themeService: CometChatThemeService);
61
64
  ngOnInit(): void;
65
+ onUserSelected(user: CometChat.User, event: any): void;
66
+ fetchNewUsers(): void;
62
67
  subscribeToEvents(): void;
63
68
  unsubscribeToEvents(): void;
64
69
  ngOnDestroy(): void;
@@ -79,11 +84,12 @@ export declare class CometChatUsersComponent implements OnInit {
79
84
  * @param {CometChat.User} user
80
85
  */
81
86
  updateUser: (user: CometChat.User) => void;
87
+ attachConnectionListeners(): void;
82
88
  attachListeners(): void;
83
89
  removeListener(): void;
84
- addMembersToList: (user: CometChat.User) => void;
85
- fetchNextUsersList: () => void;
86
- getRequestBuilder(): CometChat.UsersRequest;
90
+ addMembersToList: (user: CometChat.User, event: any) => void;
91
+ fetchNextUsersList: (state?: States) => void;
92
+ setRequestBuilder(): void;
87
93
  /**
88
94
  * @param {string} key
89
95
  */
@@ -1,5 +1,4 @@
1
1
  import { OnInit, OnChanges, SimpleChanges, ChangeDetectorRef, ElementRef } from "@angular/core";
2
- import { CometChat } from "@cometchat-pro/chat";
3
2
  import { CometChatMessagesComponent } from "../../CometChatMessages/cometchat-messages/cometchat-messages.component";
4
3
  import { CometChatConversationsComponent } from "../../CometChatConversations/cometchat-conversations/cometchat-conversations.component";
5
4
  import '@cometchat/uikit-elements';
@@ -41,6 +40,7 @@ export declare class CometChatUsersWithMessagesComponent implements OnInit, OnCh
41
40
  */
42
41
  ccUserBlocked: Subscription;
43
42
  ccUserUnBlocked: Subscription;
43
+ sideBarStyle: any;
44
44
  constructor(elementRef: ElementRef, ref: ChangeDetectorRef, themeService: CometChatThemeService);
45
45
  ngAfterViewInit(): void;
46
46
  updateBackdropHeight(): void;
@@ -56,7 +56,7 @@ export declare class CometChatUsersWithMessagesComponent implements OnInit, OnCh
56
56
  background: string | undefined;
57
57
  height: string | undefined;
58
58
  width: string;
59
- border: string | undefined;
59
+ border: string;
60
60
  borderRadius: string | undefined;
61
61
  };
62
62
  usersWrapperStyles: () => {
@@ -1,9 +1,5 @@
1
- import { CollaborativeDocumentConfiguration } from "@cometchat/uikit-shared";
2
- import { ExtensionsDataSource } from "../../Shared/Framework/ExtensionDataSource";
3
- export declare class CollaborativeDocumentExtension implements ExtensionsDataSource {
4
- configuration?: CollaborativeDocumentConfiguration;
5
- constructor({ configuration }?: {
6
- configuration?: CollaborativeDocumentConfiguration;
7
- });
8
- enable(): void;
1
+ import { ExtensionsDataSource } from "@cometchat/uikit-shared";
2
+ export declare class CollaborativeDocumentExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
9
5
  }
@@ -1,11 +1,8 @@
1
- import { CometChat } from "@cometchat-pro/chat";
2
1
  import { CometChatTheme, CometChatMessageTemplate } from "@cometchat/uikit-resources";
3
- import { CollaborativeDocumentConfiguration } from "@cometchat/uikit-shared";
4
2
  import { DataSource } from "../../Shared/Framework/DataSource";
5
3
  import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator";
6
4
  export declare class CollaborativeDocumentExtensionDecorator extends DataSourceDecorator {
7
- private configuration;
8
- constructor(dataSource: DataSource, configuration?: CollaborativeDocumentConfiguration);
5
+ constructor(dataSource: DataSource);
9
6
  getAllMessageTypes(): string[];
10
7
  getId(): string;
11
8
  getAllMessageCategories(): string[];
@@ -1,9 +1,5 @@
1
- import { CollaborativeWhiteboardConfiguration } from "@cometchat/uikit-shared";
2
- import { ExtensionsDataSource } from "../../Shared/Framework/ExtensionDataSource";
3
- export declare class CollaborativeWhiteBoardExtension implements ExtensionsDataSource {
4
- configuration?: CollaborativeWhiteboardConfiguration;
5
- constructor({ configuration }?: {
6
- configuration?: CollaborativeWhiteboardConfiguration;
7
- });
8
- enable(): void;
1
+ import { ExtensionsDataSource } from "@cometchat/uikit-shared";
2
+ export declare class CollaborativeWhiteBoardExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
9
5
  }
@@ -1,11 +1,8 @@
1
- import { CometChat } from "@cometchat-pro/chat";
2
1
  import { CometChatTheme, CometChatMessageTemplate } from "@cometchat/uikit-resources";
3
- import { CollaborativeWhiteboardConfiguration } from "@cometchat/uikit-shared";
4
2
  import { DataSource } from "../../Shared/Framework/DataSource";
5
3
  import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator";
6
4
  export declare class CollaborativeWhiteBoardExtensionDecorator extends DataSourceDecorator {
7
- private configuration;
8
- constructor(dataSource: DataSource, configuration?: CollaborativeWhiteboardConfiguration);
5
+ constructor(dataSource: DataSource);
9
6
  getAllMessageTypes(): string[];
10
7
  getId(): string;
11
8
  getAllMessageCategories(): string[];
@@ -1,5 +1,5 @@
1
- import { ExtensionsDataSource } from "../../Shared/Framework/ExtensionDataSource";
2
- export declare class ImageModerationExtension implements ExtensionsDataSource {
3
- constructor();
4
- enable(): void;
1
+ import { ExtensionsDataSource } from "@cometchat/uikit-shared";
2
+ export declare class ImageModerationExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
5
5
  }
@@ -1,5 +1,5 @@
1
- import { ExtensionsDataSource } from "../../Shared/Framework/ExtensionDataSource";
2
- export declare class LinkPreviewExtension implements ExtensionsDataSource {
3
- constructor();
4
- enable(): void;
1
+ import { ExtensionsDataSource } from '@cometchat/uikit-shared';
2
+ export declare class LinkPreviewExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
5
5
  }
@@ -1,9 +1,5 @@
1
- import { ExtensionsDataSource } from "../../Shared/Framework/ExtensionDataSource";
2
- import { MessageTranslationConfiguration } from '@cometchat/uikit-shared';
3
- export declare class MessageTranslationExtension implements ExtensionsDataSource {
4
- private configuration?;
5
- constructor({ configuration }?: {
6
- configuration?: MessageTranslationConfiguration;
7
- });
8
- enable(): void;
1
+ import { ExtensionsDataSource } from "@cometchat/uikit-shared";
2
+ export declare class MessageTranslationExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
9
5
  }
@@ -1,11 +1,8 @@
1
- import { CometChat } from "@cometchat-pro/chat";
2
1
  import { CometChatTheme, CometChatMessageOption } from "@cometchat/uikit-resources";
3
2
  import { DataSource } from "../../Shared/Framework/DataSource";
4
3
  import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator";
5
- import { MessageTranslationConfiguration } from "@cometchat/uikit-shared";
6
4
  export declare class MessageTranslationExtensionDecorator extends DataSourceDecorator {
7
- configuration?: MessageTranslationConfiguration;
8
- constructor(dataSource: DataSource, configuration?: MessageTranslationConfiguration);
5
+ constructor(dataSource: DataSource);
9
6
  getTextMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group): CometChatMessageOption[];
10
7
  checkIfOptionExist(template: CometChatMessageOption[], id: string): boolean;
11
8
  getId(): string;
@@ -1,5 +1,5 @@
1
- import { ExtensionsDataSource } from "../../Shared/Framework/ExtensionDataSource";
2
- export declare class PollsExtension implements ExtensionsDataSource {
3
- constructor();
4
- enable(): void;
1
+ import { ExtensionsDataSource } from '@cometchat/uikit-shared';
2
+ export declare class PollsExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
5
5
  }
@@ -1,4 +1,3 @@
1
- import { CometChat } from "@cometchat-pro/chat";
2
1
  import { CometChatMessageTemplate, CometChatTheme } from "@cometchat/uikit-resources";
3
2
  import { DataSource } from "../../Shared/Framework/DataSource";
4
3
  import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator";
@@ -1,5 +1,5 @@
1
- import { ExtensionsDataSource } from "../../Shared/Framework/ExtensionDataSource";
2
- export declare class ReactionExtension implements ExtensionsDataSource {
3
- constructor();
4
- enable(): void;
1
+ import { ExtensionsDataSource } from '@cometchat/uikit-shared';
2
+ export declare class ReactionExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
5
5
  }
@@ -1,4 +1,3 @@
1
- import { CometChat } from "@cometchat-pro/chat";
2
1
  import { CometChatTheme, CometChatMessageOption } from "@cometchat/uikit-resources";
3
2
  import { DataSource } from "../../Shared/Framework/DataSource";
4
3
  import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator";
@@ -1,9 +1,5 @@
1
- import { SmartRepliesConfiguration } from "@cometchat/uikit-shared";
2
- import { ExtensionsDataSource } from "../../Shared/Framework/ExtensionDataSource";
3
- export declare class SmartReplyExtension implements ExtensionsDataSource {
4
- private configuration?;
5
- constructor({ configuration }?: {
6
- configuration?: SmartRepliesConfiguration;
7
- });
8
- enable(): void;
1
+ import { ExtensionsDataSource } from "@cometchat/uikit-shared";
2
+ export declare class SmartReplyExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
9
5
  }
@@ -1,4 +1,4 @@
1
- import { CometChat } from "@cometchat-pro/chat";
1
+ import { CometChat } from "@cometchat/chat-sdk-javascript";
2
2
  import { SmartRepliesConfiguration } from "@cometchat/uikit-shared";
3
3
  import { DataSource } from "../../Shared/Framework/DataSource";
4
4
  import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator";
@@ -9,7 +9,7 @@ export declare class SmartReplyExtensionDecorator extends DataSourceDecorator {
9
9
  private activeGroup;
10
10
  currentMessage: CometChat.BaseMessage | null;
11
11
  loggedInUser: CometChat.User | null;
12
- constructor(dataSource: DataSource, configuration?: SmartRepliesConfiguration);
12
+ constructor(dataSource: DataSource);
13
13
  sendReply: (reply: string, message: CometChat.BaseMessage, onError: ((error: CometChat.CometChatException) => void) | null | undefined, customSoundForMessages?: string, disableSoundForMessages?: boolean) => void;
14
14
  private addMessageListener;
15
15
  getId(): string;
@@ -1,9 +1,5 @@
1
- import { ExtensionsDataSource } from '../../Shared/Framework/ExtensionDataSource';
2
- import { StickersConfiguration } from '@cometchat/uikit-shared';
3
- export declare class StickersExtension implements ExtensionsDataSource {
4
- private configuration?;
5
- constructor({ configuration }?: {
6
- configuration?: StickersConfiguration;
7
- });
8
- enable(): void;
1
+ import { ExtensionsDataSource } from '@cometchat/uikit-shared';
2
+ export declare class StickersExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
9
5
  }
@@ -1,6 +1,6 @@
1
1
  import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator";
2
2
  import { CometChatMessageTemplate } from "@cometchat/uikit-resources";
3
- import { CometChat } from '@cometchat-pro/chat';
3
+ import { CometChat } from '@cometchat/chat-sdk-javascript';
4
4
  import { StickersConfiguration } from '@cometchat/uikit-shared';
5
5
  import { DataSource } from "../../Shared/Framework/DataSource";
6
6
  import { ComposerId } from "../../Shared/Utils/MessageUtils";
@@ -8,7 +8,7 @@ import { CometChatException } from "../../Shared/Utils/ComeChatException";
8
8
  export declare class StickersExtensionDecorator extends DataSourceDecorator {
9
9
  configuration?: StickersConfiguration;
10
10
  newDataScorce: DataSource;
11
- constructor(dataSource: DataSource, configuration?: StickersConfiguration);
11
+ constructor(dataSource: DataSource);
12
12
  getDataScorce(): DataSource;
13
13
  sendStickerMessage: (sticker: {
14
14
  name: string;
@@ -1,5 +1,6 @@
1
- import { ExtensionsDataSource } from "../../Shared/Framework/ExtensionDataSource";
2
- export declare class TextModeratorExtension implements ExtensionsDataSource {
3
- constructor();
1
+ import { ExtensionsDataSource } from "@cometchat/uikit-shared";
2
+ export declare class TextModeratorExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
4
5
  enable(): void;
5
6
  }
@@ -1,4 +1,3 @@
1
- import { CometChat } from "@cometchat-pro/chat";
2
1
  import { DataSource } from "../../Shared/Framework/DataSource";
3
2
  import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator";
4
3
  export declare class TextModeratorExtensionDecorator extends DataSourceDecorator {
@@ -1,5 +1,5 @@
1
- import { ExtensionsDataSource } from "../../Shared/Framework/ExtensionDataSource";
2
- export declare class ThumbnailGenerationExtension implements ExtensionsDataSource {
3
- constructor();
4
- enable(): void;
1
+ import { ExtensionsDataSource } from "@cometchat/uikit-shared";
2
+ export declare class ThumbnailGenerationExtension extends ExtensionsDataSource {
3
+ addExtension(): void;
4
+ getExtensionId(): string;
5
5
  }
@@ -1,9 +1,13 @@
1
- import { CometChat } from "@cometchat-pro/chat";
1
+ import { CometChatLocalize } from "@cometchat/uikit-resources";
2
2
  import { UIKitSettings } from '@cometchat/uikit-shared';
3
3
  import { ExtensionsDataSource } from "../Framework/ExtensionDataSource";
4
+ import { CometChatSoundManager } from '@cometchat/uikit-shared';
4
5
  export declare class CometChatUIKit {
5
- static uiKitSettings: UIKitSettings | null;
6
- static init(uiKitSettings: UIKitSettings | null): Promise<Object> | undefined;
6
+ static uiKitSettings: UIKitSettings;
7
+ static SoundManager: typeof CometChatSoundManager;
8
+ static Localize: typeof CometChatLocalize;
9
+ static getDataSource(): import("@cometchat/chat-uikit-angular").DataSource;
10
+ static init(uiKitSettings: UIKitSettings): Promise<Object> | undefined;
7
11
  static getLoggedinUser(): Promise<CometChat.User> | undefined;
8
12
  static defaultExtensions: ExtensionsDataSource[];
9
13
  static enableCalling(): void;
@@ -16,7 +20,7 @@ export declare class CometChatUIKit {
16
20
  static updateUser(user: CometChat.User): Promise<Object | undefined>;
17
21
  static logout(): Promise<Object | undefined>;
18
22
  static checkAuthSettings(): boolean;
19
- static sendCustomMessage(message: CometChat.CustomMessage): void;
20
- static sendTextMessage(message: CometChat.TextMessage): void;
21
- static sendMediaMessage(message: CometChat.MediaMessage): void;
23
+ static sendCustomMessage(message: CometChat.CustomMessage): Promise<CometChat.BaseMessage>;
24
+ static sendTextMessage(message: CometChat.TextMessage): Promise<CometChat.BaseMessage>;
25
+ static sendMediaMessage(message: CometChat.MediaMessage): Promise<CometChat.BaseMessage>;
22
26
  }
@@ -1,5 +1,4 @@
1
1
  import { CometChatMessageOption, CometChatMessageTemplate, CometChatTheme } from "@cometchat/uikit-resources";
2
- import { CometChat } from "@cometchat-pro/chat";
3
2
  import { ComposerId } from "../Utils/MessageUtils";
4
3
  export declare abstract class DataSource {
5
4
  abstract getTextMessageOptions(loggedInUser: CometChat.User, messageObject: CometChat.BaseMessage, theme: CometChatTheme, group?: CometChat.Group): Array<CometChatMessageOption>;
@@ -1,6 +1,5 @@
1
1
  import { CometChatMessageOption, CometChatMessageTemplate, CometChatTheme } from "@cometchat/uikit-resources";
2
2
  import { DataSource } from "./DataSource";
3
- import { CometChat } from "@cometchat-pro/chat";
4
3
  import { ComposerId } from "../Utils/MessageUtils";
5
4
  export declare abstract class DataSourceDecorator implements DataSource {
6
5
  dataSource: DataSource;
@@ -1,2 +1 @@
1
- import { CometChat } from "@cometchat-pro/chat";
2
- export declare function CometChatException(error: any): CometChat.CometChatException;
1
+ export declare function CometChatException(error: any): import("@cometchat/chat-sdk-javascript").CometChatException;
@@ -1,8 +1,9 @@
1
1
  import { CometChatMessageOption, MessageBubbleAlignment, CometChatMessageTemplate, CometChatMessageComposerAction, CometChatTheme } from "@cometchat/uikit-resources";
2
- import { CometChat } from "@cometchat-pro/chat";
3
2
  import { DataSource } from "../Framework/DataSource";
4
3
  export declare class MessageUtils implements DataSource {
5
4
  getEditOption(theme: CometChatTheme): CometChatMessageOption;
5
+ getMessageInfoOption(theme: CometChatTheme): CometChatMessageOption;
6
+ getMessagePrivatelyOption(theme: CometChatTheme): CometChatMessageOption;
6
7
  getDeleteOption(theme: CometChatTheme): CometChatMessageOption;
7
8
  getReplyInThreadOption(theme: CometChatTheme): CometChatMessageOption;
8
9
  getCopyOption(theme: CometChatTheme): CometChatMessageOption;
@@ -6,14 +6,22 @@ import * as i0 from "@angular/core";
6
6
  export declare class CometChatTabsComponent implements OnInit {
7
7
  private ref;
8
8
  tabAlignment: TabAlignment;
9
+ disableDragging: boolean;
9
10
  tabsStyle: BaseStyle;
10
11
  tabs: CometChatTabItem[];
12
+ keepAlive: boolean;
11
13
  activeTab: CometChatTabItem;
14
+ previousTab: CometChatTabItem;
12
15
  childView: TemplateRef<any> | null;
13
16
  constructor(ref: ChangeDetectorRef);
14
17
  openViewOnCLick: (tabItem: CometChatTabItem) => void;
15
18
  ngOnInit(): void;
19
+ ngOnChanges(): void;
16
20
  getButtonStyle(tab: CometChatTabItem): {
21
+ display?: undefined;
22
+ justifyContent?: undefined;
23
+ alignItems?: undefined;
24
+ padding: string;
17
25
  background: string | undefined;
18
26
  buttonTextFont: string | undefined;
19
27
  buttonTextColor: string | undefined;
@@ -23,31 +31,52 @@ export declare class CometChatTabsComponent implements OnInit {
23
31
  border: string | undefined;
24
32
  borderRadius: string | undefined;
25
33
  gap: string;
34
+ cursor: string;
35
+ } | {
36
+ display: string;
37
+ justifyContent: string;
38
+ alignItems: string;
26
39
  padding: string;
40
+ background: string | undefined;
41
+ buttonTextFont: string | undefined;
42
+ buttonTextColor: string | undefined;
43
+ buttonIconTint: string | undefined;
44
+ height: string | undefined;
45
+ width: string | undefined;
46
+ border: string | undefined;
47
+ borderRadius: string | undefined;
48
+ gap: string;
49
+ cursor: string;
50
+ };
51
+ showTabs(tab: CometChatTabItem): {
52
+ display: string;
27
53
  };
28
54
  getTabsStyle(): {
55
+ position: string;
29
56
  top: string;
30
57
  left: string;
31
58
  bottom?: undefined;
32
- right?: undefined;
33
59
  background: string | undefined;
60
+ border: string | undefined;
61
+ borderRadius: string | undefined;
34
62
  } | {
63
+ position: string;
35
64
  bottom: string;
36
65
  left: string;
37
66
  top?: undefined;
38
- right?: undefined;
39
- background: string | undefined;
40
- } | {
41
- top: string;
42
- right: string;
43
- left?: undefined;
44
- bottom?: undefined;
45
67
  background: string | undefined;
68
+ border: string | undefined;
69
+ borderRadius: string | undefined;
70
+ };
71
+ getWrapperStyle(): {
72
+ display: string;
73
+ justifyContent: string;
74
+ flexDirection: string;
46
75
  };
47
76
  getTabsPlacement(): {
48
77
  display: string;
49
78
  flexDirection: string;
50
79
  };
51
80
  static ɵfac: i0.ɵɵFactoryDeclaration<CometChatTabsComponent, never>;
52
- static ɵcmp: i0.ɵɵComponentDeclaration<CometChatTabsComponent, "cometchat-tabs", never, { "tabAlignment": "tabAlignment"; "tabsStyle": "tabsStyle"; "tabs": "tabs"; }, {}, never, never>;
81
+ static ɵcmp: i0.ɵɵComponentDeclaration<CometChatTabsComponent, "cometchat-tabs", never, { "tabAlignment": "tabAlignment"; "disableDragging": "disableDragging"; "tabsStyle": "tabsStyle"; "tabs": "tabs"; "keepAlive": "keepAlive"; }, {}, never, never>;
53
82
  }
@@ -1,12 +1,8 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./cometchat-tabs/cometchat-tabs.component";
3
3
  import * as i2 from "@angular/common";
4
- import * as i3 from "../../../CometChatConversationsWithMessages/cometchat-conversations-with-messages.module";
5
- import * as i4 from "../../../CometChatUsersWithMessages/cometchat-users-with-messages.module";
6
- import * as i5 from "../../../CometChatGroupsWithMessages/cometchat-groups-with-messages.module";
7
- import * as i6 from "../../../Calls/CometChatCallHistoryWithDetails/cometchat-call-history-with-details.module";
8
4
  export declare class CometChatTabs {
9
5
  static ɵfac: i0.ɵɵFactoryDeclaration<CometChatTabs, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<CometChatTabs, [typeof i1.CometChatTabsComponent], [typeof i2.CommonModule, typeof i3.CometChatConversationsWithMessages, typeof i4.CometChatUsersWithMessages, typeof i5.CometChatGroupsWithMessages, typeof i6.CometChatCallHistoryWithDetails], [typeof i1.CometChatTabsComponent]>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CometChatTabs, [typeof i1.CometChatTabsComponent], [typeof i2.CommonModule], [typeof i1.CometChatTabsComponent]>;
11
7
  static ɵinj: i0.ɵɵInjectorDeclaration<CometChatTabs>;
12
8
  }
@@ -1,11 +1,14 @@
1
1
  import { ChatConfigurator } from '../Shared/Framework/ChatConfigurator';
2
+ import { ExtensionsDataSource } from '@cometchat/uikit-shared';
2
3
  import { CallingExtensionDecorator } from './CallingExtensionDecorator';
3
- export class CallingExtension {
4
- constructor() {
4
+ export class CallingExtension extends ExtensionsDataSource {
5
+ getExtensionId() {
6
+ return '';
7
+ }
8
+ addExtension() {
5
9
  }
6
- // override enable method from ExtensionsDataSource interface
7
10
  enable() {
8
11
  ChatConfigurator.enable((dataSource) => new CallingExtensionDecorator(dataSource));
9
12
  }
10
13
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbGluZ0V4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUd4RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCO0lBQ0EsQ0FBQztJQUVELDZEQUE2RDtJQUM3RCxNQUFNO1FBQ0osZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBc0IsRUFBRSxFQUFFLENBQ2pELElBQUkseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQzFDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENoYXRDb25maWd1cmF0b3IgfSBmcm9tICcuLi9TaGFyZWQvRnJhbWV3b3JrL0NoYXRDb25maWd1cmF0b3InO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZSc7XG5pbXBvcnQgeyBFeHRlbnNpb25zRGF0YVNvdXJjZSB9IGZyb20gJy4uL1NoYXJlZC9GcmFtZXdvcmsvRXh0ZW5zaW9uRGF0YVNvdXJjZSc7XG5pbXBvcnQgeyBDYWxsaW5nRXh0ZW5zaW9uRGVjb3JhdG9yIH0gZnJvbSAnLi9DYWxsaW5nRXh0ZW5zaW9uRGVjb3JhdG9yJztcblxuZXhwb3J0IGNsYXNzIENhbGxpbmdFeHRlbnNpb24gaW1wbGVtZW50cyBFeHRlbnNpb25zRGF0YVNvdXJjZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgLy8gb3ZlcnJpZGUgZW5hYmxlIG1ldGhvZCBmcm9tIEV4dGVuc2lvbnNEYXRhU291cmNlIGludGVyZmFjZVxuICBlbmFibGUoKTogdm9pZCB7XG4gICAgQ2hhdENvbmZpZ3VyYXRvci5lbmFibGUoKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UpID0+XG4gICAgICBuZXcgQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvcihkYXRhU291cmNlKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbGluZ0V4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQW9CO0lBRXZELGNBQWM7UUFDWCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDQSxZQUFZO0lBRWIsQ0FBQztJQUNRLE1BQU07UUFFYixnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFzQixFQUFFLEVBQUUsQ0FDakQsSUFBSSx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FDMUMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ2hhdENvbmZpZ3VyYXRvciB9IGZyb20gJy4uL1NoYXJlZC9GcmFtZXdvcmsvQ2hhdENvbmZpZ3VyYXRvcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vU2hhcmVkL0ZyYW1ld29yay9EYXRhU291cmNlJztcbmltcG9ydCB7RXh0ZW5zaW9uc0RhdGFTb3VyY2V9IGZyb20gJ0Bjb21ldGNoYXQvdWlraXQtc2hhcmVkJ1xuaW1wb3J0IHsgQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvciB9IGZyb20gJy4vQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvcic7XG5cbmV4cG9ydCBjbGFzcyBDYWxsaW5nRXh0ZW5zaW9uIGV4dGVuZHMgRXh0ZW5zaW9uc0RhdGFTb3VyY2Uge1xuXG4gICBnZXRFeHRlbnNpb25JZCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICcnO1xuICB9XG4gICBhZGRFeHRlbnNpb24oKTogdm9pZCB7XG5cbiAgfVxuICBvdmVycmlkZSBlbmFibGUoKTogdm9pZCB7XG5cbiAgICBDaGF0Q29uZmlndXJhdG9yLmVuYWJsZSgoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkgPT5cbiAgICAgIG5ldyBDYWxsaW5nRXh0ZW5zaW9uRGVjb3JhdG9yKGRhdGFTb3VyY2UpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { CometChat } from "@cometchat-pro/chat";
1
+ import { CometChat } from "@cometchat/chat-sdk-javascript";
2
2
  import { CometChatUIKitConstants, CometChatMessageTemplate, localize } from "@cometchat/uikit-resources";
3
3
  import { CallingDetailsUtils } from "@cometchat/uikit-shared";
4
4
  import { ChatConfigurator } from "../Shared/Framework/ChatConfigurator";
@@ -96,9 +96,9 @@ export class CallingExtensionDecorator extends DataSourceDecorator {
96
96
  let call = conversation.getLastMessage();
97
97
  actionMessage = CallingDetailsUtils.getCallStatus(call, loggedInUser);
98
98
  }
99
- else if (conversation.getLastMessage() && conversation.getLastMessage().type == CometChatUIKitConstants.calls.meeting) {
99
+ else if (conversation?.getLastMessage() && conversation.getLastMessage().type == CometChatUIKitConstants.calls.meeting) {
100
100
  let message = conversation.getLastMessage();
101
- if (!message.getSender() || message.getSender().getUid() == loggedInUser.getUid()) {
101
+ if (!message.getSender() || message?.getSender()?.getUid() == loggedInUser.getUid()) {
102
102
  actionMessage = localize("YOU_INITIATED_GROUP_CALL");
103
103
  }
104
104
  else {
@@ -111,4 +111,4 @@ export class CallingExtensionDecorator extends DataSourceDecorator {
111
111
  return actionMessage;
112
112
  }
113
113
  }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFrRCxRQUFRLEVBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUNySyxPQUFPLEVBQUUsbUJBQW1CLEVBQXNFLE1BQU0seUJBQXlCLENBQUM7QUFDbEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHOUUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG1CQUFtQjtJQUM5RCxZQUFZLFVBQXNCO1FBQzlCLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbEIsQ0FBQztJQUNELHFDQUFxQztJQUNyQyxRQUFRO1FBQ04sSUFBSSxVQUFVLEdBQVcsaUJBQWlCLENBQUM7UUFDM0MsU0FBUyxDQUFDLGdCQUFnQixDQUMxQixVQUFVLEVBQ1YsSUFBSSxTQUFTLENBQUMsYUFBYSxDQUFDO1lBQzFCLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ25CLElBQUksSUFBSSxHQUFtQixTQUFTLENBQUMsYUFBYSxFQUFFLENBQUE7Z0JBQ2pELElBQUcsSUFBSSxFQUFDO29CQUNOLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7aUJBRXZDO3FCQUNHO29CQUNGLE9BQU07aUJBQ1A7WUFDTCxDQUFDO1lBQ0QsYUFBYSxFQUFFLENBQUMsS0FBbUMsRUFBRSxFQUFF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LE9BQU8sRUFBQztZQUNySCxJQUFJLE9BQU8sR0FBMkIsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQ25FLElBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBQztnQkFDL0UsYUFBYSxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO2FBQ3JEO2lCQUNJO2dCQUNILGFBQWEsR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFBO2FBQ3hGO1NBRUY7YUFDRztZQUNGLGFBQWEsR0FBRyxLQUFLLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsT0FBTyxhQUFhLENBQUE7SUFFckIsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQtcHJvL2NoYXRcIjtcbmltcG9ydCB7IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLCBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUsIENvbWV0Q2hhdFRoZW1lLCBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24sIGxvY2FsaXplLCBmb250SGVscGVyIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDYWxsaW5nRGV0YWlsc1V0aWxzLCBDb2xsYWJvcmF0aXZlRG9jdW1lbnRDb25maWd1cmF0aW9uLCBDb2xsYWJvcmF0aXZlRG9jdW1lbnRDb25zdGFudHMgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7IENoYXRDb25maWd1cmF0b3IgfSBmcm9tIFwiLi4vU2hhcmVkL0ZyYW1ld29yay9DaGF0Q29uZmlndXJhdG9yXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSBcIi4uL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZURlY29yYXRvciB9IGZyb20gXCIuLi9TaGFyZWQvRnJhbWV3b3JrL0RhdGFTb3VyY2VEZWNvcmF0b3JcIjtcbmltcG9ydCB7ICB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZFwiO1xuXG5leHBvcnQgY2xhc3MgQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvciBleHRlbmRzIERhdGFTb3VyY2VEZWNvcmF0b3Ige1xuICAgIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UpIHtcbiAgICAgICAgc3VwZXIoZGF0YVNvdXJjZSk7XG4gICAgICAgdGhpcy5vbkxvZ291dCgpXG4gICAgfVxuICAgIC8vIGVuZCBhY3RpdmUgY2FsbCB3aGVuIHVzZXIgbG9ncyBvdXRcbiAgICBvbkxvZ291dCgpe1xuICAgICAgdmFyIGxpc3RlbmVySUQ6IHN0cmluZyA9IFwibG9nb3V0X2xpc3RlbmVyXCI7XG4gICAgICBDb21ldENoYXQuYWRkTG9naW5MaXN0ZW5lcihcbiAgICAgIGxpc3RlbmVySUQsXG4gICAgICBuZXcgQ29tZXRDaGF0LkxvZ2luTGlzdGVuZXIoe1xuICAgICAgICBsb2dvdXRTdWNjZXNzOiAoKSA9PiB7XG4gICAgICAgICBsZXQgY2FsbDpDb21ldENoYXQuQ2FsbCA9ICBDb21ldENoYXQuZ2V0QWN0aXZlQ2FsbCgpXG4gICAgICAgICAgICBpZihjYWxsKXtcbiAgICAgICAgICAgICAgQ29tZXRDaGF0LmVuZENhbGwoY2FsbC5nZXRTZXNzaW9uSWQoKSlcblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGxvZ291dEZhaWx1cmU6IChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJMb2dpbkxpc3RlbmVyIDo6IGxvZ291dEZhaWx1cmVcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfSlcbik7XG4gICAgfVxuICAgIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VUeXBlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IHR5cGVzID0gc3VwZXIuZ2V0QWxsTWVzc2FnZVR5cGVzKCk7XG4gICAgICAgIGlmICghdHlwZXMuaW5jbHVkZXMoIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpKSB7XG4gICAgICAgICAgICB0eXBlcy5wdXNoKCBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5tZWV0aW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXR5cGVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy5hdWRpbykpIHtcbiAgICAgICAgICAgIHR5cGVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmF1ZGlvKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXR5cGVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbykpIHtcbiAgICAgICAgICAgIHR5cGVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHlwZXM7XG4gICAgfVxuICAgIG92ZXJyaWRlIGdldElkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBcImNhbGxpbmdcIjtcbiAgICAgIH1cbiAgICBvdmVycmlkZSBnZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpO1xuICAgICAgICBpZiAoIWNhdGVnb3JpZXMuaW5jbHVkZXMoQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpKSB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2F0ZWdvcmllcy5pbmNsdWRlcyhDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY3VzdG9tKSkge1xuICAgICAgICAgICAgY2F0ZWdvcmllcy5wdXNoKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYXRlZ29yaWVzO1xuICAgIH1cbiAgICBjaGVja0lmVGVtcGxhdGVUeXBlRXhpc3QodGVtcGxhdGU6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10sIHR5cGU6c3RyaW5nKTpib29sZWFue1xuICAgICAgICByZXR1cm4gdGVtcGxhdGUuc29tZShvYmogPT4gb2JqLnR5cGUgPT09IHR5cGUpXG4gICAgICB9XG4gICAgICBjaGVja0lmVGVtcGxhdGVDYXRlZ29yeUV4aXN0KHRlbXBsYXRlOkNvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZVtdLCBjYXRlZ29yeTpzdHJpbmcpOmJvb2xlYW57XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5zb21lKG9iaiA9PiBvYmouY2F0ZWdvcnkgPT09IGNhdGVnb3J5KVxuICAgICAgfVxuICAgIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlVGVtcGxhdGVzKCk7XG4gICAgICAgIGlmKCF0aGlzLmNoZWNrSWZUZW1wbGF0ZVR5cGVFeGlzdCh0ZW1wbGF0ZXMsIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpKXtcbiAgICAgICAgICAgICB0ZW1wbGF0ZXMucHVzaCh0aGlzLmdldERpcmVjdENhbGxUZW1wbGF0ZSgpKVxuICAgICAgICAgICB9XG4gICAgICAgICAgIGlmKCF0aGlzLmNoZWNrSWZUZW1wbGF0ZUNhdGVnb3J5RXhpc3QodGVtcGxhdGVzLENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsKSl7XG4gICAgICAgICAgICB0ZW1wbGF0ZXMucHVzaCguLi50aGlzLmdldERlZmF1bHRDYWxsVGVtcGxhdGUoKSlcbiAgICAgICAgICB9XG4gICAgICAgICAgICAgcmV0dXJuIHRlbXBsYXRlc1xuXG4gICAgfVxuICAgIGdldERpcmVjdENhbGxUZW1wbGF0ZSgpOkNvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZXtcbiAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICB0eXBlOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5jYWxscy5tZWV0aW5nLFxuICAgICAgY2F0ZWdvcnk6Q29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmN1c3RvbSxcbiAgICAgIG9wdGlvbnM6IChsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLCBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsIHRoZW1lOiBDb21ldENoYXRUaGVtZSwgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXApPT57XG4gICAgICAgIHJldHVybiBDaGF0Q29uZmlndXJhdG9yLmdldERhdGFTb3VyY2UoKS5nZXRDb21tb25PcHRpb25zKGxvZ2dlZEluVXNlciwgbWVzc2FnZU9iamVjdCwgdGhlbWUsIGdyb3VwKVxuICAgICAgIH1cbiAgICB9KVxuICAgIH1cbiAgICBnZXREZWZhdWx0Q2FsbFRlbXBsYXRlKCk6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW117XG4gICAgICBsZXQgdGVtcGxhdGVzOkNvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZVtdID0gW1xuICAgICAgICBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgICAgICAgIHR5cGU6Q29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmF1ZGlvICxcbiAgICAgICAgICAgIGNhdGVnb3J5OkNvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTpDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW8sXG4gICAgICAgICAgICBjYXRlZ29yeTpDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbCxcbiAgICAgICAgICB9KVxuXG4gICAgICBdXG4gICAgICByZXR1cm4gdGVtcGxhdGVzXG4gICAgfVxuICAgcHVibGljIG92ZXJyaWRlIGdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbiwgbG9nZ2VkSW5Vc2VyOiBDb21ldENoYXQuVXNlcik6IHN0cmluZyB7XG4gICAgIGxldCBhY3Rpb25NZXNzYWdlOnN0cmluZyA9IFwiXCI7XG5cbiAgICBpZihjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKSAmJiBjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKS5jYXRlZ29yeSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbCl7XG4gICAgICBsZXQgY2FsbDpDb21ldENoYXQuQ2FsbCA9Y29udmVyc2F0aW9uLmdldExhc3RNZXNzYWdlKCk7XG5cbiAgICAgIGFjdGlvbk1lc3NhZ2UgPSBDYWxsaW5nRGV0YWlsc1V0aWxzLmdldENhbGxTdGF0dXMoY2FsbCxsb2dnZWRJblVzZXIpXG4gICAgfVxuICAgIGVsc2UgaWYgKGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpLnR5cGUgPT0gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpe1xuICAgICAgbGV0IG1lc3NhZ2U6Q29tZXRDaGF0LkN1c3RvbU1lc3NhZ2UgPSBjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKVxuICAgICAgaWYoIW1lc3NhZ2UuZ2V0U2VuZGVyKCkgfHwgbWVzc2FnZS5nZXRTZW5kZXIoKS5nZXRVaWQoKSA9PSBsb2dnZWRJblVzZXIuZ2V0VWlkKCkpe1xuICAgICAgICBhY3Rpb25NZXNzYWdlID0gbG9jYWxpemUoXCJZT1VfSU5JVElBVEVEX0dST1VQX0NBTExcIilcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBhY3Rpb25NZXNzYWdlID0gYCR7bWVzc2FnZS5nZXRTZW5kZXIoKS5nZXROYW1lKCl9ICAke2xvY2FsaXplKFwiSU5JVElBVEVEX0dST1VQX0NBTExcIil9YFxuICAgICAgfVxuXG4gICAgfVxuICAgIGVsc2V7XG4gICAgICBhY3Rpb25NZXNzYWdlID0gc3VwZXIuZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoY29udmVyc2F0aW9uLGxvZ2dlZEluVXNlcik7XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb25NZXNzYWdlXG5cbiAgIH1cbn0iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQtdWlraXQtYW5ndWxhci9zcmMvQ2FsbHMvQ2FsbGluZ0V4dGVuc2lvbkRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFrRCxRQUFRLEVBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUNySyxPQUFPLEVBQUUsbUJBQW1CLEVBQXNFLE1BQU0seUJBQXlCLENBQUM7QUFDbEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHOUUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG1CQUFtQjtJQUM5RCxZQUFZLFVBQXNCO1FBQzlCLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbEIsQ0FBQztJQUNELHFDQUFxQztJQUNyQyxRQUFRO1FBQ04sSUFBSSxVQUFVLEdBQVcsaUJBQWlCLENBQUM7UUFDM0MsU0FBUyxDQUFDLGdCQUFnQixDQUMxQixVQUFVLEVBQ1YsSUFBSSxTQUFTLENBQUMsYUFBYSxDQUFDO1lBQzFCLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ25CLElBQUksSUFBSSxHQUFtQixTQUFTLENBQUMsYUFBYSxFQUFFLENBQUE7Z0JBQ2pELElBQUcsSUFBSSxFQUFDO29CQUNOLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7aUJBRXZDO3FCQUNHO29CQUNGLE9BQU07aUJBQ1A7WUFDTCxDQUFDO1lBQ0QsYUFBYSxFQUFFLENBQUMsS0FBbUMsRUFBRSxFQUFF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LE9BQU8sRUFBQztZQUN0SCxJQUFJLE9BQU8sR0FBMkIsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQ25FLElBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBQztnQkFDakYsYUFBYSxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO2FBQ3JEO2lCQUNJO2dCQUNILGFBQWEsR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFBO2FBQ3hGO1NBRUY7YUFDRztZQUNGLGFBQWEsR0FBRyxLQUFLLENBQUMsMEJBQTBCLENBQUMsWUFBWSxFQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsT0FBTyxhQUFhLENBQUE7SUFFckIsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMsIENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSwgQ29tZXRDaGF0VGhlbWUsIENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiwgbG9jYWxpemUsIGZvbnRIZWxwZXIgfSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENhbGxpbmdEZXRhaWxzVXRpbHMsIENvbGxhYm9yYXRpdmVEb2N1bWVudENvbmZpZ3VyYXRpb24sIENvbGxhYm9yYXRpdmVEb2N1bWVudENvbnN0YW50cyB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZFwiO1xuaW1wb3J0IHsgQ2hhdENvbmZpZ3VyYXRvciB9IGZyb20gXCIuLi9TaGFyZWQvRnJhbWV3b3JrL0NoYXRDb25maWd1cmF0b3JcIjtcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vU2hhcmVkL0ZyYW1ld29yay9EYXRhU291cmNlXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlRGVjb3JhdG9yIH0gZnJvbSBcIi4uL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZURlY29yYXRvclwiO1xuaW1wb3J0IHsgIH0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5cbmV4cG9ydCBjbGFzcyBDYWxsaW5nRXh0ZW5zaW9uRGVjb3JhdG9yIGV4dGVuZHMgRGF0YVNvdXJjZURlY29yYXRvciB7XG4gICAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkge1xuICAgICAgICBzdXBlcihkYXRhU291cmNlKTtcbiAgICAgICB0aGlzLm9uTG9nb3V0KClcbiAgICB9XG4gICAgLy8gZW5kIGFjdGl2ZSBjYWxsIHdoZW4gdXNlciBsb2dzIG91dFxuICAgIG9uTG9nb3V0KCl7XG4gICAgICB2YXIgbGlzdGVuZXJJRDogc3RyaW5nID0gXCJsb2dvdXRfbGlzdGVuZXJcIjtcbiAgICAgIENvbWV0Q2hhdC5hZGRMb2dpbkxpc3RlbmVyKFxuICAgICAgbGlzdGVuZXJJRCxcbiAgICAgIG5ldyBDb21ldENoYXQuTG9naW5MaXN0ZW5lcih7XG4gICAgICAgIGxvZ291dFN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgIGxldCBjYWxsOkNvbWV0Q2hhdC5DYWxsID0gIENvbWV0Q2hhdC5nZXRBY3RpdmVDYWxsKClcbiAgICAgICAgICAgIGlmKGNhbGwpe1xuICAgICAgICAgICAgICBDb21ldENoYXQuZW5kQ2FsbChjYWxsLmdldFNlc3Npb25JZCgpKVxuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9nb3V0RmFpbHVyZTogKGVycm9yOiBDb21ldENoYXQuQ29tZXRDaGF0RXhjZXB0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkxvZ2luTGlzdGVuZXIgOjogbG9nb3V0RmFpbHVyZVwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9KVxuKTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0QWxsTWVzc2FnZVR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgdHlwZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlVHlwZXMoKTtcbiAgICAgICAgaWYgKCF0eXBlcy5pbmNsdWRlcyggQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMubWVldGluZykpIHtcbiAgICAgICAgICAgIHR5cGVzLnB1c2goIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZXMuaW5jbHVkZXMoQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLmF1ZGlvKSkge1xuICAgICAgICAgICAgdHlwZXMucHVzaChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdHlwZXMuaW5jbHVkZXMoQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZVR5cGVzLnZpZGVvKSkge1xuICAgICAgICAgICAgdHlwZXMucHVzaChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMudmlkZW8pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiY2FsbGluZ1wiO1xuICAgICAgfVxuICAgIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VDYXRlZ29yaWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IHN1cGVyLmdldEFsbE1lc3NhZ2VDYXRlZ29yaWVzKCk7XG4gICAgICAgIGlmICghY2F0ZWdvcmllcy5pbmNsdWRlcyhDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbCkpIHtcbiAgICAgICAgICAgIGNhdGVnb3JpZXMucHVzaChDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY2FsbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjYXRlZ29yaWVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pKSB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmN1c3RvbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhdGVnb3JpZXM7XG4gICAgfVxuICAgIGNoZWNrSWZUZW1wbGF0ZVR5cGVFeGlzdCh0ZW1wbGF0ZTpDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXSwgdHlwZTpzdHJpbmcpOmJvb2xlYW57XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5zb21lKG9iaiA9PiBvYmoudHlwZSA9PT0gdHlwZSlcbiAgICAgIH1cbiAgICAgIGNoZWNrSWZUZW1wbGF0ZUNhdGVnb3J5RXhpc3QodGVtcGxhdGU6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10sIGNhdGVnb3J5OnN0cmluZyk6Ym9vbGVhbntcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlLnNvbWUob2JqID0+IG9iai5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkpXG4gICAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0QWxsTWVzc2FnZVRlbXBsYXRlcygpOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXSB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IHN1cGVyLmdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTtcbiAgICAgICAgaWYoIXRoaXMuY2hlY2tJZlRlbXBsYXRlVHlwZUV4aXN0KHRlbXBsYXRlcywgQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuY2FsbHMubWVldGluZykpe1xuICAgICAgICAgICAgIHRlbXBsYXRlcy5wdXNoKHRoaXMuZ2V0RGlyZWN0Q2FsbFRlbXBsYXRlKCkpXG4gICAgICAgICAgIH1cbiAgICAgICAgICAgaWYoIXRoaXMuY2hlY2tJZlRlbXBsYXRlQ2F0ZWdvcnlFeGlzdCh0ZW1wbGF0ZXMsQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwpKXtcbiAgICAgICAgICAgIHRlbXBsYXRlcy5wdXNoKC4uLnRoaXMuZ2V0RGVmYXVsdENhbGxUZW1wbGF0ZSgpKVxuICAgICAgICAgIH1cbiAgICAgICAgICAgICByZXR1cm4gdGVtcGxhdGVzXG5cbiAgICB9XG4gICAgZ2V0RGlyZWN0Q2FsbFRlbXBsYXRlKCk6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRle1xuICAgIHJldHVybiBuZXcgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlKHtcbiAgICAgIHR5cGU6IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcsXG4gICAgICBjYXRlZ29yeTpDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY3VzdG9tLFxuICAgICAgb3B0aW9uczogKGxvZ2dlZEluVXNlcjogQ29tZXRDaGF0LlVzZXIsIG1lc3NhZ2VPYmplY3Q6IENvbWV0Q2hhdC5CYXNlTWVzc2FnZSwgdGhlbWU6IENvbWV0Q2hhdFRoZW1lLCBncm91cD86IENvbWV0Q2hhdC5Hcm91cCk9PntcbiAgICAgICAgcmV0dXJuIENoYXRDb25maWd1cmF0b3IuZ2V0RGF0YVNvdXJjZSgpLmdldENvbW1vbk9wdGlvbnMobG9nZ2VkSW5Vc2VyLCBtZXNzYWdlT2JqZWN0LCB0aGVtZSwgZ3JvdXApXG4gICAgICAgfVxuICAgIH0pXG4gICAgfVxuICAgIGdldERlZmF1bHRDYWxsVGVtcGxhdGUoKTpDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXXtcbiAgICAgIGxldCB0ZW1wbGF0ZXM6Q29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10gPSBbXG4gICAgICAgIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgICAgICAgdHlwZTpDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlVHlwZXMuYXVkaW8gLFxuICAgICAgICAgICAgY2F0ZWdvcnk6Q29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmNhbGwsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICAgICAgICB0eXBlOkNvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VUeXBlcy52aWRlbyxcbiAgICAgICAgICAgIGNhdGVnb3J5OkNvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsLFxuICAgICAgICAgIH0pXG5cbiAgICAgIF1cbiAgICAgIHJldHVybiB0ZW1wbGF0ZXNcbiAgICB9XG4gICBwdWJsaWMgb3ZlcnJpZGUgZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoY29udmVyc2F0aW9uOiBDb21ldENoYXQuQ29udmVyc2F0aW9uLCBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyKTogc3RyaW5nIHtcbiAgICAgbGV0IGFjdGlvbk1lc3NhZ2U6c3RyaW5nID0gXCJcIjtcblxuICAgIGlmKGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpLmNhdGVnb3J5ID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jYWxsKXtcbiAgICAgIGxldCBjYWxsOkNvbWV0Q2hhdC5DYWxsID1jb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKTtcblxuICAgICAgYWN0aW9uTWVzc2FnZSA9IENhbGxpbmdEZXRhaWxzVXRpbHMuZ2V0Q2FsbFN0YXR1cyhjYWxsLGxvZ2dlZEluVXNlcilcbiAgICB9XG4gICAgZWxzZSBpZiAoY29udmVyc2F0aW9uPy5nZXRMYXN0TWVzc2FnZSgpICYmIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpLnR5cGUgPT0gIENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLmNhbGxzLm1lZXRpbmcpe1xuICAgICAgbGV0IG1lc3NhZ2U6Q29tZXRDaGF0LkN1c3RvbU1lc3NhZ2UgPSBjb252ZXJzYXRpb24uZ2V0TGFzdE1lc3NhZ2UoKVxuICAgICAgaWYoIW1lc3NhZ2UuZ2V0U2VuZGVyKCkgfHwgbWVzc2FnZT8uZ2V0U2VuZGVyKCk/LmdldFVpZCgpID09IGxvZ2dlZEluVXNlci5nZXRVaWQoKSl7XG4gICAgICAgIGFjdGlvbk1lc3NhZ2UgPSBsb2NhbGl6ZShcIllPVV9JTklUSUFURURfR1JPVVBfQ0FMTFwiKVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGFjdGlvbk1lc3NhZ2UgPSBgJHttZXNzYWdlLmdldFNlbmRlcigpLmdldE5hbWUoKX0gICR7bG9jYWxpemUoXCJJTklUSUFURURfR1JPVVBfQ0FMTFwiKX1gXG4gICAgICB9XG5cbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIGFjdGlvbk1lc3NhZ2UgPSBzdXBlci5nZXRMYXN0Q29udmVyc2F0aW9uTWVzc2FnZShjb252ZXJzYXRpb24sbG9nZ2VkSW5Vc2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjdGlvbk1lc3NhZ2VcblxuICAgfVxufSJdfQ==