@imposium-hub/components 2.2.45 → 2.2.46-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 +1 -0
  2. package/dist/cjs/Util.js +8 -1
  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 +4 -7
  6. package/dist/cjs/components/Tooltip.js.map +1 -1
  7. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.d.ts +2 -2
  8. package/dist/cjs/components/anchor-field/AnchorField.d.ts +2 -2
  9. package/dist/cjs/components/assets/AssetField.js +2 -2
  10. package/dist/cjs/components/assets/AssetField.js.map +1 -1
  11. package/dist/cjs/components/assets/AssetsTableDurationCell.js +1 -4
  12. package/dist/cjs/components/assets/AssetsTableDurationCell.js.map +1 -1
  13. package/dist/cjs/components/assets/AssetsTableGlobalCell.js +1 -1
  14. package/dist/cjs/components/assets/AssetsTableGlobalCell.js.map +1 -1
  15. package/dist/cjs/components/assets/AssetsTableNameCell.js +2 -1
  16. package/dist/cjs/components/assets/AssetsTableNameCell.js.map +1 -1
  17. package/dist/cjs/components/assets/AssetsTablePreviewCell.d.ts +1 -1
  18. package/dist/cjs/components/assets/AssetsTableRateCell.js +9 -3
  19. package/dist/cjs/components/assets/AssetsTableRateCell.js.map +1 -1
  20. package/dist/cjs/components/assets/AssetsTableTypeFilter.js +2 -2
  21. package/dist/cjs/components/assets/AssetsTableTypeFilter.js.map +1 -1
  22. package/dist/cjs/components/assets/AssetsUploadMenu.js +157 -33
  23. package/dist/cjs/components/assets/AssetsUploadMenu.js.map +1 -1
  24. package/dist/cjs/components/assets/FontAssetPreview.d.ts +1 -1
  25. package/dist/cjs/components/button/Button.d.ts +1 -1
  26. package/dist/cjs/components/button/Button.stories.d.ts +6 -5
  27. package/dist/cjs/components/button-group-field/ButtonGroupField.d.ts +1 -1
  28. package/dist/cjs/components/button-group-field/ButtonGroupField.stories.d.ts +2 -1
  29. package/dist/cjs/components/button-menu/ButtonMenu.d.ts +2 -2
  30. package/dist/cjs/components/button-menu/ButtonMenu.stories.d.ts +2 -1
  31. package/dist/cjs/components/button-menu/ButtonMenuItem.d.ts +1 -1
  32. package/dist/cjs/components/card/Card.stories.d.ts +2 -1
  33. package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +2 -2
  34. package/dist/cjs/components/checkbox-field/CheckboxField.stories.d.ts +2 -1
  35. package/dist/cjs/components/color-field/ColorField.d.ts +2 -2
  36. package/dist/cjs/components/color-field/ColorField.js +2 -2
  37. package/dist/cjs/components/color-field/ColorField.js.map +1 -1
  38. package/dist/cjs/components/color-field/ColorFiled.stories.d.ts +2 -1
  39. package/dist/cjs/components/compositions/TextLayer.d.ts +1 -1
  40. package/dist/cjs/components/context-menu/AnimateComponent.d.ts +2 -1
  41. package/dist/cjs/components/context-menu/ContextMenu.d.ts +2 -1
  42. package/dist/cjs/components/context-menu/ContextMenu.js +8 -4
  43. package/dist/cjs/components/context-menu/ContextMenu.js.map +1 -1
  44. package/dist/cjs/components/context-menu/ContextMenuItem.d.ts +2 -1
  45. package/dist/cjs/components/context-menu/ContextMenuTrigger.d.ts +2 -1
  46. package/dist/cjs/components/context-menu/SubMenu.d.ts +2 -1
  47. package/dist/cjs/components/controlled-list/ControlledList.d.ts +2 -2
  48. package/dist/cjs/components/controlled-list/ControlledList.stories.d.ts +2 -1
  49. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.d.ts +12 -0
  50. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js +75 -0
  51. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js.map +1 -0
  52. package/dist/cjs/components/data-table/DataTable.js +2 -2
  53. package/dist/cjs/components/data-table/DataTable.js.map +1 -1
  54. package/dist/cjs/components/determinate-loader/DeterminateLoader.stories.d.ts +3 -3
  55. package/dist/cjs/components/dropdown/Dropdown.d.ts +1 -1
  56. package/dist/cjs/components/dropdown/{dropdown.stories.d.ts → Dropdown.stories.d.ts} +1 -1
  57. package/dist/cjs/components/field-wrapper/FieldWrapper.d.ts +2 -2
  58. package/dist/cjs/components/field-wrapper/FieldWrapper.stories.d.ts +2 -1
  59. package/dist/cjs/components/font-picker/FontPicker.d.ts +1 -1
  60. package/dist/cjs/components/h-rule/HRule.d.ts +2 -1
  61. package/dist/cjs/components/h-rule/HRule.stories.d.ts +3 -2
  62. package/dist/cjs/components/list-field/ListField.d.ts +2 -2
  63. package/dist/cjs/components/list-field/ListField.stories.d.ts +2 -1
  64. package/dist/cjs/components/log-viewer/LogViewer.d.ts +1 -1
  65. package/dist/cjs/components/media-variable-field/MediaVariableField.d.ts +1 -1
  66. package/dist/cjs/components/modal/Modal.d.ts +1 -1
  67. package/dist/cjs/components/modal/Modal.stories.d.ts +2 -1
  68. package/dist/cjs/components/number-field/NumberField.d.ts +2 -2
  69. package/dist/cjs/components/number-field/NumberField.stories.d.ts +2 -1
  70. package/dist/cjs/components/players/AudioPlayer.d.ts +1 -1
  71. package/dist/cjs/components/players/AudioPreview.d.ts +1 -1
  72. package/dist/cjs/components/players/ImagePlayer.d.ts +1 -1
  73. package/dist/cjs/components/players/ImagePreview.d.ts +1 -1
  74. package/dist/cjs/components/players/ImageSequencePlayer.d.ts +1 -1
  75. package/dist/cjs/components/players/TemplatePlayer.d.ts +1 -1
  76. package/dist/cjs/components/players/VideoPreview.d.ts +1 -1
  77. package/dist/cjs/components/publish-wizard/PublishWizard.d.ts +3 -3
  78. package/dist/cjs/components/publish-wizard/PublishWizard.js +4 -0
  79. package/dist/cjs/components/publish-wizard/PublishWizard.js.map +1 -1
  80. package/dist/cjs/components/publish-wizard/publish/APIIntegration.d.ts +1 -1
  81. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js +28 -5
  82. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  83. package/dist/cjs/components/publish-wizard/publish/HubSpotFlow.d.ts +1 -1
  84. package/dist/cjs/components/publish-wizard/publish/WebpageHosted.d.ts +2 -2
  85. package/dist/cjs/components/section/Section.d.ts +2 -1
  86. package/dist/cjs/components/section/Section.stories.d.ts +3 -2
  87. package/dist/cjs/components/select-field/SelectField.d.ts +2 -2
  88. package/dist/cjs/components/select-field/SelectField.js +4 -0
  89. package/dist/cjs/components/select-field/SelectField.js.map +1 -1
  90. package/dist/cjs/components/select-field/SelectField.stories.d.ts +2 -1
  91. package/dist/cjs/components/shortcut-menu/ShortcutMenu.stories.d.ts +1 -1
  92. package/dist/cjs/components/slider-field/SliderField.d.ts +2 -2
  93. package/dist/cjs/components/slider-field/SliderField.stories.d.ts +2 -1
  94. package/dist/cjs/components/smpte-field/SMPTEField.d.ts +2 -2
  95. package/dist/cjs/components/tabs/Tabs.stories.d.ts +1 -1
  96. package/dist/cjs/components/text-area-field/TextAreaField.d.ts +2 -2
  97. package/dist/cjs/components/text-area-field/TextAreaField.stories.d.ts +2 -1
  98. package/dist/cjs/components/text-field/TextField.d.ts +2 -2
  99. package/dist/cjs/components/text-field/TextField.stories.d.ts +2 -1
  100. package/dist/cjs/constants/copy.d.ts +2 -0
  101. package/dist/cjs/constants/copy.js +5 -3
  102. package/dist/cjs/constants/copy.js.map +1 -1
  103. package/dist/cjs/constants/icons.d.ts +71 -70
  104. package/dist/cjs/index.d.ts +4 -2
  105. package/dist/cjs/index.js +6 -3
  106. package/dist/cjs/index.js.map +1 -1
  107. package/dist/cjs/redux/actions/asset-uploads.d.ts +5 -10
  108. package/dist/cjs/redux/actions/asset-uploads.js +262 -182
  109. package/dist/cjs/redux/actions/asset-uploads.js.map +1 -1
  110. package/dist/cjs/redux/reducers/asset-uploads.js +8 -24
  111. package/dist/cjs/redux/reducers/asset-uploads.js.map +1 -1
  112. package/dist/cjs/utils/assets.d.ts +1 -0
  113. package/dist/esm/Util.d.ts +1 -0
  114. package/dist/esm/Util.js +6 -0
  115. package/dist/esm/Util.js.map +1 -1
  116. package/dist/esm/components/Tooltip.d.ts +2 -2
  117. package/dist/esm/components/Tooltip.js +4 -4
  118. package/dist/esm/components/Tooltip.js.map +1 -1
  119. package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +2 -2
  120. package/dist/esm/components/anchor-field/AnchorField.d.ts +2 -2
  121. package/dist/esm/components/assets/AssetField.js +2 -2
  122. package/dist/esm/components/assets/AssetField.js.map +1 -1
  123. package/dist/esm/components/assets/AssetsTableDurationCell.js +2 -5
  124. package/dist/esm/components/assets/AssetsTableDurationCell.js.map +1 -1
  125. package/dist/esm/components/assets/AssetsTableGlobalCell.js +1 -1
  126. package/dist/esm/components/assets/AssetsTableGlobalCell.js.map +1 -1
  127. package/dist/esm/components/assets/AssetsTableNameCell.js +2 -1
  128. package/dist/esm/components/assets/AssetsTableNameCell.js.map +1 -1
  129. package/dist/esm/components/assets/AssetsTablePreviewCell.d.ts +1 -1
  130. package/dist/esm/components/assets/AssetsTableRateCell.js +9 -3
  131. package/dist/esm/components/assets/AssetsTableRateCell.js.map +1 -1
  132. package/dist/esm/components/assets/AssetsTableTypeFilter.js +2 -2
  133. package/dist/esm/components/assets/AssetsTableTypeFilter.js.map +1 -1
  134. package/dist/esm/components/assets/AssetsUploadMenu.js +138 -33
  135. package/dist/esm/components/assets/AssetsUploadMenu.js.map +1 -1
  136. package/dist/esm/components/assets/FontAssetPreview.d.ts +1 -1
  137. package/dist/esm/components/button/Button.d.ts +1 -1
  138. package/dist/esm/components/button/Button.stories.d.ts +6 -5
  139. package/dist/esm/components/button-group-field/ButtonGroupField.d.ts +1 -1
  140. package/dist/esm/components/button-group-field/ButtonGroupField.stories.d.ts +2 -1
  141. package/dist/esm/components/button-menu/ButtonMenu.d.ts +2 -2
  142. package/dist/esm/components/button-menu/ButtonMenu.stories.d.ts +2 -1
  143. package/dist/esm/components/button-menu/ButtonMenuItem.d.ts +1 -1
  144. package/dist/esm/components/card/Card.stories.d.ts +2 -1
  145. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +2 -2
  146. package/dist/esm/components/checkbox-field/CheckboxField.stories.d.ts +2 -1
  147. package/dist/esm/components/color-field/ColorField.d.ts +2 -2
  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/color-field/ColorFiled.stories.d.ts +2 -1
  151. package/dist/esm/components/compositions/TextLayer.d.ts +1 -1
  152. package/dist/esm/components/context-menu/AnimateComponent.d.ts +2 -1
  153. package/dist/esm/components/context-menu/ContextMenu.d.ts +2 -1
  154. package/dist/esm/components/context-menu/ContextMenu.js +7 -3
  155. package/dist/esm/components/context-menu/ContextMenu.js.map +1 -1
  156. package/dist/esm/components/context-menu/ContextMenuItem.d.ts +2 -1
  157. package/dist/esm/components/context-menu/ContextMenuTrigger.d.ts +2 -1
  158. package/dist/esm/components/context-menu/SubMenu.d.ts +2 -1
  159. package/dist/esm/components/controlled-list/ControlledList.d.ts +2 -2
  160. package/dist/esm/components/controlled-list/ControlledList.stories.d.ts +2 -1
  161. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.d.ts +12 -0
  162. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js +24 -0
  163. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js.map +1 -0
  164. package/dist/esm/components/data-table/DataTable.js +2 -2
  165. package/dist/esm/components/data-table/DataTable.js.map +1 -1
  166. package/dist/esm/components/determinate-loader/DeterminateLoader.stories.d.ts +3 -3
  167. package/dist/esm/components/dropdown/Dropdown.d.ts +1 -1
  168. package/dist/esm/components/dropdown/{dropdown.stories.d.ts → Dropdown.stories.d.ts} +1 -1
  169. package/dist/esm/components/field-wrapper/FieldWrapper.d.ts +2 -2
  170. package/dist/esm/components/field-wrapper/FieldWrapper.stories.d.ts +2 -1
  171. package/dist/esm/components/font-picker/FontPicker.d.ts +1 -1
  172. package/dist/esm/components/h-rule/HRule.d.ts +2 -1
  173. package/dist/esm/components/h-rule/HRule.stories.d.ts +3 -2
  174. package/dist/esm/components/list-field/ListField.d.ts +2 -2
  175. package/dist/esm/components/list-field/ListField.stories.d.ts +2 -1
  176. package/dist/esm/components/log-viewer/LogViewer.d.ts +1 -1
  177. package/dist/esm/components/media-variable-field/MediaVariableField.d.ts +1 -1
  178. package/dist/esm/components/modal/Modal.d.ts +1 -1
  179. package/dist/esm/components/modal/Modal.stories.d.ts +2 -1
  180. package/dist/esm/components/number-field/NumberField.d.ts +2 -2
  181. package/dist/esm/components/number-field/NumberField.stories.d.ts +2 -1
  182. package/dist/esm/components/players/AudioPlayer.d.ts +1 -1
  183. package/dist/esm/components/players/AudioPreview.d.ts +1 -1
  184. package/dist/esm/components/players/ImagePlayer.d.ts +1 -1
  185. package/dist/esm/components/players/ImagePreview.d.ts +1 -1
  186. package/dist/esm/components/players/ImageSequencePlayer.d.ts +1 -1
  187. package/dist/esm/components/players/TemplatePlayer.d.ts +1 -1
  188. package/dist/esm/components/players/VideoPreview.d.ts +1 -1
  189. package/dist/esm/components/publish-wizard/PublishWizard.d.ts +3 -3
  190. package/dist/esm/components/publish-wizard/PublishWizard.js +4 -0
  191. package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
  192. package/dist/esm/components/publish-wizard/publish/APIIntegration.d.ts +1 -1
  193. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js +28 -5
  194. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  195. package/dist/esm/components/publish-wizard/publish/HubSpotFlow.d.ts +1 -1
  196. package/dist/esm/components/publish-wizard/publish/WebpageHosted.d.ts +2 -2
  197. package/dist/esm/components/section/Section.d.ts +2 -1
  198. package/dist/esm/components/section/Section.stories.d.ts +3 -2
  199. package/dist/esm/components/select-field/SelectField.d.ts +2 -2
  200. package/dist/esm/components/select-field/SelectField.js +3 -0
  201. package/dist/esm/components/select-field/SelectField.js.map +1 -1
  202. package/dist/esm/components/select-field/SelectField.stories.d.ts +2 -1
  203. package/dist/esm/components/shortcut-menu/ShortcutMenu.stories.d.ts +1 -1
  204. package/dist/esm/components/slider-field/SliderField.d.ts +2 -2
  205. package/dist/esm/components/slider-field/SliderField.stories.d.ts +2 -1
  206. package/dist/esm/components/smpte-field/SMPTEField.d.ts +2 -2
  207. package/dist/esm/components/tabs/Tabs.stories.d.ts +1 -1
  208. package/dist/esm/components/text-area-field/TextAreaField.d.ts +2 -2
  209. package/dist/esm/components/text-area-field/TextAreaField.stories.d.ts +2 -1
  210. package/dist/esm/components/text-field/TextField.d.ts +2 -2
  211. package/dist/esm/components/text-field/TextField.stories.d.ts +2 -1
  212. package/dist/esm/constants/copy.d.ts +2 -0
  213. package/dist/esm/constants/copy.js +5 -3
  214. package/dist/esm/constants/copy.js.map +1 -1
  215. package/dist/esm/constants/icons.d.ts +71 -70
  216. package/dist/esm/index.d.ts +4 -2
  217. package/dist/esm/index.js +4 -2
  218. package/dist/esm/index.js.map +1 -1
  219. package/dist/esm/redux/actions/asset-uploads.d.ts +5 -10
  220. package/dist/esm/redux/actions/asset-uploads.js +224 -167
  221. package/dist/esm/redux/actions/asset-uploads.js.map +1 -1
  222. package/dist/esm/redux/reducers/asset-uploads.js +11 -48
  223. package/dist/esm/redux/reducers/asset-uploads.js.map +1 -1
  224. package/dist/esm/utils/assets.d.ts +1 -0
  225. package/dist/styles.css +151 -2
  226. package/dist/styles.less +280 -74
  227. package/less/components/assets.less +237 -63
  228. package/less/components/button.less +7 -1
  229. package/less/components/data-table.less +17 -11
  230. package/less/components/publish-wizard.less +20 -0
  231. package/less/components/story-previewer.less +1 -0
  232. package/package.json +6 -6
  233. package/src/Util.ts +10 -0
  234. package/src/components/Tooltip.tsx +9 -9
  235. package/src/components/advanced-number-field/AdvancedNumberField.tsx +1 -1
  236. package/src/components/anchor-field/AnchorField.tsx +1 -1
  237. package/src/components/assets/AssetField.tsx +3 -8
  238. package/src/components/assets/AssetsTableDurationCell.tsx +2 -5
  239. package/src/components/assets/AssetsTableGlobalCell.tsx +15 -0
  240. package/src/components/assets/AssetsTableNameCell.tsx +2 -1
  241. package/src/components/assets/AssetsTableRateCell.tsx +11 -4
  242. package/src/components/assets/AssetsTableTypeFilter.tsx +7 -8
  243. package/src/components/assets/AssetsUploadMenu.tsx +275 -97
  244. package/src/components/button-group-field/ButtonGroupField.tsx +1 -1
  245. package/src/components/checkbox-field/CheckboxField.tsx +1 -1
  246. package/src/components/color-field/ColorField.tsx +3 -3
  247. package/src/components/context-menu/ContextMenu.tsx +16 -11
  248. package/src/components/copy-prop-id-button/CopyPropIdButton.tsx +44 -0
  249. package/src/components/data-table/DataTable.tsx +2 -2
  250. package/src/components/list-field/ListField.tsx +1 -1
  251. package/src/components/number-field/NumberField.tsx +1 -1
  252. package/src/components/publish-wizard/PublishWizard.tsx +15 -8
  253. package/src/components/publish-wizard/publish/EmailWorkflow.tsx +42 -10
  254. package/src/components/select-field/SelectField.tsx +4 -1
  255. package/src/components/slider-field/SliderField.tsx +1 -1
  256. package/src/components/smpte-field/SMPTEField.tsx +1 -1
  257. package/src/components/text-area-field/TextAreaField.tsx +1 -1
  258. package/src/components/text-field/TextField.tsx +1 -1
  259. package/src/constants/copy.ts +5 -3
  260. package/src/index.ts +6 -8
  261. package/src/redux/actions/asset-uploads.ts +305 -205
  262. package/src/redux/reducers/asset-uploads.ts +13 -48
  263. /package/dist/cjs/components/dropdown/{dropdown.stories.js → Dropdown.stories.js} +0 -0
  264. /package/dist/cjs/components/dropdown/{dropdown.stories.js.map → Dropdown.stories.js.map} +0 -0
  265. /package/dist/esm/components/dropdown/{dropdown.stories.js → Dropdown.stories.js} +0 -0
  266. /package/dist/esm/components/dropdown/{dropdown.stories.js.map → Dropdown.stories.js.map} +0 -0
