@atlaskit/media-common 2.10.2 → 2.12.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/media-common
2
2
 
3
+ ## 2.12.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`bac667f95d5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bac667f95d5) - Export utility filterFeatureFlagNames and type RequiredMediaFeatureFlags
8
+
9
+ ## 2.11.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`8742dbe70bd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8742dbe70bd) - MEX-1102 Removed lodash dependencies from media component and converted all to local functions (lightweight helpers)
14
+
15
+ ## 2.10.3
16
+
17
+ ### Patch Changes
18
+
19
+ - [`5293a48368e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5293a48368e) - fix image size in layout with ref and width observer
20
+
3
21
  ## 2.10.2
4
22
 
5
23
  ### Patch Changes
package/dist/cjs/index.js CHANGED
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "areEqualFeatureFlags", {
15
15
  return _mediaFeatureFlags.areEqualFeatureFlags;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "debounce", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _helpers.debounce;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "defaultMediaFeatureFlags", {
19
25
  enumerable: true,
20
26
  get: function get() {
@@ -27,6 +33,12 @@ Object.defineProperty(exports, "downloadUrl", {
27
33
  return _downloadUrl.downloadUrl;
28
34
  }
29
35
  });
36
+ Object.defineProperty(exports, "filterFeatureFlagNames", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _mediaFeatureFlags.filterFeatureFlagNames;
40
+ }
41
+ });
30
42
  Object.defineProperty(exports, "getMediaFeatureFlag", {
31
43
  enumerable: true,
32
44
  get: function get() {
@@ -81,6 +93,12 @@ Object.defineProperty(exports, "isMimeTypeSupportedByServer", {
81
93
  return _mediaTypeUtils.isMimeTypeSupportedByServer;
82
94
  }
83
95
  });
96
+ Object.defineProperty(exports, "isUndefined", {
97
+ enumerable: true,
98
+ get: function get() {
99
+ return _helpers.isUndefined;
100
+ }
101
+ });
84
102
  Object.defineProperty(exports, "isUnknownMimeTypeSupportedByServer", {
85
103
  enumerable: true,
86
104
  get: function get() {
@@ -93,6 +111,24 @@ Object.defineProperty(exports, "isVideoMimeTypeSupportedByServer", {
93
111
  return _mediaTypeUtils.isVideoMimeTypeSupportedByServer;
94
112
  }
95
113
  });
114
+ Object.defineProperty(exports, "matches", {
115
+ enumerable: true,
116
+ get: function get() {
117
+ return _helpers.matches;
118
+ }
119
+ });
120
+ Object.defineProperty(exports, "omitBy", {
121
+ enumerable: true,
122
+ get: function get() {
123
+ return _helpers.omitBy;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "pick", {
127
+ enumerable: true,
128
+ get: function get() {
129
+ return _helpers.pick;
130
+ }
131
+ });
96
132
  Object.defineProperty(exports, "useMemoizeFeatureFlags", {
97
133
  enumerable: true,
98
134
  get: function get() {
@@ -114,4 +150,6 @@ var _withMediaAnalyticsContext = require("./analytics/withMediaAnalyticsContext"
114
150
 
115
151
  var _constants = require("./analytics/constants");
116
152
 
117
- var _mediaTypeUtils = require("./mediaTypeUtils");
153
+ var _mediaTypeUtils = require("./mediaTypeUtils");
154
+
155
+ var _helpers = require("./utils/helpers");
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports.defaultMediaFeatureFlags = exports.areEqualFeatureFlags = void 0;
8
+ exports.filterFeatureFlagNames = exports.defaultMediaFeatureFlags = exports.areEqualFeatureFlags = void 0;
7
9
  exports.getMediaFeatureFlag = getMediaFeatureFlag;
8
10
  exports.useMemoizeFeatureFlags = void 0;
9
11
 
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
10
14
  var _react = require("react");
11
15
 
12
16
  var _mediaFeatureFlagLocal = require("./mediaFeatureFlag-local");
@@ -19,7 +23,8 @@ var defaultMediaFeatureFlags = {
19
23
  // We can't yet switch this feature on
20
24
  // TODO https://product-fabric.atlassian.net/browse/MEX-104
21
25
  folderUploads: false,
22
- timestampOnVideo: false
26
+ timestampOnVideo: false,
27
+ observedWidth: false
23
28
  };
24
29
  /**
25
30
  * Public accessor from components to fallback to defaults if flags not passed,
@@ -61,7 +66,7 @@ Object.keys(defaultMediaFeatureFlags).forEach(function (flagName) {
61
66
  // eslint-disable-next-line no-console
62
67
  console.info("%c* LOCAL * MediaFeatureFlag.".concat(flagName, " = ").concat(localOverride), 'font-weight:bold;color:cyan');
63
68
  }
64
- });
69
+ }); // With this type we ensure the object will contain all the flags
65
70
 
66
71
  var areEqualFeatureFlags = function areEqualFeatureFlags(ffA, ffB) {
67
72
  if (!ffA && !ffB) {
@@ -70,15 +75,15 @@ var areEqualFeatureFlags = function areEqualFeatureFlags(ffA, ffB) {
70
75
 
71
76
  if (!ffA || !ffB) {
72
77
  return false;
73
- } // With this type we ensure this object will compare all the flags
74
-
78
+ }
75
79
 
76
80
  var results = {
77
81
  newCardExperience: ffA.newCardExperience === ffB.newCardExperience,
78
82
  captions: ffA.captions === ffB.captions,
79
83
  mediaInline: ffA.mediaInline === ffB.mediaInline,
80
84
  folderUploads: ffA.folderUploads === ffB.folderUploads,
81
- timestampOnVideo: ffA.timestampOnVideo === ffB.timestampOnVideo
85
+ timestampOnVideo: ffA.timestampOnVideo === ffB.timestampOnVideo,
86
+ observedWidth: ffA.observedWidth === ffB.observedWidth
82
87
  };
83
88
  return Object.values(results).every(function (result) {
84
89
  return result;
@@ -97,4 +102,22 @@ var useMemoizeFeatureFlags = function useMemoizeFeatureFlags(featureFlags) {
97
102
  return ref.current;
98
103
  };
99
104
 
100
- exports.useMemoizeFeatureFlags = useMemoizeFeatureFlags;
105
+ exports.useMemoizeFeatureFlags = useMemoizeFeatureFlags;
106
+
107
+ var filterFeatureFlagNames = function filterFeatureFlagNames(flags) {
108
+ var pairs = Object.entries(flags);
109
+ return pairs.filter(function (_ref) {
110
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
111
+ _key = _ref2[0],
112
+ value = _ref2[1];
113
+
114
+ return !!value;
115
+ }).map(function (_ref3) {
116
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 1),
117
+ key = _ref4[0];
118
+
119
+ return key;
120
+ });
121
+ };
122
+
123
+ exports.filterFeatureFlagNames = filterFeatureFlagNames;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.pick = exports.omitBy = exports.matches = exports.isUndefined = exports.debounce = void 0;
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var isUndefined = function isUndefined(value) {
13
+ return value === undefined;
14
+ };
15
+
16
+ exports.isUndefined = isUndefined;
17
+
18
+ var pick = function pick(obj) {
19
+ var keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
20
+
21
+ if (obj === undefined) {
22
+ return {};
23
+ }
24
+
25
+ return Object.fromEntries(Object.entries(obj).filter(function (_ref) {
26
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 1),
27
+ k = _ref2[0];
28
+
29
+ return keys.includes(k);
30
+ }));
31
+ };
32
+
33
+ exports.pick = pick;
34
+
35
+ var omitBy = function omitBy(obj, predicate) {
36
+ return Object.fromEntries(Object.entries(obj).filter(function (_ref3) {
37
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
38
+ k = _ref4[0],
39
+ v = _ref4[1];
40
+
41
+ return !predicate(v);
42
+ }));
43
+ };
44
+
45
+ exports.omitBy = omitBy;
46
+
47
+ var debounce = function debounce(func, wait) {
48
+ var timeout;
49
+ return function () {
50
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
51
+ args[_key] = arguments[_key];
52
+ }
53
+
54
+ clearTimeout(timeout);
55
+ timeout = setTimeout(function () {
56
+ return func.apply(void 0, args);
57
+ }, wait);
58
+ };
59
+ };
60
+
61
+ exports.debounce = debounce;
62
+
63
+ var matches = function matches(srcObj) {
64
+ return function (obj) {
65
+ var key;
66
+
67
+ for (key in srcObj) {
68
+ if (obj[key] === undefined || obj[key] !== srcObj[key]) {
69
+ return false;
70
+ }
71
+ }
72
+
73
+ return true;
74
+ };
75
+ };
76
+
77
+ exports.matches = matches;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-common",
3
- "version": "2.10.2",
3
+ "version": "2.12.0",
4
4
  "sideEffects": false
5
5
  }
@@ -2,9 +2,10 @@ export { downloadUrl } from './downloadUrl'; // Warning! You can't add new media
2
2
  // See packages/media/media-core/src/__tests__/cache-backward-compatibility.spec.ts
3
3
 
4
4
  // Media Feature Flags
5
- export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags } from './mediaFeatureFlags';
5
+ export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags, filterFeatureFlagNames } from './mediaFeatureFlags';
6
6
  // Analytics context
7
7
  export { withMediaAnalyticsContext } from './analytics/withMediaAnalyticsContext'; // Analytics constants
8
8
 
9
9
  export { ANALYTICS_MEDIA_CHANNEL } from './analytics/constants';
10
- export { getMediaTypeFromMimeType, isImageMimeTypeSupportedByBrowser, isDocumentMimeTypeSupportedByBrowser, isMimeTypeSupportedByBrowser, isImageMimeTypeSupportedByServer, isDocumentMimeTypeSupportedByServer, isAudioMimeTypeSupportedByServer, isVideoMimeTypeSupportedByServer, isUnknownMimeTypeSupportedByServer, isMimeTypeSupportedByServer } from './mediaTypeUtils';
10
+ export { getMediaTypeFromMimeType, isImageMimeTypeSupportedByBrowser, isDocumentMimeTypeSupportedByBrowser, isMimeTypeSupportedByBrowser, isImageMimeTypeSupportedByServer, isDocumentMimeTypeSupportedByServer, isAudioMimeTypeSupportedByServer, isVideoMimeTypeSupportedByServer, isUnknownMimeTypeSupportedByServer, isMimeTypeSupportedByServer } from './mediaTypeUtils';
11
+ export { isUndefined, pick, omitBy, debounce, matches } from './utils/helpers';
@@ -9,7 +9,8 @@ export const defaultMediaFeatureFlags = {
9
9
  // We can't yet switch this feature on
10
10
  // TODO https://product-fabric.atlassian.net/browse/MEX-104
11
11
  folderUploads: false,
12
- timestampOnVideo: false
12
+ timestampOnVideo: false,
13
+ observedWidth: false
13
14
  };
14
15
  /**
15
16
  * Public accessor from components to fallback to defaults if flags not passed,
@@ -48,7 +49,8 @@ Object.keys(defaultMediaFeatureFlags).forEach(flagName => {
48
49
  // eslint-disable-next-line no-console
49
50
  console.info(`%c* LOCAL * MediaFeatureFlag.${flagName} = ${localOverride}`, 'font-weight:bold;color:cyan');
50
51
  }
51
- });
52
+ }); // With this type we ensure the object will contain all the flags
53
+
52
54
  export const areEqualFeatureFlags = (ffA, ffB) => {
53
55
  if (!ffA && !ffB) {
54
56
  return true;
@@ -56,15 +58,15 @@ export const areEqualFeatureFlags = (ffA, ffB) => {
56
58
 
57
59
  if (!ffA || !ffB) {
58
60
  return false;
59
- } // With this type we ensure this object will compare all the flags
60
-
61
+ }
61
62
 
62
63
  const results = {
63
64
  newCardExperience: ffA.newCardExperience === ffB.newCardExperience,
64
65
  captions: ffA.captions === ffB.captions,
65
66
  mediaInline: ffA.mediaInline === ffB.mediaInline,
66
67
  folderUploads: ffA.folderUploads === ffB.folderUploads,
67
- timestampOnVideo: ffA.timestampOnVideo === ffB.timestampOnVideo
68
+ timestampOnVideo: ffA.timestampOnVideo === ffB.timestampOnVideo,
69
+ observedWidth: ffA.observedWidth === ffB.observedWidth
68
70
  };
69
71
  return Object.values(results).every(result => result);
70
72
  };
@@ -76,4 +78,8 @@ export const useMemoizeFeatureFlags = featureFlags => {
76
78
  }
77
79
 
78
80
  return ref.current;
81
+ };
82
+ export const filterFeatureFlagNames = flags => {
83
+ const pairs = Object.entries(flags);
84
+ return pairs.filter(([_key, value]) => !!value).map(([key]) => key);
79
85
  };
@@ -0,0 +1,29 @@
1
+ export const isUndefined = value => value === undefined;
2
+ export const pick = (obj, keys = []) => {
3
+ if (obj === undefined) {
4
+ return {};
5
+ }
6
+
7
+ return Object.fromEntries(Object.entries(obj).filter(([k]) => keys.includes(k)));
8
+ };
9
+ export const omitBy = (obj, predicate) => Object.fromEntries(Object.entries(obj).filter(([k, v]) => !predicate(v)));
10
+ export const debounce = (func, wait) => {
11
+ let timeout;
12
+ return (...args) => {
13
+ clearTimeout(timeout);
14
+ timeout = setTimeout(() => func(...args), wait);
15
+ };
16
+ };
17
+ export const matches = srcObj => {
18
+ return obj => {
19
+ let key;
20
+
21
+ for (key in srcObj) {
22
+ if (obj[key] === undefined || obj[key] !== srcObj[key]) {
23
+ return false;
24
+ }
25
+ }
26
+
27
+ return true;
28
+ };
29
+ };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-common",
3
- "version": "2.10.2",
3
+ "version": "2.12.0",
4
4
  "sideEffects": false
5
5
  }
package/dist/esm/index.js CHANGED
@@ -2,9 +2,10 @@ export { downloadUrl } from './downloadUrl'; // Warning! You can't add new media
2
2
  // See packages/media/media-core/src/__tests__/cache-backward-compatibility.spec.ts
3
3
 
4
4
  // Media Feature Flags
5
- export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags } from './mediaFeatureFlags';
5
+ export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags, filterFeatureFlagNames } from './mediaFeatureFlags';
6
6
  // Analytics context
7
7
  export { withMediaAnalyticsContext } from './analytics/withMediaAnalyticsContext'; // Analytics constants
8
8
 
9
9
  export { ANALYTICS_MEDIA_CHANNEL } from './analytics/constants';
10
- export { getMediaTypeFromMimeType, isImageMimeTypeSupportedByBrowser, isDocumentMimeTypeSupportedByBrowser, isMimeTypeSupportedByBrowser, isImageMimeTypeSupportedByServer, isDocumentMimeTypeSupportedByServer, isAudioMimeTypeSupportedByServer, isVideoMimeTypeSupportedByServer, isUnknownMimeTypeSupportedByServer, isMimeTypeSupportedByServer } from './mediaTypeUtils';
10
+ export { getMediaTypeFromMimeType, isImageMimeTypeSupportedByBrowser, isDocumentMimeTypeSupportedByBrowser, isMimeTypeSupportedByBrowser, isImageMimeTypeSupportedByServer, isDocumentMimeTypeSupportedByServer, isAudioMimeTypeSupportedByServer, isVideoMimeTypeSupportedByServer, isUnknownMimeTypeSupportedByServer, isMimeTypeSupportedByServer } from './mediaTypeUtils';
11
+ export { isUndefined, pick, omitBy, debounce, matches } from './utils/helpers';
@@ -1,3 +1,4 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import { useRef } from 'react';
2
3
  import { getLocalMediaFeatureFlag } from './mediaFeatureFlag-local'; // Media feature flags - type and defaults defined here in one source of truth
3
4
 
@@ -9,7 +10,8 @@ export var defaultMediaFeatureFlags = {
9
10
  // We can't yet switch this feature on
10
11
  // TODO https://product-fabric.atlassian.net/browse/MEX-104
11
12
  folderUploads: false,
12
- timestampOnVideo: false
13
+ timestampOnVideo: false,
14
+ observedWidth: false
13
15
  };
14
16
  /**
15
17
  * Public accessor from components to fallback to defaults if flags not passed,
@@ -48,7 +50,8 @@ Object.keys(defaultMediaFeatureFlags).forEach(function (flagName) {
48
50
  // eslint-disable-next-line no-console
49
51
  console.info("%c* LOCAL * MediaFeatureFlag.".concat(flagName, " = ").concat(localOverride), 'font-weight:bold;color:cyan');
50
52
  }
51
- });
53
+ }); // With this type we ensure the object will contain all the flags
54
+
52
55
  export var areEqualFeatureFlags = function areEqualFeatureFlags(ffA, ffB) {
53
56
  if (!ffA && !ffB) {
54
57
  return true;
@@ -56,15 +59,15 @@ export var areEqualFeatureFlags = function areEqualFeatureFlags(ffA, ffB) {
56
59
 
57
60
  if (!ffA || !ffB) {
58
61
  return false;
59
- } // With this type we ensure this object will compare all the flags
60
-
62
+ }
61
63
 
62
64
  var results = {
63
65
  newCardExperience: ffA.newCardExperience === ffB.newCardExperience,
64
66
  captions: ffA.captions === ffB.captions,
65
67
  mediaInline: ffA.mediaInline === ffB.mediaInline,
66
68
  folderUploads: ffA.folderUploads === ffB.folderUploads,
67
- timestampOnVideo: ffA.timestampOnVideo === ffB.timestampOnVideo
69
+ timestampOnVideo: ffA.timestampOnVideo === ffB.timestampOnVideo,
70
+ observedWidth: ffA.observedWidth === ffB.observedWidth
68
71
  };
69
72
  return Object.values(results).every(function (result) {
70
73
  return result;
@@ -78,4 +81,19 @@ export var useMemoizeFeatureFlags = function useMemoizeFeatureFlags(featureFlags
78
81
  }
79
82
 
80
83
  return ref.current;
84
+ };
85
+ export var filterFeatureFlagNames = function filterFeatureFlagNames(flags) {
86
+ var pairs = Object.entries(flags);
87
+ return pairs.filter(function (_ref) {
88
+ var _ref2 = _slicedToArray(_ref, 2),
89
+ _key = _ref2[0],
90
+ value = _ref2[1];
91
+
92
+ return !!value;
93
+ }).map(function (_ref3) {
94
+ var _ref4 = _slicedToArray(_ref3, 1),
95
+ key = _ref4[0];
96
+
97
+ return key;
98
+ });
81
99
  };
@@ -0,0 +1,53 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ export var isUndefined = function isUndefined(value) {
3
+ return value === undefined;
4
+ };
5
+ export var pick = function pick(obj) {
6
+ var keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
7
+
8
+ if (obj === undefined) {
9
+ return {};
10
+ }
11
+
12
+ return Object.fromEntries(Object.entries(obj).filter(function (_ref) {
13
+ var _ref2 = _slicedToArray(_ref, 1),
14
+ k = _ref2[0];
15
+
16
+ return keys.includes(k);
17
+ }));
18
+ };
19
+ export var omitBy = function omitBy(obj, predicate) {
20
+ return Object.fromEntries(Object.entries(obj).filter(function (_ref3) {
21
+ var _ref4 = _slicedToArray(_ref3, 2),
22
+ k = _ref4[0],
23
+ v = _ref4[1];
24
+
25
+ return !predicate(v);
26
+ }));
27
+ };
28
+ export var debounce = function debounce(func, wait) {
29
+ var timeout;
30
+ return function () {
31
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
32
+ args[_key] = arguments[_key];
33
+ }
34
+
35
+ clearTimeout(timeout);
36
+ timeout = setTimeout(function () {
37
+ return func.apply(void 0, args);
38
+ }, wait);
39
+ };
40
+ };
41
+ export var matches = function matches(srcObj) {
42
+ return function (obj) {
43
+ var key;
44
+
45
+ for (key in srcObj) {
46
+ if (obj[key] === undefined || obj[key] !== srcObj[key]) {
47
+ return false;
48
+ }
49
+ }
50
+
51
+ return true;
52
+ };
53
+ };
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/media-common",
3
- "version": "2.10.2",
3
+ "version": "2.12.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,8 +1,8 @@
1
1
  export { downloadUrl } from './downloadUrl';
2
2
  export declare type MediaType = 'doc' | 'audio' | 'video' | 'image' | 'archive' | 'unknown';
3
3
  export declare type FileStatus = 'uploading' | 'processing' | 'processed' | 'error' | 'failed-processing';
4
- export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags, } from './mediaFeatureFlags';
5
- export type { MediaFeatureFlags, WithMediaFeatureFlags, } from './mediaFeatureFlags';
4
+ export { getMediaFeatureFlag, defaultMediaFeatureFlags, areEqualFeatureFlags, useMemoizeFeatureFlags, filterFeatureFlagNames, } from './mediaFeatureFlags';
5
+ export type { MediaFeatureFlags, WithMediaFeatureFlags, RequiredMediaFeatureFlags, } from './mediaFeatureFlags';
6
6
  export interface NumericalCardDimensions {
7
7
  width: number;
8
8
  height: number;
@@ -12,3 +12,4 @@ export { withMediaAnalyticsContext } from './analytics/withMediaAnalyticsContext
12
12
  export { ANALYTICS_MEDIA_CHANNEL } from './analytics/constants';
13
13
  export { getMediaTypeFromMimeType, isImageMimeTypeSupportedByBrowser, isDocumentMimeTypeSupportedByBrowser, isMimeTypeSupportedByBrowser, isImageMimeTypeSupportedByServer, isDocumentMimeTypeSupportedByServer, isAudioMimeTypeSupportedByServer, isVideoMimeTypeSupportedByServer, isUnknownMimeTypeSupportedByServer, isMimeTypeSupportedByServer, } from './mediaTypeUtils';
14
14
  export declare type SSR = 'client' | 'server';
15
+ export { isUndefined, pick, omitBy, debounce, matches } from './utils/helpers';
@@ -4,6 +4,7 @@ export interface MediaFeatureFlags {
4
4
  mediaInline?: boolean;
5
5
  folderUploads?: boolean;
6
6
  timestampOnVideo?: boolean;
7
+ observedWidth?: boolean;
7
8
  }
8
9
  export interface WithMediaFeatureFlags {
9
10
  featureFlags?: MediaFeatureFlags;
@@ -20,5 +21,7 @@ export declare const defaultMediaFeatureFlags: Required<MediaFeatureFlags>;
20
21
  * (you will see a warning in console if override used)
21
22
  * */
22
23
  export declare function getMediaFeatureFlag<T = boolean>(flagName: keyof MediaFeatureFlags, featureFlags?: MediaFeatureFlags): T;
24
+ export declare type RequiredMediaFeatureFlags = Record<keyof Required<MediaFeatureFlags>, boolean>;
23
25
  export declare const areEqualFeatureFlags: (ffA?: MediaFeatureFlags | undefined, ffB?: MediaFeatureFlags | undefined) => boolean;
24
26
  export declare const useMemoizeFeatureFlags: (featureFlags?: MediaFeatureFlags | undefined) => MediaFeatureFlags | undefined;
27
+ export declare const filterFeatureFlagNames: (flags: RequiredMediaFeatureFlags) => Array<keyof MediaFeatureFlags>;
@@ -0,0 +1,9 @@
1
+ export declare const isUndefined: (value: any) => boolean;
2
+ export declare const pick: (obj?: Object | undefined, keys?: Array<String>) => {
3
+ [k: string]: any;
4
+ };
5
+ export declare const omitBy: (obj: Object, predicate: Function) => {
6
+ [k: string]: any;
7
+ };
8
+ export declare const debounce: (func: Function, wait: number) => (...args: any[]) => void;
9
+ export declare const matches: (srcObj: Object) => (obj: Object) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/media-common",
3
- "version": "2.10.2",
3
+ "version": "2.12.0",
4
4
  "description": "Includes common utilities used by other media packages",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -33,7 +33,7 @@
33
33
  "scripts": {},
34
34
  "dependencies": {
35
35
  "@atlaskit/analytics-gas-types": "^5.0.5",
36
- "@atlaskit/analytics-namespaced-context": "^6.2.0",
36
+ "@atlaskit/analytics-namespaced-context": "^6.4.0",
37
37
  "@atlaskit/analytics-next": "^8.1.1",
38
38
  "@atlaskit/section-message": "^6.0.0",
39
39
  "@babel/runtime": "^7.0.0"
@@ -44,13 +44,12 @@
44
44
  },
45
45
  "devDependencies": {
46
46
  "@atlaskit/docs": "*",
47
- "@atlaskit/media-test-helpers": "^29.0.0",
47
+ "@atlaskit/media-test-helpers": "^29.4.0",
48
48
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
49
49
  "enzyme": "^3.10.0",
50
- "lodash": "^4.17.21",
51
50
  "react": "^16.8.0",
52
51
  "react-dom": "^16.8.0",
53
- "typescript": "3.9.6"
52
+ "typescript": "3.9.10"
54
53
  },
55
54
  "prettier": "@atlassian/atlassian-frontend-prettier-config-1.0.1"
56
55
  }