@envive-ai/react-hooks 0.3.39 → 0.3.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 (142) hide show
  1. package/dist/application/commerce-api.cjs +3 -2
  2. package/dist/application/commerce-api.js +3 -2
  3. package/dist/application/models/api/orgConfigResults.d.cts +13 -2
  4. package/dist/application/models/api/orgConfigResults.d.ts +13 -2
  5. package/dist/application/models/featureGates.cjs +2 -1
  6. package/dist/application/models/featureGates.d.cts +2 -1
  7. package/dist/application/models/featureGates.d.ts +2 -1
  8. package/dist/application/models/featureGates.js +2 -1
  9. package/dist/application/models/graphql/queries/getWidgetConfigQuery.cjs +23 -0
  10. package/dist/application/models/graphql/queries/getWidgetConfigQuery.js +22 -0
  11. package/dist/application/models/index.d.cts +2 -2
  12. package/dist/application/models/index.d.ts +2 -2
  13. package/dist/application/utils/elementObserver.d.ts +2 -2
  14. package/dist/application/utils/index.cjs +0 -2
  15. package/dist/application/utils/index.d.cts +1 -2
  16. package/dist/application/utils/index.d.ts +1 -2
  17. package/dist/application/utils/index.js +1 -2
  18. package/dist/atoms/app/index.d.cts +1 -1
  19. package/dist/atoms/app/index.d.ts +7 -7
  20. package/dist/atoms/chat/chatState.d.cts +18 -18
  21. package/dist/atoms/chat/chatState.d.ts +19 -19
  22. package/dist/atoms/chat/form.d.cts +2 -2
  23. package/dist/atoms/chat/form.d.ts +2 -2
  24. package/dist/atoms/chat/index.cjs +1 -1
  25. package/dist/atoms/chat/index.d.cts +3 -3
  26. package/dist/atoms/chat/index.d.ts +2 -2
  27. package/dist/atoms/chat/index.js +1 -1
  28. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  29. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  30. package/dist/atoms/chat/messageQueue.d.cts +6 -6
  31. package/dist/atoms/chat/messageQueue.d.ts +6 -6
  32. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  33. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  34. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  35. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  36. package/dist/atoms/chat/replies.d.cts +3 -3
  37. package/dist/atoms/chat/suggestions.d.cts +2 -2
  38. package/dist/atoms/chat/suggestions.d.ts +2 -2
  39. package/dist/atoms/envive/enviveConfig.d.cts +12 -12
  40. package/dist/atoms/envive/enviveConfig.d.ts +13 -13
  41. package/dist/atoms/envive/resolvedBaseConfigVersion.cjs +9 -0
  42. package/dist/atoms/envive/resolvedBaseConfigVersion.js +8 -0
  43. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  44. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  45. package/dist/atoms/org/customerService.d.cts +6 -6
  46. package/dist/atoms/org/customerService.d.ts +6 -6
  47. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  48. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  49. package/dist/atoms/org/index.cjs +1 -1
  50. package/dist/atoms/org/index.js +1 -1
  51. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  52. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  53. package/dist/atoms/org/orgAnalyticsConfig.d.cts +4 -4
  54. package/dist/atoms/org/orgAnalyticsConfig.d.ts +4 -4
  55. package/dist/atoms/search/chatSearch.cjs +1 -1
  56. package/dist/atoms/search/chatSearch.d.cts +17 -17
  57. package/dist/atoms/search/chatSearch.d.ts +17 -17
  58. package/dist/atoms/search/chatSearch.js +1 -1
  59. package/dist/atoms/search/searchAPI.cjs +1 -1
  60. package/dist/atoms/search/searchAPI.d.cts +13 -13
  61. package/dist/atoms/search/searchAPI.d.ts +13 -13
  62. package/dist/atoms/search/searchAPI.js +1 -1
  63. package/dist/atoms/search/types.d.ts +1 -1
  64. package/dist/atoms/search/utils.d.ts +1 -1
  65. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  66. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  67. package/dist/contexts/enviveContext/enviveContext.cjs +11 -3
  68. package/dist/contexts/enviveContext/enviveContext.js +11 -3
  69. package/dist/contexts/enviveContext/types.d.cts +1 -1
  70. package/dist/contexts/enviveContext/types.d.ts +1 -1
  71. package/dist/contexts/graphqlContext/graphqlContext.cjs +1 -1
  72. package/dist/contexts/graphqlContext/graphqlContext.d.cts +3 -1
  73. package/dist/contexts/graphqlContext/graphqlContext.d.ts +3 -1
  74. package/dist/contexts/graphqlContext/graphqlContext.js +1 -1
  75. package/dist/contexts/pageContext/types.d.ts +1 -1
  76. package/dist/contexts/salesAgentContext/chatAPI.cjs +2 -2
  77. package/dist/contexts/salesAgentContext/chatAPI.js +2 -2
  78. package/dist/contexts/salesAgentContext/salesAgentService.cjs +10 -4
  79. package/dist/contexts/salesAgentContext/salesAgentService.js +10 -4
  80. package/dist/contexts/searchContext/searchContext.cjs +1 -1
  81. package/dist/contexts/searchContext/searchContext.js +1 -1
  82. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  83. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
  84. package/dist/contexts/types.d.cts +1 -1
  85. package/dist/contexts/types.d.ts +1 -1
  86. package/dist/contexts/typesV3.d.cts +1 -1
  87. package/dist/contexts/typesV3.d.ts +1 -1
  88. package/dist/hooks/ChatToggle/useChatToggle.cjs +1 -1
  89. package/dist/hooks/ChatToggle/useChatToggle.js +1 -1
  90. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  91. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  92. package/dist/hooks/Search/useSearch.cjs +3 -3
  93. package/dist/hooks/Search/useSearch.js +3 -3
  94. package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
  95. package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.ts +2 -2
  96. package/dist/hooks/utils.d.cts +1 -1
  97. package/dist/services/amplitudeService/amplitudeService.cjs +17 -2
  98. package/dist/services/amplitudeService/amplitudeService.d.cts +3 -1
  99. package/dist/services/amplitudeService/amplitudeService.d.ts +3 -1
  100. package/dist/services/amplitudeService/amplitudeService.js +17 -2
  101. package/dist/services/enviveConfigService/enviveConfigService.cjs +9 -3
  102. package/dist/services/enviveConfigService/enviveConfigService.d.cts +3 -2
  103. package/dist/services/enviveConfigService/enviveConfigService.d.ts +3 -2
  104. package/dist/services/enviveConfigService/enviveConfigService.js +10 -4
  105. package/dist/services/enviveConfigService/fetchGraphQLConfig.cjs +78 -39
  106. package/dist/services/enviveConfigService/fetchGraphQLConfig.js +78 -40
  107. package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +3 -3
  108. package/dist/services/ga4ProjectionService/ga4ProjectionService.js +3 -3
  109. package/dist/services/hardcopyService/hardcopyService.cjs +4 -2
  110. package/dist/services/hardcopyService/hardcopyService.js +4 -2
  111. package/dist/types/config-versions.cjs +3 -1
  112. package/dist/types/config-versions.js +3 -2
  113. package/dist/types/customerService.cjs +2 -1
  114. package/dist/types/customerService.d.cts +2 -1
  115. package/dist/types/customerService.d.ts +2 -1
  116. package/dist/types/customerService.js +2 -1
  117. package/package.json +1 -1
  118. package/src/application/commerce-api.ts +5 -1
  119. package/src/application/models/api/orgConfigResults.ts +27 -0
  120. package/src/application/models/featureGates.ts +5 -0
  121. package/src/application/models/graphql/queries/getWidgetConfigQuery.ts +34 -0
  122. package/src/application/utils/__tests__/elementObserver.test.ts +200 -0
  123. package/src/application/utils/index.ts +0 -1
  124. package/src/atoms/envive/resolvedBaseConfigVersion.ts +11 -0
  125. package/src/contexts/enviveContext/enviveContext.tsx +20 -0
  126. package/src/contexts/graphqlContext/graphqlContext.tsx +5 -0
  127. package/src/contexts/salesAgentContext/salesAgentService.ts +4 -1
  128. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +95 -0
  129. package/src/services/amplitudeService/amplitudeService.ts +31 -1
  130. package/src/services/enviveConfigService/__tests__/fetchGraphQLConfig.test.ts +107 -1
  131. package/src/services/enviveConfigService/enviveConfigService.ts +35 -7
  132. package/src/services/enviveConfigService/fetchGraphQLConfig.ts +119 -57
  133. package/src/services/ga4ProjectionService/ga4ProjectionService.ts +2 -2
  134. package/src/services/hardcopyService/__tests__/hardcopyService.test.ts +35 -1
  135. package/src/services/hardcopyService/hardcopyService.ts +6 -1
  136. package/src/types/config-versions.ts +8 -0
  137. package/src/types/customerService.ts +1 -0
  138. package/dist/application/utils/merchantUtils.cjs +0 -18
  139. package/dist/application/utils/merchantUtils.d.cts +0 -5
  140. package/dist/application/utils/merchantUtils.d.ts +0 -5
  141. package/dist/application/utils/merchantUtils.js +0 -17
  142. package/src/application/utils/merchantUtils.ts +0 -16
@@ -1,16 +1,16 @@
1
1
  import { ProductResponseAttributes } from "../../application/models/api/response.cjs";
2
2
  import { ChatSearchFilter, ChatSearchStateType, ProductSorting } from "./types.cjs";
3
3
  import { Message } from "../../application/models/message.cjs";
4
- import * as jotai77 from "jotai";
4
+ import * as jotai65 from "jotai";
5
5
 
6
6
  //#region src/atoms/search/chatSearch.d.ts
