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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/dist/cjs/Util.d.ts +0 -1
  2. package/dist/cjs/Util.js +1 -8
  3. package/dist/cjs/Util.js.map +1 -1
  4. package/dist/cjs/components/Tooltip.d.ts +2 -2
  5. package/dist/cjs/components/Tooltip.js +7 -4
  6. package/dist/cjs/components/Tooltip.js.map +1 -1
  7. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  8. package/dist/cjs/components/anchor-field/AnchorField.d.ts +1 -1
  9. package/dist/cjs/components/app-wrapper/AppWrapper.d.ts +1 -2
  10. package/dist/cjs/components/app-wrapper/AppWrapper.js +71 -79
  11. package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
  12. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  13. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js +243 -0
  14. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  15. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  16. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js +255 -0
  17. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  18. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  19. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js +243 -0
  20. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  21. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  22. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js +251 -0
  23. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  24. package/dist/cjs/components/assets/AssetField.js +2 -2
  25. package/dist/cjs/components/assets/AssetField.js.map +1 -1
  26. package/dist/cjs/components/assets/AssetsTableDurationCell.js +4 -1
  27. package/dist/cjs/components/assets/AssetsTableDurationCell.js.map +1 -1
  28. package/dist/cjs/components/assets/AssetsTableGlobalCell.js +1 -1
  29. package/dist/cjs/components/assets/AssetsTableGlobalCell.js.map +1 -1
  30. package/dist/cjs/components/assets/AssetsTableNameCell.js +3 -4
  31. package/dist/cjs/components/assets/AssetsTableNameCell.js.map +1 -1
  32. package/dist/cjs/components/assets/AssetsTableRateCell.js +3 -9
  33. package/dist/cjs/components/assets/AssetsTableRateCell.js.map +1 -1
  34. package/dist/cjs/components/assets/AssetsTableTypeFilter.js +2 -2
  35. package/dist/cjs/components/assets/AssetsTableTypeFilter.js.map +1 -1
  36. package/dist/cjs/components/assets/AssetsUploadMenu.js +34 -161
  37. package/dist/cjs/components/assets/AssetsUploadMenu.js.map +1 -1
  38. package/dist/cjs/components/auth-gate/AuthGate.js +8 -5
  39. package/dist/cjs/components/auth-gate/AuthGate.js.map +1 -1
  40. package/dist/cjs/components/button-group-field/ButtonGroupField.d.ts +1 -1
  41. package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +1 -1
  42. package/dist/cjs/components/color-field/ColorField.d.ts +1 -1
  43. package/dist/cjs/components/color-field/ColorField.js +2 -2
  44. package/dist/cjs/components/color-field/ColorField.js.map +1 -1
  45. package/dist/cjs/components/context-menu/ContextMenu.js +4 -8
  46. package/dist/cjs/components/context-menu/ContextMenu.js.map +1 -1
  47. package/dist/cjs/components/data-table/DataTable.js +2 -2
  48. package/dist/cjs/components/data-table/DataTable.js.map +1 -1
  49. package/dist/cjs/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  50. package/dist/cjs/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  51. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  52. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js +91 -0
  53. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  54. package/dist/cjs/components/header/Header.d.ts +4 -0
  55. package/dist/cjs/components/header/Header.js +27 -19
  56. package/dist/cjs/components/header/Header.js.map +1 -1
  57. package/dist/cjs/components/header/Header_BACKUP_73021.d.ts +33 -0
  58. package/dist/cjs/components/header/Header_BACKUP_73021.js +393 -0
  59. package/dist/cjs/components/header/Header_BACKUP_73021.js.map +1 -0
  60. package/dist/cjs/components/header/Header_BASE_73021.d.ts +29 -0
  61. package/dist/cjs/components/header/Header_BASE_73021.js +376 -0
  62. package/dist/cjs/components/header/Header_BASE_73021.js.map +1 -0
  63. package/dist/cjs/components/header/Header_LOCAL_73021.d.ts +33 -0
  64. package/dist/cjs/components/header/Header_LOCAL_73021.js +382 -0
  65. package/dist/cjs/components/header/Header_LOCAL_73021.js.map +1 -0
  66. package/dist/cjs/components/header/Header_REMOTE_73021.d.ts +30 -0
  67. package/dist/cjs/components/header/Header_REMOTE_73021.js +386 -0
  68. package/dist/cjs/components/header/Header_REMOTE_73021.js.map +1 -0
  69. package/dist/cjs/components/list-field/ListField.d.ts +1 -1
  70. package/dist/cjs/components/number-field/NumberField.d.ts +1 -1
  71. package/dist/cjs/components/publish-wizard/PublishWizard.js +119 -63
  72. package/dist/cjs/components/publish-wizard/PublishWizard.js.map +1 -1
  73. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js +5 -28
  74. package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  75. package/dist/cjs/components/select-field/SelectField.d.ts +1 -1
  76. package/dist/cjs/components/select-field/SelectField.js +0 -4
  77. package/dist/cjs/components/select-field/SelectField.js.map +1 -1
  78. package/dist/cjs/components/slider-field/SliderField.d.ts +1 -1
  79. package/dist/cjs/components/smpte-field/SMPTEField.d.ts +1 -1
  80. package/dist/cjs/components/text-area-field/TextAreaField.d.ts +1 -1
  81. package/dist/cjs/components/text-field/TextField.d.ts +1 -1
  82. package/dist/cjs/constants/copy.d.ts +5 -2
  83. package/dist/cjs/constants/copy.js +8 -5
  84. package/dist/cjs/constants/copy.js.map +1 -1
  85. package/dist/cjs/constants/icons.d.ts +1 -0
  86. package/dist/cjs/constants/icons.js +3 -1
  87. package/dist/cjs/constants/icons.js.map +1 -1
  88. package/dist/cjs/index.d.ts +3 -5
  89. package/dist/cjs/index.js +3 -8
  90. package/dist/cjs/index.js.map +1 -1
  91. package/dist/cjs/redux/actions/access.d.ts +1 -3
  92. package/dist/cjs/redux/actions/access.js +10 -43
  93. package/dist/cjs/redux/actions/access.js.map +1 -1
  94. package/dist/cjs/redux/actions/asset-uploads.d.ts +10 -5
  95. package/dist/cjs/redux/actions/asset-uploads.js +182 -262
  96. package/dist/cjs/redux/actions/asset-uploads.js.map +1 -1
  97. package/dist/cjs/redux/actions/publish.js +4 -3
  98. package/dist/cjs/redux/actions/publish.js.map +1 -1
  99. package/dist/cjs/redux/reducers/access.js +7 -30
  100. package/dist/cjs/redux/reducers/access.js.map +1 -1
  101. package/dist/cjs/redux/reducers/asset-uploads.js +24 -10
  102. package/dist/cjs/redux/reducers/asset-uploads.js.map +1 -1
  103. package/dist/cjs/services/Session.d.ts +9 -8
  104. package/dist/cjs/services/Session.js +31 -127
  105. package/dist/cjs/services/Session.js.map +1 -1
  106. package/dist/esm/Util.d.ts +0 -1
  107. package/dist/esm/Util.js +0 -6
  108. package/dist/esm/Util.js.map +1 -1
  109. package/dist/esm/components/Tooltip.d.ts +2 -2
  110. package/dist/esm/components/Tooltip.js +4 -4
  111. package/dist/esm/components/Tooltip.js.map +1 -1
  112. package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  113. package/dist/esm/components/anchor-field/AnchorField.d.ts +1 -1
  114. package/dist/esm/components/app-wrapper/AppWrapper.d.ts +1 -2
  115. package/dist/esm/components/app-wrapper/AppWrapper.js +69 -79
  116. package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
  117. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  118. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
  119. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  120. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  121. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
  122. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  123. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  124. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
  125. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  126. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  127. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
  128. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  129. package/dist/esm/components/assets/AssetField.js +2 -2
  130. package/dist/esm/components/assets/AssetField.js.map +1 -1
  131. package/dist/esm/components/assets/AssetsTableDurationCell.js +5 -2
  132. package/dist/esm/components/assets/AssetsTableDurationCell.js.map +1 -1
  133. package/dist/esm/components/assets/AssetsTableGlobalCell.js +1 -1
  134. package/dist/esm/components/assets/AssetsTableGlobalCell.js.map +1 -1
  135. package/dist/esm/components/assets/AssetsTableNameCell.js +3 -4
  136. package/dist/esm/components/assets/AssetsTableNameCell.js.map +1 -1
  137. package/dist/esm/components/assets/AssetsTableRateCell.js +3 -9
  138. package/dist/esm/components/assets/AssetsTableRateCell.js.map +1 -1
  139. package/dist/esm/components/assets/AssetsTableTypeFilter.js +2 -2
  140. package/dist/esm/components/assets/AssetsTableTypeFilter.js.map +1 -1
  141. package/dist/esm/components/assets/AssetsUploadMenu.js +34 -144
  142. package/dist/esm/components/assets/AssetsUploadMenu.js.map +1 -1
  143. package/dist/esm/components/auth-gate/AuthGate.js +9 -6
  144. package/dist/esm/components/auth-gate/AuthGate.js.map +1 -1
  145. package/dist/esm/components/button-group-field/ButtonGroupField.d.ts +1 -1
  146. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +1 -1
  147. package/dist/esm/components/color-field/ColorField.d.ts +1 -1
  148. package/dist/esm/components/color-field/ColorField.js +2 -2
  149. package/dist/esm/components/color-field/ColorField.js.map +1 -1
  150. package/dist/esm/components/context-menu/ContextMenu.js +3 -7
  151. package/dist/esm/components/context-menu/ContextMenu.js.map +1 -1
  152. package/dist/esm/components/data-table/DataTable.js +2 -2
  153. package/dist/esm/components/data-table/DataTable.js.map +1 -1
  154. package/dist/esm/components/dropdown/{Dropdown.stories.js → dropdown.stories.js} +1 -1
  155. package/dist/esm/components/dropdown/{Dropdown.stories.js.map → dropdown.stories.js.map} +1 -1
  156. package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  157. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
  158. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  159. package/dist/esm/components/header/Header.d.ts +4 -0
  160. package/dist/esm/components/header/Header.js +27 -19
  161. package/dist/esm/components/header/Header.js.map +1 -1
  162. package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
  163. package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
  164. package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
  165. package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
  166. package/dist/esm/components/header/Header_BASE_73021.js +322 -0
  167. package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
  168. package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
  169. package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
  170. package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
  171. package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
  172. package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
  173. package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
  174. package/dist/esm/components/list-field/ListField.d.ts +1 -1
  175. package/dist/esm/components/number-field/NumberField.d.ts +1 -1
  176. package/dist/esm/components/publish-wizard/PublishWizard.js +119 -64
  177. package/dist/esm/components/publish-wizard/PublishWizard.js.map +1 -1
  178. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js +5 -28
  179. package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
  180. package/dist/esm/components/select-field/SelectField.d.ts +1 -1
  181. package/dist/esm/components/select-field/SelectField.js +0 -3
  182. package/dist/esm/components/select-field/SelectField.js.map +1 -1
  183. package/dist/esm/components/slider-field/SliderField.d.ts +1 -1
  184. package/dist/esm/components/smpte-field/SMPTEField.d.ts +1 -1
  185. package/dist/esm/components/text-area-field/TextAreaField.d.ts +1 -1
  186. package/dist/esm/components/text-field/TextField.d.ts +1 -1
  187. package/dist/esm/constants/copy.d.ts +5 -2
  188. package/dist/esm/constants/copy.js +8 -5
  189. package/dist/esm/constants/copy.js.map +1 -1
  190. package/dist/esm/constants/icons.d.ts +1 -0
  191. package/dist/esm/constants/icons.js +2 -0
  192. package/dist/esm/constants/icons.js.map +1 -1
  193. package/dist/esm/index.d.ts +3 -5
  194. package/dist/esm/index.js +3 -5
  195. package/dist/esm/index.js.map +1 -1
  196. package/dist/esm/redux/actions/access.d.ts +1 -3
  197. package/dist/esm/redux/actions/access.js +8 -37
  198. package/dist/esm/redux/actions/access.js.map +1 -1
  199. package/dist/esm/redux/actions/asset-uploads.d.ts +10 -5
  200. package/dist/esm/redux/actions/asset-uploads.js +167 -224
  201. package/dist/esm/redux/actions/asset-uploads.js.map +1 -1
  202. package/dist/esm/redux/actions/publish.js +4 -3
  203. package/dist/esm/redux/actions/publish.js.map +1 -1
  204. package/dist/esm/redux/reducers/access.js +5 -8
  205. package/dist/esm/redux/reducers/access.js.map +1 -1
  206. package/dist/esm/redux/reducers/asset-uploads.js +47 -15
  207. package/dist/esm/redux/reducers/asset-uploads.js.map +1 -1
  208. package/dist/esm/services/Session.d.ts +9 -8
  209. package/dist/esm/services/Session.js +29 -102
  210. package/dist/esm/services/Session.js.map +1 -1
  211. package/dist/styles.css +25 -110
  212. package/dist/styles.less +100 -196
  213. package/less/components/assets.less +63 -153
  214. package/less/components/button.less +1 -7
  215. package/less/components/data-table.less +11 -17
  216. package/less/components/header.less +13 -0
  217. package/less/components/publish-wizard.less +13 -20
  218. package/less/components/story-previewer.less +0 -1
  219. package/package.json +6 -6
  220. package/src/Util.ts +0 -10
  221. package/src/components/Tooltip.tsx +9 -9
  222. package/src/components/advanced-number-field/AdvancedNumberField.tsx +1 -1
  223. package/src/components/anchor-field/AnchorField.tsx +1 -1
  224. package/src/components/app-wrapper/AppWrapper.tsx +79 -120
  225. package/src/components/assets/AssetField.tsx +8 -3
  226. package/src/components/assets/AssetsTableDurationCell.tsx +5 -2
  227. package/src/components/assets/AssetsTableNameCell.tsx +5 -3
  228. package/src/components/assets/AssetsTableRateCell.tsx +4 -11
  229. package/src/components/assets/AssetsTableTypeFilter.tsx +8 -7
  230. package/src/components/assets/AssetsUploadMenu.tsx +98 -275
  231. package/src/components/auth-gate/AuthGate.tsx +14 -8
  232. package/src/components/button-group-field/ButtonGroupField.tsx +1 -1
  233. package/src/components/checkbox-field/CheckboxField.tsx +1 -1
  234. package/src/components/color-field/ColorField.tsx +3 -3
  235. package/src/components/context-menu/ContextMenu.tsx +11 -16
  236. package/src/components/data-table/DataTable.tsx +2 -2
  237. package/src/components/header/Header.tsx +74 -39
  238. package/src/components/list-field/ListField.tsx +1 -1
  239. package/src/components/number-field/NumberField.tsx +1 -1
  240. package/src/components/publish-wizard/PublishWizard.tsx +180 -102
  241. package/src/components/publish-wizard/publish/EmailWorkflow.tsx +10 -42
  242. package/src/components/select-field/SelectField.tsx +1 -4
  243. package/src/components/slider-field/SliderField.tsx +1 -1
  244. package/src/components/smpte-field/SMPTEField.tsx +1 -1
  245. package/src/components/text-area-field/TextAreaField.tsx +1 -1
  246. package/src/components/text-field/TextField.tsx +1 -1
  247. package/src/constants/copy.ts +9 -5
  248. package/src/constants/icons.tsx +3 -0
  249. package/src/index.ts +9 -16
  250. package/src/redux/actions/access.ts +5 -67
  251. package/src/redux/actions/asset-uploads.ts +205 -305
  252. package/src/redux/actions/publish.ts +6 -3
  253. package/src/redux/reducers/access.ts +5 -8
  254. package/src/redux/reducers/asset-uploads.ts +47 -17
  255. package/src/services/Session.ts +34 -120
  256. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
  257. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js +0 -75
  258. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
  259. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.d.ts +0 -12
  260. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js +0 -24
  261. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.js.map +0 -1
  262. package/src/components/assets/AssetsTableGlobalCell.tsx +0 -15
  263. package/src/components/copy-prop-id-button/CopyPropIdButton.tsx +0 -44
  264. /package/dist/cjs/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  265. /package/dist/esm/components/dropdown/{Dropdown.stories.d.ts → dropdown.stories.d.ts} +0 -0
  266. /package/src/components/dropdown/{Dropdown.stories.tsx → dropdown.stories.tsx} +0 -0
