@imposium-hub/components 2.3.11-0 → 2.4.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 (288) hide show
  1. package/dist/cjs/Util.d.ts +0 -1
  2. package/dist/cjs/Util.js +1 -8
  3. package/dist/cjs/Util.js.map +1 -1
  4. package/dist/cjs/components/Tooltip.d.ts +2 -2
  5. package/dist/cjs/components/Tooltip.js +7 -4
  6. package/dist/cjs/components/Tooltip.js.map +1 -1
  7. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  8. package/dist/cjs/components/anchor-field/AnchorField.d.ts +1 -1
  9. package/dist/cjs/components/app-wrapper/AppWrapper.d.ts +1 -2
  10. package/dist/cjs/components/app-wrapper/AppWrapper.js +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 -157
  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 +28 -21
  56. package/dist/cjs/components/header/Header.js.map +1 -1
  57. package/dist/cjs/components/header/Header_BACKUP_73021.d.ts +33 -0
  58. package/dist/cjs/components/header/Header_BACKUP_73021.js +393 -0
  59. package/dist/cjs/components/header/Header_BACKUP_73021.js.map +1 -0
  60. package/dist/cjs/components/header/Header_BASE_73021.d.ts +29 -0
  61. package/dist/cjs/components/header/Header_BASE_73021.js +376 -0
  62. package/dist/cjs/components/header/Header_BASE_73021.js.map +1 -0
  63. package/dist/cjs/components/header/Header_LOCAL_73021.d.ts +33 -0
  64. package/dist/cjs/components/header/Header_LOCAL_73021.js +382 -0
  65. package/dist/cjs/components/header/Header_LOCAL_73021.js.map +1 -0
  66. package/dist/cjs/components/header/Header_REMOTE_73021.d.ts +30 -0
  67. package/dist/cjs/components/header/Header_REMOTE_73021.js +386 -0
  68. package/dist/cjs/components/header/Header_REMOTE_73021.js.map +1 -0
  69. package/dist/cjs/components/list-field/ListField.d.ts +1 -1
  70. package/dist/cjs/components/number-field/NumberField.d.ts +1 -1
  71. package/dist/cjs/components/publish-wizard/PublishWizard.js +119 -63
  72. package/dist/cjs/components/publish-wizard/PublishWizard.js.map +1 -1
  73. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js +5 -28
  74. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  75. package/dist/cjs/components/select-field/SelectField.d.ts +1 -1
  76. package/dist/cjs/components/select-field/SelectField.js +0 -4
  77. package/dist/cjs/components/select-field/SelectField.js.map +1 -1
  78. package/dist/cjs/components/slider-field/SliderField.d.ts +1 -1
  79. package/dist/cjs/components/smpte-field/SMPTEField.d.ts +1 -1
  80. package/dist/cjs/components/story-previewer/StoryPreviewer.js +2 -7
  81. package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
  82. package/dist/cjs/components/text-area-field/TextAreaField.d.ts +1 -1
  83. package/dist/cjs/components/text-field/TextField.d.ts +1 -1
  84. package/dist/cjs/constants/copy.d.ts +5 -2
  85. package/dist/cjs/constants/copy.js +8 -5
  86. package/dist/cjs/constants/copy.js.map +1 -1
  87. package/dist/cjs/constants/icons.d.ts +1 -0
  88. package/dist/cjs/constants/icons.js +3 -1
  89. package/dist/cjs/constants/icons.js.map +1 -1
  90. package/dist/cjs/index.d.ts +3 -5
  91. package/dist/cjs/index.js +3 -8
  92. package/dist/cjs/index.js.map +1 -1
  93. package/dist/cjs/redux/actions/access.d.ts +1 -3
  94. package/dist/cjs/redux/actions/access.js +10 -43
  95. package/dist/cjs/redux/actions/access.js.map +1 -1
  96. package/dist/cjs/redux/actions/asset-uploads.d.ts +11 -6
  97. package/dist/cjs/redux/actions/asset-uploads.js +182 -262
  98. package/dist/cjs/redux/actions/asset-uploads.js.map +1 -1
  99. package/dist/cjs/redux/actions/publish.js +4 -3
  100. package/dist/cjs/redux/actions/publish.js.map +1 -1
  101. package/dist/cjs/redux/reducers/access.js +7 -30
  102. package/dist/cjs/redux/reducers/access.js.map +1 -1
  103. package/dist/cjs/redux/reducers/asset-uploads.js +24 -10
  104. package/dist/cjs/redux/reducers/asset-uploads.js.map +1 -1
  105. package/dist/cjs/services/API.d.ts +2 -2
  106. package/dist/cjs/services/API.js +1 -2
  107. package/dist/cjs/services/API.js.map +1 -1
  108. package/dist/cjs/services/Auth0.js +1 -0
  109. package/dist/cjs/services/Auth0.js.map +1 -1
  110. package/dist/cjs/services/Session.d.ts +9 -8
  111. package/dist/cjs/services/Session.js +31 -127
  112. package/dist/cjs/services/Session.js.map +1 -1
  113. package/dist/cjs/utils/assets.d.ts +2 -1
  114. package/dist/cjs/utils/assets.js.map +1 -1
  115. package/dist/esm/Util.d.ts +0 -1
  116. package/dist/esm/Util.js +0 -6
  117. package/dist/esm/Util.js.map +1 -1
  118. package/dist/esm/components/Tooltip.d.ts +2 -2
  119. package/dist/esm/components/Tooltip.js +4 -4
  120. package/dist/esm/components/Tooltip.js.map +1 -1
  121. package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  122. package/dist/esm/components/anchor-field/AnchorField.d.ts +1 -1
  123. package/dist/esm/components/app-wrapper/AppWrapper.d.ts +1 -2
  124. package/dist/esm/components/app-wrapper/AppWrapper.js +69 -79
  125. package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
  126. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  127. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
  128. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  129. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  130. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
  131. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  132. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  133. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
  134. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  135. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  136. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
  137. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  138. package/dist/esm/components/assets/AssetField.js +2 -2
  139. package/dist/esm/components/assets/AssetField.js.map +1 -1
  140. package/dist/esm/components/assets/AssetsTableDurationCell.js +5 -2
  141. package/dist/esm/components/assets/AssetsTableDurationCell.js.map +1 -1
  142. package/dist/esm/components/assets/AssetsTableGlobalCell.js +1 -1
  143. package/dist/esm/components/assets/AssetsTableGlobalCell.js.map +1 -1
  144. package/dist/esm/components/assets/AssetsTableNameCell.js +3 -4
  145. package/dist/esm/components/assets/AssetsTableNameCell.js.map +1 -1
  146. package/dist/esm/components/assets/AssetsTableRateCell.js +3 -9
  147. package/dist/esm/components/assets/AssetsTableRateCell.js.map +1 -1
  148. package/dist/esm/components/assets/AssetsTableTypeFilter.js +2 -2
  149. package/dist/esm/components/assets/AssetsTableTypeFilter.js.map +1 -1
  150. package/dist/esm/components/assets/AssetsUploadMenu.js +34 -138
  151. package/dist/esm/components/assets/AssetsUploadMenu.js.map +1 -1
  152. package/dist/esm/components/auth-gate/AuthGate.js +9 -6
  153. package/dist/esm/components/auth-gate/AuthGate.js.map +1 -1
  154. package/dist/esm/components/button-group-field/ButtonGroupField.d.ts +1 -1
  155. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +1 -1
  156. package/dist/esm/components/color-field/ColorField.d.ts +1 -1
  157. package/dist/esm/components/color-field/ColorField.js +2 -2
  158. package/dist/esm/components/color-field/ColorField.js.map +1 -1
  159. package/dist/esm/components/context-menu/ContextMenu.js +3 -7
  160. package/dist/esm/components/context-menu/ContextMenu.js.map +1 -1
  161. package/dist/esm/components/data-table/DataTable.js +2 -2
  162. package/dist/esm/components/data-table/DataTable.js.map +1 -1
  163. package/dist/esm/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  164. package/dist/esm/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  165. package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  166. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
  167. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  168. package/dist/esm/components/header/Header.d.ts +4 -0
  169. package/dist/esm/components/header/Header.js +28 -21
  170. package/dist/esm/components/header/Header.js.map +1 -1
  171. package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
  172. package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
  173. package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
  174. package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
  175. package/dist/esm/components/header/Header_BASE_73021.js +322 -0
  176. package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
  177. package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
  178. package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
  179. package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
  180. package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
  181. package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
  182. package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
  183. package/dist/esm/components/list-field/ListField.d.ts +1 -1
  184. package/dist/esm/components/number-field/NumberField.d.ts +1 -1
  185. package/dist/esm/components/publish-wizard/PublishWizard.js +119 -64
  186. package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
  187. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js +5 -28
  188. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  189. package/dist/esm/components/select-field/SelectField.d.ts +1 -1
  190. package/dist/esm/components/select-field/SelectField.js +0 -3
  191. package/dist/esm/components/select-field/SelectField.js.map +1 -1
  192. package/dist/esm/components/slider-field/SliderField.d.ts +1 -1
  193. package/dist/esm/components/smpte-field/SMPTEField.d.ts +1 -1
  194. package/dist/esm/components/story-previewer/StoryPreviewer.js +2 -7
  195. package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
  196. package/dist/esm/components/text-area-field/TextAreaField.d.ts +1 -1
  197. package/dist/esm/components/text-field/TextField.d.ts +1 -1
  198. package/dist/esm/constants/copy.d.ts +5 -2
  199. package/dist/esm/constants/copy.js +8 -5
  200. package/dist/esm/constants/copy.js.map +1 -1
  201. package/dist/esm/constants/icons.d.ts +1 -0
  202. package/dist/esm/constants/icons.js +2 -0
  203. package/dist/esm/constants/icons.js.map +1 -1
  204. package/dist/esm/index.d.ts +3 -5
  205. package/dist/esm/index.js +3 -5
  206. package/dist/esm/index.js.map +1 -1
  207. package/dist/esm/redux/actions/access.d.ts +1 -3
  208. package/dist/esm/redux/actions/access.js +8 -37
  209. package/dist/esm/redux/actions/access.js.map +1 -1
  210. package/dist/esm/redux/actions/asset-uploads.d.ts +11 -6
  211. package/dist/esm/redux/actions/asset-uploads.js +167 -224
  212. package/dist/esm/redux/actions/asset-uploads.js.map +1 -1
  213. package/dist/esm/redux/actions/publish.js +4 -3
  214. package/dist/esm/redux/actions/publish.js.map +1 -1
  215. package/dist/esm/redux/reducers/access.js +5 -8
  216. package/dist/esm/redux/reducers/access.js.map +1 -1
  217. package/dist/esm/redux/reducers/asset-uploads.js +47 -15
  218. package/dist/esm/redux/reducers/asset-uploads.js.map +1 -1
  219. package/dist/esm/services/API.d.ts +2 -2
  220. package/dist/esm/services/API.js +1 -2
  221. package/dist/esm/services/API.js.map +1 -1
  222. package/dist/esm/services/Auth0.js +1 -0
  223. package/dist/esm/services/Auth0.js.map +1 -1
  224. package/dist/esm/services/Session.d.ts +9 -8
  225. package/dist/esm/services/Session.js +29 -102
  226. package/dist/esm/services/Session.js.map +1 -1
  227. package/dist/esm/utils/assets.d.ts +2 -1
  228. package/dist/esm/utils/assets.js.map +1 -1
  229. package/dist/styles.css +25 -151
  230. package/dist/styles.less +100 -280
  231. package/less/components/assets.less +63 -237
  232. package/less/components/button.less +1 -7
  233. package/less/components/data-table.less +11 -17
  234. package/less/components/header.less +13 -0
  235. package/less/components/publish-wizard.less +13 -20
  236. package/less/components/story-previewer.less +0 -1
  237. package/package.json +6 -6
  238. package/src/Util.ts +0 -10
  239. package/src/components/Tooltip.tsx +9 -9
  240. package/src/components/advanced-number-field/AdvancedNumberField.tsx +1 -1
  241. package/src/components/anchor-field/AnchorField.tsx +1 -1
  242. package/src/components/app-wrapper/AppWrapper.tsx +79 -120
  243. package/src/components/assets/AssetField.tsx +8 -3
  244. package/src/components/assets/AssetsTableDurationCell.tsx +5 -2
  245. package/src/components/assets/AssetsTableNameCell.tsx +5 -3
  246. package/src/components/assets/AssetsTableRateCell.tsx +4 -11
  247. package/src/components/assets/AssetsTableTypeFilter.tsx +8 -7
  248. package/src/components/assets/AssetsUploadMenu.tsx +98 -271
  249. package/src/components/auth-gate/AuthGate.tsx +14 -8
  250. package/src/components/button-group-field/ButtonGroupField.tsx +1 -1
  251. package/src/components/checkbox-field/CheckboxField.tsx +1 -1
  252. package/src/components/color-field/ColorField.tsx +3 -3
  253. package/src/components/context-menu/ContextMenu.tsx +11 -16
  254. package/src/components/data-table/DataTable.tsx +2 -2
  255. package/src/components/header/Header.tsx +75 -41
  256. package/src/components/list-field/ListField.tsx +1 -1
  257. package/src/components/number-field/NumberField.tsx +1 -1
  258. package/src/components/publish-wizard/PublishWizard.tsx +180 -102
  259. package/src/components/publish-wizard/publish/EmailWorkflow.tsx +10 -42
  260. package/src/components/select-field/SelectField.tsx +1 -4
  261. package/src/components/slider-field/SliderField.tsx +1 -1
  262. package/src/components/smpte-field/SMPTEField.tsx +1 -1
  263. package/src/components/story-previewer/StoryPreviewer.tsx +6 -10
  264. package/src/components/text-area-field/TextAreaField.tsx +1 -1
  265. package/src/components/text-field/TextField.tsx +1 -1
  266. package/src/constants/copy.ts +9 -5
  267. package/src/constants/icons.tsx +3 -0
  268. package/src/index.ts +9 -16
  269. package/src/redux/actions/access.ts +5 -67
  270. package/src/redux/actions/asset-uploads.ts +206 -307
  271. package/src/redux/actions/publish.ts +6 -3
  272. package/src/redux/reducers/access.ts +5 -8
  273. package/src/redux/reducers/asset-uploads.ts +47 -17
  274. package/src/services/API.ts +2 -7
  275. package/src/services/Auth0.ts +1 -0
  276. package/src/services/Session.ts +34 -120
  277. package/src/utils/assets.ts +2 -1
  278. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
  279. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js +0 -75
  280. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
  281. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
  282. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js +0 -24
  283. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
  284. package/src/components/assets/AssetsTableGlobalCell.tsx +0 -15
  285. package/src/components/copy-prop-id-button/CopyPropIdButton.tsx +0 -44
  286. /package/dist/cjs/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  287. /package/dist/esm/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  288. /package/src/components/dropdown/{Dropdown.stories.tsx → dropdown.stories.tsx} +0 -0
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import * as ReactDOM from 'react-dom';
3
- import { Tooltip as ReactTooltip, PlacesType } from 'react-tooltip';
3
+ import ReactTooltip, { Place } from 'react-tooltip';
4
4
 
