@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,224 +0,0 @@
1
- import _debounce from 'lodash-es/debounce';
2
- import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
3
- import Cropper, { Area, Point } from 'react-easy-crop';
4
-
5
- import { Unit } from '@/types/assets';
6
- import { FORMAT_DIALOG_PREVIEW_SIZE } from '@/utils/constants';
7
- import { calculateAspectRatioFit, cropImage, resizeImage, rotateImage } from '@/utils/image';
8
-
9
- import { Container } from '../Previewer/Previewer.styled';
10
-
11
- type Props = {
12
- disabled: boolean;
13
- loadable: boolean;
14
- image: {
15
- url: string;
16
- originalUrl: string;
17
- extension: string;
18
- width: number;
19
- height: number;
20
- x: number;
21
- y: number;
22
- rotation: number;
23
- };
24
- selectedProxy: string;
25
- resizer: {
26
- width: number;
27
- height: number;
28
- };
29
- cropper: {
30
- width: number;
31
- height: number;
32
- percentageWidth: number;
33
- percentageHeight: number;
34
- x: number;
35
- y: number;
36
- unit: Unit;
37
- };
38
- rotation: number;
39
- onCropComplete: (croppedArea: Area, croppedAreaPixels: Area) => void;
40
- onLoadingChange: (loading: boolean) => void;
41
- };
42
-
43
- export type CropPreviewerHandle = {
44
- applyResize: () => Promise<string>;
45
- applyCrop: () => Promise<string>;
46
- applyRotation: () => Promise<string>;
47
- setZoom: (zoom: number) => void;
48
- };
49
-
50
- const CropPreviewer = forwardRef<CropPreviewerHandle, Props>(({
51
- disabled,
52
- loadable,
53
- image,
54
- resizer,
55
- cropper,
56
- rotation,
57
- selectedProxy,
58
- onCropComplete,
59
- onLoadingChange,
60
- }, ref) => {
61
- const [isLoading, setIsLoading] = useState(true);
62
- const [crop, setCrop] = useState({ x: 0, y: 0 });
63
- const [zoom, setZoom] = useState(1);
64
- const [resizedImage, setResizedImage] = useState<string>(image?.url ?? '');
65
- const containerRef = useRef<HTMLDivElement>(null);
66
- useEffect(() => {
67
- const { url, originalUrl, extension } = image;
68
- const { width, height } = resizer;
69
- const resize = async () => {
70
- if (loadable) {
71
- onLoadingChange(true);
72
- const { width: newWidth, height: newHeight } = calculateAspectRatioFit(image.width, image.height, width, height);
73
- const { url: imageUrl } = await resizeImage(url,
74
- newWidth,
75
- newHeight,
76
- containerRef.current?.clientWidth ?? window.innerWidth, FORMAT_DIALOG_PREVIEW_SIZE,
77
- );
78
- setResizedImage(extension === 'gif' ? originalUrl : imageUrl);
79
- onLoadingChange(false);
80
- } else {
81
- setResizedImage(url);
82
- }
83
- };
84
- const debounceResize = _debounce(resize, 300, { leading: true });
85
- debounceResize();
86
- }, [image, loadable, onLoadingChange, resizer, selectedProxy]);
87
-
88
- const applyResize = useCallback(async () => {
89
- return resizedImage;
90
- }, [resizedImage]);
91
-
92
- const applyCrop = useCallback(async () => {
93
- const { width, height, x, y, unit } = cropper;
94
- const options = { x, y, width, height };
95
- options.x = (x / 100) * image.width;
96
- options.y = (y / 100) * image.height;
97
- if (loadable) {
98
- onLoadingChange(true);
99
- if (unit === Unit.AspectRatio) {
100
- const { width: newWidth, height: newHeight } = calculateAspectRatioFit(image.width, image.height, width, height);
101
- options.width = newWidth / zoom;
102
- options.height = newHeight / zoom;
103
- }
104
- const result = await cropImage(
105
- {
106
- url: image.url,
107
- width: image.width,
108
- height: image.height,
109
- },
110
- options,
111
- );
112
- onLoadingChange(false);
113
- return result;
114
- } else {
115
- return Promise.resolve(image.url);
116
- }
117
- }, [cropper, image.width, image.height, image.url, loadable, onLoadingChange, zoom]);
118
-
119
- const applyRotation = useCallback(async () => {
120
- if (loadable) {
121
- onLoadingChange(true);
122
- const result = await rotateImage(
123
- {
124
- url: image.url,
125
- width: image.width,
126
- height: image.height,
127
- },
128
- rotation,
129
- );
130
- onLoadingChange(false);
131
- return result;
132
- } else {
133
- return Promise.resolve(image.url);
134
- }
135
- }, [image.height, image.url, image.width, loadable, onLoadingChange, rotation]);
136
-
137
- useImperativeHandle(ref, () => ({
138
- applyResize,
139
- applyCrop,
140
- applyRotation,
141
- setZoom,
142
- }));
143
-
144
- const resetCropper = useCallback(() => {
145
- setCrop({ x: 0, y: 0 });
146
- setZoom(1);
147
- }, []);
148
-
149
- const onCropChange = useCallback(
150
- (location: Point) => {
151
- if (disabled) {
152
- return;
153
- }
154
- setCrop(location);
155
- },
156
- [disabled],
157
- );
158
-
159
- const onMediaLoaded = useCallback(() => {
160
- setIsLoading(false);
161
- }, []);
162
-
163
- useEffect(() => {
164
- resetCropper();
165
- }, [disabled, resetCropper]);
166
-
167
-
168
- const objectFit = useMemo(() => {
169
- const container = containerRef.current;
170
- if (!container || isLoading) {
171
- return 'contain';
172
- }
173
- const imgAspect = resizer.width / resizer.height;
174
-
175
- const containerAspect = container.clientHeight ? (container.clientWidth) / (container.clientHeight) : 0;
176
-
177
- return imgAspect > containerAspect ? 'horizontal-cover' : 'vertical-cover';
178
- }, [isLoading, resizer]);
179
-
180
- return (
181
- <Container
182
- ref={containerRef}
183
- style={{
184
- height: `${FORMAT_DIALOG_PREVIEW_SIZE}px`,
185
- }}
186
- >
187
- {loadable && (
188
- <Cropper
189
- image={resizedImage}
190
- crop={crop}
191
- zoom={zoom}
192
- aspect={cropper.width / cropper.height}
193
- rotation={rotation}
194
- objectFit={objectFit}
195
- onCropChange={onCropChange}
196
- onCropComplete={onCropComplete}
197
- onMediaLoaded={onMediaLoaded}
198
- onZoomChange={setZoom}
199
- zoomWithScroll={cropper.unit === Unit.AspectRatio}
200
- style={{
201
- containerStyle: {
202
- cursor: disabled ? 'default' : 'move',
203
- pointerEvents: disabled ? 'none' : 'auto',
204
- },
205
- cropAreaStyle: {
206
- display: disabled ? 'none' : 'block',
207
- },
208
- mediaStyle: {
209
- opacity: isLoading ? 0 : 1,
210
- },
211
- }}
212
- />
213
- )}
214
- {isLoading && (
215
- <div className="loading">
216
- <cx-skeleton className="loading__skeleton"></cx-skeleton>
217
- <cx-spinner className="loading__spinner"></cx-spinner>
218
- </div>
219
- )}
220
- </Container>
221
- );
222
- });
223
-
224
- export default CropPreviewer;
@@ -1,24 +0,0 @@
1
- export const cropModes = [{
2
- value: 'free',
3
- label: 'Freeform',
4
- }, {
5
- value: '16:9',
6
- label: 'Widescreen (16:9)',
7
- }, {
8
- value: '9:16',
9
- label: 'Phone (9:16)',
10
- }, {
11
- value: '4:3',
12
- label: 'Presentation (4:3)',
13
- }, {
14
- value: '1:1',
15
- label: 'Square (1:1)',
16
- }, {
17
- value: '3:2',
18
- label: 'Landscape (3:2)',
19
- }, {
20
- value: '2:3',
21
- label: 'Portrait (2:3)',
22
- }];
23
-
24
- export const INPUT_DEBOUNCE_DELAY = 1000;
@@ -1,57 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- export const Container = styled.div`
4
- .details__summary__icon {
5
- width: var(--cx-font-size-3x-large);
6
- height: var(--cx-font-size-3x-large);
7
- display: flex;
8
- align-items: center;
9
- justify-content: center;
10
- background-color: var(--cx-color-neutral-100);
11
- border-radius: var(--cx-border-radius-large);
12
- color: var(--cx-color-neutral-600);
13
- font-size: var(--cx-font-size-large);
14
- }
15
-
16
- .details__summary__input-label {
17
- color: var(--cx-color-neutral-400);
18
- margin-inline-start: var(--cx-spacing-small);
19
- }
20
-
21
- cx-input::part(input) {
22
- padding-left: var(--cx-spacing-small);
23
- padding-right: var(--cx-spacing-small);
24
- }
25
-
26
- cx-space {
27
- width: 100%;
28
-
29
- cx-input {
30
- flex: 1;
31
- }
32
- }
33
-
34
- .resize__unit-select {
35
- width: 120px;
36
- }
37
-
38
- .resize__input-group {
39
- display: flex;
40
- flex: 1;
41
- }
42
-
43
- .extension {
44
- padding: var(--cx-spacing-small) var(--cx-spacing-medium);
45
- border: solid 1px var(--cx-color-neutral-200);
46
- background-color: var(--cx-color-neutral-0);
47
-
48
- cx-select{
49
- flex: 1;
50
- width: 100%;
51
- }
52
- }
53
-
54
- cx-details:not(:last-child)::part(base) {
55
- border-bottom-width: 0;
56
- }
57
- `;
@@ -1,178 +0,0 @@
1
- import _isEqualWith from 'lodash-es/isEqualWith';
2
- import { FC, useEffect, useMemo, useRef } from 'react';
3
-
4
- import { Unit } from '@/types/assets';
5
- import { CxHideEvent, CxShowEvent } from '@/web-component';
6
-
7
- import { Container } from './CustomRendition.styled';
8
- import { Crop, Extension, Format, Resize, Rotate } from './transformations';
9
- import { Proxy } from '@/types/search';
10
-
11
- type Props = {
12
- activeSetting: string;
13
- extensions: { displayName: string; value: string }[];
14
- availableProxies: Proxy[];
15
- imageSize: {
16
- width: number;
17
- height: number;
18
- }
19
- resize: {
20
- width: number;
21
- height: number;
22
- unit: Unit;
23
- };
24
- crop: {
25
- width: number;
26
- height: number;
27
- unit: Unit;
28
- percentageWidth: number;
29
- percentageHeight: number;
30
- };
31
- extension: string;
32
- lastAppliedResize: Record<Unit, {
33
- width: number;
34
- height: number;
35
- unit: Unit;
36
- }>;
37
- lastAppliedCrop: Record<Unit, {
38
- width: number;
39
- height: number;
40
- percentageWidth: number;
41
- percentageHeight: number;
42
- x: number;
43
- y: number;
44
- unit: Unit;
45
- }>;
46
- proxy: string;
47
- rotation: number;
48
- onCropChange: (
49
- width: number,
50
- height: number,
51
- unit: Unit,
52
- shouldApply: boolean
53
- ) => void;
54
- onExtensionChange: (extension: string) => void;
55
- onFormatChange: (format: Proxy) => void;
56
- onResizeChange: (
57
- width: number,
58
- height: number,
59
- unit: Unit,
60
- shouldApply: boolean
61
- ) => void;
62
- onRotateChange: (rotation: number, shouldApply: boolean) => void;
63
- onViewChange: (view: string) => void;
64
- };
65
-
66
- const CustomRendition: FC<Props> = ({
67
- activeSetting,
68
- extensions,
69
- availableProxies,
70
- imageSize,
71
- resize,
72
- crop,
73
- extension,
74
- lastAppliedCrop,
75
- lastAppliedResize,
76
- proxy,
77
- rotation,
78
- onCropChange,
79
- onExtensionChange,
80
- onFormatChange,
81
- onResizeChange,
82
- onRotateChange,
83
- onViewChange,
84
- }: Props) => {
85
- const containerRef = useRef<HTMLDivElement>(null);
86
-
87
- useEffect(() => {
88
- const container = containerRef.current;
89
- if (!container) { return; }
90
-
91
- const onDetailsShow = (e: CxShowEvent) => {
92
- if ((e.target as HTMLElement).localName === 'cx-details') {
93
- onViewChange((e.target as HTMLElement).dataset.value ?? '');
94
- }
95
- };
96
- const onDetailsHide = (e: CxHideEvent) => {
97
- const allDetails = container?.querySelectorAll('cx-details');
98
-
99
- if ((e.target as HTMLElement).localName === 'cx-details') {
100
- const allDetailsClosed = Array.from(allDetails).every((details) => {
101
- if (details.open) {
102
- return false;
103
- }
104
- return true;
105
- });
106
-
107
- if (allDetailsClosed) {
108
- onViewChange('');
109
- }
110
- }
111
- };
112
- container.addEventListener('cx-show', onDetailsShow);
113
- container.addEventListener('cx-hide', onDetailsHide);
114
-
115
- return () => {
116
- container.removeEventListener('cx-show', onDetailsShow);
117
- container.removeEventListener('cx-hide', onDetailsHide);
118
- };
119
- }, [onViewChange]);
120
-
121
- const disabledCropApply = useMemo(() => {
122
- return _isEqualWith(crop, lastAppliedCrop[crop.unit], (a, b) => {
123
- if (!isNaN(a) && !isNaN(b)) {
124
- return Math.round(a) === Math.round(b);
125
- }
126
- return undefined;
127
- });
128
- }, [crop, lastAppliedCrop]);
129
-
130
- const formats = useMemo(() => {
131
- return availableProxies.filter(item => !item.cdnName);
132
- }, [availableProxies]);
133
-
134
- return (
135
- <Container ref={containerRef}>
136
- <Format
137
- open={activeSetting === 'format'}
138
- format={proxy}
139
- formats={formats}
140
- onApply={onFormatChange}
141
- />
142
- <Crop
143
- open={activeSetting === 'crop'}
144
- width={crop.width}
145
- height={crop.height}
146
- percentageWidth={crop.percentageWidth}
147
- percentageHeight={crop.percentageHeight}
148
- disabledCropApply={disabledCropApply}
149
- lastAppliedSetting={lastAppliedCrop}
150
- maxWidth={resize.width}
151
- maxHeight={resize.height}
152
- unit={crop.unit}
153
- onChange={(width, height, unit) => onCropChange(width, height, unit, false)}
154
- onApply={() => onCropChange(crop.width, crop.height, crop.unit, true)}
155
- />
156
- <Resize
157
- open={activeSetting === 'resize'}
158
- width={resize.width}
159
- height={resize.height}
160
- lastAppliedSetting={lastAppliedResize}
161
- maxWidth={imageSize.width}
162
- maxHeight={imageSize.height}
163
- unit={resize.unit}
164
- onChange={(width, height, unit) => onResizeChange(width, height, unit, false)}
165
- onApply={() => onResizeChange(resize.width, resize.height, resize.unit, true)}
166
- />
167
- <Rotate
168
- open={activeSetting === 'rotate'}
169
- rotation={rotation}
170
- onChange={(newRotation) => onRotateChange(newRotation, false)}
171
- onApply={() => onRotateChange(rotation, true)}
172
- />
173
- <Extension extension={extension} extensions={extensions} onChange={onExtensionChange} />
174
- </Container>
175
- );
176
- };
177
-
178
- export default CustomRendition;
@@ -1 +0,0 @@
1
- export { default } from './CustomRendition';