@imposium-hub/components 2.14.11 → 2.15.0-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 (303) hide show
  1. package/dist/cjs/components/app-wrapper/AppWrapper.d.ts +1 -6
  2. package/dist/cjs/components/app-wrapper/AppWrapper.js +4 -8
  3. package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
  4. package/dist/cjs/components/app-wrapper/AppWrapperV2.d.ts +26 -0
  5. package/dist/cjs/components/app-wrapper/AppWrapperV2.js +266 -0
  6. package/dist/cjs/components/app-wrapper/AppWrapperV2.js.map +1 -0
  7. package/dist/cjs/components/app-wrapper/AppWrapperV3.d.ts +19 -0
  8. package/dist/cjs/components/app-wrapper/AppWrapperV3.js +195 -0
  9. package/dist/cjs/components/app-wrapper/AppWrapperV3.js.map +1 -0
  10. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  11. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js +243 -0
  12. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  13. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  14. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js +255 -0
  15. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  16. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  17. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js +243 -0
  18. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  19. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  20. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js +251 -0
  21. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  22. package/dist/cjs/components/assets/AssetsUploadMenu.js +5 -5
  23. package/dist/cjs/components/auth-gate/AuthGate.d.ts +2 -0
  24. package/dist/cjs/components/auth-gate/AuthGate.js +105 -0
  25. package/dist/cjs/components/auth-gate/AuthGate.js.map +1 -0
  26. package/dist/cjs/components/change-report/ChangeReportTree.d.ts +10 -0
  27. package/dist/cjs/components/change-report/ChangeReportTree.js +95 -0
  28. package/dist/cjs/components/change-report/ChangeReportTree.js.map +1 -0
  29. package/dist/cjs/components/context-menu/AnimateComponent.d.ts +0 -1
  30. package/dist/cjs/components/context-menu/AnimateComponent.js.map +1 -1
  31. package/dist/cjs/components/context-menu/ContextMenu.d.ts +0 -1
  32. package/dist/cjs/components/context-menu/ContextMenu.js +6 -6
  33. package/dist/cjs/components/context-menu/ContextMenu.js.map +1 -1
  34. package/dist/cjs/components/context-menu/ContextMenuItem.d.ts +0 -1
  35. package/dist/cjs/components/context-menu/ContextMenuItem.js.map +1 -1
  36. package/dist/cjs/components/context-menu/ContextMenuTrigger.d.ts +0 -1
  37. package/dist/cjs/components/context-menu/ContextMenuTrigger.js.map +1 -1
  38. package/dist/cjs/components/context-menu/SubMenu.d.ts +0 -1
  39. package/dist/cjs/components/context-menu/SubMenu.js.map +1 -1
  40. package/dist/cjs/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  41. package/dist/cjs/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  42. package/dist/cjs/components/edit-guide-modal/EditGuideModal.d.ts +8 -0
  43. package/dist/cjs/components/edit-guide-modal/EditGuideModal.js +132 -0
  44. package/dist/cjs/components/edit-guide-modal/EditGuideModal.js.map +1 -0
  45. package/dist/cjs/components/edit-marker-modal/EditMarkerModal.d.ts +8 -0
  46. package/dist/cjs/components/edit-marker-modal/EditMarkerModal.js +104 -0
  47. package/dist/cjs/components/edit-marker-modal/EditMarkerModal.js.map +1 -0
  48. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  49. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js +91 -0
  50. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  51. package/dist/cjs/components/feature-flag-wrapper/FeatureFlagWrapper.d.ts +7 -0
  52. package/dist/cjs/components/feature-flag-wrapper/FeatureFlagWrapper.js +48 -0
  53. package/dist/cjs/components/feature-flag-wrapper/FeatureFlagWrapper.js.map +1 -0
  54. package/dist/cjs/components/header/Header_BACKUP_73021.d.ts +33 -0
  55. package/dist/cjs/components/header/Header_BACKUP_73021.js +393 -0
  56. package/dist/cjs/components/header/Header_BACKUP_73021.js.map +1 -0
  57. package/dist/cjs/components/header/Header_BASE_73021.d.ts +29 -0
  58. package/dist/cjs/components/header/Header_BASE_73021.js +376 -0
  59. package/dist/cjs/components/header/Header_BASE_73021.js.map +1 -0
  60. package/dist/cjs/components/header/Header_LOCAL_73021.d.ts +33 -0
  61. package/dist/cjs/components/header/Header_LOCAL_73021.js +382 -0
  62. package/dist/cjs/components/header/Header_LOCAL_73021.js.map +1 -0
  63. package/dist/cjs/components/header/Header_REMOTE_73021.d.ts +30 -0
  64. package/dist/cjs/components/header/Header_REMOTE_73021.js +386 -0
  65. package/dist/cjs/components/header/Header_REMOTE_73021.js.map +1 -0
  66. package/dist/cjs/components/header/StoryDropdown.d.ts +6 -0
  67. package/dist/cjs/components/header/StoryDropdown.js +111 -0
  68. package/dist/cjs/components/header/StoryDropdown.js.map +1 -0
  69. package/dist/cjs/components/number-field/NumberField.d.ts +2 -3
  70. package/dist/cjs/components/number-field/NumberField.js +19 -23
  71. package/dist/cjs/components/number-field/NumberField.js.map +1 -1
  72. package/dist/cjs/components/portal/Portal.d.ts +0 -1
  73. package/dist/cjs/components/portal/Portal.js.map +1 -1
  74. package/dist/cjs/components/publish-wizard/PublishWizard.d.ts +5 -4
  75. package/dist/cjs/components/publish-wizard/PublishWizard.js +104 -38
  76. package/dist/cjs/components/publish-wizard/PublishWizard.js.map +1 -1
  77. package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.d.ts +11 -0
  78. package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.js +213 -0
  79. package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.js.map +1 -0
  80. package/dist/cjs/components/service-icon/ServiceIcon.test.d.ts +0 -0
  81. package/dist/cjs/components/service-icon/ServiceIcon.test.js +1 -0
  82. package/dist/cjs/components/service-icon/ServiceIcon.test.js.map +1 -0
  83. package/dist/cjs/components/story-previewer/StoryPreviewer.js +2 -15
  84. package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
  85. package/dist/cjs/components/tabs/Tabs.d.ts +4 -12
  86. package/dist/cjs/components/tabs/Tabs.js +3 -21
  87. package/dist/cjs/components/tabs/Tabs.js.map +1 -1
  88. package/dist/cjs/components/tabs/Tabs.stories.d.ts +3 -1
  89. package/dist/cjs/components/tag/Tag.test.d.ts +0 -0
  90. package/dist/cjs/components/tag/Tag.test.js +1 -0
  91. package/dist/cjs/components/tag/Tag.test.js.map +1 -0
  92. package/dist/cjs/constants/copy.d.ts +9 -0
  93. package/dist/cjs/constants/copy.js +13 -2
  94. package/dist/cjs/constants/copy.js.map +1 -1
  95. package/dist/cjs/constants/snippets.d.ts +18 -0
  96. package/dist/cjs/constants/snippets.js +3 -0
  97. package/dist/cjs/constants/snippets.js.map +1 -0
  98. package/dist/cjs/index.d.ts +4 -2
  99. package/dist/cjs/index.js +4 -36
  100. package/dist/cjs/index.js.map +1 -1
  101. package/dist/cjs/redux/actions/auth.d.ts +9 -0
  102. package/dist/cjs/redux/actions/auth.js +30 -0
  103. package/dist/cjs/redux/actions/auth.js.map +1 -0
  104. package/dist/cjs/redux/reducers/auth.d.ts +3 -0
  105. package/dist/cjs/redux/reducers/auth.js +67 -0
  106. package/dist/cjs/redux/reducers/auth.js.map +1 -0
  107. package/dist/cjs/services/API.d.ts +2 -0
  108. package/dist/cjs/services/API.js +6 -0
  109. package/dist/cjs/services/API.js.map +1 -1
  110. package/dist/cjs/services/Auth0.d.ts +18 -0
  111. package/dist/cjs/services/Auth0.js +102 -0
  112. package/dist/cjs/services/Auth0.js.map +1 -0
  113. package/dist/cjs/services/Session.d.ts +26 -0
  114. package/dist/cjs/services/Session.js +155 -0
  115. package/dist/cjs/services/Session.js.map +1 -0
  116. package/dist/cjs/utils/routing.d.ts +2 -4
  117. package/dist/cjs/utils/routing.js +4 -8
  118. package/dist/cjs/utils/routing.js.map +1 -1
  119. package/dist/esm/components/app-wrapper/AppWrapper.d.ts +1 -6
  120. package/dist/esm/components/app-wrapper/AppWrapper.js +5 -9
  121. package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
  122. package/dist/esm/components/app-wrapper/AppWrapperV2.d.ts +26 -0
  123. package/dist/esm/components/app-wrapper/AppWrapperV2.js +142 -0
  124. package/dist/esm/components/app-wrapper/AppWrapperV2.js.map +1 -0
  125. package/dist/esm/components/app-wrapper/AppWrapperV3.d.ts +19 -0
  126. package/dist/esm/components/app-wrapper/AppWrapperV3.js +88 -0
  127. package/dist/esm/components/app-wrapper/AppWrapperV3.js.map +1 -0
  128. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  129. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
  130. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  131. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  132. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
  133. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  134. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  135. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
  136. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  137. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  138. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
  139. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  140. package/dist/esm/components/assets/AssetsUploadMenu.js +5 -5
  141. package/dist/esm/components/auth-gate/AuthGate.d.ts +2 -0
  142. package/dist/esm/components/auth-gate/AuthGate.js +59 -0
  143. package/dist/esm/components/auth-gate/AuthGate.js.map +1 -0
  144. package/dist/esm/components/change-report/ChangeReportTree.d.ts +10 -0
  145. package/dist/esm/components/change-report/ChangeReportTree.js +42 -0
  146. package/dist/esm/components/change-report/ChangeReportTree.js.map +1 -0
  147. package/dist/esm/components/context-menu/AnimateComponent.d.ts +0 -1
  148. package/dist/esm/components/context-menu/AnimateComponent.js.map +1 -1
  149. package/dist/esm/components/context-menu/ContextMenu.d.ts +0 -1
  150. package/dist/esm/components/context-menu/ContextMenu.js +1 -2
  151. package/dist/esm/components/context-menu/ContextMenu.js.map +1 -1
  152. package/dist/esm/components/context-menu/ContextMenuItem.d.ts +0 -1
  153. package/dist/esm/components/context-menu/ContextMenuItem.js.map +1 -1
  154. package/dist/esm/components/context-menu/ContextMenuTrigger.d.ts +0 -1
  155. package/dist/esm/components/context-menu/ContextMenuTrigger.js.map +1 -1
  156. package/dist/esm/components/context-menu/SubMenu.d.ts +0 -1
  157. package/dist/esm/components/context-menu/SubMenu.js.map +1 -1
  158. package/dist/esm/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  159. package/dist/esm/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  160. package/dist/esm/components/edit-guide-modal/EditGuideModal.d.ts +8 -0
  161. package/dist/esm/components/edit-guide-modal/EditGuideModal.js +65 -0
  162. package/dist/esm/components/edit-guide-modal/EditGuideModal.js.map +1 -0
  163. package/dist/esm/components/edit-marker-modal/EditMarkerModal.d.ts +8 -0
  164. package/dist/esm/components/edit-marker-modal/EditMarkerModal.js +72 -0
  165. package/dist/esm/components/edit-marker-modal/EditMarkerModal.js.map +1 -0
  166. package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  167. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
  168. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  169. package/dist/esm/components/feature-flag-wrapper/FeatureFlagWrapper.d.ts +7 -0
  170. package/dist/esm/components/feature-flag-wrapper/FeatureFlagWrapper.js +10 -0
  171. package/dist/esm/components/feature-flag-wrapper/FeatureFlagWrapper.js.map +1 -0
  172. package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
  173. package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
  174. package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
  175. package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
  176. package/dist/esm/components/header/Header_BASE_73021.js +322 -0
  177. package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
  178. package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
  179. package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
  180. package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
  181. package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
  182. package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
  183. package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
  184. package/dist/esm/components/header/StoryDropdown.d.ts +6 -0
  185. package/dist/esm/components/header/StoryDropdown.js +82 -0
  186. package/dist/esm/components/header/StoryDropdown.js.map +1 -0
  187. package/dist/esm/components/number-field/NumberField.d.ts +2 -3
  188. package/dist/esm/components/number-field/NumberField.js +19 -18
  189. package/dist/esm/components/number-field/NumberField.js.map +1 -1
  190. package/dist/esm/components/portal/Portal.d.ts +0 -1
  191. package/dist/esm/components/portal/Portal.js.map +1 -1
  192. package/dist/esm/components/publish-wizard/PublishWizard.d.ts +5 -4
  193. package/dist/esm/components/publish-wizard/PublishWizard.js +92 -38
  194. package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
  195. package/dist/esm/components/replace-files-modal/ReplaceFilesModal.d.ts +11 -0
  196. package/dist/esm/components/replace-files-modal/ReplaceFilesModal.js +141 -0
  197. package/dist/esm/components/replace-files-modal/ReplaceFilesModal.js.map +1 -0
  198. package/dist/esm/components/service-icon/ServiceIcon.test.d.ts +0 -0
  199. package/dist/esm/components/service-icon/ServiceIcon.test.js +1 -0
  200. package/dist/esm/components/service-icon/ServiceIcon.test.js.map +1 -0
  201. package/dist/esm/components/story-previewer/StoryPreviewer.js +2 -14
  202. package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
  203. package/dist/esm/components/tabs/Tabs.d.ts +4 -12
  204. package/dist/esm/components/tabs/Tabs.js +4 -11
  205. package/dist/esm/components/tabs/Tabs.js.map +1 -1
  206. package/dist/esm/components/tabs/Tabs.stories.d.ts +3 -1
  207. package/dist/esm/components/tag/Tag.test.d.ts +0 -0
  208. package/dist/esm/components/tag/Tag.test.js +1 -0
  209. package/dist/esm/components/tag/Tag.test.js.map +1 -0
  210. package/dist/esm/constants/copy.d.ts +9 -0
  211. package/dist/esm/constants/copy.js +13 -2
  212. package/dist/esm/constants/copy.js.map +1 -1
  213. package/dist/esm/constants/snippets.d.ts +18 -0
  214. package/dist/esm/constants/snippets.js +2 -0
  215. package/dist/esm/constants/snippets.js.map +1 -0
  216. package/dist/esm/index.d.ts +4 -2
  217. package/dist/esm/index.js +3 -2
  218. package/dist/esm/index.js.map +1 -1
  219. package/dist/esm/redux/actions/auth.d.ts +9 -0
  220. package/dist/esm/redux/actions/auth.js +25 -0
  221. package/dist/esm/redux/actions/auth.js.map +1 -0
  222. package/dist/esm/redux/reducers/auth.d.ts +3 -0
  223. package/dist/esm/redux/reducers/auth.js +27 -0
  224. package/dist/esm/redux/reducers/auth.js.map +1 -0
  225. package/dist/esm/services/API.d.ts +2 -0
  226. package/dist/esm/services/API.js +6 -0
  227. package/dist/esm/services/API.js.map +1 -1
  228. package/dist/esm/services/Auth0.d.ts +18 -0
  229. package/dist/esm/services/Auth0.js +68 -0
  230. package/dist/esm/services/Auth0.js.map +1 -0
  231. package/dist/esm/services/Session.d.ts +26 -0
  232. package/dist/esm/services/Session.js +107 -0
  233. package/dist/esm/services/Session.js.map +1 -0
  234. package/dist/esm/utils/routing.d.ts +2 -4
  235. package/dist/esm/utils/routing.js +3 -6
  236. package/dist/esm/utils/routing.js.map +1 -1
  237. package/dist/styles.css +130 -3
  238. package/dist/styles.less +215 -64
  239. package/less/components/assets.less +5 -6
  240. package/less/components/auth-gate.less +1 -1
  241. package/less/components/change-report.less +115 -0
  242. package/less/components/data-table.less +2 -2
  243. package/less/components/determinate-loader.less +2 -2
  244. package/less/components/font-preview.less +1 -1
  245. package/less/components/form-field.less +5 -5
  246. package/less/components/header.less +30 -30
  247. package/less/components/modal.less +2 -2
  248. package/less/components/player.less +2 -2
  249. package/less/components/publish-wizard.less +36 -0
  250. package/less/components/section.less +2 -2
  251. package/less/components/static-composition-editor.less +4 -4
  252. package/less/components/story-previewer.less +4 -4
  253. package/less/components/tabs.less +3 -3
  254. package/less/entry.less +1 -0
  255. package/package.json +13 -24
  256. package/src/components/app-wrapper/AppWrapper.tsx +10 -18
  257. package/src/components/assets/AssetsUploadMenu.tsx +5 -5
  258. package/src/components/change-report/ChangeReportTree.tsx +125 -0
  259. package/src/components/context-menu/AnimateComponent.tsx +0 -1
  260. package/src/components/context-menu/ContextMenu.tsx +13 -15
  261. package/src/components/context-menu/ContextMenuItem.tsx +0 -1
  262. package/src/components/context-menu/ContextMenuTrigger.tsx +0 -1
  263. package/src/components/context-menu/SubMenu.tsx +0 -1
  264. package/src/components/number-field/NumberField.tsx +24 -33
  265. package/src/components/portal/Portal.tsx +0 -1
  266. package/src/components/publish-wizard/PublishWizard.tsx +145 -46
  267. package/src/components/service-icon/ServiceIcon.test.tsx +0 -0
  268. package/src/components/story-previewer/StoryPreviewer.tsx +8 -21
  269. package/src/components/tabs/Tabs.tsx +8 -25
  270. package/src/components/tag/Tag.test.tsx +0 -0
  271. package/src/constants/copy.ts +16 -2
  272. package/src/constants/snippets.ts +25 -0
  273. package/src/index.ts +7 -2
  274. package/src/services/API.ts +8 -0
  275. package/src/utils/routing.ts +6 -10
  276. package/tsconfig.json +1 -1
  277. package/src/components/advanced-number-field/AdvancedNumberField.test.tsx +0 -724
  278. package/src/components/anchor-field/AnchorField.test.tsx +0 -130
  279. package/src/components/asset-details/AssetDetails.test.tsx +0 -494
  280. package/src/components/assets/AssetField.test.tsx +0 -449
  281. package/src/components/assets/AssetsTableAssetIdCell.test.tsx +0 -142
  282. package/src/components/assets/AssetsTableAssetIdFilter.test.tsx +0 -95
  283. package/src/components/assets/AssetsTableComplexTagCell.test.tsx +0 -161
  284. package/src/components/assets/AssetsTableDateCell.test.tsx +0 -106
  285. package/src/components/assets/AssetsTableDropzone.test.tsx +0 -132
  286. package/src/components/assets/AssetsTableDurationCell.test.tsx +0 -119
  287. package/src/components/assets/AssetsTableGlobalCell.test.tsx +0 -46
  288. package/src/components/assets/AssetsTableNameCell.test.tsx +0 -166
  289. package/src/components/assets/AssetsTableNameFilter.test.tsx +0 -95
  290. package/src/components/assets/AssetsTablePreviewCell.test.tsx +0 -191
  291. package/src/components/assets/AssetsTableRateCell.test.tsx +0 -87
  292. package/src/components/assets/AssetsTableSelectCell.test.tsx +0 -156
  293. package/src/components/assets/AssetsTableSelectFilter.test.tsx +0 -119
  294. package/src/components/assets/AssetsTableStatusCell.test.tsx +0 -60
  295. package/src/components/number-field/NumberField.test.tsx +0 -383
  296. package/src/components/text-field/TextField.test.tsx +0 -988
  297. package/src/test/setup.ts +0 -91
  298. package/src/test/utils.tsx +0 -44
  299. package/tsconfig.eslint.json +0 -8
  300. package/vitest.config.ts +0 -31
  301. /package/dist/cjs/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  302. /package/dist/esm/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  303. /package/src/components/dropdown/{Dropdown.stories.tsx → dropdown.stories.tsx} +0 -0
