@integry/sdk 4.7.39 → 4.7.41

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 (267) hide show
  1. package/dist/esm/index.csm.js +1 -1
  2. package/dist/umd/index.umd.js +1 -1
  3. package/package.json +6 -1
  4. package/.eslintignore +0 -1
  5. package/.vscode/launch.json +0 -17
  6. package/CHANGELOG_INTERNAL.md +0 -134
  7. package/README_INTERNAL.md +0 -176
  8. package/THIRD_PARTY_LICENSES +0 -525
  9. package/generateTests.js +0 -80
  10. package/jest.config.cjs +0 -10
  11. package/src/components/AddTagButton/index.ts +0 -23
  12. package/src/components/BasicSelect/index.ts +0 -123
  13. package/src/components/BasicSelect/styles.module.scss +0 -44
  14. package/src/components/Button/index.ts +0 -97
  15. package/src/components/Button/styles.module.scss +0 -152
  16. package/src/components/CheckboxGroup/Checkbox.ts +0 -104
  17. package/src/components/CheckboxGroup/index.ts +0 -190
  18. package/src/components/CheckboxGroup/styles.module.scss +0 -63
  19. package/src/components/CollapsedMenu/index.ts +0 -104
  20. package/src/components/CollapsedMenu/styles.module.scss +0 -46
  21. package/src/components/ConfigureFieldWrapper/index.ts +0 -85
  22. package/src/components/ConfigureFieldWrapper/styles.module.scss +0 -57
  23. package/src/components/EditableText/index.ts +0 -121
  24. package/src/components/EditableText/styles.module.scss +0 -38
  25. package/src/components/EditableTextArea/index.ts +0 -143
  26. package/src/components/EditableTextArea/styles.module.scss +0 -91
  27. package/src/components/ErrorMessage/index.ts +0 -16
  28. package/src/components/ErrorMessage/styles.module.scss +0 -19
  29. package/src/components/ErrorPage/index.ts +0 -42
  30. package/src/components/ErrorPage/styles.module.scss +0 -26
  31. package/src/components/Footer/index.ts +0 -41
  32. package/src/components/Footer/styles.module.scss +0 -40
  33. package/src/components/HTMLContent/index.tsx +0 -205
  34. package/src/components/HTMLContent/styles.module.scss +0 -3
  35. package/src/components/InfoBox/index.ts +0 -48
  36. package/src/components/InfoBox/styles.module.scss +0 -21
  37. package/src/components/Input/BaseInput/index.ts +0 -170
  38. package/src/components/Input/BaseInput/styles.module.scss +0 -95
  39. package/src/components/Input/DateInput/index.ts +0 -103
  40. package/src/components/Input/DateInput/styles.module.scss +0 -50
  41. package/src/components/Input/Input/index.ts +0 -225
  42. package/src/components/Input/Input/styles.module.scss +0 -16
  43. package/src/components/Input/PasswordInput/index.ts +0 -164
  44. package/src/components/Input/PasswordInput/styles.module.scss +0 -37
  45. package/src/components/Input/index.ts +0 -7
  46. package/src/components/Label/index.ts +0 -61
  47. package/src/components/Label/styles.module.scss +0 -41
  48. package/src/components/LargeLoader/index.ts +0 -25
  49. package/src/components/LargeLoader/styles.module.scss +0 -16
  50. package/src/components/Listbox/ListBoxItem.ts +0 -57
  51. package/src/components/Listbox/index.ts +0 -488
  52. package/src/components/Listbox/styles.module.scss +0 -197
  53. package/src/components/Loader/index.ts +0 -25
  54. package/src/components/Loader/styles.module.scss +0 -16
  55. package/src/components/MediaGallery/MediaGalleryModal.ts +0 -82
  56. package/src/components/MediaGallery/MediaSlider.ts +0 -76
  57. package/src/components/MediaGallery/index.ts +0 -92
  58. package/src/components/MediaGallery/styles.module.scss +0 -156
  59. package/src/components/MediaUpload/index.ts +0 -233
  60. package/src/components/MediaUpload/styles.module.scss +0 -118
  61. package/src/components/Modal/index.ts +0 -87
  62. package/src/components/Modal/styles.module.scss +0 -441
  63. package/src/components/MultipurposeField/Dropdown/ListBoxItem.tsx +0 -59
  64. package/src/components/MultipurposeField/Dropdown/index.tsx +0 -1202
  65. package/src/components/MultipurposeField/Dropdown/styles.module.scss +0 -215
  66. package/src/components/MultipurposeField/TagMenu/index.ts +0 -536
  67. package/src/components/MultipurposeField/TagMenu/styles.module.scss +0 -175
  68. package/src/components/MultipurposeField/TagOptions/index.tsx +0 -83
  69. package/src/components/MultipurposeField/TagOptions/styles.module.scss +0 -95
  70. package/src/components/MultipurposeField/index.tsx +0 -944
  71. package/src/components/MultipurposeField/styles.module.scss +0 -77
  72. package/src/components/NewModal/index.ts +0 -69
  73. package/src/components/NewModal/styles.module.scss +0 -70
  74. package/src/components/OverflowTooltip/index.tsx +0 -59
  75. package/src/components/PopUp/ConfirmationPopUp/index.ts +0 -58
  76. package/src/components/PopUp/ConfirmationPopUp/styles.module.scss +0 -49
  77. package/src/components/PopUp/SuccessPopUp/index.ts +0 -62
  78. package/src/components/PopUp/SuccessPopUp/styles.module.scss +0 -38
  79. package/src/components/RadioGroup/Radio.ts +0 -128
  80. package/src/components/RadioGroup/index.ts +0 -169
  81. package/src/components/RadioGroup/styles.module.scss +0 -81
  82. package/src/components/Search/index.ts +0 -69
  83. package/src/components/Search/styles.module.scss +0 -149
  84. package/src/components/TabBar/Tab.ts +0 -33
  85. package/src/components/TabBar/index.ts +0 -64
  86. package/src/components/TabBar/styles.module.scss +0 -43
  87. package/src/components/Tag/index.ts +0 -29
  88. package/src/components/Tag/styles.module.scss +0 -57
  89. package/src/components/TagsMenu/index.ts +0 -1697
  90. package/src/components/TagsMenu/styles.module.scss +0 -350
  91. package/src/components/TestComponent/index.ts +0 -71
  92. package/src/components/TestComponent/styles.module.scss +0 -152
  93. package/src/components/TextArea/index.ts +0 -172
  94. package/src/components/TextArea/styles.module.scss +0 -72
  95. package/src/components/TextContent/index.tsx +0 -128
  96. package/src/components/TextContent/styles.module.scss +0 -6
  97. package/src/components/ThreeDotLoader/index.ts +0 -39
  98. package/src/components/ThreeDotLoader/styles.module.scss +0 -41
  99. package/src/components/TimeInput/index.ts +0 -129
  100. package/src/components/TimeInput/styles.module.scss +0 -16
  101. package/src/components/Toggle/index.ts +0 -34
  102. package/src/components/Toggle/styles.module.scss +0 -56
  103. package/src/components/Toggle-v2/index.ts +0 -40
  104. package/src/components/Toggle-v2/styles.module.scss +0 -86
  105. package/src/components/Tooltip/index.ts +0 -271
  106. package/src/components/Tooltip/styles.module.scss +0 -105
  107. package/src/components/form/FunctionField/index.ts +0 -816
  108. package/src/components/form/FunctionField/styles.module.scss +0 -478
  109. package/src/components/form/ObjectField/__snapshots__/index.ts.test.tsx.snap +0 -3
  110. package/src/components/form/ObjectField/index.ts +0 -593
  111. package/src/components/form/ObjectField/index.ts.test.tsx +0 -213
  112. package/src/components/form/ObjectField/styles.module.scss +0 -103
  113. package/src/components/form/index.ts +0 -4
  114. package/src/contexts/AppContext.ts +0 -12
  115. package/src/declaration.d.ts +0 -7
  116. package/src/extensions/HMAC.ts +0 -25
  117. package/src/extensions/IntegryAPIError.ts +0 -19
  118. package/src/features/common/AccountDropdown/index.ts +0 -291
  119. package/src/features/common/AccountDropdown/styles.module.scss +0 -19
  120. package/src/features/common/ActionForm/index.ts +0 -2602
  121. package/src/features/common/ActionForm/styles.module.scss +0 -35
  122. package/src/features/common/AppCard/index.ts +0 -207
  123. package/src/features/common/AppCard/styles.module.scss +0 -117
  124. package/src/features/common/AppCardCompact/index.ts +0 -189
  125. package/src/features/common/AppCardCompact/styles.module.scss +0 -141
  126. package/src/features/common/AuthSelector/index.ts +0 -537
  127. package/src/features/common/AuthSelector/styles.module.scss +0 -161
  128. package/src/features/common/AuthSelectorCompact/index.ts +0 -706
  129. package/src/features/common/AuthSelectorCompact/styles.module.scss +0 -219
  130. package/src/features/common/AuthSelectorDropdown/index.ts +0 -704
  131. package/src/features/common/AuthSelectorDropdown/styles.module.scss +0 -361
  132. package/src/features/common/AuthSelectorV2/index.ts +0 -336
  133. package/src/features/common/AuthSelectorV2/styles.module.scss +0 -235
  134. package/src/features/common/DynamicField/index.ts +0 -402
  135. package/src/features/common/DynamicField/styles.module.scss +0 -266
  136. package/src/features/common/DynamicTypedField/index.ts +0 -504
  137. package/src/features/common/DynamicTypedField/styles.module.scss +0 -135
  138. package/src/features/common/FunctionForm/index.ts +0 -1095
  139. package/src/features/common/FunctionForm/styles.module.scss +0 -225
  140. package/src/features/common/MappingUI/index.ts +0 -649
  141. package/src/features/common/MappingUI/styles.module.scss +0 -121
  142. package/src/features/common/MarketplaceAppCard/index.ts +0 -279
  143. package/src/features/common/MarketplaceAppCard/styles.module.scss +0 -231
  144. package/src/features/common/MarketplaceAppCardCompact/index.ts +0 -283
  145. package/src/features/common/MarketplaceAppCardCompact/styles.module.scss +0 -255
  146. package/src/features/common/NewMappingUI/index.ts +0 -515
  147. package/src/features/common/NewMappingUI/styles.module.scss +0 -113
  148. package/src/features/common/RequestAppWidget/RequestAppModal/index.ts +0 -67
  149. package/src/features/common/RequestAppWidget/RequestAppModal/styles.module.scss +0 -23
  150. package/src/features/common/RequestAppWidget/index.ts +0 -48
  151. package/src/features/common/RequestAppWidget/request-app-form.ts +0 -89
  152. package/src/features/common/RequestAppWidget/styles.module.scss +0 -43
  153. package/src/features/common/SectionField/index.ts +0 -272
  154. package/src/features/common/SectionField/styles.module.scss +0 -67
  155. package/src/features/common/Step/index.ts +0 -827
  156. package/src/features/common/Step/styles.module.scss +0 -12
  157. package/src/features/common/StepNavigation/CollapsedSteps.ts +0 -131
  158. package/src/features/common/StepNavigation/NavItem.ts +0 -111
  159. package/src/features/common/StepNavigation/index.ts +0 -261
  160. package/src/features/common/StepNavigation/styles.module.scss +0 -117
  161. package/src/features/common/Steps/index.ts +0 -1140
  162. package/src/features/common/Steps/styles.module.scss +0 -314
  163. package/src/features/containers/AppFlowContainer/AppFlowListing/compactStyles.module.scss +0 -404
  164. package/src/features/containers/AppFlowContainer/AppFlowListing/flow-instance.tsx +0 -367
  165. package/src/features/containers/AppFlowContainer/AppFlowListing/flowCard.test.tsx +0 -58
  166. package/src/features/containers/AppFlowContainer/AppFlowListing/flowCard.tsx +0 -208
  167. package/src/features/containers/AppFlowContainer/AppFlowListing/flowCardCompact.test.tsx +0 -49
  168. package/src/features/containers/AppFlowContainer/AppFlowListing/flowCardCompact.tsx +0 -421
  169. package/src/features/containers/AppFlowContainer/AppFlowListing/flowInstanceCompact.tsx +0 -577
  170. package/src/features/containers/AppFlowContainer/AppFlowListing/index.tsx +0 -83
  171. package/src/features/containers/AppFlowContainer/AppFlowListing/styles.module.scss +0 -233
  172. package/src/features/containers/AppFlowContainer/AppFlowWrap/app-page-loader.tsx +0 -45
  173. package/src/features/containers/AppFlowContainer/AppFlowWrap/index.tsx +0 -1085
  174. package/src/features/containers/AppFlowContainer/AppFlowWrap/styles.module.scss +0 -465
  175. package/src/features/containers/AppFlowContainer/Authentication/index.ts +0 -610
  176. package/src/features/containers/AppFlowContainer/Authentication/styles.module.scss +0 -468
  177. package/src/features/containers/AppFlowContainer/index.ts +0 -114
  178. package/src/features/containers/AppPageContainer/AppPage/index.tsx +0 -262
  179. package/src/features/containers/AppPageContainer/AppPage/styles.module.scss +0 -120
  180. package/src/features/containers/AppPageContainer/IntegrationCard/index.ts +0 -165
  181. package/src/features/containers/AppPageContainer/IntegrationCard/styles.module.scss +0 -81
  182. package/src/features/containers/AppPageContainer/index.tsx +0 -93
  183. package/src/features/containers/AppPageContainer/styles.module.scss +0 -0
  184. package/src/features/containers/AppsForFlows/index.ts +0 -161
  185. package/src/features/containers/AppsForFlows/styles.module.scss +0 -280
  186. package/src/features/containers/AppsForFlowsCompact/index.ts +0 -161
  187. package/src/features/containers/AppsForFlowsCompact/styles.module.scss +0 -279
  188. package/src/features/containers/AuthSetupContainer/AppSelection.ts +0 -73
  189. package/src/features/containers/AuthSetupContainer/AuthTypeSelection.ts +0 -67
  190. package/src/features/containers/AuthSetupContainer/Footer.ts +0 -32
  191. package/src/features/containers/AuthSetupContainer/Header.ts +0 -39
  192. package/src/features/containers/AuthSetupContainer/PostAdditionPopup.ts +0 -27
  193. package/src/features/containers/AuthSetupContainer/index.ts +0 -349
  194. package/src/features/containers/AuthSetupContainer/styles.module.scss +0 -229
  195. package/src/features/containers/FlowSetupContainer/index.ts +0 -391
  196. package/src/features/containers/FlowSetupContainer/styles.module.scss +0 -18
  197. package/src/features/containers/MarkeplaceApps/index.ts +0 -583
  198. package/src/features/containers/MarkeplaceApps/styles.module.scss +0 -558
  199. package/src/features/containers/MarketplaceAppsCompact/index.ts +0 -585
  200. package/src/features/containers/MarketplaceAppsCompact/styles.module.scss +0 -563
  201. package/src/features/containers/MarketplaceAppsContainer/index.ts +0 -91
  202. package/src/features/containers/MarketplaceContainer/AppCard/index.ts +0 -91
  203. package/src/features/containers/MarketplaceContainer/AppCard/styles.module.scss +0 -66
  204. package/src/features/containers/MarketplaceContainer/AppListing/index.ts +0 -34
  205. package/src/features/containers/MarketplaceContainer/AppListing/styles.module.scss +0 -10
  206. package/src/features/containers/MarketplaceContainer/MarketplaceContentWrap/index.ts +0 -132
  207. package/src/features/containers/MarketplaceContainer/MarketplaceContentWrap/styles.module.scss +0 -117
  208. package/src/features/containers/MarketplaceContainer/index.ts +0 -242
  209. package/src/features/containers/MarketplaceContainer/styles.module.scss +0 -84
  210. package/src/features/containers/SDKContainer/index.ts +0 -817
  211. package/src/features/containers/SDKContainer/styles.module.scss +0 -266
  212. package/src/features/containers/SDKDebugContainer/index.ts +0 -137
  213. package/src/features/containers/SDKDebugContainer/styles.module.scss +0 -37
  214. package/src/features/containers/SDKFailedContainer/index.ts +0 -117
  215. package/src/features/containers/SDKFailedContainer/styles.module.scss +0 -57
  216. package/src/features/integrations/IntegrationRow/Icons.ts +0 -77
  217. package/src/features/integrations/IntegrationRow/index.ts +0 -129
  218. package/src/features/integrations/IntegrationRow/styles.module.scss +0 -62
  219. package/src/features/integrations/IntegrationsHeader/index.ts +0 -34
  220. package/src/features/integrations/IntegrationsHeader/styles.module.scss +0 -47
  221. package/src/features/integrations/IntegrationsList/index.ts +0 -252
  222. package/src/features/integrations/IntegrationsList/styles.module.scss +0 -67
  223. package/src/features/templates/Template/index.ts +0 -295
  224. package/src/features/templates/Template/styles.module.scss +0 -226
  225. package/src/features/templates/TemplatesView/index.ts +0 -368
  226. package/src/features/templates/TemplatesView/styles.module.scss +0 -71
  227. package/src/features/templates/TemplatesViewCompact/index.ts +0 -364
  228. package/src/features/templates/TemplatesViewCompact/styles.module.scss +0 -141
  229. package/src/hooks/useAutosizeTextArea.ts +0 -22
  230. package/src/hooks/useCustomRef.ts +0 -13
  231. package/src/hooks/useDebounce.ts +0 -17
  232. package/src/hooks/useElementResize.ts +0 -40
  233. package/src/hooks/useEventListener.ts +0 -42
  234. package/src/hooks/useHover.ts +0 -40
  235. package/src/hooks/useOnClickOutside.ts +0 -32
  236. package/src/index.ts +0 -2244
  237. package/src/index.umd.ts +0 -13
  238. package/src/interfaces/index.ts +0 -938
  239. package/src/modules/api/index.ts +0 -1325
  240. package/src/modules/api/responseHandler.ts +0 -38
  241. package/src/modules/event-emitter/index.ts +0 -72
  242. package/src/modules/event-emitter/runners/abstract.ts +0 -21
  243. package/src/modules/event-emitter/runners/default.ts +0 -11
  244. package/src/modules/event-emitter/runners/ntimes.ts +0 -28
  245. package/src/modules/event-emitter/types.ts +0 -34
  246. package/src/store/actionFunctions.ts +0 -1578
  247. package/src/store/index.ts +0 -17
  248. package/src/store/initialState.ts +0 -58
  249. package/src/types/index.ts +0 -320
  250. package/src/types/preact-compat.d.ts +0 -4
  251. package/src/types/store.ts +0 -366
  252. package/src/types/utils.ts +0 -19
  253. package/src/utils/ActivityOutputUtils.ts +0 -176
  254. package/src/utils/common.ts +0 -20
  255. package/src/utils/copyToClipboard.ts +0 -24
  256. package/src/utils/datetime.ts +0 -101
  257. package/src/utils/getUrlParam.ts +0 -11
  258. package/src/utils/isAuthMessage.ts +0 -16
  259. package/src/utils/isBrowser.ts +0 -1
  260. package/src/utils/jsonEncodeDecode.ts +0 -15
  261. package/src/utils/objectUtils.ts +0 -117
  262. package/src/utils/popup.ts +0 -30
  263. package/src/utils/searchJson.ts +0 -51
  264. package/src/utils/stepUtils.ts +0 -45
  265. package/src/utils/truncate.ts +0 -6
  266. package/test/setup.ts +0 -1
  267. package/vitest.config.ts +0 -16