@@ -3,84 +3,36 @@ import { doAssetTableHydration } from './asset-list';
3
3
  import axios from 'axios';
4
4
 
5
5
  const assetUploadsActions: any = {
6
- TOGGLE_AUTO_TAG: 'assetUploads/TOGGLE_AUTO_TAG',
7
- TOGGLE_TAG_BY_FILENAME: 'assetUploads/TOGGLE_TAG_BY_FILENAME',
8
- TOGGLE_TAG_BY_DELIMITER: 'assetUploads/TOGGLE_TAG_BY_DELIMITER',
9
- SET_DELIMITER: 'assetUploads/SET_DELIMITER',
10
- TOGGLE_MANUAL_TAGGING: 'assetUploads/TOGGLE_MANUAL_TAGGING',
11
- ADD_MANUAL_TAG: 'assetUploads/ADD_MANUAL_TAG',
12
- DELETE_MANUAL_TAG: 'assetUploads/DELETE_MANUAL_TAG',
13
- DELETE_MANUAL_TAGS: 'assetUploads/DELETE_MANUAL_TAGS',
14
- TOGGLE_ASSIGN_TO_STORY: 'assetUploads/TOGGLE_ASSIGN_TO_STORY',
15
6
  ADD_UPLOAD: 'assetUploads/ADD_UPLOAD',
7
+ UPDATE_UPLOAD: 'assetUploads/UPDATE_UPLOAD',
16
8
  UPDATE_PERCENT_UPLOADED: 'assetUploads/UPDATE_PERCENT_UPLOADED',
9
+ ADD_UPLOAD_ASSET_ID: 'assetUploads/ADD_UPLOAD_ASSET_ID',
17
10
  REMOVE_UPLOAD: 'assetUploads/REMOVE_UPLOAD'
18
11
  };
