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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/dist/cjs/Util.d.ts +0 -1
  2. package/dist/cjs/Util.js +1 -8
  3. package/dist/cjs/Util.js.map +1 -1
  4. package/dist/cjs/components/Tooltip.d.ts +2 -2
  5. package/dist/cjs/components/Tooltip.js +7 -4
  6. package/dist/cjs/components/Tooltip.js.map +1 -1
  7. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  8. package/dist/cjs/components/anchor-field/AnchorField.d.ts +1 -1
  9. package/dist/cjs/components/app-wrapper/AppWrapper.d.ts +1 -2
  10. package/dist/cjs/components/app-wrapper/AppWrapper.js +96 -84
  11. package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
  12. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  13. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js +243 -0
  14. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  15. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  16. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js +255 -0
  17. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  18. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  19. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js +243 -0
  20. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  21. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  22. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js +251 -0
  23. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  24. package/dist/cjs/components/assets/AssetField.js +2 -2
  25. package/dist/cjs/components/assets/AssetField.js.map +1 -1
  26. package/dist/cjs/components/assets/AssetsTableDurationCell.js +4 -1
  27. package/dist/cjs/components/assets/AssetsTableDurationCell.js.map +1 -1
  28. package/dist/cjs/components/assets/AssetsTableGlobalCell.js +1 -1
  29. package/dist/cjs/components/assets/AssetsTableGlobalCell.js.map +1 -1
  30. package/dist/cjs/components/assets/AssetsTableNameCell.js +3 -4
  31. package/dist/cjs/components/assets/AssetsTableNameCell.js.map +1 -1
  32. package/dist/cjs/components/assets/AssetsTableRateCell.js +3 -9
  33. package/dist/cjs/components/assets/AssetsTableRateCell.js.map +1 -1
  34. package/dist/cjs/components/assets/AssetsTableTypeFilter.js +2 -2
  35. package/dist/cjs/components/assets/AssetsTableTypeFilter.js.map +1 -1
  36. package/dist/cjs/components/assets/AssetsUploadMenu.js +34 -157
  37. package/dist/cjs/components/assets/AssetsUploadMenu.js.map +1 -1
  38. package/dist/cjs/components/auth-gate/AuthGate.js +9 -5
  39. package/dist/cjs/components/auth-gate/AuthGate.js.map +1 -1
  40. package/dist/cjs/components/button-group-field/ButtonGroupField.d.ts +1 -1
  41. package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +1 -1
  42. package/dist/cjs/components/color-field/ColorField.d.ts +1 -1
  43. package/dist/cjs/components/color-field/ColorField.js +2 -2
  44. package/dist/cjs/components/color-field/ColorField.js.map +1 -1
  45. package/dist/cjs/components/context-menu/ContextMenu.js +4 -8
  46. package/dist/cjs/components/context-menu/ContextMenu.js.map +1 -1
  47. package/dist/cjs/components/data-table/DataTable.js +2 -2
  48. package/dist/cjs/components/data-table/DataTable.js.map +1 -1
  49. package/dist/cjs/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  50. package/dist/cjs/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  51. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  52. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js +91 -0
  53. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  54. package/dist/cjs/components/header/Header.d.ts +5 -1
  55. package/dist/cjs/components/header/Header.js +51 -46
  56. package/dist/cjs/components/header/Header.js.map +1 -1
  57. package/dist/cjs/components/header/Header_BACKUP_73021.d.ts +33 -0
  58. package/dist/cjs/components/header/Header_BACKUP_73021.js +393 -0
  59. package/dist/cjs/components/header/Header_BACKUP_73021.js.map +1 -0
  60. package/dist/cjs/components/header/Header_BASE_73021.d.ts +29 -0
  61. package/dist/cjs/components/header/Header_BASE_73021.js +376 -0
  62. package/dist/cjs/components/header/Header_BASE_73021.js.map +1 -0
  63. package/dist/cjs/components/header/Header_LOCAL_73021.d.ts +33 -0
  64. package/dist/cjs/components/header/Header_LOCAL_73021.js +382 -0
  65. package/dist/cjs/components/header/Header_LOCAL_73021.js.map +1 -0
  66. package/dist/cjs/components/header/Header_REMOTE_73021.d.ts +30 -0
  67. package/dist/cjs/components/header/Header_REMOTE_73021.js +386 -0
  68. package/dist/cjs/components/header/Header_REMOTE_73021.js.map +1 -0
  69. package/dist/cjs/components/list-field/ListField.d.ts +1 -1
  70. package/dist/cjs/components/number-field/NumberField.d.ts +1 -1
  71. package/dist/cjs/components/publish-wizard/PublishWizard.js +119 -63
  72. package/dist/cjs/components/publish-wizard/PublishWizard.js.map +1 -1
  73. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js +5 -28
  74. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  75. package/dist/cjs/components/select-field/SelectField.d.ts +1 -1
  76. package/dist/cjs/components/select-field/SelectField.js +0 -4
  77. package/dist/cjs/components/select-field/SelectField.js.map +1 -1
  78. package/dist/cjs/components/slider-field/SliderField.d.ts +1 -1
  79. package/dist/cjs/components/smpte-field/SMPTEField.d.ts +1 -1
  80. package/dist/cjs/components/story-previewer/StoryPreviewer.js +2 -7
  81. package/dist/cjs/components/story-previewer/StoryPreviewer.js.map +1 -1
  82. package/dist/cjs/components/text-area-field/TextAreaField.d.ts +1 -1
  83. package/dist/cjs/components/text-field/TextField.d.ts +1 -1
  84. package/dist/cjs/constants/copy.d.ts +5 -2
  85. package/dist/cjs/constants/copy.js +8 -5
  86. package/dist/cjs/constants/copy.js.map +1 -1
  87. package/dist/cjs/constants/icons.d.ts +1 -0
  88. package/dist/cjs/constants/icons.js +3 -1
  89. package/dist/cjs/constants/icons.js.map +1 -1
  90. package/dist/cjs/index.d.ts +3 -5
  91. package/dist/cjs/index.js +4 -8
  92. package/dist/cjs/index.js.map +1 -1
  93. package/dist/cjs/redux/actions/access.d.ts +1 -3
  94. package/dist/cjs/redux/actions/access.js +10 -43
  95. package/dist/cjs/redux/actions/access.js.map +1 -1
  96. package/dist/cjs/redux/actions/asset-uploads.d.ts +11 -6
  97. package/dist/cjs/redux/actions/asset-uploads.js +182 -262
  98. package/dist/cjs/redux/actions/asset-uploads.js.map +1 -1
  99. package/dist/cjs/redux/actions/publish.js +4 -3
  100. package/dist/cjs/redux/actions/publish.js.map +1 -1
  101. package/dist/cjs/redux/reducers/access.js +7 -30
  102. package/dist/cjs/redux/reducers/access.js.map +1 -1
  103. package/dist/cjs/redux/reducers/asset-uploads.js +24 -10
  104. package/dist/cjs/redux/reducers/asset-uploads.js.map +1 -1
  105. package/dist/cjs/services/API.d.ts +2 -2
  106. package/dist/cjs/services/API.js +1 -2
  107. package/dist/cjs/services/API.js.map +1 -1
  108. package/dist/cjs/services/Auth0.js +1 -0
  109. package/dist/cjs/services/Auth0.js.map +1 -1
  110. package/dist/cjs/services/Session.d.ts +9 -8
  111. package/dist/cjs/services/Session.js +31 -127
  112. package/dist/cjs/services/Session.js.map +1 -1
  113. package/dist/cjs/utils/assets.d.ts +2 -1
  114. package/dist/cjs/utils/assets.js.map +1 -1
  115. package/dist/esm/Util.d.ts +0 -1
  116. package/dist/esm/Util.js +0 -6
  117. package/dist/esm/Util.js.map +1 -1
  118. package/dist/esm/components/Tooltip.d.ts +2 -2
  119. package/dist/esm/components/Tooltip.js +4 -4
  120. package/dist/esm/components/Tooltip.js.map +1 -1
  121. package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  122. package/dist/esm/components/anchor-field/AnchorField.d.ts +1 -1
  123. package/dist/esm/components/app-wrapper/AppWrapper.d.ts +1 -2
  124. package/dist/esm/components/app-wrapper/AppWrapper.js +94 -84
  125. package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
  126. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  127. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
  128. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  129. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  130. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
  131. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  132. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  133. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
  134. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  135. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  136. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
  137. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  138. package/dist/esm/components/assets/AssetField.js +2 -2
  139. package/dist/esm/components/assets/AssetField.js.map +1 -1
  140. package/dist/esm/components/assets/AssetsTableDurationCell.js +5 -2
  141. package/dist/esm/components/assets/AssetsTableDurationCell.js.map +1 -1
  142. package/dist/esm/components/assets/AssetsTableGlobalCell.js +1 -1
  143. package/dist/esm/components/assets/AssetsTableGlobalCell.js.map +1 -1
  144. package/dist/esm/components/assets/AssetsTableNameCell.js +3 -4
  145. package/dist/esm/components/assets/AssetsTableNameCell.js.map +1 -1
  146. package/dist/esm/components/assets/AssetsTableRateCell.js +3 -9
  147. package/dist/esm/components/assets/AssetsTableRateCell.js.map +1 -1
  148. package/dist/esm/components/assets/AssetsTableTypeFilter.js +2 -2
  149. package/dist/esm/components/assets/AssetsTableTypeFilter.js.map +1 -1
  150. package/dist/esm/components/assets/AssetsUploadMenu.js +34 -138
  151. package/dist/esm/components/assets/AssetsUploadMenu.js.map +1 -1
  152. package/dist/esm/components/auth-gate/AuthGate.js +10 -6
  153. package/dist/esm/components/auth-gate/AuthGate.js.map +1 -1
  154. package/dist/esm/components/button-group-field/ButtonGroupField.d.ts +1 -1
  155. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +1 -1
  156. package/dist/esm/components/color-field/ColorField.d.ts +1 -1
  157. package/dist/esm/components/color-field/ColorField.js +2 -2
  158. package/dist/esm/components/color-field/ColorField.js.map +1 -1
  159. package/dist/esm/components/context-menu/ContextMenu.js +3 -7
  160. package/dist/esm/components/context-menu/ContextMenu.js.map +1 -1
  161. package/dist/esm/components/data-table/DataTable.js +2 -2
  162. package/dist/esm/components/data-table/DataTable.js.map +1 -1
  163. package/dist/esm/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  164. package/dist/esm/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  165. package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  166. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
  167. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  168. package/dist/esm/components/header/Header.d.ts +5 -1
  169. package/dist/esm/components/header/Header.js +51 -41
  170. package/dist/esm/components/header/Header.js.map +1 -1
  171. package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
  172. package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
  173. package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
  174. package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
  175. package/dist/esm/components/header/Header_BASE_73021.js +322 -0
  176. package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
  177. package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
  178. package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
  179. package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
  180. package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
  181. package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
  182. package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
  183. package/dist/esm/components/list-field/ListField.d.ts +1 -1
  184. package/dist/esm/components/number-field/NumberField.d.ts +1 -1
  185. package/dist/esm/components/publish-wizard/PublishWizard.js +119 -64
  186. package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
  187. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js +5 -28
  188. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  189. package/dist/esm/components/select-field/SelectField.d.ts +1 -1
  190. package/dist/esm/components/select-field/SelectField.js +0 -3
  191. package/dist/esm/components/select-field/SelectField.js.map +1 -1
  192. package/dist/esm/components/slider-field/SliderField.d.ts +1 -1
  193. package/dist/esm/components/smpte-field/SMPTEField.d.ts +1 -1
  194. package/dist/esm/components/story-previewer/StoryPreviewer.js +2 -7
  195. package/dist/esm/components/story-previewer/StoryPreviewer.js.map +1 -1
  196. package/dist/esm/components/text-area-field/TextAreaField.d.ts +1 -1
  197. package/dist/esm/components/text-field/TextField.d.ts +1 -1
  198. package/dist/esm/constants/copy.d.ts +5 -2
  199. package/dist/esm/constants/copy.js +8 -5
  200. package/dist/esm/constants/copy.js.map +1 -1
  201. package/dist/esm/constants/icons.d.ts +1 -0
  202. package/dist/esm/constants/icons.js +2 -0
  203. package/dist/esm/constants/icons.js.map +1 -1
  204. package/dist/esm/index.d.ts +3 -5
  205. package/dist/esm/index.js +3 -5
  206. package/dist/esm/index.js.map +1 -1
  207. package/dist/esm/redux/actions/access.d.ts +1 -3
  208. package/dist/esm/redux/actions/access.js +8 -37
  209. package/dist/esm/redux/actions/access.js.map +1 -1
  210. package/dist/esm/redux/actions/asset-uploads.d.ts +11 -6
  211. package/dist/esm/redux/actions/asset-uploads.js +167 -224
  212. package/dist/esm/redux/actions/asset-uploads.js.map +1 -1
  213. package/dist/esm/redux/actions/publish.js +4 -3
  214. package/dist/esm/redux/actions/publish.js.map +1 -1
  215. package/dist/esm/redux/reducers/access.js +5 -8
  216. package/dist/esm/redux/reducers/access.js.map +1 -1
  217. package/dist/esm/redux/reducers/asset-uploads.js +47 -15
  218. package/dist/esm/redux/reducers/asset-uploads.js.map +1 -1
  219. package/dist/esm/services/API.d.ts +2 -2
  220. package/dist/esm/services/API.js +1 -2
  221. package/dist/esm/services/API.js.map +1 -1
  222. package/dist/esm/services/Auth0.js +1 -0
  223. package/dist/esm/services/Auth0.js.map +1 -1
  224. package/dist/esm/services/Session.d.ts +9 -8
  225. package/dist/esm/services/Session.js +29 -102
  226. package/dist/esm/services/Session.js.map +1 -1
  227. package/dist/esm/utils/assets.d.ts +2 -1
  228. package/dist/esm/utils/assets.js.map +1 -1
  229. package/dist/styles.css +25 -151
  230. package/dist/styles.less +100 -280
  231. package/less/components/assets.less +63 -237
  232. package/less/components/button.less +1 -7
  233. package/less/components/data-table.less +11 -17
  234. package/less/components/header.less +13 -0
  235. package/less/components/publish-wizard.less +13 -20
  236. package/less/components/story-previewer.less +0 -1
  237. package/package.json +6 -6
  238. package/src/Util.ts +0 -10
  239. package/src/components/Tooltip.tsx +9 -9
  240. package/src/components/advanced-number-field/AdvancedNumberField.tsx +1 -1
  241. package/src/components/anchor-field/AnchorField.tsx +1 -1
  242. package/src/components/app-wrapper/AppWrapper.tsx +102 -125
  243. package/src/components/assets/AssetField.tsx +8 -3
  244. package/src/components/assets/AssetsTableDurationCell.tsx +5 -2
  245. package/src/components/assets/AssetsTableNameCell.tsx +5 -3
  246. package/src/components/assets/AssetsTableRateCell.tsx +4 -11
  247. package/src/components/assets/AssetsTableTypeFilter.tsx +8 -7
  248. package/src/components/assets/AssetsUploadMenu.tsx +98 -271
  249. package/src/components/auth-gate/AuthGate.tsx +15 -8
  250. package/src/components/button-group-field/ButtonGroupField.tsx +1 -1
  251. package/src/components/checkbox-field/CheckboxField.tsx +1 -1
  252. package/src/components/color-field/ColorField.tsx +3 -3
  253. package/src/components/context-menu/ContextMenu.tsx +11 -16
  254. package/src/components/data-table/DataTable.tsx +2 -2
  255. package/src/components/header/Header.tsx +113 -76
  256. package/src/components/list-field/ListField.tsx +1 -1
  257. package/src/components/number-field/NumberField.tsx +1 -1
  258. package/src/components/publish-wizard/PublishWizard.tsx +180 -102
  259. package/src/components/publish-wizard/publish/EmailWorkflow.tsx +10 -42
  260. package/src/components/select-field/SelectField.tsx +1 -4
  261. package/src/components/slider-field/SliderField.tsx +1 -1
  262. package/src/components/smpte-field/SMPTEField.tsx +1 -1
  263. package/src/components/story-previewer/StoryPreviewer.tsx +6 -10
  264. package/src/components/text-area-field/TextAreaField.tsx +1 -1
  265. package/src/components/text-field/TextField.tsx +1 -1
  266. package/src/constants/copy.ts +9 -5
  267. package/src/constants/icons.tsx +3 -0
  268. package/src/index.ts +11 -11
  269. package/src/redux/actions/access.ts +5 -67
  270. package/src/redux/actions/asset-uploads.ts +206 -307
  271. package/src/redux/actions/publish.ts +6 -3
  272. package/src/redux/reducers/access.ts +5 -8
  273. package/src/redux/reducers/asset-uploads.ts +47 -17
  274. package/src/services/API.ts +2 -7
  275. package/src/services/Auth0.ts +1 -0
  276. package/src/services/Session.ts +34 -120
  277. package/src/utils/assets.ts +2 -1
  278. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
  279. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js +0 -75
  280. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
  281. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
  282. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js +0 -24
  283. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
  284. package/src/components/assets/AssetsTableGlobalCell.tsx +0 -15
  285. package/src/components/copy-prop-id-button/CopyPropIdButton.tsx +0 -44
  286. /package/dist/cjs/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  287. /package/dist/esm/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  288. /package/src/components/dropdown/{Dropdown.stories.tsx → dropdown.stories.tsx} +0 -0
