@atlaskit/media-picker 59.0.3 → 60.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 (43) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/dist/cjs/components/clipboard/clipboard.js +6 -1
  3. package/dist/cjs/components/localUploadReact.js +21 -1
  4. package/dist/cjs/components/popup.js +6 -143
  5. package/dist/cjs/plugins/extractors/index.js +2 -2
  6. package/dist/cjs/plugins/forge/components/index.js +3 -3
  7. package/dist/cjs/popup/components/views/browser/folderView/folderView.js +2 -2
  8. package/dist/cjs/popup/middleware/analyticsProcessing.js +1 -3
  9. package/dist/cjs/popup/middleware/handleCloudFetchingEvent.js +3 -1
  10. package/dist/cjs/popup/middleware/importFiles.js +4 -2
  11. package/dist/cjs/popup/tools/observableToPromise.js +34 -0
  12. package/dist/cjs/util/ufoExperiences.js +76 -0
  13. package/dist/cjs/version.json +1 -1
  14. package/dist/es2019/components/clipboard/clipboard.js +6 -1
  15. package/dist/es2019/components/localUploadReact.js +16 -0
  16. package/dist/es2019/components/popup.js +6 -108
  17. package/dist/es2019/plugins/extractors/index.js +1 -1
  18. package/dist/es2019/plugins/forge/components/index.js +1 -1
  19. package/dist/es2019/popup/components/views/browser/folderView/folderView.js +2 -2
  20. package/dist/es2019/popup/middleware/analyticsProcessing.js +1 -2
  21. package/dist/es2019/popup/middleware/handleCloudFetchingEvent.js +2 -1
  22. package/dist/es2019/popup/middleware/importFiles.js +3 -2
  23. package/dist/es2019/popup/tools/observableToPromise.js +22 -0
  24. package/dist/es2019/util/ufoExperiences.js +50 -0
  25. package/dist/es2019/version.json +1 -1
  26. package/dist/esm/components/clipboard/clipboard.js +6 -1
  27. package/dist/esm/components/localUploadReact.js +20 -1
  28. package/dist/esm/components/popup.js +6 -128
  29. package/dist/esm/plugins/extractors/index.js +1 -1
  30. package/dist/esm/plugins/forge/components/index.js +1 -1
  31. package/dist/esm/popup/components/views/browser/folderView/folderView.js +2 -2
  32. package/dist/esm/popup/middleware/analyticsProcessing.js +1 -2
  33. package/dist/esm/popup/middleware/handleCloudFetchingEvent.js +2 -1
  34. package/dist/esm/popup/middleware/importFiles.js +3 -2
  35. package/dist/esm/popup/tools/observableToPromise.js +25 -0
  36. package/dist/esm/util/ufoExperiences.js +57 -0
  37. package/dist/esm/version.json +1 -1
  38. package/dist/types/components/popup.d.ts +0 -7
  39. package/dist/types/popup/actions/saveCollectionItemsSubscription.d.ts +3 -3
  40. package/dist/types/popup/domain/index.d.ts +2 -3
  41. package/dist/types/popup/tools/observableToPromise.d.ts +10 -0
  42. package/dist/types/util/ufoExperiences.d.ts +13 -0
  43. package/package.json +15 -17
package/CHANGELOG.md CHANGED
@@ -1,5 +1,112 @@
1
1
  # @atlaskit/media-picker
2
2
 