19
12
 
20
13
  const POLL_INTERVAL: number = 5000;
21
14
 
22
- export const toggleTagFileName = (toggle: boolean): any => ({
23
- type: assetUploadsActions.TOGGLE_TAG_BY_FILENAME,
24
- toggle
25
- });
26
-
27
- export const toggleAssignToStory = (toggle: boolean): any => ({
28
- type: assetUploadsActions.TOGGLE_ASSIGN_TO_STORY,
29
- toggle
30
- });
31
-
32
- export const toggleTagDelimiter = (toggle: boolean): any => ({
33
- type: assetUploadsActions.TOGGLE_TAG_BY_DELIMITER,
34
- toggle
35
- });
36
-
37
- export const setDelimiter = (delimiter: string): any => ({
38
- type: assetUploadsActions.SET_DELIMITER,
39
- delimiter
40
- });
41
-
42
- export const toggleManualTagging = (toggle: boolean): any => ({
43
- type: assetUploadsActions.TOGGLE_MANUAL_TAGGING,
44
- toggle
45
- });
46
-
47
- export const addManualTag = (tag: string): any => ({
48
- type: assetUploadsActions.ADD_MANUAL_TAG,
49
- tag
50
- });
51
-
52
- export const deleteManualTag = (tag: string): any => ({
53
- type: assetUploadsActions.DELETE_MANUAL_TAG,
54
- tag
55
- });
56
-
57
- export const deleteManualTags = (): any => ({
58
- type: assetUploadsActions.DELETE_MANUAL_TAGS
59
- });
15
+ let uploadFiles: File[] = [];
16
+ let setBindToOverlay;
60
17
 