@@ -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,28 +133,99 @@ 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 if (firstOrg) {
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
+ if (firstOrg) {
181
+ initialOrganizationId = firstOrg.id;
182
+ const story = firstOrg.stories[0];
183
+ if (story) {
184
+ initialStoryId = story.id;
185
+ } else {
186
+ initialStoryId = null;
187
+ }
188
+ } else {
189
+ initialOrganizationId = null;
190
+ initialStoryId = null;
191
+ }
192
+ }
157
193
  }
158
194
 
159
- onAuthenticated(activeOrgId, activeStoryId);
195
+ // If at least one org was found, propagate that
196
+ if (initialOrganizationId) {
197
+ SessionService.buildFreshSession(freshIdentity, initialOrganizationId, initialStoryId);
198
+ onAuthenticated(initialOrganizationId, initialStoryId);
160
199
 
161
- if (this.state.blockRender) {
162
- this.setState({ blockRender: false });
200
+ if (this.state.blockRender) {
201
+ this.setState({ blockRender: false });
202
+ }
203
+
204
+ // If not, show the no-orgs interface
205
+ } else {
206
+ this.setState({ restrictAccess: true, blockRender: false });
163
207
  }
164
208
  };
165
209
 
166
210
  /*
167
211
  Bust cached creds if exist, invoke auth failure handler
168
212
  */
