@imposium-hub/components 2.2.44-8 → 2.2.45-0

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 (266) 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 +71 -79
  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 -161
  37. package/dist/cjs/components/assets/AssetsUploadMenu.js.map +1 -1
  38. package/dist/cjs/components/auth-gate/AuthGate.js +8 -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 +4 -0
  55. package/dist/cjs/components/header/Header.js +27 -19
  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/text-area-field/TextAreaField.d.ts +1 -1
  81. package/dist/cjs/components/text-field/TextField.d.ts +1 -1
  82. package/dist/cjs/constants/copy.d.ts +5 -2
  83. package/dist/cjs/constants/copy.js +8 -5
  84. package/dist/cjs/constants/copy.js.map +1 -1
  85. package/dist/cjs/constants/icons.d.ts +1 -0
  86. package/dist/cjs/constants/icons.js +3 -1
  87. package/dist/cjs/constants/icons.js.map +1 -1
  88. package/dist/cjs/index.d.ts +3 -5
  89. package/dist/cjs/index.js +3 -8
  90. package/dist/cjs/index.js.map +1 -1
  91. package/dist/cjs/redux/actions/access.d.ts +1 -3
  92. package/dist/cjs/redux/actions/access.js +10 -43
  93. package/dist/cjs/redux/actions/access.js.map +1 -1
  94. package/dist/cjs/redux/actions/asset-uploads.d.ts +10 -5
  95. package/dist/cjs/redux/actions/asset-uploads.js +182 -262
  96. package/dist/cjs/redux/actions/asset-uploads.js.map +1 -1
  97. package/dist/cjs/redux/actions/publish.js +4 -3
  98. package/dist/cjs/redux/actions/publish.js.map +1 -1
  99. package/dist/cjs/redux/reducers/access.js +7 -30
  100. package/dist/cjs/redux/reducers/access.js.map +1 -1
  101. package/dist/cjs/redux/reducers/asset-uploads.js +24 -10
  102. package/dist/cjs/redux/reducers/asset-uploads.js.map +1 -1
  103. package/dist/cjs/services/Session.d.ts +9 -8
  104. package/dist/cjs/services/Session.js +31 -127
  105. package/dist/cjs/services/Session.js.map +1 -1
  106. package/dist/esm/Util.d.ts +0 -1
  107. package/dist/esm/Util.js +0 -6
  108. package/dist/esm/Util.js.map +1 -1
  109. package/dist/esm/components/Tooltip.d.ts +2 -2
  110. package/dist/esm/components/Tooltip.js +4 -4
  111. package/dist/esm/components/Tooltip.js.map +1 -1
  112. package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  113. package/dist/esm/components/anchor-field/AnchorField.d.ts +1 -1
  114. package/dist/esm/components/app-wrapper/AppWrapper.d.ts +1 -2
  115. package/dist/esm/components/app-wrapper/AppWrapper.js +69 -79
  116. package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
  117. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  118. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
  119. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  120. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  121. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
  122. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  123. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  124. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
  125. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  126. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  127. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
  128. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  129. package/dist/esm/components/assets/AssetField.js +2 -2
  130. package/dist/esm/components/assets/AssetField.js.map +1 -1
  131. package/dist/esm/components/assets/AssetsTableDurationCell.js +5 -2
  132. package/dist/esm/components/assets/AssetsTableDurationCell.js.map +1 -1
  133. package/dist/esm/components/assets/AssetsTableGlobalCell.js +1 -1
  134. package/dist/esm/components/assets/AssetsTableGlobalCell.js.map +1 -1
  135. package/dist/esm/components/assets/AssetsTableNameCell.js +3 -4
  136. package/dist/esm/components/assets/AssetsTableNameCell.js.map +1 -1
  137. package/dist/esm/components/assets/AssetsTableRateCell.js +3 -9
  138. package/dist/esm/components/assets/AssetsTableRateCell.js.map +1 -1
  139. package/dist/esm/components/assets/AssetsTableTypeFilter.js +2 -2
  140. package/dist/esm/components/assets/AssetsTableTypeFilter.js.map +1 -1
  141. package/dist/esm/components/assets/AssetsUploadMenu.js +34 -144
  142. package/dist/esm/components/assets/AssetsUploadMenu.js.map +1 -1
  143. package/dist/esm/components/auth-gate/AuthGate.js +9 -6
  144. package/dist/esm/components/auth-gate/AuthGate.js.map +1 -1
  145. package/dist/esm/components/button-group-field/ButtonGroupField.d.ts +1 -1
  146. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +1 -1
  147. package/dist/esm/components/color-field/ColorField.d.ts +1 -1
  148. package/dist/esm/components/color-field/ColorField.js +2 -2
  149. package/dist/esm/components/color-field/ColorField.js.map +1 -1
  150. package/dist/esm/components/context-menu/ContextMenu.js +3 -7
  151. package/dist/esm/components/context-menu/ContextMenu.js.map +1 -1
  152. package/dist/esm/components/data-table/DataTable.js +2 -2
  153. package/dist/esm/components/data-table/DataTable.js.map +1 -1
  154. package/dist/esm/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  155. package/dist/esm/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  156. package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  157. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
  158. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  159. package/dist/esm/components/header/Header.d.ts +4 -0
  160. package/dist/esm/components/header/Header.js +27 -19
  161. package/dist/esm/components/header/Header.js.map +1 -1
  162. package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
  163. package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
  164. package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
  165. package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
  166. package/dist/esm/components/header/Header_BASE_73021.js +322 -0
  167. package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
  168. package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
  169. package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
  170. package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
  171. package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
  172. package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
  173. package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
  174. package/dist/esm/components/list-field/ListField.d.ts +1 -1
  175. package/dist/esm/components/number-field/NumberField.d.ts +1 -1
  176. package/dist/esm/components/publish-wizard/PublishWizard.js +119 -64
  177. package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
  178. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js +5 -28
  179. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  180. package/dist/esm/components/select-field/SelectField.d.ts +1 -1
  181. package/dist/esm/components/select-field/SelectField.js +0 -3
  182. package/dist/esm/components/select-field/SelectField.js.map +1 -1
  183. package/dist/esm/components/slider-field/SliderField.d.ts +1 -1
  184. package/dist/esm/components/smpte-field/SMPTEField.d.ts +1 -1
  185. package/dist/esm/components/text-area-field/TextAreaField.d.ts +1 -1
  186. package/dist/esm/components/text-field/TextField.d.ts +1 -1
  187. package/dist/esm/constants/copy.d.ts +5 -2
  188. package/dist/esm/constants/copy.js +8 -5
  189. package/dist/esm/constants/copy.js.map +1 -1
  190. package/dist/esm/constants/icons.d.ts +1 -0
  191. package/dist/esm/constants/icons.js +2 -0
  192. package/dist/esm/constants/icons.js.map +1 -1
  193. package/dist/esm/index.d.ts +3 -5
  194. package/dist/esm/index.js +3 -5
  195. package/dist/esm/index.js.map +1 -1
  196. package/dist/esm/redux/actions/access.d.ts +1 -3
  197. package/dist/esm/redux/actions/access.js +8 -37
  198. package/dist/esm/redux/actions/access.js.map +1 -1
  199. package/dist/esm/redux/actions/asset-uploads.d.ts +10 -5
  200. package/dist/esm/redux/actions/asset-uploads.js +167 -224
  201. package/dist/esm/redux/actions/asset-uploads.js.map +1 -1
  202. package/dist/esm/redux/actions/publish.js +4 -3
  203. package/dist/esm/redux/actions/publish.js.map +1 -1
  204. package/dist/esm/redux/reducers/access.js +5 -8
  205. package/dist/esm/redux/reducers/access.js.map +1 -1
  206. package/dist/esm/redux/reducers/asset-uploads.js +47 -15
  207. package/dist/esm/redux/reducers/asset-uploads.js.map +1 -1
  208. package/dist/esm/services/Session.d.ts +9 -8
  209. package/dist/esm/services/Session.js +29 -102
  210. package/dist/esm/services/Session.js.map +1 -1
  211. package/dist/styles.css +25 -110
  212. package/dist/styles.less +100 -196
  213. package/less/components/assets.less +63 -153
  214. package/less/components/button.less +1 -7
  215. package/less/components/data-table.less +11 -17
  216. package/less/components/header.less +13 -0
  217. package/less/components/publish-wizard.less +13 -20
  218. package/less/components/story-previewer.less +0 -1
  219. package/package.json +6 -6
  220. package/src/Util.ts +0 -10
  221. package/src/components/Tooltip.tsx +9 -9
  222. package/src/components/advanced-number-field/AdvancedNumberField.tsx +1 -1
  223. package/src/components/anchor-field/AnchorField.tsx +1 -1
  224. package/src/components/app-wrapper/AppWrapper.tsx +79 -120
  225. package/src/components/assets/AssetField.tsx +8 -3
  226. package/src/components/assets/AssetsTableDurationCell.tsx +5 -2
  227. package/src/components/assets/AssetsTableNameCell.tsx +5 -3
  228. package/src/components/assets/AssetsTableRateCell.tsx +4 -11
  229. package/src/components/assets/AssetsTableTypeFilter.tsx +8 -7
  230. package/src/components/assets/AssetsUploadMenu.tsx +98 -275
  231. package/src/components/auth-gate/AuthGate.tsx +14 -8
  232. package/src/components/button-group-field/ButtonGroupField.tsx +1 -1
  233. package/src/components/checkbox-field/CheckboxField.tsx +1 -1
  234. package/src/components/color-field/ColorField.tsx +3 -3
  235. package/src/components/context-menu/ContextMenu.tsx +11 -16
  236. package/src/components/data-table/DataTable.tsx +2 -2
  237. package/src/components/header/Header.tsx +74 -39
  238. package/src/components/list-field/ListField.tsx +1 -1
  239. package/src/components/number-field/NumberField.tsx +1 -1
  240. package/src/components/publish-wizard/PublishWizard.tsx +180 -102
  241. package/src/components/publish-wizard/publish/EmailWorkflow.tsx +10 -42
  242. package/src/components/select-field/SelectField.tsx +1 -4
  243. package/src/components/slider-field/SliderField.tsx +1 -1
  244. package/src/components/smpte-field/SMPTEField.tsx +1 -1
  245. package/src/components/text-area-field/TextAreaField.tsx +1 -1
  246. package/src/components/text-field/TextField.tsx +1 -1
  247. package/src/constants/copy.ts +9 -5
  248. package/src/constants/icons.tsx +3 -0
  249. package/src/index.ts +9 -16
  250. package/src/redux/actions/access.ts +5 -67
  251. package/src/redux/actions/asset-uploads.ts +205 -305
  252. package/src/redux/actions/publish.ts +6 -3
  253. package/src/redux/reducers/access.ts +5 -8
  254. package/src/redux/reducers/asset-uploads.ts +47 -17
  255. package/src/services/Session.ts +34 -120
  256. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
  257. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js +0 -75
  258. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
  259. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
  260. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js +0 -24
  261. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
  262. package/src/components/assets/AssetsTableGlobalCell.tsx +0 -15
  263. package/src/components/copy-prop-id-button/CopyPropIdButton.tsx +0 -44
  264. /package/dist/cjs/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  265. /package/dist/esm/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  266. /package/src/components/dropdown/{Dropdown.stories.tsx → dropdown.stories.tsx} +0 -0
