@orangelogic/orange-dam-content-browser-sdk 2.1.54 → 2.1.57

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 (281) hide show
  1. package/build/ApiService.d.ts +15 -0
  2. package/build/App.d.ts +62 -0
  3. package/build/AppContext.d.ts +18 -0
  4. package/build/GlobalConfigContext.d.ts +33 -0
  5. package/build/OrangeDAMContentBrowserSDK.min.css +2 -0
  6. package/build/OrangeDAMContentBrowserSDK.min.css.map +1 -0
  7. package/build/OrangeDAMContentBrowserSDK.min.js +11481 -0
  8. package/build/OrangeDAMContentBrowserSDK.min.js.map +1 -0
  9. package/build/asset-manifest.json +13 -0
  10. package/build/components/ArrayClamp/ArrayClamp.d.ts +10 -0
  11. package/build/components/ArrayClamp/ArrayClamp.styled.d.ts +1 -0
  12. package/build/components/ArrayClamp/index.d.ts +1 -0
  13. package/build/components/Browser/Browser.constants.d.ts +3 -0
  14. package/build/components/Browser/Browser.d.ts +22 -0
  15. package/build/components/Browser/Browser.styled.d.ts +2 -0
  16. package/build/components/Browser/BrowserItem.d.ts +13 -0
  17. package/build/components/Browser/LoadMoreButton.d.ts +9 -0
  18. package/build/components/ControlBar/ControlBar.constants.d.ts +10 -0
  19. package/build/components/ControlBar/ControlBar.d.ts +23 -0
  20. package/build/components/ControlBar/ControlBar.styled.d.ts +1 -0
  21. package/build/components/ControlBar/Facet/Facet.d.ts +14 -0
  22. package/build/components/ControlBar/Facet/index.d.ts +1 -0
  23. package/build/components/FormatDialog/CropPreviewer/CropPreviewer.d.ts +41 -0
  24. package/{src/components/FormatDialog/CropPreviewer/index.ts → build/components/FormatDialog/CropPreviewer/index.d.ts} +1 -1
  25. package/build/components/FormatDialog/CustomRendition/CustomRendition.constants.d.ts +5 -0
  26. package/build/components/FormatDialog/CustomRendition/CustomRendition.d.ts +56 -0
  27. package/build/components/FormatDialog/CustomRendition/CustomRendition.styled.d.ts +1 -0
  28. package/build/components/FormatDialog/CustomRendition/index.d.ts +1 -0
  29. package/build/components/FormatDialog/CustomRendition/transformations/Crop.d.ts +26 -0
  30. package/build/components/FormatDialog/CustomRendition/transformations/Extension.d.ts +11 -0
  31. package/build/components/FormatDialog/CustomRendition/transformations/Format.d.ts +10 -0
  32. package/build/components/FormatDialog/CustomRendition/transformations/Metadata.d.ts +7 -0
  33. package/build/components/FormatDialog/CustomRendition/transformations/Quality.d.ts +7 -0
  34. package/build/components/FormatDialog/CustomRendition/transformations/Resize.d.ts +18 -0
  35. package/build/components/FormatDialog/CustomRendition/transformations/Rotate.d.ts +8 -0
  36. package/{src/components/FormatDialog/CustomRendition/transformations/index.ts → build/components/FormatDialog/CustomRendition/transformations/index.d.ts} +3 -1
  37. package/build/components/FormatDialog/FormatDialog.d.ts +49 -0
  38. package/build/components/FormatDialog/FormatDialog.styled.d.ts +3 -0
  39. package/build/components/FormatDialog/Previewer/Previewer.d.ts +17 -0
  40. package/build/components/FormatDialog/Previewer/Previewer.styled.d.ts +1 -0
  41. package/build/components/FormatDialog/Previewer/index.d.ts +1 -0
  42. package/build/components/FormatDialog/ProxyMenu/ProxyMenu.d.ts +20 -0
  43. package/build/components/FormatDialog/ProxyMenu/ProxyMenu.styled.d.ts +2 -0
  44. package/build/components/FormatDialog/ProxyMenu/index.d.ts +1 -0
  45. package/build/components/FormatDialog/TrackingParameters/TrackingParameters.d.ts +13 -0
  46. package/build/components/FormatDialog/TrackingParameters/index.d.ts +1 -0
  47. package/build/components/FormatDialog/VersionHistory/VersionHistory.d.ts +6 -0
  48. package/build/components/FormatDialog/VersionHistory/VersionHistory.styled.d.ts +1 -0
  49. package/build/components/FormatDialog/VersionHistory/index.d.ts +1 -0
  50. package/build/components/FormatDialog/index.d.ts +1 -0
  51. package/build/components/Header/Header.d.ts +15 -0
  52. package/build/components/Header/Header.styled.d.ts +5 -0
  53. package/build/components/Loader/Loader.d.ts +7 -0
  54. package/build/components/Loader/index.d.ts +1 -0
  55. package/build/components/NoResult/NoResult.d.ts +7 -0
  56. package/build/components/NoResult/index.d.ts +1 -0
  57. package/build/components/Result/AssetCard/AssetCard.d.ts +15 -0
  58. package/build/components/Result/AssetCard/AssetCard.styled.d.ts +2 -0
  59. package/build/components/Result/AssetCard/AssetCardWrapper.d.ts +18 -0
  60. package/build/components/Result/AssetCard/AssetCardWrapper.styled.d.ts +1 -0
  61. package/build/components/Result/AssetCard/index.d.ts +1 -0
  62. package/build/components/Result/AssetPreview/AssetPreview.d.ts +11 -0
  63. package/build/components/Result/AssetPreview/AssetPreview.styled.d.ts +1 -0
  64. package/build/components/Result/AssetPreview/ImagePreview/ImagePreview.d.ts +11 -0
  65. package/build/components/Result/AssetPreview/ImagePreview/index.d.ts +1 -0
  66. package/build/components/Result/AssetPreview/OtherPreview/OtherPreview.d.ts +9 -0
  67. package/build/components/Result/AssetPreview/OtherPreview/OtherPreview.styled.d.ts +1 -0
  68. package/build/components/Result/AssetPreview/OtherPreview/index.d.ts +1 -0
  69. package/build/components/Result/AssetPreview/VideoPreview/VideoPreview.d.ts +11 -0
  70. package/build/components/Result/AssetPreview/VideoPreview/index.d.ts +1 -0
  71. package/build/components/Result/AssetPreview/index.d.ts +1 -0
  72. package/build/consts/asset.d.ts +14 -0
  73. package/build/consts/auth.d.ts +4 -0
  74. package/build/consts/data.d.ts +21 -0
  75. package/build/index.d.ts +229 -0
  76. package/build/index.html +1 -0
  77. package/build/page/Authenticate/Authenticate.d.ts +2 -0
  78. package/build/page/Authenticate/ConnectingBackground.d.ts +8 -0
  79. package/build/page/Authenticate/index.d.ts +2 -0
  80. package/build/page/Home/Home.d.ts +6 -0
  81. package/build/page/Home/Home.styled.d.ts +2 -0
  82. package/build/setupTests.d.ts +1 -0
  83. package/build/store/assets/assets.api.d.ts +66 -0
  84. package/build/store/assets/assets.service.d.ts +23 -0
  85. package/build/store/assets/assets.slice.d.ts +65 -0
  86. package/build/store/auth/auth.service.d.ts +10 -0
  87. package/build/store/auth/auth.slice.d.ts +76 -0
  88. package/build/store/index.d.ts +368 -0
  89. package/build/store/search/search.api.d.ts +39 -0
  90. package/build/store/search/search.slice.d.ts +12 -0
  91. package/build/store/user/user.api.d.ts +5 -0
  92. package/build/types/assets.d.ts +68 -0
  93. package/build/types/auth.d.ts +35 -0
  94. package/build/types/common.d.ts +11 -0
  95. package/build/types/download.d.ts +8 -0
  96. package/build/types/navigation.d.ts +3 -0
  97. package/build/types/search.d.ts +148 -0
  98. package/{src/types/storage.ts → build/types/storage.d.ts} +1 -1
  99. package/build/types/user.d.ts +7 -0
  100. package/build/utils/api.d.ts +27 -0
  101. package/build/utils/array.d.ts +13 -0
  102. package/build/utils/constants.d.ts +11 -0
  103. package/build/utils/function.d.ts +1 -0
  104. package/build/utils/getRequestUrl.d.ts +1 -0
  105. package/build/utils/hooks.d.ts +1 -0
  106. package/build/utils/icon.d.ts +3 -0
  107. package/build/utils/image.d.ts +24 -0
  108. package/build/utils/number.d.ts +4 -0
  109. package/build/utils/rotate.d.ts +4 -0
  110. package/build/utils/storage.d.ts +23 -0
  111. package/build/utils/string.d.ts +12 -0
  112. package/build/view/AssetsPicker.d.ts +6 -0
  113. package/package.json +49 -8
  114. package/.env +0 -1
  115. package/.eslintignore +0 -2
  116. package/.eslintrc.json +0 -82
  117. package/.releaserc +0 -17
  118. package/.travis.yml +0 -20
  119. package/CBSDKdemo.html +0 -315
  120. package/GitVersion.yml +0 -18
  121. package/azure-pipeline.yaml +0 -93
  122. package/clientlib.config.js +0 -36
  123. package/config/env.js +0 -105
  124. package/config/getHttpsConfig.js +0 -67
  125. package/config/jest/babelTransform.js +0 -30
  126. package/config/jest/cssTransform.js +0 -14
  127. package/config/jest/fileTransform.js +0 -41
  128. package/config/modules.js +0 -135
  129. package/config/paths.js +0 -79
  130. package/config/webpack/persistentCache/createEnvironmentHash.js +0 -10
  131. package/config/webpack.config.js +0 -762
  132. package/config/webpackDevServer.config.js +0 -128
  133. package/config-overrides.js +0 -8
  134. package/gab_extension/GAB.html +0 -85
  135. package/gab_extension/GoogleChrome/manifest.json +0 -28
  136. package/gab_extension/GoogleChrome/src/assets/icon48.png +0 -0
  137. package/gab_extension/GoogleChrome/src/background/index.js +0 -6
  138. package/gab_extension/GoogleChrome/src/scripts/index.js +0 -347
  139. package/gab_extension/MozillaFirefox/manifest.json +0 -20
  140. package/gab_extension/MozillaFirefox/src/assets/icon.png +0 -0
  141. package/gab_extension/MozillaFirefox/src/background/index.js +0 -5
  142. package/gab_extension/MozillaFirefox/src/scripts/index.js +0 -347
  143. package/gab_extension/README.md +0 -11
  144. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Orange DAM Asset Browser Extension.xcodeproj/project.pbxproj +0 -927
  145. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Orange DAM Asset Browser Extension.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  146. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Orange DAM Asset Browser Extension.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  147. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Orange DAM Asset Browser Extension.xcodeproj/project.xcworkspace/xcuserdata/oldevmac01.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  148. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Orange DAM Asset Browser Extension.xcodeproj/xcuserdata/oldevmac01.xcuserdatad/xcschemes/xcschememanagement.plist +0 -19
  149. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Shared (App)/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  150. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Shared (App)/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -63
  151. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Shared (App)/Assets.xcassets/Contents.json +0 -6
  152. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Shared (App)/Assets.xcassets/LargeIcon.imageset/Contents.json +0 -20
  153. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Shared (App)/Base.lproj/Main.html +0 -23
  154. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Shared (App)/Resources/Icon.png +0 -0
  155. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Shared (App)/Resources/Script.js +0 -24
  156. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Shared (App)/Resources/Style.css +0 -61
  157. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Shared (App)/ViewController.swift +0 -81
  158. package/gab_extension/Safari/Orange DAM Asset Browser Extension/Shared (Extension)/SafariWebExtensionHandler.swift +0 -26
  159. package/gab_extension/Safari/Orange DAM Asset Browser Extension/iOS (App)/AppDelegate.swift +0 -24
  160. package/gab_extension/Safari/Orange DAM Asset Browser Extension/iOS (App)/Base.lproj/LaunchScreen.storyboard +0 -36
  161. package/gab_extension/Safari/Orange DAM Asset Browser Extension/iOS (App)/Base.lproj/Main.storyboard +0 -38
  162. package/gab_extension/Safari/Orange DAM Asset Browser Extension/iOS (App)/Info.plist +0 -27
  163. package/gab_extension/Safari/Orange DAM Asset Browser Extension/iOS (App)/SceneDelegate.swift +0 -18
  164. package/gab_extension/Safari/Orange DAM Asset Browser Extension/iOS (Extension)/Info.plist +0 -13
  165. package/gab_extension/Safari/Orange DAM Asset Browser Extension/macOS (App)/AppDelegate.swift +0 -21
  166. package/gab_extension/Safari/Orange DAM Asset Browser Extension/macOS (App)/Base.lproj/Main.storyboard +0 -125
  167. package/gab_extension/Safari/Orange DAM Asset Browser Extension/macOS (App)/Info.plist +0 -8
  168. package/gab_extension/Safari/Orange DAM Asset Browser Extension/macOS (App)/Orange DAM Asset Browser Extension.entitlements +0 -12
  169. package/gab_extension/Safari/Orange DAM Asset Browser Extension/macOS (Extension)/Info.plist +0 -13
  170. package/gab_extension/Safari/Orange DAM Asset Browser Extension/macOS (Extension)/Orange DAM Asset Browser Extension.entitlements +0 -10
  171. package/public/index.html +0 -92
  172. package/scripts/build.js +0 -218
  173. package/scripts/start.js +0 -154
  174. package/scripts/test.js +0 -53
  175. package/src/App.tsx +0 -98
  176. package/src/AppContext.ts +0 -18
  177. package/src/GlobalConfigContext.ts +0 -46
  178. package/src/components/ArrayClamp/ArrayClamp.styled.ts +0 -42
  179. package/src/components/ArrayClamp/ArrayClamp.tsx +0 -167
  180. package/src/components/ArrayClamp/index.ts +0 -1
  181. package/src/components/Browser/Browser.styled.ts +0 -82
  182. package/src/components/Browser/Browser.tsx +0 -284
  183. package/src/components/Browser/BrowserItem.tsx +0 -98
  184. package/src/components/ControlBar/ControlBar.constants.tsx +0 -66
  185. package/src/components/ControlBar/ControlBar.styled.ts +0 -82
  186. package/src/components/ControlBar/ControlBar.tsx +0 -528
  187. package/src/components/ControlBar/Facet/Facet.tsx +0 -113
  188. package/src/components/ControlBar/Facet/index.ts +0 -1
  189. package/src/components/FormatDialog/CropPreviewer/CropPreviewer.tsx +0 -224
  190. package/src/components/FormatDialog/CustomRendition/CustomRendition.constants.ts +0 -24
  191. package/src/components/FormatDialog/CustomRendition/CustomRendition.styled.ts +0 -57
  192. package/src/components/FormatDialog/CustomRendition/CustomRendition.tsx +0 -178
  193. package/src/components/FormatDialog/CustomRendition/index.ts +0 -1
  194. package/src/components/FormatDialog/CustomRendition/transformations/Crop.tsx +0 -249
  195. package/src/components/FormatDialog/CustomRendition/transformations/Extension.tsx +0 -54
  196. package/src/components/FormatDialog/CustomRendition/transformations/Format.tsx +0 -86
  197. package/src/components/FormatDialog/CustomRendition/transformations/Resize.tsx +0 -176
  198. package/src/components/FormatDialog/CustomRendition/transformations/Rotate.tsx +0 -101
  199. package/src/components/FormatDialog/FormatDialog.styled.ts +0 -137
  200. package/src/components/FormatDialog/FormatDialog.tsx +0 -1533
  201. package/src/components/FormatDialog/Previewer/Previewer.styled.ts +0 -31
  202. package/src/components/FormatDialog/Previewer/Previewer.tsx +0 -143
  203. package/src/components/FormatDialog/Previewer/index.ts +0 -1
  204. package/src/components/FormatDialog/ProxyMenu/ProxyMenu.styled.ts +0 -88
  205. package/src/components/FormatDialog/ProxyMenu/ProxyMenu.tsx +0 -74
  206. package/src/components/FormatDialog/ProxyMenu/index.ts +0 -1
  207. package/src/components/FormatDialog/TrackingParameters/TrackingParameters.tsx +0 -59
  208. package/src/components/FormatDialog/TrackingParameters/index.ts +0 -1
  209. package/src/components/FormatDialog/index.ts +0 -1
  210. package/src/components/Header/Header.styled.ts +0 -51
  211. package/src/components/Header/Header.tsx +0 -118
  212. package/src/components/Loader/Loader.tsx +0 -37
  213. package/src/components/Loader/index.ts +0 -1
  214. package/src/components/NoResult/NoResult.tsx +0 -37
  215. package/src/components/NoResult/index.tsx +0 -1
  216. package/src/components/Result/AssetCard/AssetCard.styled.ts +0 -120
  217. package/src/components/Result/AssetCard/AssetCard.tsx +0 -192
  218. package/src/components/Result/AssetCard/AssetCardWrapper.styled.ts +0 -35
  219. package/src/components/Result/AssetCard/AssetCardWrapper.tsx +0 -165
  220. package/src/components/Result/AssetCard/index.ts +0 -1
  221. package/src/components/Result/AssetPreview/AssetPreview.styled.ts +0 -108
  222. package/src/components/Result/AssetPreview/AssetPreview.tsx +0 -78
  223. package/src/components/Result/AssetPreview/ImagePreview/ImagePreview.tsx +0 -42
  224. package/src/components/Result/AssetPreview/ImagePreview/index.ts +0 -1
  225. package/src/components/Result/AssetPreview/OtherPreview/OtherPreview.styled.ts +0 -23
  226. package/src/components/Result/AssetPreview/OtherPreview/OtherPreview.tsx +0 -28
  227. package/src/components/Result/AssetPreview/OtherPreview/index.ts +0 -1
  228. package/src/components/Result/AssetPreview/VideoPreview/VideoPreview.tsx +0 -132
  229. package/src/components/Result/AssetPreview/VideoPreview/index.ts +0 -1
  230. package/src/components/Result/AssetPreview/index.ts +0 -1
  231. package/src/consts/asset.ts +0 -16
  232. package/src/consts/data.ts +0 -17
  233. package/src/index.tsx +0 -305
  234. package/src/page/Authenticate/Authenticate.tsx +0 -232
  235. package/src/page/Authenticate/ConnectingBackground.tsx +0 -44
  236. package/src/page/Authenticate/index.tsx +0 -94
  237. package/src/page/Home/Home.styled.ts +0 -46
  238. package/src/page/Home/Home.tsx +0 -941
  239. package/src/react-web-component.d.ts +0 -4617
  240. package/src/store/assets/assets.api.ts +0 -167
  241. package/src/store/assets/assets.service.ts +0 -223
  242. package/src/store/assets/assets.slice.ts +0 -104
  243. package/src/store/auth/auth.service.ts +0 -71
  244. package/src/store/auth/auth.slice.ts +0 -295
  245. package/src/store/index.ts +0 -27
  246. package/src/store/search/search.api.ts +0 -319
  247. package/src/store/search/search.slice.ts +0 -28
  248. package/src/store/user/user.api.ts +0 -29
  249. package/src/styles.css +0 -42
  250. package/src/types/assets.ts +0 -71
  251. package/src/types/auth.ts +0 -42
  252. package/src/types/common.ts +0 -11
  253. package/src/types/download.ts +0 -8
  254. package/src/types/navigation.ts +0 -3
  255. package/src/types/search.ts +0 -116
  256. package/src/types/user.ts +0 -6
  257. package/src/utils/api.ts +0 -186
  258. package/src/utils/array.ts +0 -25
  259. package/src/utils/constants.ts +0 -12
  260. package/src/utils/fetch.ts +0 -116
  261. package/src/utils/getRequestUrl.ts +0 -15
  262. package/src/utils/hooks.ts +0 -36
  263. package/src/utils/icon.ts +0 -22
  264. package/src/utils/image.ts +0 -157
  265. package/src/utils/number.ts +0 -11
  266. package/src/utils/rotate.ts +0 -23
  267. package/src/utils/storage.ts +0 -184
  268. package/src/utils/string.ts +0 -24
  269. package/src/view/AssetsPicker.tsx +0 -24
  270. package/src/web-component.d.ts +0 -8151
  271. package/tsconfig.eslint.json +0 -10
  272. package/tsconfig.json +0 -37
  273. /package/{src/components/Browser/index.ts → build/components/Browser/index.d.ts} +0 -0
  274. /package/{src/components/ControlBar/index.ts → build/components/ControlBar/index.d.ts} +0 -0
  275. /package/{src/components/Header/index.ts → build/components/Header/index.d.ts} +0 -0
  276. /package/{public → build}/favicon.ico +0 -0
  277. /package/{public → build}/logo192.png +0 -0
  278. /package/{public → build}/logo512.png +0 -0
  279. /package/{public → build}/manifest.json +0 -0
  280. /package/{src/page/Home/index.ts → build/page/Home/index.d.ts} +0 -0
  281. /package/{public → build}/robots.txt +0 -0