3
+ ## 60.0.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`acb60e0107d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/acb60e0107d) - Replicate Media Picker Reliability Events using UFO client library
8
+ - [`fdc41ee7a0b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/fdc41ee7a0b) - Stop exposing observableToPromise from media client API.
9
+ mediaSubscribableToPromise is used internally.
10
+ - [`f862d5ae7aa`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f862d5ae7aa) - remove RxJs peer dependency
11
+ - [`118f3af101f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/118f3af101f) - Media Client APIs has been updated to use MediaSubscribable which provides subscription functionality (similar to RxJs observables).
12
+ It exposes subscribe method that is called with MediaObserver as an argument and returns MediaSubscription.
13
+ MediaSubscription exposes unsubscribe method.
14
+
15
+ getFileState:
16
+ The returned type of this function has changed from RxJs ReplaySubject to MediaSubscribable.
17
+
18
+ ```
19
+ import { MediaClient, MediaObserver, MediaSubscribable, MediaSubscription } from '@atlaskit/media-client';
20
+
21
+ const mediaClient = new MediaClient({ authProvider });
22
+
23
+ const fileStateSubscribable: MediaSubscribable<FileState> = mediaClient.file.getFileState(id);
24
+
25
+ const mediaObserver: MediaObserver<FileState> = {
26
+ next: (fileState) => {
27
+ nextCallback(fileState)
28
+ },
29
+ error: (error) => {
30
+ errorCallback(error)
31
+ },
32
+ };
33
+
34
+ const subscription: MediaSubscription = fileStateSubscribable.subscribe(mediaObserver);
35
+
36
+ subscription.unsubscribe();
37
+ ```
38
+
39
+ upload:
40
+ The returned type of this function has changed from RxJs ReplaySubject to MediaSubscribable.
41
+
42
+ ```
43
+ import { MediaClient, MediaObserver, MediaSubscribable, MediaSubscription } from '@atlaskit/media-client';
44
+
45
+ const mediaClient = new MediaClient({ authProvider });
46
+
47
+ const uploadFileSubscribable: MediaSubscribable<FileState> = mediaClient.file.upload(uploadableFile);
48
+
49
+ const mediaObserver: MediaObserver<FileState> = {
50
+ next: (fileState) => {
51
+ nextCallback(fileState)
52
+ },
53
+ error: (error) => {
54
+ errorCallback(error)
55
+ },
56
+ };
57
+
58
+ const subscription: MediaSubscription = uploadFileSubscribable.subscribe(mediaObserver);
59
+
60
+ subscription.unsubscribe();
61
+ ```
62
+
63
+ getItems:
64
+ The returned type of this function has changed from RxJs ReplaySubject to MediaSubscribable.
65
+
66
+ ```
67
+ import { MediaClient, MediaObserver, MediaSubscribable, MediaSubscription } from '@atlaskit/media-client';
68
+
69
+ const mediaClient = new MediaClient({ authProvider });
70
+
71
+ const collectionItemsSubscribable: MediaSubscribable<MediaCollectionItem[]> = mediaClient.collection.getItems(collectionName);
72
+
73
+ const mediaObserver: MediaObserver<MediaCollectionItem[]> = {
74
+ next: (items) => {
75
+ nextCallback(items)
76
+ },
77
+ error: (error) => {
78
+ errorCallback(error)
79
+ },
80
+ };
81
+
82
+ const subscription: MediaSubscription = collectionItemsSubscribable.subscribe(mediaObserver);
83
+
84
+ subscription.unsubscribe();
85
+ ```
86
+
87
+ - [`0573f4c51b9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0573f4c51b9) - [MEX-1388] Remove MediaPicker PopUp code from bundle
88
+
89
+ ### Patch Changes
90
+
91
+ - Updated dependencies
92
+
93
+ ## 59.1.0
94
+
95
+ ### Minor Changes
96
+
97
+ - [`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)
98
+
99
+ ### Patch Changes
100
+
101
+ - [`b0e810b8a41`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b0e810b8a41) - Disable clipboard paste event handler for input element.
102
+ - Updated dependencies
103
+
104
+ ## 59.0.4
105
+
106
+ ### Patch Changes
107
+
108
+ - [`6a5dc78b511`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6a5dc78b511) - Remove dateformat from media packages
109
+
3
110
  ## 59.0.3
4
111
 
5
112
  ### Patch Changes