@@ -1,704 +0,0 @@
1
- import { html, Component } from 'htm/preact';
2
- import { connect } from 'unistore/preact';
3
- import cx from 'classnames';
4
-
5
- import { Loader } from '@/components/Loader';
6
- import { IntegryAPI } from '@/modules/api';
7
- import { Radio } from '@/components/RadioGroup/Radio';
8
- import { ErrorMessage } from '@/components/ErrorMessage';
9
- import { Hint } from '@/components/Tooltip';
10
- import { Authorization, StoreType } from '@/types/store';
11
- import { actionFunctions } from '@/store';
12
- import isBrowser from '@/utils/isBrowser';
13
- import AppContext from '@/contexts/AppContext';
14
- import { Modal } from '@/components/Modal';
15
-
16
- import { openPopupWindow } from '@/utils/popup';
17
- import { AuthData, isAuthMessage } from '@/utils/isAuthMessage';
18
- import { App } from '@/interfaces';
19
- import styles from './styles.module.scss';
20
-
21
- interface AuthSelectorPropsType extends StoreType {
22
- actionId: number;
23
- appId: number;
24
- appData: any;
25
- apiHandler: IntegryAPI;
26
- showErrors?: boolean;
27
- onAuthSelected?: (
28
- authId: number | null,
29
- isVerified: boolean,
30
- override: boolean,
31
- ) => void;
32
- onAuthDeleted?: (authId: number | null, appId: number | null) => void;
33
- closePopup: () => void;
34
- onNextButtonClick?: () => void;
35
- showPopup: boolean;
36
- authWindowSwitch?: boolean;
37
- autoNextOnAuth?: boolean;
38
- autoSelectAuth?: boolean;
39
- onNewAccountAdded?: (authId: number) => void;
40
- selectedAuth: any;
41
- authorizations: any[];
42
- authPopoverRef: any;
43
- authPopoverCtaRef: any;
44
- setShowAuthPopup?: (state: boolean) => void;
45
- }
46
-
47
- interface AuthSelectorStateType {
48
- isLoading: boolean;
49
- fetched: boolean;
50
- willDeleteAuthWithIndex: number | null;
51
- }
52
-
53
- const Confirmation = (props: { callback(shouldDelete: boolean): void }) => {
54
- const { callback } = props;
55
- return html`
56
- <${Modal} isOpen=${true} className=${'authConfirmation'}>
57
- <div class=${styles.confirmation}>
58
- <div class=${styles.confirmationHeading}>
59
- <svg
60
- width="22"
61
- height="22"
62
- viewBox="0 0 22 22"
63
- fill="none"
64
- xmlns="http://www.w3.org/2000/svg"
65
- >
66
- <path
67
- d="M10.9969 1.63429C11.1625 1.63429 11.5735 1.68457 11.8004 2.13714L20.2953 19.0206C20.5039 19.4354 20.3444 19.7937 20.2647 19.9257C20.1849 20.0577 19.9519 20.372 19.4918 20.372H2.50202C2.04201 20.372 1.80894 20.064 1.7292 19.9257C1.64946 19.7937 1.48999 19.4354 1.69853 19.0206L10.1934 2.13714C10.4204 1.68457 10.8313 1.63429 10.9969 1.63429ZM10.9969 0C10.1198 0 9.24275 0.458857 8.7766 1.38286L0.281691 18.2663C-0.577 19.9697 0.631301 22 2.50202 22H19.498C21.3687 22 22.577 19.9697 21.7183 18.2663L13.2173 1.38286C12.7511 0.458857 11.874 0 10.9969 0Z"
68
- fill="#F05C42"
69
- />
70
- <path
71
- d="M10.9941 15.6943C10.6997 15.6943 10.4544 15.8012 10.252 16.0086C10.0496 16.2161 9.94531 16.4675 9.94531 16.7629C9.94531 17.1023 10.0496 17.3663 10.2643 17.5549C10.4789 17.7435 10.7243 17.8378 11.0064 17.8378C11.2886 17.8378 11.5278 17.7435 11.7424 17.5486C11.951 17.36 12.0552 17.096 12.0552 16.7629C12.0552 16.4675 11.951 16.2161 11.7424 16.0086C11.54 15.7949 11.2886 15.6943 10.9941 15.6943Z"
72
- fill="#F05C42"
73
- />
74
- <path
75
- d="M11.0074 7.65039C10.4308 7.65039 9.96467 8.14068 9.98921 8.73153L10.167 13.6023C10.1793 14.0675 10.5534 14.4383 11.0073 14.4383C11.4612 14.4383 11.8353 14.0675 11.8476 13.6023L12.0317 8.73153C12.0501 8.14068 11.5839 7.65039 11.0074 7.65039Z"
76
- fill="#F05C42"
77
- />
78
- </svg>
79
- Disconnect account
80
- </div>
81
- <div class=${styles.confirmationDescription}>
82
- <p>
83
- Multiple integrations are configured with this account. They will
84
- all stop working if you disconnect it.
85
- </p>
86
- <p>Are you sure?</p>
87
- </div>
88
- <div class=${styles.confirmationActions}>
89
- <button
90
- class=${styles.secondaryCTA}
91
- type="button"
92
- onclick=${(e: any) => {
93
- e.stopPropagation();
94
- callback(false);
95
- }}
96
- >
97
- Cancel
98
- </button>
99
- <button
100
- class=${styles.primaryCTA}
101
- type="button"
102
- onclick=${(e: any) => {
103
- e.stopPropagation();
104
- callback(true);
105
- }}
106
- >
107
- Disconnect
108
- </button>
109
- </div>
110
- </div>
111
- <//>
112
- `;
113
- return html`
114
- <div class=${styles.confirmation}>
115
- <div class=${styles.text}>Are you sure?</div>
116
- <button onclick=${() => callback(true)}>Yes</button>
117
- <button onclick=${() => callback(false)}>No</button>
118
- </div>
119
- `;
120
- };
121
-
122
- const Resend = () => html`
123
- <svg
124
- class=${styles.resend}
125
- width="13"
126
- height="15"
127
- viewBox="0 0 13 15"
128
- fill="none"
129
- xmlns="http://www.w3.org/2000/svg"
130
- >
131
- <path
132
- d="M11.8403 5.34L10.1453 6.345C10.5053 6.96 10.7003 7.68 10.7003 8.445C10.7003 10.77 8.81031 12.645 6.50031 12.645C4.19031 12.645 2.30031 10.755 2.30031 8.445C2.30031 6.135 4.19031 4.245 6.50031 4.245V6.15L11.1053 3.27L6.50031 0.375V2.28C3.09531 2.28 0.320312 5.055 0.320312 8.46C0.320313 11.85 3.09531 14.625 6.50031 14.625C9.90531 14.625 12.6803 11.85 12.6803 8.445C12.6803 7.32 12.3653 6.255 11.8403 5.34Z"
133
- fill="#8D8D8D"
134
- />
135
- </svg>
136
- `;
137
-
138
- const AuthorizationRow = (props: {
139
- id: string;
140
- value: string;
141
- isChecked?: boolean;
142
- isLoading: boolean;
143
- willDelete?: boolean;
144
- isDeleting?: boolean;
145
- error?: string;
146
- status: 'VERIFYING' | 'CONNECTED' | 'ERROR' | 'IDLE' | null;
147
- handleChange?: (id: string) => void;
148
- handleReverify?: () => void;
149
- handleDelete?: (shouldDelete: boolean) => void;
150
- handleWillDelete?: () => void;
151
- isReadOnly?: boolean;
152
- isVerified?: boolean;
153
- }) => {
154
- const {
155
- id,
156
- value,
157
- isChecked,
158
- status = 'IDLE',
159
- isDeleting = false,
160
- willDelete = false,
161
- handleChange,
162
- handleReverify,
163
- handleDelete = () => null,
164
- handleWillDelete = () => null,
165
- error,
166
- isReadOnly,
167
- isVerified = true,
168
- } = props;
169
- return html`
170
- <${Hint}
171
- dismissOnClick=${false}
172
- position="top"
173
- deltaY=${0}
174
- className=${isChecked ? cx(styles.row, styles.rowSelected) : styles.row}
175
- >
176
- <div
177
- class=${styles.checkboxRow}
178
- onClick=${() => {
179
- if (handleChange) {
180
- handleChange(id);
181
- }
182
- }}
183
- >
184
- ${isReadOnly &&
185
- html`<span
186
- class=${styles.readonlyHint}
187
- data-hint=${isReadOnly ? `Cannot modify user selection` : ''}
188
- ></span>`}
189
- <div class=${`${styles.radio} ${isReadOnly ? styles.readonly : ''}`}>
190
- ${false &&
191
- html` <${Radio}
192
- id=${id}
193
- value=${value}
194
- isChecked=${isChecked}
195
- onChange=${handleChange}
196
- isDisabled=${isReadOnly}
197
- className="authRadio"
198
- />`}
199
- ${true && html`<p class=${styles.rowLabel}>${value}</p>`}
200
- </div>
201
- ${!(willDelete && !isDeleting) &&
202
- html` <div
203
- class=${`${styles.statusWrap} ${isReadOnly ? styles.readonly : ''}`}
204
- >
205
- <div class=${styles.status}>
206
- ${isReadOnly && false
207
- ? html`
208
- ${isChecked &&
209
- html`<div>
210
- <div class=${styles.statusGreen} />
211
- Connected
212
- </div>`}
213
- `
214
- : html`
215
- <div>
216
- ${status === 'VERIFYING' &&
217
- !isDeleting &&
218
- false &&
219
- html`<div class=${styles.statusOrange} />
220
- Verifying <${Loader} /> `}
221
- </div>
222
- <div>
223
- ${status === 'CONNECTED' &&
224
- false &&
225
- !error &&
226
- !isDeleting &&
227
- html`<div class=${styles.statusGreen} />
228
- Connected`}
229
- </div>
230
- <div>
231
- ${status === 'ERROR' &&
232
- false &&
233
- !isDeleting &&
234
- html`<div class=${styles.statusRed} />
235
- Failed
236
- ${!isReadOnly &&
237
- html`<div onclick=${handleReverify}>
238
- <${Resend} />
239
- </div>`} `}
240
- </div>
241
- ${(isDeleting || status === 'VERIFYING') &&
242
- html`<${Loader} />`}
243
- ${error &&
244
- !isDeleting &&
245
- !(status === 'VERIFYING') &&
246
- html`<div class=${styles.error}>${error}</div>`}
247
- ${status !== 'VERIFYING' &&
248
- status !== 'ERROR' &&
249
- status !== 'CONNECTED' &&
250
- !isDeleting &&
251
- !error &&
252
- false &&
253
- html`<div class=${styles.verify} onclick=${handleReverify}>
254
- Verify
255
- </div>`}
256
- `}
257
- </div>
258
- </div>`}
259
- ${willDelete &&
260
- !isDeleting &&
261
- html` <${Confirmation} callback=${handleDelete} /> `}
262
- ${!(status === 'VERIFYING' || isDeleting || willDelete) &&
263
- !isReadOnly &&
264
- html`
265
- <div
266
- class=${styles.deleteIcon}
267
- onclick=${isVerified ? handleWillDelete : handleDelete}
268
- >
269
- <svg
270
- width="13"
271
- height="13"
272
- viewBox="0 0 13 13"
273
- fill="none"
274
- xmlns="http://www.w3.org/2000/svg"
275
- >
276
- <path
277
- d="M0.866211 3.46654H12.1329"
278
- stroke="#F05C42"
279
- stroke-width="1.4"
280
- />
281
- <path
282
- d="M9.95091 4.7666V5.34438L9.37313 11.6999H3.59536L3.01758 5.34438V4.7666"
283
- stroke="#F05C42"
284
- stroke-width="1.4"
285
- stroke-linejoin="round"
286
- />
287
- <path
288
- d="M4.75098 3.03314V1.87758C4.75098 1.55848 5.00966 1.2998 5.32875 1.2998H7.63987C7.95896 1.2998 8.21764 1.55848 8.21764 1.87758V3.03314"
289
- stroke="#F05C42"
290
- stroke-width="1.4"
291
- />
292
- </svg>
293
- </div>
294
- `}
295
- </div>
296
- <//>
297
- `;
298
- };
299
-
300
- class AuthSelectorDropdown extends Component<
301
- AuthSelectorPropsType,
302
- AuthSelectorStateType
303
- > {
304
- static contextType = AppContext;
305
-
306
- constructor(props: AuthSelectorPropsType) {
307
- super(props);
308
- this.state = {
309
- isLoading: false,
310
- fetched: false,
311
- willDeleteAuthWithIndex: null,
312
- };
313
- this.handleClickOutside = this.handleClickOutside.bind(this);
314
- }
315
-
316
- componentDidMount() {
317
- if (isBrowser())
318
- window.addEventListener('message', this.onAuthResponseReceived);
319
-
320
- // in preview mode, auto-verify the auth we pass
321
- const { appId, authMapping, autoSelectAuth } = this.props;
322
- const { selectedAuth, authorizations } = this.props;
323
- // const auth = selectedAuth.id;
324
- // const authIndex = authorizations.findIndex(
325
- // (el) => Number(el.authorizationId) === Number(auth),
326
- // );
327
- // const authStatus = this.getAuthStatus(
328
- // authMapping[appId].authorizations[authIndex],
329
- // );
330
- // // auth is selected but is in idle state
331
- // if (authMapping[appId].selectedAuthId && authStatus === 'IDLE') {
332
- // this.verifyAuth(authIndex, true);
333
- // } else if (
334
- // !authMapping[appId].selectedAuthId &&
335
- // autoSelectAuth &&
336
- // authMapping[appId].authorizations.length
337
- // ) {
338
- // this.verifyAuth(0, true);
339
- // }
340
-
341
- // this auto opens the auth window if no accounts are connected
342
- // if (authMapping[appId].authorizations.length === 0)
343
- // this.openAuthWindow();
344
- document.addEventListener('mousedown', this.handleClickOutside);
345
- }
346
-
347
- componentDidUpdate(prevProps: AuthSelectorPropsType) {
348
- const { actionId, authMapping, authWindowSwitch } = this.props;
349
- // const step = authMapping[actionId];
350
- // const authId = step.selectedAuthId;
351
-
352
- // const authIndex = authMapping[actionId].authorizations.findIndex(
353
- // (el) => el.authorizationId === authId,
354
- // );
355
-
356
- // const auth = authMapping[actionId].authorizations[authIndex];
357
-
358
- // const authStatus = this.getAuthStatus(
359
- // authMapping[actionId].authorizations[authIndex],
360
- // );
361
-
362
- // if (
363
- // step.authorizations.length ===
364
- // prevProps.authMapping[actionId].authorizations.length + 1
365
- // ) {
366
- // // auth was added so we verify
367
- // this.verifyAuth(step.authorizations.length - 1);
368
- // }
369
- // // verify auth in edit mode when step changes
370
- // if (
371
- // authStatus === 'IDLE' &&
372
- // !auth.isVerifying &&
373
- // !auth.isVerified &&
374
- // !this.state.isLoading
375
- // ) {
376
- // this.verifyAuth(authIndex, true);
377
- // }
378
-
379
- // if (authWindowSwitch !== prevProps.authWindowSwitch) {
380
- // this.openAuthWindow();
381
- // }
382
- }
383
-
384
- componentWillUnmount() {
385
- if (isBrowser())
386
- window.removeEventListener('message', this.onAuthResponseReceived);
387
- document.removeEventListener('mousedown', this.handleClickOutside);
388
- }
389
-
390
- handleClickOutside(event: MouseEvent) {
391
- if (
392
- this.props.authPopoverRef &&
393
- this.props.authPopoverRef.current &&
394
- !this.props.authPopoverRef.current.contains(event.target) &&
395
- this.props.authPopoverCtaRef.current &&
396
- !this.props.authPopoverCtaRef.current.contains(event.target)
397
- ) {
398
- if (this.props.setShowAuthPopup) {
399
- this.props.setShowAuthPopup(false);
400
- }
401
- }
402
- }
403
-
404
- private verifyAuth = (authIndex: number, override?: boolean) => {
405
- const { appId } = this.props;
406
- const auth = this.props.authorizations[authIndex];
407
-
408
- if (!auth) return;
409
-
410
- // const isAuthVerifiedInPreviewMode =
411
- // !this.props.genericData.isPreviewMode && auth.isVerified;
412
- // const hideAuhtorizationStatus = !this.props.authMapping[appId]
413
- // .isUserinfoRequired;
414
-
415
- // if (isAuthVerifiedInPreviewMode || hideAuhtorizationStatus) {
416
- // this.handleAuthSelected(auth.authorizationId, true, !!override);
417
- // this.context.eventEmitter.emit('did-select-authorization', {
418
- // authorizationId: Number(auth.authorizationId),
419
- // });
420
- // return;
421
- // }
422
-
423
- this.setState({ isLoading: true });
424
- this.props.toggleVerifyAppAuthorizationFlag({
425
- appId,
426
- authId: auth.id,
427
- isVerifying: true,
428
- });
429
-
430
- this.props.apiHandler
431
- .verifyOAuth(auth.id)
432
- .then((res) => {
433
- if (res) {
434
- this.handleAuthSelected(auth.id, true, !!override);
435
- this.context.eventEmitter.emit('did-select-authorization', {
436
- authorizationId: Number(auth.id),
437
- });
438
- if (this.props.onNextButtonClick) {
439
- this.props.onNextButtonClick();
440
- }
441
- } else {
442
- this.handleAuthSelected(auth.id, false, !!override);
443
- }
444
- })
445
- .catch((err) => console.error(err))
446
- .finally(() => {
447
- this.props.toggleVerifyAppAuthorizationFlag({
448
- appId,
449
- authId: auth.id,
450
- isVerifying: false,
451
- });
452
- this.setState({ isLoading: false });
453
- });
454
- };
455
-
456
- private handleAuthSelected = (
457
- authId: number,
458
- isVerified: boolean,
459
- override: boolean,
460
- ) => {
461
- const { onAuthSelected } = this.props;
462
- if (onAuthSelected) onAuthSelected(authId, isVerified, override);
463
- else this.onAuthSelected(authId, isVerified, override);
464
- };
465
-
466
- private onAuthSelected = (
467
- authId: number,
468
- isVerified: boolean,
469
- override: boolean,
470
- ) => {
471
- this.props.setStepAuthorization(
472
- null,
473
- authId,
474
- isVerified,
475
- [], // dependentSteps,
476
- override,
477
- );
478
- };
479
-
480
- private willDelete = (authIndex: number) => {
481
- this.setState({
482
- willDeleteAuthWithIndex: authIndex,
483
- });
484
- };
485
-
486
- private deleteAuth = (authIndex: number) => {
487
- const { appId } = this.props;
488
- const auth = this.props.authorizations[authIndex];
489
- // this.props.toggleDeleteAppAuthorizationFlag({
490
- // appId,
491
- // authId: auth.authorizationId,
492
- // isDeleting: true,
493
- // error: '',
494
- // });
495
-
496
- this.context.eventEmitter.emit('did-begin-remove-authorization', {
497
- authorizationId: Number(auth.authorizationId),
498
- });
499
-
500
- this.props.apiHandler
501
- .deleteAuth(auth.id)
502
- .then((res) => {
503
- if (res?.status === 200) {
504
- // this.props.removeAppAuthorization({
505
- // appId,
506
- // authId: auth.id,
507
- // });
508
- this.context.eventEmitter.emit('did-remove-authorization', {
509
- authorizationId: Number(auth.id),
510
- });
511
- this.context.eventEmitter.emit('app-disconnected', {
512
- authorizationId: Number(auth.id),
513
- });
514
- this.handleAuthSelected(
515
- this.props.authorizations.length &&
516
- this.props.authorizations[0].id !== auth.id
517
- ? this.props.authorizations[0].id
518
- : null,
519
- true,
520
- false,
521
- );
522
- const { onAuthDeleted } = this.props;
523
- if (onAuthDeleted) onAuthDeleted(auth.id, this.props.appId);
524
- } else if (res?.status === 405) {
525
- // we have a deletion error
526
- // this.props.toggleDeleteAppAuthorizationFlag({
527
- // appId,
528
- // authId: auth.id,
529
- // isDeleting: false,
530
- // error: `${res.data}`,
531
- // });
532
- } else {
533
- // this.props.toggleDeleteAppAuthorizationFlag({
534
- // appId,
535
- // authId: auth.id,
536
- // isDeleting: false,
537
- // error: 'An unexpected error occurred',
538
- // });
539
- }
540
- })
541
- .catch((err) => {
542
- console.error(err);
543
- })
544
- .finally(() => this.setState({ willDeleteAuthWithIndex: null }));
545
- };
546
-
547
- private onAuthResponseReceived = (messageEvent: MessageEvent<AuthData>) => {
548
- if (isAuthMessage(messageEvent) && messageEvent.data.activity_name) {
549
- if (this.props.appId) {
550
- const { appId, onNewAccountAdded = () => null } = this.props;
551
- const authApp = this.props.appData;
552
- if (!messageEvent.data.already_exists) {
553
- onNewAccountAdded(messageEvent.data.authorization_id);
554
- // this.props.addAppAuthorization({
555
- // appId: this.props.appId,
556
- // authData: {
557
- // authorizationId: messageEvent.data.authorization_id,
558
- // userIdentity: messageEvent.data.user_identity,
559
- // disableLink: '',
560
- // authType: '',
561
- // isVerified: false,
562
- // didFetchStatus: false,
563
- // isVerifying: false,
564
- // isDeleting: false,
565
- // error: '',
566
- // },
567
- // });
568
- } else {
569
- // this.props.setAppStepAuthId({
570
- // appId: this.props.appId,
571
- // authId: Number(messageEvent.data.authorization_id),
572
- // });
573
- }
574
-
575
- this.context.eventEmitter.emit('did-add-authorization', {
576
- identity: messageEvent.data.user_identity,
577
- authorizationId: Number(messageEvent.data.authorization_id),
578
- flowId: this.props.actionId,
579
- appId: authApp.id || '',
580
- appName: authApp?.name,
581
- appIcon: authApp?.icon_url,
582
- alreadyExists: messageEvent.data.already_exists,
583
- externalId: messageEvent.data.external_id,
584
- });
585
- /**
586
- * also emit the new event app-connected with update payload
587
- */
588
- const eventPayload = authApp;
589
- eventPayload.connected_accounts =
590
- authApp.authorization_type.authorizations;
591
- delete eventPayload.authorization_type;
592
- this.context.eventEmitter.emit('app-connected', eventPayload);
593
- }
594
- if (this.props.autoNextOnAuth && this.props.onNextButtonClick)
595
- this.props.onNextButtonClick();
596
- }
597
- };
598
-
599
- private getAuthStatus = (auth: Authorization) => {
600
- const { actionId } = this.props;
601
- if (!auth) return null;
602
- const status = 'IDLE';
603
- // const hideAuhtorizationStatus = !this.props.authMapping[actionId]
604
- // .isUserinfoRequired;
605
- // if (hideAuhtorizationStatus) {
606
- // return status;
607
- // }
608
- // if (auth.isVerified && auth.didFetchStatus) status = 'CONNECTED';
609
- // if (!auth.isVerified && auth.didFetchStatus) status = 'ERROR';
610
- // if (auth.isVerifying) status = 'VERIFYING';
611
- return status;
612
- };
613
-
614
- private getError = () => {
615
- const { actionId } = this.props;
616
- const step = this.props.authMapping[actionId];
617
- if (!step.authorizations) {
618
- return `Please add a valid ${step.app?.name} account`;
619
- }
620
- return `Please select a valid ${step.app?.name} account`;
621
- };
622
-
623
- public openAuthWindow = () => {
624
- const url = this.context.apiHandler.getAuthUrl(
625
- this.props.appData.authorization_type.id,
626
- );
627
- openPopupWindow(url, 'Auth Window', window, 800, 600);
628
- // const { authMapping, actionId } = this.props;
629
- // const step = authMapping[actionId];
630
- // if (step) {
631
- // const url = this.context.apiHandler.getAuthUrl(
632
- // step.app.id,
633
- // );
634
- // openPopupWindow(url, 'Auth Window', window, 800, 600);
635
- // }
636
- };
637
-
638
- render() {
639
- const { actionId, showErrors = false, closePopup } = this.props;
640
- const step = this.props.authMapping[actionId];
641
- const authorizations = this.props.authorizations || {};
642
- const isReadOnly = this.context?.isReadOnly;
643
- const { selectedAuth } = this.props;
644
- return html`
645
- <div
646
- class="${styles.authSelectorDropdownContainer} integry-actions-container__auth-selector"
647
- >
648
- ${(authorizations || []).length
649
- ? html`<div class=${styles.rows}>
650
- ${(authorizations || []).map(
651
- (el, index) => html`<${AuthorizationRow}
652
- id=${el.id}
653
- value=${el.user_identity}
654
- status=${this.getAuthStatus(el)}
655
- isChecked=${el.id === selectedAuth?.id}
656
- isDeleting=${el.isDeleting}
657
- willDelete=${this.state.willDeleteAuthWithIndex === index}
658
- error=${el.error}
659
- handleChange=${() => this.verifyAuth(index)}
660
- handleReverify=${() => this.verifyAuth(index)}
661
- handleDelete=${(shouldDelete: boolean) =>
662
- shouldDelete
663
- ? this.deleteAuth(index)
664
- : this.setState({ willDeleteAuthWithIndex: null })}
665
- handleWillDelete=${(e: any) => {
666
- e.stopPropagation();
667
- this.willDelete(index);
668
- }}
669
- isReadOnly=${isReadOnly}
670
- key=${el.authorizationId}
671
- isVerified=${el.isVerified && !el.isVerifying}
672
- />`,
673
- )}
674
- </div>`
675
- : null}
676
- ${!isReadOnly &&
677
- html`
678
- <div
679
- class=${showErrors
680
- ? `${styles.addAccount} ${styles.error}`
681
- : `${styles.addAccount}`}
682
- onClick=${() =>
683
- !this.props.genericData.isPreviewMode && this.openAuthWindow()}
684
- >
685
- <span>Add an account...</span>
686
- </div>
687
- ${showErrors &&
688
- false &&
689
- html`<${ErrorMessage}>${this.getError()} <//>`}
690
- `}
691
- </div>
692
- `;
693
- }
694
- }
695
-
696
- export default connect<
697
- AuthSelectorPropsType,
698
- AuthSelectorStateType,
699
- StoreType,
700
- unknown
701
- >(
702
- ['genericData', 'authMapping'],
703
- actionFunctions,
704
- )(AuthSelectorDropdown);