5
5
  export interface IToolTipConfig {
6
6
  content: string;
7
- position?: PlacesType;
7
+ position?: Place;
8
8
  theme?: string;
9
9
  }
10
10
 
@@ -12,8 +12,8 @@ export const renderTooltipProps = (id: string, config: IToolTipConfig | string):
12
12
  if (config) {
13
13
  const content = typeof config === 'object' ? config.content : config;
14
14
  return {
15
- 'data-tooltip-content': content,
16
- 'data-tooltip-id': id
15
+ 'data-tip': content,
16
+ 'data-for': id
17
17
  };
18
18
  } else {
19
19
  return {};
@@ -25,7 +25,7 @@ export const renderTooltip = (id: string, config: IToolTipConfig | string): any
25
25
 
26
26
  if (config && tooltipLayer) {
27
27
  let theme = 'light';
28
- let place: PlacesType = 'top';
28
+ let place: Place = 'top';
29
29
 
30
30
  if (typeof config === 'object') {
31
31
  theme = config.theme ? config.theme : 'light';
@@ -34,12 +34,12 @@ export const renderTooltip = (id: string, config: IToolTipConfig | string): any
34
34
 
35
35
  const tooltipComponent = (
36
36
  <ReactTooltip
37
- data-tooltip-place={place}
38
- data-tooltip-offset={{ top: 0, right: 0, bottom: 0, left: 0 }}
37
+ place={place}
38
+ offset={{ top: 0, right: 0, bottom: 0, left: 0 }}
39
39
  id={id}
40
40
  className={`imposium-button-tooltip-${theme}`}
41
- delayShow={500}
42
- noArrow={true}
41
+ delayShow={1000}
42
+ effect='solid'
43
43
  />
44
44
  );
45
45
 
@@ -5,7 +5,7 @@ import { IToolTipConfig } from '../Tooltip';
5
5
 
6
6
  interface IAdvancedNumberFieldProps {
7
7
  buttons?: any;
8
- label?: any;
8
+ label?: string;
9
9
  placeholder?: string;
10
10
  readOnly?: boolean;
11
11
  value: number;
@@ -21,7 +21,7 @@ interface IAnchorFieldProps {
21
21
  labelPosition?: string;
22
22
  tooltip?: IToolTipConfig | string;
23
23
  width?: string | number;
24
- label?: any;
24
+ label?: string;
25
25
  labelWidth?: string | number;
26
26
  }
27
27
 
@@ -1,13 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import NoAccess from '../no-access/NoAccess';
3
3
  import Header from '../header/Header';
4
- import SessionService, { IHubSession } from '../../services/Session';
4
+ import SessionService from '../../services/Session';
5
5
  import AuthService, { IIdentity } from '../../services/Auth0';
6
6
  import { connect } from 'react-redux';
7
7
  import { bindActionCreators } from 'redux';
8
8
  import { login, clearCachedAuth } from '../../redux/actions/auth';
9
- import { cacheAccessData, clearCachedAccessList } from '../../redux/actions/access';
10
9
  import { validateAccessLevel } from '../../Util';
10
+ import { setAccessData } from '../../redux/actions/access';
11
11
 
12
12
  export interface IAppWrapperProps {
13
13
  children: React.ReactChildren;
@@ -20,14 +20,13 @@ export interface IAppWrapperProps {
20
20
  access: any;
21
21
  auth: any;
22
22
  isFreshUser: boolean;
23
+ setAccessData(accessData: any): any;
23
24
  allowUnauthenticatedRender: boolean;
24
25
  onAuthenticated: (activeOrgId: string, activeStoryId: string) => any;
25
26
  onAuthenticationFailure: (e: Error) => any;
26
27
  showRequestAccess?: boolean;
27
28
  login: (id: IIdentity) => any;
28
29
  clearCachedAuth: () => any;
29
- cacheAccessData: (accessData: any) => any;
30
- clearCachedAccessList: () => any;
31
30
  }
32
31
 
33
32
  export interface IAppWrapperState {
@@ -67,8 +66,7 @@ class AppWrapper extends React.Component<IAppWrapperProps, IAppWrapperState> {
67
66
  }
68
67
 
69
68
  public componentDidMount = (): void => {
70
- const { auth, access, auth0ClientId, auth0Domain, isFreshUser } = this.props;
71
- const session: IHubSession = SessionService.getSession();
69
+ const { auth0ClientId, auth0Domain } = this.props;
72
70
 
73
71
  AuthService.bindToClient(auth0ClientId, auth0Domain);
74
72
 
@@ -86,22 +84,8 @@ class AppWrapper extends React.Component<IAppWrapperProps, IAppWrapperState> {
86
84
  this.setState({ restrictAccess: false });
87
85
  }
88
86
 
89
- // If cookie, auth or access data is missing / mismatched,
90
- // silently check auth0 session and refresh flow on success
91
- if (
92
- !isFreshUser &&
93
- auth !== null &&
94
- access !== null &&
95
- typeof session === 'object' &&
96
- typeof session.sub === 'string' &&
97
- session.sub === auth.idTokenPayload.sub &&
98
- session.stories_hash === SessionService.generateStoriesHash(access) &&
99
- session.orgs_hash === SessionService.generateOrgsHash(access)
100
- ) {
101
- this.propagateCreds();
102
- } else {
103
- this.doCheckSession(true);
104
- }
87
+ // Always check the session
88
+ this.doCheckSession(true);
105
89
  };
106
90
 
107
91
  /*
@@ -122,12 +106,14 @@ class AppWrapper extends React.Component<IAppWrapperProps, IAppWrapperState> {
122
106
 
123
107
  if (!validSession) {
124
108
  this.props.clearCachedAuth();
125
- this.props.clearCachedAccessList();
126
109
  this.doCheckSession();
127
110
  }
128
111
  }
129
112
 
130
- if (this.props.organizationId !== prevProps.organizationId) {
113
+ if (
114
+ this.props.organizationId !== prevProps.organizationId ||
115
+ this.props.access !== prevProps.access
116
+ ) {
131
117
  validAccessLevel = validateAccessLevel(
132
118
  this.props.organizationId,
133
119
  this.props.serviceId,
@@ -147,16 +133,58 @@ class AppWrapper extends React.Component<IAppWrapperProps, IAppWrapperState> {
147
133
  /*
148
134
  Emit creds to React parent
149
135
  */
150
- private propagateCreds = (): void => {
151
- const { auth, access, storyId, onAuthenticated } = this.props;
152
- const activeOrgId: string = this.determineActiveOrganization(auth, access);
153
- let activeStoryId: string = SessionService.getSession().story_id;
136
+ private propagateCreds = (freshAccess, freshIdentity): void => {
137
+ const { storyId, organizationId, onAuthenticated } = this.props;
138
+
139
+ let initialStoryId = storyId;
140
+ let initialOrganizationId = organizationId;
141
+
142
+ const firstOrg = freshAccess.organizations[0];
143
+
144
+ const getIDsFromSession = () => {
145
+ const session = SessionService.getSession();
146
+ if (session && session.story_id && session.organization_id) {
147
+ const org = freshAccess.organizations.find(
148
+ (o: any) => o.id === session.organization_id
149
+ );
150
+ if (org) {
151
+ const story = org.stories.find((s: any) => s.id === session.story_id);
152
+ if (story) {
153
+ return { orgId: org.id, storyId: story.id };
154
+ }
155
+ }
156
+ }
157
+ return null;
158
+ };
159
+
160
+ // If the org ID is not provided, but the storyID is provided, find the org ID if we can, if not, use the first org ID found and we'll show the story not found interface
161
+ if (!initialOrganizationId && initialStoryId) {
162
+ const org = freshAccess.organizations.find((o: any) =>
163
+ o.stories.find((s: any) => s.id === initialStoryId)
164
+ );
165
+ if (org) {
166
+ initialOrganizationId = org.id;
167
+ } else {
168
+ initialOrganizationId = firstOrg.id;
169
+ }
170
+ }
154
171
 
155
- if (storyId) {
156
- activeStoryId = storyId;
172
+ if (!initialStoryId) {
173
+ // If storyID is not provided, try to use the one from the previous session
174
+ const sessionIds = getIDsFromSession();
175
+ if (sessionIds) {
176
+ initialOrganizationId = sessionIds.orgId;
177
+ initialStoryId = sessionIds.storyId;
178
+ } else {
179
+ // If that doesn't work - default to the first org & story
180
+ const story = firstOrg.stories[0];
181
+ initialOrganizationId = firstOrg.id;
182
+ initialStoryId = story.id;
183
+ }
157
184
  }
158
185
 
159
- onAuthenticated(activeOrgId, activeStoryId);
186
+ SessionService.buildFreshSession(freshIdentity, initialOrganizationId, initialStoryId);
187
+ onAuthenticated(initialOrganizationId, initialStoryId);
160
188
 
161
189
  if (this.state.blockRender) {
162
190
  this.setState({ blockRender: false });
@@ -167,8 +195,19 @@ class AppWrapper extends React.Component<IAppWrapperProps, IAppWrapperState> {
167
195
  Bust cached creds if exist, invoke auth failure handler
168
196
  */
169
197
  private handleCheckSessionFailure = (e: Error): void => {
198
+ if (this.props.storyId) {
199
+ SessionService.cacheStoryId(this.props.storyId);
200
+ } else {
201
+ SessionService.clearCachedStoryId();
202
+ }
203
+
204
+ if (this.props.organizationId) {
205
+ SessionService.cacheOrgId(this.props.organizationId);
206
+ } else {
207
+ SessionService.clearCachedOrgId();
208
+ }
209
+
170
210
  this.props.clearCachedAuth();
171
- this.props.clearCachedAccessList();
172
211
  this.props.onAuthenticationFailure(e);
173
212
  };
174
213
 
@@ -181,15 +220,16 @@ class AppWrapper extends React.Component<IAppWrapperProps, IAppWrapperState> {
181
220
  if (blockRender) {
182
221
  this.setState({ blockRender: true });
183
222
  }
184
-
185
223
  AuthService.checkSession()
186
224
  .then((freshIdentity: IIdentity) => {
187
- SessionService.getAccessData(freshIdentity.idToken, baseUrl)
225
+ const orgId = this.props.organizationId
226
+ ? this.props.organizationId
227
+ : SessionService.getCachedOrgId();
228
+ SessionService.getAccessData(freshIdentity.accessToken, baseUrl, false, orgId)
188
229
  .then((freshAccess: any) => {
230
+ this.props.setAccessData(freshAccess);
189
231
  this.props.login(freshIdentity);
190
- this.props.cacheAccessData(freshAccess);
191
- SessionService.buildFreshSession(freshIdentity, freshAccess);
192
- this.propagateCreds();
232
+ this.propagateCreds(freshAccess, freshIdentity);
193
233
  })
194
234
  .catch((e: Error) => {
195
235
  console.error(e);
@@ -202,86 +242,6 @@ class AppWrapper extends React.Component<IAppWrapperProps, IAppWrapperState> {
202
242
  });
203
243
  };
204
244
 
205
- private determineActiveOrganizationIn(
206
- auth: IIdentity,
207
- session: IHubSession,
208
- organizationIds: string[]
209
- ) {
210
- const { organizationId } = this.props;
211
- const {
212
- idTokenPayload: { exp }
213
- } = auth;
214
-
215
- if (organizationIds.length > 0) {
216
- if (organizationId && organizationIds.indexOf(organizationId) > -1) {
217
- return this.setActiveOrganization(organizationId, exp, session);
218
- }
219
-
220
- if (
221
- session &&
222
- session.organization_id &&
223
- organizationIds.indexOf(session.organization_id) > -1
224
- ) {
225
- return session.organization_id;
226
- }
227
-
228
- return this.setActiveOrganization(organizationIds[0], exp, session);
229
- }
230
-
231
- return '';
232
- }
233
-
234
- /*
235
- Figure out what the active org should be based on app-wrapper configuration
236
- */
237
- private determineActiveOrganization = (auth: IIdentity, access: any): string => {
238
- const { serviceId } = this.props;
239
- const { organizations } = access;
240
- const session: IHubSession = SessionService.getSession();
241
- const allOrgIdsFlattened: string[] = organizations.map((o: any) => o.id);
242
-
243
- const activeOrgId: string = this.determineActiveOrganizationIn(
244
- auth,
245
- session,
246
- allOrgIdsFlattened
247
- );
248
- const activeOrg: any = organizations.find((o) => o.id === activeOrgId);
249
-
250
- if (activeOrg && !activeOrg.services.includes(serviceId)) {
251
- this.setState({ restrictAccess: true });
252
- }
253
-
254
- return activeOrgId;
255
- };
256
-
257
- /*
258
- Update session if no session exists or diff in org id
259
- */
260
- private setActiveOrganization = (
261
- organizationId: string,
262
- exp: number,
263
- sharedSession: IHubSession
264
- ): string => {
265
- if (
266
- !sharedSession ||
267
- !sharedSession.organization_id ||
268
- sharedSession.organization_id !== organizationId
269
- ) {
270
- const activeOrg: any = this.props.access.organizations.find(
271
- (o: any) => o.id === organizationId
272
- );
273
- const firstStoryId: string =
274
- typeof activeOrg.stories[0] === 'object' ? activeOrg.stories[0].id : '';
275
-
276
- SessionService.updateSession(
277
- { organization_id: organizationId, story_id: firstStoryId },
278
- exp
279
- );
280
- }
281
-
282
- return organizationId;
283
- };
284
-
285
245
  public render = (): JSX.Element => {
286
246
  const { blockRender, restrictAccess } = this.state;
287
247
  const { children, showRequestAccess, allowUnauthenticatedRender } = this.props;
@@ -322,9 +282,8 @@ const mapDispatchToProps = (dispatch) => {
322
282
  return bindActionCreators(
323
283
  {
324
284
  login,
325
- clearCachedAuth,
326
- cacheAccessData,
327
- clearCachedAccessList
285
+ setAccessData,
286
+ clearCachedAuth
328
287
  },
329
288
  dispatch
330
289
  );
@@ -28,7 +28,12 @@ interface IAssetFieldProps {
28
28
  tooltip: string;
29
29
  onChange: (asset: any) => any;
30
30
  updateFilters: (filters: any) => any;
31
- uploadAssets: (api: any, files: File[], bindToOverlay?: (f: any) => any) => any;
31
+ uploadAssets: (
32
+ api: any,
33
+ files: File[],
34
+ storyId?: string,
35
+ bindToOverlay?: (f: any) => any
36
+ ) => any;
32
37
  accepts?: string | string[];
33
38
  labelPosition?: string;
34
39
  onError?: (message: string) => void;
@@ -103,14 +108,14 @@ class AssetField extends React.PureComponent<IAssetFieldProps, IAssetFieldState>
103
108
  }
104
109
 
105
110
  private onFileDrop = (i: any, monitor: any): void => {
106
- const { accepts, api } = this.props;
111
+ const { accepts, storyId, api } = this.props;
107
112
  if (monitor) {
108
113
  const { files } = monitor.getItem();
109
114
 
110
115
  if (mimetypeConformsToOverlay(accepts, files[0])) {
111
116
  this.setState({ assetUploading: true });
112
117
 
113
- this.props.uploadAssets(api, [files[0]], (f: any) => {
118
+ this.props.uploadAssets(api, [files[0]], storyId, (f: any) => {
114
119
  this.setState({ assetName: f.name, error: false }, () => {
115
120
  this.setState({ assetUploading: false });
116
121
  this.props.onChange(f);
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { ASSET_TYPES } from '../../constants/assets';
3
- import { formatAudioDuration, getDuration } from '../../Util';
3
+ import { getDuration } from '../../Util';
4
4
 
5
5
  interface IAssetsTableDurationCell {
6
6
  cell: any;
@@ -30,7 +30,10 @@ const AssetsTableDurationCell: React.FC<IAssetsTableDurationCell> = (
30
30
  }
31
31
 
32
32
  if (type === ASSET_TYPES.AUDIO) {
33
- duration = formatAudioDuration(original.duration);
33
+ const date = new Date(null);
34
+ date.setSeconds(original.duration);
35
+ const timestamp = date.toISOString().slice(11, 19);
36
+ duration = `${timestamp}.x`;
34
37
  }
35
38
 
36
39
  if (duration !== null && duration !== undefined) {
@@ -6,11 +6,11 @@ import { connect } from 'react-redux';
6
6
  import { bindActionCreators } from 'redux';
7
7
  import { IImposiumAPI } from '../../services/API';
8
8
  import { DeterminateLoader } from '../determinate-loader/DeterminateLoader';
9
- import { assets as copy } from '../../constants/copy';
10
9
 
11
10
  interface IAssetsTableNameCell {
12
11
  cell: any;
13
12
  api: IImposiumAPI;
13
+ disabled: boolean;
14
14
  updateAssetName: (api: any, id: string, name: string, delay?: boolean) => any;
15
15
  }
16
16
 
@@ -21,7 +21,8 @@ const AssetsTableNameCell: React.FC<IAssetsTableNameCell> = (props: IAssetsTable
21
21
  row: {
22
22
  original: { name, id, percent: uploadProgress }
23
23
  }
24
- }
24
+ },
25
+ disabled
25
26
  } = props;
26
27
 
27
28
  const [localName, setLocalName] = useState(name);
@@ -51,7 +52,7 @@ const AssetsTableNameCell: React.FC<IAssetsTableNameCell> = (props: IAssetsTable
51
52
  text={name}
52
53
  />
53
54
  ) : (
54
- <span>{copy.uploads.preparePhase}</span>
55
+ <span>Preparing asset...</span>
55
56
  );
56
57
  return loader;
57
58
  } else {
@@ -59,6 +60,7 @@ const AssetsTableNameCell: React.FC<IAssetsTableNameCell> = (props: IAssetsTable
59
60
  <TextField
60
61
  value={localName}
61
62
  width={'100%'}
63
+ disabled={disabled}
62
64
  onChange={(n) => onUpdate(n)}
63
65
  />
64
66
  );
@@ -1,27 +1,20 @@
1
1
  import * as React from 'react';
2
- import { ASSET_TYPES } from '../../constants/assets';
3
2
 
4
3
  interface IAssetsTableRateCell {
5
4
  cell: any;
6
5
  }
6
+
7
7
  const AssetsTableRateCell: React.FC<IAssetsTableRateCell> = (props: IAssetsTableRateCell) => {
8
8
  const {
9
9
  cell: {
10
10
  row: {
11
- original: { type, data, rate }
11
+ original: { rate }
12
12
  }
13
13
  }
14
14
  } = props;
15
15
 
16
- let framerate = rate !== null && rate !== undefined ? rate : '';
17
-
18
- if (type === ASSET_TYPES.VIDEO_COMPOSITION && data) {
19
- const { rate: frame_rate } = JSON.parse(data);
20
- framerate = frame_rate;
21
- }
22
-
23
- if (framerate !== null && framerate !== undefined && framerate !== '') {
24
- return <div className='asset-rate-cell'>{Number(framerate).toFixed(2)}</div>;
16
+ if (rate !== null && rate !== undefined) {
17
+ return <div className='asset-rate-cell'>{Number(rate).toFixed(2)}</div>;
25
18
  } else {
26
19
  return <div className='asset-rate-cell'></div>;
27
20
  }
@@ -62,14 +62,15 @@ class AssetsTableTypeFilter extends React.PureComponent<
62
62
  buttonRef={this.typeFilterRef}
63
63
  onClick={() => this.setState({ openMenu: !openMenu })}>
64
64
  <AssetsTypeIcon type={type || 'filter'} />
65
+
66
+ <ImposiumDropdown
67
+ show={openMenu}
68
+ position='bottomleft'
69
+ toggleRef={this.typeFilterRef}
70
+ onOutsideClick={() => this.setState({ openMenu: false })}>
71
+ {filterButtons}
72
+ </ImposiumDropdown>
65
73
  </Button>
66
- <ImposiumDropdown
67
- show={openMenu}
68
- position='bottomleft'
69
- toggleRef={this.typeFilterRef}
70
- onOutsideClick={() => this.setState({ openMenu: false })}>
71
- {filterButtons}
72
- </ImposiumDropdown>
73
74
  </div>
74
75
  );
75
76
  };