@@ -130,7 +130,12 @@ var ClipboardImpl = /*#__PURE__*/function () {
130
130
 
131
131
  (0, _defineProperty2.default)(ClipboardImpl, "instances", []);
132
132
  (0, _defineProperty2.default)(ClipboardImpl, "handleEvent", function (event) {
133
- // last in, first served to support multiple instances listening at once
133
+ // From https://product-fabric.atlassian.net/browse/MEX-1281 ,disable the handler if event target is input
134
+ if (event.target instanceof HTMLInputElement) {
135
+ return;
136
+ } // last in, first served to support multiple instances listening at once
137
+
138
+
134
139
  var instance = ClipboardImpl.latestInstance;
135
140
 
136
141
  if (instance) {
@@ -39,6 +39,8 @@ var _uploadServiceImpl = require("../service/uploadServiceImpl");
39
39
 
40
40
  var _analytics = require("../util/analytics");
41
41
 
42
+ var _ufoExperiences = require("../util/ufoExperiences");
43
+
42
44
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
43
45
 
44
46
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -76,6 +78,8 @@ var LocalUploadComponentReact = /*#__PURE__*/function (_Component) {
76
78
  }
77
79
  }
78
80
  });
81
+
82
+ (0, _ufoExperiences.startMediaUploadUfoExperience)(fileId, _this.componentName);
79
83
  });
80
84
  });
81
85
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fireUploadSucceeded", function (payload) {
@@ -105,6 +109,12 @@ var LocalUploadComponentReact = /*#__PURE__*/function (_Component) {
105
109
  uploadDurationMsec: uploadDurationMsec
106
110
  }
107
111
  });
112
+
113
+ (0, _ufoExperiences.succeedMediaUploadUfoExperience)(fileId, {
114
+ fileId: fileId,
115
+ fileSize: fileSize,
116
+ fileMimetype: fileMimetype
117
+ });
108
118
  });
109
119
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fireUploadFailed", /*#__PURE__*/function () {
110
120
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(payload) {
@@ -136,7 +146,17 @@ var LocalUploadComponentReact = /*#__PURE__*/function (_Component) {
136
146
  }
137
147
  });
138
148
 
139
- case 3:
149
+ (0, _ufoExperiences.failMediaUploadUfoExperience)(fileId, {
150
+ failReason: errorName,
151
+ error: !!rawError ? (0, _mediaClient.getMediaClientErrorReason)(rawError) : 'unknown',
152
+ request: !!rawError ? (0, _analytics.getRequestMetadata)(rawError) : undefined,
153
+ fileAttributes: {
154
+ fileId: fileId
155
+ },
156
+ uploadDurationMsec: uploadDurationMsec
157
+ });
158
+
159
+ case 4:
140
160
  case "end":
141
161
  return _context.stop();
142
162
  }
@@ -13,58 +13,24 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
13
13
 
14
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
15
 
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
17
 
20
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
19
 
22
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
23
-
24
20
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
21
 
26
22
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
23
 
28
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
25
 
30
- var _mediaClient = require("@atlaskit/media-client");
31
-
32
- var _react = _interopRequireDefault(require("react"));
33
-
34
- var _reactDom = require("react-dom");
35
-
36
26
  var exenv = _interopRequireWildcard(require("exenv"));
37
27
 
38
- var _app = _interopRequireDefault(require("../popup/components/app"));
39
-
40
- var _showPopup = require("../popup/actions/showPopup");
41
-
42
- var _getFilesInRecents = require("../popup/actions/getFilesInRecents");
43
-
44
- var _actions = require("../popup/actions");
45
-
46
- var _hidePopup = require("../popup/actions/hidePopup");
47
-
48
- var _cancelUpload = require("../popup/actions/cancelUpload");
49
-
50
- var _failureErrorLogger = require("../popup/actions/failureErrorLogger");
51
-
52
- var _store = require("../store");
53
-
54
28
  var _component = require("./component");
55
29
 
56
- var _uploadParams = require("../domain/uploadParams");
57
-
58
- var _popupAuth = require("./popup-auth");
59
-
60
30
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
61
31
 
62
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
63
33
 
64
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
65
-
66
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
67
-
68
34
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
69
35
 