@@ -1,167 +0,0 @@
1
- import { v4 as uuidv4 } from 'uuid';
2
-
3
- import { SortOrder } from '@/types/assets';
4
- import { Asset, MediaType, Proxy } from '@/types/search';
5
- import { AppBaseQuery } from '@/utils/api';
6
- import { hasElements, uniqueArray } from '@/utils/array';
7
- import { createApi } from '@reduxjs/toolkit/query/react';
8
-
9
- const Parameters = {
10
- ExtensionsThatSupportTransformationUsingATS: 'ExtensionsThatSupportTransformationUsingATS',
11
- EnableATSInGetLink: 'EnableATSInGetLink',
12
- CollectionSubtypeCriteria: 'CollectionSubtypeCriteria',
13
- SupportDocTypes: 'SupportDocTypes',
14
- RepresentativeSupportedDocSubType: 'RepresentativeSupportedDocSubType',
15
- ExtensionAuto: 'ExtensionAuto',
16
- };
17
-
18
- type GetAvailableProxiesRequest = {
19
- assetImages?: Asset[];
20
- docTypes?: string[];
21
- useSession?: string;
22
- };
23
-
24
- export type GetAvailableProxiesResponse = {
25
- previewUrl: string;
26
- proxies: Proxy[];
27
- };
28
-
29
- type GetAvailableExtensionsResponse = Record<MediaType, { displayName: string; value: string }[]>;
30
-
31
- /**
32
- * get query parameter for AvailableProxies_4ea_v2 API
33
- * @param {GetAvailableProxiesRequest}
34
- * @returns {string[][]}
35
- */
36
- const getAvailableProxiesAPIParams = ({ assetImages, docTypes, useSession }: GetAvailableProxiesRequest): string[][] => {
37
- let result = [];
38
- if (!hasElements(assetImages)) {
39
- docTypes = hasElements(docTypes) ? docTypes : Object.values(MediaType);
40
-
41
- result = uniqueArray(docTypes as string[]).map(docType => ['DocTypes', docType]);
42
- } else {
43
- const assetDocTypes = uniqueArray(assetImages as Asset[], (asset) => asset.docType)
44
- .map(asset => ['DocTypes', asset.docType]);
45
-
46
- result = (assetImages as Asset[]).map(asset => ['RecordID', asset.id]).concat(assetDocTypes);
47
- }
48
-
49
- if (useSession) {
50
- result.push(['UseSession', useSession]);
51
- }
52
-
53
- return result;
54
- };
55
-
56
- // Define a service using a base URL and expected endpoints
57
- export const assetsApi = createApi({
58
- reducerPath: 'assetsApi',
59
- baseQuery: AppBaseQuery,
60
- tagTypes: ['AvailableExtensions', 'AvailableProxies', 'Parameters', 'SortOrders'],
61
- endpoints: (builder) => ({
62
- getAvailableExtensions: builder.query<GetAvailableExtensionsResponse, void>({
63
- query: () => ({
64
- url: '/webapi/extensibility/integrations/gab/assetbrowser/getavailableextensionsfortransformation_419v_v1',
65
- }),
66
- transformResponse: (response: { extensions: GetAvailableExtensionsResponse }) => {
67
- return response.extensions;
68
- },
69
- providesTags: ['AvailableExtensions'],
70
- serializeQueryArgs: () => {
71
- return 'getAvailableExtensions';
72
- },
73
- }),
74
- getAvailableProxies: builder.query<GetAvailableProxiesResponse, GetAvailableProxiesRequest>({
75
- query: (request) => ({
76
- url: '/webapi/extensibility/integrations/contentBrowserSDK/AvailableProxies_4ea_v3?',
77
- params: getAvailableProxiesAPIParams(request),
78
- }),
79
- transformResponse: (response: { proxies: Proxy[]; previewUrl: string }) => {
80
- const { previewUrl, proxies } = response;
81
- return {
82
- previewUrl,
83
- proxies: proxies.map((proxy) => {
84
- return {
85
- ...proxy,
86
- id: uuidv4(),
87
- };
88
- }),
89
- };
90
- },
91
- serializeQueryArgs: ({ queryArgs }) => getAvailableProxiesAPIParams(queryArgs),
92
- providesTags: (_result, _error, _args) => ['AvailableProxies'],
93
- }),
94
- getParameters: builder.query<{
95
- ATSEnabled: boolean;
96
- autoExtension: string;
97
- collectionPath: string;
98
- supportedExtensions: string[];
99
- supportedRepresentativeSubtypes: string[];
100
- supportedDocTypes: string[];
101
- }, {
102
- useSession?: string;
103
- }>({
104
- query: ({ useSession }) => {
105
- const params = [];
106
-
107
- if (useSession) {
108
- params.push(['UseSession', useSession]);
109
- }
110
-
111
- return {
112
- url: '/webapi/configuration/parameters/getparameters_412Z_v1',
113
- params,
114
- };
115
- },
116
- transformResponse: (response: Record<string, string>) => {
117
- return {
118
- ATSEnabled: response[Parameters.EnableATSInGetLink].toLowerCase() === 'true',
119
- collectionPath: response[Parameters.CollectionSubtypeCriteria]?.toLowerCase() ?? '',
120
- supportedDocTypes: response[Parameters.SupportDocTypes]?.split(/\r?\n/) ?? [],
121
- supportedExtensions: response[Parameters.ExtensionsThatSupportTransformationUsingATS]?.split('\n') ?? [],
122
- supportedRepresentativeSubtypes: response[Parameters.RepresentativeSupportedDocSubType]?.split('\r\n') ?? [],
123
- autoExtension: response[Parameters.ExtensionAuto]?.toLowerCase() ?? '.auto',
124
- };
125
- },
126
- providesTags: ['Parameters'],
127
- }),
128
- getSortOrders: builder.query<Record<string, SortOrder[]>, {
129
- useSession?: string;
130
- }>({
131
- query: ({ useSession }) => ({
132
- url: '/webapi/extensibility/integrations/contentBrowserSDK/sortorders_4147',
133
- params: useSession ? [['UseSession', useSession]] : [],
134
- }),
135
- providesTags: ['SortOrders'],
136
- transformResponse: (response: { sortOrders: SortOrder[] }) => {
137
- const value = response.sortOrders.reduce((acc, item) => {
138
- const id = (item.sortDirectionGroupKey || item.name).trim().toLowerCase();
139
-
140
- acc[id] = [...(acc[id] ?? []), item];
141
-
142
- return acc;
143
- }, {} as Record<string, SortOrder[]>);
144
-
145
- Object.keys(value).forEach((key) => {
146
- const sortOrder = value[key];
147
- if (sortOrder.length === 1) {
148
- sortOrder[0].sortDirection = 'Mono';
149
- }
150
- });
151
-
152
- return value;
153
- },
154
- }),
155
- }),
156
- });
157
-
158
- // < { proxies: { [key: string]: string } }, void>
159
-
160
- // Export hooks for usage in functional components, which are
161
- // auto-generated based on the defined endpoints
162
- export const {
163
- useGetAvailableExtensionsQuery,
164
- useGetAvailableProxiesQuery,
165
- useGetParametersQuery,
166
- useGetSortOrdersQuery,
167
- } = assetsApi;
@@ -1,223 +0,0 @@
1
- import { store } from '@/store';
2
- import { CortexErrorResponse } from '@/types/common';
3
- import { Asset, GetAssetLinkResponse } from '@/types/search';
4
- import { cortexFetch } from '@/utils/api';
5
-
6
- import { assetsApi } from './assets.api';
7
- import { TrackingParameter, Transformation, TransformationAction } from '@/types/assets';
8
-
9
- export const getAssetLinks = async (
10
- {
11
- assets,
12
- extraFields,
13
- permanentLink,
14
- proxyPreference,
15
- transformations,
16
- parameters,
17
- extension,
18
- useSession,
19
- }: {
20
- assets: Asset[];
21
- extraFields?: string;
22
- permanentLink?: string;
23
- proxyPreference?: string;
24
- transformations?: Transformation[];
25
- parameters?: TrackingParameter[];
26
- maxWidth?: number;
27
- maxHeight?: number;
28
- extension?: string;
29
- useSession?: string;
30
- },
31
- ): Promise<GetAssetLinkResponse[]> => {
32
- let baseUrl = '/webapi/extensibility/integrations/contentBrowserSDK/GetAssetLink_4by?';
33
- if (useSession) {
34
- baseUrl += `UseSession=${useSession}&`;
35
- }
36
- if (extraFields) {
37
- baseUrl += `ExtraFields=${extraFields}&`;
38
- }
39
- if (permanentLink) {
40
- baseUrl += `GenerateAssetUrl=${false}&`;
41
- }
42
- baseUrl += 'RecordId=';
43
-
44
- const getAssetLinkErrors: { [key: string]: Asset[] } = {};
45
- const failToImportAssets: string[] = [];
46
- const isOnlyOneAssetSelected = assets.length === 1;
47
- // Loop through all selected assets to replace Image url by IIIF urls
48
- const result = (await Promise.all(assets.map(async (asset) => {
49
- let url = baseUrl + asset.id;
50
- if (proxyPreference) {
51
- url += `&Proxy=${proxyPreference}`;
52
- }
53
- const response = await cortexFetch(url, { method: 'GET' });
54
- let responseData: GetAssetLinkResponse | CortexErrorResponse | null = null;
55
- responseData = await response.json();
56
-
57
- if (!response.ok || !responseData) {
58
- // We will give more details error message if only one asset was imported
59
- if (isOnlyOneAssetSelected && responseData) {
60
- const errorResponseData = responseData as CortexErrorResponse;
61
- if (!getAssetLinkErrors[errorResponseData.ErrorCode]) {
62
- getAssetLinkErrors[errorResponseData.ErrorCode] = [asset];
63
- } else {
64
- getAssetLinkErrors[errorResponseData.ErrorCode].push(asset);
65
- }
66
- } else {
67
- failToImportAssets.push(asset.name);
68
- }
69
- return {
70
- imageUrl: asset.imageUrl,
71
- } as GetAssetLinkResponse;
72
- }
73
-
74
- let imageUrl = permanentLink || (responseData as GetAssetLinkResponse).imageUrl;
75
-
76
- if (transformations && transformations.length > 0) {
77
- imageUrl += '/t/';
78
- }
79
-
80
- transformations?.forEach(({ key, value }) => {
81
- if (key === TransformationAction.Resize) {
82
- const validTransformations = [
83
- ...[
84
- {
85
- key: 're_w_',
86
- value: value.width,
87
- },
88
- {
89
- key: 're_h_',
90
- value: value.height,
91
- },
92
- ]
93
- .filter((item) => item.value !== undefined)
94
- .map((item) => ({
95
- key: item.key,
96
- value: Math.round(Number(item.value)),
97
- })),
98
- {
99
- key: 're_rm_',
100
- value: 'stretch',
101
- },
102
- ];
103
-
104
- validTransformations.forEach(({ key: vKey, value: vValue }, index) => {
105
- imageUrl += `${vKey}${vValue}${index < validTransformations.length - 1 ? ',' : ''}`;
106
- });
107
-
108
- imageUrl += '/';
109
- }
110
-
111
- if (key === TransformationAction.Crop) {
112
- const validTransformations = [
113
- ...[
114
- {
115
- key: 'c_w_',
116
- value: value.width,
117
- },
118
- {
119
- key: 'c_h_',
120
- value: value.height,
121
- },
122
- {
123
- key: 'c_x_',
124
- value: value.x,
125
- },
126
- {
127
- key: 'c_y_',
128
- value: value.y,
129
- },
130
- ]
131
- .filter((item) => item.value !== undefined)
132
- .map((item) => ({
133
- key: item.key,
134
- value: Math.round(Number(item.value)),
135
- })),
136
- {
137
- key: 'c_whu_',
138
- value: 'pixel',
139
- },
140
- ];
141
-
142
- validTransformations.forEach(({ key: vKey, value: vValue }, index) => {
143
- imageUrl += `${vKey}${vValue}${index < validTransformations.length - 1 ? ',' : ''}`;
144
- });
145
-
146
- imageUrl += '/';
147
- }
148
-
149
- if (key === TransformationAction.Rotate) {
150
- const validTransformations = [{
151
- key: 'r_a_',
152
- value: value.rotation,
153
- }].filter(item => item.value !== undefined).map(item => ({ key: item.key, value: Math.round(Number(item.value)) }));
154
-
155
- validTransformations.forEach(({ key: vKey, value: vValue }, index) => {
156
- imageUrl += `${vKey}${vValue}${index < validTransformations.length - 1 ? ',' : ''}`;
157
- });
158
-
159
- imageUrl += '/';
160
- }
161
- });
162
-
163
- if (transformations && transformations.length > 0) {
164
- imageUrl += `${asset.identifier}`;
165
- }
166
-
167
- if (!permanentLink) {
168
- imageUrl += `${extension ?? asset.extension}`;
169
- }
170
-
171
- const queryParams: string[] = [];
172
-
173
- if (parameters && parameters.length > 0) {
174
- parameters.forEach(({ key, value }) => {
175
- queryParams.push(`${encodeURIComponent(key.trim())}=${encodeURIComponent(value.trim())}`);
176
- });
177
- }
178
-
179
- if (useSession) {
180
- queryParams.push(`UseSession=${useSession}`);
181
- }
182
-
183
- if (queryParams.length > 0) {
184
- imageUrl += `?${queryParams.join('&')}`;
185
- }
186
-
187
- (responseData as GetAssetLinkResponse).imageUrl = imageUrl;
188
- return responseData as GetAssetLinkResponse;
189
- })));
190
-
191
- if (failToImportAssets.length > 0) {
192
- Object.entries(getAssetLinkErrors).reduce((acc, [errorCode, assetsWithError]) => {
193
- const namesOfAssetWithError = assetsWithError.map(asset => asset.name).join(', ');
194
-
195
- switch (errorCode) {
196
- case 'OL_ERR_001_NOTFOUND':
197
- acc.push(`${namesOfAssetWithError} not found`);
198
- break;
199
- case 'OL_ASSETLINKSERVICE_ERROR_001_LINKS_TO_NON_REQUIRED_FORMATS_NOT_ALLOWED':
200
- const proxies = assetsApi.endpoints.getAvailableProxies.select({})(store.getState()).data?.proxies;
201
- if (!proxies) {
202
- acc.push(`Failed to import ${namesOfAssetWithError}. Change the import proxy in Settings or re-check your permission`);
203
- }
204
- break;
205
- case 'OL_ERR_002_NOTALLOWED':
206
- acc.push(`You don't have permission to import ${namesOfAssetWithError}`);
207
- break;
208
- case 'OL_ERR_003_REMOVED':
209
- acc.push(`${namesOfAssetWithError} was removed`);
210
- break;
211
- case 'OL_ERR_006_BADREQUEST':
212
- default:
213
- acc.push(`Failed to import asset ${namesOfAssetWithError}`);
214
- break;
215
- }
216
- return acc;
217
- }, [] as string[]);
218
-
219
- throw new Error('Failed to import the following assets: ' + failToImportAssets.join('\n '));
220
- }
221
-
222
- return result;
223
- };
@@ -1,104 +0,0 @@
1
- import { AssetsState, TrackingParameter, Transformation } from '@/types/assets';
2
- import { Asset, GetAssetLinkResponse } from '@/types/search';
3
- import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
4
-
5
- import { getAssetLinks } from './assets.service';
6
-
7
- export const SETTINGS_DEFAULT_PROXY = 'Always show asset format selector';
8
-
9
- export const ASSETS_FEATURE_KEY = 'assets';
10
- export const ASSETS_FEATURE_STORAGE_KEY = ASSETS_FEATURE_KEY + '_storage';
11
- export const ASSETS_FEATURE_STORAGE_KEY_IMPORT_PROXY = ASSETS_FEATURE_STORAGE_KEY + '_importProxy';
12
- export const ASSETS_FEATURE_STORAGE_TTL = 1000 * 60 * 60;
13
-
14
- const initialState: AssetsState = {
15
- };
16
-
17
- // #region Slice
18
- export const assetsSlice = createSlice({
19
- name: ASSETS_FEATURE_KEY,
20
- initialState,
21
- reducers: {
22
- resetImportStatus: (state) => {
23
- state.errorMessage = undefined;
24
- },
25
- },
26
- extraReducers(builder) {
27
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
28
- builder.addCase(importAssets.pending, (state) => {
29
- state.errorMessage = undefined;
30
- });
31
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
32
- builder.addCase(importAssets.rejected, (state, action) => {
33
- state.errorMessage = action.error.message;
34
- });
35
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
36
- builder.addCase(importAssets.fulfilled, (state) => {
37
- state.errorMessage = undefined;
38
- });
39
- },
40
- });
41
- // #endregion
42
-
43
- export const { resetImportStatus } = assetsSlice.actions;
44
-
45
- // #region Action
46
- export const importAssets = createAsyncThunk<
47
- GetAssetLinkResponse[],
48
- {
49
- extension?: string;
50
- extraFields?: string[];
51
- maxHeight?: number;
52
- maxWidth?: number;
53
- parameters?: TrackingParameter[];
54
- permanentLink?: string;
55
- proxiesPreference?: string;
56
- selectedAsset: Asset;
57
- transformations?: Transformation[];
58
- useRepresentative?: boolean;
59
- useSession?: string;
60
- }
61
- >(
62
- `${ASSETS_FEATURE_KEY}/importAssets`,
63
- async (
64
- {
65
- extension,
66
- extraFields,
67
- maxHeight,
68
- maxWidth,
69
- parameters,
70
- permanentLink,
71
- proxiesPreference,
72
- selectedAsset,
73
- transformations,
74
- useRepresentative,
75
- useSession,
76
- },
77
- ) => {
78
-
79
- const images = await getAssetLinks({
80
- assets: [selectedAsset],
81
- extraFields: extraFields?.join('&ExtraFields='),
82
- permanentLink,
83
- proxyPreference: proxiesPreference,
84
- transformations,
85
- parameters,
86
- maxWidth,
87
- maxHeight,
88
- extension,
89
- useSession,
90
- });
91
-
92
- if (useRepresentative) {
93
- return [{
94
- ...images[0],
95
- imageUrl: selectedAsset.imageUrl,
96
- }];
97
- }
98
-
99
- return images;
100
- },
101
- );
102
- // #endregion
103
-
104
- export default assetsSlice.reducer;
@@ -1,71 +0,0 @@
1
- import { GetAccessKeyRes, GetAccessTokenRes, RequestAuthorizeRes } from '@/types/auth';
2
- import { cortexFetch } from '@/utils/api';
3
-
4
- export const AUTH_MAX_RETRIES = 10;
5
- export const CANCEL_AUTH_MESSAGE = 'Authentication cancelled';
6
-
7
- export let authAbortController = new AbortController();
8
-
9
- export const abortAuthService = () => {
10
- authAbortController.abort(CANCEL_AUTH_MESSAGE);
11
- authAbortController = new AbortController();
12
- };
13
-
14
- export const requestAuthorizeService = async (
15
- nonce: string,
16
- ): Promise<RequestAuthorizeRes> => {
17
- const response = await cortexFetch(
18
- 'webapi/extensibility/integrations/gab/authorization/requestauthorize_4bu_v1',
19
- {
20
- method: 'POST',
21
- body: JSON.stringify({ Nonce: nonce }),
22
- headers: {
23
- 'Content-Type': 'application/json',
24
- },
25
- },
26
- );
27
- return { ...(await response.json()), nonce };
28
- };
29
-
30
- export const getAccessKeyService = async (
31
- requestID: string,
32
- ): Promise<GetAccessKeyRes> => {
33
- authAbortController = new AbortController();
34
- let count = 0;
35
- let data: GetAccessKeyRes;
36
- while (count < AUTH_MAX_RETRIES) {
37
- const response = await cortexFetch(
38
- 'webapi/extensibility/integrations/gab/authorization/getaccesskey_4bv_v1',
39
- {
40
- signal: authAbortController.signal,
41
- method: 'POST',
42
- body: JSON.stringify({ RequestID: requestID }),
43
- headers: {
44
- 'Content-Type': 'application/json',
45
- },
46
- },
47
- );
48
- data = await response.json();
49
- if (!!data.code && data.code !== 'RepeatRequest') {
50
- return data;
51
- }
52
- count++;
53
- }
54
- throw new Error('Unable to get Access Key: Max retries exceeded.');
55
- };
56
-
57
- export const getAccessTokenService = async (
58
- accessKey: string,
59
- ): Promise<GetAccessTokenRes> => {
60
- const response = await cortexFetch(
61
- 'webapi/extensibility/integrations/gab/authorization/getaccesstoken_4bt_v1',
62
- {
63
- method: 'POST',
64
- body: JSON.stringify({ AccessKey: accessKey }),
65
- headers: {
66
- 'Content-Type': 'application/json',
67
- },
68
- },
69
- );
70
- return response.json();
71
- };