169
- private handleCheckSessionFailure = (e: Error): void => {
213
+ private handleCheckSessionFailure = (e: Error, sub?: string): void => {
214
+ if (sub) {
215
+ if (this.props.storyId) {
216
+ SessionService.cacheStoryId(this.props.storyId, sub);
217
+ } else {
218
+ SessionService.clearCachedStoryId(sub);
219
+ }
220
+
221
+ if (this.props.organizationId) {
222
+ SessionService.cacheOrgId(this.props.organizationId, sub);
223
+ } else {
224
+ SessionService.clearCachedOrgId(sub);
225
+ }
226
+ }
227
+
170
228
  this.props.clearCachedAuth();
171
- this.props.clearCachedAccessList();
172
229
  this.props.onAuthenticationFailure(e);
173
230
  };
174
231
 
@@ -181,107 +238,28 @@ class AppWrapper extends React.Component<IAppWrapperProps, IAppWrapperState> {
181
238
  if (blockRender) {
182
239
  this.setState({ blockRender: true });
183
240
  }
184
-
185
241
  AuthService.checkSession()
186
242
  .then((freshIdentity: IIdentity) => {
187
- SessionService.getAccessData(freshIdentity.idToken, baseUrl)
243
+ const sub = freshIdentity.idTokenPayload.sub;
244
+ const orgId = this.props.organizationId
245
+ ? this.props.organizationId
246
+ : SessionService.getCachedOrgId(sub);
247
+ SessionService.getAccessData(freshIdentity.accessToken, baseUrl, false, orgId)
188
248
  .then((freshAccess: any) => {
249
+ this.props.setAccessData(freshAccess);
189
250
  this.props.login(freshIdentity);
190
- this.props.cacheAccessData(freshAccess);
191
- SessionService.buildFreshSession(freshIdentity, freshAccess);
192
- this.propagateCreds();
251
+ this.propagateCreds(freshAccess, freshIdentity);
193
252
  })
194
253
  .catch((e: Error) => {
195
254
  console.error(e);
196
- this.handleCheckSessionFailure(e);
255
+ this.handleCheckSessionFailure(e, sub);
197
256
  });
198
257
  })
199
258
  .catch((e: Error) => {
200
- console.error(e);
201
259
  this.handleCheckSessionFailure(e);
202
260
  });
203
261
  };
204
262
 
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
263
  public render = (): JSX.Element => {
286
264
  const { blockRender, restrictAccess } = this.state;
287
265
  const { children, showRequestAccess, allowUnauthenticatedRender } = this.props;
@@ -322,9 +300,8 @@ const mapDispatchToProps = (dispatch) => {
322
300
  return bindActionCreators(
323
301
  {
324
302
  login,
325
- clearCachedAuth,
326
- cacheAccessData,
327
- clearCachedAccessList
303
+ setAccessData,
304
+ clearCachedAuth
328
305
  },
329
306
  dispatch
330
307
  );
@@ -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
  };