70
36
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -89,37 +55,6 @@ var PopupImpl = /*#__PURE__*/function (_UploadComponent) {
89
55
  (0, _classCallCheck2.default)(this, PopupImpl);
90
56
  _this = _super.call(this);
91
57
  _this.tenantMediaClient = tenantMediaClient;
92
- _this.proxyReactContext = proxyReactContext;
93
- _this.useForgePlugins = useForgePlugins;
94
- _this.featureFlags = featureFlags;
95
- var userAuthProvider = (0, _popupAuth.createPopupUserAuthProvider)(tenantMediaClient.stargate, tenantMediaClient.config);
96
- var userMediaClient = new _mediaClient.MediaClient({
97
- authProvider: userAuthProvider
98
- });
99
-
100
- var tenantUploadParams = _objectSpread(_objectSpread({}, _uploadParams.defaultUploadParams), uploadParams);
101
-
102
- _this.store = (0, _store.createStore)((0, _assertThisInitialized2.default)(_this), tenantMediaClient, userMediaClient, {
103
- proxyReactContext: proxyReactContext,
104
- singleSelect: singleSelect,
105
- uploadParams: tenantUploadParams,
106
- plugins: plugins,
107
- featureFlags: featureFlags
108
- });
109
- _this.tenantUploadParams = tenantUploadParams;
110
-
111
- var popup = _this.renderPopup();
112
-
113
- if (!popup) {
114
- return (0, _possibleConstructorReturn2.default)(_this);
115
- }
116
-
117
- _this.container = popup;
118
-
119
- if (container) {
120
- container.appendChild(popup);
121
- }
122
-
123
58
  return _this;
124
59
  }
125
60
 
@@ -127,26 +62,15 @@ var PopupImpl = /*#__PURE__*/function (_UploadComponent) {
127
62
  key: "show",
128
63
  value: function () {
129
64
  var _show = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
130
- var dispatch;
131
65
  return _regenerator.default.wrap(function _callee$(_context) {
132
66
  while (1) {
133
67
  switch (_context.prev = _context.next) {
134
68
  case 0:
135
- dispatch = this.store.dispatch;
136
- dispatch((0, _getFilesInRecents.getFilesInRecents)());
137
-
138
- if (this.useForgePlugins) {
139
- dispatch((0, _actions.getForgePlugins)());
140
- }
141
-
142
- dispatch((0, _showPopup.showPopup)());
143
-
144
- case 4:
145
69
  case "end":
146
70
  return _context.stop();
147
71
  }
148
72
  }
149
- }, _callee, this);
73
+ }, _callee);
150
74
  }));
151
75
 
152
76
  function show() {
@@ -163,34 +87,11 @@ var PopupImpl = /*#__PURE__*/function (_UploadComponent) {
163
87
  while (1) {
164
88
  switch (_context2.prev = _context2.next) {
165
89
  case 0:
166
- if (uniqueIdentifier) {
167
- _context2.next = 2;
168
- break;
169
- }
170
-
171
- return _context2.abrupt("return");
172
-
173
- case 2:
174
- _context2.t0 = this.store;
175
- _context2.t1 = _cancelUpload.cancelUpload;
176
- _context2.next = 6;
177
- return uniqueIdentifier;
178
-
179
- case 6:
180
- _context2.t2 = _context2.sent;
181
- _context2.t3 = {
182
- tenantFileId: _context2.t2
183
- };
184
- _context2.t4 = (0, _context2.t1)(_context2.t3);
185
-
186
- _context2.t0.dispatch.call(_context2.t0, _context2.t4);
187
-
188
- case 10:
189
90
  case "end":
190
91
  return _context2.stop();
191
92
  }
192
93
  }
193
- }, _callee2, this);
94
+ }, _callee2);
194
95
  }));
195
96
 