@@ -15,12 +15,16 @@ export interface IHeaderProps {
15
15
  activeOrganization: string;
16
16
  activeStory?: string;
17
17
  hideStoryPicker?: boolean;
18
+ hideOrgPicker?: boolean;
18
19
  onOrganizationChange?: (orgId: any) => any;
19
20
  onStoryChange?: (story: any) => any;
20
21
  logout: (...args) => any;
22
+ additionalButtons?: any[];
21
23
  auth: any;
22
24
  story: any;
23
25
  baseUrl: any;
26
+ hideDocs?: boolean;
27
+ showFTLogo?: boolean;
24
28
  access: any;
25
29
  }
26
30
 
@@ -306,6 +310,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
306
310
 
307
311
  this.setState({ dataLoading: true });
308
312
 
313
+ // SessionService.getAccessData(idToken, baseUrl, true, activeOrganization)
309
314
  SessionService.getAccessData(idToken, baseUrl)
310
315
  .then((res) => {
311
316
  this.setState({ dataLoading: false, accessData: res }, () =>
@@ -318,7 +323,17 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
318
323
  };
319
324
 
320
325
  public render() {
321
- const { email, activeOrganization, activeStory, hideStoryPicker, story } = this.props;
326
+ const {
327
+ email,
328
+ activeOrganization,
329
+ activeStory,
330
+ hideStoryPicker,
331
+ story,
332
+ hideOrgPicker,
333
+ additionalButtons,
334
+ showFTLogo,
335
+ hideDocs
336
+ } = this.props;
322
337
  const {
323
338
  accessData,
324
339
  showAccountDropdown,
@@ -351,6 +366,14 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
351
366
  let serviceDropdownToggle: JSX.Element;
352
367
  let serviceDropdownMenu: JSX.Element;
353
368
 
369
+ const btnLogout = (
370
+ <button
371
+ className='btn-logout'
372
+ onClick={() => this.doLogout()}>
373
+ {ImposiumHeader.LOGOUT_COPY}
374
+ </button>
375
+ );
376
+
354
377
  if (accessData) {
355
378
  activeService = servicesByOrganization.find((s: any) =>
356
379
  window.location.href.includes(s.url)
@@ -369,6 +392,36 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
369
392
  .filter((s: any) => !s.private && ImposiumHeader.PRIVATE_IDS.indexOf(s.id) > -1)
370
393
  .map((s: any) => this.renderServiceAnchor(s, activeOrganization, activeStory));
371
394
 
395
+ const docsSection = !hideDocs ? (
396
+ <section className='service-menu-section'>
397
+ <div className='service-menu-heading'>{ImposiumHeader.DOCS_HEADER}</div>
398
+
399
+ <div className='service-menu-anchors'>
400
+ <div className='anchor-wrapper doc'>
401
+ <a
402
+ target='__blank'
403
+ href={ImposiumHeader.API_DOCS_LINK}>
404
+ <div className='icon-fixed'>
405
+ <ServiceIcon iconName='FaCogs' />
406
+ </div>
407
+ {ImposiumHeader.API_DOCS_LINK_COPY}
408
+ </a>
409
+ </div>
410
+
411
+ <div className='anchor-wrapper doc'>
412
+ <a
413
+ target='__blank'
414
+ href={ImposiumHeader.SDK_DOCS_LINK}>
415
+ <div className='icon-fixed'>
416
+ <ServiceIcon iconName='FaJsSquare' />
417
+ </div>
418
+ {ImposiumHeader.SDK_DOCS_LINK_COPY}
419
+ </a>
420
+ </div>
421
+ </div>
422
+ </section>
423
+ ) : null;
424
+
372
425
  serviceDropdownMenu = (
373
426
  <div className='service-menu'>
374
427
  <section className='service-menu-section'>
@@ -389,33 +442,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
389
442
  </section>
390
443
  )}
391
444
 
392
- <section className='service-menu-section'>
393
- <div className='service-menu-heading'>{ImposiumHeader.DOCS_HEADER}</div>
394
-
395
- <div className='service-menu-anchors'>
396
- <div className='anchor-wrapper doc'>
397
- <a
398
- target='__blank'
399
- href={ImposiumHeader.API_DOCS_LINK}>
400
- <div className='icon-fixed'>
401
- <ServiceIcon iconName='FaCogs' />
402
- </div>
403
- {ImposiumHeader.API_DOCS_LINK_COPY}
404
- </a>
405
- </div>
406
-
407
- <div className='anchor-wrapper doc'>
408
- <a
409
- target='__blank'
410
- href={ImposiumHeader.SDK_DOCS_LINK}>
411
- <div className='icon-fixed'>
412
- <ServiceIcon iconName='FaJsSquare' />
413
- </div>
414
- {ImposiumHeader.SDK_DOCS_LINK_COPY}
415
- </a>
416
- </div>
417
- </div>
418
- </section>
445
+ {docsSection}
419
446
  </div>
420
447
  );
421
448
 
@@ -437,7 +464,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
437
464
  </button>
438
465
  );
439
466
 
440
- accountDropdownToggle = (
467
+ accountDropdownToggle = !hideOrgPicker ? (
441
468
  <button
442
469
  id='btn-toggle-orgs'
443
470
  className='btn-toggle-orgs'
@@ -446,6 +473,8 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
446
473
  onClick={() => this.toggleAccountDropdown(!showAccountDropdown)}>
447
474
  {activeFirstChar}
448
475
  </button>
476
+ ) : (
477
+ btnLogout
449
478
  );
450
479
  }
451
480
 
@@ -538,6 +567,19 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
538
567
  );
539
568
  }
540
569
 
570
+ const logo = showFTLogo ? (
571
+ <>
572
+ <div className='ft-logo' />
573
+ &nbsp;&nbsp;|&nbsp;&nbsp;
574
+ <h1 className='heading'>{ImposiumHeader.DEFAULT_TITLE}</h1>
575
+ </>
576
+ ) : (
577
+ <>
578
+ <div className='logo' />
579
+ <h1 className='heading'>{ImposiumHeader.DEFAULT_TITLE}</h1>
580
+ </>
581
+ );
582
+
541
583
  return (
542
584
  <nav
543
585
  id='imposium-header'
@@ -545,16 +587,13 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
545
587
  style={headerBorder}>
546
588
  <div className='inner-content'>
547
589
  <span className='inner-left'>
548
- <div className='title'>
549
- <div className='logo' />
550
- <h1 className='heading'>{ImposiumHeader.DEFAULT_TITLE}</h1>
551
- </div>
552
-
590
+ <div className='title'>{logo}</div>
553
591
  {serviceDropdownToggle}
554
592
  </span>
555
593
 
556
594
  <span className='inner-right'>
557
595
  {storyToggle}
596
+ <div className='additional-buttons'>{additionalButtons}</div>
558
597
  {accountDropdownToggle}
559
598
  <a
560
599
  href='https://support.flashtalking.com/hc/en-us/sections/25515903148819-Imposium'
@@ -594,11 +633,7 @@ class ImposiumHeader extends React.PureComponent<IHeaderProps, IHeaderState> {
594
633
 
595
634
  <div className='orgs-menu-footer'>
596
635
  <div className='email'>{email}</div>
597
- <button
598
- className='btn-logout'
599
- onClick={() => this.doLogout()}>
600
- {ImposiumHeader.LOGOUT_COPY}
601
- </button>
636
+ {btnLogout}
602
637
  </div>
603
638
  </div>
604
639
  </ImposiumDropdown>
@@ -10,7 +10,7 @@ import { ICON_PLUS } from '../../constants/icons';
10
10
  interface IListFieldProps {
11
11
  buttons?: any;
12
12
  disabled?: boolean;
13
- label?: any;
13
+ label?: string;
14
14
  options: any;
15
15
  placeholder?: string;
16
16
  tooltip?: IToolTipConfig | string;
@@ -4,7 +4,7 @@ import { IToolTipConfig } from '../Tooltip';
4
4
 
5
5
  interface INumberFieldProps {
6
6
  buttons?: any;
7
- label?: any;
7
+ label?: string;
8
8
  placeholder?: string;
9
9
  readOnly?: boolean;
10
10
  value: number;
@@ -5,10 +5,12 @@ import HRule from '../h-rule/HRule';
5
5
  import {
6
6
  ICON_DOWNLOAD,
7
7
  ICON_EMAIL,
8
+ ICON_EXCLAIMATION_TRIANGLE,
8
9
  ICON_GLOBE,
9
10
  ICON_HUBSPOT,
10
11
  ICON_IMAGE,
11
- ICON_PROJECT_DIAGRAM
12
+ ICON_PROJECT_DIAGRAM,
13
+ ICON_UP_RIGHT_FROM_SQUARE
12
14
  } from '../../constants/icons';
13
15
  import { IImposiumAPI } from '../../services/API';
14
16
  import * as copy from '../../constants/copy';
@@ -23,8 +25,11 @@ import { publishVersion } from '../../redux/actions/publish';
23
25
  import { connect } from 'react-redux';
24
26
 
25
27
  interface IPublishWizardProps {
28
+ fromCrM?: boolean;
29
+ creativeManagerBaseUrl?: string;
26
30
  story: any;
27
31
  project: any;
32
+ updateEditorConfig(c): void;
28
33
  editor: any;
29
34
  updateScene(d): void;
30
35
  editStory(s): void;
@@ -33,7 +38,6 @@ interface IPublishWizardProps {
33
38
  exportExperiences: () => void;
34
39
  publishVersion: (api: IImposiumAPI, sId: string) => any;
35
40
  batchesList: any;
36
- publishing: boolean;
37
41
  onClose(): any;
38
42
  api: IImposiumAPI;
39
43
  handleError(e): void;
@@ -66,7 +70,6 @@ interface IPublishWizardProps {
66
70
  renderBatch: (batchId: string, postRenderActions?: any) => any;
67
71
  publishData: any;
68
72
  onDeleteBatch?: (batchId: string) => any;
69
- onBackBtn?: () => void;
70
73
  }
71
74
 
72
75
  export interface ICredential {
@@ -91,6 +94,7 @@ interface IPublishWizardState {
91
94
  error: boolean;
92
95
  next: boolean;
93
96
  nextStep: boolean;
97
+ publishError: string;
94
98
  }
95
99
 
96
100
  interface IBigButtonProps {
@@ -134,12 +138,27 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
134
138
  done: false,
135
139
  error: false,
136
140
  next: false,
137
- nextStep: false
141
+ nextStep: false,
142
+ publishError: null
138
143
  };
139
144
  this.emailWorkflow = React.createRef();
140
145
  this.hiddenFileInputRef = React.createRef();
141
146
  }
142
147
 
148
+ public componentDidUpdate(prevProps, prevState) {
149
+ // If we just finished publushing, and we're on the first screen still go to the second screen
150
+ if (
151
+ prevProps.publishData.publishing &&
152
+ !this.props.publishData.publishing &&
153
+ this.state.screenIndex === 0 &&
154
+ !this.state.publishError
155
+ ) {
156
+ this.setState({
157
+ screenIndex: 1
158
+ });
159
+ }
160
+ }
161
+
143
162
  public componentDidMount() {
144
163
  const { story, api, handleError, activeComposition } = this.props;
145
164
  // Pull in all of the access creds for the composition dropdown
@@ -275,12 +294,25 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
275
294
  const {
276
295
  story: { id },
277
296
  api,
278
- handleError
297
+ handleError,
298
+ fromCrM
279
299
  } = this.props;
280
- this.props.publishVersion(api, id).catch((e) => {
281
- handleError(e);
282
- });
283
- this.setState({ screenIndex: 1 });
300
+
301
+ if (fromCrM) {
302
+ this.props
303
+ .publishVersion(api, id)
304
+ .then(() => {
305
+ this.setState({ screenIndex: 1 });
306
+ })
307
+ .catch((e) => {
308
+ this.setState({ publishError: e });
309
+ });
310
+ } else {
311
+ this.props.publishVersion(api, id).catch((e) => {
312
+ handleError(e);
313
+ });
314
+ this.setState({ screenIndex: 1 });
315
+ }
284
316
  }
285
317
 
286
318
  private onCloseHandler = () => {
@@ -296,7 +328,7 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
296
328
 
297
329
  private renderLowerButtons() {
298
330
  const { screenIndex, done, error, next } = this.state;
299
- const { publishing } = this.props;
331
+ const { publishing } = this.props.publishData;
300
332
 
301
333
  const lowerButtons = [];
302
334
 
@@ -350,20 +382,13 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
350
382
  size={'large'}
351
383
  key='btn-back'
352
384
  onClick={() =>
353
- this.setState(
354
- {
355
- screenIndex: backIndex,
356
- next: false,
357
- nextStep: false,
358
- error: false,
359
- done: false
360
- },
361
- () => {
362
- if (this.props.onBackBtn) {
363
- this.props.onBackBtn();
364
- }
365
- }
366
- )
385
+ this.setState({
386
+ screenIndex: backIndex,
387
+ next: false,
388
+ nextStep: false,
389
+ error: false,
390
+ done: false
391
+ })
367
392
  }
368
393
  color='primary'>
369
394
  {copy.publish.btnBack}
@@ -390,11 +415,19 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
390
415
  }
391
416
 
392
417
  private renderPublish() {
418
+ const { publishing } = this.props.publishData;
419
+ const { publishError } = this.state;
420
+ const error = publishError ? (
421
+ <p className='publish-error'>
422
+ <span className='icon'>{ICON_EXCLAIMATION_TRIANGLE}</span>&nbsp;&nbsp;{publishError}
423
+ </p>
424
+ ) : null;
393
425
  return (
394
426
  <div>
395
427
  <h2>{copy.publish.publishStepTitle}</h2>
396
428
  <HRule />
397
- <p>{copy.publish.publishStepDesc}</p>
429
+ <p>{publishing ? copy.publish.publishInProgress : copy.publish.publishStepDesc}</p>
430
+ {error}
398
431
  </div>
399
432
  );
400
433
  }
@@ -405,7 +438,7 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
405
438
  const { compositions, afterEffects, selectedComposition, credentials, accessKey } =
406
439
  this.state;
407
440
 
408
- const { publishDataset } = this.props;
441
+ const { publishDataset, fromCrM, story, creativeManagerBaseUrl } = this.props;
409
442
 
410
443
  for (const comp of compositions) {
411
444
  compOpts.push({
@@ -428,56 +461,75 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
428
461
  });
429
462
  }
430
463
 
431
- let distributionOptions = [
432
- {
433
- label: (
434
- <span>
435
- {ICON_GLOBE}&nbsp;{copy.publish.btnWebsite}
436
- </span>
437
- ),
438
- onClick: (e) => this.onSelectOption(2)
439
- },
440
- {
441
- label: (
442
- <span>
443
- {ICON_EMAIL}&nbsp;{copy.publish.btnEmail}
444
- </span>
445
- ),
446
- onClick: (e) => this.onSelectOption(3)
447
- },
448
- {
449
- label: (
450
- <span>
451
- {ICON_HUBSPOT}&nbsp;{copy.publish.btnHubspot}
452
- </span>
453
- ),
454
- onClick: (e) => this.onSelectOption(5)
455
- },
456
- {
457
- label: (
458
- <span>
459
- {ICON_PROJECT_DIAGRAM}&nbsp;{copy.publish.btnAPI}
460
- </span>
461
- ),
462
- onClick: (e) => this.onSelectOption(6)
463
- },
464
- {
465
- label: (
466
- <span>
467
- {ICON_DOWNLOAD}&nbsp;{copy.publish.btnExport}
468
- </span>
469
- ),
470
- onClick: (e) => this.onSelectOption(7)
471
- },
472
- {
473
- label: (
474
- <span>
475
- {ICON_IMAGE}&nbsp;{copy.publish.btnCRM}
476
- </span>
477
- ),
478
- onClick: (e) => this.onSelectOption(8)
479
- }
480
- ];
464
+ let distributionOptions = !fromCrM
465
+ ? [
466
+ {
467
+ label: (
468
+ <span>
469
+ {ICON_GLOBE}&nbsp;{copy.publish.btnWebsite}
470
+ </span>
471
+ ),
472
+ onClick: (e) => this.onSelectOption(2)
473
+ },
474
+ {
475
+ label: (
476
+ <span>
477
+ {ICON_EMAIL}&nbsp;{copy.publish.btnEmail}
478
+ </span>
479
+ ),
480
+ onClick: (e) => this.onSelectOption(3)
481
+ },
482
+ {
483
+ label: (
484
+ <span>
485
+ {ICON_HUBSPOT}&nbsp;{copy.publish.btnHubspot}
486
+ </span>
487
+ ),
488
+ onClick: (e) => this.onSelectOption(5)
489
+ },
490
+ {
491
+ label: (
492
+ <span>
493
+ {ICON_PROJECT_DIAGRAM}&nbsp;{copy.publish.btnAPI}
494
+ </span>
495
+ ),
496
+ onClick: (e) => this.onSelectOption(6)
497
+ },
498
+ {
499
+ label: (
500
+ <span>
501
+ {ICON_DOWNLOAD}&nbsp;{copy.publish.btnExport}
502
+ </span>
503
+ ),
504
+ onClick: (e) => this.onSelectOption(7)
505
+ },
506
+ {
507
+ label: (
508
+ <span>
509
+ {ICON_IMAGE}&nbsp;{copy.publish.btnCRM}
510
+ </span>
511
+ ),
512
+ onClick: (e) => this.onSelectOption(8)
513
+ }
514
+ ]
515
+ : [
516
+ {
517
+ label: (
518
+ <span>
519
+ {ICON_DOWNLOAD}&nbsp;{copy.publish.btnRunTestBatch}
520
+ </span>
521
+ ),
522
+ onClick: (e) => this.onSelectOption(7)
523
+ },
524
+ {
525
+ label: (
526
+ <span>
527
+ {ICON_UP_RIGHT_FROM_SQUARE}&nbsp;{copy.publish.btnCrM}
528
+ </span>
529
+ ),
530
+ link: `${creativeManagerBaseUrl}/library/${story.creativeLibraryId}/creative/${story.creativeLibraryId}/versions/`
531
+ }
532
+ ];
481
533
 
482
534
  if (publishDataset) {
483
535
  const indexes = [0, 2, 3];
@@ -489,41 +541,67 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
489
541
  }, []);
490
542
  }
491
543
 
544
+ const compDropdown = !fromCrM ? (
545
+ <SelectField
546
+ label={copy.project.compName}
547
+ value={selectedComposition}
548
+ onChange={this.onCompositionChange}
549
+ options={compOpts}
550
+ tooltip={copy.project.tooltipCompId}
551
+ />
552
+ ) : null;
553
+
554
+ const accessKeyDropdown = !fromCrM ? (
555
+ <SelectField
556
+ label={copy.publish.accessKey}
557
+ value={accessKey}
558
+ onChange={this.onCredentialsChange}
559
+ options={credOpts}
560
+ tooltip={copy.publish.tooltipAccessKey}
561
+ />
562
+ ) : null;
563
+
492
564
  return (
493
565
  <div>
494
- <h2>{copy.publish.distributeStepTitle}</h2>
566
+ <h2>
567
+ {!fromCrM
568
+ ? copy.publish.distributeStepTitle
569
+ : copy.publish.distributeStepTitleFromCrM}
570
+ </h2>
495
571
  <HRule />
496
- <p>{copy.publish.distributeStepDesc}</p>
572
+ <p>
573
+ {!fromCrM
574
+ ? copy.publish.distributeStepDesc
575
+ : copy.publish.distributeStepDescFromCrM}
576
+ </p>
497
577
  <HRule />
498
- {!this.state.selectedComposition && (
578
+ {!this.state.selectedComposition && !fromCrM && (
499
579
  <p className={'text-danger'}>{copy.publish.noCompErrorDesc}</p>
500
580
  )}
501
581
  <div style={{ marginTop: '10px' }}>
502
- <SelectField
503
- label={copy.project.compName}
504
- value={selectedComposition}
505
- onChange={this.onCompositionChange}
506
- options={compOpts}
507
- tooltip={copy.project.tooltipCompId}
508
- />
509
- <SelectField
510
- label={copy.publish.accessKey}
511
- value={accessKey}
512
- onChange={this.onCredentialsChange}
513
- options={credOpts}
514
- tooltip={copy.publish.tooltipAccessKey}
515
- />
582
+ {compDropdown}
583
+ {accessKeyDropdown}
516
584
 
517
585
  <div className='link-wrapper'>
518
- {distributionOptions?.map((option, index) => {
519
- return (
520
- <BigButton
521
- key={index}
522
- disabled={!selectedComposition}
523
- label={option.label}
524
- onClick={option.onClick}
525
- />
526
- );
586
+ {distributionOptions?.map((option: any, index) => {
587
+ if (option.link) {
588
+ return (
589
+ <BigLink
590
+ key={index}
591
+ label={option.label}
592
+ link={option.link}
593
+ />
594
+ );
595
+ } else {
596
+ return (
597
+ <BigButton
598
+ key={index}
599
+ disabled={!selectedComposition}
600
+ label={option.label}
601
+ onClick={option.onClick}
602
+ />
603
+ );
604
+ }
527
605
  })}
528
606
  </div>
529
607
  </div>