@@ -1,11 +1,17 @@
1
1
  import * as React from 'react';
2
2
  import { assets as copy } from '../../constants/copy';
3
3
  import CheckboxField from '../checkbox-field/CheckboxField';
4
+ import { DeterminateLoader } from '../determinate-loader/DeterminateLoader';
4
5
  import {
6
+ toggleAssignToStory,
5
7
  cancelAssetUpload,
6
- uploadingAsset,
7
- updateUploadTags,
8
- cancelNonUploadedAssets
8
+ toggleTagFileName,
9
+ setDelimiter,
10
+ toggleTagDelimiter,
11
+ toggleManualTagging,
12
+ addManualTag,
13
+ deleteManualTag,
14
+ deleteManualTags
9
15
  } from '../../redux/actions/asset-uploads';
10
16
  import { bindActionCreators } from 'redux';
11
17
  import { connect } from 'react-redux';
@@ -18,58 +24,27 @@ import AssetsTableTagsPivot from './AssetsTableTagsPivot';
18
24
  import Tag from '../tag/Tag';
19
25
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
20
26
  import { faEraser } from '@fortawesome/free-solid-svg-icons';
21
- import { ICON_TIMES, ICON_UPLOAD } from '../../constants/icons';
22
- import AssetsTableDropzone from './AssetsTableDropzone';
23
27
 