196
97
  function cancel(_x) {
@@ -201,54 +102,16 @@ var PopupImpl = /*#__PURE__*/function (_UploadComponent) {
201
102
  }()
202
103
  }, {
203
104
  key: "teardown",
204
- value: function teardown() {
205
- if (!this.container) {
206
- return;
207
- }
208
-
209
- try {
210
- (0, _reactDom.unmountComponentAtNode)(this.container);
211
- this.container.remove();
212
- } catch (error) {
213
- var dispatch = this.store.dispatch;
214
- dispatch((0, _failureErrorLogger.failureErrorLogger)({
215
- error: error,
216
- info: '`ChildNode#remove()` polyfill is not available in client'
217
- }));
218
- }
219
- }
105
+ value: function teardown() {}
220
106
  }, {
221
107
  key: "hide",
222
- value: function hide() {
223
- this.store.dispatch((0, _hidePopup.hidePopup)());
224
- }
108
+ value: function hide() {}
225
109
  }, {
226
110
  key: "setUploadParams",
227
- value: function setUploadParams(uploadParams) {
228
- this.tenantUploadParams = _objectSpread(_objectSpread({}, _uploadParams.defaultUploadParams), uploadParams);
229
- }
111
+ value: function setUploadParams(uploadParams) {}
230
112
  }, {
231
113
  key: "emitClosed",
232
- value: function emitClosed() {
233
- this.emit('closed', undefined);
234
- }
235
- }, {
236
- key: "renderPopup",
237
- value: function renderPopup() {
238
- if (!exenv.canUseDOM) {
239
- return;
240
- }
241
-
242
- var container = document.createElement('div');
243
- (0, _reactDom.render)( /*#__PURE__*/_react.default.createElement(_app.default, {
244
- store: this.store,
245
- proxyReactContext: this.proxyReactContext,
246
- tenantUploadParams: this.tenantUploadParams,
247
- useForgePlugins: this.useForgePlugins,
248
- featureFlags: this.featureFlags
249
- }), container);
250
- return container;
251
- }
114
+ value: function emitClosed() {}
252
115
  }]);
253
116
  return PopupImpl;
254
117
  }(_component.UploadComponent);
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.getResourceUrl = exports.getImageUrl = exports.getDateString = void 0;
9
9
 
10
- var _dateformat = _interopRequireDefault(require("dateformat"));
10
+ var _format = _interopRequireDefault(require("date-fns/format"));
11
11
 
