@imposium-hub/components 2.3.11-0 → 2.4.0-1

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 (288) hide show
  1. package/dist/cjs/Util.d.ts +0 -1
  2. package/dist/cjs/Util.js +1 -8
  3. package/dist/cjs/Util.js.map +1 -1
  4. package/dist/cjs/components/Tooltip.d.ts +2 -2
  5. package/dist/cjs/components/Tooltip.js +7 -4
  6. package/dist/cjs/components/Tooltip.js.map +1 -1
  7. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  8. package/dist/cjs/components/anchor-field/AnchorField.d.ts +1 -1
  9. package/dist/cjs/components/app-wrapper/AppWrapper.d.ts +1 -2
  10. package/dist/cjs/components/app-wrapper/AppWrapper.js +96 -84
  11. package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
  12. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  13. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js +243 -0
  14. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  15. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  16. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js +255 -0
  17. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  18. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  19. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js +243 -0
  20. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  21. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  22. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js +251 -0
  23. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  24. package/dist/cjs/components/assets/AssetField.js +2 -2
  25. package/dist/cjs/components/assets/AssetField.js.map +1 -1
  26. package/dist/cjs/components/assets/AssetsTableDurationCell.js +4 -1
  27. package/dist/cjs/components/assets/AssetsTableDurationCell.js.map +1 -1
  28. package/dist/cjs/components/assets/AssetsTableGlobalCell.js +1 -1
  29. package/dist/cjs/components/assets/AssetsTableGlobalCell.js.map +1 -1
  30. package/dist/cjs/components/assets/AssetsTableNameCell.js +3 -4
  31. package/dist/cjs/components/assets/AssetsTableNameCell.js.map +1 -1
  32. package/dist/cjs/components/assets/AssetsTableRateCell.js +3 -9
  33. package/dist/cjs/components/assets/AssetsTableRateCell.js.map +1 -1
  34. package/dist/cjs/components/assets/AssetsTableTypeFilter.js +2 -2
  35. package/dist/cjs/components/assets/AssetsTableTypeFilter.js.map +1 -1
  36. package/dist/cjs/components/assets/AssetsUploadMenu.js +34 -157
  37. package/dist/cjs/components/assets/AssetsUploadMenu.js.map +1 -1
  38. package/dist/cjs/components/auth-gate/AuthGate.js +9 -5
  39. package/dist/cjs/components/auth-gate/AuthGate.js.map +1 -1
  40. package/dist/cjs/components/button-group-field/ButtonGroupField.d.ts +1 -1
  41. package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +1 -1
  42. package/dist/cjs/components/color-field/ColorField.d.ts +1 -1
  43. package/dist/cjs/components/color-field/ColorField.js +2 -2
  44. package/dist/cjs/components/color-field/ColorField.js.map +1 -1
  45. package/dist/cjs/components/context-menu/ContextMenu.js +4 -8
  46. package/dist/cjs/components/context-menu/ContextMenu.js.map +1 -1
  47. package/dist/cjs/components/data-table/DataTable.js +2 -2
  48. package/dist/cjs/components/data-table/DataTable.js.map +1 -1
  49. package/dist/cjs/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  50. package/dist/cjs/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  51. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  52. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js +91 -0
  53. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  54. package/dist/cjs/components/header/Header.d.ts +5 -1
  55. package/dist/cjs/components/header/Header.js +51 -46
  56. package/dist/cjs/components/header/Header.js.map +1 -1
  57. package/dist/cjs/components/header/Header_BACKUP_73021.d.ts +33 -0
  58. package/dist/cjs/components/header/Header_BACKUP_73021.js +393 -0
  59. package/dist/cjs/components/header/Header_BACKUP_73021.js.map +1 -0
  60. package/dist/cjs/components/header/Header_BASE_73021.d.ts +29 -0
  61. package/dist/cjs/components/header/Header_BASE_73021.js +376 -0
  62. package/dist/cjs/components/header/Header_BASE_73021.js.map +1 -0
  63. package/dist/cjs/components/header/Header_LOCAL_73021.d.ts +33 -0
  64. package/dist/cjs/components/header/Header_LOCAL_73021.js +382 -0
  65. package/dist/cjs/components/header/Header_LOCAL_73021.js.map +1 -0
  66. package/dist/cjs/components/header/Header_REMOTE_73021.d.ts +30 -0
  67. package/dist/cjs/components/header/Header_REMOTE_73021.js +386 -0
  68. package/dist/cjs/components/header/Header_REMOTE_73021.js.map +1 -0
  69. package/dist/cjs/components/list-field/ListField.d.ts +1 -1
  70. package/dist/cjs/components/number-field/NumberField.d.ts +1 -1
  71. package/dist/cjs/components/publish-wizard/PublishWizard.js +119 -63
  72. package/dist/cjs/components/publish-wizard/PublishWizard.js.map +1 -1
  73. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js +5 -28
  74. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  75. package/dist/cjs/components/select-field/SelectField.d.ts +1 -1
  76. package/dist/cjs/components/select-field/SelectField.js +0 -4
  77. package/dist/cjs/components/select-field/SelectField.js.map +1 -1
  78. package/dist/cjs/components/slider-field/SliderField.d.ts +1 -1
  79. package/dist/cjs/components/smpte-field/SMPTEField.d.ts +1 -1
  80. package/dist/cjs/components/story-previewer/StoryPreviewer.js +2 -7
  81. package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
  82. package/dist/cjs/components/text-area-field/TextAreaField.d.ts +1 -1
  83. package/dist/cjs/components/text-field/TextField.d.ts +1 -1
  84. package/dist/cjs/constants/copy.d.ts +5 -2
  85. package/dist/cjs/constants/copy.js +8 -5
  86. package/dist/cjs/constants/copy.js.map +1 -1
  87. package/dist/cjs/constants/icons.d.ts +1 -0
  88. package/dist/cjs/constants/icons.js +3 -1
  89. package/dist/cjs/constants/icons.js.map +1 -1
  90. package/dist/cjs/index.d.ts +3 -5
  91. package/dist/cjs/index.js +4 -8
  92. package/dist/cjs/index.js.map +1 -1
  93. package/dist/cjs/redux/actions/access.d.ts +1 -3
  94. package/dist/cjs/redux/actions/access.js +10 -43
  95. package/dist/cjs/redux/actions/access.js.map +1 -1
  96. package/dist/cjs/redux/actions/asset-uploads.d.ts +11 -6
  97. package/dist/cjs/redux/actions/asset-uploads.js +182 -262
  98. package/dist/cjs/redux/actions/asset-uploads.js.map +1 -1
  99. package/dist/cjs/redux/actions/publish.js +4 -3
  100. package/dist/cjs/redux/actions/publish.js.map +1 -1
  101. package/dist/cjs/redux/reducers/access.js +7 -30
  102. package/dist/cjs/redux/reducers/access.js.map +1 -1
  103. package/dist/cjs/redux/reducers/asset-uploads.js +24 -10
  104. package/dist/cjs/redux/reducers/asset-uploads.js.map +1 -1
  105. package/dist/cjs/services/API.d.ts +2 -2
  106. package/dist/cjs/services/API.js +1 -2
  107. package/dist/cjs/services/API.js.map +1 -1
  108. package/dist/cjs/services/Auth0.js +1 -0
  109. package/dist/cjs/services/Auth0.js.map +1 -1
  110. package/dist/cjs/services/Session.d.ts +9 -8
  111. package/dist/cjs/services/Session.js +31 -127
  112. package/dist/cjs/services/Session.js.map +1 -1
  113. package/dist/cjs/utils/assets.d.ts +2 -1
  114. package/dist/cjs/utils/assets.js.map +1 -1
  115. package/dist/esm/Util.d.ts +0 -1
  116. package/dist/esm/Util.js +0 -6
  117. package/dist/esm/Util.js.map +1 -1
  118. package/dist/esm/components/Tooltip.d.ts +2 -2
  119. package/dist/esm/components/Tooltip.js +4 -4
  120. package/dist/esm/components/Tooltip.js.map +1 -1
  121. package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  122. package/dist/esm/components/anchor-field/AnchorField.d.ts +1 -1
  123. package/dist/esm/components/app-wrapper/AppWrapper.d.ts +1 -2
  124. package/dist/esm/components/app-wrapper/AppWrapper.js +94 -84
  125. package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
  126. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  127. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
  128. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  129. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  130. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
  131. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  132. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  133. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
  134. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  135. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  136. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
  137. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  138. package/dist/esm/components/assets/AssetField.js +2 -2
  139. package/dist/esm/components/assets/AssetField.js.map +1 -1
  140. package/dist/esm/components/assets/AssetsTableDurationCell.js +5 -2
  141. package/dist/esm/components/assets/AssetsTableDurationCell.js.map +1 -1
  142. package/dist/esm/components/assets/AssetsTableGlobalCell.js +1 -1
  143. package/dist/esm/components/assets/AssetsTableGlobalCell.js.map +1 -1
  144. package/dist/esm/components/assets/AssetsTableNameCell.js +3 -4
  145. package/dist/esm/components/assets/AssetsTableNameCell.js.map +1 -1
  146. package/dist/esm/components/assets/AssetsTableRateCell.js +3 -9
  147. package/dist/esm/components/assets/AssetsTableRateCell.js.map +1 -1
  148. package/dist/esm/components/assets/AssetsTableTypeFilter.js +2 -2
  149. package/dist/esm/components/assets/AssetsTableTypeFilter.js.map +1 -1
  150. package/dist/esm/components/assets/AssetsUploadMenu.js +34 -138
  151. package/dist/esm/components/assets/AssetsUploadMenu.js.map +1 -1
  152. package/dist/esm/components/auth-gate/AuthGate.js +10 -6
  153. package/dist/esm/components/auth-gate/AuthGate.js.map +1 -1
  154. package/dist/esm/components/button-group-field/ButtonGroupField.d.ts +1 -1
  155. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +1 -1
  156. package/dist/esm/components/color-field/ColorField.d.ts +1 -1
  157. package/dist/esm/components/color-field/ColorField.js +2 -2
  158. package/dist/esm/components/color-field/ColorField.js.map +1 -1
  159. package/dist/esm/components/context-menu/ContextMenu.js +3 -7
  160. package/dist/esm/components/context-menu/ContextMenu.js.map +1 -1
  161. package/dist/esm/components/data-table/DataTable.js +2 -2
  162. package/dist/esm/components/data-table/DataTable.js.map +1 -1
  163. package/dist/esm/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  164. package/dist/esm/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  165. package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  166. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
  167. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  168. package/dist/esm/components/header/Header.d.ts +5 -1
  169. package/dist/esm/components/header/Header.js +51 -41
  170. package/dist/esm/components/header/Header.js.map +1 -1
  171. package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
  172. package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
  173. package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
  174. package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
  175. package/dist/esm/components/header/Header_BASE_73021.js +322 -0
  176. package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
  177. package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
  178. package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
  179. package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
  180. package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
  181. package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
  182. package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
  183. package/dist/esm/components/list-field/ListField.d.ts +1 -1
  184. package/dist/esm/components/number-field/NumberField.d.ts +1 -1
  185. package/dist/esm/components/publish-wizard/PublishWizard.js +119 -64
  186. package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
  187. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js +5 -28
  188. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  189. package/dist/esm/components/select-field/SelectField.d.ts +1 -1
  190. package/dist/esm/components/select-field/SelectField.js +0 -3
  191. package/dist/esm/components/select-field/SelectField.js.map +1 -1
  192. package/dist/esm/components/slider-field/SliderField.d.ts +1 -1
  193. package/dist/esm/components/smpte-field/SMPTEField.d.ts +1 -1
  194. package/dist/esm/components/story-previewer/StoryPreviewer.js +2 -7
  195. package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
  196. package/dist/esm/components/text-area-field/TextAreaField.d.ts +1 -1
  197. package/dist/esm/components/text-field/TextField.d.ts +1 -1
  198. package/dist/esm/constants/copy.d.ts +5 -2
  199. package/dist/esm/constants/copy.js +8 -5
  200. package/dist/esm/constants/copy.js.map +1 -1
  201. package/dist/esm/constants/icons.d.ts +1 -0
  202. package/dist/esm/constants/icons.js +2 -0
  203. package/dist/esm/constants/icons.js.map +1 -1
  204. package/dist/esm/index.d.ts +3 -5
  205. package/dist/esm/index.js +3 -5
  206. package/dist/esm/index.js.map +1 -1
  207. package/dist/esm/redux/actions/access.d.ts +1 -3
  208. package/dist/esm/redux/actions/access.js +8 -37
  209. package/dist/esm/redux/actions/access.js.map +1 -1
  210. package/dist/esm/redux/actions/asset-uploads.d.ts +11 -6
  211. package/dist/esm/redux/actions/asset-uploads.js +167 -224
  212. package/dist/esm/redux/actions/asset-uploads.js.map +1 -1
  213. package/dist/esm/redux/actions/publish.js +4 -3
  214. package/dist/esm/redux/actions/publish.js.map +1 -1
  215. package/dist/esm/redux/reducers/access.js +5 -8
  216. package/dist/esm/redux/reducers/access.js.map +1 -1
  217. package/dist/esm/redux/reducers/asset-uploads.js +47 -15
  218. package/dist/esm/redux/reducers/asset-uploads.js.map +1 -1
  219. package/dist/esm/services/API.d.ts +2 -2
  220. package/dist/esm/services/API.js +1 -2
  221. package/dist/esm/services/API.js.map +1 -1
  222. package/dist/esm/services/Auth0.js +1 -0
  223. package/dist/esm/services/Auth0.js.map +1 -1
  224. package/dist/esm/services/Session.d.ts +9 -8
  225. package/dist/esm/services/Session.js +29 -102
  226. package/dist/esm/services/Session.js.map +1 -1
  227. package/dist/esm/utils/assets.d.ts +2 -1
  228. package/dist/esm/utils/assets.js.map +1 -1
  229. package/dist/styles.css +25 -151
  230. package/dist/styles.less +100 -280
  231. package/less/components/assets.less +63 -237
  232. package/less/components/button.less +1 -7
  233. package/less/components/data-table.less +11 -17
  234. package/less/components/header.less +13 -0
  235. package/less/components/publish-wizard.less +13 -20
  236. package/less/components/story-previewer.less +0 -1
  237. package/package.json +6 -6
  238. package/src/Util.ts +0 -10
  239. package/src/components/Tooltip.tsx +9 -9
  240. package/src/components/advanced-number-field/AdvancedNumberField.tsx +1 -1
  241. package/src/components/anchor-field/AnchorField.tsx +1 -1
  242. package/src/components/app-wrapper/AppWrapper.tsx +102 -125
  243. package/src/components/assets/AssetField.tsx +8 -3
  244. package/src/components/assets/AssetsTableDurationCell.tsx +5 -2
  245. package/src/components/assets/AssetsTableNameCell.tsx +5 -3
  246. package/src/components/assets/AssetsTableRateCell.tsx +4 -11
  247. package/src/components/assets/AssetsTableTypeFilter.tsx +8 -7
  248. package/src/components/assets/AssetsUploadMenu.tsx +98 -271
  249. package/src/components/auth-gate/AuthGate.tsx +15 -8
  250. package/src/components/button-group-field/ButtonGroupField.tsx +1 -1
  251. package/src/components/checkbox-field/CheckboxField.tsx +1 -1
  252. package/src/components/color-field/ColorField.tsx +3 -3
  253. package/src/components/context-menu/ContextMenu.tsx +11 -16
  254. package/src/components/data-table/DataTable.tsx +2 -2
  255. package/src/components/header/Header.tsx +113 -76
  256. package/src/components/list-field/ListField.tsx +1 -1
  257. package/src/components/number-field/NumberField.tsx +1 -1
  258. package/src/components/publish-wizard/PublishWizard.tsx +180 -102
  259. package/src/components/publish-wizard/publish/EmailWorkflow.tsx +10 -42
  260. package/src/components/select-field/SelectField.tsx +1 -4
  261. package/src/components/slider-field/SliderField.tsx +1 -1
  262. package/src/components/smpte-field/SMPTEField.tsx +1 -1
  263. package/src/components/story-previewer/StoryPreviewer.tsx +6 -10
  264. package/src/components/text-area-field/TextAreaField.tsx +1 -1
  265. package/src/components/text-field/TextField.tsx +1 -1
  266. package/src/constants/copy.ts +9 -5
  267. package/src/constants/icons.tsx +3 -0
  268. package/src/index.ts +11 -11
  269. package/src/redux/actions/access.ts +5 -67
  270. package/src/redux/actions/asset-uploads.ts +206 -307
  271. package/src/redux/actions/publish.ts +6 -3
  272. package/src/redux/reducers/access.ts +5 -8
  273. package/src/redux/reducers/asset-uploads.ts +47 -17
  274. package/src/services/API.ts +2 -7
  275. package/src/services/Auth0.ts +1 -0
  276. package/src/services/Session.ts +34 -120
  277. package/src/utils/assets.ts +2 -1
  278. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
  279. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js +0 -75
  280. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
  281. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
  282. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js +0 -24
  283. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
  284. package/src/components/assets/AssetsTableGlobalCell.tsx +0 -15
  285. package/src/components/copy-prop-id-button/CopyPropIdButton.tsx +0 -44
  286. /package/dist/cjs/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  287. /package/dist/esm/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  288. /package/src/components/dropdown/{Dropdown.stories.tsx → dropdown.stories.tsx} +0 -0