@@ -1,6 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { CrMPublishUI } from './publish/CrMPublishUI';
3
3
  import Button from '../button/Button';
4
+ import ChangeReportTree from '../change-report/ChangeReportTree';
5
+ import { IChangeReportSection } from '../../constants/snippets';
4
6
  import SelectField from '../select-field/SelectField';
5
7
  import HRule from '../h-rule/HRule';
6
8
  import {
@@ -72,6 +74,7 @@ interface IPublishWizardProps {
72
74
  publishData: any;
73
75
  onDeleteBatch?: (batchId: string) => any;
74
76
  onBackBtn?: () => void;
77
+ auditLogEnabled?: boolean;
75
78
  }
76
79
 
77
80
  export interface ICredential {
@@ -98,6 +101,8 @@ interface IPublishWizardState {
98
101
  nextStep: boolean;
99
102
  publishError: string;
100
103
  selectedCreatives: string[];
104
+ changeReport: IChangeReportSection[] | null;
105
+ publishNotes: string;
101
106
  }
102
107
 
103
108
  interface IBigButtonProps {
@@ -126,8 +131,12 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
126
131
  publishData: { unpublished_changes }
127
132
  } = props;
128
133
 
129
- const screenIndex =
130
- unpublished_changes === undefined || unpublished_changes === true ? 0 : 1;
134
+ const hasReviewStep = !!props.auditLogEnabled;
135
+ const screenIndex = hasReviewStep
136
+ ? 0
137
+ : unpublished_changes === undefined || unpublished_changes === true
138
+ ? 0
139
+ : 1;
131
140
 
132
141
  this.state = {
133
142
  compositions: [],
@@ -145,28 +154,46 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
145
154
  next: false,
146
155
  nextStep: false,
147
156
  publishError: null,
148
- selectedCreatives: []
157
+ selectedCreatives: [],
158
+ changeReport: null,
159
+ publishNotes: ''
149
160
  };
150
161
  this.emailWorkflow = React.createRef();
151
162
  this.hiddenFileInputRef = React.createRef();
152
163
  }
153
164
 
154
165
  public componentDidUpdate(prevProps, prevState) {
155
- // If we just finished publushing, and we're on the first screen still go to the second screen
166
+ const hasReviewStep = !!this.props.auditLogEnabled;
167
+ // If we just finished publishing, advance from the Publish screen to the Distribution screen
168
+ const publishScreenIndex = hasReviewStep ? 1 : 0;
169
+ const distributionScreenIndex = hasReviewStep ? 2 : 1;
156
170
  if (
157
171
  prevProps.publishData.publishing &&
158
172
  !this.props.publishData.publishing &&
159
- this.state.screenIndex === 0 &&
173
+ this.state.screenIndex === publishScreenIndex &&
160
174
  !this.state.publishError
161
175
  ) {
162
176
  this.setState({
163
- screenIndex: 1
177
+ screenIndex: distributionScreenIndex
164
178
  });
165
179
  }
166
180
  }
167
181
 
168
182
  public componentDidMount() {
169
- const { story, api, handleError, activeComposition } = this.props;
183
+ const { story, api, handleError, activeComposition, auditLogEnabled } = this.props;
184
+
185
+ if (auditLogEnabled) {
186
+ api.getAuditLog(story.id)
187
+ .then((entries) => {
188
+ const currentEntry = entries?.[0];
189
+ const report = currentEntry?.id === 'current' ? currentEntry.changes : null;
190
+ this.setState({ changeReport: report });
191
+ })
192
+ .catch(() => {
193
+ this.setState({ changeReport: null });
194
+ });
195
+ }
196
+
170
197
  // Pull in all of the access creds for the composition dropdown
171
198
  api.getAssets({ type: ASSET_TYPES.VIDEO_COMPOSITION }, story.id)
172
199
  .then((res) => {
@@ -303,12 +330,14 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
303
330
  handleError,
304
331
  fromCrM
305
332
  } = this.props;
333
+ const hasReviewStep = !!this.props.auditLogEnabled;
334
+ const distributionScreenIndex = hasReviewStep ? 2 : 1;
306
335
 
307
336
  if (fromCrM) {
308
337
  this.props
309
338
  .publishVersion(api, id, this.state.selectedCreatives)
310
339
  .then(() => {
311
- this.setState({ screenIndex: 1 });
340
+ this.setState({ screenIndex: distributionScreenIndex });
312
341
  })
313
342
  .catch((e) => {
314
343
  this.setState({ publishError: e });
@@ -317,7 +346,7 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
317
346
  this.props.publishVersion(api, id).catch((e) => {
318
347
  handleError(e);
319
348
  });
320
- this.setState({ screenIndex: 1 });
349
+ this.setState({ screenIndex: distributionScreenIndex });
321
350
  }
322
351
  }
323
352
 
@@ -353,12 +382,7 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
353
382
  }
354
383
 
355
384
  private getErrorCopyForCrMPublish() {
356
- const { story, project, fromCrM } = this.props;
357
-
358
- if (!fromCrM) {
359
- return null;
360
- }
361
-
385
+ const { story, project } = this.props;
362
386
  const variables = story ? story.acts[project.actId].inventory : {};
363
387
  const varLength = variables ? Object.keys(variables).length : 0;
364
388
 
@@ -374,12 +398,35 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
374
398
  const { fromCrM, story } = this.props;
375
399
  const { publishing } = this.props.publishData;
376
400
  const disabledForCrM = this.shouldDisablePublishButtonForCrM();
401
+ const hasReviewStep = !!this.props.auditLogEnabled;
402
+ const publishScreenIndex = hasReviewStep ? 1 : 0;
403
+ const distributionScreenIndex = hasReviewStep ? 2 : 1;
377
404
  const lowerButtons = [];
378
405
 
379
- // publish and skip buttons
380
- if (screenIndex === 0) {
381
- // publish
382
-
406
+ if (hasReviewStep && screenIndex === 0) {
407
+ // Review Changes step: Skip and Publish buttons (no Back)
408
+ lowerButtons.push(
409
+ <Button
410
+ tooltip={copy.publish.btnSkip}
411
+ key='btn-skip'
412
+ size={'large'}
413
+ onClick={() => this.setState({ screenIndex: distributionScreenIndex })}
414
+ color='primary'>
415
+ {copy.publish.btnSkip}
416
+ </Button>
417
+ );
418
+ lowerButtons.push(
419
+ <Button
420
+ tooltip={copy.publish.btnPublish}
421
+ size={'large'}
422
+ key='btn-publish-review'
423
+ onClick={() => this.setState({ screenIndex: publishScreenIndex })}
424
+ color='primary'>
425
+ {copy.publish.btnPublish}
426
+ </Button>
427
+ );
428
+ } else if (screenIndex === publishScreenIndex) {
429
+ // Publish step: Publish and Skip buttons
383
430
  const projectType = story.creativeId
384
431
  ? CRM_INTEGRATED_PROJECT_TYPES.SINGLE_CREATIVE
385
432
  : CRM_INTEGRATED_PROJECT_TYPES.MULTI_CREATIVE;
@@ -406,13 +453,13 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
406
453
  tooltip={copy.publish.btnSkip}
407
454
  key='btn-skip'
408
455
  size={'large'}
409
- onClick={() => this.setState({ screenIndex: 1 })}
456
+ onClick={() => this.setState({ screenIndex: distributionScreenIndex })}
410
457
  color='primary'>
411
458
  {copy.publish.btnSkip}
412
459
  </Button>
413
460
  );
414
461
  } else {
415
- // display button when emailworkflow downloading state is true to close the modal
462
+ // Distribution and sub-screens: Back button (and Done/Finish if applicable)
416
463
  if (done || error) {
417
464
  lowerButtons.push(
418
465
  <Button
@@ -426,9 +473,10 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
426
473
  );
427
474
  }
428
475
 
429
- const backIndex = screenIndex === 1 ? 0 : 1;
476
+ // Back button: from distribution go to 0 (Review Changes ON) or 0 (Publish OFF)
477
+ // from sub-screens → go back to distribution
478
+ const backIndex = screenIndex === distributionScreenIndex ? 0 : distributionScreenIndex;
430
479
 
431
- // back button
432
480
  lowerButtons.push(
433
481
  <Button
434
482
  tooltip={copy.publish.btnBack}
@@ -455,7 +503,6 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
455
503
  </Button>
456
504
  );
457
505
 
458
- // reimport after column align
459
506
  if (error) {
460
507
  lowerButtons.push(
461
508
  <Button
@@ -474,6 +521,32 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
474
521
  return lowerButtons;
475
522
  }
476
523
 
524
+ private renderReviewChanges() {
525
+ const { changeReport, publishNotes } = this.state;
526
+ return (
527
+ <div className='publish-wizard-step publish-wizard-step--review'>
528
+ <h2>{copy.publish.reviewChangesStepTitle}</h2>
529
+ <HRule />
530
+ <p>{copy.publish.reviewChangesDescription}</p>
531
+ <ChangeReportTree
532
+ sections={changeReport}
533
+ defaultExpanded={true}
534
+ emptyMessage={copy.publish.noChangesMessage}
535
+ loadingMessage={copy.publish.loadingChangesMessage}
536
+ />
537
+ <div className='publish-notes-wrapper'>
538
+ <label className='publish-notes-label'>{copy.publish.publishNotesLabel}</label>
539
+ <textarea
540
+ className='publish-notes-textarea'
541
+ value={publishNotes}
542
+ onChange={(e) => this.setState({ publishNotes: e.target.value })}
543
+ placeholder={copy.publish.publishNotesPlaceholder}
544
+ />
545
+ </div>
546
+ </div>
547
+ );
548
+ }
549
+
477
550
  private renderPublish() {
478
551
  const { fromCrM, story } = this.props;
479
552
  const { publishing } = this.props.publishData;
@@ -483,7 +556,6 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
483
556
  const projectType = story.creativeId
484
557
  ? CRM_INTEGRATED_PROJECT_TYPES.SINGLE_CREATIVE
485
558
  : CRM_INTEGRATED_PROJECT_TYPES.MULTI_CREATIVE;
486
-
487
559
  const error = errorCopy ? (
488
560
  <p className='publish-error'>
489
561
  <span className='icon'>{ICON_EXCLAIMATION_TRIANGLE}</span>&nbsp;&nbsp;{errorCopy}
@@ -597,6 +669,7 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
597
669
  selectedComposition={selectedComposition}
598
670
  publishDataset={publishDataset}
599
671
  creativeManagerBaseUrl={creativeManagerBaseUrl}
672
+ hasReviewStep={!!this.props.auditLogEnabled}
600
673
  />
601
674
  </div>
602
675
  </div>
@@ -607,7 +680,10 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
607
680
  private nextClickHandler = () => {
608
681
  this.setState({ nextStep: true, error: false });
609
682
 
610
- if (this.state.screenIndex === 7 || this.state.screenIndex === 8) {
683
+ const hasReviewStep = !!this.props.auditLogEnabled;
684
+ const exportIndex = hasReviewStep ? 8 : 7;
685
+ const crmExportIndex = hasReviewStep ? 9 : 8;
686
+ if (this.state.screenIndex === exportIndex || this.state.screenIndex === crmExportIndex) {
611
687
  this.emailWorkflow.current.getWrappedInstance().proceedWithExport();
612
688
  }
613
689
  };
@@ -660,6 +736,8 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
660
736
  })?.name || '';
661
737
 
662
738
  const variables = story ? story.acts[project.actId].inventory : {};
739
+ const hasReviewStep = !!this.props.auditLogEnabled;
740
+
663
741
  return (
664
742
  <div className='publish-wizard'>
665
743
  <div className='publish-wizard-header'>
@@ -668,20 +746,26 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
668
746
  </div>
669
747
  {/* <PaneErrorBoundry>*/}
670
748
  <div>
671
- {screenIndex === 0 && this.renderPublish()}
672
- {screenIndex === 1 && this.renderDistributionOptions()}
673
- {screenIndex === 2 && (
749
+ {hasReviewStep && screenIndex === 0 && this.renderReviewChanges()}
750
+ {screenIndex === (hasReviewStep ? 1 : 0) && this.renderPublish()}
751
+ {screenIndex === (hasReviewStep ? 2 : 1) && this.renderDistributionOptions()}
752
+ {screenIndex === (hasReviewStep ? 3 : 2) && (
674
753
  <WebpageHosted
675
754
  story={story}
676
755
  compositionId={selectedComposition}
677
756
  accessKey={accessKey}
678
757
  />
679
758
  )}
680
- {(screenIndex === 3 || screenIndex === 7 || screenIndex === 8) && (
759
+ {(screenIndex === (hasReviewStep ? 4 : 3) ||
760
+ screenIndex === (hasReviewStep ? 8 : 7) ||
761
+ screenIndex === (hasReviewStep ? 9 : 8)) && (
681
762
  <EmailWorkflow
682
- isCrM={screenIndex === 8}
683
- isExport={screenIndex === 7 || screenIndex === 8}
684
- isEmail={screenIndex === 3}
763
+ isCrM={screenIndex === (hasReviewStep ? 9 : 8)}
764
+ isExport={
765
+ screenIndex === (hasReviewStep ? 8 : 7) ||
766
+ screenIndex === (hasReviewStep ? 9 : 8)
767
+ }
768
+ isEmail={screenIndex === (hasReviewStep ? 4 : 3)}
685
769
  api={api}
686
770
  story={story}
687
771
  variables={variables}
@@ -707,7 +791,7 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
707
791
  ref={this.emailWorkflow}
708
792
  />
709
793
  )}
710
- {screenIndex === 5 && (
794
+ {screenIndex === (hasReviewStep ? 6 : 5) && (
711
795
  <HubSpotFlow
712
796
  handleError={handleError}
713
797
  status={status}
@@ -717,7 +801,7 @@ class PublishWizard extends React.PureComponent<IPublishWizardProps, IPublishWiz
717
801
  compositionId={selectedComposition}
718
802
  />
719
803
  )}
720
- {screenIndex === 6 && <APIIntegration />}
804
+ {screenIndex === (hasReviewStep ? 7 : 6) && <APIIntegration />}
721
805
  <br />
722
806
  <HRule />
723
807
  <div className='lower-buttons'>{this.renderLowerButtons()}</div>
@@ -737,7 +821,19 @@ const mapDispatchToProps = (dispatch) => {
737
821
  return bindActionCreators({ publishVersion }, dispatch);
738
822
  };
739
823
 
740
- export default connect(mapStateToProps, mapDispatchToProps)(PublishWizard);
824
+ const ConnectedPublishWizard = connect(mapStateToProps, mapDispatchToProps)(PublishWizard);
825
+
826
+ const PublishWizardWithFlag = (props) => {
827
+ const auditLogEnabled = useFlag('feature.IMPOSIUM_EDITOR.AUDIT_LOG');
828
+ return (
829
+ <ConnectedPublishWizard
830
+ {...props}
831
+ auditLogEnabled={auditLogEnabled}
832
+ />
833
+ );
834
+ };
835
+
836
+ export default PublishWizardWithFlag;
741
837
 
742
838
  export const BigButton: React.FC<IBigButtonProps> = (p) => (
743
839
  <div
@@ -748,7 +844,7 @@ export const BigButton: React.FC<IBigButtonProps> = (p) => (
748
844
  </div>
749
845
  );
750
846
 
751
- export const TabContent: React.FC<React.PropsWithChildren> = ({ children }) => (
847
+ export const TabContent: React.FC = ({ children }) => (
752
848
  <div className='tab-content'>
753
849
  <div className='settings-tab'>
754
850
  <div className='integration-details'>{children}</div>
@@ -792,8 +888,11 @@ export const DistributeOptions = ({
792
888
  onSelectOption,
793
889
  selectedComposition,
794
890
  publishDataset,
795
- creativeManagerBaseUrl
891
+ creativeManagerBaseUrl,
892
+ hasReviewStep = false
796
893
  }) => {
894
+ const shift = hasReviewStep ? 1 : 0;
895
+ const selectOption = (index: number) => onSelectOption(index + shift);
797
896
  const isPrerendersEnabled = useFlag('feature.IMPOSIUM_EDITOR.PRERENDERS_CRM_WORKFLOW');
798
897
 
799
898
  const getCrMLink = (creativeLibraryId: string, creativeId?: string) => {
@@ -812,7 +911,7 @@ export const DistributeOptions = ({
812
911
  {ICON_GLOBE}&nbsp;{copy.publish.btnWebsite}
813
912
  </span>
814
913
  ),
815
- onClick: (e) => onSelectOption(2)
914
+ onClick: (e) => selectOption(2)
816
915
  },
817
916
  {
818
917
  label: (
@@ -820,7 +919,7 @@ export const DistributeOptions = ({
820
919
  {ICON_EMAIL}&nbsp;{copy.publish.btnEmail}
821
920
  </span>
822
921
  ),
823
- onClick: (e) => onSelectOption(3)
922
+ onClick: (e) => selectOption(3)
824
923
  },
825
924
  {
826
925
  label: (
@@ -828,7 +927,7 @@ export const DistributeOptions = ({
828
927
  {ICON_HUBSPOT}&nbsp;{copy.publish.btnHubspot}
829
928
  </span>
830
929
  ),
831
- onClick: (e) => onSelectOption(5)
930
+ onClick: (e) => selectOption(5)
832
931
  },
833
932
  {
834
933
  label: (
@@ -836,7 +935,7 @@ export const DistributeOptions = ({
836
935
  {ICON_PROJECT_DIAGRAM}&nbsp;{copy.publish.btnAPI}
837
936
  </span>
838
937
  ),
839
- onClick: (e) => onSelectOption(6)
938
+ onClick: (e) => selectOption(6)
840
939
  },
841
940
  {
842
941
  label: (
@@ -844,7 +943,7 @@ export const DistributeOptions = ({
844
943
  {ICON_DOWNLOAD}&nbsp;{copy.publish.btnExport}
845
944
  </span>
846
945
  ),
847
- onClick: (e) => onSelectOption(7)
946
+ onClick: (e) => selectOption(7)
848
947
  },
849
948
  {
850
949
  label: (
@@ -852,7 +951,7 @@ export const DistributeOptions = ({
852
951
  {ICON_IMAGE}&nbsp;{copy.publish.btnCRM}
853
952
  </span>
854
953
  ),
855
- onClick: (e) => onSelectOption(8)
954
+ onClick: (e) => selectOption(8)
856
955
  }
857
956
  ]
858
957
  : [
@@ -862,7 +961,7 @@ export const DistributeOptions = ({
862
961
  {ICON_DOWNLOAD}&nbsp;{copy.publish.btnRunTestBatch}
863
962
  </span>
864
963
  ),
865
- onClick: (e) => onSelectOption(7)
964
+ onClick: (e) => selectOption(7)
866
965
  },
867
966
  {
868
967
  label: (
@@ -891,7 +990,7 @@ export const DistributeOptions = ({
891
990
  {ICON_IMAGE}&nbsp;{copy.publish.btnCRM}
892
991
  </span>
893
992
  ),
894
- onClick: (e) => onSelectOption(8),
993
+ onClick: (e) => selectOption(8),
895
994
  style: { width: 'calc(100% - 4px)' }
896
995
  });
897
996
  }
@@ -20,7 +20,7 @@ import ImagePlayer from '../players/ImagePlayer';
20
20
  import { saveAs } from 'file-saver';
21
21
  import MediaVariableField from '../media-variable-field/MediaVariableField';
22
22
  import { IExperience } from '../../interfaces/experience';
23
- import { useResizeDetector } from 'react-resize-detector';
23
+ import ReactResizeDetector from 'react-resize-detector';
24
24
  import { ERROR, previewer as copy } from '../../constants/copy';
25
25
  import { formattedTime } from '../../Util';
26
26
  import Timer from '../../services/Timer';
@@ -30,25 +30,6 @@ import { ICON_DOWNLOAD, ICON_CLIPBOARD } from '../../constants/icons';
30
30
  import AudioPlayer from '../players/AudioPlayer';
31
31
  import ColorField from '../color-field/ColorField';
32
32
 
33
- const ResizeDetectorWrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => {
34
- const { width, height, ref } = useResizeDetector<HTMLDivElement>({
35
- handleWidth: true,
36
- handleHeight: true
37
- });
38
- return (
39
- <div
40
- ref={ref}
41
- style={{ width: '100%', height: '100%' }}>
42
- {React.Children.map(children, (child) => {
43
- if (React.isValidElement(child)) {
44
- return React.cloneElement(child, { width, height } as any);
45
- }
46
- return child;
47
- })}
48
- </div>
49
- );
50
- };
51
-
52
33
  interface IStoryPreviewerProps {
53
34
  api: IImposiumAPI;
54
35
  storyId: string;
@@ -805,7 +786,13 @@ class StoryPreviewer extends React.PureComponent<IStoryPreviewerProps, IStoryPre
805
786
  );
806
787
  }
807
788
 
808
- return <ResizeDetectorWrapper>{player}</ResizeDetectorWrapper>;
789
+ return (
790
+ <ReactResizeDetector
791
+ handleWidth
792
+ handleHeight>
793
+ {player}
794
+ </ReactResizeDetector>
795
+ );
809
796
  }
810
797
 
811
798
  return null;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { useResizeDetector } from 'react-resize-detector';
2
+ import { withResizeDetector } from 'react-resize-detector';
3
3
  import ButtonMenu from '../button-menu/ButtonMenu';
4
4
  import ButtonMenuItem from '../button-menu/ButtonMenuItem';
5
5
  import Button from '../button/Button';
@@ -14,15 +14,15 @@ export interface ITab {
14
14
  menuButtons?: JSX.Element;
15
15
  }
16
16
 
17
- export interface ITabsProps {
17
+ interface ITabsProps {
18
18
  activeTab?: string;
19
19
  keepMounted?: boolean;
20
20
  options: ITab[];
21
21
  onChange(i): void;
22
- onClose?(i): void;
22
+ onClose(i): void;
23
23
  tabPadding?: number;
24
- width?: number;
25
- height?: number;
24
+ width: number;
25
+ height: number;
26
26
  }
27
27
 
28
28
  interface ITabsState {
@@ -85,7 +85,7 @@ class Tabs extends React.PureComponent<ITabsProps, ITabsState> {
85
85
  }
86
86
 
87
87
  private renderContent() {
88
- const { options, activeTab, keepMounted, width = 0, height = 0 } = this.props;
88
+ const { options, activeTab, keepMounted, width, height } = this.props;
89
89
 
90
90
  if (keepMounted) {
91
91
  const contentArray = [];
@@ -132,9 +132,7 @@ class Tabs extends React.PureComponent<ITabsProps, ITabsState> {
132
132
  onClick={(e) => {
133
133
  e.preventDefault();
134
134
  e.stopPropagation();
135
- if (this.props.onClose) {
136
- this.props.onClose(key);
137
- }
135
+ this.props.onClose(key);
138
136
  }}>
139
137
  {ICON_TIMES}
140
138
  </Button>
@@ -220,19 +218,4 @@ class Tabs extends React.PureComponent<ITabsProps, ITabsState> {
220
218
  }
221
219
  }
222
220
 
223
- const TabsWithResize: React.FC<Omit<ITabsProps, 'width' | 'height'>> = (props) => {
224
- const { width = 0, height = 0, ref } = useResizeDetector<HTMLDivElement>();
225
- return (
226
- <div
227
- ref={ref}
228
- style={{ width: '100%', height: '100%' }}>
229
- <Tabs
230
- {...props}
231
- width={width}
232
- height={height}
233
- />
234
- </div>
235
- );
236
- };
237
-
238
- export default TabsWithResize;
221
+ export default withResizeDetector(Tabs);
File without changes
@@ -147,14 +147,28 @@ export const publish = {
147
147
  'Your videos have finished rendering. They will appear in Creative Manager momentarily.',
148
148
  renderComplete: 'Render Complete!',
149
149
 
150
+ // review changes
151
+ reviewChangesStepTitle: 'STEP 1: Review Changes',
152
+ reviewChangesDescription:
153
+ 'Review the changes made since your last publish. You can publish these changes or skip to distribution.',
154
+ noChangesMessage: 'No changes detected since last publish.',
155
+ loadingChangesMessage: 'Loading changes...',
156
+ publishNotesLabel: 'Publish notes',
157
+ publishNotesPlaceholder: 'Describe the changes in this version...',
158
+
159
+ // change report status labels
160
+ statusAdded: 'Added',
161
+ statusRemoved: 'Removed',
162
+ statusModified: 'Modified',
163
+
150
164
  // publish
151
- publishStepTitle: 'STEP 1: Publish your Project',
165
+ publishStepTitle: 'STEP 2: Publish your Project',
152
166
  publishStepTitleFromCrM: 'STEP 1: Publish your Project to selected Creatives',
153
167
  publishStepDesc:
154
168
  "Your project needs to be published before your changes can be seen. If you haven't made any changes since the last time you published, you can skip to the next step.",
155
169
 
156
170
  // distribute
157
- distributeStepTitle: 'STEP 2: How do you want your users to view their video?',
171
+ distributeStepTitle: 'STEP 3: How do you want your users to view their video?',
158
172
  distributeStepTitleFromCrM: 'STEP 2: Run a test batch or return to Creative Manager?',
159
173
  distributeStepDesc:
160
174
  'Select which Composition you want to deliver, access credentials you want to use, and distribution channel.',
@@ -0,0 +1,25 @@
1
+ export interface IChangeReportNode {
2
+ label: string;
3
+ status: 'added' | 'removed' | 'modified';
4
+ oldValue?: string;
5
+ newValue?: string;
6
+ children?: IChangeReportNode[];
7
+ }
8
+
9
+ export interface IChangeReportSection {
10
+ section:
11
+ | 'PROJECT SETTINGS'
12
+ | 'VARIABLES'
13
+ | 'SCENES & ENCODING'
14
+ | 'ASSETS'
15
+ | 'COMPOSITIONS & LAYERS';
16
+ nodes: IChangeReportNode[];
17
+ }
18
+
19
+ export interface IPublishLogEntry {
20
+ id: string;
21
+ version: number | null;
22
+ message: string | null;
23
+ changes: IChangeReportSection[] | null;
24
+ date_created: number | null;
25
+ }
package/src/index.ts CHANGED
@@ -16,7 +16,7 @@ import FieldWrapper from './components/field-wrapper/FieldWrapper';
16
16
  import CheckboxField from './components/checkbox-field/CheckboxField';
17
17
  import ListField from './components/list-field/ListField';
18
18
  import ButtonGroupField from './components/button-group-field/ButtonGroupField';
19
- import NumberField, { validateNumInput } from './components/number-field/NumberField';
19
+ import NumberField from './components/number-field/NumberField';
20
20
  import SelectField from './components/select-field/SelectField';
21
21
  import TextField from './components/text-field/TextField';
22
22
  import TextAreaField from './components/text-area-field/TextAreaField';
@@ -168,6 +168,8 @@ import TextAreaAutocomplete from './components/text-area-autocomplete/TextAreaAu
168
168
  import IconToggle from './components/icon-toggle/IconToggle';
169
169
  import { DEFAULT_FONTS } from './constants/fonts';
170
170
  import FontField from './components/font-field/FontField';
171
+ import { IChangeReportNode, IChangeReportSection, IPublishLogEntry } from './constants/snippets';
172
+ import ChangeReportTree from './components/change-report/ChangeReportTree';
171
173
 
172
174
  export {
173
175
  ProjectDropdown,
@@ -335,5 +337,8 @@ export {
335
337
  IconToggle,
336
338
  DEFAULT_FONTS,
337
339
  FontField,
338
- validateNumInput
340
+ IChangeReportNode,
341
+ IChangeReportSection,
342
+ IPublishLogEntry,
343
+ ChangeReportTree
339
344
  };
@@ -164,6 +164,7 @@ export interface IImposiumAPI {
164
164
  cancelAllPendingRequests();
165
165
  getTTSVoices(params: any);
166
166
  getCustomVoice(voiceId: string);
167
+ getAuditLog(storyId: string): Promise<any | Error>;
167
168
  getToken: any;
168
169
  }
169
170
 
@@ -1917,4 +1918,11 @@ export default class API {
1917
1918
  url: `/text-to-speech/voice?service=ElevenLabs&id=${voiceId}`
1918
1919
  });
1919
1920
  };
1921
+
1922
+ public getAuditLog = (storyId: string): Promise<any | Error> => {
1923
+ return this.doRequest({
1924
+ method: 'GET',
1925
+ url: `/story/${storyId}/audit-log`
1926
+ });
1927
+ };
1920
1928
  }