@commercetools-frontend-extensions/delete-resources-modal 0.0.0-bw-test-preview-deploy-20250115163227

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 (47) hide show
  1. package/LICENSE +29 -0
  2. package/README.md +74 -0
  3. package/dist/active-drag-drop-area-5f79b986.cjs.dev.js +55 -0
  4. package/dist/active-drag-drop-area-87974335.cjs.prod.js +55 -0
  5. package/dist/active-drag-drop-area-d02e950a.esm.js +53 -0
  6. package/dist/commercetools-frontend-extensions-delete-resources-modal.cjs.d.ts +3 -0
  7. package/dist/commercetools-frontend-extensions-delete-resources-modal.cjs.dev.js +53 -0
  8. package/dist/commercetools-frontend-extensions-delete-resources-modal.cjs.js +7 -0
  9. package/dist/commercetools-frontend-extensions-delete-resources-modal.cjs.prod.js +53 -0
  10. package/dist/commercetools-frontend-extensions-delete-resources-modal.esm.js +45 -0
  11. package/dist/de-a34c5dd4.cjs.dev.js +6 -0
  12. package/dist/de-cd6c45d3.esm.js +4 -0
  13. package/dist/de-d954fe3d.cjs.prod.js +6 -0
  14. package/dist/declarations/src/@types/delete-resources-modal-props.d.ts +6 -0
  15. package/dist/declarations/src/@types/file-upload.d.ts +45 -0
  16. package/dist/declarations/src/@types/import-container.d.ts +4 -0
  17. package/dist/declarations/src/@types/index.d.ts +3 -0
  18. package/dist/declarations/src/delete-resources-modal.d.ts +6 -0
  19. package/dist/declarations/src/index.d.ts +2 -0
  20. package/dist/en-3a9aa2d4.esm.js +4 -0
  21. package/dist/en-6b3694f6.cjs.dev.js +6 -0
  22. package/dist/en-c7757448.cjs.prod.js +6 -0
  23. package/dist/enabled-drop-area-7516c43a.esm.js +103 -0
  24. package/dist/enabled-drop-area-8521a9f7.cjs.dev.js +116 -0
  25. package/dist/enabled-drop-area-d9d086a3.cjs.prod.js +116 -0
  26. package/dist/es-042343bd.cjs.prod.js +6 -0
  27. package/dist/es-8b3ecab1.cjs.dev.js +6 -0
  28. package/dist/es-e544023d.esm.js +4 -0
  29. package/dist/file-dropped-area-3ff29449.esm.js +73 -0
  30. package/dist/file-dropped-area-8cd4e78b.cjs.dev.js +75 -0
  31. package/dist/file-dropped-area-a4cafec7.cjs.prod.js +75 -0
  32. package/dist/fr-FR-9d9081ee.esm.js +4 -0
  33. package/dist/fr-FR-e7126fcc.cjs.dev.js +6 -0
  34. package/dist/fr-FR-fce1ca96.cjs.prod.js +6 -0
  35. package/dist/index-8626f1fa.cjs.dev.js +1755 -0
  36. package/dist/index-fe48ced5.cjs.prod.js +1743 -0
  37. package/dist/index-ffadc0d7.esm.js +1725 -0
  38. package/dist/ja-37632763.cjs.prod.js +6 -0
  39. package/dist/ja-73c088a7.esm.js +4 -0
  40. package/dist/ja-9bd5f452.cjs.dev.js +6 -0
  41. package/dist/pt-BR-b37d730b.esm.js +4 -0
  42. package/dist/pt-BR-ea6b3251.cjs.dev.js +6 -0
  43. package/dist/pt-BR-ec2a1a11.cjs.prod.js +6 -0
  44. package/dist/zh-CN-4780d88e.esm.js +4 -0
  45. package/dist/zh-CN-52baa549.cjs.prod.js +6 -0
  46. package/dist/zh-CN-d4bc6d26.cjs.dev.js +6 -0
  47. package/package.json +93 -0