12
12
  var getImageUrl = function getImageUrl(data) {
13
13
  var image = data.image;
@@ -49,7 +49,7 @@ var getDateString = function getDateString(timestamp) {
49
49
  var todayString = new Date().toDateString();
50
50
  var itemDate = new Date(timestamp);
51
51
  var itemDateString = itemDate.toDateString();
52
- return (0, _dateformat.default)(itemDate, todayString === itemDateString ? 'H:MM TT' : 'd mmm yyyy');
52
+ return (0, _format.default)(itemDate, todayString === itemDateString ? 'H:MM TT' : 'd mmm yyyy');
53
53
  };
54
54
 
55
55
  exports.getDateString = getDateString;
@@ -25,8 +25,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
25
25
 
26
26
  var _react = _interopRequireWildcard(require("react"));
27
27
 
28
- var _debounce = _interopRequireDefault(require("lodash/debounce"));
29
-
30
28
  var _types = require("../types");
31
29
 
32
30
  var _client = require("../client");
@@ -43,6 +41,8 @@ var _error = require("./error");
43
41
 
44
42
  var _utils = require("../utils");
45
43
 
44
+ var _mediaCommon = require("@atlaskit/media-common");
45
+
46
46
  var _icon = require("./icon");
47
47
 
48
48
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -88,7 +88,7 @@ var ForgeView = function ForgeView(_ref) {
88
88
  // eslint-disable-next-line react-hooks/exhaustive-deps
89
89
 
90
90
 
91
- var onUpdateItems = (0, _react.useCallback)((0, _debounce.default)( /*#__PURE__*/function () {
91
+ var onUpdateItems = (0, _react.useCallback)((0, _mediaCommon.debounce)( /*#__PURE__*/function () {
92
92
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(query, folderId) {
93
93
  var newItems;
94
94
  return _regenerator.default.wrap(function _callee$(_context) {
@@ -27,7 +27,7 @@ var _react = _interopRequireWildcard(require("react"));
27
27
 
28
28
  var _reactRedux = require("react-redux");
29
29
 
30
- var _dateformat = _interopRequireDefault(require("dateformat"));
30
+ var _format = _interopRequireDefault(require("date-fns/format"));
31
31
 
32
32
  var _filesize = _interopRequireDefault(require("filesize"));
33
33
 
@@ -71,7 +71,7 @@ var getDateString = function getDateString(timestamp) {
71
71
  var todayString = new Date().toDateString();
72
72
  var itemDate = new Date(timestamp);
73
73
  var itemDateString = itemDate.toDateString();
74
- return (0, _dateformat.default)(itemDate, todayString === itemDateString ? 'H:MM TT' : 'd mmm yyyy');
74
+ return (0, _format.default)(itemDate, todayString === itemDateString ? 'h:mm a' : 'd MMM yyyy');
75
75
  };
76
76
 
77
77
  var selectedTick = /*#__PURE__*/_react.default.createElement(_styled.SelectedFileIconWrapper, null, /*#__PURE__*/_react.default.createElement(_checkCircle.default, {
@@ -7,8 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _pick = _interopRequireDefault(require("lodash/pick"));
11
-
12
10
  var _analyticsNext = require("@atlaskit/analytics-next");
13
11
 
14
12
  var _mediaCommon = require("@atlaskit/media-common");
@@ -39,7 +37,7 @@ var createAndFireAnalyticsEvent = function createAndFireAnalyticsEvent(handlers,
39
37
  componentName: componentName,
40
38
  component: component,
41
39
  attributes: {
42
- featureFlags: (0, _pick.default)(featureFlags, ['newCardExperience', 'folderUploads'])
40
+ featureFlags: (0, _mediaCommon.pick)(featureFlags, ['newCardExperience', 'folderUploads'])
43
41
  }
44
42
  }],
45
43
  handlers: handlers,
@@ -23,6 +23,8 @@ var _handleCloudFetchingEvent = require("../actions/handleCloudFetchingEvent");
23
23
 
24
24
  var _sendUploadEvent = require("../actions/sendUploadEvent");
25
25
 
26
+ var _observableToPromise = require("../tools/observableToPromise");
27
+
26
28
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
29
 
28
30
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -74,7 +76,7 @@ var handleCloudFetchingEvent = function handleCloudFetchingEvent(store) {
74
76
  }
75
77
 
76
78
  _context.next = 7;
77
- return (0, _mediaClient.observableToPromise)(tenantFileObservable);
79
+ return (0, _observableToPromise.observableToPromise)(tenantFileObservable);
78
80
 
79
81
  case 7:
80
82
  _context.t0 = _context.sent;
@@ -46,6 +46,8 @@ var _preview2 = require("../../domain/preview");
46
46
 
47
47
  var _getPreviewFromBlob = require("../../util/getPreviewFromBlob");
48
48
 
49
+ var _observableToPromise = require("../tools/observableToPromise");
50
+
49
51
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
50
52
 
51
53
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -200,7 +202,7 @@ var getTenantFileState = /*#__PURE__*/function () {
200
202
  }
201
203
 
202
204
  _context2.next = 8;
203
- return (0, _mediaClient.observableToPromise)(userFileObservable);
205
+ return (0, _observableToPromise.observableToPromise)(userFileObservable);
204
206
 
205
207
  case 8:
206
208
  userFileState = _context2.sent;
@@ -259,7 +261,7 @@ var getTenantFileState = /*#__PURE__*/function () {
259
261
  exports.getTenantFileState = getTenantFileState;
260
262
 
261
263
  var distributeTenantFileState = function distributeTenantFileState(eventEmitter, tenantFileState, userSelectedFileId) {
262
- var tenantFileSubject = (0, _mediaClient.createFileStateSubject)();
264
+ var tenantFileSubject = (0, _mediaClient.createMediaSubject)();
263
265
  var userFileObservable = (0, _mediaClient.getFileStreamsCache)().get(userSelectedFileId);
264
266
  (0, _mediaClient.getFileStreamsCache)().set(tenantFileState.id, tenantFileSubject);
265
267
  tenantFileSubject.next(tenantFileState);
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.observableToPromise = void 0;
7
+
8
+ var _Subscription = require("rxjs/Subscription");
9
+
10
+ /**
11
+ * We're using this custom helper in place of ".toPromise()" to transform the first value emitted by an Observable or Subject into a Promise.
12
+ * Note that in RxJS 7 ".toPromise()" is deprecated and replaced by "firstValueFrom()/.lastValueFrom()"
13
+ *
14
+ * @param observable a given Observable<MediaSubscribableItem> or Subject<MediaSubscribableItem>
15
+ * @param subscription a default Subscription (this parameter exists for testing purpose)
16
+ */
17
+ var observableToPromise = function observableToPromise(observable) {
18
+ var subscription = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new _Subscription.Subscription();
19
+ return new Promise(function (resolve, reject) {
20
+ return subscription.add(observable.subscribe({
21
+ //@ts-ignore
22
+ next: function next(state) {
23
+ resolve(state);
24
+ subscription.unsubscribe();
25
+ },
26
+ error: function error(_error) {
27
+ reject(_error);
28
+ subscription.unsubscribe();
29
+ }
30
+ }));
31
+ });
32
+ };
33
+
34
+ exports.observableToPromise = observableToPromise;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.succeedMediaUploadUfoExperience = exports.startMediaUploadUfoExperience = exports.failMediaUploadUfoExperience = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _ufo = require("@atlaskit/ufo");
13
+
14
+ var _version = require("../version.json");
15
+
16
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
+
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
+
20
+ var ufoExperience;
21
+
22
+ var initExperience = function initExperience(id, componentName) {
23
+ if (!ufoExperience) {
24
+ var inlineExperience = {
25
+ platform: {
26
+ component: componentName
27
+ },
28
+ type: _ufo.ExperienceTypes.Experience,
29
+ performanceType: _ufo.ExperiencePerformanceTypes.InlineResult
30
+ };
31
+ ufoExperience = new _ufo.ConcurrentExperience('media-upload', inlineExperience);
32
+ }
33
+
34
+ return ufoExperience.getInstance(id);
35
+ };
36
+
37
+ var getExperience = function getExperience(id) {
38
+ if (ufoExperience) {
39
+ return ufoExperience.getInstance(id);
40
+ }
41
+ };
42
+
43
+ var startMediaUploadUfoExperience = function startMediaUploadUfoExperience(id, properties) {
44
+ initExperience(id, properties).start();
45
+ };
46
+
47
+ exports.startMediaUploadUfoExperience = startMediaUploadUfoExperience;
48
+
49
+ var succeedMediaUploadUfoExperience = function succeedMediaUploadUfoExperience(id, properties) {
50
+ var _getExperience;
51
+
52
+ (_getExperience = getExperience(id)) === null || _getExperience === void 0 ? void 0 : _getExperience.success({
53
+ metadata: {
54
+ fileAttributes: properties,
55
+ packageName: _version.name,
56
+ packageVersion: _version.version
57
+ }
58
+ });
59
+ };
60
+
61
+ exports.succeedMediaUploadUfoExperience = succeedMediaUploadUfoExperience;
62
+
63
+ var failMediaUploadUfoExperience = function failMediaUploadUfoExperience(id, properties) {
64
+ var _getExperience2;
65
+
66
+ var refinedMetadata = _objectSpread(_objectSpread({}, properties), {}, {
67
+ packageName: _version.name,
68
+ packageVersion: _version.version
69
+ });
70
+
71
+ (_getExperience2 = getExperience(id)) === null || _getExperience2 === void 0 ? void 0 : _getExperience2.failure({
72
+ metadata: refinedMetadata
73
+ });
74
+ };
75
+
76
+ exports.failMediaUploadUfoExperience = failMediaUploadUfoExperience;
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@atlaskit/media-picker",
3
- "version": "59.0.3"
3
+ "version": "60.0.0"
4
4
  }
@@ -89,7 +89,12 @@ class ClipboardImpl {
89
89
  _defineProperty(ClipboardImpl, "instances", []);
90
90
 
91
91
  _defineProperty(ClipboardImpl, "handleEvent", event => {
92
- // last in, first served to support multiple instances listening at once
92
+ // From https://product-fabric.atlassian.net/browse/MEX-1281 ,disable the handler if event target is input
93
+ if (event.target instanceof HTMLInputElement) {
94
+ return;
95
+ } // last in, first served to support multiple instances listening at once
96
+
97
+
93
98
  const instance = ClipboardImpl.latestInstance;
94
99
 
95
100
  if (instance) {