24
28
  interface IAssetsUploadMenuProps {
25
- editor: any;
26
29
  assetUploads: any;
27
30
  assetTags: string[];
28
31
  api: any;
32
+ editor: any;
33
+ toggleAutoTag: (toggle: boolean) => any;
34
+ toggleTagFileName: (toggle: boolean) => any;
35
+ toggleAssignToStory: (toggle: boolean) => any;
36
+ toggleTagDelimiter: (togglle: boolean) => any;
37
+ setDelimiter: (delimiter: string) => any;
38
+ toggleManualTagging: (togglle: boolean) => any;
39
+ addManualTag: (tag: string) => any;
40
+ deleteManualTag: (tag: string) => any;
41
+ deleteManualTags: () => void;
29
42
  cancelAssetUpload: (fileName: string, api: IImposiumAPI) => any;
30
- cancelNonUploadedAssets: (api: IImposiumAPI) => any;
31
- updateEditorConfig(c): void;
32
- uploadingAsset: (api: IImposiumAPI) => void;
33
- updateUploadTags: () => void;
34
- onDrop: (i, m) => any;
35
- show: boolean;
36
- onMenuHover: (o) => void;
37
- toggleRef?: any;
38
- onOutsideClick: (...args) => any;
39
- tableHover: boolean;
40
43
  }