7
- declare const chatSearchStateAtom: jotai77.PrimitiveAtom<ChatSearchStateType> & {
7
+ declare const chatSearchStateAtom: jotai65.PrimitiveAtom<ChatSearchStateType> & {
8
8
  init: ChatSearchStateType;
9
9
  };
10
- declare const chatSearchHasProductsAtom: jotai77.PrimitiveAtom<boolean> & {
10
+ declare const chatSearchHasProductsAtom: jotai65.PrimitiveAtom<boolean> & {
11
11
  init: boolean;
12
12
  };
13
- declare const chatSearchProductSortingAtom: jotai77.PrimitiveAtom<ProductSorting> & {
13
+ declare const chatSearchProductSortingAtom: jotai65.PrimitiveAtom<ProductSorting> & {
14
14
  init: ProductSorting;
15
15
  };
16
16
  type ChatSearchTurn = {
@@ -21,7 +21,7 @@ type ChatSearchTurn = {
21
21
  filterList: string[];
22
22
  messages: Message[];
23
23
  };
24
- declare const chatSearchIsLoadingAtom: jotai77.PrimitiveAtom<boolean> & {
24
+ declare const chatSearchIsLoadingAtom: jotai65.PrimitiveAtom<boolean> & {
25
25
  init: boolean;
26
26
  };
27
27
  type SelectedChatSearchFilterOption = {
@@ -30,21 +30,21 @@ type SelectedChatSearchFilterOption = {
30
30
  filterId: string;
31
31
  filterItemId: string;
32
32
  };
33
- declare const selectedFilterOptionsAtom: jotai77.PrimitiveAtom<SelectedChatSearchFilterOption[]> & {
33
+ declare const selectedFilterOptionsAtom: jotai65.PrimitiveAtom<SelectedChatSearchFilterOption[]> & {
34
34
  init: SelectedChatSearchFilterOption[];
35
35
  };
36
- declare const additiveDynamicFiltersAtom: jotai77.Atom<boolean>;
36
+ declare const additiveDynamicFiltersAtom: jotai65.Atom<boolean>;
37
37
  declare const createChatSearchFilterOption: (filterId: string, filterItemId: string, displayName: string) => SelectedChatSearchFilterOption;
38
- declare const chatSearchParamsAtom: jotai77.WritableAtom<{
38
+ declare const chatSearchParamsAtom: jotai65.WritableAtom<{
39
39
  id: string | null;
40
40
  query: string | null;
41
41
  }, [value: {
42
42
  id: string | null;
43
43
  query: string | null;
44
44
  }], void>;
45
- declare const chatSearchQueryAtom: jotai77.WritableAtom<string | null, [value: string | null], void>;
46
- declare const chatSearchIdAtom: jotai77.WritableAtom<string | null, [value: string | null], void>;
47
- declare const ChatSearchTurnAtom: jotai77.Atom<{
45
+ declare const chatSearchQueryAtom: jotai65.WritableAtom<string | null, [value: string | null], void>;
46
+ declare const chatSearchIdAtom: jotai65.WritableAtom<string | null, [value: string | null], void>;
47
+ declare const ChatSearchTurnAtom: jotai65.Atom<{
48
48
  productList: {
49
49
  averageRating?: number | undefined;
50
50
  colors?: string[] | undefined;
@@ -74,7 +74,7 @@ declare const ChatSearchTurnAtom: jotai77.Atom<{
74
74
  filterList: string[];
75
75
  messages: Message[];
76
76
  } | null>;
77
- declare const chatSearchProducts: jotai77.Atom<{
77
+ declare const chatSearchProducts: jotai65.Atom<{
78
78
  averageRating?: number | undefined;
79
79
  colors?: string[] | undefined;
80
80
  description?: string | undefined;
@@ -97,19 +97,19 @@ declare const chatSearchProducts: jotai77.Atom<{
97
97
  title: string;
98
98
  url: string;
99
99
  }[]>;
100
- declare const chatSearchFiltersAtom: jotai77.Atom<ChatSearchFilter[]>;
100
+ declare const chatSearchFiltersAtom: jotai65.Atom<ChatSearchFilter[]>;
101
101
  declare const setSearchParams: (query: string) => void;
102
- declare const getSearchParamsAtom: jotai77.Atom<{
102
+ declare const getSearchParamsAtom: jotai65.Atom<{
103
103
  es: string | null;
104
104
  esq: string | null;
105
105
  }>;
106
- declare const initiateChatSearchAtom: jotai77.WritableAtom<null, [query: string], void> & {
106
+ declare const initiateChatSearchAtom: jotai65.WritableAtom<null, [query: string], void> & {
107
107
  init: null;
108
108
  };
109
- declare const handleSearchResultsAtom: jotai77.WritableAtom<null, [message: Message | undefined], void> & {
109
+ declare const handleSearchResultsAtom: jotai65.WritableAtom<null, [message: Message | undefined], void> & {
110
110
  init: null;
111
111
  };
112
- declare const setChatSearchParamsAtom: jotai77.WritableAtom<null, [query: string], void> & {
112
+ declare const setChatSearchParamsAtom: jotai65.WritableAtom<null, [query: string], void> & {
113
113
  init: null;
114
114
  };
115
115
  //#endregion
@@ -1,16 +1,16 @@
1
1
  import { ProductResponseAttributes } from "../../application/models/api/response.js";
2
2
  import { ChatSearchFilter, ChatSearchStateType, ProductSorting } from "./types.js";
3
3
  import { Message } from "../../application/models/message.js";
4
- import * as jotai58 from "jotai";
4
+ import * as jotai65 from "jotai";
5
5
 
6
6
  //#region src/atoms/search/chatSearch.d.ts
7
- declare const chatSearchStateAtom: jotai58.PrimitiveAtom<ChatSearchStateType> & {
7
+ declare const chatSearchStateAtom: jotai65.PrimitiveAtom<ChatSearchStateType> & {
8
8
  init: ChatSearchStateType;
9
9
  };
10
- declare const chatSearchHasProductsAtom: jotai58.PrimitiveAtom<boolean> & {
10
+ declare const chatSearchHasProductsAtom: jotai65.PrimitiveAtom<boolean> & {
11
11
  init: boolean;
12
12
  };
13
- declare const chatSearchProductSortingAtom: jotai58.PrimitiveAtom<ProductSorting> & {
13
+ declare const chatSearchProductSortingAtom: jotai65.PrimitiveAtom<ProductSorting> & {
14
14
  init: ProductSorting;
15
15
  };
16
16
  type ChatSearchTurn = {
@@ -21,7 +21,7 @@ type ChatSearchTurn = {
21
21
  filterList: string[];
22
22
  messages: Message[];
23
23
  };
24
- declare const chatSearchIsLoadingAtom: jotai58.PrimitiveAtom<boolean> & {
24
+ declare const chatSearchIsLoadingAtom: jotai65.PrimitiveAtom<boolean> & {
25
25
  init: boolean;
26
26
  };
27
27
  type SelectedChatSearchFilterOption = {
@@ -30,21 +30,21 @@ type SelectedChatSearchFilterOption = {
30
30
  filterId: string;
31
31
  filterItemId: string;
32
32
  };
33
- declare const selectedFilterOptionsAtom: jotai58.PrimitiveAtom<SelectedChatSearchFilterOption[]> & {
33
+ declare const selectedFilterOptionsAtom: jotai65.PrimitiveAtom<SelectedChatSearchFilterOption[]> & {
34
34
  init: SelectedChatSearchFilterOption[];
35
35
  };
36
- declare const additiveDynamicFiltersAtom: jotai58.Atom<boolean>;
36
+ declare const additiveDynamicFiltersAtom: jotai65.Atom<boolean>;
37
37
  declare const createChatSearchFilterOption: (filterId: string, filterItemId: string, displayName: string) => SelectedChatSearchFilterOption;
38
- declare const chatSearchParamsAtom: jotai58.WritableAtom<{
38
+ declare const chatSearchParamsAtom: jotai65.WritableAtom<{
39
39
  id: string | null;
40
40
  query: string | null;
41
41
  }, [value: {
42
42
  id: string | null;
43
43
  query: string | null;
44
44
  }], void>;
45
- declare const chatSearchQueryAtom: jotai58.WritableAtom<string | null, [value: string | null], void>;
46
- declare const chatSearchIdAtom: jotai58.WritableAtom<string | null, [value: string | null], void>;
47
- declare const ChatSearchTurnAtom: jotai58.Atom<{
45
+ declare const chatSearchQueryAtom: jotai65.WritableAtom<string | null, [value: string | null], void>;
46
+ declare const chatSearchIdAtom: jotai65.WritableAtom<string | null, [value: string | null], void>;
47
+ declare const ChatSearchTurnAtom: jotai65.Atom<{
48
48
  productList: {
49
49
  averageRating?: number | undefined;
50
50
  colors?: string[] | undefined;
@@ -74,7 +74,7 @@ declare const ChatSearchTurnAtom: jotai58.Atom<{
74
74
  filterList: string[];
75
75
  messages: Message[];
76
76
  } | null>;
77
- declare const chatSearchProducts: jotai58.Atom<{
77
+ declare const chatSearchProducts: jotai65.Atom<{
78
78
  averageRating?: number | undefined;
79
79
  colors?: string[] | undefined;
80
80
  description?: string | undefined;
@@ -97,19 +97,19 @@ declare const chatSearchProducts: jotai58.Atom<{
97
97
  title: string;
98
98
  url: string;
99
99
  }[]>;
100
- declare const chatSearchFiltersAtom: jotai58.Atom<ChatSearchFilter[]>;
100
+ declare const chatSearchFiltersAtom: jotai65.Atom<ChatSearchFilter[]>;
101
101
  declare const setSearchParams: (query: string) => void;
102
- declare const getSearchParamsAtom: jotai58.Atom<{
102
+ declare const getSearchParamsAtom: jotai65.Atom<{
103
103
  es: string | null;
104
104
  esq: string | null;
105
105
  }>;
106
- declare const initiateChatSearchAtom: jotai58.WritableAtom<null, [query: string], void> & {
106
+ declare const initiateChatSearchAtom: jotai65.WritableAtom<null, [query: string], void> & {
107
107
  init: null;
108
108
  };
109
- declare const handleSearchResultsAtom: jotai58.WritableAtom<null, [message: Message | undefined], void> & {
109
+ declare const handleSearchResultsAtom: jotai65.WritableAtom<null, [message: Message | undefined], void> & {
110
110
  init: null;
111
111
  };
112
- declare const setChatSearchParamsAtom: jotai58.WritableAtom<null, [query: string], void> & {
112
+ declare const setChatSearchParamsAtom: jotai65.WritableAtom<null, [query: string], void> & {
113
113
  init: null;
114
114
  };
115
115
  //#endregion
@@ -1,9 +1,9 @@
1
1
  import { MessageRole, MessageType } from "../../application/models/message.js";
2
2
  import "../../application/models/index.js";
3
- import { newOrgConfigAtom } from "../org/newOrgConfigAtom.js";
4
3
  import { messagesAtom, replyEventCategoryAtom, userHasRepliedAtom, userQueryAtom } from "../chat/chatState.js";
5
4
  import { queueUserEventAtom } from "../chat/messageQueue.js";
6
5
  import "../chat/index.js";
6
+ import { newOrgConfigAtom } from "../org/newOrgConfigAtom.js";
7
7
  import "../org/index.js";
8
8
  import { ProductFilters } from "./productFilters.js";
9
9
  import { ProductSorting } from "./types.js";
@@ -1,10 +1,10 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_newOrgConfigAtom = require('../org/newOrgConfigAtom.cjs');
3
- const require_searchServiceAdapter = require('./searchServiceAdapter.cjs');
4
3
  require('../org/index.cjs');
5
4
  const require_productFilters = require('./productFilters.cjs');
6
5
  const require_atoms_search_types = require('./types.cjs');
7
6
  const require_productSorter = require('./productSorter.cjs');
7
+ const require_searchServiceAdapter = require('./searchServiceAdapter.cjs');
8
8
  let jotai = require("jotai");
9
9
 
10
10
  //#region src/atoms/search/searchAPI.ts
@@ -1,6 +1,6 @@
1
1
  import { ChatSearchFilter, ProductSorting } from "./types.cjs";
2
2
  import { SearchParams, SearchResult } from "../../application/models/api/search.cjs";
3
- import * as jotai65 from "jotai";
3
+ import * as jotai81 from "jotai";
4
4
 
5
5
  //#region src/atoms/search/searchAPI.d.ts
6
6
  type SelectedFilterOption = {
@@ -15,28 +15,28 @@ interface SearchState {
15
15
  error: string | null;
16
16
  lastQuery: string | null;
17
17
  }
18
- declare const searchAtom: jotai65.PrimitiveAtom<SearchState> & {
18
+ declare const searchAtom: jotai81.PrimitiveAtom<SearchState> & {
19
19
  init: SearchState;
20
20
  };
21
- declare const searchProductSortingAtom: jotai65.PrimitiveAtom<ProductSorting> & {
21
+ declare const searchProductSortingAtom: jotai81.PrimitiveAtom<ProductSorting> & {
22
22
  init: ProductSorting;
23
23
  };
24
- declare const searchSelectedFiltersAtom: jotai65.PrimitiveAtom<SelectedFilterOption[]> & {
24
+ declare const searchSelectedFiltersAtom: jotai81.PrimitiveAtom<SelectedFilterOption[]> & {
25
25
  init: SelectedFilterOption[];
26
26
  };
27
27
  declare const createFilterOption: (filterId: string, filterItemId: string, displayName: string) => SelectedFilterOption;
28
- declare const searchParamsAtom: jotai65.WritableAtom<{
28
+ declare const searchParamsAtom: jotai81.WritableAtom<{
29
29
  id: string | null;
30
30
  query: string | null;
31
31
  }, [value: {
32
32
  id: string | null;
33
33
  query: string | null;
34
34
  }], void>;
35
- declare const internalSearchSystemStateAtom: jotai65.PrimitiveAtom<boolean> & {
35
+ declare const internalSearchSystemStateAtom: jotai81.PrimitiveAtom<boolean> & {
36
36
  init: boolean;
37
37
  };
38
- declare const searchSystemAtom: jotai65.WritableAtom<boolean, [value: boolean], void>;
39
- declare const filteredSearchProductsAtom: jotai65.Atom<{
38
+ declare const searchSystemAtom: jotai81.WritableAtom<boolean, [value: boolean], void>;
39
+ declare const filteredSearchProductsAtom: jotai81.Atom<{
40
40
  averageRating?: number | undefined;
41
41
  colors?: string[] | undefined;
42
42
  description?: string | undefined;
@@ -59,17 +59,17 @@ declare const filteredSearchProductsAtom: jotai65.Atom<{
59
59
  title: string;
60
60
  url: string;
61
61
  }[]>;
62
- declare const searchFiltersAtom: jotai65.Atom<ChatSearchFilter[]>;
63
- declare const addSearchFilterAtom: jotai65.WritableAtom<null, [filter: SelectedFilterOption], void> & {
62
+ declare const searchFiltersAtom: jotai81.Atom<ChatSearchFilter[]>;
63
+ declare const addSearchFilterAtom: jotai81.WritableAtom<null, [filter: SelectedFilterOption], void> & {
64
64
  init: null;
65
65
  };
66
- declare const removeSearchFilterAtom: jotai65.WritableAtom<null, [filterId: string], void> & {
66
+ declare const removeSearchFilterAtom: jotai81.WritableAtom<null, [filterId: string], void> & {
67
67
  init: null;
68
68
  };
69
- declare const clearSearchFiltersAtom: jotai65.WritableAtom<null, [], void> & {
69
+ declare const clearSearchFiltersAtom: jotai81.WritableAtom<null, [], void> & {
70
70
  init: null;
71
71
  };
72
- declare const performSearchAtom: jotai65.WritableAtom<null, [params: SearchParams, allowRedirect?: unknown], Promise<void>> & {
72
+ declare const performSearchAtom: jotai81.WritableAtom<null, [params: SearchParams, allowRedirect?: unknown], Promise<void>> & {
73
73
  init: null;
74
74
  };
75
75
  //#endregion
@@ -1,6 +1,6 @@
1
1
  import { ChatSearchFilter, ProductSorting } from "./types.js";
2
2
  import { SearchParams, SearchResult } from "../../application/models/api/search.js";
3
- import * as jotai46 from "jotai";
3
+ import * as jotai81 from "jotai";
4
4
 
5
5
  //#region src/atoms/search/searchAPI.d.ts
6
6
  type SelectedFilterOption = {
@@ -15,28 +15,28 @@ interface SearchState {
15
15
  error: string | null;
16
16
  lastQuery: string | null;
17
17
  }
18
- declare const searchAtom: jotai46.PrimitiveAtom<SearchState> & {
18
+ declare const searchAtom: jotai81.PrimitiveAtom<SearchState> & {
19
19
  init: SearchState;
20
20
  };
21
- declare const searchProductSortingAtom: jotai46.PrimitiveAtom<ProductSorting> & {
21
+ declare const searchProductSortingAtom: jotai81.PrimitiveAtom<ProductSorting> & {
22
22
  init: ProductSorting;
23
23
  };
24
- declare const searchSelectedFiltersAtom: jotai46.PrimitiveAtom<SelectedFilterOption[]> & {
24
+ declare const searchSelectedFiltersAtom: jotai81.PrimitiveAtom<SelectedFilterOption[]> & {
25
25
  init: SelectedFilterOption[];
26
26
  };
27
27
  declare const createFilterOption: (filterId: string, filterItemId: string, displayName: string) => SelectedFilterOption;
28
- declare const searchParamsAtom: jotai46.WritableAtom<{
28
+ declare const searchParamsAtom: jotai81.WritableAtom<{
29
29
  id: string | null;
30
30
  query: string | null;
31
31
  }, [value: {
32
32
  id: string | null;
33
33
  query: string | null;
34
34
  }], void>;
35
- declare const internalSearchSystemStateAtom: jotai46.PrimitiveAtom<boolean> & {
35
+ declare const internalSearchSystemStateAtom: jotai81.PrimitiveAtom<boolean> & {
36
36
  init: boolean;
37
37
  };
38
- declare const searchSystemAtom: jotai46.WritableAtom<boolean, [value: boolean], void>;
39
- declare const filteredSearchProductsAtom: jotai46.Atom<{
38
+ declare const searchSystemAtom: jotai81.WritableAtom<boolean, [value: boolean], void>;
39
+ declare const filteredSearchProductsAtom: jotai81.Atom<{
40
40
  averageRating?: number | undefined;
41
41
  colors?: string[] | undefined;
42
42
  description?: string | undefined;
@@ -59,17 +59,17 @@ declare const filteredSearchProductsAtom: jotai46.Atom<{
59
59
  title: string;
60
60
  url: string;
61
61
  }[]>;
62
- declare const searchFiltersAtom: jotai46.Atom<ChatSearchFilter[]>;
63
- declare const addSearchFilterAtom: jotai46.WritableAtom<null, [filter: SelectedFilterOption], void> & {
62
+ declare const searchFiltersAtom: jotai81.Atom<ChatSearchFilter[]>;
63
+ declare const addSearchFilterAtom: jotai81.WritableAtom<null, [filter: SelectedFilterOption], void> & {
64
64
  init: null;
65
65
  };
66
- declare const removeSearchFilterAtom: jotai46.WritableAtom<null, [filterId: string], void> & {
66
+ declare const removeSearchFilterAtom: jotai81.WritableAtom<null, [filterId: string], void> & {
67
67
  init: null;
68
68
  };
69
- declare const clearSearchFiltersAtom: jotai46.WritableAtom<null, [], void> & {
69
+ declare const clearSearchFiltersAtom: jotai81.WritableAtom<null, [], void> & {
70
70
  init: null;
71
71
  };
72
- declare const performSearchAtom: jotai46.WritableAtom<null, [params: SearchParams, allowRedirect?: unknown], Promise<void>> & {
72
+ declare const performSearchAtom: jotai81.WritableAtom<null, [params: SearchParams, allowRedirect?: unknown], Promise<void>> & {
73
73
  init: null;
74
74
  };
75
75
  //#endregion
@@ -1,9 +1,9 @@
1
1
  import { newOrgConfigAtom } from "../org/newOrgConfigAtom.js";
2
- import { getSearchServiceFunction } from "./searchServiceAdapter.js";
3
2
  import "../org/index.js";
4
3
  import { ProductFilters } from "./productFilters.js";
5
4
  import { ProductSorting } from "./types.js";
6
5
  import { ProductSorter } from "./productSorter.js";
6
+ import { getSearchServiceFunction } from "./searchServiceAdapter.js";
7
7
  import { atom } from "jotai";
8
8
 
9
9
  //#region src/atoms/search/searchAPI.ts
@@ -57,4 +57,4 @@ interface ProductRetrievalParams {
57
57
  }
58
58
  //#endregion
59
59
  export { ChatSearchFilter, ChatSearchFilterItem, ChatSearchSortModalProps, ChatSearchSortOverrides, ChatSearchSortProps, ChatSearchStateType, ProductRetrievalParams, ProductRetrievalResult, ProductSorting, ProductSortingNames, SortOption };
60
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXRvbXMvc2VhcmNoL3R5cGVzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3Jlc3BvbnNlJztcbmV4cG9ydCBkZWNsYXJlIGVudW0gUHJvZHVjdFNvcnRpbmcge1xuICAgIEZFQVRVUkVEID0gXCJmZWF0dXJlZFwiLFxuICAgIFBSSUNFX0FTQyA9IFwicHJpY2VfYXNjXCIsXG4gICAgUFJJQ0VfREVTQyA9IFwicHJpY2VfZGVzY1wiXG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBQcm9kdWN0U29ydGluZ05hbWVzOiB7XG4gICAgZmVhdHVyZWQ6IHN0cmluZztcbiAgICBwcmljZV9hc2M6IHN0cmluZztcbiAgICBwcmljZV9kZXNjOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgQ2hhdFNlYXJjaFN0YXRlVHlwZSA9ICdlbnRyeXBvaW50JyB8ICdpbml0aWFsaXppbmctc2VhcmNoJyB8ICdwcm9kdWN0LXBhZ2UnO1xuZXhwb3J0IHR5cGUgQ2hhdFNlYXJjaEZpbHRlciA9IHtcbiAgICBmaWx0ZXJJZDogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgaXRlbXM6IENoYXRTZWFyY2hGaWx0ZXJJdGVtW107XG59O1xuZXhwb3J0IHR5cGUgQ2hhdFNlYXJjaEZpbHRlckl0ZW0gPSB7XG4gICAgZmlsdGVySXRlbUlkOiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBwcm9kdWN0Q291bnQ6IG51bWJlcjtcbiAgICBpc1NlbGVjdGVkOiBib29sZWFuO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFNlYXJjaFNvcnRQcm9wcyB7XG4gICAgb3B0aW9uczogUHJvZHVjdFNvcnRpbmdbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFNlYXJjaFNvcnRNb2RhbFByb3BzIGV4dGVuZHMgQ2hhdFNlYXJjaFNvcnRQcm9wcyB7XG4gICAgb3BlbjogYm9vbGVhbjtcbiAgICBoYW5kbGVQb3B1cFN0YXRlOiAoc3RhdGU6IGJvb2xlYW4pID0+IHZvaWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNvcnRPcHRpb24ge1xuICAgIHZhbHVlOiBQcm9kdWN0U29ydGluZztcbiAgICBpc1NlbGVjdGVkOiBib29sZWFuO1xuICAgIG9uU2VsZWN0OiAob3B0aW9uOiBQcm9kdWN0U29ydGluZykgPT4gdm9pZDtcbn1cbmV4cG9ydCBkZWNsYXJlIGVudW0gQ2hhdFNlYXJjaFNvcnRPdmVycmlkZXMge1xuICAgIERFU0tUT1BfRklMVEVSX0NPTlRBSU5FUiA9IFwic3BpZmZ5LWNoYXQtc2VhcmNoLWZpbHRlci1jb250YWluZXJcIixcbiAgICBERVNLVE9QX0ZJTFRFUl9TRUxFQ1RfQ09NUE9ORU5UID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLXNlbGVjdC1jb21wb25lbnRcIixcbiAgICBERVNLVE9QX0ZJTFRFUl9TRUxFQ1RfSUNPTiA9IFwic3BpZmZ5LWNoYXQtc2VhcmNoLWZpbHRlci1zZWxlY3QtaWNvblwiLFxuICAgIE1PQklMRV9GSUxURVJfQlVUVE9OID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLWJ1dHRvblwiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfQ09OVEFJTkVSID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLW1vZGFsLWNvbnRhaW5lclwiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfSEVBREVSID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLW1vZGFsLWhlYWRlclwiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfU0VMRUNUSU9OID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLW1vZGFsLXNlbGVjdGlvblwiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfT1BUSU9OID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLW1vZGFsLW9wdGlvblwiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfT1BUSU9OX1BJTEwgPSBcInNwaWZmeS1jaGF0LXNlYXJjaC1maWx0ZXItbW9kYWwtb3B0aW9uLXBpbGxcIixcbiAgICBNT0JJTEVfRklMVEVSX01PREFMX09QVElPTl9ERVNDUklQVElPTiA9IFwic3BpZmZ5LWNoYXQtc2VhcmNoLWZpbHRlci1tb2RhbC1vcHRpb24tZGVzY1wiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfQVBQTFlfQlVUVE9OID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLW1vZGFsLWFwcGx5LWJ1dHRvblwiXG59XG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RSZXRyaWV2YWxSZXN1bHQge1xuICAgIHByb2R1Y3RzOiBTZWFyY2hSZXNwb25zZVByb2R1Y3RBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ11bXTtcbiAgICB0b3RhbFByb2R1Y3RDb3VudDogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0UmV0cmlldmFsUGFyYW1zIHtcbiAgICBwcm9kdWN0SWRzOiBzdHJpbmdbXTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBVyxpQkFBaUIsQ0FBQyxJQUFJO0FBQ2pDLElBQVcsc0JBQWMsQ0FBQSxJQUFBO0FBQ3pCLElBQVcsc0JBQWdCLENBQUEsSUFBQTtBQUMzQixJQUFXLG1CQUFpQixDQUFBLFdBQUEscUJBQUE7QUFDNUIsSUFBQSx1QkFBQSxDQUFBLElBQUE7QUFDQSxJQUFXLHNCQUFzQixDQUFDLFdBQVEsZUFBQTtBQUMxQyxJQUFXLDJCQUFTLENBQUEsV0FBQSxvQkFBQTtBQUNwQixJQUFXLGFBQVU7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNyQixJQUFXLDBCQUFXLENBQUEsSUFBQTtBQUN0QixJQUFDLHlCQUFBLENBQUEsV0FBQSxnQ0FBQTtBQUNELElBQVcseUJBQXlCLENBQUMsSUFBSSJ9
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXRvbXMvc2VhcmNoL3R5cGVzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3Jlc3BvbnNlJztcbmV4cG9ydCBkZWNsYXJlIGVudW0gUHJvZHVjdFNvcnRpbmcge1xuICAgIEZFQVRVUkVEID0gXCJmZWF0dXJlZFwiLFxuICAgIFBSSUNFX0FTQyA9IFwicHJpY2VfYXNjXCIsXG4gICAgUFJJQ0VfREVTQyA9IFwicHJpY2VfZGVzY1wiXG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBQcm9kdWN0U29ydGluZ05hbWVzOiB7XG4gICAgZmVhdHVyZWQ6IHN0cmluZztcbiAgICBwcmljZV9hc2M6IHN0cmluZztcbiAgICBwcmljZV9kZXNjOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgQ2hhdFNlYXJjaFN0YXRlVHlwZSA9ICdlbnRyeXBvaW50JyB8ICdpbml0aWFsaXppbmctc2VhcmNoJyB8ICdwcm9kdWN0LXBhZ2UnO1xuZXhwb3J0IHR5cGUgQ2hhdFNlYXJjaEZpbHRlciA9IHtcbiAgICBmaWx0ZXJJZDogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgaXRlbXM6IENoYXRTZWFyY2hGaWx0ZXJJdGVtW107XG59O1xuZXhwb3J0IHR5cGUgQ2hhdFNlYXJjaEZpbHRlckl0ZW0gPSB7XG4gICAgZmlsdGVySXRlbUlkOiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBwcm9kdWN0Q291bnQ6IG51bWJlcjtcbiAgICBpc1NlbGVjdGVkOiBib29sZWFuO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFNlYXJjaFNvcnRQcm9wcyB7XG4gICAgb3B0aW9uczogUHJvZHVjdFNvcnRpbmdbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFNlYXJjaFNvcnRNb2RhbFByb3BzIGV4dGVuZHMgQ2hhdFNlYXJjaFNvcnRQcm9wcyB7XG4gICAgb3BlbjogYm9vbGVhbjtcbiAgICBoYW5kbGVQb3B1cFN0YXRlOiAoc3RhdGU6IGJvb2xlYW4pID0+IHZvaWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNvcnRPcHRpb24ge1xuICAgIHZhbHVlOiBQcm9kdWN0U29ydGluZztcbiAgICBpc1NlbGVjdGVkOiBib29sZWFuO1xuICAgIG9uU2VsZWN0OiAob3B0aW9uOiBQcm9kdWN0U29ydGluZykgPT4gdm9pZDtcbn1cbmV4cG9ydCBkZWNsYXJlIGVudW0gQ2hhdFNlYXJjaFNvcnRPdmVycmlkZXMge1xuICAgIERFU0tUT1BfRklMVEVSX0NPTlRBSU5FUiA9IFwic3BpZmZ5LWNoYXQtc2VhcmNoLWZpbHRlci1jb250YWluZXJcIixcbiAgICBERVNLVE9QX0ZJTFRFUl9TRUxFQ1RfQ09NUE9ORU5UID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLXNlbGVjdC1jb21wb25lbnRcIixcbiAgICBERVNLVE9QX0ZJTFRFUl9TRUxFQ1RfSUNPTiA9IFwic3BpZmZ5LWNoYXQtc2VhcmNoLWZpbHRlci1zZWxlY3QtaWNvblwiLFxuICAgIE1PQklMRV9GSUxURVJfQlVUVE9OID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLWJ1dHRvblwiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfQ09OVEFJTkVSID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLW1vZGFsLWNvbnRhaW5lclwiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfSEVBREVSID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLW1vZGFsLWhlYWRlclwiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfU0VMRUNUSU9OID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLW1vZGFsLXNlbGVjdGlvblwiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfT1BUSU9OID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLW1vZGFsLW9wdGlvblwiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfT1BUSU9OX1BJTEwgPSBcInNwaWZmeS1jaGF0LXNlYXJjaC1maWx0ZXItbW9kYWwtb3B0aW9uLXBpbGxcIixcbiAgICBNT0JJTEVfRklMVEVSX01PREFMX09QVElPTl9ERVNDUklQVElPTiA9IFwic3BpZmZ5LWNoYXQtc2VhcmNoLWZpbHRlci1tb2RhbC1vcHRpb24tZGVzY1wiLFxuICAgIE1PQklMRV9GSUxURVJfTU9EQUxfQVBQTFlfQlVUVE9OID0gXCJzcGlmZnktY2hhdC1zZWFyY2gtZmlsdGVyLW1vZGFsLWFwcGx5LWJ1dHRvblwiXG59XG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RSZXRyaWV2YWxSZXN1bHQge1xuICAgIHByb2R1Y3RzOiBTZWFyY2hSZXNwb25zZVByb2R1Y3RBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ11bXTtcbiAgICB0b3RhbFByb2R1Y3RDb3VudDogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0UmV0cmlldmFsUGFyYW1zIHtcbiAgICBwcm9kdWN0SWRzOiBzdHJpbmdbXTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBVyxpQkFBaUIsQ0FBQyxHQUFHO0FBQ2hDLElBQVcsc0JBQWMsQ0FBQSxHQUFBO0FBQ3pCLElBQVcsc0JBQWdCLENBQUEsR0FBQTtBQUMzQixJQUFXLG1CQUFpQixDQUFBLFVBQUEscUJBQUE7QUFDNUIsSUFBQSx1QkFBQSxDQUFBLEdBQUE7QUFDQSxJQUFXLHNCQUFzQixDQUFDLFVBQVEsZUFBQTtBQUMxQyxJQUFXLDJCQUFTLENBQUEsVUFBQSxvQkFBQTtBQUNwQixJQUFXLGFBQVU7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNyQixJQUFXLDBCQUFXLENBQUEsR0FBQTtBQUN0QixJQUFDLHlCQUFBLENBQUEsVUFBQSxnQ0FBQTtBQUNELElBQVcseUJBQXlCLENBQUMsR0FBRyJ9
@@ -2,4 +2,4 @@
2
2
  declare const formatFilterDisplayName: (displayName: string) => string;
3
3
  //#endregion
4
4
  export { formatFilterDisplayName };
5
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXRvbXMvc2VhcmNoL3V0aWxzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlY2xhcmUgY29uc3QgZm9ybWF0RmlsdGVyRGlzcGxheU5hbWU6IChkaXNwbGF5TmFtZTogc3RyaW5nKSA9PiBzdHJpbmc7XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFXLDBCQUEwQixDQUFDLElBQUkifQ==
5
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXRvbXMvc2VhcmNoL3V0aWxzLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlY2xhcmUgY29uc3QgZm9ybWF0RmlsdGVyRGlzcGxheU5hbWU6IChkaXNwbGF5TmFtZTogc3RyaW5nKSA9PiBzdHJpbmc7XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFXLDBCQUEwQixDQUFDLEdBQUcifQ==
@@ -1,5 +1,5 @@
1
1
  import { WidgetWrapperVariant } from "@envive-ai/react-toolkit-v3/WidgetWrapper";
2
- import * as jotai48 from "jotai";
2
+ import * as jotai64 from "jotai";
3
3
 
4
4
  //#region src/atoms/widget/chatPreviewLoading.d.ts
5
5
  /**
@@ -17,7 +17,7 @@ type ChatPreviewLoadingData = {
17
17
  /**
18
18
  * Atom to read ChatPreviewLoading data for a specific widgetConfigId.
19
19
  */
20
- declare const chatPreviewLoadingDataAtom: jotai48.WritableAtom<Record<string, ChatPreviewLoadingData>, [update: {
20
+ declare const chatPreviewLoadingDataAtom: jotai64.WritableAtom<Record<string, ChatPreviewLoadingData>, [update: {
21
21
  widgetConfigId: string;
22
22
  data: ChatPreviewLoadingData;
23
23
  }], void>;
@@ -1,4 +1,4 @@
1
- import * as jotai74 from "jotai";
1
+ import * as jotai34 from "jotai";
2
2
  import { WidgetWrapperVariant } from "@envive-ai/react-toolkit-v3/WidgetWrapper";
3
3
 
4
4
  //#region src/atoms/widget/chatPreviewLoading.d.ts
@@ -17,7 +17,7 @@ type ChatPreviewLoadingData = {
17
17
  /**
18
18
  * Atom to read ChatPreviewLoading data for a specific widgetConfigId.
19
19
  */
20
- declare const chatPreviewLoadingDataAtom: jotai74.WritableAtom<Record<string, ChatPreviewLoadingData>, [update: {
20
+ declare const chatPreviewLoadingDataAtom: jotai34.WritableAtom<Record<string, ChatPreviewLoadingData>, [update: {
21
21
  widgetConfigId: string;
22
22
  data: ChatPreviewLoadingData;
23
23
  }], void>;
@@ -2,6 +2,7 @@ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_logger = require('../../application/logging/logger.cjs');
3
3
  const require_localStorageContext = require('../localStorageContext/localStorageContext.cjs');
4
4
  require('../localStorageContext/index.cjs');
5
+ const require_resolvedBaseConfigVersion = require('../../atoms/envive/resolvedBaseConfigVersion.cjs');
5
6
  const require_enviveConfigContext = require('../enviveConfigContext/enviveConfigContext.cjs');
6
7
  require('../enviveConfigContext/index.cjs');
7
8
  const require_featureFlagServiceContext = require('../featureFlagServiceContext/featureFlagServiceContext.cjs');
@@ -29,6 +30,7 @@ require('../pageContext/index.cjs');
29
30
  const require_WindowChatToggleBinder = require('./WindowChatToggleBinder.cjs');
30
31
  let react = require("react");
31
32
  let react_jsx_runtime = require("react/jsx-runtime");
33
+ let jotai = require("jotai");
32
34
 
33
35
  //#region src/contexts/enviveContext/enviveContext.tsx
34
36
  const logger = new require_logger.default("enviveContext");
@@ -50,6 +52,7 @@ const SalesAgentWrapper = ({ children, enabledAgents, previewMode, showDebugBar,
50
52
  const EnviveProvider = ({ children, previewMode = false, enabledAgents, services, mockSalesAgentData, show, enviveOn, cdnUrl, reactAppName, identifyingPrefix }) => {
51
53
  const { extensionService } = services;
52
54
  const [enviveServiceConfig, setEnviveServiceConfig] = (0, react.useState)(null);
55
+ const setResolvedBaseConfigVersion = (0, jotai.useSetAtom)(require_resolvedBaseConfigVersion.resolvedBaseConfigVersionAtom);
53
56
  const didReportSuccessRef = (0, react.useRef)(false);
54
57
  const invokeExtensionCallback = (0, react.useCallback)((callback) => {
55
58
  if (!callback) return;
@@ -65,9 +68,13 @@ const EnviveProvider = ({ children, previewMode = false, enabledAgents, services
65
68
  }, [extensionService]);
66
69
  (0, react.useEffect)(() => {
67
70
  invokeExtensionCallback(extensionService?.onInjectionLoading);
71
+ setResolvedBaseConfigVersion(void 0);
68
72
  const fetchEnviveConfig = async () => {
69
73
  try {
70
- setEnviveServiceConfig(await services.enviveConfigService.getEnviveConfig());
74
+ const config = await services.enviveConfigService.getEnviveConfig();
75
+ setEnviveServiceConfig(config);
76
+ const { baseVersion, baseVersionSource } = config.orgConfig?.resolution ?? {};
77
+ if (baseVersion && baseVersionSource && baseVersionSource !== "deployed") setResolvedBaseConfigVersion(baseVersion);
71
78
  } catch (error) {
72
79
  const resolvedError = error instanceof Error ? error : /* @__PURE__ */ new Error("Failed to load envive config");
73
80
  logger.logError("Failed to initialize EnviveProvider", resolvedError);
@@ -79,7 +86,8 @@ const EnviveProvider = ({ children, previewMode = false, enabledAgents, services
79
86
  services.enviveConfigService,
80
87
  extensionService,
81
88
  invokeExtensionCallback,
82
- invokeExtensionErrorCallback
89
+ invokeExtensionErrorCallback,
90
+ setResolvedBaseConfigVersion
83
91
  ]);
84
92
  (0, react.useEffect)(() => {
85
93
  if (!enviveServiceConfig || didReportSuccessRef.current) return;
@@ -136,4 +144,4 @@ const EnviveProvider = ({ children, previewMode = false, enabledAgents, services
136
144
 
137
145
  //#endregion
138
146
  exports.EnviveProvider = EnviveProvider;
139
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5janMiLCJuYW1lcyI6WyJMb2dnZXIiLCJTZWFyY2hBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPEFnZW50V3JhcHBlclByb3BzPiIsIkVudml2ZUFnZW50IiwiU2VhcmNoUHJvdmlkZXIiLCJTYWxlc0FnZW50V3JhcHBlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFdyYXBwZXJQcm9wcz4iLCJTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciIsIlNhbGVzQWdlbnRQcm92aWRlciIsIkVudml2ZVByb3ZpZGVyOiBSZWFjdC5GQzxFbnZpdmVQcm92aWRlclByb3BzPiIsIkZlYXR1cmVGbGFnU2VydmljZSIsIkVudml2ZUNvbmZpZ1Byb3ZpZGVyIiwiTmV3T3JnQ29uZmlnUHJvdmlkZXIiLCJMb2NhbFN0b3JhZ2VQcm92aWRlciIsIkZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIiwiVXNlcklkZW50aXR5UHJvdmlkZXIiLCJBbXBsaXR1ZGVQcm92aWRlciIsIlBhZ2VQcm92aWRlciIsIldpZGdldENvbmZpZ1Byb3ZpZGVyIiwiSGFyZGNvcHlQcm92aWRlciIsIkVudml2ZUNzc1Byb3ZpZGVyIiwiV2luZG93Q2hhdFRvZ2dsZUJpbmRlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9lbnZpdmVDb250ZXh0L2Vudml2ZUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgQW1wbGl0dWRlU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9hbXBsaXR1ZGVTZXJ2aWNlL2FtcGxpdHVkZVNlcnZpY2UnO1xuaW1wb3J0IHsgRW52aXZlU2VydmljZUNvbmZpZywgSUVudml2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZSc7XG5pbXBvcnQgeyBJSGFyZGNvcHlTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2hhcmRjb3B5U2VydmljZSc7XG5pbXBvcnQgeyBJVXNlcklkZW50aXR5U2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy91c2VySWRlbnRpdHlTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IEFtcGxpdHVkZVByb3ZpZGVyIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVDb25maWdQcm92aWRlciB9IGZyb20gJy4uL2Vudml2ZUNvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ3NzUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDc3NDb250ZXh0JztcbmltcG9ydCB7IEZlYXR1cmVGbGFnU2VydmljZSwgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0JztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vbG9jYWxTdG9yYWdlQ29udGV4dCc7XG5pbXBvcnQgeyBOZXdPcmdDb25maWdQcm92aWRlciB9IGZyb20gJy4uL25ld09yZ0NvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgVXNlcklkZW50aXR5UHJvdmlkZXIgfSBmcm9tICcuLi91c2VySWRlbnRpdHlDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUFnZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQcm92aWRlciB9IGZyb20gJy4uL3NlYXJjaENvbnRleHQnO1xuaW1wb3J0IHsgU2FsZXNBZ2VudFByb3ZpZGVyIH0gZnJvbSAnLi4vc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQnO1xuaW1wb3J0IHsgU3lzdGVtU2V0dGluZ3NDb250ZXh0UHJvdmlkZXIgfSBmcm9tICcuLi9zeXN0ZW1TZXR0aW5nc0NvbnRleHQnO1xuaW1wb3J0IHsgSGFyZGNvcHlQcm92aWRlciB9IGZyb20gJy4uL2hhcmRjb3B5Q29udGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgV2luZG93Q2hhdFRvZ2dsZUJpbmRlciB9IGZyb20gJy4vV2luZG93Q2hhdFRvZ2dsZUJpbmRlcic7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2Vudml2ZUNvbnRleHQnKTtcblxuaW50ZXJmYWNlIEFnZW50V3JhcHBlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3Mge1xuICBvbkluamVjdGlvbkxvYWRpbmc/OiAoKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbiAgb25JbmplY3Rpb25TdWNjZXNzPzogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQ7XG4gIG9uSW5qZWN0aW9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZpdmVTZXJ2aWNlcyB7XG4gIGVudml2ZUNvbmZpZ1NlcnZpY2U6IElFbnZpdmVDb25maWdTZXJ2aWNlO1xuICBhbXBsaXR1ZGVTZXJ2aWNlOiBBbXBsaXR1ZGVTZXJ2aWNlO1xuICB1c2VySWRlbnRpdHlTZXJ2aWNlOiBJVXNlcklkZW50aXR5U2VydmljZTtcbiAgaGFyZGNvcHlTZXJ2aWNlOiBJSGFyZGNvcHlTZXJ2aWNlO1xuICBleHRlbnNpb25TZXJ2aWNlPzogRXh0ZW5zaW9uU3RhdHVzQ2FsbGJhY2tzO1xufVxuXG5pbnRlcmZhY2UgRW52aXZlUHJvdmlkZXJQcm9wcyBleHRlbmRzIEFnZW50V3JhcHBlclByb3BzIHtcbiAgaWRlbnRpZnlpbmdQcmVmaXg6IHN0cmluZztcbiAgc2VydmljZXM6IEVudml2ZVNlcnZpY2VzO1xuICBzaG93PzogYm9vbGVhbjtcbiAgZW52aXZlT24/OiBib29sZWFuO1xuICBjZG5Vcmw/OiBzdHJpbmc7XG4gIHJlYWN0QXBwTmFtZT86IHN0cmluZztcbiAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+ID0gKHsgY2hpbGRyZW4sIGVuYWJsZWRBZ2VudHMgfSkgPT4ge1xuICBpZiAoIWVuYWJsZWRBZ2VudHMuaW5jbHVkZXMoRW52aXZlQWdlbnQuU2VhcmNoQWdlbnQpKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHJldHVybiA8U2VhcmNoUHJvdmlkZXI+e2NoaWxkcmVufTwvU2VhcmNoUHJvdmlkZXI+O1xufTtcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRXcmFwcGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgc2hvd0RlYnVnQmFyOiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNhbGVzQWdlbnRXcmFwcGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50V3JhcHBlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBlbmFibGVkQWdlbnRzLFxuICBwcmV2aWV3TW9kZSxcbiAgc2hvd0RlYnVnQmFyLFxuICBtb2NrU2FsZXNBZ2VudERhdGEsXG59KSA9PiB7XG4gIGlmICghZW5hYmxlZEFnZW50cy5pbmNsdWRlcyhFbnZpdmVBZ2VudC5TYWxlc0FnZW50KSkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciBzaG93RGVidWdCYXI9e3Nob3dEZWJ1Z0Jhcn0+XG4gICAgICA8U2FsZXNBZ2VudFByb3ZpZGVyXG4gICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgbW9ja0RhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TYWxlc0FnZW50UHJvdmlkZXI+XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBFbnZpdmVQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlUHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgZW5hYmxlZEFnZW50cyxcbiAgc2VydmljZXMsXG4gIG1vY2tTYWxlc0FnZW50RGF0YSxcbiAgc2hvdyxcbiAgZW52aXZlT24sXG4gIGNkblVybCxcbiAgcmVhY3RBcHBOYW1lLFxuICBpZGVudGlmeWluZ1ByZWZpeCxcbn0pID0+IHtcbiAgY29uc3QgeyBleHRlbnNpb25TZXJ2aWNlIH0gPSBzZXJ2aWNlcztcbiAgY29uc3QgW2Vudml2ZVNlcnZpY2VDb25maWcsIHNldEVudml2ZVNlcnZpY2VDb25maWddID0gdXNlU3RhdGU8RW52aXZlU2VydmljZUNvbmZpZyB8IG51bGw+KG51bGwpO1xuICBjb25zdCBkaWRSZXBvcnRTdWNjZXNzUmVmID0gdXNlUmVmKGZhbHNlKTtcblxuICBjb25zdCBpbnZva2VFeHRlbnNpb25DYWxsYmFjayA9IHVzZUNhbGxiYWNrKChjYWxsYmFjaz86ICgpID0+IFByb21pc2U8dW5rbm93bj4gfCB2b2lkKSA9PiB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBQcm9taXNlLnJlc29sdmUoY2FsbGJhY2soKSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdFeHRlbnNpb24gc3RhdHVzIGNhbGxiYWNrIGZhaWxlZCcsIGVycm9yKTtcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGludm9rZUV4dGVuc2lvbkVycm9yQ2FsbGJhY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICBpZiAoIWV4dGVuc2lvblNlcnZpY2U/Lm9uSW5qZWN0aW9uRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgUHJvbWlzZS5yZXNvbHZlKGV4dGVuc2lvblNlcnZpY2Uub25JbmplY3Rpb25FcnJvcihlcnJvcikpLmNhdGNoKGNhbGxiYWNrRXJyb3IgPT4ge1xuICAgICAgICBsb2dnZXIubG9nRGVidWcoJ0V4dGVuc2lvbiBlcnJvciBjYWxsYmFjayBmYWlsZWQnLCBjYWxsYmFja0Vycm9yKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2V4dGVuc2lvblNlcnZpY2VdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW52b2tlRXh0ZW5zaW9uQ2FsbGJhY2soZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25Mb2FkaW5nKTtcblxuICAgIGNvbnN0IGZldGNoRW52aXZlQ29uZmlnID0gYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgc2VydmljZXMuZW52aXZlQ29uZmlnU2VydmljZS5nZXRFbnZpdmVDb25maWcoKTtcbiAgICAgICAgc2V0RW52aXZlU2VydmljZUNvbmZpZyhjb25maWcpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRFcnJvciA9XG4gICAgICAgICAgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yIDogbmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBlbnZpdmUgY29uZmlnJyk7XG4gICAgICAgIGxvZ2dlci5sb2dFcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgRW52aXZlUHJvdmlkZXInLCByZXNvbHZlZEVycm9yKTtcbiAgICAgICAgaW52b2tlRXh0ZW5zaW9uRXJyb3JDYWxsYmFjayhyZXNvbHZlZEVycm9yKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZmV0Y2hFbnZpdmVDb25maWcoKTtcbiAgfSwgW1xuICAgIHNlcnZpY2VzLmVudml2ZUNvbmZpZ1NlcnZpY2UsXG4gICAgZXh0ZW5zaW9uU2VydmljZSxcbiAgICBpbnZva2VFeHRlbnNpb25DYWxsYmFjayxcbiAgICBpbnZva2VFeHRlbnNpb25FcnJvckNhbGxiYWNrLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW52aXZlU2VydmljZUNvbmZpZyB8fCBkaWRSZXBvcnRTdWNjZXNzUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGlkUmVwb3J0U3VjY2Vzc1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICBpbnZva2VFeHRlbnNpb25DYWxsYmFjayhleHRlbnNpb25TZXJ2aWNlPy5vbkluamVjdGlvblN1Y2Nlc3MpO1xuICB9LCBbZW52aXZlU2VydmljZUNvbmZpZywgZXh0ZW5zaW9uU2VydmljZSwgaW52b2tlRXh0ZW5zaW9uQ2FsbGJhY2tdKTtcblxuICBjb25zdCBmZWF0dXJlRmxhZ1NlcnZpY2UgPSB1c2VNZW1vKFxuICAgICgpID0+IG5ldyBGZWF0dXJlRmxhZ1NlcnZpY2UoZW52aXZlU2VydmljZUNvbmZpZz8uZ2F0ZXMgPz8gW10pLFxuICAgIFtlbnZpdmVTZXJ2aWNlQ29uZmlnPy5nYXRlc10sXG4gICk7XG5cbiAgaWYgKGVudml2ZVNlcnZpY2VDb25maWcgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEVudml2ZUNvbmZpZ1Byb3ZpZGVyXG4gICAgICBpZGVudGlmeWluZ1ByZWZpeD17aWRlbnRpZnlpbmdQcmVmaXh9XG4gICAgICBiYXNlVXJsPXtzZXJ2aWNlcy5lbnZpdmVDb25maWdTZXJ2aWNlLmJhc2VVcmx9XG4gICAgICBvcmdMZXZlbEFwaUtleT17c2VydmljZXMuZW52aXZlQ29uZmlnU2VydmljZS5hcGlLZXl9XG4gICAgICBvcmdTaG9ydE5hbWU9e2Vudml2ZVNlcnZpY2VDb25maWcub3JnLm9yZy5zaG9ydF9uYW1lfVxuICAgICAgb3JnSWQ9e2Vudml2ZVNlcnZpY2VDb25maWcub3JnLm9yZy5pZH1cbiAgICAgIHNob3c9e3Nob3d9XG4gICAgICBlbnZpdmVPbj17ZW52aXZlT259XG4gICAgICBjZG5Vcmw9e2NkblVybH1cbiAgICAgIHJlYWN0QXBwTmFtZT17cmVhY3RBcHBOYW1lfVxuICAgID5cbiAgICAgIDxOZXdPcmdDb25maWdQcm92aWRlciBjb25maWc9e2Vudml2ZVNlcnZpY2VDb25maWcub3JnQ29uZmlnID8/IHt9fT5cbiAgICAgICAgPExvY2FsU3RvcmFnZVByb3ZpZGVyPlxuICAgICAgICAgIDxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlciBmZWF0dXJlRmxhZ1NlcnZpY2U9e2ZlYXR1cmVGbGFnU2VydmljZX0+XG4gICAgICAgICAgICA8VXNlcklkZW50aXR5UHJvdmlkZXIgdXNlcklkU2VydmljZT17c2VydmljZXMudXNlcklkZW50aXR5U2VydmljZX0+XG4gICAgICAgICAgICAgIDxBbXBsaXR1ZGVQcm92aWRlciBleHRlcm5hbEFtcGxpdHVkZVNlcnZpY2U9e3NlcnZpY2VzLmFtcGxpdHVkZVNlcnZpY2V9PlxuICAgICAgICAgICAgICAgIDxQYWdlUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgICAgICAgICAgIG9uVXJsUmVzb2x2ZXJOb3RSZWFkeT17ZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25FcnJvcn1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8V2lkZ2V0Q29uZmlnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxIYXJkY29weVByb3ZpZGVyIGhhcmRjb3B5U2VydmljZT17c2VydmljZXMuaGFyZGNvcHlTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICAgICAgICA8RW52aXZlQ3NzUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoQWdlbnRXcmFwcGVyIGVuYWJsZWRBZ2VudHM9e2VuYWJsZWRBZ2VudHN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8V2luZG93Q2hhdFRvZ2dsZUJpbmRlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2FsZXNBZ2VudFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkQWdlbnRzPXtlbmFibGVkQWdlbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dEZWJ1Z0Jhcj17ZW52aXZlT24gfHwgZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2tTYWxlc0FnZW50RGF0YT17bW9ja1NhbGVzQWdlbnREYXRhfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NhbGVzQWdlbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWFyY2hBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9FbnZpdmVDc3NQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9IYXJkY29weVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPC9XaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L1BhZ2VQcm92aWRlcj5cbiAgICAgICAgICAgICAgPC9BbXBsaXR1ZGVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvVXNlcklkZW50aXR5UHJvdmlkZXI+XG4gICAgICAgICAgPC9GZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcj5cbiAgICAgICAgPC9Mb2NhbFN0b3JhZ2VQcm92aWRlcj5cbiAgICAgIDwvTmV3T3JnQ29uZmlnUHJvdmlkZXI+XG4gICAgPC9FbnZpdmVDb25maWdQcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQSxNQUFNLFNBQVMsSUFBSUEsdUJBQU8sZ0JBQWdCO0FBZ0MxQyxNQUFNQyxzQkFBbUQsRUFBRSxVQUFVLG9CQUFvQjtBQUN2RixLQUFJLENBQUMsY0FBYyxTQUFTQyxpREFBWSxZQUFZLENBQ2xELFFBQU87QUFFVCxRQUFPLDJDQUFDQyx3Q0FBZ0IsV0FBMEI7O0FBU3BELE1BQU1DLHFCQUF1RCxFQUMzRCxVQUNBLGVBQ0EsYUFDQSxjQUNBLHlCQUNJO0FBQ0osS0FBSSxDQUFDLGNBQWMsU0FBU0YsaURBQVksV0FBVyxDQUNqRCxRQUFPO0FBRVQsUUFDRSwyQ0FBQ0c7RUFBNEM7WUFDM0MsMkNBQUNDO0dBQ2M7R0FDYixVQUFVO0dBRVQ7SUFDa0I7R0FDUzs7QUFJcEMsTUFBYUMsa0JBQWlELEVBQzVELFVBQ0EsY0FBYyxPQUNkLGVBQ0EsVUFDQSxvQkFDQSxNQUNBLFVBQ0EsUUFDQSxjQUNBLHdCQUNJO0NBQ0osTUFBTSxFQUFFLHFCQUFxQjtDQUM3QixNQUFNLENBQUMscUJBQXFCLDhDQUErRCxLQUFLO0NBQ2hHLE1BQU0sd0NBQTZCLE1BQU07Q0FFekMsTUFBTSxrREFBdUMsYUFBNkM7QUFDeEYsTUFBSSxDQUFDLFNBQ0g7QUFFRixVQUFRLFFBQVEsVUFBVSxDQUFDLENBQUMsT0FBTSxVQUFTO0FBQ3pDLFVBQU8sU0FBUyxvQ0FBb0MsTUFBTTtJQUMxRDtJQUNELEVBQUUsQ0FBQztDQUVOLE1BQU0sdURBQ0gsVUFBaUI7QUFDaEIsTUFBSSxDQUFDLGtCQUFrQixpQkFDckI7QUFFRixVQUFRLFFBQVEsaUJBQWlCLGlCQUFpQixNQUFNLENBQUMsQ0FBQyxPQUFNLGtCQUFpQjtBQUMvRSxVQUFPLFNBQVMsbUNBQW1DLGNBQWM7SUFDakU7SUFFSixDQUFDLGlCQUFpQixDQUNuQjtBQUVELDRCQUFnQjtBQUNkLDBCQUF3QixrQkFBa0IsbUJBQW1CO0VBRTdELE1BQU0sb0JBQW9CLFlBQVk7QUFDcEMsT0FBSTtBQUVGLDJCQURlLE1BQU0sU0FBUyxvQkFBb0IsaUJBQWlCLENBQ3JDO1lBQ3ZCLE9BQU87SUFDZCxNQUFNLGdCQUNKLGlCQUFpQixRQUFRLHdCQUFRLElBQUksTUFBTSwrQkFBK0I7QUFDNUUsV0FBTyxTQUFTLHVDQUF1QyxjQUFjO0FBQ3JFLGlDQUE2QixjQUFjOzs7QUFJL0MscUJBQW1CO0lBQ2xCO0VBQ0QsU0FBUztFQUNUO0VBQ0E7RUFDQTtFQUNELENBQUM7QUFFRiw0QkFBZ0I7QUFDZCxNQUFJLENBQUMsdUJBQXVCLG9CQUFvQixRQUM5QztBQUVGLHNCQUFvQixVQUFVO0FBQzlCLDBCQUF3QixrQkFBa0IsbUJBQW1CO0lBQzVEO0VBQUM7RUFBcUI7RUFBa0I7RUFBd0IsQ0FBQztDQUVwRSxNQUFNLDhDQUNFLElBQUlDLHFEQUFtQixxQkFBcUIsU0FBUyxFQUFFLENBQUMsRUFDOUQsQ0FBQyxxQkFBcUIsTUFBTSxDQUM3QjtBQUVELEtBQUksd0JBQXdCLEtBQzFCLFFBQU87QUFHVCxRQUNFLDJDQUFDQztFQUNvQjtFQUNuQixTQUFTLFNBQVMsb0JBQW9CO0VBQ3RDLGdCQUFnQixTQUFTLG9CQUFvQjtFQUM3QyxjQUFjLG9CQUFvQixJQUFJLElBQUk7RUFDMUMsT0FBTyxvQkFBb0IsSUFBSSxJQUFJO0VBQzdCO0VBQ0k7RUFDRjtFQUNNO1lBRWQsMkNBQUNDO0dBQXFCLFFBQVEsb0JBQW9CLGFBQWEsRUFBRTthQUMvRCwyQ0FBQ0MsOERBQ0MsMkNBQUNDO0lBQStDO2NBQzlDLDJDQUFDQztLQUFxQixlQUFlLFNBQVM7ZUFDNUMsMkNBQUNDO01BQWtCLDBCQUEwQixTQUFTO2dCQUNwRCwyQ0FBQ0M7T0FDYztPQUNiLHVCQUF1QixrQkFBa0I7aUJBRXpDLDJDQUFDQyw4REFDQywyQ0FBQ0M7UUFBaUIsaUJBQWlCLFNBQVM7a0JBQzFDLDJDQUFDQyx3REFDQyw0Q0FBQztTQUFrQztvQkFDakMsMkNBQUNDLDBEQUF5QixFQUMxQiwyQ0FBQztVQUNnQjtVQUNmLGNBQWMsWUFBWTtVQUNiO1VBQ087VUFFbkI7V0FDaUI7VUFDRCxHQUNIO1NBQ0gsR0FDRTtRQUNWO09BQ0c7TUFDQztLQUNJLEdBQ1I7SUFDRjtHQUNGIn0=
147
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5janMiLCJuYW1lcyI6WyJMb2dnZXIiLCJTZWFyY2hBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPEFnZW50V3JhcHBlclByb3BzPiIsIkVudml2ZUFnZW50IiwiU2VhcmNoUHJvdmlkZXIiLCJTYWxlc0FnZW50V3JhcHBlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFdyYXBwZXJQcm9wcz4iLCJTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciIsIlNhbGVzQWdlbnRQcm92aWRlciIsIkVudml2ZVByb3ZpZGVyOiBSZWFjdC5GQzxFbnZpdmVQcm92aWRlclByb3BzPiIsInJlc29sdmVkQmFzZUNvbmZpZ1ZlcnNpb25BdG9tIiwiRmVhdHVyZUZsYWdTZXJ2aWNlIiwiRW52aXZlQ29uZmlnUHJvdmlkZXIiLCJOZXdPcmdDb25maWdQcm92aWRlciIsIkxvY2FsU3RvcmFnZVByb3ZpZGVyIiwiRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIiLCJVc2VySWRlbnRpdHlQcm92aWRlciIsIkFtcGxpdHVkZVByb3ZpZGVyIiwiUGFnZVByb3ZpZGVyIiwiV2lkZ2V0Q29uZmlnUHJvdmlkZXIiLCJIYXJkY29weVByb3ZpZGVyIiwiRW52aXZlQ3NzUHJvdmlkZXIiLCJXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcblxuaW1wb3J0IHsgQW1wbGl0dWRlU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9hbXBsaXR1ZGVTZXJ2aWNlL2FtcGxpdHVkZVNlcnZpY2UnO1xuaW1wb3J0IHsgRW52aXZlU2VydmljZUNvbmZpZywgSUVudml2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZSc7XG5pbXBvcnQgeyByZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9lbnZpdmUvcmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbic7XG5pbXBvcnQgeyBJSGFyZGNvcHlTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2hhcmRjb3B5U2VydmljZSc7XG5pbXBvcnQgeyBJVXNlcklkZW50aXR5U2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy91c2VySWRlbnRpdHlTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IEFtcGxpdHVkZVByb3ZpZGVyIH0gZnJvbSAnLi4vYW1wbGl0dWRlQ29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVDb25maWdQcm92aWRlciB9IGZyb20gJy4uL2Vudml2ZUNvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ3NzUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDc3NDb250ZXh0JztcbmltcG9ydCB7IEZlYXR1cmVGbGFnU2VydmljZSwgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0JztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vbG9jYWxTdG9yYWdlQ29udGV4dCc7XG5pbXBvcnQgeyBOZXdPcmdDb25maWdQcm92aWRlciB9IGZyb20gJy4uL25ld09yZ0NvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgVXNlcklkZW50aXR5UHJvdmlkZXIgfSBmcm9tICcuLi91c2VySWRlbnRpdHlDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUFnZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQcm92aWRlciB9IGZyb20gJy4uL3NlYXJjaENvbnRleHQnO1xuaW1wb3J0IHsgU2FsZXNBZ2VudFByb3ZpZGVyIH0gZnJvbSAnLi4vc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQnO1xuaW1wb3J0IHsgU3lzdGVtU2V0dGluZ3NDb250ZXh0UHJvdmlkZXIgfSBmcm9tICcuLi9zeXN0ZW1TZXR0aW5nc0NvbnRleHQnO1xuaW1wb3J0IHsgSGFyZGNvcHlQcm92aWRlciB9IGZyb20gJy4uL2hhcmRjb3B5Q29udGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgV2luZG93Q2hhdFRvZ2dsZUJpbmRlciB9IGZyb20gJy4vV2luZG93Q2hhdFRvZ2dsZUJpbmRlcic7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2Vudml2ZUNvbnRleHQnKTtcblxuaW50ZXJmYWNlIEFnZW50V3JhcHBlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3Mge1xuICBvbkluamVjdGlvbkxvYWRpbmc/OiAoKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbiAgb25JbmplY3Rpb25TdWNjZXNzPzogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQ7XG4gIG9uSW5qZWN0aW9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZpdmVTZXJ2aWNlcyB7XG4gIGVudml2ZUNvbmZpZ1NlcnZpY2U6IElFbnZpdmVDb25maWdTZXJ2aWNlO1xuICBhbXBsaXR1ZGVTZXJ2aWNlOiBBbXBsaXR1ZGVTZXJ2aWNlO1xuICB1c2VySWRlbnRpdHlTZXJ2aWNlOiBJVXNlcklkZW50aXR5U2VydmljZTtcbiAgaGFyZGNvcHlTZXJ2aWNlOiBJSGFyZGNvcHlTZXJ2aWNlO1xuICBleHRlbnNpb25TZXJ2aWNlPzogRXh0ZW5zaW9uU3RhdHVzQ2FsbGJhY2tzO1xufVxuXG5pbnRlcmZhY2UgRW52aXZlUHJvdmlkZXJQcm9wcyBleHRlbmRzIEFnZW50V3JhcHBlclByb3BzIHtcbiAgaWRlbnRpZnlpbmdQcmVmaXg6IHN0cmluZztcbiAgc2VydmljZXM6IEVudml2ZVNlcnZpY2VzO1xuICBzaG93PzogYm9vbGVhbjtcbiAgZW52aXZlT24/OiBib29sZWFuO1xuICBjZG5Vcmw/OiBzdHJpbmc7XG4gIHJlYWN0QXBwTmFtZT86IHN0cmluZztcbiAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+ID0gKHsgY2hpbGRyZW4sIGVuYWJsZWRBZ2VudHMgfSkgPT4ge1xuICBpZiAoIWVuYWJsZWRBZ2VudHMuaW5jbHVkZXMoRW52aXZlQWdlbnQuU2VhcmNoQWdlbnQpKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHJldHVybiA8U2VhcmNoUHJvdmlkZXI+e2NoaWxkcmVufTwvU2VhcmNoUHJvdmlkZXI+O1xufTtcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRXcmFwcGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgc2hvd0RlYnVnQmFyOiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNhbGVzQWdlbnRXcmFwcGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50V3JhcHBlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBlbmFibGVkQWdlbnRzLFxuICBwcmV2aWV3TW9kZSxcbiAgc2hvd0RlYnVnQmFyLFxuICBtb2NrU2FsZXNBZ2VudERhdGEsXG59KSA9PiB7XG4gIGlmICghZW5hYmxlZEFnZW50cy5pbmNsdWRlcyhFbnZpdmVBZ2VudC5TYWxlc0FnZW50KSkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciBzaG93RGVidWdCYXI9e3Nob3dEZWJ1Z0Jhcn0+XG4gICAgICA8U2FsZXNBZ2VudFByb3ZpZGVyXG4gICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgbW9ja0RhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TYWxlc0FnZW50UHJvdmlkZXI+XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBFbnZpdmVQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlUHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgZW5hYmxlZEFnZW50cyxcbiAgc2VydmljZXMsXG4gIG1vY2tTYWxlc0FnZW50RGF0YSxcbiAgc2hvdyxcbiAgZW52aXZlT24sXG4gIGNkblVybCxcbiAgcmVhY3RBcHBOYW1lLFxuICBpZGVudGlmeWluZ1ByZWZpeCxcbn0pID0+IHtcbiAgY29uc3QgeyBleHRlbnNpb25TZXJ2aWNlIH0gPSBzZXJ2aWNlcztcbiAgY29uc3QgW2Vudml2ZVNlcnZpY2VDb25maWcsIHNldEVudml2ZVNlcnZpY2VDb25maWddID0gdXNlU3RhdGU8RW52aXZlU2VydmljZUNvbmZpZyB8IG51bGw+KG51bGwpO1xuICBjb25zdCBzZXRSZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uID0gdXNlU2V0QXRvbShyZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uQXRvbSk7XG4gIGNvbnN0IGRpZFJlcG9ydFN1Y2Nlc3NSZWYgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIGNvbnN0IGludm9rZUV4dGVuc2lvbkNhbGxiYWNrID0gdXNlQ2FsbGJhY2soKGNhbGxiYWNrPzogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQpID0+IHtcbiAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFByb21pc2UucmVzb2x2ZShjYWxsYmFjaygpKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ0V4dGVuc2lvbiBzdGF0dXMgY2FsbGJhY2sgZmFpbGVkJywgZXJyb3IpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaW52b2tlRXh0ZW5zaW9uRXJyb3JDYWxsYmFjayA9IHVzZUNhbGxiYWNrKFxuICAgIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGlmICghZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25FcnJvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBQcm9taXNlLnJlc29sdmUoZXh0ZW5zaW9uU2VydmljZS5vbkluamVjdGlvbkVycm9yKGVycm9yKSkuY2F0Y2goY2FsbGJhY2tFcnJvciA9PiB7XG4gICAgICAgIGxvZ2dlci5sb2dEZWJ1ZygnRXh0ZW5zaW9uIGVycm9yIGNhbGxiYWNrIGZhaWxlZCcsIGNhbGxiYWNrRXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBbZXh0ZW5zaW9uU2VydmljZV0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbnZva2VFeHRlbnNpb25DYWxsYmFjayhleHRlbnNpb25TZXJ2aWNlPy5vbkluamVjdGlvbkxvYWRpbmcpO1xuXG4gICAgLy8gQ2xlYXIgYW55IHByaW9yIG1lcmNoYW50J3MgcmVzb2x2ZWQgdmVyc2lvbiBiZWZvcmUgdGhlIG5ldyBmZXRjaCDigJQgdGhlXG4gICAgLy8gYXRvbSBpcyBtb2R1bGUtbGV2ZWwgYW5kIHN1cnZpdmVzIEVudml2ZVByb3ZpZGVyIHJlbW91bnRzIChlLmcuIHdoZW5cbiAgICAvLyBFbnZpdmUgSHViIHN3aXRjaGVzIG1lcmNoYW50cykuIFdpdGhvdXQgdGhlIHJlc2V0LCB0aGUgcHJldmlvdXNcbiAgICAvLyBtZXJjaGFudCdzIGBiYXNlVmVyc2lvbmAgd291bGQgbGVhayBpbnRvIHRoZSBuZXcgbWVyY2hhbnQncyBpbmZlcmVuY2VcbiAgICAvLyByZXF1ZXN0cyB3aGVuIHRoZSBuZXcgcmVzb2x1dGlvbiBmYWxscyBiYWNrIHRvIHRoZSBcImRlcGxveWVkXCIgc2VudGluZWxcbiAgICAvLyBhbmQgdGhlIGNvbmRpdGlvbmFsIHdyaXRlIGJlbG93IGlzIHNraXBwZWQuXG4gICAgc2V0UmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbih1bmRlZmluZWQpO1xuXG4gICAgY29uc3QgZmV0Y2hFbnZpdmVDb25maWcgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCBzZXJ2aWNlcy5lbnZpdmVDb25maWdTZXJ2aWNlLmdldEVudml2ZUNvbmZpZygpO1xuICAgICAgICBzZXRFbnZpdmVTZXJ2aWNlQ29uZmlnKGNvbmZpZyk7XG4gICAgICAgIC8vIEZvcndhcmQgb25seSByZWFsIHBpbnMgdG8gaW5mZXJlbmNlLiBiYXNlVmVyc2lvblNvdXJjZSA9PT0gXCJkZXBsb3llZFwiXG4gICAgICAgIC8vIGlzIHRoZSBzZW50aW5lbCBmb3IgXCJubyBtZXJjaGFudF9sYXllciwgbm8gb3ZlcnJpZGVcIiDigJQgbGVhdmluZyB0aGVcbiAgICAgICAgLy8gYXRvbSB1bmRlZmluZWQgbGV0cyBpbmZlcmVuY2UgZmFsbCB0aHJvdWdoIHRvIGJhY2tlbmQncyBkZWZhdWx0XG4gICAgICAgIC8vIHZlcnNpb24gc2VsZWN0aW9uIGluc3RlYWQgb2YgcGlubmluZyB0byB0aGUgbGl0ZXJhbCBzdHJpbmcgXCJkZXBsb3llZFwiLlxuICAgICAgICBjb25zdCB7IGJhc2VWZXJzaW9uLCBiYXNlVmVyc2lvblNvdXJjZSB9ID0gY29uZmlnLm9yZ0NvbmZpZz8ucmVzb2x1dGlvbiA/PyB7fTtcbiAgICAgICAgaWYgKGJhc2VWZXJzaW9uICYmIGJhc2VWZXJzaW9uU291cmNlICYmIGJhc2VWZXJzaW9uU291cmNlICE9PSAnZGVwbG95ZWQnKSB7XG4gICAgICAgICAgc2V0UmVzb2x2ZWRCYXNlQ29uZmlnVmVyc2lvbihiYXNlVmVyc2lvbik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkRXJyb3IgPVxuICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvciA6IG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgZW52aXZlIGNvbmZpZycpO1xuICAgICAgICBsb2dnZXIubG9nRXJyb3IoJ0ZhaWxlZCB0byBpbml0aWFsaXplIEVudml2ZVByb3ZpZGVyJywgcmVzb2x2ZWRFcnJvcik7XG4gICAgICAgIGludm9rZUV4dGVuc2lvbkVycm9yQ2FsbGJhY2socmVzb2x2ZWRFcnJvcik7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGZldGNoRW52aXZlQ29uZmlnKCk7XG4gIH0sIFtcbiAgICBzZXJ2aWNlcy5lbnZpdmVDb25maWdTZXJ2aWNlLFxuICAgIGV4dGVuc2lvblNlcnZpY2UsXG4gICAgaW52b2tlRXh0ZW5zaW9uQ2FsbGJhY2ssXG4gICAgaW52b2tlRXh0ZW5zaW9uRXJyb3JDYWxsYmFjayxcbiAgICBzZXRSZXNvbHZlZEJhc2VDb25maWdWZXJzaW9uLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZW52aXZlU2VydmljZUNvbmZpZyB8fCBkaWRSZXBvcnRTdWNjZXNzUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGlkUmVwb3J0U3VjY2Vzc1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICBpbnZva2VFeHRlbnNpb25DYWxsYmFjayhleHRlbnNpb25TZXJ2aWNlPy5vbkluamVjdGlvblN1Y2Nlc3MpO1xuICB9LCBbZW52aXZlU2VydmljZUNvbmZpZywgZXh0ZW5zaW9uU2VydmljZSwgaW52b2tlRXh0ZW5zaW9uQ2FsbGJhY2tdKTtcblxuICBjb25zdCBmZWF0dXJlRmxhZ1NlcnZpY2UgPSB1c2VNZW1vKFxuICAgICgpID0+IG5ldyBGZWF0dXJlRmxhZ1NlcnZpY2UoZW52aXZlU2VydmljZUNvbmZpZz8uZ2F0ZXMgPz8gW10pLFxuICAgIFtlbnZpdmVTZXJ2aWNlQ29uZmlnPy5nYXRlc10sXG4gICk7XG5cbiAgaWYgKGVudml2ZVNlcnZpY2VDb25maWcgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEVudml2ZUNvbmZpZ1Byb3ZpZGVyXG4gICAgICBpZGVudGlmeWluZ1ByZWZpeD17aWRlbnRpZnlpbmdQcmVmaXh9XG4gICAgICBiYXNlVXJsPXtzZXJ2aWNlcy5lbnZpdmVDb25maWdTZXJ2aWNlLmJhc2VVcmx9XG4gICAgICBvcmdMZXZlbEFwaUtleT17c2VydmljZXMuZW52aXZlQ29uZmlnU2VydmljZS5hcGlLZXl9XG4gICAgICBvcmdTaG9ydE5hbWU9e2Vudml2ZVNlcnZpY2VDb25maWcub3JnLm9yZy5zaG9ydF9uYW1lfVxuICAgICAgb3JnSWQ9e2Vudml2ZVNlcnZpY2VDb25maWcub3JnLm9yZy5pZH1cbiAgICAgIHNob3c9e3Nob3d9XG4gICAgICBlbnZpdmVPbj17ZW52aXZlT259XG4gICAgICBjZG5Vcmw9e2NkblVybH1cbiAgICAgIHJlYWN0QXBwTmFtZT17cmVhY3RBcHBOYW1lfVxuICAgID5cbiAgICAgIDxOZXdPcmdDb25maWdQcm92aWRlciBjb25maWc9e2Vudml2ZVNlcnZpY2VDb25maWcub3JnQ29uZmlnID8/IHt9fT5cbiAgICAgICAgPExvY2FsU3RvcmFnZVByb3ZpZGVyPlxuICAgICAgICAgIDxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlciBmZWF0dXJlRmxhZ1NlcnZpY2U9e2ZlYXR1cmVGbGFnU2VydmljZX0+XG4gICAgICAgICAgICA8VXNlcklkZW50aXR5UHJvdmlkZXIgdXNlcklkU2VydmljZT17c2VydmljZXMudXNlcklkZW50aXR5U2VydmljZX0+XG4gICAgICAgICAgICAgIDxBbXBsaXR1ZGVQcm92aWRlciBleHRlcm5hbEFtcGxpdHVkZVNlcnZpY2U9e3NlcnZpY2VzLmFtcGxpdHVkZVNlcnZpY2V9PlxuICAgICAgICAgICAgICAgIDxQYWdlUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgICAgICAgICAgIG9uVXJsUmVzb2x2ZXJOb3RSZWFkeT17ZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25FcnJvcn1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8V2lkZ2V0Q29uZmlnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxIYXJkY29weVByb3ZpZGVyIGhhcmRjb3B5U2VydmljZT17c2VydmljZXMuaGFyZGNvcHlTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICAgICAgICA8RW52aXZlQ3NzUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoQWdlbnRXcmFwcGVyIGVuYWJsZWRBZ2VudHM9e2VuYWJsZWRBZ2VudHN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8V2luZG93Q2hhdFRvZ2dsZUJpbmRlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2FsZXNBZ2VudFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkQWdlbnRzPXtlbmFibGVkQWdlbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dEZWJ1Z0Jhcj17ZW52aXZlT24gfHwgZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2tTYWxlc0FnZW50RGF0YT17bW9ja1NhbGVzQWdlbnREYXRhfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NhbGVzQWdlbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWFyY2hBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9FbnZpdmVDc3NQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9IYXJkY29weVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPC9XaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L1BhZ2VQcm92aWRlcj5cbiAgICAgICAgICAgICAgPC9BbXBsaXR1ZGVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvVXNlcklkZW50aXR5UHJvdmlkZXI+XG4gICAgICAgICAgPC9GZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcj5cbiAgICAgICAgPC9Mb2NhbFN0b3JhZ2VQcm92aWRlcj5cbiAgICAgIDwvTmV3T3JnQ29uZmlnUHJvdmlkZXI+XG4gICAgPC9FbnZpdmVDb25maWdQcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBLE1BQU0sU0FBUyxJQUFJQSx1QkFBTyxnQkFBZ0I7QUFnQzFDLE1BQU1DLHNCQUFtRCxFQUFFLFVBQVUsb0JBQW9CO0FBQ3ZGLEtBQUksQ0FBQyxjQUFjLFNBQVNDLGlEQUFZLFlBQVksQ0FDbEQsUUFBTztBQUVULFFBQU8sMkNBQUNDLHdDQUFnQixXQUEwQjs7QUFTcEQsTUFBTUMscUJBQXVELEVBQzNELFVBQ0EsZUFDQSxhQUNBLGNBQ0EseUJBQ0k7QUFDSixLQUFJLENBQUMsY0FBYyxTQUFTRixpREFBWSxXQUFXLENBQ2pELFFBQU87QUFFVCxRQUNFLDJDQUFDRztFQUE0QztZQUMzQywyQ0FBQ0M7R0FDYztHQUNiLFVBQVU7R0FFVDtJQUNrQjtHQUNTOztBQUlwQyxNQUFhQyxrQkFBaUQsRUFDNUQsVUFDQSxjQUFjLE9BQ2QsZUFDQSxVQUNBLG9CQUNBLE1BQ0EsVUFDQSxRQUNBLGNBQ0Esd0JBQ0k7Q0FDSixNQUFNLEVBQUUscUJBQXFCO0NBQzdCLE1BQU0sQ0FBQyxxQkFBcUIsOENBQStELEtBQUs7Q0FDaEcsTUFBTSxxREFBMENDLGdFQUE4QjtDQUM5RSxNQUFNLHdDQUE2QixNQUFNO0NBRXpDLE1BQU0sa0RBQXVDLGFBQTZDO0FBQ3hGLE1BQUksQ0FBQyxTQUNIO0FBRUYsVUFBUSxRQUFRLFVBQVUsQ0FBQyxDQUFDLE9BQU0sVUFBUztBQUN6QyxVQUFPLFNBQVMsb0NBQW9DLE1BQU07SUFDMUQ7SUFDRCxFQUFFLENBQUM7Q0FFTixNQUFNLHVEQUNILFVBQWlCO0FBQ2hCLE1BQUksQ0FBQyxrQkFBa0IsaUJBQ3JCO0FBRUYsVUFBUSxRQUFRLGlCQUFpQixpQkFBaUIsTUFBTSxDQUFDLENBQUMsT0FBTSxrQkFBaUI7QUFDL0UsVUFBTyxTQUFTLG1DQUFtQyxjQUFjO0lBQ2pFO0lBRUosQ0FBQyxpQkFBaUIsQ0FDbkI7QUFFRCw0QkFBZ0I7QUFDZCwwQkFBd0Isa0JBQWtCLG1CQUFtQjtBQVE3RCwrQkFBNkIsT0FBVTtFQUV2QyxNQUFNLG9CQUFvQixZQUFZO0FBQ3BDLE9BQUk7SUFDRixNQUFNLFNBQVMsTUFBTSxTQUFTLG9CQUFvQixpQkFBaUI7QUFDbkUsMkJBQXVCLE9BQU87SUFLOUIsTUFBTSxFQUFFLGFBQWEsc0JBQXNCLE9BQU8sV0FBVyxjQUFjLEVBQUU7QUFDN0UsUUFBSSxlQUFlLHFCQUFxQixzQkFBc0IsV0FDNUQsOEJBQTZCLFlBQVk7WUFFcEMsT0FBTztJQUNkLE1BQU0sZ0JBQ0osaUJBQWlCLFFBQVEsd0JBQVEsSUFBSSxNQUFNLCtCQUErQjtBQUM1RSxXQUFPLFNBQVMsdUNBQXVDLGNBQWM7QUFDckUsaUNBQTZCLGNBQWM7OztBQUkvQyxxQkFBbUI7SUFDbEI7RUFDRCxTQUFTO0VBQ1Q7RUFDQTtFQUNBO0VBQ0E7RUFDRCxDQUFDO0FBRUYsNEJBQWdCO0FBQ2QsTUFBSSxDQUFDLHVCQUF1QixvQkFBb0IsUUFDOUM7QUFFRixzQkFBb0IsVUFBVTtBQUM5QiwwQkFBd0Isa0JBQWtCLG1CQUFtQjtJQUM1RDtFQUFDO0VBQXFCO0VBQWtCO0VBQXdCLENBQUM7Q0FFcEUsTUFBTSw4Q0FDRSxJQUFJQyxxREFBbUIscUJBQXFCLFNBQVMsRUFBRSxDQUFDLEVBQzlELENBQUMscUJBQXFCLE1BQU0sQ0FDN0I7QUFFRCxLQUFJLHdCQUF3QixLQUMxQixRQUFPO0FBR1QsUUFDRSwyQ0FBQ0M7RUFDb0I7RUFDbkIsU0FBUyxTQUFTLG9CQUFvQjtFQUN0QyxnQkFBZ0IsU0FBUyxvQkFBb0I7RUFDN0MsY0FBYyxvQkFBb0IsSUFBSSxJQUFJO0VBQzFDLE9BQU8sb0JBQW9CLElBQUksSUFBSTtFQUM3QjtFQUNJO0VBQ0Y7RUFDTTtZQUVkLDJDQUFDQztHQUFxQixRQUFRLG9CQUFvQixhQUFhLEVBQUU7YUFDL0QsMkNBQUNDLDhEQUNDLDJDQUFDQztJQUErQztjQUM5QywyQ0FBQ0M7S0FBcUIsZUFBZSxTQUFTO2VBQzVDLDJDQUFDQztNQUFrQiwwQkFBMEIsU0FBUztnQkFDcEQsMkNBQUNDO09BQ2M7T0FDYix1QkFBdUIsa0JBQWtCO2lCQUV6QywyQ0FBQ0MsOERBQ0MsMkNBQUNDO1FBQWlCLGlCQUFpQixTQUFTO2tCQUMxQywyQ0FBQ0Msd0RBQ0MsNENBQUM7U0FBa0M7b0JBQ2pDLDJDQUFDQywwREFBeUIsRUFDMUIsMkNBQUM7VUFDZ0I7VUFDZixjQUFjLFlBQVk7VUFDYjtVQUNPO1VBRW5CO1dBQ2lCO1VBQ0QsR0FDSDtTQUNILEdBQ0U7UUFDVjtPQUNHO01BQ0M7S0FDSSxHQUNSO0lBQ0Y7R0FDRiJ9