@imposium-hub/components 1.62.7 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/cjs/components/assets/AssetsTablePreviewCell.js +3 -2
  2. package/dist/cjs/components/assets/AssetsTablePreviewCell.js.map +1 -1
  3. package/dist/cjs/components/button/Button.stories.d.ts +0 -1
  4. package/dist/cjs/components/button-group-field/ButtonGroupField.stories.d.ts +0 -1
  5. package/dist/cjs/components/button-menu/ButtonMenu.stories.d.ts +0 -1
  6. package/dist/cjs/components/card/Card.stories.d.ts +0 -1
  7. package/dist/cjs/components/checkbox-field/CheckboxField.stories.d.ts +0 -1
  8. package/dist/cjs/components/color-field/ColorFiled.stories.d.ts +0 -1
  9. package/dist/cjs/components/controlled-list/ControlledList.stories.d.ts +0 -1
  10. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  11. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js +91 -0
  12. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  13. package/dist/cjs/components/field-wrapper/FieldWrapper.stories.d.ts +0 -1
  14. package/dist/cjs/components/h-rule/HRule.d.ts +0 -1
  15. package/dist/cjs/components/h-rule/HRule.stories.d.ts +0 -1
  16. package/dist/cjs/components/list-field/ListField.stories.d.ts +0 -1
  17. package/dist/cjs/components/modal/Modal.stories.d.ts +0 -1
  18. package/dist/cjs/components/number-field/NumberField.stories.d.ts +0 -1
  19. package/dist/cjs/components/players/AudioPreview.d.ts +25 -0
  20. package/dist/cjs/components/players/AudioPreview.js +114 -0
  21. package/dist/cjs/components/players/AudioPreview.js.map +1 -0
  22. package/dist/cjs/components/players/ImagePreview.d.ts +7 -1
  23. package/dist/cjs/components/players/ImagePreview.js +28 -10
  24. package/dist/cjs/components/players/ImagePreview.js.map +1 -1
  25. package/dist/cjs/components/players/VideoPreview.d.ts +11 -2
  26. package/dist/cjs/components/players/VideoPreview.js +32 -9
  27. package/dist/cjs/components/players/VideoPreview.js.map +1 -1
  28. package/dist/cjs/components/section/Section.d.ts +0 -1
  29. package/dist/cjs/components/section/Section.stories.d.ts +0 -1
  30. package/dist/cjs/components/select-field/SelectField.stories.d.ts +0 -1
  31. package/dist/cjs/components/slider-field/SliderField.stories.d.ts +0 -1
  32. package/dist/cjs/components/text-area-field/TextAreaField.stories.d.ts +0 -1
  33. package/dist/cjs/components/text-field/TextField.stories.d.ts +0 -1
  34. package/dist/cjs/index.d.ts +2 -1
  35. package/dist/cjs/index.js +5 -3
  36. package/dist/cjs/index.js.map +1 -1
  37. package/dist/cjs/utils/assets.d.ts +1 -1
  38. package/dist/cjs/utils/assets.js +7 -4
  39. package/dist/cjs/utils/assets.js.map +1 -1
  40. package/dist/esm/components/assets/AssetsTablePreviewCell.js +5 -4
  41. package/dist/esm/components/assets/AssetsTablePreviewCell.js.map +1 -1
  42. package/dist/esm/components/button/Button.stories.d.ts +0 -1
  43. package/dist/esm/components/button-group-field/ButtonGroupField.stories.d.ts +0 -1
  44. package/dist/esm/components/button-menu/ButtonMenu.stories.d.ts +0 -1
  45. package/dist/esm/components/card/Card.stories.d.ts +0 -1
  46. package/dist/esm/components/checkbox-field/CheckboxField.stories.d.ts +0 -1
  47. package/dist/esm/components/color-field/ColorFiled.stories.d.ts +0 -1
  48. package/dist/esm/components/controlled-list/ControlledList.stories.d.ts +0 -1
  49. package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  50. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
  51. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  52. package/dist/esm/components/field-wrapper/FieldWrapper.stories.d.ts +0 -1
  53. package/dist/esm/components/h-rule/HRule.d.ts +0 -1
  54. package/dist/esm/components/h-rule/HRule.stories.d.ts +0 -1
  55. package/dist/esm/components/list-field/ListField.stories.d.ts +0 -1
  56. package/dist/esm/components/modal/Modal.stories.d.ts +0 -1
  57. package/dist/esm/components/number-field/NumberField.stories.d.ts +0 -1
  58. package/dist/esm/components/players/AudioPreview.d.ts +25 -0
  59. package/dist/esm/components/players/AudioPreview.js +57 -0
  60. package/dist/esm/components/players/AudioPreview.js.map +1 -0
  61. package/dist/esm/components/players/ImagePreview.d.ts +7 -1
  62. package/dist/esm/components/players/ImagePreview.js +28 -10
  63. package/dist/esm/components/players/ImagePreview.js.map +1 -1
  64. package/dist/esm/components/players/VideoPreview.d.ts +11 -2
  65. package/dist/esm/components/players/VideoPreview.js +31 -9
  66. package/dist/esm/components/players/VideoPreview.js.map +1 -1
  67. package/dist/esm/components/section/Section.d.ts +0 -1
  68. package/dist/esm/components/section/Section.stories.d.ts +0 -1
  69. package/dist/esm/components/select-field/SelectField.stories.d.ts +0 -1
  70. package/dist/esm/components/slider-field/SliderField.stories.d.ts +0 -1
  71. package/dist/esm/components/text-area-field/TextAreaField.stories.d.ts +0 -1
  72. package/dist/esm/components/text-field/TextField.stories.d.ts +0 -1
  73. package/dist/esm/index.d.ts +2 -1
  74. package/dist/esm/index.js +2 -1
  75. package/dist/esm/index.js.map +1 -1
  76. package/dist/esm/utils/assets.d.ts +1 -1
  77. package/dist/esm/utils/assets.js +7 -4
  78. package/dist/esm/utils/assets.js.map +1 -1
  79. package/dist/styles.css +8 -0
  80. package/dist/styles.less +9 -0
  81. package/less/components/assets.less +10 -0
  82. package/package.json +1 -1
  83. package/src/components/assets/AssetsTablePreviewCell.tsx +12 -5
  84. package/src/components/players/AudioPreview.tsx +113 -0
  85. package/src/components/players/ImagePreview.tsx +47 -15
  86. package/src/components/players/VideoPreview.tsx +58 -12
  87. package/src/index.ts +2 -0
  88. package/src/utils/assets.ts +8 -4
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import TextAreaField from './TextAreaField';
3
2
  declare const _default: {
4
3
  title: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import TextField from './TextField';
3
2
  declare const _default: {
4
3
  title: string;
@@ -95,4 +95,5 @@ import PublishStatusIndicator from './components/publish-wizard/publish/PublishS
95
95
  import { getMediaPreviewStyle } from './utils/assets';
96
96
  import AdvancedNumberField from './components/advanced-number-field/AdvancedNumberField';
97
97
  import FontPicker from './components/font-picker/FontPicker';
98
- export { AppWrapper, AuthGate, ImposiumHeader, ImposiumDropdown, Button, ButtonGroupField, ButtonMenu, ButtonMenuItem, Card, CheckboxField, ControlledList, DataTable, DataTablePaginator, FieldWrapper, HRule, ListField, Modal, AdvancedNumberField, NumberField, SelectField, ColorField, Tabs, ITab, Tag, TextField, TextAreaField, ToastService, SliderField, Section, DeterminateLoader, Spinner, NoAccess, ServiceIcon, LogViewer, StoryPreviewer, ShortcutMenu, Portal, AssetDetails, ImagePlayer, VideoPlayer, AudioPlayer, VideoPreview, ImagePreview, ImageSequencePlayer, AssetsTypeIcon, AssetsTableDateCell, AssetsTableDropzone, AssetsTablePreviewCell, AssetsTableSelectFilter, AssetsTableSelectCell, AssetsTableTypeFilter, AssetsTableTypeCell, AssetsTableStatusCell, AssetsTableNameFilter, AssetsTableNameCell, AssetsTableDurationCell, AssetsTableTagsCell, AssetsTableTagsFilter, AssetsTableTagsPivot, AssetsTableComplexTagCell, AssetField, AssetsUploadMenu, FontAssetPreview, DroppableAssetRenderer, PreviewNotAvailable, IStaticComposition, auth, login, clearCachedAuth, access, cacheAccessData, clearCachedAccessList, storyAdded, storyNameMutated, orgNameMutated, storyDeleted, updateFilters, getAssets, deleteAssets, addAssetTag, deleteAssetTag, updateAssetName, updateAssetData, doAssetTableHydration, toggleAutoTag, uploadAssets, selectAsset, deselectAsset, resetSelection, assetFilters, assetList, assetUploads, selectedAssets, getAssetTagList, addAssetTagToList, assetTags, assetActions, activeBatch, batchActions, AuthService, IIdentity, SessionService, IHubSession, API, IImposiumAPI, LegacyAPI, StorageService, Timer, validateAccessLevel, getFirstStoryInOrg, string2HexCode, parameterizeServiceUrl, scrapeEmail, fitToContainer, formattedTime, filterHotkeys, mimetypeConformsToOverlay, validateAssetMimetype, toFixed, getSMPTE, padStart, formatDateDefault, ASSET_TYPES, publish, publishVersion, clearStoryPublishStatus, getStoryPublishStatus, PublishStatusIndicator, AnchorField, SMPTEField, getMediaPreviewStyle, HEADER_HEIGHT, decoupleAssets, deleteAssetsTags, updateAssetStory, FontPicker, cancelAssetUpload };
98
+ import AudioPreview from './components/players/AudioPreview';
99
+ export { AppWrapper, AuthGate, ImposiumHeader, ImposiumDropdown, Button, ButtonGroupField, ButtonMenu, ButtonMenuItem, Card, CheckboxField, ControlledList, DataTable, DataTablePaginator, FieldWrapper, HRule, ListField, Modal, AdvancedNumberField, NumberField, SelectField, ColorField, Tabs, ITab, Tag, TextField, TextAreaField, ToastService, SliderField, Section, DeterminateLoader, Spinner, NoAccess, ServiceIcon, LogViewer, StoryPreviewer, ShortcutMenu, Portal, AssetDetails, ImagePlayer, VideoPlayer, AudioPlayer, VideoPreview, ImagePreview, AudioPreview, ImageSequencePlayer, AssetsTypeIcon, AssetsTableDateCell, AssetsTableDropzone, AssetsTablePreviewCell, AssetsTableSelectFilter, AssetsTableSelectCell, AssetsTableTypeFilter, AssetsTableTypeCell, AssetsTableStatusCell, AssetsTableNameFilter, AssetsTableNameCell, AssetsTableDurationCell, AssetsTableTagsCell, AssetsTableTagsFilter, AssetsTableTagsPivot, AssetsTableComplexTagCell, AssetField, AssetsUploadMenu, FontAssetPreview, DroppableAssetRenderer, PreviewNotAvailable, IStaticComposition, auth, login, clearCachedAuth, access, cacheAccessData, clearCachedAccessList, storyAdded, storyNameMutated, orgNameMutated, storyDeleted, updateFilters, getAssets, deleteAssets, addAssetTag, deleteAssetTag, updateAssetName, updateAssetData, doAssetTableHydration, toggleAutoTag, uploadAssets, selectAsset, deselectAsset, resetSelection, assetFilters, assetList, assetUploads, selectedAssets, getAssetTagList, addAssetTagToList, assetTags, assetActions, activeBatch, batchActions, AuthService, IIdentity, SessionService, IHubSession, API, IImposiumAPI, LegacyAPI, StorageService, Timer, validateAccessLevel, getFirstStoryInOrg, string2HexCode, parameterizeServiceUrl, scrapeEmail, fitToContainer, formattedTime, filterHotkeys, mimetypeConformsToOverlay, validateAssetMimetype, toFixed, getSMPTE, padStart, formatDateDefault, ASSET_TYPES, publish, publishVersion, clearStoryPublishStatus, getStoryPublishStatus, PublishStatusIndicator, AnchorField, SMPTEField, getMediaPreviewStyle, HEADER_HEIGHT, decoupleAssets, deleteAssetsTags, updateAssetStory, FontPicker, cancelAssetUpload };
package/dist/esm/index.js CHANGED
@@ -106,5 +106,6 @@ import PublishStatusIndicator from './components/publish-wizard/publish/PublishS
106
106
  import { getMediaPreviewStyle } from './utils/assets';
107
107
  import AdvancedNumberField from './components/advanced-number-field/AdvancedNumberField';
108
108
  import FontPicker from './components/font-picker/FontPicker';
109
- export { AppWrapper, AuthGate, ImposiumHeader, ImposiumDropdown, Button, ButtonGroupField, ButtonMenu, ButtonMenuItem, Card, CheckboxField, ControlledList, DataTable, DataTablePaginator, FieldWrapper, HRule, ListField, Modal, AdvancedNumberField, NumberField, SelectField, ColorField, Tabs, Tag, TextField, TextAreaField, ToastService, SliderField, Section, DeterminateLoader, Spinner, NoAccess, ServiceIcon, LogViewer, StoryPreviewer, ShortcutMenu, Portal, AssetDetails, ImagePlayer, VideoPlayer, AudioPlayer, VideoPreview, ImagePreview, ImageSequencePlayer, AssetsTypeIcon, AssetsTableDateCell, AssetsTableDropzone, AssetsTablePreviewCell, AssetsTableSelectFilter, AssetsTableSelectCell, AssetsTableTypeFilter, AssetsTableTypeCell, AssetsTableStatusCell, AssetsTableNameFilter, AssetsTableNameCell, AssetsTableDurationCell, AssetsTableTagsCell, AssetsTableTagsFilter, AssetsTableTagsPivot, AssetsTableComplexTagCell, AssetField, AssetsUploadMenu, FontAssetPreview, DroppableAssetRenderer, PreviewNotAvailable, auth, login, clearCachedAuth, access, cacheAccessData, clearCachedAccessList, storyAdded, storyNameMutated, orgNameMutated, storyDeleted, updateFilters, getAssets, deleteAssets, addAssetTag, deleteAssetTag, updateAssetName, updateAssetData, doAssetTableHydration, toggleAutoTag, uploadAssets, selectAsset, deselectAsset, resetSelection, assetFilters, assetList, assetUploads, selectedAssets, getAssetTagList, addAssetTagToList, assetTags, assetActions, activeBatch, batchActions, AuthService, SessionService, API, LegacyAPI, StorageService, Timer, validateAccessLevel, getFirstStoryInOrg, string2HexCode, parameterizeServiceUrl, scrapeEmail, fitToContainer, formattedTime, filterHotkeys, mimetypeConformsToOverlay, validateAssetMimetype, toFixed, getSMPTE, padStart, formatDateDefault, ASSET_TYPES, publish, publishVersion, clearStoryPublishStatus, getStoryPublishStatus, PublishStatusIndicator, AnchorField, SMPTEField, getMediaPreviewStyle, HEADER_HEIGHT, decoupleAssets, deleteAssetsTags, updateAssetStory, FontPicker, cancelAssetUpload };
109
+ import AudioPreview from './components/players/AudioPreview';
110
+ export { AppWrapper, AuthGate, ImposiumHeader, ImposiumDropdown, Button, ButtonGroupField, ButtonMenu, ButtonMenuItem, Card, CheckboxField, ControlledList, DataTable, DataTablePaginator, FieldWrapper, HRule, ListField, Modal, AdvancedNumberField, NumberField, SelectField, ColorField, Tabs, Tag, TextField, TextAreaField, ToastService, SliderField, Section, DeterminateLoader, Spinner, NoAccess, ServiceIcon, LogViewer, StoryPreviewer, ShortcutMenu, Portal, AssetDetails, ImagePlayer, VideoPlayer, AudioPlayer, VideoPreview, ImagePreview, AudioPreview, ImageSequencePlayer, AssetsTypeIcon, AssetsTableDateCell, AssetsTableDropzone, AssetsTablePreviewCell, AssetsTableSelectFilter, AssetsTableSelectCell, AssetsTableTypeFilter, AssetsTableTypeCell, AssetsTableStatusCell, AssetsTableNameFilter, AssetsTableNameCell, AssetsTableDurationCell, AssetsTableTagsCell, AssetsTableTagsFilter, AssetsTableTagsPivot, AssetsTableComplexTagCell, AssetField, AssetsUploadMenu, FontAssetPreview, DroppableAssetRenderer, PreviewNotAvailable, auth, login, clearCachedAuth, access, cacheAccessData, clearCachedAccessList, storyAdded, storyNameMutated, orgNameMutated, storyDeleted, updateFilters, getAssets, deleteAssets, addAssetTag, deleteAssetTag, updateAssetName, updateAssetData, doAssetTableHydration, toggleAutoTag, uploadAssets, selectAsset, deselectAsset, resetSelection, assetFilters, assetList, assetUploads, selectedAssets, getAssetTagList, addAssetTagToList, assetTags, assetActions, activeBatch, batchActions, AuthService, SessionService, API, LegacyAPI, StorageService, Timer, validateAccessLevel, getFirstStoryInOrg, string2HexCode, parameterizeServiceUrl, scrapeEmail, fitToContainer, formattedTime, filterHotkeys, mimetypeConformsToOverlay, validateAssetMimetype, toFixed, getSMPTE, padStart, formatDateDefault, ASSET_TYPES, publish, publishVersion, clearStoryPublishStatus, getStoryPublishStatus, PublishStatusIndicator, AnchorField, SMPTEField, getMediaPreviewStyle, HEADER_HEIGHT, decoupleAssets, deleteAssetsTags, updateAssetStory, FontPicker, cancelAssetUpload };
110
111
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { CSSProperties } from 'react';
2
- export declare const getMediaPreviewStyle: (mediaWidth: number, mediaHeight: number, ref: any) => CSSProperties;
2
+ export declare const getMediaPreviewStyle: (mediaWidth: number, mediaHeight: number, element: any) => CSSProperties;
@@ -1,6 +1,6 @@
1
1
  import { HEADER_HEIGHT, PREVIEW_MAX_HEIGHT, PREVIEW_MAX_WIDTH } from '../constants/assets';
2
- export const getMediaPreviewStyle = (mediaWidth, mediaHeight, ref) => {
3
- if (!ref.current) {
2
+ export const getMediaPreviewStyle = (mediaWidth, mediaHeight, element) => {
3
+ if (!element) {
4
4
  return;
5
5
  }
6
6
  if (!mediaWidth) {
@@ -9,8 +9,11 @@ export const getMediaPreviewStyle = (mediaWidth, mediaHeight, ref) => {
9
9
  if (!mediaHeight) {
10
10
  mediaHeight = PREVIEW_MAX_HEIGHT;
11
11
  }
12
- const icon = ref.current;
13
- const iconRect = icon.getBoundingClientRect();
12
+ const elementDiv = element.current !== undefined ? element.current : element;
13
+ if (!elementDiv) {
14
+ return;
15
+ }
16
+ const iconRect = elementDiv.getBoundingClientRect();
14
17
  const aspect = mediaWidth / mediaHeight;
15
18
  let width = PREVIEW_MAX_WIDTH;
16
19
  let height = width / aspect;
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/utils/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,UAAkB,EAClB,WAAmB,EACnB,GAAQ,EACK,EAAE;IACf,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;QACd,OAAO;KACV;IACD,IAAI,CAAC,UAAU,EAAE;QACb,UAAU,GAAG,iBAAiB,CAAC;KAClC;IACD,IAAI,CAAC,WAAW,EAAE;QACd,WAAW,GAAG,kBAAkB,CAAC;KACpC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAW,UAAU,GAAG,WAAW,CAAC;IAChD,IAAI,KAAK,GAAW,iBAAiB,CAAC;IACtC,IAAI,MAAM,GAAW,KAAK,GAAG,MAAM,CAAC;IAEpC,IAAI,MAAM,GAAG,kBAAkB,EAAE;QAC7B,MAAM,GAAG,kBAAkB,CAAC;QAC5B,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;KAC3B;IAED,eAAe;IACf,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;IACpD,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;IACrD,qEAAqE;IACrE,IAAI,IAAI,GAAG,CAAC,EAAE;QACV,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;KACrB;IACD,iEAAiE;IACjE,IAAI,GAAG,GAAG,aAAa,EAAE;QACrB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;KACzB;IAED,OAAO;QACH,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,IAAI;KACf,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/utils/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,UAAkB,EAClB,WAAmB,EACnB,OAAY,EACC,EAAE;IACf,IAAI,CAAC,OAAO,EAAE;QACV,OAAO;KACV;IACD,IAAI,CAAC,UAAU,EAAE;QACb,UAAU,GAAG,iBAAiB,CAAC;KAClC;IACD,IAAI,CAAC,WAAW,EAAE;QACd,WAAW,GAAG,kBAAkB,CAAC;KACpC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7E,IAAI,CAAC,UAAU,EAAE;QACb,OAAO;KACV;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;IACpD,MAAM,MAAM,GAAW,UAAU,GAAG,WAAW,CAAC;IAChD,IAAI,KAAK,GAAW,iBAAiB,CAAC;IACtC,IAAI,MAAM,GAAW,KAAK,GAAG,MAAM,CAAC;IAEpC,IAAI,MAAM,GAAG,kBAAkB,EAAE;QAC7B,MAAM,GAAG,kBAAkB,CAAC;QAC5B,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;KAC3B;IAED,eAAe;IACf,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;IACpD,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;IACrD,qEAAqE;IACrE,IAAI,IAAI,GAAG,CAAC,EAAE;QACV,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;KACrB;IACD,iEAAiE;IACjE,IAAI,GAAG,GAAG,aAAa,EAAE;QACrB,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;KACzB;IAED,OAAO;QACH,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,IAAI;KACf,CAAC;AACN,CAAC,CAAC"}
package/dist/styles.css CHANGED
@@ -488,6 +488,14 @@ body a {
488
488
  height: 30px !important;
489
489
  align-items: center;
490
490
  }
491
+ .error-preview {
492
+ justify-content: center;
493
+ display: flex;
494
+ align-items: center;
495
+ }
496
+ .error-preview.audio {
497
+ height: 30px !important;
498
+ }
491
499
  .auth-gate {
492
500
  position: absolute;
493
501
  width: 100%;
package/dist/styles.less CHANGED
@@ -513,6 +513,15 @@ body{
513
513
  align-items: center
514
514
  }
515
515
 
516
+ .error-preview {
517
+ justify-content: center;
518
+ display: flex;
519
+ align-items: center;
520
+
521
+ &.audio {
522
+ height: 30px !important;
523
+ }
524
+ }
516
525
  .auth-gate {
517
526
  .layer;
518
527
  display: flex;
@@ -266,3 +266,13 @@
266
266
  height: 30px !important;
267
267
  align-items: center
268
268
  }
269
+
270
+ .error-preview {
271
+ justify-content: center;
272
+ display: flex;
273
+ align-items: center;
274
+
275
+ &.audio {
276
+ height: 30px !important;
277
+ }
278
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imposium-hub/components",
3
- "version": "1.62.7",
3
+ "version": "2.0.0",
4
4
  "description": "React & Typescript component / asset library for Imposium front-ends",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -4,7 +4,8 @@ import {
4
4
  VideoPreview,
5
5
  AssetsTypeIcon,
6
6
  ImagePreview,
7
- getMediaPreviewStyle
7
+ getMediaPreviewStyle,
8
+ AudioPreview
8
9
  } from '../../index';
9
10
 
10
11
  interface IAssetsTablePreviewCell {
@@ -54,7 +55,7 @@ class AssetsTablePreviewCell extends React.PureComponent<IAssetsTablePreviewCell
54
55
  className='asset-type-cell'
55
56
  onClick={this.evtHandlers.onClick}>
56
57
  <AssetsTypeIcon type={cell.row.values.type} />
57
- {cell.row.values.type === ASSET_TYPES.IMAGE && (
58
+ {cell.row.values.type === ASSET_TYPES.IMAGE && showMedia && (
58
59
  <ImagePreview
59
60
  style={{
60
61
  ...getMediaPreviewStyle(
@@ -63,12 +64,11 @@ class AssetsTablePreviewCell extends React.PureComponent<IAssetsTablePreviewCell
63
64
  this.iconRef
64
65
  )
65
66
  }}
66
- showMedia={showMedia}
67
67
  url={cell.row.original.url}
68
68
  onRequestClose={this.evtHandlers.onClose}
69
69
  />
70
70
  )}
71
- {cell.row.values.type === ASSET_TYPES.VIDEO && (
71
+ {cell.row.values.type === ASSET_TYPES.VIDEO && showMedia && (
72
72
  <VideoPreview
73
73
  playbackSettings={playbackSettings}
74
74
  style={getMediaPreviewStyle(
@@ -76,7 +76,14 @@ class AssetsTablePreviewCell extends React.PureComponent<IAssetsTablePreviewCell
76
76
  cell.row.original.height,
77
77
  this.iconRef
78
78
  )}
79
- showMedia={showMedia}
79
+ url={cell.row.original.url}
80
+ onRequestClose={this.evtHandlers.onClose}
81
+ />
82
+ )}
83
+ {cell.row.values.type === ASSET_TYPES.AUDIO && showMedia && (
84
+ <AudioPreview
85
+ playbackSettings={playbackSettings}
86
+ style={getMediaPreviewStyle(5, 1, this.iconRef)}
80
87
  url={cell.row.original.url}
81
88
  onRequestClose={this.evtHandlers.onClose}
82
89
  />
@@ -0,0 +1,113 @@
1
+ import * as React from 'react';
2
+ import Portal from '../portal/Portal';
3
+ import Button from '../button/Button';
4
+ import { assets as copy } from '../../constants/copy';
5
+ import { ICON_TIMES } from '../../constants/icons';
6
+
7
+ interface IAudioPreviewProps {
8
+ url: string;
9
+ playbackSettings?: any;
10
+ style?: React.CSSProperties | any;
11
+ onRequestClose?(): void;
12
+ }
13
+
14
+ interface IAudioPreviewState {
15
+ error: boolean;
16
+ loaded: boolean;
17
+ }
18
+
19
+ class AudioPreview extends React.PureComponent<IAudioPreviewProps, IAudioPreviewState> {
20
+ private audioNode: any = null;
21
+
22
+ private audioRef: any = null;
23
+
24
+ private evtHandlers: any;
25
+
26
+ private clickHandler: any = (e) => this.detectOutsideClick(e);
27
+
28
+ private clickOutsideTimeout: any;
29
+
30
+ constructor(props) {
31
+ super(props);
32
+ this.audioNode = React.createRef();
33
+ this.audioRef = React.createRef();
34
+ this.evtHandlers = {
35
+ onClose: (e) => this.onClose(e)
36
+ };
37
+ this.state = {
38
+ error: false,
39
+ loaded: false
40
+ };
41
+ }
42
+
43
+ public componentDidMount() {
44
+ clearTimeout(this.clickOutsideTimeout);
45
+ this.clickOutsideTimeout = setTimeout(() => {
46
+ window.addEventListener('click', this.clickHandler);
47
+ }, 25);
48
+ }
49
+
50
+ public componentWillUnmount(): void {
51
+ clearTimeout(this.clickOutsideTimeout);
52
+ window.removeEventListener('click', this.clickHandler);
53
+ }
54
+
55
+ private detectOutsideClick = (e: any): void => {
56
+ const { target } = e;
57
+
58
+ const clickInside =
59
+ this.audioRef.current && this.audioRef.current.contains(target) ? true : false;
60
+
61
+ if (!clickInside) {
62
+ this.onClose(e);
63
+ }
64
+ };
65
+
66
+ private onClose(e) {
67
+ const { onRequestClose } = this.props;
68
+ onRequestClose();
69
+ }
70
+
71
+ public render() {
72
+ const { url, playbackSettings, style } = this.props;
73
+ const { error } = this.state;
74
+ return (
75
+ <Portal id='portal-root'>
76
+ <div ref={this.audioRef}>
77
+ <div
78
+ style={{ ...style }}
79
+ className={'close-icon-preview'}>
80
+ <Button
81
+ key='btn-filter'
82
+ onClick={this.evtHandlers.onClose}
83
+ size={'large'}
84
+ style='subtle'
85
+ tooltip={copy.field.tooltipFilter}>
86
+ {ICON_TIMES}
87
+ </Button>
88
+ </div>
89
+ <audio
90
+ style={style}
91
+ onError={() => this.setState({ loaded: true, error: true })}
92
+ onCanPlayThrough={() => this.setState({ loaded: true })}
93
+ ref={this.audioNode}
94
+ autoPlay={playbackSettings.autoPlay}
95
+ loop={playbackSettings.loop}
96
+ controls
97
+ src={url}
98
+ className='asset-preview-background media-preview'
99
+ />
100
+ {error ? (
101
+ <div
102
+ className='error-preview audio'
103
+ style={style}>
104
+ Audio not found
105
+ </div>
106
+ ) : null}
107
+ </div>
108
+ </Portal>
109
+ );
110
+ }
111
+ }
112
+
113
+ export default AudioPreview;
@@ -4,7 +4,6 @@ import { ICON_TIMES } from '../../constants/icons';
4
4
  import Button from '../button/Button';
5
5
  import { assets as copy } from '../../constants/copy';
6
6
  interface IImagePreviewProps {
7
- showMedia: boolean;
8
7
  url: string;
9
8
  playbackSettings?: any;
10
9
  style?: React.CSSProperties | any;
@@ -12,37 +11,66 @@ interface IImagePreviewProps {
12
11
  }
13
12
 
14
13
  interface IImagePreviewState {
14
+ error: boolean;
15
15
  loaded: boolean;
16
16
  }
17
17
 
18
18
  class ImagePreview extends React.PureComponent<IImagePreviewProps, IImagePreviewState> {
19
19
  private imageNode: any = null;
20
20
 
21
+ private imageRef: any = null;
22
+
21
23
  private evtHandlers: any;
22
24
 
25
+ private clickHandler: any = (e) => this.detectOutsideClick(e);
26
+
27
+ private clickOutsideTimeout: any;
28
+
23
29
  constructor(props) {
24
30
  super(props);
25
31
  this.imageNode = React.createRef();
32
+ this.imageRef = React.createRef();
26
33
  this.evtHandlers = {
27
34
  onClose: (e) => this.onClose(e)
28
35
  };
29
36
  this.state = {
37
+ error: false,
30
38
  loaded: false
31
39
  };
32
40
  }
33
41
 
42
+ public componentDidMount() {
43
+ clearTimeout(this.clickOutsideTimeout);
44
+ this.clickOutsideTimeout = setTimeout(() => {
45
+ window.addEventListener('click', this.clickHandler);
46
+ }, 25);
47
+ }
48
+
49
+ public componentWillUnmount(): void {
50
+ clearTimeout(this.clickOutsideTimeout);
51
+ window.removeEventListener('click', this.clickHandler);
52
+ }
53
+
54
+ private detectOutsideClick = (e: any): void => {
55
+ const { target } = e;
56
+ const clickInside =
57
+ this.imageRef.current && this.imageRef.current.contains(target) ? true : false;
58
+ if (!clickInside) {
59
+ this.onClose(e);
60
+ }
61
+ };
62
+
34
63
  private onClose(e) {
35
64
  const { onRequestClose } = this.props;
36
- e.stopPropagation();
37
65
  onRequestClose();
38
66
  }
39
67
 
40
68
  public render() {
41
- const { showMedia, url, style } = this.props;
42
- const { loaded } = this.state;
43
- if (showMedia) {
44
- return (
45
- <Portal id='portal-root'>
69
+ const { url, style } = this.props;
70
+ const { error } = this.state;
71
+ return (
72
+ <Portal id='portal-root'>
73
+ <div ref={this.imageRef}>
46
74
  <div
47
75
  style={{ ...style }}
48
76
  className={'close-icon-preview'}>
@@ -56,19 +84,23 @@ class ImagePreview extends React.PureComponent<IImagePreviewProps, IImagePreview
56
84
  </Button>
57
85
  </div>
58
86
  <img
87
+ onError={() => this.setState({ error: true, loaded: true })}
59
88
  onLoad={() => this.setState({ loaded: true })}
60
89
  src={url}
61
90
  ref={this.imageNode}
62
- className={`asset-preview-background media-preview ${
63
- !loaded ? 'hidden' : ''
64
- }`}
91
+ className={`asset-preview-background media-preview`}
65
92
  style={style}
66
93
  />
67
- </Portal>
68
- );
69
- } else {
70
- return null;
71
- }
94
+ {error ? (
95
+ <div
96
+ className='error-preview'
97
+ style={style}>
98
+ Image not found
99
+ </div>
100
+ ) : null}
101
+ </div>
102
+ </Portal>
103
+ );
72
104
  }
73
105
  }
74
106
 
@@ -5,37 +5,76 @@ import { assets as copy } from '../../constants/copy';
5
5
  import { ICON_TIMES } from '../../constants/icons';
6
6
 
7
7
  interface IVideoPreviewProps {
8
- showMedia: boolean;
9
8
  url: string;
10
9
  playbackSettings?: any;
11
10
  style?: React.CSSProperties | any;
12
11
  onRequestClose?(): void;
13
12
  }
14
13
 
15
- class VideoPreview extends React.PureComponent<IVideoPreviewProps> {
14
+ interface IVideoPreviewState {
15
+ error: boolean;
16
+ loaded: boolean;
17
+ }
18
+
19
+ class VideoPreview extends React.PureComponent<IVideoPreviewProps, IVideoPreviewState> {
16
20
  private videoNode: any = null;
17
21
 
22
+ private videoRef: any = null;
23
+
18
24
  private evtHandlers: any;
19
25
 
26
+ private clickHandler: any = (e) => this.detectOutsideClick(e);
27
+
28
+ private clickOutsideTimeout: any;
29
+
20
30
  constructor(props) {
21
31
  super(props);
22
32
  this.videoNode = React.createRef();
33
+ this.videoRef = React.createRef();
23
34
  this.evtHandlers = {
24
35
  onClose: (e) => this.onClose(e)
25
36
  };
37
+
38
+ this.state = {
39
+ error: false,
40
+ loaded: false
41
+ };
42
+ }
43
+
44
+ public componentDidMount() {
45
+ clearTimeout(this.clickOutsideTimeout);
46
+ this.clickOutsideTimeout = setTimeout(() => {
47
+ window.addEventListener('click', this.clickHandler);
48
+ }, 25);
49
+ }
50
+
51
+ public componentWillUnmount(): void {
52
+ clearTimeout(this.clickOutsideTimeout);
53
+ window.removeEventListener('click', this.clickHandler);
26
54
  }
27
55
 
56
+ private detectOutsideClick = (e: any): void => {
57
+ const { target } = e;
58
+
59
+ const clickInside =
60
+ this.videoRef.current && this.videoRef.current.contains(target) ? true : false;
61
+
62
+ if (!clickInside) {
63
+ this.onClose(e);
64
+ }
65
+ };
66
+
28
67
  private onClose(e) {
29
68
  const { onRequestClose } = this.props;
30
- e.stopPropagation();
31
69
  onRequestClose();
32
70
  }
33
71
 
34
72
  public render() {
35
- const { showMedia, url, playbackSettings, style } = this.props;
36
- if (showMedia) {
37
- return (
38
- <Portal id='portal-root'>
73
+ const { url, playbackSettings, style } = this.props;
74
+ const { error } = this.state;
75
+ return (
76
+ <Portal id='portal-root'>
77
+ <div ref={this.videoRef}>
39
78
  <div
40
79
  style={{ ...style }}
41
80
  className={'close-icon-preview'}>
@@ -49,6 +88,8 @@ class VideoPreview extends React.PureComponent<IVideoPreviewProps> {
49
88
  </Button>
50
89
  </div>
51
90
  <video
91
+ onError={() => this.setState({ error: true, loaded: true })}
92
+ onCanPlayThrough={() => this.setState({ loaded: true })}
52
93
  style={style}
53
94
  muted
54
95
  ref={this.videoNode}
@@ -60,11 +101,16 @@ class VideoPreview extends React.PureComponent<IVideoPreviewProps> {
60
101
  src={url}
61
102
  className='asset-preview-background media-preview'
62
103
  />
63
- </Portal>
64
- );
65
- } else {
66
- return null;
67
- }
104
+ {error ? (
105
+ <div
106
+ className='error-preview'
107
+ style={style}>
108
+ Video not found
109
+ </div>
110
+ ) : null}
111
+ </div>
112
+ </Portal>
113
+ );
68
114
  }
69
115
  }
70
116
 
package/src/index.ts CHANGED
@@ -145,6 +145,7 @@ import PublishStatusIndicator from './components/publish-wizard/publish/PublishS
145
145
  import { getMediaPreviewStyle } from './utils/assets';
146
146
  import AdvancedNumberField from './components/advanced-number-field/AdvancedNumberField';
147
147
  import FontPicker from './components/font-picker/FontPicker';
148
+ import AudioPreview from './components/players/AudioPreview';
148
149
 
149
150
  export {
150
151
  AppWrapper,
@@ -190,6 +191,7 @@ export {
190
191
  AudioPlayer,
191
192
  VideoPreview,
192
193
  ImagePreview,
194
+ AudioPreview,
193
195
  ImageSequencePlayer,
194
196
  AssetsTypeIcon,
195
197
  AssetsTableDateCell,
@@ -4,9 +4,9 @@ import { CSSProperties } from 'react';
4
4
  export const getMediaPreviewStyle = (
5
5
  mediaWidth: number,
6
6
  mediaHeight: number,
7
- ref: any
7
+ element: any
8
8
  ): CSSProperties => {
9
- if (!ref.current) {
9
+ if (!element) {
10
10
  return;
11
11
  }
12
12
  if (!mediaWidth) {
@@ -15,8 +15,12 @@ export const getMediaPreviewStyle = (
15
15
  if (!mediaHeight) {
16
16
  mediaHeight = PREVIEW_MAX_HEIGHT;
17
17
  }
18
- const icon = ref.current;
19
- const iconRect = icon.getBoundingClientRect();
18
+
19
+ const elementDiv = element.current !== undefined ? element.current : element;
20
+ if (!elementDiv) {
21
+ return;
22
+ }
23
+ const iconRect = elementDiv.getBoundingClientRect();
20
24
  const aspect: number = mediaWidth / mediaHeight;
21
25
  let width: number = PREVIEW_MAX_WIDTH;
22
26
  let height: number = width / aspect;