61
18
  export const uploadAssets = (
62
19
  api: IImposiumAPI,
63
20
  files: File[],
64
- storyId: string,
65
21
  bindToOverlay?: (f: any) => any
66
22
  ): any => {
67
23
  return (dispatch, getStore) => {
68
24
  const {
69
- assetUploads: {
70
- uploads,
71
- assignToStory,
72
- tagByFileName,
73
- tagByDelimiter,
74
- delimiter,
75
- tagManually,
76
- manualTags
25
+ assetUploads: { uploads },
26
+ editor: {
27
+ showUploadsMenu,
28
+ assetUploads: { tagByFileName, tagByDelimiter, delimiter, tagManually, manualTags }
77
29
  }
78
30
  } = getStore();
79
- let currentQueue: number = 0;
80
- let ongoingJobs: any[] = [];
81
- const filesLength = files.length > 5 ? 4 : files.length - 1;
82
31
 
83
- const uploadBlobs: any[] = files.map((file: File) => {
32
+ uploadFiles.push(...files);
33
+ setBindToOverlay = bindToOverlay;
34
+
35
+ files.map((file: File) => {
84
36
  const uploadsWithSameName: any[] = uploads.filter((u: any) =>
85
37
  u.filename.includes(file.name)
86
38
  );
@@ -92,11 +44,11 @@ export const uploadAssets = (
92
44
  let tags = [];
93
45
 
94
46
  if (tagByFileName) {
95
- tags = tags.concat(file.name.substr(0, file.name.lastIndexOf('.')));
47
+ tags = tags.concat(file.name.slice(0, file.name.lastIndexOf('.')));
96
48
  }
97
49
 
98
50
  if (tagByDelimiter) {
99
- const tag = file.name.substr(0, file.name.lastIndexOf('.')).split(delimiter);
51
+ const tag = file.name.slice(0, file.name.lastIndexOf('.')).split(delimiter);
100
52
  tags = [...new Set([...tags, ...tag])];
101
53
  }
102
54
 
@@ -104,7 +56,100 @@ export const uploadAssets = (
104
56
  tags = [...new Set([...tags, ...manualTags])];
105
57
  }
106
58
 
107
- const uploadMeta: any = { filename, percent: 0 };
59
+ const uploadMeta: any = { filename, percent: 0, tags };
60
+
61
+ dispatch({ type: assetUploadsActions.ADD_UPLOAD, uploadMeta });
62
+ });
63
+
64
+ if (!showUploadsMenu) {
65
+ uploadAssetHandler(api, dispatch, getStore);
66
+ }
67
+ };
68
+ };
69
+
70
+ export const updateUploadTags = (): any => {
71
+ return (dispatch, getStore) => {
72
+ const {
73
+ editor: {
74
+ assetUploads: { tagByFileName, tagByDelimiter, delimiter, tagManually, manualTags }
75
+ }
76
+ } = getStore();
77
+ const uploadMetaArray = [];
78
+
79
+ if (uploadFiles) {
80
+ uploadFiles.map((file: File) => {
81
+ const filename: string = file.name;
82
+
83
+ let tags = [];
84
+
85
+ if (tagByFileName) {
86
+ tags = tags.concat(file.name.slice(0, file.name.lastIndexOf('.')));
87
+ }
88
+
89
+ if (tagByDelimiter) {
90
+ const tag = file.name.slice(0, file.name.lastIndexOf('.')).split(delimiter);
91
+ tags = [...new Set([...tags, ...tag])];
92
+ }
93
+
94
+ if (tagManually) {
95
+ tags = [...new Set([...tags, ...manualTags])];
96
+ }
97
+
98
+ const uploadMeta: any = { filename, percent: 0, tags };
99
+
100
+ uploadMetaArray.push(uploadMeta);
101
+ });
102
+
103
+ dispatch({ type: assetUploadsActions.UPDATE_UPLOAD, uploadMetaArray });
104
+ }
105
+ };
106
+ };
107
+
108
+ export const uploadingAsset = (api: IImposiumAPI): any => {
109
+ return (dispatch, getStore) => {
110
+ uploadAssetHandler(api, dispatch, getStore);
111
+ };
112
+ };
113
+
114
+ const uploadAssetHandler = (api: IImposiumAPI, dispatch, getStore) => {
115
+ const {
116
+ project: { storyId },
117
+ editor: {
118
+ assetUploads: {
119
+ assignToStory,
120
+ tagByFileName,
121
+ tagByDelimiter,
122
+ delimiter,
123
+ tagManually,
124
+ manualTags
125
+ }
126
+ },
127
+ assetUploads: { uploads }
128
+ } = getStore();
129
+
130
+ let currentQueue: number = 0;
131
+ let ongoingJobs: any[] = [];
132
+
133
+ const uploadMetaArray = [];
134
+
135
+ if (uploadFiles) {
136
+ const uploadBlobs: any[] = uploadFiles.map((file: File) => {
137
+ const filename: string = file.name;
138
+
139
+ let tags = [];
140
+
141
+ if (tagByFileName) {
142
+ tags = tags.concat(file.name.slice(0, file.name.lastIndexOf('.')));
143
+ }
144
+
145
+ if (tagByDelimiter) {
146
+ const tag = file.name.slice(0, file.name.lastIndexOf('.')).split(delimiter);
147
+ tags = [...new Set([...tags, ...tag])];
148
+ }
149
+
150
+ if (tagManually) {
151
+ tags = [...new Set([...tags, ...manualTags])];
152
+ }
108
153
 
109
154
  const onUploadProgress = (progress: any): void => {
110
155
  dispatch({
@@ -114,76 +159,96 @@ export const uploadAssets = (
114
159
  });
115
160
  };
116
161
 
117
- dispatch({ type: assetUploadsActions.ADD_UPLOAD, uploadMeta });
162
+ const uploadMeta: any = { filename, percent: 0, tags };
163
+
164
+ uploadMetaArray.push(uploadMeta);
118
165
 
119
166
  return { file, tags, filename, onUploadProgress };
120
167
  });
121
168
 
169
+ dispatch({ type: assetUploadsActions.UPDATE_UPLOAD, uploadMetaArray });
170
+
171
+ const filesLength = uploadFiles.length > 5 ? 4 : uploadFiles.length - 1;
172
+
122
173
  const createPromise = (activeIndex: number) => {
123
174
  const queueLength: number = uploadBlobs.length;
124
175
  const sId = assignToStory && storyId ? storyId : null;
125
176
  const processingTimeout: number = -1;
126
- api.uploadAsset(
127
- sId,
128
- uploadBlobs[activeIndex].tags,
129
- uploadBlobs[activeIndex].file,
130
- uploadBlobs[activeIndex].onUploadProgress,
131
- uploadBlobs[activeIndex].filename
132
- )
133
- .then((result) => {
134
- const currentOngoingJobs = () => {
135
- if (bindToOverlay) {
136
- bindToOverlay(result[0]);
137
- }
138
- return {
139
- footageId: result[0].id,
140
- jobId: result[0].job_id,
141
- filename: uploadBlobs[activeIndex].filename,
142
- onProcessed: () => {
143
- const fileName = ongoingJobs.filter(
144
- (job: any) => job.jobId === result[0].job_id
145
- )[0].filename;
146
- dispatch({
147
- type: assetUploadsActions.REMOVE_UPLOAD,
148
- filename: fileName
149
- });
150
- doAssetTableHydration(api, storyId);
177
+ const isUploading =
178
+ uploads.find((f) => f.filename === uploadBlobs[activeIndex].filename)?.percent > 0;
179
+ if (!isUploading) {
180
+ api.uploadAsset(
181
+ sId,
182
+ uploadBlobs[activeIndex].tags,
183
+ uploadBlobs[activeIndex].file,
184
+ uploadBlobs[activeIndex].onUploadProgress,
185
+ uploadBlobs[activeIndex].filename
186
+ )
187
+ .then((result) => {
188
+ const filename = uploadBlobs.find((b) =>
189
+ b.filename.includes(result[0].name)
190
+ ).filename;
191
+ uploadFiles = uploadFiles.filter((f) => f.name !== filename);
192
+ dispatch({
193
+ type: assetUploadsActions.ADD_UPLOAD_ASSET_ID,
194
+ assetId: result[0].id,
195
+ filename
196
+ });
197
+ const currentOngoingJobs = () => {
198
+ if (setBindToOverlay) {
199
+ setBindToOverlay(result[0]);
151
200
  }
201
+ return {
202
+ footageId: result[0].id,
203
+ jobId: result[0].job_id,
204
+ filename: uploadBlobs[activeIndex].filename,
205
+ onProcessed: () => {
206
+ const fileName = ongoingJobs.filter(
207
+ (job: any) => job.jobId === result[0].job_id
208
+ )[0].filename;
209
+ dispatch({
210
+ type: assetUploadsActions.REMOVE_UPLOAD,
211
+ filename: fileName
212
+ });
213
+ doAssetTableHydration(api, storyId);
214
+ }
215
+ };
152
216
  };
153
- };
154
- ongoingJobs.push(currentOngoingJobs());
155
- if (currentQueue !== queueLength - 1) {
156
- currentQueue = currentQueue + 1;
157
- createPromise(currentQueue);
158
- } else {
159
- ongoingJobs = ongoingJobs.filter((j: any, i: number) => {
160
- const jobIdExists: boolean = typeof j.jobId === 'string';
161
- if (!jobIdExists) {
162
- dispatch({
163
- type: assetUploadsActions.REMOVE_UPLOAD,
164
- filename: j.filename
165
- });
166
- doAssetTableHydration(api, storyId);
217
+ ongoingJobs.push(currentOngoingJobs());
218
+ if (currentQueue !== queueLength - 1) {
219
+ currentQueue = currentQueue + 1;
220
+ createPromise(currentQueue);
221
+ } else {
222
+ ongoingJobs = ongoingJobs.filter((j: any, i: number) => {
223
+ const jobIdExists: boolean = typeof j.jobId === 'string';
224
+ if (!jobIdExists) {
225
+ dispatch({
226
+ type: assetUploadsActions.REMOVE_UPLOAD,
227
+ filename: j.filename
228
+ });
229
+ doAssetTableHydration(api, storyId);
230
+ }
231
+ return jobIdExists;
232
+ });
233
+ if (ongoingJobs.length > 0) {
234
+ pollAssetJobs(api, ongoingJobs, processingTimeout);
167
235
  }
168
- return jobIdExists;
169
- });
170
- if (ongoingJobs.length > 0) {
171
- pollAssetJobs(api, ongoingJobs, processingTimeout);
172
236
  }
173
- }
174
- })
175
- .catch((e: Error[]) => {
176
- if (axios.isCancel(e) && currentQueue !== queueLength - 1) {
177
- currentQueue = currentQueue + 1;
178
- createPromise(currentQueue);
179
- }
180
- });
237
+ })
238
+ .catch((e: Error[]) => {
239
+ if (axios.isCancel(e) && currentQueue !== queueLength - 1) {
240
+ currentQueue = currentQueue + 1;
241
+ createPromise(currentQueue);
242
+ }
243
+ });
244
+ }
181
245
  };
246
+
182
247
  for (let i = 0; i <= filesLength; i++) {
183
248
  createPromise(i);
184
249
  currentQueue = i;
185
250
  }
186
- };
251
+ }
187
252
  };
188
253
 
189
254
  export const replaceAsset = (
@@ -193,95 +258,103 @@ export const replaceAsset = (
193
258
  storyId: string
194
259
  ): any => {
195
260
  return (dispatch, getStore) => {
196
- const {
197
- assetUploads: { uploads }
198
- } = getStore();
199
- let currentQueue: number = 0;
200
- let ongoingJobs: any[] = [];
201
- const filesLength = files.length > 5 ? 4 : files.length - 1;
261
+ return new Promise<void>((resolve) => {
262
+ const {
263
+ assetUploads: { uploads }
264
+ } = getStore();
265
+ let currentQueue: number = 0;
266
+ let ongoingJobs: any[] = [];
267
+ const filesLength = files.length > 5 ? 4 : files.length - 1;
268
+
269
+ const replacedFileBlobs: any[] = files.map((file: File) => {
270
+ const uploadsWithSameName: any[] = uploads.filter((u: any) =>
271
+ u.filename.includes(file.name)
272
+ );
273
+ const filename: string =
274
+ uploadsWithSameName.length > 0
275
+ ? `${file.name} (${uploadsWithSameName.length})`
276
+ : file.name;
277
+
278
+ const uploadMeta: any = { filename, percent: 0 };
279
+
280
+ const onUploadProgress = (progress: any): void => {
281
+ dispatch({
282
+ type: assetUploadsActions.UPDATE_PERCENT_UPLOADED,
283
+ percent: Math.floor((progress.loaded * 100) / progress.total),
284
+ filename
285
+ });
286
+ };
287
+
288
+ dispatch({ type: assetUploadsActions.ADD_UPLOAD, uploadMeta });
289
+
290
+ return { file, filename, onUploadProgress };
291
+ });
202
292
 
203
- const uploadBlobs: any[] = files.map((file: File) => {
204
- const uploadsWithSameName: any[] = uploads.filter((u: any) =>
205
- u.filename.includes(file.name)
206
- );
207
- const filename: string =
208
- uploadsWithSameName.length > 0
209
- ? `${file.name} (${uploadsWithSameName.length})`
210
- : file.name;
293
+ const createPromise = (activeIndex: number) => {
294
+ const queueLength: number = replacedFileBlobs.length;
295
+ const processingTimeout: number = -1;
296
+ api.replaceAsset(
297
+ assetId,
298
+ replacedFileBlobs[activeIndex].file,
299
+ replacedFileBlobs[activeIndex].onUploadProgress,
300
+ replacedFileBlobs[activeIndex].filename
301
+ )
302
+ .then((result) => {
303
+ const currentOngoingJobs = () => {
304
+ return {
305
+ filename: replacedFileBlobs[activeIndex].filename,
306
+ onProcessed: () => {
307
+ const fileName = ongoingJobs.filter(
308
+ (job: any) => job.jobId === result[0].job_id
309
+ )[0].filename;
310
+ dispatch({
311
+ type: assetUploadsActions.REMOVE_UPLOAD,
312
+ filename: fileName
313
+ });
314
+ doAssetTableHydration(api, storyId);
315
+ }
316
+ };
317
+ };
211
318
 
212
- const uploadMeta: any = { filename, percent: 0 };
319
+ ongoingJobs.push(currentOngoingJobs());
320
+
321
+ if (currentQueue !== queueLength - 1) {
322
+ currentQueue = currentQueue + 1;
323
+ createPromise(currentQueue);
324
+ } else {
325
+ ongoingJobs = ongoingJobs.filter((j: any, i: number) => {
326
+ const jobIdExists: boolean = typeof j.jobId === 'string';
327
+
328
+ if (!jobIdExists) {
329
+ dispatch({
330
+ type: assetUploadsActions.REMOVE_UPLOAD,
331
+ filename: j.filename
332
+ });
333
+ doAssetTableHydration(api, storyId);
334
+ }
335
+ return jobIdExists;
336
+ });
337
+
338
+ if (ongoingJobs.length > 0) {
339
+ pollAssetJobs(api, ongoingJobs, processingTimeout);
340
+ }
341
+ }
213
342
 
214
- const onUploadProgress = (progress: any): void => {
215
- dispatch({
216
- type: assetUploadsActions.UPDATE_PERCENT_UPLOADED,
217
- percent: Math.floor((progress.loaded * 100) / progress.total),
218
- filename
219
- });
343
+ resolve(result);
344
+ })
345
+ .catch((e: Error[]) => {
346
+ if (axios.isCancel(e) && currentQueue !== queueLength - 1) {
347
+ currentQueue = currentQueue + 1;
348
+ createPromise(currentQueue);
349
+ }
350
+ });
220
351
  };
221
352
 
222
- dispatch({ type: assetUploadsActions.ADD_UPLOAD, uploadMeta });
223
-
224
- return { file, filename, onUploadProgress };
353
+ for (let i = 0; i <= filesLength; i++) {
354
+ createPromise(i);
355
+ currentQueue = i;
356
+ }
225
357
  });
226
-
227
- const createPromise = (activeIndex: number) => {
228
- const queueLength: number = uploadBlobs.length;
229
- const processingTimeout: number = -1;
230
- api.replaceAsset(
231
- assetId,
232
- uploadBlobs[activeIndex].file,
233
- uploadBlobs[activeIndex].onUploadProgress,
234
- uploadBlobs[activeIndex].filename
235
- )
236
- .then((result) => {
237
- const currentOngoingJobs = () => {
238
- return {
239
- filename: uploadBlobs[activeIndex].filename,
240
- onProcessed: () => {
241
- const fileName = ongoingJobs.filter(
242
- (job: any) => job.jobId === result[0].job_id
243
- )[0].filename;
244
- dispatch({
245
- type: assetUploadsActions.REMOVE_UPLOAD,
246
- filename: fileName
247
- });
248
- doAssetTableHydration(api, storyId);
249
- }
250
- };
251
- };
252
- ongoingJobs.push(currentOngoingJobs());
253
- if (currentQueue !== queueLength - 1) {
254
- currentQueue = currentQueue + 1;
255
- createPromise(currentQueue);
256
- } else {
257
- ongoingJobs = ongoingJobs.filter((j: any, i: number) => {
258
- const jobIdExists: boolean = typeof j.jobId === 'string';
259
- if (!jobIdExists) {
260
- dispatch({
261
- type: assetUploadsActions.REMOVE_UPLOAD,
262
- filename: j.filename
263
- });
264
- doAssetTableHydration(api, storyId);
265
- }
266
- return jobIdExists;
267
- });
268
- if (ongoingJobs.length > 0) {
269
- pollAssetJobs(api, ongoingJobs, processingTimeout);
270
- }
271
- }
272
- })
273
- .catch((e: Error[]) => {
274
- if (axios.isCancel(e) && currentQueue !== queueLength - 1) {
275
- currentQueue = currentQueue + 1;
276
- createPromise(currentQueue);
277
- }
278
- });
279
- };
280
-
281
- for (let i = 0; i <= filesLength; i++) {
282
- createPromise(i);
283
- currentQueue = i;
284
- }
285
358
  };
286
359
  };
287
360
 
@@ -322,13 +395,40 @@ const pollAssetJobs = (api, ongoingJobs: any[], timeout: number): void => {
322
395
  }, POLL_INTERVAL);
323
396
  };
324
397
 
325
- export const cancelAssetUpload = (fileName: string, api: IImposiumAPI): any => {
398
+ const removeUploadHander = (fileName: string, api: IImposiumAPI, dispatch): any => {
399
+ uploadFiles = uploadFiles.filter((f) => f.name !== fileName);
400
+ api.cancelUploadAssets(fileName);
401
+ dispatch({
402
+ type: assetUploadsActions.REMOVE_UPLOAD,
403
+ filename: fileName
404
+ });
405
+ };
406
+
407
+ export const cancelAssetUpload = (fileName: string, api: IImposiumAPI, assetId: string): any => {
326
408
  return (dispatch) => {
327
- api.cancelUploadAssets(fileName);
328
- dispatch({
329
- type: assetUploadsActions.REMOVE_UPLOAD,
330
- filename: fileName
331
- });
409
+ if (assetId) {
410
+ api.deleteAsset(assetId)
411
+ .then()
412
+ .catch((e) => console.error(e));
413
+ }
414
+ removeUploadHander(fileName, api, dispatch);
415
+ };
416
+ };
417
+
418
+ export const cancelNonUploadedAssets = (api: IImposiumAPI): any => {
419
+ return (dispatch, getStore) => {
420
+ const {
421
+ assetUploads: { uploads }
422
+ } = getStore();
423
+
424
+ if (uploads.length > 0) {
425
+ for (const file of uploads) {
426
+ const upload = uploads.find((f) => f.filename === file.filename);
427
+ if (upload.percent === 0) {
428
+ removeUploadHander(file.filename, api, dispatch);
429
+ }
430
+ }
431
+ }
332
432
  };
333
433
  };
334
434
 
@@ -1,59 +1,11 @@
1
1
  import assetUploadsActions from '../actions/asset-uploads';
2
2
 
3
3
  const initialState: any = {
4
- tagByDelimiter: true,
5
- delimiter: '_',
6
- tagManually: false,
7
- manualTags: [],
8
- tagByFileName: false,
9
- assignToStory: true,
10
4
  uploads: []
11
5
  };
12
6
 
13
7
  const assetUploads = (state = initialState, action): any => {
14
8
  switch (action.type) {
15
- case assetUploadsActions.TOGGLE_TAG_BY_FILENAME:
16
- return {
17
- ...state,
18
- tagByFileName: action.toggle
19
- };
20
- case assetUploadsActions.TOGGLE_TAG_BY_DELIMITER:
21
- return {
22
- ...state,
23
- tagByDelimiter: action.toggle
24
- };
25
- case assetUploadsActions.SET_DELIMITER:
26
- return {
27
- ...state,
28
- delimiter: action.delimiter
29
- };
30
- case assetUploadsActions.TOGGLE_MANUAL_TAGGING:
31
- return {
32
- ...state,
33
- tagManually: action.toggle
34
- };
35
- case assetUploadsActions.ADD_MANUAL_TAG:
36
- const newManualTags = [...state.manualTags];
37
- newManualTags.push(action.tag);
38
- return {
39
- ...state,
40
- manualTags: newManualTags
41
- };
42
- case assetUploadsActions.DELETE_MANUAL_TAG:
43
- return {
44
- ...state,
45
- manualTags: state.manualTags.filter((t: string) => t !== action.tag)
46
- };
47
- case assetUploadsActions.DELETE_MANUAL_TAGS:
48
- return {
49
- ...state,
50
- manualTags: []
51
- };
52
- case assetUploadsActions.TOGGLE_ASSIGN_TO_STORY:
53
- return {
54
- ...state,
55
- assignToStory: action.toggle
56
- };
57
9
  case assetUploadsActions.ADD_UPLOAD:
58
10
  return {
59
11
  ...state,
@@ -72,6 +24,19 @@ const assetUploads = (state = initialState, action): any => {
72
24
  ...state,
73
25
  uploads: newUploads
74
26
  };
27
+ case assetUploadsActions.ADD_UPLOAD_ASSET_ID:
28
+ const updateUploads = state.uploads.map((u: any) => {
29
+ if (u.filename === action.filename) {
30
+ return { ...u, assetId: action.assetId };
31
+ }
32
+
33
+ return u;
34
+ });
35
+
36
+ return {
37
+ ...state,
38
+ uploads: updateUploads
39
+ };
75
40
  case assetUploadsActions.REMOVE_UPLOAD:
76
41
  return {
77
42
  ...state,