@@ -0,0 +1,1755 @@
1
+ 'use strict';
2
+
3
+ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
4
+ var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
5
+ var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
6
+ var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
7
+ var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
8
+ var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
9
+ var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
10
+ var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
11
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
12
+ var reactIntl = require('react-intl');
13
+ var applicationShellConnectors = require('@commercetools-frontend/application-shell-connectors');
14
+ var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
15
+ var React = require('react');
16
+ var sdk = require('@commercetools-frontend/sdk');
17
+ var constants = require('@commercetools-frontend/constants');
18
+ var pluralize = require('pluralize');
19
+ var _everyInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/every');
20
+ var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
21
+ var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
22
+ var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
23
+ var _possibleConstructorReturn = require('@babel/runtime-corejs3/helpers/possibleConstructorReturn');
24
+ var _getPrototypeOf = require('@babel/runtime-corejs3/helpers/getPrototypeOf');
25
+ var _inherits = require('@babel/runtime-corejs3/helpers/inherits');
26
+ var _wrapNativeSuper = require('@babel/runtime-corejs3/helpers/wrapNativeSuper');
27
+ var _JSON$stringify = require('@babel/runtime-corejs3/core-js-stable/json/stringify');
28
+ var _Promise = require('@babel/runtime-corejs3/core-js-stable/promise');
29
+ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-array');
30
+ var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
31
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
32
+ var Papa = require('papaparse');
33
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
34
+ var applicationComponents = require('@commercetools-frontend/application-components');
35
+ var fullstory = require('@commercetools-frontend/fullstory');
36
+ var uiKit = require('@commercetools-frontend/ui-kit');
37
+ var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
38
+ var reactDropzone = require('react-dropzone');
39
+ var actionsGlobal = require('@commercetools-frontend/actions-global');
40
+ var _styled = require('@emotion/styled/base');
41
+ var react = require('@emotion/react');
42
+ var sentry = require('@commercetools-frontend/sentry');
43
+ var applicationShell = require('@commercetools-frontend/application-shell');
44
+ var _sliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/slice');
45
+ var DataTable = require('@commercetools-uikit/data-table');
46
+ var i18n = require('@commercetools-frontend/i18n');
47
+
48
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
49
+
50
+ var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
51
+ var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
52
+ var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
53
+ var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
54
+ var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
55
+ var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
56
+ var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
57
+ var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
58
+ var React__default = /*#__PURE__*/_interopDefault(React);
59
+ var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
60
+ var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
61
+ var _JSON$stringify__default = /*#__PURE__*/_interopDefault(_JSON$stringify);
62
+ var _Promise__default = /*#__PURE__*/_interopDefault(_Promise);
63
+ var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
64
+ var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
65
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
66
+ var Papa__default = /*#__PURE__*/_interopDefault(Papa);
67
+ var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
68
+ var _styled__default = /*#__PURE__*/_interopDefault(_styled);
69
+ var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
70
+ var DataTable__default = /*#__PURE__*/_interopDefault(DataTable);
71
+
72
+ function ownKeys$a(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
73
+ function _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$a(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$a(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
74
+ function reducer(state, action) {
75
+ if (action.type === 'setCurrentStep') return _objectSpread$a(_objectSpread$a({}, state), {}, {
76
+ currentStep: action.currentStep,
77
+ progress: 0
78
+ });
79
+ if (action.type === 'setContainerKey') return _objectSpread$a(_objectSpread$a({}, state), {}, {
80
+ containerKey: action.containerKey
81
+ });
82
+ if (action.type === 'cancelImport') return _objectSpread$a(_objectSpread$a({}, state), {}, {
83
+ currentStep: 'upload',
84
+ containerKey: undefined,
85
+ droppedFile: undefined,
86
+ dropAreaState: 'ready-for-drop',
87
+ progress: 0
88
+ });
89
+ if (action.type === 'uploadNewFile') return _objectSpread$a(_objectSpread$a({}, state), {}, {
90
+ currentStep: 'upload',
91
+ containerKey: undefined,
92
+ droppedFile: undefined,
93
+ dropAreaState: 'ready-for-drop',
94
+ progress: 0
95
+ });
96
+ if (action.type === 'setDroppedFile') {
97
+ return _objectSpread$a(_objectSpread$a({}, state), {}, {
98
+ droppedFile: action.droppedFile
99
+ });
100
+ }
101
+ if (action.type === 'setAbortController') {
102
+ return _objectSpread$a(_objectSpread$a({}, state), {}, {
103
+ abortController: action.abortController
104
+ });
105
+ }
106
+ if (action.type === 'setProgress') {
107
+ return _objectSpread$a(_objectSpread$a({}, state), {}, {
108
+ progress: action.progress
109
+ });
110
+ }
111
+ if (action.type === 'setUploadFileResponse') {
112
+ return _objectSpread$a(_objectSpread$a({}, state), {}, {
113
+ uploadFileResponse: action.uploadFileResponse
114
+ });
115
+ }
116
+ if (action.type === 'setFileUploadErrors') {
117
+ return _objectSpread$a(_objectSpread$a({}, state), {}, {
118
+ fileUploadErrors: action.fileUploadErrors
119
+ });
120
+ }
121
+ throw new Error(getUnknownActionError(action));
122
+ }
123
+ function getUnknownActionError(actionType) {
124
+ return `Unkown type: ${actionType}`;
125
+ }
126
+ const initialState = {
127
+ currentStep: 'upload',
128
+ abortController: new AbortController(),
129
+ dropAreaState: 'ready-for-drop',
130
+ containerKey: undefined,
131
+ progress: 0,
132
+ uploadFileResponse: undefined,
133
+ fileUploadErrors: []
134
+ };
135
+ const initialActions = {
136
+ setCurrentStep(_currentStep) {
137
+ /**/
138
+ },
139
+ cancelImport() {
140
+ /**/
141
+ },
142
+ uploadNewFile() {
143
+ /**/
144
+ },
145
+ setDroppedFile(_nextDroppedFile) {
146
+ /**/
147
+ },
148
+ setUploadFileResponse(_uploadFileResponse) {
149
+ /**/
150
+ },
151
+ setFileUploadErrors(_fileUploadErrors) {
152
+ /**/
153
+ },
154
+ setContainerKey(_containerKey) {
155
+ /**/
156
+ },
157
+ setAbortController(_abortController) {
158
+ /**/
159
+ },
160
+ setProgress(_progress) {
161
+ /**/
162
+ }
163
+ };
164
+
165
+ function getCreateImportContainerURL(projectKey) {
166
+ return `/${projectKey}/import-containers`;
167
+ }
168
+ function getDeleteImportContainerURL(_ref) {
169
+ let projectKey = _ref.projectKey,
170
+ containerKey = _ref.containerKey;
171
+ return `/${projectKey}/import-containers/${containerKey}`;
172
+ }
173
+ function getFileUploadURL(_ref2) {
174
+ let projectKey = _ref2.projectKey,
175
+ containerKey = _ref2.containerKey,
176
+ resourceType = _ref2.resourceType;
177
+ const resourceTypePlural = pluralize.plural(resourceType);
178
+ return `/${projectKey}/${resourceTypePlural}/import-containers/${containerKey}/file-upload`;
179
+ }
180
+ function getProccessFileURL(_ref3) {
181
+ let projectKey = _ref3.projectKey,
182
+ containerKey = _ref3.containerKey;
183
+ return `/${projectKey}/import-containers/${containerKey}/tasks`;
184
+ }
185
+
186
+ function createImportContainerForFileUpload(importContainerDraft, projectKey, asyncDispatch) {
187
+ return asyncDispatch(sdk.actions.post({
188
+ mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.IMPORT,
189
+ uri: getCreateImportContainerURL(projectKey),
190
+ headers: {
191
+ accept: 'application/json',
192
+ 'Content-Type': 'application/json'
193
+ },
194
+ payload: importContainerDraft
195
+ }));
196
+ }
197
+ function deleteImportContainer(projectKey, containerKey, asyncDispatch) {
198
+ return asyncDispatch(sdk.actions.del({
199
+ mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.IMPORT,
200
+ uri: getDeleteImportContainerURL({
201
+ projectKey,
202
+ containerKey
203
+ }),
204
+ headers: {
205
+ accept: 'application/json'
206
+ }
207
+ }));
208
+ }
209
+
210
+ function _callSuper$2(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$2() ? _Reflect$construct__default["default"](o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
211
+ function _isNativeReflectConstruct$2() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$2 = function () { return !!t; })(); }
212
+ let HttpError = /*#__PURE__*/function (_Error) {
213
+ function HttpError(statusCode, statusText, errorData) {
214
+ var _this;
215
+ _classCallCheck(this, HttpError);
216
+ _this = _callSuper$2(this, HttpError, [`HTTP Error! Status code: ${statusCode}, message: "${statusText ? statusText : ''}"`]);
217
+ _this.statusCode = void 0;
218
+ _this.errorData = void 0;
219
+ _this.name = 'HttpError';
220
+ _this.statusCode = statusCode;
221
+ _this.errorData = errorData;
222
+ return _this;
223
+ }
224
+ _inherits(HttpError, _Error);
225
+ return _createClass(HttpError);
226
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
227
+
228
+ function _callSuper$1(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$1() ? _Reflect$construct__default["default"](o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
229
+ function _isNativeReflectConstruct$1() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$1 = function () { return !!t; })(); }
230
+ let MissingDeleteResourcesProviderError = /*#__PURE__*/function (_Error) {
231
+ function MissingDeleteResourcesProviderError() {
232
+ var _this;
233
+ _classCallCheck(this, MissingDeleteResourcesProviderError);
234
+ _this = _callSuper$1(this, MissingDeleteResourcesProviderError, ['useDeleteResourcesProviderError must be used within MissingDeleteResourcesProviderError']);
235
+ _this.name = 'MissingDeleteResourcesProviderError';
236
+ return _this;
237
+ }
238
+ _inherits(MissingDeleteResourcesProviderError, _Error);
239
+ return _createClass(MissingDeleteResourcesProviderError);
240
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
241
+
242
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? _Reflect$construct__default["default"](o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
243
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct__default["default"](Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); }
244
+ let UnexpectedResourceTypeError = /*#__PURE__*/function (_Error) {
245
+ function UnexpectedResourceTypeError(resourceType) {
246
+ var _this;
247
+ _classCallCheck(this, UnexpectedResourceTypeError);
248
+ _this = _callSuper(this, UnexpectedResourceTypeError, [`Unexpected resource type "${resourceType}"`]);
249
+ _this.name = 'UnexpectedResourceTypeError';
250
+ return _this;
251
+ }
252
+ _inherits(UnexpectedResourceTypeError, _Error);
253
+ return _createClass(UnexpectedResourceTypeError);
254
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
255
+
256
+ var sharedMessages = reactIntl.defineMessages({
257
+ deleteModalTitle: {
258
+ id: "DeleteResourcesModal.deleteModalTitle",
259
+ defaultMessage: "Bulk delete via CSV"
260
+ },
261
+ startBulkDelete: {
262
+ id: "DeleteResourcesModal.startBulkDelete",
263
+ defaultMessage: "Start bulk delete"
264
+ },
265
+ cancel: {
266
+ id: "DeleteResourcesModal.cancel",
267
+ defaultMessage: "Cancel"
268
+ },
269
+ product: {
270
+ id: "DeleteResourcesModal.product",
271
+ defaultMessage: "product"
272
+ },
273
+ products: {
274
+ id: "DeleteResourcesModal.products",
275
+ defaultMessage: "products"
276
+ },
277
+ inventory: {
278
+ id: "DeleteResourcesModal.inventory",
279
+ defaultMessage: "inventory entry"
280
+ },
281
+ inventories: {
282
+ id: "DeleteResourcesModal.inventories",
283
+ defaultMessage: "inventory entries"
284
+ },
285
+ category: {
286
+ id: "DeleteResourcesModal.category",
287
+ defaultMessage: "category"
288
+ },
289
+ categories: {
290
+ id: "DeleteResourcesModal.categories",
291
+ defaultMessage: "categories"
292
+ },
293
+ customer: {
294
+ id: "DeleteResourcesModal.customer",
295
+ defaultMessage: "customer"
296
+ },
297
+ customers: {
298
+ id: "DeleteResourcesModal.customers",
299
+ defaultMessage: "customers"
300
+ },
301
+ order: {
302
+ id: "DeleteResourcesModal.order",
303
+ defaultMessage: "order"
304
+ },
305
+ orders: {
306
+ id: "DeleteResourcesModal.orders",
307
+ defaultMessage: "orders"
308
+ },
309
+ price: {
310
+ id: "DeleteResourcesModal.price",
311
+ defaultMessage: "price"
312
+ },
313
+ prices: {
314
+ id: "DeleteResourcesModal.prices",
315
+ defaultMessage: "prices"
316
+ },
317
+ 'product-draft': {
318
+ id: "DeleteResourcesModal.product-draft",
319
+ defaultMessage: "product draft"
320
+ },
321
+ 'product-drafts': {
322
+ id: "DeleteResourcesModal.product-drafts",
323
+ defaultMessage: "product drafts"
324
+ },
325
+ 'product-type': {
326
+ id: "DeleteResourcesModal.product-type",
327
+ defaultMessage: "product type"
328
+ },
329
+ 'product-types': {
330
+ id: "DeleteResourcesModal.product-types",
331
+ defaultMessage: "product types"
332
+ },
333
+ 'product-variant': {
334
+ id: "DeleteResourcesModal.product-variant",
335
+ defaultMessage: "product variant"
336
+ },
337
+ 'product-variants': {
338
+ id: "DeleteResourcesModal.product-variants",
339
+ defaultMessage: "product variants"
340
+ },
341
+ 'product-variant-patch': {
342
+ id: "DeleteResourcesModal.product-variant-patch",
343
+ defaultMessage: "product variant patch"
344
+ },
345
+ 'product-variant-patches': {
346
+ id: "DeleteResourcesModal.product-variant-patches",
347
+ defaultMessage: "product variant patches"
348
+ },
349
+ 'standalone-price': {
350
+ id: "DeleteResourcesModal.standalone-price",
351
+ defaultMessage: "standalone price"
352
+ },
353
+ 'standalone-prices': {
354
+ id: "DeleteResourcesModal.standalone-prices",
355
+ defaultMessage: "standalone prices"
356
+ },
357
+ 'discount-code': {
358
+ id: "DeleteResourcesModal.discount-code",
359
+ defaultMessage: "discount code"
360
+ },
361
+ 'discount-codes': {
362
+ id: "DeleteResourcesModal.discount-codes",
363
+ defaultMessage: "discount codes"
364
+ },
365
+ unknownResourceType: {
366
+ id: "DeleteResourcesModal.unknown-resource-type",
367
+ defaultMessage: "unknown resource type"
368
+ }
369
+ });
370
+
371
+ function convertFileSizeToKB(sizeInBytes) {
372
+ return sizeInBytes / 1000;
373
+ }
374
+ function hasOwnProperty(obj, prop) {
375
+ return typeof obj === 'object' && obj !== null && obj.hasOwnProperty(prop);
376
+ }
377
+ function hasRequiredFields(maybeValidObject, requiredFields) {
378
+ return typeof maybeValidObject === 'object' && maybeValidObject !== null && _everyInstanceProperty__default["default"](requiredFields).call(requiredFields, property => hasOwnProperty(maybeValidObject, property));
379
+ }
380
+ function isAbortError(error) {
381
+ return error instanceof DOMException && error.name === 'AbortError';
382
+ }
383
+ function resourceTypeToMessage(resourceType) {
384
+ const resourceTypeMap = {
385
+ category: sharedMessages.category,
386
+ product: sharedMessages.product,
387
+ 'product-type': sharedMessages['product-type'],
388
+ order: sharedMessages.order,
389
+ customer: sharedMessages.customer,
390
+ 'discount-code': sharedMessages['discount-code'],
391
+ inventory: sharedMessages.inventory,
392
+ // TODO: remove `inventory` after aligning the resource type names in the file upload API
393
+ 'inventory-entry': sharedMessages.inventory,
394
+ 'order-patch': sharedMessages['order-patch'],
395
+ price: sharedMessages.price,
396
+ 'product-draft': sharedMessages['product-draft'],
397
+ 'product-variant': sharedMessages['product-variant'],
398
+ 'product-variant-patch': sharedMessages['product-variant-patch'],
399
+ 'standalone-price': sharedMessages['standalone-price']
400
+ };
401
+ const message = resourceTypeMap[resourceType];
402
+ if (!message) {
403
+ console.warn(new UnexpectedResourceTypeError(resourceType));
404
+ return sharedMessages.unknownResourceType;
405
+ }
406
+ return message;
407
+ }
408
+ function resourceTypeToPluralMessage(resourceType) {
409
+ const resourceTypePluralMap = {
410
+ category: sharedMessages.categories,
411
+ product: sharedMessages.products,
412
+ 'product-type': sharedMessages['product-types'],
413
+ order: sharedMessages.orders,
414
+ customer: sharedMessages.customers,
415
+ 'discount-code': sharedMessages['discount-codes'],
416
+ inventory: sharedMessages.inventories,
417
+ // TODO: remove `inventory` after aligning the resource type names in the file upload API
418
+ 'inventory-entry': sharedMessages.inventories,
419
+ 'order-patch': sharedMessages['order-patches'],
420
+ price: sharedMessages.prices,
421
+ 'product-draft': sharedMessages['product-drafts'],
422
+ 'product-variant': sharedMessages['product-variants'],
423
+ 'product-variant-patch': sharedMessages['product-variant-patches'],
424
+ 'standalone-price': sharedMessages['standalone-prices']
425
+ };
426
+ const message = resourceTypePluralMap[resourceType];
427
+ if (!message) {
428
+ console.warn(new UnexpectedResourceTypeError(resourceType));
429
+ return sharedMessages.unknownResourceType;
430
+ }
431
+ return message;
432
+ }
433
+
434
+ const encodeFileNameWithTimestampToContainerKey = fileName => {
435
+ return btoa(_JSON$stringify__default["default"]({
436
+ timestamp: new Date().getTime(),
437
+ fileName
438
+ })).replace(/=+$/g, '');
439
+ };
440
+
441
+ function ownKeys$9(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
442
+ function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$9(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$9(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
443
+ /**
444
+ * Returns the number of rows in a CSV file excluding the header
445
+ * @param file The CSV file to process.
446
+ * @returns A promise that resolves to the number of rows
447
+ */
448
+ const getRowCount = file => {
449
+ return new _Promise__default["default"](resolve => {
450
+ let lineCount = 0;
451
+ Papa__default["default"].parse(file, {
452
+ step: _ref => {
453
+ let data = _ref.data;
454
+ // empty lines at the end of the file should not be counted
455
+ if (_Array$isArray__default["default"](data) && _findInstanceProperty__default["default"](data).call(data, Boolean)) lineCount++;
456
+ },
457
+ complete: () => {
458
+ // Subtract 1 for the header row
459
+ // We use Math.max to make sure the count is not less than 0, this is needed for empty files
460
+ resolve(Math.max(0, lineCount - 1));
461
+ }
462
+ });
463
+ });
464
+ };
465
+
466
+ /**
467
+ * Checks if the CSV file only contains a single column named 'key'
468
+ * @param file The CSV file to process
469
+ * @returns A promise that resolves to true if the file contains only one column named 'key', otherwise false
470
+ */
471
+ const hasSingleKeyColumn = file => {
472
+ return new _Promise__default["default"](resolve => {
473
+ Papa__default["default"].parse(file, {
474
+ header: true,
475
+ // Only parse the first row (header)
476
+ preview: 1,
477
+ complete: results => {
478
+ const fields = results?.meta?.fields;
479
+ resolve(fields.length === 1 && fields[0] === 'key');
480
+ }
481
+ });
482
+ });
483
+ };
484
+ const toBytes = megabytes => megabytes * 1024 * 1024;
485
+ const mapFileUploadErrorsToUploadFileErrorRows = uploadFileErrors => {
486
+ let idCounter = 1;
487
+ return _mapInstanceProperty__default["default"](uploadFileErrors).call(uploadFileErrors, uploadFileError => _objectSpread$9(_objectSpread$9({}, uploadFileError), {}, {
488
+ id: String(idCounter++)
489
+ }));
490
+ };
491
+
492
+ async function processUploadedFile(_ref) {
493
+ let projectKey = _ref.projectKey,
494
+ containerKey = _ref.containerKey,
495
+ asyncDispatch = _ref.asyncDispatch,
496
+ resourceType = _ref.resourceType;
497
+ const uri = getProccessFileURL({
498
+ projectKey,
499
+ containerKey
500
+ });
501
+ const response = await asyncDispatch(sdk.actions.post({
502
+ mcApiProxyTarget: constants.MC_API_PROXY_TARGETS.IMPORT,
503
+ uri: uri,
504
+ headers: {
505
+ accept: 'application/json',
506
+ 'Content-Type': 'application/json'
507
+ },
508
+ payload: {
509
+ task: 'process-file',
510
+ parameter: {
511
+ resourceType,
512
+ action: 'delete'
513
+ }
514
+ }
515
+ }));
516
+ assertProcessFileResponse(response);
517
+ return response;
518
+ }
519
+ function assertProcessFileResponse(maybeProcessFileResponse) {
520
+ const requiredFields = ['message'];
521
+ if (hasRequiredFields(maybeProcessFileResponse, requiredFields)) return;
522
+ throw new Error('Invalid response');
523
+ }
524
+
525
+ const DeleteResourcesContext = /*#__PURE__*/React__default["default"].createContext({
526
+ state: initialState,
527
+ actions: initialActions,
528
+ onClose: () => {}
529
+ });
530
+ const DeleteResourcesProvider = props => {
531
+ const _useApplicationContex = applicationShellConnectors.useApplicationContext(context => ({
532
+ projectKey: context.project?.key
533
+ })),
534
+ projectKey = _useApplicationContex.projectKey;
535
+ const asyncDispatch = sdk.useAsyncDispatch();
536
+ const _React$useReducer = React__default["default"].useReducer(reducer, initialState),
537
+ _React$useReducer2 = _slicedToArray(_React$useReducer, 2),
538
+ state = _React$useReducer2[0],
539
+ dispatch = _React$useReducer2[1];
540
+ const setCurrentStep = currentStep => dispatch({
541
+ type: 'setCurrentStep',
542
+ currentStep
543
+ });
544
+ const setContainerKey = containerKey => dispatch({
545
+ type: 'setContainerKey',
546
+ containerKey
547
+ });
548
+ const cancelImport = () => dispatch({
549
+ type: 'cancelImport'
550
+ });
551
+ const uploadNewFile = () => dispatch({
552
+ type: 'uploadNewFile'
553
+ });
554
+ const setDroppedFile = droppedFile => dispatch({
555
+ type: 'setDroppedFile',
556
+ droppedFile: droppedFile
557
+ });
558
+ const setFileUploadErrors = fileUploadErrors => {
559
+ dispatch({
560
+ type: 'setFileUploadErrors',
561
+ fileUploadErrors
562
+ });
563
+ };
564
+ const setAbortController = abortController => dispatch({
565
+ type: 'setAbortController',
566
+ abortController: abortController
567
+ });
568
+ const setProgress = progress => dispatch({
569
+ type: 'setProgress',
570
+ progress
571
+ });
572
+ const setUploadFileResponse = uploadFileResponse => {
573
+ dispatch({
574
+ type: 'setUploadFileResponse',
575
+ uploadFileResponse
576
+ });
577
+ };
578
+ const handleClose = function () {
579
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
580
+ if (state.abortController) state.abortController.abort();
581
+ if (typeof props.onClose === 'function') props.onClose();
582
+ // Removes the associated import container when the import is closed
583
+ if (options.shouldDeleteImportContainer && projectKey && state.containerKey) deleteImportContainer(projectKey, state.containerKey, asyncDispatch);
584
+ };
585
+ return jsxRuntime.jsx(DeleteResourcesContext.Provider, {
586
+ value: {
587
+ resourceType: props.resourceType,
588
+ state,
589
+ onClose: handleClose,
590
+ actions: {
591
+ setCurrentStep,
592
+ cancelImport,
593
+ uploadNewFile,
594
+ setDroppedFile,
595
+ setUploadFileResponse,
596
+ setFileUploadErrors,
597
+ setContainerKey,
598
+ setAbortController,
599
+ setProgress
600
+ }
601
+ },
602
+ children: props.children
603
+ });
604
+ };
605
+
606
+ const getBorderColor = state => {
607
+ const borderColors = {
608
+ default: '#909dbc',
609
+ error: '#e60050',
610
+ active: uiKit.customProperties.colorPrimary
611
+ };
612
+ return borderColors[state] || borderColors.default;
613
+ };
614
+ const getDashedBorder = function () {
615
+ let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';
616
+ const color = getBorderColor(state);
617
+ const svgContent = `
618
+ <svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
619
+ <rect width="100%" height="100%" fill="none" stroke="${color}" stroke-width="2px" stroke-dasharray="6,6" stroke-dashoffset="0" stroke-linecap="square"/>
620
+ </svg>
621
+ `;
622
+ return `data:image/svg+xml,${encodeURIComponent(svgContent)}`;
623
+ };
624
+ const base = /*#__PURE__*/react.css("border-radius:", uiKit.customProperties.borderRadius6, ";min-height:136px;display:flex;justify-content:center;align-items:center;" + (process.env.NODE_ENV === "production" ? "" : ";label:base;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5QmdCIiwiZmlsZSI6InN0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1c3RvbVByb3BlcnRpZXMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC91aS1raXQnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcblxudHlwZSBEcm9wQXJlYVN0YXRlID0gJ2RlZmF1bHQnIHwgJ2Vycm9yJyB8ICdhY3RpdmUnXG5cbmNvbnN0IGdldEJvcmRlckNvbG9yID0gKHN0YXRlOiBEcm9wQXJlYVN0YXRlKSA9PiB7XG4gIGNvbnN0IGJvcmRlckNvbG9ycyA9IHtcbiAgICBkZWZhdWx0OiAnIzkwOWRiYycsXG4gICAgZXJyb3I6ICcjZTYwMDUwJyxcbiAgICBhY3RpdmU6IGN1c3RvbVByb3BlcnRpZXMuY29sb3JQcmltYXJ5LFxuICB9XG5cbiAgcmV0dXJuIGJvcmRlckNvbG9yc1tzdGF0ZV0gfHwgYm9yZGVyQ29sb3JzLmRlZmF1bHRcbn1cblxuY29uc3QgZ2V0RGFzaGVkQm9yZGVyID0gKHN0YXRlOiBEcm9wQXJlYVN0YXRlID0gJ2RlZmF1bHQnKSA9PiB7XG4gIGNvbnN0IGNvbG9yID0gZ2V0Qm9yZGVyQ29sb3Ioc3RhdGUpXG4gIGNvbnN0IHN2Z0NvbnRlbnQgPSBgXG4gICAgPHN2ZyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHJlY3Qgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiJHtjb2xvcn1cIiBzdHJva2Utd2lkdGg9XCIycHhcIiBzdHJva2UtZGFzaGFycmF5PVwiNiw2XCIgc3Ryb2tlLWRhc2hvZmZzZXQ9XCIwXCIgc3Ryb2tlLWxpbmVjYXA9XCJzcXVhcmVcIi8+XG4gICAgPC9zdmc+XG4gIGBcbiAgcmV0dXJuIGBkYXRhOmltYWdlL3N2Zyt4bWwsJHtlbmNvZGVVUklDb21wb25lbnQoc3ZnQ29udGVudCl9YFxufVxuXG5jb25zdCBiYXNlID0gY3NzYFxuICBib3JkZXItcmFkaXVzOiAke2N1c3RvbVByb3BlcnRpZXMuYm9yZGVyUmFkaXVzNn07XG4gIG1pbi1oZWlnaHQ6IDEzNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmBcbmNvbnN0IHJlYWR5Rm9yRHJvcCA9IGNzc2BcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCIke2dldERhc2hlZEJvcmRlcigpfVxcXCIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JTdXJmYWNlfTtcbmBcbmNvbnN0IGFjdGl2ZURyYWcgPSBjc3NgXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiJHtnZXREYXNoZWRCb3JkZXIoJ2FjdGl2ZScpfVxcXCIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JQcmltYXJ5OTV9O1xuICBwYWRkaW5nOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZzUwfSAxMDBweDtcbmBcbmNvbnN0IGZpbGVEcm9wcGVkID0gY3NzYFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcIiR7Z2V0RGFzaGVkQm9yZGVyKCl9XFxcIik7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y3VzdG9tUHJvcGVydGllcy5jb2xvclN1cmZhY2V9O1xuICBwYWRkaW5nOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZzUwfSAxMDBweDtcbmBcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHtcbiAgYmFzZSxcbiAgcmVhZHlGb3JEcm9wLFxuICBmaWxlRHJvcHBlZCxcbiAgYWN0aXZlRHJhZyxcbn1cbiJdfQ== */");
625
+ const readyForDrop = /*#__PURE__*/react.css("background-image:url(\"", getDashedBorder(), "\");background-color:", uiKit.customProperties.colorSurface, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:readyForDrop;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQ3dCIiwiZmlsZSI6InN0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1c3RvbVByb3BlcnRpZXMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC91aS1raXQnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcblxudHlwZSBEcm9wQXJlYVN0YXRlID0gJ2RlZmF1bHQnIHwgJ2Vycm9yJyB8ICdhY3RpdmUnXG5cbmNvbnN0IGdldEJvcmRlckNvbG9yID0gKHN0YXRlOiBEcm9wQXJlYVN0YXRlKSA9PiB7XG4gIGNvbnN0IGJvcmRlckNvbG9ycyA9IHtcbiAgICBkZWZhdWx0OiAnIzkwOWRiYycsXG4gICAgZXJyb3I6ICcjZTYwMDUwJyxcbiAgICBhY3RpdmU6IGN1c3RvbVByb3BlcnRpZXMuY29sb3JQcmltYXJ5LFxuICB9XG5cbiAgcmV0dXJuIGJvcmRlckNvbG9yc1tzdGF0ZV0gfHwgYm9yZGVyQ29sb3JzLmRlZmF1bHRcbn1cblxuY29uc3QgZ2V0RGFzaGVkQm9yZGVyID0gKHN0YXRlOiBEcm9wQXJlYVN0YXRlID0gJ2RlZmF1bHQnKSA9PiB7XG4gIGNvbnN0IGNvbG9yID0gZ2V0Qm9yZGVyQ29sb3Ioc3RhdGUpXG4gIGNvbnN0IHN2Z0NvbnRlbnQgPSBgXG4gICAgPHN2ZyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHJlY3Qgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiJHtjb2xvcn1cIiBzdHJva2Utd2lkdGg9XCIycHhcIiBzdHJva2UtZGFzaGFycmF5PVwiNiw2XCIgc3Ryb2tlLWRhc2hvZmZzZXQ9XCIwXCIgc3Ryb2tlLWxpbmVjYXA9XCJzcXVhcmVcIi8+XG4gICAgPC9zdmc+XG4gIGBcbiAgcmV0dXJuIGBkYXRhOmltYWdlL3N2Zyt4bWwsJHtlbmNvZGVVUklDb21wb25lbnQoc3ZnQ29udGVudCl9YFxufVxuXG5jb25zdCBiYXNlID0gY3NzYFxuICBib3JkZXItcmFkaXVzOiAke2N1c3RvbVByb3BlcnRpZXMuYm9yZGVyUmFkaXVzNn07XG4gIG1pbi1oZWlnaHQ6IDEzNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmBcbmNvbnN0IHJlYWR5Rm9yRHJvcCA9IGNzc2BcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCIke2dldERhc2hlZEJvcmRlcigpfVxcXCIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JTdXJmYWNlfTtcbmBcbmNvbnN0IGFjdGl2ZURyYWcgPSBjc3NgXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiJHtnZXREYXNoZWRCb3JkZXIoJ2FjdGl2ZScpfVxcXCIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JQcmltYXJ5OTV9O1xuICBwYWRkaW5nOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZzUwfSAxMDBweDtcbmBcbmNvbnN0IGZpbGVEcm9wcGVkID0gY3NzYFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcIiR7Z2V0RGFzaGVkQm9yZGVyKCl9XFxcIik7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y3VzdG9tUHJvcGVydGllcy5jb2xvclN1cmZhY2V9O1xuICBwYWRkaW5nOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZzUwfSAxMDBweDtcbmBcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHtcbiAgYmFzZSxcbiAgcmVhZHlGb3JEcm9wLFxuICBmaWxlRHJvcHBlZCxcbiAgYWN0aXZlRHJhZyxcbn1cbiJdfQ== */");
626
+ const activeDrag = /*#__PURE__*/react.css("background-image:url(\"", getDashedBorder('active'), "\");background-color:", uiKit.customProperties.colorPrimary95, ";padding:", uiKit.customProperties.spacing50, " 100px;" + (process.env.NODE_ENV === "production" ? "" : ";label:activeDrag;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQ3NCIiwiZmlsZSI6InN0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1c3RvbVByb3BlcnRpZXMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC91aS1raXQnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcblxudHlwZSBEcm9wQXJlYVN0YXRlID0gJ2RlZmF1bHQnIHwgJ2Vycm9yJyB8ICdhY3RpdmUnXG5cbmNvbnN0IGdldEJvcmRlckNvbG9yID0gKHN0YXRlOiBEcm9wQXJlYVN0YXRlKSA9PiB7XG4gIGNvbnN0IGJvcmRlckNvbG9ycyA9IHtcbiAgICBkZWZhdWx0OiAnIzkwOWRiYycsXG4gICAgZXJyb3I6ICcjZTYwMDUwJyxcbiAgICBhY3RpdmU6IGN1c3RvbVByb3BlcnRpZXMuY29sb3JQcmltYXJ5LFxuICB9XG5cbiAgcmV0dXJuIGJvcmRlckNvbG9yc1tzdGF0ZV0gfHwgYm9yZGVyQ29sb3JzLmRlZmF1bHRcbn1cblxuY29uc3QgZ2V0RGFzaGVkQm9yZGVyID0gKHN0YXRlOiBEcm9wQXJlYVN0YXRlID0gJ2RlZmF1bHQnKSA9PiB7XG4gIGNvbnN0IGNvbG9yID0gZ2V0Qm9yZGVyQ29sb3Ioc3RhdGUpXG4gIGNvbnN0IHN2Z0NvbnRlbnQgPSBgXG4gICAgPHN2ZyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHJlY3Qgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiJHtjb2xvcn1cIiBzdHJva2Utd2lkdGg9XCIycHhcIiBzdHJva2UtZGFzaGFycmF5PVwiNiw2XCIgc3Ryb2tlLWRhc2hvZmZzZXQ9XCIwXCIgc3Ryb2tlLWxpbmVjYXA9XCJzcXVhcmVcIi8+XG4gICAgPC9zdmc+XG4gIGBcbiAgcmV0dXJuIGBkYXRhOmltYWdlL3N2Zyt4bWwsJHtlbmNvZGVVUklDb21wb25lbnQoc3ZnQ29udGVudCl9YFxufVxuXG5jb25zdCBiYXNlID0gY3NzYFxuICBib3JkZXItcmFkaXVzOiAke2N1c3RvbVByb3BlcnRpZXMuYm9yZGVyUmFkaXVzNn07XG4gIG1pbi1oZWlnaHQ6IDEzNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmBcbmNvbnN0IHJlYWR5Rm9yRHJvcCA9IGNzc2BcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCIke2dldERhc2hlZEJvcmRlcigpfVxcXCIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JTdXJmYWNlfTtcbmBcbmNvbnN0IGFjdGl2ZURyYWcgPSBjc3NgXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiJHtnZXREYXNoZWRCb3JkZXIoJ2FjdGl2ZScpfVxcXCIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JQcmltYXJ5OTV9O1xuICBwYWRkaW5nOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZzUwfSAxMDBweDtcbmBcbmNvbnN0IGZpbGVEcm9wcGVkID0gY3NzYFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcIiR7Z2V0RGFzaGVkQm9yZGVyKCl9XFxcIik7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y3VzdG9tUHJvcGVydGllcy5jb2xvclN1cmZhY2V9O1xuICBwYWRkaW5nOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZzUwfSAxMDBweDtcbmBcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHtcbiAgYmFzZSxcbiAgcmVhZHlGb3JEcm9wLFxuICBmaWxlRHJvcHBlZCxcbiAgYWN0aXZlRHJhZyxcbn1cbiJdfQ== */");
627
+ const fileDropped = /*#__PURE__*/react.css("background-image:url(\"", getDashedBorder(), "\");background-color:", uiKit.customProperties.colorSurface, ";padding:", uiKit.customProperties.spacing50, " 100px;" + (process.env.NODE_ENV === "production" ? "" : ";label:fileDropped;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5Q3VCIiwiZmlsZSI6InN0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1c3RvbVByb3BlcnRpZXMgfSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC91aS1raXQnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcblxudHlwZSBEcm9wQXJlYVN0YXRlID0gJ2RlZmF1bHQnIHwgJ2Vycm9yJyB8ICdhY3RpdmUnXG5cbmNvbnN0IGdldEJvcmRlckNvbG9yID0gKHN0YXRlOiBEcm9wQXJlYVN0YXRlKSA9PiB7XG4gIGNvbnN0IGJvcmRlckNvbG9ycyA9IHtcbiAgICBkZWZhdWx0OiAnIzkwOWRiYycsXG4gICAgZXJyb3I6ICcjZTYwMDUwJyxcbiAgICBhY3RpdmU6IGN1c3RvbVByb3BlcnRpZXMuY29sb3JQcmltYXJ5LFxuICB9XG5cbiAgcmV0dXJuIGJvcmRlckNvbG9yc1tzdGF0ZV0gfHwgYm9yZGVyQ29sb3JzLmRlZmF1bHRcbn1cblxuY29uc3QgZ2V0RGFzaGVkQm9yZGVyID0gKHN0YXRlOiBEcm9wQXJlYVN0YXRlID0gJ2RlZmF1bHQnKSA9PiB7XG4gIGNvbnN0IGNvbG9yID0gZ2V0Qm9yZGVyQ29sb3Ioc3RhdGUpXG4gIGNvbnN0IHN2Z0NvbnRlbnQgPSBgXG4gICAgPHN2ZyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPHJlY3Qgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiJHtjb2xvcn1cIiBzdHJva2Utd2lkdGg9XCIycHhcIiBzdHJva2UtZGFzaGFycmF5PVwiNiw2XCIgc3Ryb2tlLWRhc2hvZmZzZXQ9XCIwXCIgc3Ryb2tlLWxpbmVjYXA9XCJzcXVhcmVcIi8+XG4gICAgPC9zdmc+XG4gIGBcbiAgcmV0dXJuIGBkYXRhOmltYWdlL3N2Zyt4bWwsJHtlbmNvZGVVUklDb21wb25lbnQoc3ZnQ29udGVudCl9YFxufVxuXG5jb25zdCBiYXNlID0gY3NzYFxuICBib3JkZXItcmFkaXVzOiAke2N1c3RvbVByb3BlcnRpZXMuYm9yZGVyUmFkaXVzNn07XG4gIG1pbi1oZWlnaHQ6IDEzNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmBcbmNvbnN0IHJlYWR5Rm9yRHJvcCA9IGNzc2BcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCIke2dldERhc2hlZEJvcmRlcigpfVxcXCIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JTdXJmYWNlfTtcbmBcbmNvbnN0IGFjdGl2ZURyYWcgPSBjc3NgXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiJHtnZXREYXNoZWRCb3JkZXIoJ2FjdGl2ZScpfVxcXCIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2N1c3RvbVByb3BlcnRpZXMuY29sb3JQcmltYXJ5OTV9O1xuICBwYWRkaW5nOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZzUwfSAxMDBweDtcbmBcbmNvbnN0IGZpbGVEcm9wcGVkID0gY3NzYFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcIiR7Z2V0RGFzaGVkQm9yZGVyKCl9XFxcIik7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y3VzdG9tUHJvcGVydGllcy5jb2xvclN1cmZhY2V9O1xuICBwYWRkaW5nOiAke2N1c3RvbVByb3BlcnRpZXMuc3BhY2luZzUwfSAxMDBweDtcbmBcblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IHtcbiAgYmFzZSxcbiAgcmVhZHlGb3JEcm9wLFxuICBmaWxlRHJvcHBlZCxcbiAgYWN0aXZlRHJhZyxcbn1cbiJdfQ== */");
628
+ const styles = {
629
+ base,
630
+ readyForDrop,
631
+ fileDropped,
632
+ activeDrag
633
+ };
634
+
635
+ const DropWrapper = /*#__PURE__*/_styled__default["default"]("div", process.env.NODE_ENV === "production" ? {
636
+ target: "e16mdg0x0"
637
+ } : {
638
+ target: "e16mdg0x0",
639
+ label: "DropWrapper"
640
+ })(styles.base, " ", props => {
641
+ if (props.dropAreaState === 'ready-for-drop') {
642
+ return styles.readyForDrop;
643
+ }
644
+ if (props.dropAreaState === 'active-drag') {
645
+ return styles.activeDrag;
646
+ }
647
+ if (props.dropAreaState === 'file-dropped') {
648
+ return styles.fileDropped;
649
+ }
650
+ return getDefaultDropWrapperStyles(props.dropAreaState);
651
+ }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRyb3AtYXJlYS13cmFwcGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTdUQiLCJmaWxlIjoiZHJvcC1hcmVhLXdyYXBwZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEcm9wem9uZVJvb3RQcm9wcyB9IGZyb20gJ3JlYWN0LWRyb3B6b25lJ1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IHN0eWxlcyB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdHlwZSBEcm9wQXJlYVN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vQHR5cGVzJ1xuXG5pbnRlcmZhY2UgRHJvcFdyYXBwZXJQcm9wcyBleHRlbmRzIERyb3B6b25lUm9vdFByb3BzIHtcbiAgZHJvcEFyZWFTdGF0ZTogRHJvcEFyZWFTdGF0ZVxufVxuZXhwb3J0IGNvbnN0IERyb3BXcmFwcGVyID0gc3R5bGVkLmRpdjxEcm9wV3JhcHBlclByb3BzPmBcbiAgJHtzdHlsZXMuYmFzZX1cbiAgJHsocHJvcHMpID0+IHtcbiAgICBpZiAocHJvcHMuZHJvcEFyZWFTdGF0ZSA9PT0gJ3JlYWR5LWZvci1kcm9wJykge1xuICAgICAgcmV0dXJuIHN0eWxlcy5yZWFkeUZvckRyb3BcbiAgICB9XG4gICAgaWYgKHByb3BzLmRyb3BBcmVhU3RhdGUgPT09ICdhY3RpdmUtZHJhZycpIHtcbiAgICAgIHJldHVybiBzdHlsZXMuYWN0aXZlRHJhZ1xuICAgIH1cbiAgICBpZiAocHJvcHMuZHJvcEFyZWFTdGF0ZSA9PT0gJ2ZpbGUtZHJvcHBlZCcpIHtcbiAgICAgIHJldHVybiBzdHlsZXMuZmlsZURyb3BwZWRcbiAgICB9XG4gICAgcmV0dXJuIGdldERlZmF1bHREcm9wV3JhcHBlclN0eWxlcyhwcm9wcy5kcm9wQXJlYVN0YXRlKVxuICB9fVxuYFxuZnVuY3Rpb24gZ2V0RGVmYXVsdERyb3BXcmFwcGVyU3R5bGVzKF9kcm9wQXJlYVN0YXRlOiBuZXZlcikge1xuICByZXR1cm4gY3NzYGBcbn1cbiJdfQ== */"));
652
+ function getDefaultDropWrapperStyles(_dropAreaState) {
653
+ return /*#__PURE__*/react.css(process.env.NODE_ENV === "production" ? "" : ";label:getDefaultDropWrapperStyles;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRyb3AtYXJlYS13cmFwcGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5QlkiLCJmaWxlIjoiZHJvcC1hcmVhLXdyYXBwZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEcm9wem9uZVJvb3RQcm9wcyB9IGZyb20gJ3JlYWN0LWRyb3B6b25lJ1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCdcbmltcG9ydCB7IHN0eWxlcyB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgdHlwZSBEcm9wQXJlYVN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vQHR5cGVzJ1xuXG5pbnRlcmZhY2UgRHJvcFdyYXBwZXJQcm9wcyBleHRlbmRzIERyb3B6b25lUm9vdFByb3BzIHtcbiAgZHJvcEFyZWFTdGF0ZTogRHJvcEFyZWFTdGF0ZVxufVxuZXhwb3J0IGNvbnN0IERyb3BXcmFwcGVyID0gc3R5bGVkLmRpdjxEcm9wV3JhcHBlclByb3BzPmBcbiAgJHtzdHlsZXMuYmFzZX1cbiAgJHsocHJvcHMpID0+IHtcbiAgICBpZiAocHJvcHMuZHJvcEFyZWFTdGF0ZSA9PT0gJ3JlYWR5LWZvci1kcm9wJykge1xuICAgICAgcmV0dXJuIHN0eWxlcy5yZWFkeUZvckRyb3BcbiAgICB9XG4gICAgaWYgKHByb3BzLmRyb3BBcmVhU3RhdGUgPT09ICdhY3RpdmUtZHJhZycpIHtcbiAgICAgIHJldHVybiBzdHlsZXMuYWN0aXZlRHJhZ1xuICAgIH1cbiAgICBpZiAocHJvcHMuZHJvcEFyZWFTdGF0ZSA9PT0gJ2ZpbGUtZHJvcHBlZCcpIHtcbiAgICAgIHJldHVybiBzdHlsZXMuZmlsZURyb3BwZWRcbiAgICB9XG4gICAgcmV0dXJuIGdldERlZmF1bHREcm9wV3JhcHBlclN0eWxlcyhwcm9wcy5kcm9wQXJlYVN0YXRlKVxuICB9fVxuYFxuZnVuY3Rpb24gZ2V0RGVmYXVsdERyb3BXcmFwcGVyU3R5bGVzKF9kcm9wQXJlYVN0YXRlOiBuZXZlcikge1xuICByZXR1cm4gY3NzYGBcbn1cbiJdfQ== */");
654
+ }
655
+
656
+ var ActiveDragDropArea = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./active-drag-drop-area-5f79b986.cjs.dev.js' /* webpackChunkName: "active-drag-drop-area" */); }));
657
+
658
+ var EnabledDropArea = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./enabled-drop-area-8521a9f7.cjs.dev.js' /* webpackChunkName: "enabled-drop-area" */); }));
659
+
660
+ var FileDropped = /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return require('./file-dropped-area-8cd4e78b.cjs.dev.js' /* webpackChunkName: "filed-dropped-area" */); }));
661
+
662
+ function getDropArea(_ref) {
663
+ let dropAreaState = _ref.dropAreaState,
664
+ isFileDropped = _ref.isFileDropped;
665
+ if (dropAreaState === 'ready-for-drop') {
666
+ return jsxRuntime.jsx(EnabledDropArea, {});
667
+ }
668
+ if (dropAreaState === 'file-dropped') {
669
+ return jsxRuntime.jsx(FileDropped, {});
670
+ }
671
+ if (dropAreaState === 'active-drag') {
672
+ return jsxRuntime.jsx(ActiveDragDropArea, {
673
+ isFileDropped: isFileDropped
674
+ });
675
+ }
676
+ return fallbackDropArea();
677
+ }
678
+ function fallbackDropArea(_invalidDropAreaState) {
679
+ return jsxRuntime.jsx(FileDropped, {});
680
+ }
681
+ function getDropAreaState(flags) {
682
+ if (flags.isDragActive) {
683
+ return 'active-drag';
684
+ }
685
+ if (flags.isReady) {
686
+ return 'file-dropped';
687
+ }
688
+ return 'ready-for-drop';
689
+ }
690
+
691
+ var messages$4 = reactIntl.defineMessages({
692
+ dragAndDropCSV: {
693
+ id: "DeleteResourcesModal.dragAndDropCSV",
694
+ defaultMessage: "Drag and drop CSV"
695
+ },
696
+ or: {
697
+ id: "DeleteResourcesModal.or",
698
+ defaultMessage: "or"
699
+ },
700
+ browseButton: {
701
+ id: "DeleteResourcesModal.browseFile",
702
+ defaultMessage: "Browse file"
703
+ },
704
+ uploadAndPreview: {
705
+ id: "DeleteResourcesModal.uploadAndPreview",
706
+ defaultMessage: "Upload and preview"
707
+ },
708
+ chooseFile: {
709
+ id: "DeleteResourcesModal.chooseFile",
710
+ defaultMessage: "Choose file"
711
+ },
712
+ fileUploadFailed: {
713
+ id: "DeleteResourcesModal.fileUploadFailed",
714
+ defaultMessage: "File upload failed"
715
+ },
716
+ fileFormatNotSupported: {
717
+ id: "DeleteResourcesModal.fileFormatNotSupported",
718
+ defaultMessage: "Invalid file format: The file is not in CSV format and cannot be processed."
719
+ },
720
+ tooManyFilesError: {
721
+ id: "DeleteResourcesModal.tooManyFilesError",
722
+ defaultMessage: "Multiple files detected: You can only drag and drop one file at a time."
723
+ },
724
+ genericError: {
725
+ id: "DeleteResourcesModal.genericError",
726
+ defaultMessage: "Error occurred: Please try uploading the file again or contact our support team for assistance."
727
+ },
728
+ dataType: {
729
+ id: "DeleteResourcesModal.dataType",
730
+ defaultMessage: "Data type"
731
+ },
732
+ instructions: {
733
+ id: "DeleteResourcesModal.instructions",
734
+ defaultMessage: "Instructions"
735
+ }
736
+ });
737
+
738
+ const useDeleteResourcesContext = () => {
739
+ const context = React.useContext(DeleteResourcesContext);
740
+ if (!context) {
741
+ throw new MissingDeleteResourcesProviderError();
742
+ }
743
+ return context;
744
+ };
745
+
746
+ var messages$3 = reactIntl.defineMessages({
747
+ fileSizeExceededTitle: {
748
+ id: "DeleteResourcesModal.sizeExceededTitle",
749
+ defaultMessage: "File size exceeded"
750
+ },
751
+ fileSizeExceededDescription: {
752
+ id: "DeleteResourcesModal.sizeExceededDescription",
753
+ defaultMessage: "The file exceeds the maximum allowed size of {fileSizeLimit} MB"
754
+ },
755
+ rowLimitExceededTitle: {
756
+ id: "DeleteResourcesModal.rowLimitExceededTitle",
757
+ defaultMessage: "Row limit exceeded"
758
+ },
759
+ rowLimitExceededDescription: {
760
+ id: "DeleteResourcesModal.rowLimitExceededDescription",
761
+ defaultMessage: "The file contains more than the allowable maximum of {rowLimit} rows"
762
+ },
763
+ dropAreaNotEnoughRowsTitle: {
764
+ id: "DeleteResourcesModal.dropAreaNotEnoughRowsTitle",
765
+ defaultMessage: "Invalid CSV file"
766
+ },
767
+ dropAreaNotEnoughRowsDescription: {
768
+ id: "DeleteResourcesModal.dropAreaNotEnoughRowsDescription",
769
+ defaultMessage: "Make sure the file contains a header and at least one row of data"
770
+ },
771
+ unexpectedError: {
772
+ id: "DeleteResourcesModal.unexpectedError",
773
+ defaultMessage: "An unexpected error occurred during the file upload. Please try again, or contact support if this error occurs again."
774
+ },
775
+ missingRequiredField: {
776
+ id: "DeleteResourcesModal.missingRequiredField",
777
+ defaultMessage: "Missing required field"
778
+ },
779
+ missingKeyError: {
780
+ id: "DeleteResourcesModal.missingKeyError",
781
+ defaultMessage: "The 'key' field is missing or incomplete in some rows. Please ensure every row has a 'key' value."
782
+ },
783
+ csvFormatErrorTitle: {
784
+ id: "DeleteResourcesModal.csvFormatErrorTitle",
785
+ defaultMessage: "Invalid CSV file"
786
+ },
787
+ csvFormatErrorDescription: {
788
+ id: "UnpublishProductsModal.csvFormatErrorDescription",
789
+ defaultMessage: "Your CSV file is not formatted correctly. Make sure the file contains only one column named 'key', which includes the product keys"
790
+ }
791
+ });
792
+
793
+ const IMPORT_TAG_KEYS = {
794
+ source: 'source'
795
+ };
796
+ const IMPORT_TAG_VALUES = {
797
+ fileUpload: 'file-upload'
798
+ };
799
+ const TAG_KEY_SOURCE_FILE_UPLOAD = `${IMPORT_TAG_KEYS.source}:${IMPORT_TAG_VALUES.fileUpload}`;
800
+ const FILE_SIZE_LIMIT_MB = 35;
801
+ const ROW_COUNT_LIMIT = 80_000;
802
+ const DOCUMENTATION_LINKS = {
803
+ product: 'https://docs.commercetools.com/merchant-center/product-list#bulk-delete-via-csv-import'
804
+ };
805
+ const TEMPLATE_DOWNLOAD_LINKS = {
806
+ product: 'https://docs.commercetools.com/merchant-center/downloads/product_delete_import_template.csv'
807
+ };
808
+
809
+ function ownKeys$8(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
810
+ function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$8(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$8(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
811
+ const addProxyPrefixToUrl = (uri, proxy) => {
812
+ return proxy ? `/proxy/${proxy}${uri}` : uri;
813
+ };
814
+ const fetchUsingXhr = _ref2 => {
815
+ let url = _ref2.url,
816
+ payload = _ref2.payload,
817
+ config = _ref2.config,
818
+ onProgress = _ref2.onProgress,
819
+ onSuccess = _ref2.onSuccess,
820
+ onError = _ref2.onError;
821
+ const options = applicationShell.createHttpClientOptions({
822
+ headers: _objectSpread$8({
823
+ 'Content-Type': 'application/json'
824
+ }, config?.headers)
825
+ });
826
+ const xhr = new XMLHttpRequest();
827
+ xhr.open(config?.method, applicationShell.buildApiUrl(addProxyPrefixToUrl(url, config?.proxy)), true);
828
+ // Include cookies in the request
829
+ xhr.withCredentials = true;
830
+ if (options.headers) {
831
+ var _context;
832
+ _forEachInstanceProperty__default["default"](_context = _Object$keys__default["default"](options.headers)).call(_context, key => {
833
+ xhr.setRequestHeader(key, options.headers[key]);
834
+ });
835
+ }
836
+ xhr.upload.onprogress = function (event) {
837
+ if (event.lengthComputable) {
838
+ const percentComplete = event.loaded / event.total * 100;
839
+ onProgress(percentComplete);
840
+ }
841
+ };
842
+ xhr.onload = function () {
843
+ const data = JSON.parse(xhr.responseText);
844
+ // Code copied from `executeHttpClientRequest` to replicate the same behavior
845
+ const refreshedSessionToken = xhr.getResponseHeader('x-refreshed-session-token');
846
+ if (refreshedSessionToken) {
847
+ applicationShellConnectors.oidcStorage.setActiveSession(refreshedSessionToken);
848
+ }
849
+ if (xhr.status >= 200 && xhr.status < 300) {
850
+ onSuccess(data);
851
+ } else {
852
+ onError(new HttpError(xhr.status, xhr.statusText, data));
853
+ }
854
+ };
855
+ xhr.onerror = function () {
856
+ const errorData = JSON.parse(xhr.responseText);
857
+ onError(new HttpError(xhr.status, xhr.statusText, errorData));
858
+ };
859
+ xhr.onabort = function () {
860
+ onError(new DOMException('Aborted', 'AbortError'));
861
+ };
862
+ xhr.send(payload);
863
+ return xhr;
864
+ };
865
+
866
+ function uploadFileForImport(_ref) {
867
+ let projectKey = _ref.projectKey,
868
+ containerKey = _ref.containerKey,
869
+ resourceType = _ref.resourceType,
870
+ file = _ref.file,
871
+ abortSignal = _ref.abortSignal,
872
+ onSuccess = _ref.onSuccess,
873
+ onProgress = _ref.onProgress,
874
+ onError = _ref.onError;
875
+ const uri = getFileUploadURL({
876
+ projectKey,
877
+ containerKey,
878
+ resourceType
879
+ });
880
+ const formData = new FormData();
881
+ formData.append('file', file, file.name);
882
+ return fetchUsingXhr({
883
+ url: uri,
884
+ payload: formData,
885
+ config: {
886
+ abortSignal,
887
+ proxy: constants.MC_API_PROXY_TARGETS.IMPORT,
888
+ method: 'POST',
889
+ headers: {
890
+ 'Content-Type': null
891
+ }
892
+ },
893
+ onProgress,
894
+ onSuccess,
895
+ onError
896
+ });
897
+ }
898
+
899
+ const useUpload = () => {
900
+ const intl = reactIntl.useIntl();
901
+ const projectKey = applicationShellConnectors.useApplicationContext(context => context.project?.key);
902
+ const _useDeleteResourcesCo = useDeleteResourcesContext(),
903
+ resourceType = _useDeleteResourcesCo.resourceType,
904
+ state = _useDeleteResourcesCo.state,
905
+ actions = _useDeleteResourcesCo.actions;
906
+ const asyncDispatch = sdk.useAsyncDispatch();
907
+ const showNotification = actionsGlobal.useShowNotification();
908
+ React__default["default"].useEffect(() => {
909
+ return () => {
910
+ if (state.abortController) state.abortController.abort();
911
+ };
912
+ }, [state.abortController]);
913
+ const isFileValid = async file => {
914
+ const errors = [];
915
+ const rowCount = await getRowCount(file);
916
+ if (rowCount < 1) errors.push({
917
+ title: intl.formatMessage(messages$3.dropAreaNotEnoughRowsTitle),
918
+ description: intl.formatMessage(messages$3.dropAreaNotEnoughRowsDescription)
919
+ });
920
+ if (file.size > toBytes(FILE_SIZE_LIMIT_MB)) errors.push({
921
+ title: intl.formatMessage(messages$3.fileSizeExceededTitle),
922
+ description: intl.formatMessage(messages$3.fileSizeExceededDescription, {
923
+ fileSizeLimit: intl.formatNumber(FILE_SIZE_LIMIT_MB)
924
+ })
925
+ });
926
+ if (!(await hasSingleKeyColumn(file))) {
927
+ errors.push({
928
+ title: intl.formatMessage(messages$3.csvFormatErrorTitle),
929
+ description: intl.formatMessage(messages$3.csvFormatErrorDescription)
930
+ });
931
+ }
932
+ if (rowCount > ROW_COUNT_LIMIT) errors.push({
933
+ title: intl.formatMessage(messages$3.rowLimitExceededTitle),
934
+ description: intl.formatMessage(messages$3.rowLimitExceededDescription, {
935
+ rowLimit: intl.formatNumber(ROW_COUNT_LIMIT)
936
+ })
937
+ });
938
+ if (errors.length > 0) {
939
+ actions.setFileUploadErrors(errors);
940
+ actions.setCurrentStep('upload-error');
941
+ return false;
942
+ }
943
+ return true;
944
+ };
945
+ const handleUploadError = error => {
946
+ if (isAbortError(error)) {
947
+ actions.cancelImport();
948
+ return;
949
+ }
950
+ if (error instanceof HttpError) {
951
+ if (error.errorData?.code === 'MISSING_KEY_ERROR') {
952
+ actions.setFileUploadErrors([{
953
+ title: intl.formatMessage(messages$3.missingRequiredField),
954
+ description: intl.formatMessage(messages$3.missingKeyError)
955
+ }]);
956
+ actions.setCurrentStep('upload-error');
957
+ } else {
958
+ actions.cancelImport();
959
+ showNotification({
960
+ kind: 'error',
961
+ domain: constants.DOMAINS.PAGE,
962
+ text: intl.formatMessage(messages$3.unexpectedError)
963
+ });
964
+ }
965
+ } else {
966
+ actions.cancelImport();
967
+ showNotification({
968
+ kind: 'error',
969
+ domain: constants.DOMAINS.PAGE,
970
+ text: String(error)
971
+ });
972
+ sentry.reportErrorToSentry(new Error('Upload File Error: An unexpected issue occurred while uploading the file'), {
973
+ extra: {
974
+ error,
975
+ projectKey,
976
+ containerKey: state.containerKey,
977
+ fileSizeInBytes: state.droppedFile?.size
978
+ }
979
+ });
980
+ }
981
+ };
982
+ const handleUploadAndValidation = async () => {
983
+ if (!projectKey || !state.droppedFile) return;
984
+ const canUpload = await isFileValid(state.droppedFile);
985
+ if (!canUpload) return;
986
+ actions.setCurrentStep('uploading');
987
+ const containerKey = encodeFileNameWithTimestampToContainerKey(state.droppedFile.name);
988
+ actions.setContainerKey(containerKey);
989
+ try {
990
+ await createImportContainerForFileUpload({
991
+ key: containerKey,
992
+ tags: [TAG_KEY_SOURCE_FILE_UPLOAD],
993
+ resourceType
994
+ }, projectKey, asyncDispatch);
995
+ const newAbortController = uploadFileForImport({
996
+ projectKey,
997
+ containerKey,
998
+ resourceType,
999
+ file: state.droppedFile,
1000
+ onSuccess: fileUploadResponse => {
1001
+ actions.setUploadFileResponse(fileUploadResponse);
1002
+ actions.setCurrentStep('upload-preview');
1003
+ },
1004
+ onProgress: progress => {
1005
+ actions.setProgress(progress);
1006
+ },
1007
+ onError: error => {
1008
+ deleteImportContainer(projectKey, containerKey, asyncDispatch);
1009
+ handleUploadError(error);
1010
+ }
1011
+ });
1012
+ actions.setAbortController(newAbortController);
1013
+ } catch (error) {
1014
+ deleteImportContainer(projectKey, containerKey, asyncDispatch);
1015
+ handleUploadError(error);
1016
+ }
1017
+ };
1018
+ return {
1019
+ handleUploadAndValidation
1020
+ };
1021
+ };
1022
+
1023
+ function ownKeys$7(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1024
+ function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var _context3, _context4; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context3 = ownKeys$7(Object(t), !0)).call(_context3, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context4 = ownKeys$7(Object(t))).call(_context4, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1025
+ const FileDropArea = () => {
1026
+ const intl = reactIntl.useIntl();
1027
+ const _useDeleteResourcesCo = useDeleteResourcesContext(),
1028
+ state = _useDeleteResourcesCo.state,
1029
+ actions = _useDeleteResourcesCo.actions;
1030
+ const showNotification = actionsGlobal.useShowNotification();
1031
+ const onDrop = React__default["default"].useCallback(_ref => {
1032
+ let _ref2 = _slicedToArray(_ref, 1),
1033
+ file = _ref2[0];
1034
+ if (!file) return;
1035
+ actions.setDroppedFile(file);
1036
+ }, [actions]);
1037
+ const _useDropzone = reactDropzone.useDropzone({
1038
+ onDrop,
1039
+ multiple: false,
1040
+ accept: {
1041
+ 'text/csv': ['.csv']
1042
+ },
1043
+ onDropRejected: _ref3 => {
1044
+ var _context, _context2;
1045
+ let _ref4 = _slicedToArray(_ref3, 1),
1046
+ rejectedFile = _ref4[0];
1047
+ if (_someInstanceProperty__default["default"](_context = rejectedFile.errors).call(_context, error => error.code === 'too-many-files')) {
1048
+ showNotification({
1049
+ kind: 'error',
1050
+ domain: constants.DOMAINS.PAGE,
1051
+ text: intl.formatMessage(messages$4.tooManyFilesError)
1052
+ });
1053
+ return;
1054
+ }
1055
+ if (_someInstanceProperty__default["default"](_context2 = rejectedFile.errors).call(_context2, error => error.code === 'file-invalid-type')) {
1056
+ showNotification({
1057
+ kind: 'error',
1058
+ domain: constants.DOMAINS.PAGE,
1059
+ text: intl.formatMessage(messages$4.fileFormatNotSupported)
1060
+ });
1061
+ } else {
1062
+ showNotification({
1063
+ kind: 'error',
1064
+ domain: constants.DOMAINS.PAGE,
1065
+ text: intl.formatMessage(messages$4.genericError)
1066
+ });
1067
+ }
1068
+ }
1069
+ }),
1070
+ getRootProps = _useDropzone.getRootProps,
1071
+ getInputProps = _useDropzone.getInputProps,
1072
+ isDragActive = _useDropzone.isDragActive;
1073
+ const dropAreaState = React__default["default"].useMemo(() => getDropAreaState({
1074
+ isReady: Boolean(state.droppedFile),
1075
+ isDragActive
1076
+ }), [state.droppedFile, isDragActive]);
1077
+ const dropArea = getDropArea({
1078
+ dropAreaState,
1079
+ isFileDropped: Boolean(state.droppedFile)
1080
+ });
1081
+ return jsxRuntime.jsxs(DropWrapper, _objectSpread$7(_objectSpread$7({
1082
+ role: "presentation"
1083
+ }, getRootProps()), {}, {
1084
+ dropAreaState: dropAreaState,
1085
+ children: [jsxRuntime.jsx("input", _objectSpread$7({
1086
+ "data-testid": "file-input"
1087
+ }, getInputProps())), jsxRuntime.jsx(uiKit.Constraints.Horizontal, {
1088
+ children: dropArea
1089
+ })]
1090
+ }));
1091
+ };
1092
+
1093
+ var messages$2 = reactIntl.defineMessages({
1094
+ fileUploadInstruction: {
1095
+ id: "DeleteResourcesModal.fileUploadInstruction",
1096
+ defaultMessage: "The CSV file must contain the {resourceType} keys to be deleted under the header 'key'."
1097
+ },
1098
+ fileUploadInstructionForMaxFileSize: {
1099
+ id: "DeleteResourcesModal.fileUploadInstructionForMaxFileSize",
1100
+ defaultMessage: "Maximum file size is {maxFileSize} MB with a limit of {maxRowCount} rows. Download <csvTemplateLink>the CSV template</csvTemplateLink> or refer to <documentationLink>the documentation</documentationLink>."
1101
+ },
1102
+ unpublishNote: {
1103
+ id: "DeleteResourcesModal.unpublishNote",
1104
+ defaultMessage: "Please note that published products <b>must be unpublished</b> before they can be deleted."
1105
+ }
1106
+ });
1107
+
1108
+ function ownKeys$6(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1109
+ function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$6(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$6(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1110
+ const Instructions = () => {
1111
+ const intl = reactIntl.useIntl();
1112
+ const _useDeleteResourcesCo = useDeleteResourcesContext(),
1113
+ resourceType = _useDeleteResourcesCo.resourceType;
1114
+ const documentTemplateLink = TEMPLATE_DOWNLOAD_LINKS[resourceType];
1115
+ const documentationLink = DOCUMENTATION_LINKS[resourceType];
1116
+ return jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1117
+ scale: "m",
1118
+ children: [jsxRuntime.jsxs(uiKit.Text.Body, {
1119
+ children: [intl.formatMessage(messages$2.fileUploadInstruction, {
1120
+ resourceType: intl.formatMessage(resourceTypeToMessage(resourceType))
1121
+ }), ' ', intl.formatMessage(messages$2.unpublishNote, {
1122
+ b: msg => jsxRuntime.jsx("b", {
1123
+ children: msg
1124
+ })
1125
+ })]
1126
+ }), jsxRuntime.jsx(uiKit.Text.Body, {
1127
+ intlMessage: _objectSpread$6(_objectSpread$6({}, messages$2.fileUploadInstructionForMaxFileSize), {}, {
1128
+ values: {
1129
+ maxFileSize: intl.formatNumber(FILE_SIZE_LIMIT_MB),
1130
+ maxRowCount: intl.formatNumber(ROW_COUNT_LIMIT),
1131
+ csvTemplateLink: msg => jsxRuntime.jsx(uiKit.Link, {
1132
+ tone: "secondary",
1133
+ isExternal: true,
1134
+ to: documentTemplateLink,
1135
+ children: msg
1136
+ }),
1137
+ documentationLink: msg => jsxRuntime.jsx(uiKit.Link, {
1138
+ tone: "secondary",
1139
+ isExternal: true,
1140
+ to: documentationLink,
1141
+ children: msg
1142
+ })
1143
+ }
1144
+ })
1145
+ })]
1146
+ });
1147
+ };
1148
+
1149
+ const Upload = () => {
1150
+ const _useDeleteResourcesCo = useDeleteResourcesContext(),
1151
+ state = _useDeleteResourcesCo.state,
1152
+ onClose = _useDeleteResourcesCo.onClose;
1153
+ const intl = reactIntl.useIntl();
1154
+ const _useUpload = useUpload(),
1155
+ handleUploadAndValidation = _useUpload.handleUploadAndValidation;
1156
+ return jsxRuntime.jsx(applicationComponents.FormDialog, {
1157
+ size: 16,
1158
+ isOpen: true,
1159
+ title: intl.formatMessage(sharedMessages.deleteModalTitle),
1160
+ labelPrimary: intl.formatMessage(messages$4.uploadAndPreview),
1161
+ onPrimaryButtonClick: handleUploadAndValidation,
1162
+ isPrimaryButtonDisabled: !Boolean(state.droppedFile),
1163
+ onSecondaryButtonClick: () => onClose({
1164
+ shouldDeleteImportContainer: true
1165
+ }),
1166
+ onClose: () => onClose({
1167
+ shouldDeleteImportContainer: true
1168
+ }),
1169
+ children: jsxRuntime.jsx(fullstory.Masking.Unmask, {
1170
+ children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1171
+ scale: "m",
1172
+ children: [jsxRuntime.jsx(Instructions, {}), jsxRuntime.jsx(FileDropArea, {})]
1173
+ })
1174
+ })
1175
+ });
1176
+ };
1177
+
1178
+ function ownKeys$5(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1179
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$5(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1180
+ var FileIcon = function FileIcon(props) {
1181
+ return jsxRuntime.jsxs("svg", _objectSpread$5(_objectSpread$5({}, props), {}, {
1182
+ children: [jsxRuntime.jsx("mask", {
1183
+ id: "a",
1184
+ style: {
1185
+ maskType: "alpha"
1186
+ },
1187
+ maskUnits: "userSpaceOnUse",
1188
+ x: "0",
1189
+ y: "0",
1190
+ width: "32",
1191
+ height: "32",
1192
+ children: jsxRuntime.jsx("path", {
1193
+ fill: "#D9D9D9",
1194
+ d: "M0 0h32v32H0z"
1195
+ })
1196
+ }), jsxRuntime.jsx("g", {
1197
+ mask: "url(#a)",
1198
+ children: jsxRuntime.jsx("path", {
1199
+ d: "M14.667 25.333h2.666v-5.566l2.134 2.133 1.866-1.9L16 14.667 10.667 20l1.9 1.867 2.1-2.1v5.566Zm-6.667 4a2.568 2.568 0 0 1-1.883-.783 2.568 2.568 0 0 1-.784-1.883V5.333c0-.733.261-1.36.784-1.883A2.568 2.568 0 0 1 8 2.667h10.667l8 8v16c0 .733-.261 1.36-.784 1.883a2.568 2.568 0 0 1-1.883.783H8ZM17.333 12H24l-6.667-6.667V12Z",
1200
+ fill: "#B1ACFF"
1201
+ })
1202
+ })]
1203
+ }));
1204
+ };
1205
+ FileIcon.defaultProps = {
1206
+ width: "32",
1207
+ height: "32",
1208
+ fill: "none",
1209
+ xmlns: "http://www.w3.org/2000/svg"
1210
+ };
1211
+ const Uploading = () => {
1212
+ const intl = reactIntl.useIntl();
1213
+ const _useDeleteResourcesCo = useDeleteResourcesContext(),
1214
+ state = _useDeleteResourcesCo.state,
1215
+ actions = _useDeleteResourcesCo.actions,
1216
+ onClose = _useDeleteResourcesCo.onClose;
1217
+ if (state.droppedFile?.name) return jsxRuntime.jsx(applicationComponents.InfoDialog, {
1218
+ size: 16,
1219
+ isOpen: true,
1220
+ title: intl.formatMessage(sharedMessages.deleteModalTitle),
1221
+ onClose: () => onClose({
1222
+ shouldDeleteImportContainer: true
1223
+ }),
1224
+ children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1225
+ scale: "m",
1226
+ children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1227
+ alignItems: "center",
1228
+ justifyContent: "space-between",
1229
+ children: [jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1230
+ alignItems: "center",
1231
+ children: [jsxRuntime.jsx(FileIcon, {}), jsxRuntime.jsx(uiKit.Spacings.Inline, {
1232
+ children: jsxRuntime.jsx(uiKit.Constraints.Horizontal, {
1233
+ max: 10,
1234
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
1235
+ truncate: true,
1236
+ fontWeight: "bold",
1237
+ children: state.droppedFile.name
1238
+ })
1239
+ })
1240
+ }), jsxRuntime.jsxs(uiKit.Text.Body, {
1241
+ tone: "secondary",
1242
+ children: ["(", intl.formatNumber(convertFileSizeToKB(state.droppedFile.size)), ' ', "KB)"]
1243
+ })]
1244
+ }), jsxRuntime.jsx(uiKit.SecondaryButton, {
1245
+ tone: "secondary",
1246
+ size: "medium",
1247
+ label: intl.formatMessage(sharedMessages.cancel),
1248
+ onClick: () => {
1249
+ actions.setCurrentStep('upload');
1250
+ state.abortController.abort();
1251
+ }
1252
+ })]
1253
+ }), jsxRuntime.jsx(uiKit.ProgressBar, {
1254
+ barWidth: "scale",
1255
+ height: "10",
1256
+ progress: state.progress
1257
+ }), jsxRuntime.jsx("div", {})]
1258
+ })
1259
+ });
1260
+ return null;
1261
+ };
1262
+
1263
+ var messages$1 = reactIntl.defineMessages({
1264
+ uploadNewFile: {
1265
+ id: "DeleteResourcesModal.uploadNewFile",
1266
+ defaultMessage: "Upload new file"
1267
+ },
1268
+ uploadErrorDescription: {
1269
+ id: "DeleteResourcesModal.uploadError",
1270
+ defaultMessage: "There {errorsCount, plural, one {is <b>1</b> error} other {are <b>{errorsCount}</b> errors}} detected while uploading the file \"{fileName}\"."
1271
+ },
1272
+ errorType: {
1273
+ id: "DeleteResourcesModal.errorType",
1274
+ defaultMessage: "Error type"
1275
+ },
1276
+ details: {
1277
+ id: "DeleteResourcesModal.details",
1278
+ defaultMessage: "Details"
1279
+ }
1280
+ });
1281
+
1282
+ function ownKeys$4(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1283
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context3 = ownKeys$4(Object(t))).call(_context3, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1284
+ const getColumns = () => [{
1285
+ key: 'errorType',
1286
+ label: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages$1.errorType)),
1287
+ width: 'max-content'
1288
+ }, {
1289
+ key: 'details',
1290
+ label: jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$4({}, messages$1.details))
1291
+ }];
1292
+ const UploadErrorTable = props => {
1293
+ var _context;
1294
+ const pagination = uiKit.usePaginationState({
1295
+ perPage: 10
1296
+ });
1297
+ const startIndex = (pagination.page.value - 1) * pagination.perPage.value;
1298
+ const endIndex = startIndex + pagination.perPage.value;
1299
+ const currentPageRows = _sliceInstanceProperty__default["default"](_context = props.rows).call(_context, startIndex, endIndex);
1300
+ const shouldShowPagination = props.rows.length > pagination.perPage.value;
1301
+ return jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1302
+ scale: "l",
1303
+ children: [jsxRuntime.jsx(DataTable__default["default"], {
1304
+ verticalCellAlignment: "center",
1305
+ isCondensed: true,
1306
+ rows: currentPageRows,
1307
+ columns: getColumns(),
1308
+ itemRenderer: itemRenderer
1309
+ }), shouldShowPagination && jsxRuntime.jsx(uiKit.PageNavigator, {
1310
+ onPageChange: pagination.page.onChange,
1311
+ page: pagination.page.value,
1312
+ totalPages: Math.ceil(props.rows.length / pagination.perPage.value)
1313
+ })]
1314
+ });
1315
+ };
1316
+ function itemRenderer(item, column) {
1317
+ switch (column.key) {
1318
+ case 'errorType':
1319
+ return jsxRuntime.jsx(uiKit.Stamp, {
1320
+ isCondensed: true,
1321
+ label: item.title,
1322
+ tone: "critical"
1323
+ });
1324
+ case 'details':
1325
+ return jsxRuntime.jsx(uiKit.Text.Body, {
1326
+ children: item.description
1327
+ });
1328
+ default:
1329
+ return null;
1330
+ }
1331
+ }
1332
+
1333
+ function ownKeys$3(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1334
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$3(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1335
+ const UploadErrorsModal = () => {
1336
+ const intl = reactIntl.useIntl();
1337
+ const _useDeleteResourcesCo = useDeleteResourcesContext(),
1338
+ state = _useDeleteResourcesCo.state,
1339
+ actions = _useDeleteResourcesCo.actions,
1340
+ onClose = _useDeleteResourcesCo.onClose;
1341
+ const errorsCount = state.fileUploadErrors.length;
1342
+ return jsxRuntime.jsx(applicationComponents.InfoDialog, {
1343
+ size: 16,
1344
+ isOpen: true,
1345
+ title: intl.formatMessage(sharedMessages.deleteModalTitle),
1346
+ onClose: () => onClose(),
1347
+ children: jsxRuntime.jsx(fullstory.Masking.Unmask, {
1348
+ children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1349
+ scale: "l",
1350
+ children: [jsxRuntime.jsx(fullstory.Masking.Mask, {
1351
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
1352
+ intlMessage: _objectSpread$3(_objectSpread$3({}, messages$1.uploadErrorDescription), {}, {
1353
+ values: {
1354
+ fileName: state.droppedFile?.name,
1355
+ errorsCount: intl.formatNumber(errorsCount),
1356
+ b: getBold$2
1357
+ }
1358
+ })
1359
+ })
1360
+ }), jsxRuntime.jsx(UploadErrorTable, {
1361
+ rows: mapFileUploadErrorsToUploadFileErrorRows(state.fileUploadErrors)
1362
+ }), jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1363
+ scale: "m",
1364
+ justifyContent: "flex-end",
1365
+ children: [jsxRuntime.jsx(uiKit.SecondaryButton, {
1366
+ label: intl.formatMessage(sharedMessages.cancel),
1367
+ onClick: () => onClose()
1368
+ }), jsxRuntime.jsx(uiKit.PrimaryButton, {
1369
+ iconLeft: jsxRuntime.jsx(uiKit.ImportIcon, {}),
1370
+ label: intl.formatMessage(messages$1.uploadNewFile),
1371
+ onClick: () => actions.uploadNewFile()
1372
+ })]
1373
+ })]
1374
+ })
1375
+ })
1376
+ });
1377
+ };
1378
+ function getBold$2(msg) {
1379
+ return jsxRuntime.jsx(uiKit.Text.Body, {
1380
+ as: "span",
1381
+ isBold: true,
1382
+ children: msg
1383
+ });
1384
+ }
1385
+
1386
+ var messages = reactIntl.defineMessages({
1387
+ continue: {
1388
+ id: "DeleteResourcesModal.continue",
1389
+ defaultMessage: "Continue"
1390
+ },
1391
+ heresAPreview: {
1392
+ id: "DeleteResourcesModal.heresAPreview",
1393
+ defaultMessage: "Here's a preview:"
1394
+ },
1395
+ resourcesToBeDeleted: {
1396
+ id: "DeleteResourcesModal.resourcesToBeDeleted",
1397
+ defaultMessage: "{count, plural, one {<b>{count}</b> {resourceType} to be deleted} other {<b>{count}</b> {resourceTypePlural} to be deleted}}"
1398
+ },
1399
+ confirmationQuestion: {
1400
+ id: "DeleteResourcesModal.confirmationQuestion",
1401
+ defaultMessage: "Are you sure you want to delete the {resourceTypePlural}?"
1402
+ },
1403
+ confirmationText: {
1404
+ id: "DeleteResourcesModal.confirmationText",
1405
+ defaultMessage: "{count, plural, one {You are about to delete <b>{count}</b> {resourceType} in the project: <b>{projectName}</b>.} other {You are about to deleted <b>{count}</b> {resourceTypePlural} in the project: <b>{projectName}</b>.}}"
1406
+ },
1407
+ cannotBeUndoneNote: {
1408
+ id: "DeleteResourcesModal.cannotBeUndoneNote",
1409
+ defaultMessage: "This action cannot be undone."
1410
+ },
1411
+ importStarted: {
1412
+ id: "DeleteResourcesModal.importStarted",
1413
+ defaultMessage: "<b>Your import for bulk delete has started.</b><newline></newline>Go to <logsLink>Import logs</logsLink> to view the progress."
1414
+ },
1415
+ preparingImport: {
1416
+ id: "DeleteResourcesModal.preparingImport",
1417
+ defaultMessage: "<b>Prepare bulk delete.</b><newline></newline>Once preparation is complete, you can track the progress <logsLink>in the Import logs</logsLink>. The data will be deleted after the import is finalized."
1418
+ }
1419
+ });
1420
+
1421
+ function ownKeys$2(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1422
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$2(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1423
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
1424
+ const getNewLine = () => jsxRuntime.jsx("br", {});
1425
+ const getImportLogsLink = (msg, projectKey) => jsxRuntime.jsx(uiKit.Link, {
1426
+ to: `/${projectKey}/operations/import/logs`,
1427
+ children: msg
1428
+ });
1429
+ var _ref2 = process.env.NODE_ENV === "production" ? {
1430
+ name: "1vs9i7r",
1431
+ styles: "width:360px"
1432
+ } : {
1433
+ name: "g36yzl-ImportRunningTextNotification",
1434
+ styles: "width:360px;label:ImportRunningTextNotification;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRlbGV0ZS1yZXNvdXJjZXMtY29uZmlybWF0aW9uLW1vZGFsLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQ1kiLCJmaWxlIjoiZGVsZXRlLXJlc291cmNlcy1jb25maXJtYXRpb24tbW9kYWwudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnXG5pbXBvcnQgeyB1c2VTaG93Tm90aWZpY2F0aW9uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYWN0aW9ucy1nbG9iYWwnXG5pbXBvcnQgeyBJbmZvRGlhbG9nIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tY29tcG9uZW50cydcbmltcG9ydCB7IHVzZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnXG5pbXBvcnQgeyBET01BSU5TIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJ1xuaW1wb3J0IHsgTWFza2luZyBhcyBGdWxsU3RvcnlNYXNraW5nIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvZnVsbHN0b3J5J1xuaW1wb3J0IHsgdXNlQXN5bmNEaXNwYXRjaCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3NkaydcbmltcG9ydCB7XG4gIExpbmssXG4gIFByaW1hcnlCdXR0b24sXG4gIFNlY29uZGFyeUJ1dHRvbixcbiAgU3BhY2luZ3MsXG4gIFRleHQsXG4gIFdhcm5pbmdJY29uLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC91aS1raXQnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBtZXNzYWdlcyBmcm9tICcuL21lc3NhZ2VzJ1xuaW1wb3J0IHsgcHJvY2Vzc1VwbG9hZGVkRmlsZSB9IGZyb20gJy4uLy4uL0BhcGknXG5pbXBvcnQge1xuICByZXNvdXJjZVR5cGVUb01lc3NhZ2UsXG4gIHJlc291cmNlVHlwZVRvUGx1cmFsTWVzc2FnZSxcbn0gZnJvbSAnLi4vLi4vQGhlbHBlcnMnXG5pbXBvcnQgeyB1c2VEZWxldGVSZXNvdXJjZXNDb250ZXh0IH0gZnJvbSAnLi4vLi4vQGhvb2tzJ1xuaW1wb3J0IHNoYXJlZE1lc3NhZ2VzIGZyb20gJy4uLy4uL21lc3NhZ2VzJ1xuXG5jb25zdCBnZXROZXdMaW5lID0gKCkgPT4gPGJyIC8+XG5jb25zdCBnZXRJbXBvcnRMb2dzTGluayA9IChtc2c6IHN0cmluZywgcHJvamVjdEtleT86IHN0cmluZykgPT4gKFxuICA8TGluayB0bz17YC8ke3Byb2plY3RLZXl9L29wZXJhdGlvbnMvaW1wb3J0L2xvZ3NgfT57bXNnfTwvTGluaz5cbilcblxuY29uc3QgSW1wb3J0UnVubmluZ1RleHROb3RpZmljYXRpb24gPSAocHJvcHM6IHsgcHJvamVjdEtleTogc3RyaW5nIH0pID0+IChcbiAgPGRpdlxuICAgIGNzcz17Y3NzYFxuICAgICAgd2lkdGg6IDM2MHB4O1xuICAgIGB9XG4gID5cbiAgICA8VGV4dC5Cb2R5XG4gICAgICBpbnRsTWVzc2FnZT17e1xuICAgICAgICAuLi5tZXNzYWdlcy5pbXBvcnRTdGFydGVkLFxuICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICBuZXdsaW5lOiBnZXROZXdMaW5lLFxuICAgICAgICAgIGxvZ3NMaW5rOiAobXNnOiBzdHJpbmcpID0+IGdldEltcG9ydExvZ3NMaW5rKG1zZywgcHJvcHMucHJvamVjdEtleSksXG4gICAgICAgICAgYjogZ2V0Qm9sZCxcbiAgICAgICAgfSxcbiAgICAgIH19XG4gICAgLz5cbiAgPC9kaXY+XG4pXG5cbmNvbnN0IEltcG9ydFByZXBhcmluZ1RleHROb3RpZmljYXRpb24gPSAocHJvcHM6IHsgcHJvamVjdEtleTogc3RyaW5nIH0pID0+IChcbiAgPGRpdlxuICAgIGNzcz17Y3NzYFxuICAgICAgd2lkdGg6IDM2MHB4O1xuICAgIGB9XG4gID5cbiAgICA8VGV4dC5Cb2R5XG4gICAgICBpbnRsTWVzc2FnZT17e1xuICAgICAgICAuLi5tZXNzYWdlcy5wcmVwYXJpbmdJbXBvcnQsXG4gICAgICAgIHZhbHVlczoge1xuICAgICAgICAgIG5ld2xpbmU6IGdldE5ld0xpbmUsXG4gICAgICAgICAgbG9nc0xpbms6IChtc2c6IHN0cmluZykgPT4gZ2V0SW1wb3J0TG9nc0xpbmsobXNnLCBwcm9wcy5wcm9qZWN0S2V5KSxcbiAgICAgICAgICBiOiBnZXRCb2xkLFxuICAgICAgICB9LFxuICAgICAgfX1cbiAgICAvPlxuICA8L2Rpdj5cbilcblxuZXhwb3J0IGNvbnN0IERlbGV0ZVJlc291cmNlc0NvbmZpcm1hdGlvbk1vZGFsID0gKCkgPT4ge1xuICBjb25zdCBpbnRsID0gdXNlSW50bCgpXG4gIGNvbnN0IHsgcmVzb3VyY2VUeXBlLCBzdGF0ZSwgb25DbG9zZSB9ID0gdXNlRGVsZXRlUmVzb3VyY2VzQ29udGV4dCgpXG4gIGNvbnN0IHsgcHJvamVjdEtleSwgcHJvamVjdE5hbWUgfSA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dCgoY29udGV4dCkgPT4gKHtcbiAgICBwcm9qZWN0S2V5OiBjb250ZXh0LnByb2plY3Q/LmtleSxcbiAgICBwcm9qZWN0TmFtZTogY29udGV4dC5wcm9qZWN0Py5uYW1lLFxuICB9KSlcblxuICBjb25zdCBhc3luY0Rpc3BhdGNoID0gdXNlQXN5bmNEaXNwYXRjaCgpXG5cbiAgY29uc3Qgc2hvd05vdGlmaWNhdGlvbiA9IHVzZVNob3dOb3RpZmljYXRpb24oKVxuXG4gIGNvbnN0IG9uU3RhcnRJbXBvcnQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhbkNvbmZpcm0gPVxuICAgICAgICBwcm9qZWN0S2V5ICYmIHN0YXRlLmNvbnRhaW5lcktleSAmJiBzdGF0ZS5kcm9wcGVkRmlsZT8ubmFtZVxuICAgICAgaWYgKCFjYW5Db25maXJtKSByZXR1cm5cbiAgICAgIG9uQ2xvc2UoKVxuICAgICAgc2hvd05vdGlmaWNhdGlvbihcbiAgICAgICAge1xuICAgICAgICAgIGtpbmQ6ICdpbmZvJyxcbiAgICAgICAgICBkb21haW46IERPTUFJTlMuU0lERSxcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdGV4dDogPEltcG9ydFByZXBhcmluZ1RleHROb3RpZmljYXRpb24gcHJvamVjdEtleT17cHJvamVjdEtleX0gLz4sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkaXNtaXNzQWZ0ZXI6IDUwMDAsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIGF3YWl0IHByb2Nlc3NVcGxvYWRlZEZpbGUoe1xuICAgICAgICBwcm9qZWN0S2V5LFxuICAgICAgICBjb250YWluZXJLZXk6IHN0YXRlLmNvbnRhaW5lcktleSEsXG4gICAgICAgIGFzeW5jRGlzcGF0Y2gsXG4gICAgICAgIHJlc291cmNlVHlwZSxcbiAgICAgIH0pXG4gICAgICBzaG93Tm90aWZpY2F0aW9uKFxuICAgICAgICB7XG4gICAgICAgICAga2luZDogJ2luZm8nLFxuICAgICAgICAgIGRvbWFpbjogRE9NQUlOUy5TSURFLFxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICB0ZXh0OiA8SW1wb3J0UnVubmluZ1RleHROb3RpZmljYXRpb24gcHJvamVjdEtleT17cHJvamVjdEtleX0gLz4sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkaXNtaXNzQWZ0ZXI6IDUwMDAsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25DbG9zZSh7IHNob3VsZERlbGV0ZUltcG9ydENvbnRhaW5lcjogdHJ1ZSB9KVxuICAgICAgc2hvd05vdGlmaWNhdGlvbih7XG4gICAgICAgIGtpbmQ6ICdlcnJvcicsXG4gICAgICAgIGRvbWFpbjogRE9NQUlOUy5QQUdFLFxuICAgICAgICB0ZXh0OiBTdHJpbmcoZXJyb3IpLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxJbmZvRGlhbG9nXG4gICAgICB0aXRsZT17aW50bC5mb3JtYXRNZXNzYWdlKHNoYXJlZE1lc3NhZ2VzLmRlbGV0ZU1vZGFsVGl0bGUpfVxuICAgICAgaXNPcGVuXG4gICAgICBvbkNsb3NlPXsoKSA9PiBvbkNsb3NlKHsgc2hvdWxkRGVsZXRlSW1wb3J0Q29udGFpbmVyOiB0cnVlIH0pfVxuICAgICAgc2l6ZT17MTZ9XG4gICAgPlxuICAgICAgPEZ1bGxTdG9yeU1hc2tpbmcuVW5tYXNrPlxuICAgICAgICA8U3BhY2luZ3MuU3RhY2sgc2NhbGU9XCJ4bFwiPlxuICAgICAgICAgIDxTcGFjaW5ncy5TdGFjayBzY2FsZT1cIm1cIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxUZXh0LkJvZHlcbiAgICAgICAgICAgICAgICBpbnRsTWVzc2FnZT17e1xuICAgICAgICAgICAgICAgICAgLi4ubWVzc2FnZXMuY29uZmlybWF0aW9uVGV4dCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlczoge1xuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZVBsdXJhbDogaW50bC5mb3JtYXRNZXNzYWdlKFxuICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZVRvUGx1cmFsTWVzc2FnZShyZXNvdXJjZVR5cGUpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZTogaW50bC5mb3JtYXRNZXNzYWdlKFxuICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZVRvTWVzc2FnZShyZXNvdXJjZVR5cGUpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIGNvdW50OiBpbnRsLmZvcm1hdE51bWJlcihcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS51cGxvYWRGaWxlUmVzcG9uc2U/LnJvd3NDb3VudFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBiOiBnZXRCb2xkLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8VGV4dC5Cb2R5XG4gICAgICAgICAgICAgICAgaW50bE1lc3NhZ2U9e3tcbiAgICAgICAgICAgICAgICAgIC4uLm1lc3NhZ2VzLmNvbmZpcm1hdGlvblF1ZXN0aW9uLFxuICAgICAgICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZVBsdXJhbDogaW50bC5mb3JtYXRNZXNzYWdlKFxuICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZVRvUGx1cmFsTWVzc2FnZShyZXNvdXJjZVR5cGUpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxTcGFjaW5ncy5JbmxpbmUgc2NhbGU9XCJzXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICA8V2FybmluZ0ljb24gc2l6ZT1cIjQwXCIgY29sb3I9XCJ3YXJuaW5nXCIgLz5cbiAgICAgICAgICAgICAgPFRleHQuQm9keSBpbnRsTWVzc2FnZT17bWVzc2FnZXMuY2Fubm90QmVVbmRvbmVOb3RlfSAvPlxuICAgICAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICAgICAgPC9TcGFjaW5ncy5TdGFjaz5cbiAgICAgICAgICA8U3BhY2luZ3MuSW5saW5lIHNjYWxlPVwibVwiIGp1c3RpZnlDb250ZW50PVwiZmxleC1lbmRcIj5cbiAgICAgICAgICAgIDxTZWNvbmRhcnlCdXR0b25cbiAgICAgICAgICAgICAgZGF0YS10ZXN0LWlkPVwiY29uZmlybWF0aW9uLWRpYWxvZy1jYW5jZWxcIlxuICAgICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHNoYXJlZE1lc3NhZ2VzLmNhbmNlbCl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xvc2UoeyBzaG91bGREZWxldGVJbXBvcnRDb250YWluZXI6IHRydWUgfSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFByaW1hcnlCdXR0b25cbiAgICAgICAgICAgICAgdG9uZT1cImNyaXRpY2FsXCJcbiAgICAgICAgICAgICAgZGF0YS10ZXN0LWlkPVwiY29uZmlybWF0aW9uLWRpYWxvZy1jb25maXJtXCJcbiAgICAgICAgICAgICAgbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZShzaGFyZWRNZXNzYWdlcy5zdGFydEJ1bGtEZWxldGUpfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblN0YXJ0SW1wb3J0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1NwYWNpbmdzLklubGluZT5cbiAgICAgICAgPC9TcGFjaW5ncy5TdGFjaz5cbiAgICAgIDwvRnVsbFN0b3J5TWFza2luZy5Vbm1hc2s+XG4gICAgPC9JbmZvRGlhbG9nPlxuICApXG59XG5cbmZ1bmN0aW9uIGdldEJvbGQobXNnOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChcbiAgICA8VGV4dC5Cb2R5IGFzPVwic3BhblwiIGlzQm9sZD5cbiAgICAgIHttc2d9XG4gICAgPC9UZXh0LkJvZHk+XG4gIClcbn1cbiJdfQ== */",
1435
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
1436
+ };
1437
+ const ImportRunningTextNotification = props => jsxRuntime.jsx("div", {
1438
+ css: _ref2,
1439
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
1440
+ intlMessage: _objectSpread$2(_objectSpread$2({}, messages.importStarted), {}, {
1441
+ values: {
1442
+ newline: getNewLine,
1443
+ logsLink: msg => getImportLogsLink(msg, props.projectKey),
1444
+ b: getBold$1
1445
+ }
1446
+ })
1447
+ })
1448
+ });
1449
+ var _ref = process.env.NODE_ENV === "production" ? {
1450
+ name: "1vs9i7r",
1451
+ styles: "width:360px"
1452
+ } : {
1453
+ name: "mjwslu-ImportPreparingTextNotification",
1454
+ styles: "width:360px;label:ImportPreparingTextNotification;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRlbGV0ZS1yZXNvdXJjZXMtY29uZmlybWF0aW9uLW1vZGFsLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtRFkiLCJmaWxlIjoiZGVsZXRlLXJlc291cmNlcy1jb25maXJtYXRpb24tbW9kYWwudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlSW50bCB9IGZyb20gJ3JlYWN0LWludGwnXG5pbXBvcnQgeyB1c2VTaG93Tm90aWZpY2F0aW9uIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYWN0aW9ucy1nbG9iYWwnXG5pbXBvcnQgeyBJbmZvRGlhbG9nIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvYXBwbGljYXRpb24tY29tcG9uZW50cydcbmltcG9ydCB7IHVzZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL2FwcGxpY2F0aW9uLXNoZWxsLWNvbm5lY3RvcnMnXG5pbXBvcnQgeyBET01BSU5TIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvY29uc3RhbnRzJ1xuaW1wb3J0IHsgTWFza2luZyBhcyBGdWxsU3RvcnlNYXNraW5nIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtZnJvbnRlbmQvZnVsbHN0b3J5J1xuaW1wb3J0IHsgdXNlQXN5bmNEaXNwYXRjaCB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLWZyb250ZW5kL3NkaydcbmltcG9ydCB7XG4gIExpbmssXG4gIFByaW1hcnlCdXR0b24sXG4gIFNlY29uZGFyeUJ1dHRvbixcbiAgU3BhY2luZ3MsXG4gIFRleHQsXG4gIFdhcm5pbmdJY29uLFxufSBmcm9tICdAY29tbWVyY2V0b29scy1mcm9udGVuZC91aS1raXQnXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBtZXNzYWdlcyBmcm9tICcuL21lc3NhZ2VzJ1xuaW1wb3J0IHsgcHJvY2Vzc1VwbG9hZGVkRmlsZSB9IGZyb20gJy4uLy4uL0BhcGknXG5pbXBvcnQge1xuICByZXNvdXJjZVR5cGVUb01lc3NhZ2UsXG4gIHJlc291cmNlVHlwZVRvUGx1cmFsTWVzc2FnZSxcbn0gZnJvbSAnLi4vLi4vQGhlbHBlcnMnXG5pbXBvcnQgeyB1c2VEZWxldGVSZXNvdXJjZXNDb250ZXh0IH0gZnJvbSAnLi4vLi4vQGhvb2tzJ1xuaW1wb3J0IHNoYXJlZE1lc3NhZ2VzIGZyb20gJy4uLy4uL21lc3NhZ2VzJ1xuXG5jb25zdCBnZXROZXdMaW5lID0gKCkgPT4gPGJyIC8+XG5jb25zdCBnZXRJbXBvcnRMb2dzTGluayA9IChtc2c6IHN0cmluZywgcHJvamVjdEtleT86IHN0cmluZykgPT4gKFxuICA8TGluayB0bz17YC8ke3Byb2plY3RLZXl9L29wZXJhdGlvbnMvaW1wb3J0L2xvZ3NgfT57bXNnfTwvTGluaz5cbilcblxuY29uc3QgSW1wb3J0UnVubmluZ1RleHROb3RpZmljYXRpb24gPSAocHJvcHM6IHsgcHJvamVjdEtleTogc3RyaW5nIH0pID0+IChcbiAgPGRpdlxuICAgIGNzcz17Y3NzYFxuICAgICAgd2lkdGg6IDM2MHB4O1xuICAgIGB9XG4gID5cbiAgICA8VGV4dC5Cb2R5XG4gICAgICBpbnRsTWVzc2FnZT17e1xuICAgICAgICAuLi5tZXNzYWdlcy5pbXBvcnRTdGFydGVkLFxuICAgICAgICB2YWx1ZXM6IHtcbiAgICAgICAgICBuZXdsaW5lOiBnZXROZXdMaW5lLFxuICAgICAgICAgIGxvZ3NMaW5rOiAobXNnOiBzdHJpbmcpID0+IGdldEltcG9ydExvZ3NMaW5rKG1zZywgcHJvcHMucHJvamVjdEtleSksXG4gICAgICAgICAgYjogZ2V0Qm9sZCxcbiAgICAgICAgfSxcbiAgICAgIH19XG4gICAgLz5cbiAgPC9kaXY+XG4pXG5cbmNvbnN0IEltcG9ydFByZXBhcmluZ1RleHROb3RpZmljYXRpb24gPSAocHJvcHM6IHsgcHJvamVjdEtleTogc3RyaW5nIH0pID0+IChcbiAgPGRpdlxuICAgIGNzcz17Y3NzYFxuICAgICAgd2lkdGg6IDM2MHB4O1xuICAgIGB9XG4gID5cbiAgICA8VGV4dC5Cb2R5XG4gICAgICBpbnRsTWVzc2FnZT17e1xuICAgICAgICAuLi5tZXNzYWdlcy5wcmVwYXJpbmdJbXBvcnQsXG4gICAgICAgIHZhbHVlczoge1xuICAgICAgICAgIG5ld2xpbmU6IGdldE5ld0xpbmUsXG4gICAgICAgICAgbG9nc0xpbms6IChtc2c6IHN0cmluZykgPT4gZ2V0SW1wb3J0TG9nc0xpbmsobXNnLCBwcm9wcy5wcm9qZWN0S2V5KSxcbiAgICAgICAgICBiOiBnZXRCb2xkLFxuICAgICAgICB9LFxuICAgICAgfX1cbiAgICAvPlxuICA8L2Rpdj5cbilcblxuZXhwb3J0IGNvbnN0IERlbGV0ZVJlc291cmNlc0NvbmZpcm1hdGlvbk1vZGFsID0gKCkgPT4ge1xuICBjb25zdCBpbnRsID0gdXNlSW50bCgpXG4gIGNvbnN0IHsgcmVzb3VyY2VUeXBlLCBzdGF0ZSwgb25DbG9zZSB9ID0gdXNlRGVsZXRlUmVzb3VyY2VzQ29udGV4dCgpXG4gIGNvbnN0IHsgcHJvamVjdEtleSwgcHJvamVjdE5hbWUgfSA9IHVzZUFwcGxpY2F0aW9uQ29udGV4dCgoY29udGV4dCkgPT4gKHtcbiAgICBwcm9qZWN0S2V5OiBjb250ZXh0LnByb2plY3Q/LmtleSxcbiAgICBwcm9qZWN0TmFtZTogY29udGV4dC5wcm9qZWN0Py5uYW1lLFxuICB9KSlcblxuICBjb25zdCBhc3luY0Rpc3BhdGNoID0gdXNlQXN5bmNEaXNwYXRjaCgpXG5cbiAgY29uc3Qgc2hvd05vdGlmaWNhdGlvbiA9IHVzZVNob3dOb3RpZmljYXRpb24oKVxuXG4gIGNvbnN0IG9uU3RhcnRJbXBvcnQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhbkNvbmZpcm0gPVxuICAgICAgICBwcm9qZWN0S2V5ICYmIHN0YXRlLmNvbnRhaW5lcktleSAmJiBzdGF0ZS5kcm9wcGVkRmlsZT8ubmFtZVxuICAgICAgaWYgKCFjYW5Db25maXJtKSByZXR1cm5cbiAgICAgIG9uQ2xvc2UoKVxuICAgICAgc2hvd05vdGlmaWNhdGlvbihcbiAgICAgICAge1xuICAgICAgICAgIGtpbmQ6ICdpbmZvJyxcbiAgICAgICAgICBkb21haW46IERPTUFJTlMuU0lERSxcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdGV4dDogPEltcG9ydFByZXBhcmluZ1RleHROb3RpZmljYXRpb24gcHJvamVjdEtleT17cHJvamVjdEtleX0gLz4sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkaXNtaXNzQWZ0ZXI6IDUwMDAsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIGF3YWl0IHByb2Nlc3NVcGxvYWRlZEZpbGUoe1xuICAgICAgICBwcm9qZWN0S2V5LFxuICAgICAgICBjb250YWluZXJLZXk6IHN0YXRlLmNvbnRhaW5lcktleSEsXG4gICAgICAgIGFzeW5jRGlzcGF0Y2gsXG4gICAgICAgIHJlc291cmNlVHlwZSxcbiAgICAgIH0pXG4gICAgICBzaG93Tm90aWZpY2F0aW9uKFxuICAgICAgICB7XG4gICAgICAgICAga2luZDogJ2luZm8nLFxuICAgICAgICAgIGRvbWFpbjogRE9NQUlOUy5TSURFLFxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICB0ZXh0OiA8SW1wb3J0UnVubmluZ1RleHROb3RpZmljYXRpb24gcHJvamVjdEtleT17cHJvamVjdEtleX0gLz4sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkaXNtaXNzQWZ0ZXI6IDUwMDAsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25DbG9zZSh7IHNob3VsZERlbGV0ZUltcG9ydENvbnRhaW5lcjogdHJ1ZSB9KVxuICAgICAgc2hvd05vdGlmaWNhdGlvbih7XG4gICAgICAgIGtpbmQ6ICdlcnJvcicsXG4gICAgICAgIGRvbWFpbjogRE9NQUlOUy5QQUdFLFxuICAgICAgICB0ZXh0OiBTdHJpbmcoZXJyb3IpLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxJbmZvRGlhbG9nXG4gICAgICB0aXRsZT17aW50bC5mb3JtYXRNZXNzYWdlKHNoYXJlZE1lc3NhZ2VzLmRlbGV0ZU1vZGFsVGl0bGUpfVxuICAgICAgaXNPcGVuXG4gICAgICBvbkNsb3NlPXsoKSA9PiBvbkNsb3NlKHsgc2hvdWxkRGVsZXRlSW1wb3J0Q29udGFpbmVyOiB0cnVlIH0pfVxuICAgICAgc2l6ZT17MTZ9XG4gICAgPlxuICAgICAgPEZ1bGxTdG9yeU1hc2tpbmcuVW5tYXNrPlxuICAgICAgICA8U3BhY2luZ3MuU3RhY2sgc2NhbGU9XCJ4bFwiPlxuICAgICAgICAgIDxTcGFjaW5ncy5TdGFjayBzY2FsZT1cIm1cIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxUZXh0LkJvZHlcbiAgICAgICAgICAgICAgICBpbnRsTWVzc2FnZT17e1xuICAgICAgICAgICAgICAgICAgLi4ubWVzc2FnZXMuY29uZmlybWF0aW9uVGV4dCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlczoge1xuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0TmFtZTogcHJvamVjdE5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZVBsdXJhbDogaW50bC5mb3JtYXRNZXNzYWdlKFxuICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZVRvUGx1cmFsTWVzc2FnZShyZXNvdXJjZVR5cGUpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZTogaW50bC5mb3JtYXRNZXNzYWdlKFxuICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZVRvTWVzc2FnZShyZXNvdXJjZVR5cGUpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIGNvdW50OiBpbnRsLmZvcm1hdE51bWJlcihcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS51cGxvYWRGaWxlUmVzcG9uc2U/LnJvd3NDb3VudFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBiOiBnZXRCb2xkLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8VGV4dC5Cb2R5XG4gICAgICAgICAgICAgICAgaW50bE1lc3NhZ2U9e3tcbiAgICAgICAgICAgICAgICAgIC4uLm1lc3NhZ2VzLmNvbmZpcm1hdGlvblF1ZXN0aW9uLFxuICAgICAgICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZVBsdXJhbDogaW50bC5mb3JtYXRNZXNzYWdlKFxuICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVHlwZVRvUGx1cmFsTWVzc2FnZShyZXNvdXJjZVR5cGUpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxTcGFjaW5ncy5JbmxpbmUgc2NhbGU9XCJzXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICA8V2FybmluZ0ljb24gc2l6ZT1cIjQwXCIgY29sb3I9XCJ3YXJuaW5nXCIgLz5cbiAgICAgICAgICAgICAgPFRleHQuQm9keSBpbnRsTWVzc2FnZT17bWVzc2FnZXMuY2Fubm90QmVVbmRvbmVOb3RlfSAvPlxuICAgICAgICAgICAgPC9TcGFjaW5ncy5JbmxpbmU+XG4gICAgICAgICAgPC9TcGFjaW5ncy5TdGFjaz5cbiAgICAgICAgICA8U3BhY2luZ3MuSW5saW5lIHNjYWxlPVwibVwiIGp1c3RpZnlDb250ZW50PVwiZmxleC1lbmRcIj5cbiAgICAgICAgICAgIDxTZWNvbmRhcnlCdXR0b25cbiAgICAgICAgICAgICAgZGF0YS10ZXN0LWlkPVwiY29uZmlybWF0aW9uLWRpYWxvZy1jYW5jZWxcIlxuICAgICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHNoYXJlZE1lc3NhZ2VzLmNhbmNlbCl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2xvc2UoeyBzaG91bGREZWxldGVJbXBvcnRDb250YWluZXI6IHRydWUgfSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFByaW1hcnlCdXR0b25cbiAgICAgICAgICAgICAgdG9uZT1cImNyaXRpY2FsXCJcbiAgICAgICAgICAgICAgZGF0YS10ZXN0LWlkPVwiY29uZmlybWF0aW9uLWRpYWxvZy1jb25maXJtXCJcbiAgICAgICAgICAgICAgbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZShzaGFyZWRNZXNzYWdlcy5zdGFydEJ1bGtEZWxldGUpfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblN0YXJ0SW1wb3J0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1NwYWNpbmdzLklubGluZT5cbiAgICAgICAgPC9TcGFjaW5ncy5TdGFjaz5cbiAgICAgIDwvRnVsbFN0b3J5TWFza2luZy5Vbm1hc2s+XG4gICAgPC9JbmZvRGlhbG9nPlxuICApXG59XG5cbmZ1bmN0aW9uIGdldEJvbGQobXNnOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChcbiAgICA8VGV4dC5Cb2R5IGFzPVwic3BhblwiIGlzQm9sZD5cbiAgICAgIHttc2d9XG4gICAgPC9UZXh0LkJvZHk+XG4gIClcbn1cbiJdfQ== */",
1455
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
1456
+ };
1457
+ const ImportPreparingTextNotification = props => jsxRuntime.jsx("div", {
1458
+ css: _ref,
1459
+ children: jsxRuntime.jsx(uiKit.Text.Body, {
1460
+ intlMessage: _objectSpread$2(_objectSpread$2({}, messages.preparingImport), {}, {
1461
+ values: {
1462
+ newline: getNewLine,
1463
+ logsLink: msg => getImportLogsLink(msg, props.projectKey),
1464
+ b: getBold$1
1465
+ }
1466
+ })
1467
+ })
1468
+ });
1469
+ const DeleteResourcesConfirmationModal = () => {
1470
+ const intl = reactIntl.useIntl();
1471
+ const _useDeleteResourcesCo = useDeleteResourcesContext(),
1472
+ resourceType = _useDeleteResourcesCo.resourceType,
1473
+ state = _useDeleteResourcesCo.state,
1474
+ onClose = _useDeleteResourcesCo.onClose;
1475
+ const _useApplicationContex = applicationShellConnectors.useApplicationContext(context => ({
1476
+ projectKey: context.project?.key,
1477
+ projectName: context.project?.name
1478
+ })),
1479
+ projectKey = _useApplicationContex.projectKey,
1480
+ projectName = _useApplicationContex.projectName;
1481
+ const asyncDispatch = sdk.useAsyncDispatch();
1482
+ const showNotification = actionsGlobal.useShowNotification();
1483
+ const onStartImport = async () => {
1484
+ try {
1485
+ const canConfirm = projectKey && state.containerKey && state.droppedFile?.name;
1486
+ if (!canConfirm) return;
1487
+ onClose();
1488
+ showNotification({
1489
+ kind: 'info',
1490
+ domain: constants.DOMAINS.SIDE,
1491
+ // @ts-ignore
1492
+ text: jsxRuntime.jsx(ImportPreparingTextNotification, {
1493
+ projectKey: projectKey
1494
+ })
1495
+ }, {
1496
+ dismissAfter: 5000
1497
+ });
1498
+ await processUploadedFile({
1499
+ projectKey,
1500
+ containerKey: state.containerKey,
1501
+ asyncDispatch,
1502
+ resourceType
1503
+ });
1504
+ showNotification({
1505
+ kind: 'info',
1506
+ domain: constants.DOMAINS.SIDE,
1507
+ // @ts-ignore
1508
+ text: jsxRuntime.jsx(ImportRunningTextNotification, {
1509
+ projectKey: projectKey
1510
+ })
1511
+ }, {
1512
+ dismissAfter: 5000
1513
+ });
1514
+ } catch (error) {
1515
+ onClose({
1516
+ shouldDeleteImportContainer: true
1517
+ });
1518
+ showNotification({
1519
+ kind: 'error',
1520
+ domain: constants.DOMAINS.PAGE,
1521
+ text: String(error)
1522
+ });
1523
+ }
1524
+ };
1525
+ return jsxRuntime.jsx(applicationComponents.InfoDialog, {
1526
+ title: intl.formatMessage(sharedMessages.deleteModalTitle),
1527
+ isOpen: true,
1528
+ onClose: () => onClose({
1529
+ shouldDeleteImportContainer: true
1530
+ }),
1531
+ size: 16,
1532
+ children: jsxRuntime.jsx(fullstory.Masking.Unmask, {
1533
+ children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1534
+ scale: "xl",
1535
+ children: [jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1536
+ scale: "m",
1537
+ children: [jsxRuntime.jsxs("div", {
1538
+ children: [jsxRuntime.jsx(uiKit.Text.Body, {
1539
+ intlMessage: _objectSpread$2(_objectSpread$2({}, messages.confirmationText), {}, {
1540
+ values: {
1541
+ projectName: projectName,
1542
+ resourceTypePlural: intl.formatMessage(resourceTypeToPluralMessage(resourceType)),
1543
+ resourceType: intl.formatMessage(resourceTypeToMessage(resourceType)),
1544
+ count: intl.formatNumber(state.uploadFileResponse?.rowsCount),
1545
+ b: getBold$1
1546
+ }
1547
+ })
1548
+ }), jsxRuntime.jsx(uiKit.Text.Body, {
1549
+ intlMessage: _objectSpread$2(_objectSpread$2({}, messages.confirmationQuestion), {}, {
1550
+ values: {
1551
+ resourceTypePlural: intl.formatMessage(resourceTypeToPluralMessage(resourceType))
1552
+ }
1553
+ })
1554
+ })]
1555
+ }), jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1556
+ scale: "s",
1557
+ alignItems: "center",
1558
+ children: [jsxRuntime.jsx(uiKit.WarningIcon, {
1559
+ size: "40",
1560
+ color: "warning"
1561
+ }), jsxRuntime.jsx(uiKit.Text.Body, {
1562
+ intlMessage: messages.cannotBeUndoneNote
1563
+ })]
1564
+ })]
1565
+ }), jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1566
+ scale: "m",
1567
+ justifyContent: "flex-end",
1568
+ children: [jsxRuntime.jsx(uiKit.SecondaryButton, {
1569
+ "data-test-id": "confirmation-dialog-cancel",
1570
+ label: intl.formatMessage(sharedMessages.cancel),
1571
+ onClick: () => onClose({
1572
+ shouldDeleteImportContainer: true
1573
+ })
1574
+ }), jsxRuntime.jsx(uiKit.PrimaryButton, {
1575
+ tone: "critical",
1576
+ "data-test-id": "confirmation-dialog-confirm",
1577
+ label: intl.formatMessage(sharedMessages.startBulkDelete),
1578
+ onClick: onStartImport
1579
+ })]
1580
+ })]
1581
+ })
1582
+ })
1583
+ });
1584
+ };
1585
+ function getBold$1(msg) {
1586
+ return jsxRuntime.jsx(uiKit.Text.Body, {
1587
+ as: "span",
1588
+ isBold: true,
1589
+ children: msg
1590
+ });
1591
+ }
1592
+
1593
+ function ownKeys$1(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1594
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$1(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$1(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1595
+ function UploadPreviewModal() {
1596
+ const _useDeleteResourcesCo = useDeleteResourcesContext(),
1597
+ resourceType = _useDeleteResourcesCo.resourceType,
1598
+ state = _useDeleteResourcesCo.state,
1599
+ onClose = _useDeleteResourcesCo.onClose,
1600
+ actions = _useDeleteResourcesCo.actions;
1601
+ const intl = reactIntl.useIntl();
1602
+ return jsxRuntime.jsx(applicationComponents.FormDialog, {
1603
+ size: 16,
1604
+ isOpen: true,
1605
+ title: intl.formatMessage(sharedMessages.deleteModalTitle),
1606
+ labelPrimary: intl.formatMessage(messages.continue),
1607
+ onSecondaryButtonClick: () => onClose({
1608
+ shouldDeleteImportContainer: true
1609
+ }),
1610
+ onPrimaryButtonClick: () => {
1611
+ actions.setCurrentStep('delete-confirmation');
1612
+ },
1613
+ onClose: () => onClose({
1614
+ shouldDeleteImportContainer: true
1615
+ }),
1616
+ children: jsxRuntime.jsxs(uiKit.Spacings.Stack, {
1617
+ scale: "m",
1618
+ children: [jsxRuntime.jsx(uiKit.Text.Body, {
1619
+ intlMessage: messages.heresAPreview
1620
+ }), jsxRuntime.jsx(uiKit.Card, {
1621
+ insetScale: "xl",
1622
+ children: jsxRuntime.jsxs(uiKit.Spacings.Inline, {
1623
+ scale: "m",
1624
+ alignItems: "center",
1625
+ children: [jsxRuntime.jsx(uiKit.BinLinearIcon, {
1626
+ size: "40",
1627
+ color: "neutral60"
1628
+ }), jsxRuntime.jsx(uiKit.Text.Body, {
1629
+ intlMessage: _objectSpread$1(_objectSpread$1({}, messages.resourcesToBeDeleted), {}, {
1630
+ values: {
1631
+ resourceType: intl.formatMessage(resourceTypeToMessage(resourceType)),
1632
+ resourceTypePlural: intl.formatMessage(resourceTypeToPluralMessage(resourceType)),
1633
+ count: intl.formatNumber(state.uploadFileResponse?.rowsCount),
1634
+ b: getBold
1635
+ }
1636
+ })
1637
+ })]
1638
+ })
1639
+ })]
1640
+ })
1641
+ });
1642
+ }
1643
+ function getBold(msg) {
1644
+ return jsxRuntime.jsx(uiKit.Text.Body, {
1645
+ as: "span",
1646
+ isBold: true,
1647
+ children: msg
1648
+ });
1649
+ }
1650
+
1651
+ const steps = {
1652
+ upload: jsxRuntime.jsx(Upload, {}),
1653
+ uploading: jsxRuntime.jsx(Uploading, {}),
1654
+ 'upload-preview': jsxRuntime.jsx(UploadPreviewModal, {}),
1655
+ 'upload-error': jsxRuntime.jsx(UploadErrorsModal, {}),
1656
+ 'delete-confirmation': jsxRuntime.jsx(DeleteResourcesConfirmationModal, {})
1657
+ };
1658
+ const CurrentStep = () => {
1659
+ const _useDeleteResourcesCo = useDeleteResourcesContext(),
1660
+ state = _useDeleteResourcesCo.state;
1661
+ return steps[state.currentStep] || null;
1662
+ };
1663
+
1664
+ const getChunkImport = locale => {
1665
+ const intlLocale = i18n.mapLocaleToIntlLocale(locale);
1666
+ switch (intlLocale) {
1667
+ case 'de':
1668
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "delete-resources-modal-i18n-de" */'./de-a34c5dd4.cjs.dev.js'); });
1669
+ case 'es':
1670
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "delete-resources-modal-i18n-es" */'./es-8b3ecab1.cjs.dev.js'); });
1671
+ case 'fr-FR':
1672
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "delete-resources-modal-i18n-fr-FR" */'./fr-FR-e7126fcc.cjs.dev.js'); });
1673
+ case 'zh-CN':
1674
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "delete-resources-modal-i18n-zh-CN" */'./zh-CN-d4bc6d26.cjs.dev.js'); });
1675
+ case 'ja':
1676
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "delete-resources-modal-i18n-ja" */'./ja-9bd5f452.cjs.dev.js'); });
1677
+ case 'pt-BR':
1678
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "change-history-i18n-pt-BR" */'./pt-BR-ea6b3251.cjs.dev.js'); });
1679
+ default:
1680
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "delete-resources-modal-i18n-en" */'./en-6b3694f6.cjs.dev.js'); });
1681
+ }
1682
+ };
1683
+ const loadMessages = async locale => {
1684
+ try {
1685
+ const chunkImport = await getChunkImport(locale);
1686
+ return i18n.parseChunkImport(chunkImport);
1687
+ } catch (error) {
1688
+ // eslint-disable-next-line no-console
1689
+ console.warn(`Something went wrong while loading the delete-resources-modal messages for ${locale}`, error);
1690
+ sentry.reportErrorToSentry(new Error(`Something went wrong while loading the delete-resources-modal messages for ${locale}`), {
1691
+ extra: error
1692
+ });
1693
+ return {};
1694
+ }
1695
+ };
1696
+
1697
+ const useAsyncIntlMessages = (locale, loader) => {
1698
+ const _useState = React.useState({
1699
+ isLoading: true,
1700
+ messages: undefined,
1701
+ error: undefined
1702
+ }),
1703
+ _useState2 = _slicedToArray(_useState, 2),
1704
+ state = _useState2[0],
1705
+ setState = _useState2[1];
1706
+ React.useEffect(() => {
1707
+ let _isUnmounting = false;
1708
+ async function load() {
1709
+ try {
1710
+ if (!_isUnmounting) {
1711
+ const messages = await loader(locale);
1712
+ setState({
1713
+ isLoading: false,
1714
+ messages
1715
+ });
1716
+ }
1717
+ } catch (error) {
1718
+ setState({
1719
+ isLoading: false,
1720
+ error
1721
+ });
1722
+ }
1723
+ }
1724
+ if (locale) load();
1725
+ return () => {
1726
+ _isUnmounting = true;
1727
+ };
1728
+ }, [locale, loader]);
1729
+ return state;
1730
+ };
1731
+
1732
+ function ownKeys(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
1733
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
1734
+ const DeleteResourcesModal = props => {
1735
+ const _useApplicationContex = applicationShellConnectors.useApplicationContext(context => ({
1736
+ locale: context.user && context.user.locale
1737
+ })),
1738
+ locale = _useApplicationContex.locale;
1739
+ const messages = useAsyncIntlMessages(locale, loadMessages);
1740
+ if (!props.isOpen || messages.isLoading) return null;
1741
+ return jsxRuntime.jsx(reactIntl.IntlProvider, {
1742
+ locale: locale,
1743
+ messages: messages.messages,
1744
+ children: jsxRuntime.jsx(DeleteResourcesProvider, _objectSpread(_objectSpread({}, props), {}, {
1745
+ children: jsxRuntime.jsx(CurrentStep, {})
1746
+ }))
1747
+ });
1748
+ };
1749
+ DeleteResourcesModal.displayName = 'DeleteResourcesModal';
1750
+
1751
+ exports.DeleteResourcesModal = DeleteResourcesModal;
1752
+ exports.EnabledDropArea = EnabledDropArea;
1753
+ exports.FileDropped = FileDropped;
1754
+ exports.messages = messages$4;
1755
+ exports.useDeleteResourcesContext = useDeleteResourcesContext;