41
44
 
42
- interface IAssetsUploadMenuState {
43
- assetOver: boolean;
44
- }
45
-
46
- class AssetsUploadMenu extends React.PureComponent<IAssetsUploadMenuProps, IAssetsUploadMenuState> {
47
- private menuRef: any = null;
48
-
49
- private clickHandler: any = (e) => this.detectOutsideClick(e);
50
-
45
+ class AssetsUploadMenu extends React.PureComponent<IAssetsUploadMenuProps> {
51
46
  constructor(props: IAssetsUploadMenuProps) {
52
47
  super(props);
53
-
54
- this.state = {
55
- assetOver: false
56
- };
57
-
58
- this.menuRef = React.createRef();
59
- }
60
-
61
- public componentDidUpdate(prevProps: IAssetsUploadMenuProps) {
62
- if (this.props.show && !prevProps.show) {
63
- window.addEventListener('mousedown', this.clickHandler);
64
- }
65
-
66
- if (!this.props.show && prevProps.show) {
67
- window.removeEventListener('mousedown', this.clickHandler);
68
- }
69
- }
70
-
71
- public componentWillUnmount(): void {
72
- window.removeEventListener('mousedown', this.clickHandler);
73
48
  }
74
49
 
75
50
  private handleCancelAssetUpload(fileName: string) {
@@ -77,180 +52,82 @@ class AssetsUploadMenu extends React.PureComponent<IAssetsUploadMenuProps, IAsse
77
52
  this.props.cancelAssetUpload(fileName, api);
78
53
  }
79
54
 
80
- private uploadFileHandler() {
81
- const { api } = this.props;
82
- this.props.uploadingAsset(api);
83
- this.props.updateEditorConfig({ showUploadsDropdown: false });
84
- }
85
-
86
- private cancelUploadHandler(remove: boolean) {
87
- const { api } = this.props;
88
- if (!remove) {
89
- this.props.cancelNonUploadedAssets(api);
90
- }
91
- this.props.updateEditorConfig({ showUploadsDropdown: false });
92
- }
93
-
94
- private uploadsSetting(state) {
95
- const currState = this.props.editor.assetUploads;
96
-
97
- const newState = { ...currState, ...state };
98
- this.props.updateEditorConfig({
99
- assetUploads: newState
100
- });
101
- this.props.updateUploadTags();
102
- }
103
-
104
- private deleteManualTag(tag) {
105
- const { manualTags } = this.props.editor.assetUploads;
106
- const updatedManualTags = manualTags.filter((t: string) => t !== tag);
107
- this.uploadsSetting({ manualTags: updatedManualTags });
108
- }
109
-
110
- private addManualTag(tag) {
111
- const { manualTags } = this.props.editor.assetUploads;
112
- const updatedManualTags = manualTags ? manualTags : [];
113
- updatedManualTags.push(tag);
114
- this.uploadsSetting({ manualTags: updatedManualTags });
115
- }
116
-
117
- private checkHover(monitor) {
118
- const isOver = monitor.isOver();
119
- if (isOver !== this.state.assetOver) {
120
- this.setState({ assetOver: isOver }, () => this.props.onMenuHover(isOver));
121
- }
122
- }
123
-
124
- private detectOutsideClick = (e: any): void => {
125
- const { toggleRef } = this.props;
126
- const { target } = e;
127
-
128
- const isResizing = target.classList.contains('Resizer') ? true : false;
129
- const clickInside =
130
- this.menuRef.current && this.menuRef.current.contains(target) ? true : false;
131
- const clickOnToggle =
132
- toggleRef && toggleRef.current && toggleRef.current.contains(target) ? true : false;
133
-
134
- if (!isResizing && !clickInside && !clickOnToggle) {
135
- this.cancelRender(true);
136
- }
137
- };
138
-
139
- private cancelRender = (forced: boolean = false): void => {
140
- const { onOutsideClick } = this.props;
141
-
142
- window.removeEventListener('mousedown', this.clickHandler);
143
-
144
- if (forced) {
145
- onOutsideClick();
146
- }
147
- };
148
-
149
55
  public render() {
150
56
  const {
151
- assetUploads: { uploads },
152
- editor: {
153
- showUploadsMenu,
154
- assetUploads: {
155
- tagByDelimiter,
156
- delimiter,
157
- assignToStory,
158
- tagByFileName,
159
- tagManually,
160
- manualTags
161
- }
57
+ assetUploads: {
58
+ uploads,
59
+ assignToStory,
60
+ tagByFileName,
61
+ tagByDelimiter,
62
+ delimiter,
63
+ tagManually,
64
+ manualTags
162
65
  },
163
- assetTags
66
+ assetTags,
67
+ editor: { fromCrM }
164
68
  } = this.props;
165
- const disable = uploads.length > 0 ? false : true;
166
-
167
69
  let uploadsListInner;
168
- const uploading = [];
169
70
  if (uploads.length > 0) {
170
71
  uploadsListInner = uploads.map((u: any) => {
171
- const { filename, percent, tags } = u;
172
-
173
- if (percent === 0) {
174
- const closeButton = (
175
- <Button
176
- key='btn-cancel'
177
- onClick={() => this.handleCancelAssetUpload(filename)}
178
- style='subtle'
179
- size='small'>
180
- {ICON_TIMES}
181
- </Button>
72
+ const { filename, percent } = u;
73
+ const loader =
74
+ percent < 100 ? (
75
+ <DeterminateLoader progress={u.percent} />
76
+ ) : (
77
+ <span>{copy.uploads.preparePhase}</span>
182
78
  );
183
-
184
- const fileTags = tags.map((tag: string) => (
185
- <Tag
186
- key={tag}
187
- copy={tag}
188
- colorize={AssetsTableTagsPivot.COLORIZE_TAGS}
189
- />
190
- ));
191
- return (
192
- <div
193
- className='ongoing-upload'
194
- key={filename}>
195
- <div className='ongoing-upload-inner'>
196
- <input
197
- className='upload-filename'
198
- value={filename}
199
- readOnly
200
- />
201
- <div className='tags-column'>{fileTags}</div>
202
- {closeButton}
203
- </div>
79
+ const closeButton = percent < 100 && (
80
+ <Button
81
+ key='btn-cancel'
82
+ onClick={() => this.handleCancelAssetUpload(filename)}
83
+ style='subtle'
84
+ size='small'>
85
+ {copy.uploads.cancelButton}
86
+ </Button>
87
+ );
88
+
89
+ return (
90
+ <div
91
+ className='ongoing-upload'
92
+ key={filename}>
93
+ <div className='ongoing-upload-inner'>
94
+ <div className='upload-filename'>{filename}</div>
95
+ {closeButton}
204
96
  </div>
205
- );
206
- } else {
207
- uploading.push(true);
208
- }
97
+ {loader}
98
+ </div>
99
+ );
209
100
  });
210
101
  } else {
211
102
  uploadsListInner = <div className='no-ongoing-uploads'>{copy.uploads.noUploads}</div>;
212
103
  }
213
104
 
214
- if (uploading.length === uploads.length) {
215
- uploadsListInner = <div className='no-ongoing-uploads'>{copy.uploads.noUploads}</div>;
216
- }
217
-
218
105
  const delimiterSelector = tagByDelimiter && (
219
106
  <SelectField
220
107
  width='35%'
221
108
  options={DELIMITER_OPTIONS}
222
109
  value={delimiter}
223
- onChange={(c) => {
224
- this.uploadsSetting({ delimiter: c });
225
- }}
110
+ onChange={(c) => this.props.setDelimiter(c)}
226
111
  />
227
112
  );
228
-
229
113
  const tagsArray = [...new Set(manualTags)];
230
-
231
114
  const tagsMarkup = tagsArray.map((tag: string) => (
232
115
  <Tag
233
116
  key={tag}
234
117
  copy={tag}
235
118
  colorize={AssetsTableTagsPivot.COLORIZE_TAGS}
236
- removeHandler={() => {
237
- this.deleteManualTag(tag);
238
- }}
119
+ removeHandler={() => this.props.deleteManualTag(tag)}
239
120
  />
240
121
  ));
241
-
242
122
  const removeTagsBtn =
243
123
  tagsArray.length > 0 ? (
244
124
  <Button
245
125
  tooltip='Remove All Tags'
246
126
  style='sublte'
247
- onClick={() => {
248
- this.uploadsSetting({ manualTags: [] });
249
- }}>
127
+ onClick={() => this.props.deleteManualTags()}>
250
128
  <FontAwesomeIcon icon={faEraser} />
251
129
  </Button>
252
130
  ) : null;
253
-
254
131
  const tagsColumn = tagManually && (
255
132
  <div className='tags-column'>
256
133
  <TextField
@@ -259,107 +136,48 @@ class AssetsUploadMenu extends React.PureComponent<IAssetsUploadMenuProps, IAsse
259
136
  suggestions={assetTags}
260
137
  label={copy.tags.add}
261
138
  width={AssetsTableTagsPivot.ADD_TAG_INPUT_WIDTH}
262
- doSubmit={(t) => {
263
- this.addManualTag(t);
264
- }}
139
+ doSubmit={(t) => this.props.addManualTag(t)}
265
140
  />
266
141
  {tagsMarkup}
267
142
  {removeTagsBtn}
268
143
  </div>
269
144
  );
270
145
 
271
- const modifier = this.state.assetOver ? 'asset-over' : '';
272
- const show = this.props.show ? 'show' : '';
273
- const tableHover = this.props.tableHover ? 'table-hover' : '';
274
- const width = document.getElementsByClassName('assetUploads')[0]?.clientWidth;
275
-
276
146
  return (
277
- <AssetsTableDropzone
278
- className={`uploads-dropzone ${show} ${tableHover} ${modifier}`}
279
- onDrop={(i, m) => {
280
- this.props.onDrop(i, m);
281
- }}
282
- onExternalCollect={(o) => this.checkHover(o)}>
283
- <div className='overlay'>
284
- <p style={{ display: this.state.assetOver ? 'block' : 'none' }}>
285
- {copy.dropAsset}
286
- </p>
287
- </div>
288
- <div
289
- className='uploads-menu'
290
- style={{ width }}
291
- ref={this.menuRef}>
292
- <div className='uploads-controls'>
293
- <CheckboxField
294
- width='50%'
295
- label={copy.uploads.autoTagDelimiter}
296
- value={tagByDelimiter}
297
- onChange={() => {
298
- this.uploadsSetting({ tagByDelimiter: !tagByDelimiter });
299
- }}
300
- />
301
- {delimiterSelector}
302
- <CheckboxField
303
- width='50%'
304
- label={copy.uploads.manualTagging}
305
- value={tagManually}
306
- onChange={() => {
307
- this.uploadsSetting({ tagManually: !tagManually });
308
- }}
309
- />
310
- <CheckboxField
311
- width='50%'
312
- label={copy.uploads.autoTagFilname}
313
- value={tagByFileName}
314
- onChange={() => {
315
- this.uploadsSetting({ tagByFileName: !tagByFileName });
316
- }}
317
- />
147
+ <div className='uploads-menu'>
148
+ <div className='uploads-controls'>
149
+ <CheckboxField
150
+ width='50%'
151
+ label={copy.uploads.autoTagDelimiter}
152
+ value={tagByDelimiter}
153
+ onChange={() => this.props.toggleTagDelimiter(!tagByDelimiter)}
154
+ />
155
+ {delimiterSelector}
156
+ <CheckboxField
157
+ width='50%'
158
+ label={copy.uploads.manualTagging}
159
+ value={tagManually}
160
+ onChange={() => this.props.toggleManualTagging(!tagManually)}
161
+ />
162
+ <CheckboxField
163
+ width='50%'
164
+ label={copy.uploads.autoTagFilname}
165
+ value={tagByFileName}
166
+ onChange={() => this.props.toggleTagFileName(!tagByFileName)}
167
+ />
168
+ {!fromCrM && (
318
169
  <CheckboxField
319
170
  width='50%'
320
171
  label={copy.uploads.assignToProjectInput}
321
172
  info={copy.uploads.assignToProjectInfo}
322
- value={!assignToStory}
323
- onChange={() => this.uploadsSetting({ assignToStory: !assignToStory })}
324
- />
325
- </div>
326
- {tagsColumn}
327
- <div className='uploads-list'>{uploadsListInner}</div>
328
- <div className='uploads-confirm'>
329
- <CheckboxField
330
- label={`Don't show again`}
331
- value={!showUploadsMenu}
332
- onChange={() =>
333
- this.props.updateEditorConfig({
334
- showUploadsMenu: !showUploadsMenu
335
- })
336
- }
173
+ value={assignToStory}
174
+ onChange={() => this.props.toggleAssignToStory(!assignToStory)}
337
175
  />
338
- <Button
339
- key='cancel-upload'
340
- onClick={() => this.cancelUploadHandler(disable)}
341
- customStyles={{
342
- color: 'black'
343
- }}
344
- style='bold'
345
- color='secondary'
346
- width='60px'
347
- size='small'>
348
- Cancel
349
- </Button>
350
- <Button
351
- key='upload-file'
352
- disabled={disable}
353
- onClick={() => this.uploadFileHandler()}
354
- style='bold'
355
- color='primary'
356
- width='80px'
357
- size='small'>
358
- Upload {ICON_UPLOAD}
359
- </Button>
360
- </div>
176
+ )}
361
177
  </div>
362
- </AssetsTableDropzone>
178
+ {tagsColumn}
179
+ <div className='uploads-list'>{uploadsListInner}</div>
180
+ </div>
363
181
  );
364
182
  }
365
183
  }
@@ -367,10 +185,15 @@ class AssetsUploadMenu extends React.PureComponent<IAssetsUploadMenuProps, IAsse
367
185
  const mapDispatchToProps = (dispatch): any => {
368
186
  return bindActionCreators(
369
187
  {
188
+ toggleAssignToStory,
189
+ toggleTagFileName,
370
190
  cancelAssetUpload,
371
- cancelNonUploadedAssets,
372
- uploadingAsset,
373
- updateUploadTags
191
+ toggleTagDelimiter,
192
+ setDelimiter,
193
+ toggleManualTagging,
194
+ addManualTag,
195
+ deleteManualTag,
196
+ deleteManualTags
374
197
  },
375
198
  dispatch
376
199
  );
@@ -379,8 +202,8 @@ const mapDispatchToProps = (dispatch): any => {
379
202
  const mapStateToProps = (state): any => {
380
203
  return {
381
204
  assetUploads: state.assetUploads,
382
- assetTags: state.assetTags,
383
- editor: state.editor
205
+ editor: state.editor,
206
+ assetTags: state.assetTags
384
207
  };
385
208
  };
386
209
 
@@ -5,16 +5,18 @@ import AuthService, { IIdentity } from '../../services/Auth0';
5
5
  import { connect } from 'react-redux';
6
6
  import { bindActionCreators } from 'redux';
7
7
  import { login } from '../../redux/actions/auth';
8
- import { cacheAccessData } from '../../redux/actions/access';
8
+ import { setAccessData } from '../../redux/actions/access';
9
9
 
10
10
  interface IAuthGateProps {
11
11
  auth0ClientId: string;
12
12
  auth0Domain: string;
13
13
  auth0Hash: string;
14
- onAuthenticated: () => any;
14
+ onAuthenticated: (storyId, orgId) => any;
15
+ storyId: string;
16
+ organizationId: string;
15
17
  baseUrl?: string;
18
+ setAccessData(accessData: any): any;
16
19
  login: (id: IIdentity) => any;
17
- cacheAccessData: (accessData: any) => any;
18
20
  }
19
21
 
20
22
  class AuthGate extends React.PureComponent<IAuthGateProps> {
@@ -34,12 +36,16 @@ class AuthGate extends React.PureComponent<IAuthGateProps> {
34
36
  } else {
35
37
  AuthService.parseIdFromHash(auth0Hash)
36
38
  .then((freshIdentity: IIdentity) => {
37
- SessionService.getAccessData(freshIdentity.idToken, baseUrl)
39
+ // Use the cached org ID and story ID if it exists
40
+ const orgId = SessionService.getCachedOrgId() || null;
41
+ const storyId = SessionService.getCachedStoryId() || null;
42
+
43
+ SessionService.getAccessData(freshIdentity.idToken, baseUrl, false, orgId)
38
44
  .then((freshAccess: any) => {
39
45
  this.props.login(freshIdentity);
40
- this.props.cacheAccessData(freshAccess);
41
- SessionService.buildFreshSession(freshIdentity, freshAccess);
42
- onAuthenticated();
46
+ this.props.setAccessData(freshAccess);
47
+ SessionService.buildFreshSession(freshIdentity, orgId, storyId);
48
+ onAuthenticated(storyId, orgId);
43
49
  })
44
50
  .catch((e) => {
45
51
  AuthService.login();
@@ -64,7 +70,7 @@ const mapDispatchToProps = (dispatch) => {
64
70
  return bindActionCreators(
65
71
  {
66
72
  login,
67
- cacheAccessData
73
+ setAccessData
68
74
  },
69
75
  dispatch
70
76
  );
@@ -12,7 +12,7 @@ interface IButtonGroupOption {
12
12
  }
13
13
 
14
14
  interface IButtonGroupFieldProps {
15
- label?: any;
15
+ label?: string;
16
16
  width?: string | number;
17
17
  value: string | boolean;
18
18
  options: IButtonGroupOption[];
@@ -4,7 +4,7 @@ import { IToolTipConfig } from '../Tooltip';
4
4
  import { ICON_CHECK } from '../../constants/icons';
5
5
 
6
6
  interface ICheckboxFieldProps {
7
- label?: any;
7
+ label?: string;
8
8
  value: boolean;
9
9
  width?: string | number;
10
10
  tooltip?: IToolTipConfig | string;
@@ -1,11 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import FieldWrapper from '../field-wrapper/FieldWrapper';
3
3
  import { IToolTipConfig } from '../Tooltip';
4
- import { SketchPicker } from '@imposium-hub/react-color';
4
+ import { SketchPicker } from 'react-color';
5
5
 
6
6
  interface IColorFieldProps {
7
7
  buttons?: any;
8
- label?: any;
8
+ label?: string;
9
9
  placeholder?: string;
10
10
  readOnly?: boolean;
11
11
  value: string;
@@ -29,7 +29,7 @@ class ColorField extends React.PureComponent<IColorFieldProps, IColorFieldState>
29
29
 
30
30
  private picker: any;
31
31
 
32
- private transparentBg = `url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADBJREFUOE9jPHPmzH8GPMDY2BifNAPjqAHDIgz+//+PNx2cPXsWfzoYNYCBceiHAQD1OVMJc/dYeAAAAABJRU5ErkJggg==") left center`;
32
+ private transparentBg = `url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==") left center`;
33
33
 
34
34
  constructor(props) {
35
35
  super(props);
@@ -19,8 +19,6 @@ const ContextMenu = ({
19
19
  }) => {
20
20
  const contextMenuEl = useRef(null);
21
21
  const [isVisible, setVisible] = useState(false);
22
- const [top, setTop] = useState('');
23
- const [left, setLeft] = useState('');
24
22
  const [clientPosition, setClientPosition] = useState(null);
25
23
 
26
24
  const showMenu = (e) => {
@@ -109,8 +107,8 @@ const ContextMenu = ({
109
107
  if (windowInnerHeight < clientY + elemHeight) newClientY = clientY - elemHeight;
110
108
  if (windowInnerWidth < clientX + elemWidth) newClientX = clientX - elemWidth;
111
109
 
112
- setTop(`${newClientY + 2}px`);
113
- setLeft(`${newClientX + 2}px`);
110
+ contextMenuEl.current.style.top = `${newClientY + 2}px`;
111
+ contextMenuEl.current.style.left = `${newClientX + 2}px`;
114
112
 
115
113
  if (onShow) onShow();
116
114
  }
@@ -120,18 +118,15 @@ const ContextMenu = ({
120
118
  React.cloneElement(child, { id })
121
119
  );
122
120
 
123
- const ContextComponent = () => {
124
- return (
125
- <div
126
- className={`contextmenu`}
127
- ref={contextMenuEl}
128
- style={{ top, left }}
129
- onMouseLeave={handleMouseLeave}
130
- {...attributes}>
131
- {childrenWithProps}
132
- </div>
133
- );
134
- };
121
+ const ContextComponent = () => (
122
+ <div
123
+ className={`contextmenu`}
124
+ ref={contextMenuEl}
125
+ onMouseLeave={handleMouseLeave}
126
+ {...attributes}>
127
+ {childrenWithProps}
128
+ </div>
129
+ );
135
130
 
136
131
  const PortalContextComponent = () =>
137
132
  ReactDOM.createPortal(<ContextComponent />, document.querySelector(appendTo));
@@ -265,7 +265,7 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
265
265
  {...column.getHeaderProps()}
266
266
  className={`ip-table-header ${
267
267
  column.canSort ? 'ip-sortable' : ''
268
- } ${column.pin ? 'pin' : ''}`}>
268
+ }`}>
269
269
  {!searchable && (
270
270
  <div
271
271
  {...toggleProps}
@@ -371,7 +371,7 @@ const DataTable: React.FC<IDataTableProps> = (props: IDataTableProps) => {
371
371
  {...cell.getCellProps()}
372
372
  className={`ip-table-col ${
373
373
  cell.column.overflowVisible ? 'overflow-visible' : ''
374
- } ${cell.column.pin ? 'pin' : ''}`.trim()}>
374
+ }`.trim()}>
375
375
  {cell.render('Cell')}
376
376
  </td>
377
377
  ));