@@ -0,0 +1,329 @@
1
+ import * as React from 'react';
2
+ import ImposiumDropdown from '../dropdown/Dropdown';
3
+ import ServiceIcon from '../service-icon/ServiceIcon';
4
+ import { string2HexCode, parameterizeServiceUrl } from '../../Util';
5
+ import { ICON_CHEVRON_DOWN, ICON_CHEVRON_UP, ICON_HELP } from '../../constants/icons';
6
+ import { connect } from 'react-redux';
7
+ import Spinner from '../spinner/Spinner';
8
+ import _ from 'lodash';
9
+ import DataTable from '../data-table/DataTable';
10
+ import AssetsTableDateCell from '../assets/AssetsTableDateCell';
11
+ import SessionService from '../../services/Session';
12
+ class ImposiumHeader extends React.PureComponent {
13
+ static DEFAULT_TITLE = 'imposium';
14
+ static SERVICE_MESH_ALIAS = 'services';
15
+ static DOCS_HEADER = 'documentation';
16
+ static PRIVATE_HEADER = 'admin';
17
+ static API_DOCS_LINK_COPY = 'REST API';
18
+ static SDK_DOCS_LINK_COPY = 'Javascript SDK';
19
+ static API_DOCS_LINK = 'https://docs.imposium.com';
20
+ static SDK_DOCS_LINK = 'https://docs.imposium.com/js-sdk/';
21
+ static DEFAULT_ACCOUNT_TOGGLE_COLOR = 'royalblue';
22
+ static NO_STORIES_COPY = 'No stories were found';
23
+ static LOGOUT_COPY = 'logout';
24
+ static UUID_LENGTH = 36;
25
+ static UP = ICON_CHEVRON_UP;
26
+ static DOWN = ICON_CHEVRON_DOWN;
27
+ static PRIVATE_IDS = [9, 10, 11, 12];
28
+ serviceToggleRef = null;
29
+ storyToggleRef = null;
30
+ orgsToggleRef = null;
31
+ COLUMNS = [
32
+ {
33
+ accessor: 'name',
34
+ Header: 'Name',
35
+ width: 115,
36
+ minWidth: 115,
37
+ disableSortBy: false
38
+ },
39
+ // {
40
+ // accessor: 'total_renders',
41
+ // Header: 'Total Renders',
42
+ // width: 60,
43
+ // minWidth: 60,
44
+ // maxWidth: 60,
45
+ // disableSortBy: false
46
+ // },
47
+ {
48
+ accessor: 'last_modified_by',
49
+ Header: 'Last Modified By',
50
+ width: 60,
51
+ minWidth: 60,
52
+ maxWidth: 60,
53
+ disableSortBy: true
54
+ },
55
+ {
56
+ accessor: 'date_modified',
57
+ Header: 'Last Modified',
58
+ width: 65,
59
+ minWidth: 65,
60
+ maxWidth: 65,
61
+ disableSortBy: false,
62
+ Cell: (cell) => (React.createElement(AssetsTableDateCell, { cell: cell, date_created: false }))
63
+ },
64
+ {
65
+ accessor: 'date_created',
66
+ Header: 'Created Date',
67
+ width: 65,
68
+ minWidth: 65,
69
+ maxWidth: 65,
70
+ disableSortBy: false,
71
+ Cell: (cell) => (React.createElement(AssetsTableDateCell, { cell: cell, date_created: true }))
72
+ }
73
+ ];
74
+ constructor(p) {
75
+ super(p);
76
+ this.state = {
77
+ inactiveOrganizations: [],
78
+ servicesByOrganization: [],
79
+ activeServiceBlob: undefined,
80
+ activeOrganizationBlob: undefined,
81
+ showAccountDropdown: false,
82
+ showStoriesDropdown: false,
83
+ showServiceDropdown: false,
84
+ dropdownToggleColor: ImposiumHeader.DEFAULT_ACCOUNT_TOGGLE_COLOR,
85
+ activeFirstChar: '',
86
+ order: 'date_modified',
87
+ orderDirection: 'desc',
88
+ accessData: null,
89
+ dataLoading: true
90
+ };
91
+ this.serviceToggleRef = React.createRef();
92
+ this.storyToggleRef = React.createRef();
93
+ this.orgsToggleRef = React.createRef();
94
+ }
95
+ componentDidMount = () => {
96
+ this.getAccessDataHandler();
97
+ };
98
+ componentDidUpdate(prevProps) {
99
+ const { accessData } = this.state;
100
+ const { activeOrganization, access } = this.props;
101
+ if (activeOrganization !== prevProps.activeOrganization) {
102
+ if (accessData !== null) {
103
+ this.parseAccessData(accessData, activeOrganization);
104
+ }
105
+ else {
106
+ this.getAccessDataHandler();
107
+ }
108
+ }
109
+ if (!_.isEqual(access, accessData)) {
110
+ this.setState({ accessData: access }, () => this.parseAccessData(access, activeOrganization));
111
+ }
112
+ }
113
+ parseAccessData = (accessData, activeOrganization) => {
114
+ const { organizations, services } = accessData;
115
+ let activeOrgId = activeOrganization;
116
+ if (activeOrgId === 'undefined') {
117
+ const session = SessionService.getSession();
118
+ activeOrgId = session.organization_id;
119
+ }
120
+ const activeOrganizationBlob = activeOrgId
121
+ ? accessData.organizations.find((org) => org.id === activeOrgId)
122
+ : undefined;
123
+ const inactiveOrganizations = organizations.length > 1 ? organizations.filter((o) => o.id !== activeOrgId) : [];
124
+ const servicesByOrganization = services && activeOrganizationBlob
125
+ ? services.filter((s) => activeOrganizationBlob.services.includes(s.id))
126
+ : [];
127
+ const activeServiceBlob = servicesByOrganization.length > 1
128
+ ? services.find((s) => window.location.href.includes(s.url))
129
+ : undefined;
130
+ let dropdownToggleColor = ImposiumHeader.DEFAULT_ACCOUNT_TOGGLE_COLOR;
131
+ let activeFirstChar = '';
132
+ if (activeOrganizationBlob && activeOrganizationBlob.hasOwnProperty('name')) {
133
+ dropdownToggleColor = string2HexCode(activeOrganizationBlob.name);
134
+ activeFirstChar = this.pullFirstChar(activeOrganizationBlob.name);
135
+ }
136
+ this.setState({
137
+ servicesByOrganization,
138
+ activeServiceBlob,
139
+ inactiveOrganizations,
140
+ activeOrganizationBlob,
141
+ dropdownToggleColor,
142
+ activeFirstChar
143
+ });
144
+ };
145
+ changeStory = (story) => {
146
+ const { onStoryChange } = this.props;
147
+ if (typeof onStoryChange === 'function') {
148
+ onStoryChange(story);
149
+ this.setState({ showStoriesDropdown: false });
150
+ }
151
+ };
152
+ toggleAccountDropdown = (toggle, newId = '') => {
153
+ const { onOrganizationChange } = this.props;
154
+ if (toggle) {
155
+ this.setState({ showAccountDropdown: true });
156
+ }
157
+ else {
158
+ this.setState({ showAccountDropdown: false });
159
+ // Propagate handler if supplied (more useful in react / redux flow)
160
+ if (newId && onOrganizationChange) {
161
+ onOrganizationChange(newId);
162
+ }
163
+ // V1 Default behavior - redirect to hub on org change
164
+ if (newId && !onOrganizationChange) {
165
+ window.location.replace(`${this.getHomeUrl()}?organization_id=${newId}`);
166
+ }
167
+ }
168
+ };
169
+ getHomeUrl = () => {
170
+ const { location: { hostname, host } } = window;
171
+ if (hostname === 'localhost') {
172
+ return 'http://localhost:3036';
173
+ }
174
+ else if (host.includes('.staging.')) {
175
+ return 'https://launchpad.staging.imposium.com';
176
+ }
177
+ else {
178
+ return 'https://launchpad.imposium.com';
179
+ }
180
+ };
181
+ doLogout = () => {
182
+ this.setState({ showAccountDropdown: false });
183
+ this.props.logout();
184
+ };
185
+ pullFirstChar = (s) => {
186
+ return s ? s.substring(0, 1) : '';
187
+ };
188
+ renderDropdownChevron = (toggle) => {
189
+ return toggle ? ImposiumHeader.UP : ImposiumHeader.DOWN;
190
+ };
191
+ renderServiceAnchor = (s, activeOrganization, activeStory) => (React.createElement("div", { className: 'anchor-wrapper', key: s.id },
192
+ React.createElement("a", { href: parameterizeServiceUrl(activeOrganization, activeStory, s.url, s.id) },
193
+ React.createElement("div", { className: 'icon-fixed' },
194
+ React.createElement(ServiceIcon, { iconName: s.icon, color: `#${s.color}` })),
195
+ s.name)));
196
+ getAccessDataHandler = () => {
197
+ const { auth: { idToken }, baseUrl, activeOrganization } = this.props;
198
+ this.setState({ dataLoading: true });
199
+ SessionService.getAccessData(idToken, baseUrl)
200
+ .then((res) => {
201
+ this.setState({ dataLoading: false, accessData: res }, () => this.parseAccessData(res, activeOrganization));
202
+ })
203
+ .catch((e) => {
204
+ console.error(e);
205
+ });
206
+ };
207
+ render() {
208
+ const { email, activeOrganization, activeStory, hideStoryPicker, story } = this.props;
209
+ const { accessData, showAccountDropdown, servicesByOrganization, activeServiceBlob, showStoriesDropdown, inactiveOrganizations, activeOrganizationBlob, activeFirstChar, dropdownToggleColor, showServiceDropdown, order, orderDirection, dataLoading } = this.state;
210
+ let currentStory;
211
+ let headerBorder;
212
+ let activeService;
213
+ let serviceDropdownColor = {};
214
+ let serviceAnchors;
215
+ let privateAnchors;
216
+ let accountDropdownToggle;
217
+ let activePanel;
218
+ let storyToggle = !hideStoryPicker ? React.createElement(Spinner, null) : null;
219
+ let orgPicker;
220
+ let storyMenuInner = (React.createElement("div", { className: 'no-stories-dialog' }, ImposiumHeader.NO_STORIES_COPY));
221
+ let serviceDropdownToggle;
222
+ let serviceDropdownMenu;
223
+ if (accessData) {
224
+ activeService = servicesByOrganization.find((s) => window.location.href.includes(s.url));
225
+ if (activeService) {
226
+ serviceDropdownColor = { color: `#${activeService.color}` };
227
+ headerBorder = { borderBottom: `4px solid #${activeService.color}` };
228
+ }
229
+ serviceAnchors = servicesByOrganization
230
+ .filter((s) => !s.private && ImposiumHeader.PRIVATE_IDS.indexOf(s.id) === -1)
231
+ .map((s) => this.renderServiceAnchor(s, activeOrganization, activeStory));
232
+ privateAnchors = servicesByOrganization
233
+ .filter((s) => !s.private && ImposiumHeader.PRIVATE_IDS.indexOf(s.id) > -1)
234
+ .map((s) => this.renderServiceAnchor(s, activeOrganization, activeStory));
235
+ serviceDropdownMenu = (React.createElement("div", { className: 'service-menu' },
236
+ React.createElement("section", { className: 'service-menu-section' },
237
+ React.createElement("div", { className: 'service-menu-heading' }, ImposiumHeader.SERVICE_MESH_ALIAS),
238
+ React.createElement("div", { className: 'service-menu-anchors' }, serviceAnchors)),
239
+ privateAnchors.length > 0 && (React.createElement("section", { className: 'service-menu-section' },
240
+ React.createElement("div", { className: 'service-menu-heading' }, ImposiumHeader.PRIVATE_HEADER),
241
+ React.createElement("div", { className: 'service-menu-anchors' }, privateAnchors))),
242
+ React.createElement("section", { className: 'service-menu-section' },
243
+ React.createElement("div", { className: 'service-menu-heading' }, ImposiumHeader.DOCS_HEADER),
244
+ React.createElement("div", { className: 'service-menu-anchors' },
245
+ React.createElement("div", { className: 'anchor-wrapper doc' },
246
+ React.createElement("a", { target: '__blank', href: ImposiumHeader.API_DOCS_LINK },
247
+ React.createElement("div", { className: 'icon-fixed' },
248
+ React.createElement(ServiceIcon, { iconName: 'FaCogs' })),
249
+ ImposiumHeader.API_DOCS_LINK_COPY)),
250
+ React.createElement("div", { className: 'anchor-wrapper doc' },
251
+ React.createElement("a", { target: '__blank', href: ImposiumHeader.SDK_DOCS_LINK },
252
+ React.createElement("div", { className: 'icon-fixed' },
253
+ React.createElement(ServiceIcon, { iconName: 'FaJsSquare' })),
254
+ ImposiumHeader.SDK_DOCS_LINK_COPY))))));
255
+ serviceDropdownToggle = (React.createElement("button", { id: 'btn-toggle-services', className: 'btn-toggle-services', style: serviceDropdownColor, ref: this.serviceToggleRef, onClick: () => this.setState({ showServiceDropdown: !this.state.showServiceDropdown }) },
256
+ React.createElement("span", null, activeServiceBlob
257
+ ? activeServiceBlob.name
258
+ : ImposiumHeader.SERVICE_MESH_ALIAS),
259
+ this.renderDropdownChevron(showServiceDropdown)));
260
+ accountDropdownToggle = (React.createElement("button", { id: 'btn-toggle-orgs', className: 'btn-toggle-orgs', ref: this.orgsToggleRef, style: { backgroundColor: dropdownToggleColor }, onClick: () => this.toggleAccountDropdown(!showAccountDropdown) }, activeFirstChar));
261
+ }
262
+ if (accessData && activeOrganizationBlob) {
263
+ activePanel = (React.createElement("div", { className: 'orgs-menu-active-org' },
264
+ React.createElement("div", { className: 'active-first-char', style: { backgroundColor: dropdownToggleColor } }, this.pullFirstChar(activeOrganizationBlob.name)),
265
+ React.createElement("div", null, activeOrganizationBlob.name)));
266
+ }
267
+ if (accessData && accessData.organizations && accessData.organizations.length === 0) {
268
+ storyToggle = null;
269
+ }
270
+ if (accessData && activeOrganizationBlob && !hideStoryPicker) {
271
+ currentStory = activeOrganizationBlob.stories.find((s) => s.id === activeStory);
272
+ storyToggle = (React.createElement("button", { id: 'btn-toggle-story', className: 'btn-toggle-story', ref: this.storyToggleRef, onClick: () => {
273
+ this.setState({ showStoriesDropdown: !showStoriesDropdown }, () => {
274
+ if (showStoriesDropdown === false)
275
+ this.getAccessDataHandler();
276
+ });
277
+ } },
278
+ React.createElement("div", { className: 'story-name' }, currentStory
279
+ ? currentStory.name
280
+ : story
281
+ ? story.name
282
+ : 'Project Not Found'),
283
+ this.renderDropdownChevron(showStoriesDropdown)));
284
+ if (activeOrganizationBlob.stories.length !== 0) {
285
+ const sortBy = order && orderDirection
286
+ ? [{ id: order, desc: orderDirection === 'desc' }]
287
+ : undefined;
288
+ const sortedStories = _.orderBy(activeOrganizationBlob.stories, ['date_modified'], ['desc']);
289
+ storyMenuInner = (React.createElement(DataTable, { columns: this.COLUMNS, data: sortedStories, showInterstitial: dataLoading, sortBy: sortBy, noDataText: ImposiumHeader.NO_STORIES_COPY, itemsPerPage: activeOrganizationBlob.stories.length, hidePaginator: true, onRowClick: this.changeStory }));
290
+ }
291
+ }
292
+ if (showAccountDropdown) {
293
+ orgPicker = (React.createElement("div", { className: 'orgs-menu-org-picker' }, inactiveOrganizations.map((o) => (React.createElement("button", { key: o.name, className: 'menu-item inactive-org-button', onClick: () => this.toggleAccountDropdown(false, o.id) },
294
+ React.createElement("div", { className: 'inactive-first-char', style: { backgroundColor: string2HexCode(o.name) } }, this.pullFirstChar(o.name)),
295
+ o.name)))));
296
+ }
297
+ return (React.createElement("nav", { id: 'imposium-header', className: 'imposium-header', style: headerBorder },
298
+ React.createElement("div", { className: 'inner-content' },
299
+ React.createElement("span", { className: 'inner-left' },
300
+ React.createElement("div", { className: 'title' },
301
+ React.createElement("div", { className: 'logo' }),
302
+ React.createElement("h1", { className: 'heading' }, ImposiumHeader.DEFAULT_TITLE)),
303
+ serviceDropdownToggle),
304
+ React.createElement("span", { className: 'inner-right' },
305
+ storyToggle,
306
+ accountDropdownToggle,
307
+ React.createElement("a", { href: 'https://flashtalkingus.atlassian.net/wiki/spaces/CPPW/pages/3296723007/IMPOSIUM+Dynamic+Video+Tool', target: '_blank' },
308
+ React.createElement("div", { className: 'btn-help' }, ICON_HELP)))),
309
+ React.createElement(ImposiumDropdown, { key: 'services-dropdown', position: 'bottomleft', show: showServiceDropdown, toggleRef: this.serviceToggleRef, onOutsideClick: () => this.setState({ showServiceDropdown: false }) }, serviceDropdownMenu),
310
+ React.createElement(ImposiumDropdown, { key: 'stories-dropdown', position: 'bottomright', show: showStoriesDropdown, toggleRef: this.storyToggleRef, onOutsideClick: () => this.setState({ showStoriesDropdown: false }) },
311
+ React.createElement("div", { className: 'stories-menu' }, storyMenuInner)),
312
+ React.createElement(ImposiumDropdown, { key: 'org-dropdown', position: 'bottomright', show: showAccountDropdown, toggleRef: this.orgsToggleRef, onOutsideClick: () => this.toggleAccountDropdown(false) },
313
+ React.createElement("div", { className: 'orgs-menu' },
314
+ activePanel,
315
+ orgPicker,
316
+ React.createElement("div", { className: 'orgs-menu-footer' },
317
+ React.createElement("div", { className: 'email' }, email),
318
+ React.createElement("button", { className: 'btn-logout', onClick: () => this.doLogout() }, ImposiumHeader.LOGOUT_COPY))))));
319
+ }
320
+ }
321
+ const mapStateToProps = (state) => {
322
+ return {
323
+ auth: state.auth,
324
+ story: state.story,
325
+ access: state.access
326
+ };
327
+ };
328
+ export default connect(mapStateToProps, null)(ImposiumHeader);
329
+ //# sourceMappingURL=Header_REMOTE_73021.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header_REMOTE_73021.js","sourceRoot":"","sources":["../../../../src/components/header/Header_REMOTE_73021.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { IToolTipConfig } from '../Tooltip';
3
3
  interface IListFieldProps {
4
4
  buttons?: any;
5
5
  disabled?: boolean;
6
- label?: any;
6
+ label?: string;
7
7
  options: any;
8
8
  placeholder?: string;
9
9
  tooltip?: IToolTipConfig | string;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { IToolTipConfig } from '../Tooltip';
3
3
  interface INumberFieldProps {
4
4
  buttons?: any;
5
- label?: any;
5
+ label?: string;
6
6
  placeholder?: string;
7
7
  readOnly?: boolean;
8
8
  value: number;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import Button from '../button/Button';
3
3
  import SelectField from '../select-field/SelectField';
4
4
  import HRule from '../h-rule/HRule';
5
- import { ICON_DOWNLOAD, ICON_EMAIL, ICON_GLOBE, ICON_HUBSPOT, ICON_IMAGE, ICON_PROJECT_DIAGRAM } from '../../constants/icons';
5
+ import { ICON_DOWNLOAD, ICON_EMAIL, ICON_EXCLAIMATION_TRIANGLE, ICON_GLOBE, ICON_HUBSPOT, ICON_IMAGE, ICON_PROJECT_DIAGRAM, ICON_UP_RIGHT_FROM_SQUARE } from '../../constants/icons';
6
6
  import * as copy from '../../constants/copy';
7
7
  import { ASSET_TYPES } from '../../constants/assets';
8
8
  import HubSpotFlow from './publish/HubSpotFlow';
@@ -34,11 +34,23 @@ class PublishWizard extends React.PureComponent {
34
34
  done: false,
35
35
  error: false,
36
36
  next: false,
37
- nextStep: false
37
+ nextStep: false,
38
+ publishError: null
38
39
  };
39
40
  this.emailWorkflow = React.createRef();
40
41
  this.hiddenFileInputRef = React.createRef();
41
42
  }
43
+ componentDidUpdate(prevProps, prevState) {
44
+ // If we just finished publushing, and we're on the first screen still go to the second screen
45
+ if (prevProps.publishData.publishing &&
46
+ !this.props.publishData.publishing &&
47
+ this.state.screenIndex === 0 &&
48
+ !this.state.publishError) {
49
+ this.setState({
50
+ screenIndex: 1
51
+ });
52
+ }
53
+ }
42
54
  componentDidMount() {
43
55
  const { story, api, handleError, activeComposition } = this.props;
44
56
  // Pull in all of the access creds for the composition dropdown
@@ -157,11 +169,23 @@ class PublishWizard extends React.PureComponent {
157
169
  this.setState({ accessKey: e });
158
170
  };
159
171
  handlePublish() {
160
- const { story: { id }, api, handleError } = this.props;
161
- this.props.publishVersion(api, id).catch((e) => {
162
- handleError(e);
163
- });
164
- this.setState({ screenIndex: 1 });
172
+ const { story: { id }, api, handleError, fromCrM } = this.props;
173
+ if (fromCrM) {
174
+ this.props
175
+ .publishVersion(api, id)
176
+ .then(() => {
177
+ this.setState({ screenIndex: 1 });
178
+ })
179
+ .catch((e) => {
180
+ this.setState({ publishError: e });
181
+ });
182
+ }
183
+ else {
184
+ this.props.publishVersion(api, id).catch((e) => {
185
+ handleError(e);
186
+ });
187
+ this.setState({ screenIndex: 1 });
188
+ }
165
189
  }
166
190
  onCloseHandler = () => {
167
191
  if (this.props.onDeleteBatch !== undefined) {
@@ -175,7 +199,7 @@ class PublishWizard extends React.PureComponent {
175
199
  };
176
200
  renderLowerButtons() {
177
201
  const { screenIndex, done, error, next } = this.state;
178
- const { publishing } = this.props;
202
+ const { publishing } = this.props.publishData;
179
203
  const lowerButtons = [];
180
204
  // publish and skip buttons
181
205
  if (screenIndex === 0) {
@@ -197,10 +221,6 @@ class PublishWizard extends React.PureComponent {
197
221
  nextStep: false,
198
222
  error: false,
199
223
  done: false
200
- }, () => {
201
- if (this.props.onBackBtn) {
202
- this.props.onBackBtn();
203
- }
204
224
  }), color: 'primary' }, copy.publish.btnBack));
205
225
  // reimport after column align
206
226
  if (error) {
@@ -210,16 +230,23 @@ class PublishWizard extends React.PureComponent {
210
230
  return lowerButtons;
211
231
  }
212
232
  renderPublish() {
233
+ const { publishing } = this.props.publishData;
234
+ const { publishError } = this.state;
235
+ const error = publishError ? (React.createElement("p", { className: 'publish-error' },
236
+ React.createElement("span", { className: 'icon' }, ICON_EXCLAIMATION_TRIANGLE),
237
+ "\u00A0\u00A0",
238
+ publishError)) : null;
213
239
  return (React.createElement("div", null,
214
240
  React.createElement("h2", null, copy.publish.publishStepTitle),
215
241
  React.createElement(HRule, null),
216
- React.createElement("p", null, copy.publish.publishStepDesc)));
242
+ React.createElement("p", null, publishing ? copy.publish.publishInProgress : copy.publish.publishStepDesc),
243
+ error));
217
244
  }
218
245
  renderDistributionOptions() {
219
246
  const compOpts = [];
220
247
  const credOpts = [];
221
248
  const { compositions, afterEffects, selectedComposition, credentials, accessKey } = this.state;
222
- const { publishDataset } = this.props;
249
+ const { publishDataset, fromCrM, story, creativeManagerBaseUrl } = this.props;
223
250
  for (const comp of compositions) {
224
251
  compOpts.push({
225
252
  value: comp.id,
@@ -238,50 +265,67 @@ class PublishWizard extends React.PureComponent {
238
265
  label: cred.name
239
266
  });
240
267
  }
241
- let distributionOptions = [
242
- {
243
- label: (React.createElement("span", null,
244
- ICON_GLOBE,
245
- "\u00A0",
246
- copy.publish.btnWebsite)),
247
- onClick: (e) => this.onSelectOption(2)
248
- },
249
- {
250
- label: (React.createElement("span", null,
251
- ICON_EMAIL,
252
- "\u00A0",
253
- copy.publish.btnEmail)),
254
- onClick: (e) => this.onSelectOption(3)
255
- },
256
- {
257
- label: (React.createElement("span", null,
258
- ICON_HUBSPOT,
259
- "\u00A0",
260
- copy.publish.btnHubspot)),
261
- onClick: (e) => this.onSelectOption(5)
262
- },
263
- {
264
- label: (React.createElement("span", null,
265
- ICON_PROJECT_DIAGRAM,
266
- "\u00A0",
267
- copy.publish.btnAPI)),
268
- onClick: (e) => this.onSelectOption(6)
269
- },
270
- {
271
- label: (React.createElement("span", null,
272
- ICON_DOWNLOAD,
273
- "\u00A0",
274
- copy.publish.btnExport)),
275
- onClick: (e) => this.onSelectOption(7)
276
- },
277
- {
278
- label: (React.createElement("span", null,
279
- ICON_IMAGE,
280
- "\u00A0",
281
- copy.publish.btnCRM)),
282
- onClick: (e) => this.onSelectOption(8)
283
- }
284
- ];
268
+ let distributionOptions = !fromCrM
269
+ ? [
270
+ {
271
+ label: (React.createElement("span", null,
272
+ ICON_GLOBE,
273
+ "\u00A0",
274
+ copy.publish.btnWebsite)),
275
+ onClick: (e) => this.onSelectOption(2)
276
+ },
277
+ {
278
+ label: (React.createElement("span", null,
279
+ ICON_EMAIL,
280
+ "\u00A0",
281
+ copy.publish.btnEmail)),
282
+ onClick: (e) => this.onSelectOption(3)
283
+ },
284
+ {
285
+ label: (React.createElement("span", null,
286
+ ICON_HUBSPOT,
287
+ "\u00A0",
288
+ copy.publish.btnHubspot)),
289
+ onClick: (e) => this.onSelectOption(5)
290
+ },
291
+ {
292
+ label: (React.createElement("span", null,
293
+ ICON_PROJECT_DIAGRAM,
294
+ "\u00A0",
295
+ copy.publish.btnAPI)),
296
+ onClick: (e) => this.onSelectOption(6)
297
+ },
298
+ {
299
+ label: (React.createElement("span", null,
300
+ ICON_DOWNLOAD,
301
+ "\u00A0",
302
+ copy.publish.btnExport)),
303
+ onClick: (e) => this.onSelectOption(7)
304
+ },
305
+ {
306
+ label: (React.createElement("span", null,
307
+ ICON_IMAGE,
308
+ "\u00A0",
309
+ copy.publish.btnCRM)),
310
+ onClick: (e) => this.onSelectOption(8)
311
+ }
312
+ ]
313
+ : [
314
+ {
315
+ label: (React.createElement("span", null,
316
+ ICON_DOWNLOAD,
317
+ "\u00A0",
318
+ copy.publish.btnRunTestBatch)),
319
+ onClick: (e) => this.onSelectOption(7)
320
+ },
321
+ {
322
+ label: (React.createElement("span", null,
323
+ ICON_UP_RIGHT_FROM_SQUARE,
324
+ "\u00A0",
325
+ copy.publish.btnCrM)),
326
+ link: `${creativeManagerBaseUrl}/library/${story.creativeLibraryId}/creative/${story.creativeLibraryId}/versions/`
327
+ }
328
+ ];
285
329
  if (publishDataset) {
286
330
  const indexes = [0, 2, 3];
287
331
  distributionOptions = distributionOptions.reduce((acc, value, index) => {
@@ -291,17 +335,28 @@ class PublishWizard extends React.PureComponent {
291
335
  return acc;
292
336
  }, []);
293
337
  }
338
+ const compDropdown = !fromCrM ? (React.createElement(SelectField, { label: copy.project.compName, value: selectedComposition, onChange: this.onCompositionChange, options: compOpts, tooltip: copy.project.tooltipCompId })) : null;
339
+ const accessKeyDropdown = !fromCrM ? (React.createElement(SelectField, { label: copy.publish.accessKey, value: accessKey, onChange: this.onCredentialsChange, options: credOpts, tooltip: copy.publish.tooltipAccessKey })) : null;
294
340
  return (React.createElement("div", null,
295
- React.createElement("h2", null, copy.publish.distributeStepTitle),
341
+ React.createElement("h2", null, !fromCrM
342
+ ? copy.publish.distributeStepTitle
343
+ : copy.publish.distributeStepTitleFromCrM),
296
344
  React.createElement(HRule, null),
297
- React.createElement("p", null, copy.publish.distributeStepDesc),
345
+ React.createElement("p", null, !fromCrM
346
+ ? copy.publish.distributeStepDesc
347
+ : copy.publish.distributeStepDescFromCrM),
298
348
  React.createElement(HRule, null),
299
- !this.state.selectedComposition && (React.createElement("p", { className: 'text-danger' }, copy.publish.noCompErrorDesc)),
349
+ !this.state.selectedComposition && !fromCrM && (React.createElement("p", { className: 'text-danger' }, copy.publish.noCompErrorDesc)),
300
350
  React.createElement("div", { style: { marginTop: '10px' } },
301
- React.createElement(SelectField, { label: copy.project.compName, value: selectedComposition, onChange: this.onCompositionChange, options: compOpts, tooltip: copy.project.tooltipCompId }),
302
- React.createElement(SelectField, { label: copy.publish.accessKey, value: accessKey, onChange: this.onCredentialsChange, options: credOpts, tooltip: copy.publish.tooltipAccessKey }),
351
+ compDropdown,
352
+ accessKeyDropdown,
303
353
  React.createElement("div", { className: 'link-wrapper' }, distributionOptions?.map((option, index) => {
304
- return (React.createElement(BigButton, { key: index, disabled: !selectedComposition, label: option.label, onClick: option.onClick }));
354
+ if (option.link) {
355
+ return (React.createElement(BigLink, { key: index, label: option.label, link: option.link }));
356
+ }
357
+ else {
358
+ return (React.createElement(BigButton, { key: index, disabled: !selectedComposition, label: option.label, onClick: option.onClick }));
359
+ }
305
360
  })))));
306
361
  }
307
362
  nextClickHandler = () => {