sanity-plugin-media 1.4.3 → 1.4.4

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 (100) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/.DS_Store +0 -0
  3. package/dist/components/ButtonAssetClipboardCopy/index.js +71 -0
  4. package/dist/components/ButtonC/index.js +71 -0
  5. package/dist/components/ButtonClipboardCopy/index.js +71 -0
  6. package/dist/components/Card/index.js +188 -0
  7. package/dist/components/Card/index.js.map +1 -0
  8. package/dist/components/CardUpload copy/index.js +60 -0
  9. package/dist/components/Cards/index.js +81 -0
  10. package/dist/components/Cards/index.js.map +1 -0
  11. package/dist/components/DialogDeleteConfirm/index.js +62 -0
  12. package/dist/components/DialogDeleteConfirm/index.js.map +1 -0
  13. package/dist/components/DialogDetails/index.js +322 -0
  14. package/dist/components/DialogDetails/index.js.map +1 -0
  15. package/dist/components/DialogSearchFacets copy/index.js +45 -0
  16. package/dist/components/DialogTagCreate copy/index.js +38 -0
  17. package/dist/components/Dropzone/index.js +66 -0
  18. package/dist/components/Dropzone/index.js.map +1 -0
  19. package/dist/components/DropzoneTest/index.js +37 -0
  20. package/dist/components/FormDetails/index.js +241 -0
  21. package/dist/components/GlobalStyles/index.js +10 -0
  22. package/dist/components/LegacyContextActionContainer/index.js +32 -0
  23. package/dist/components/LegacyContextActionContainer/index.js.map +1 -0
  24. package/dist/components/Main/index.js +73 -0
  25. package/dist/components/Main/index.js.map +1 -0
  26. package/dist/components/NoResults/index.js +12 -0
  27. package/dist/components/PanelHeader/index.js +48 -0
  28. package/dist/components/PanelHeader/index.js.map +1 -0
  29. package/dist/components/Portal/Portal.js +50 -0
  30. package/dist/components/Portal/index.js +49 -0
  31. package/dist/components/Portal/index.js.map +1 -0
  32. package/dist/components/ReduxProvider/index.js +16 -36
  33. package/dist/components/ReduxProvider/index.js.map +1 -1
  34. package/dist/components/SearchFacetSearchable/index.js +61 -0
  35. package/dist/components/SearchFacetSearchable/index.js.map +1 -0
  36. package/dist/components/Table/index.js +79 -0
  37. package/dist/components/Table/index.js.map +1 -0
  38. package/dist/components/TableRow/index.js +225 -0
  39. package/dist/components/TableRow/index.js.map +1 -0
  40. package/dist/components/TagPanel/index.js +19 -0
  41. package/dist/components/TagPanel/index.js.map +1 -0
  42. package/dist/components/Tags/index.js +21 -0
  43. package/dist/components/Tags/index.js.map +1 -0
  44. package/dist/components/TagsAll/index.js +23 -0
  45. package/dist/components/TagsAll/index.js.map +1 -0
  46. package/dist/components/TagsPicked/index.js +61 -0
  47. package/dist/components/TagsPicked/index.js.map +1 -0
  48. package/dist/components/TagsView/index.js +32 -0
  49. package/dist/components/TextEllipsis/index.js +14 -0
  50. package/dist/components/TextEllipsis/index.js.map +1 -0
  51. package/dist/components/UploadCard/index.js +14 -0
  52. package/dist/constants/searchFacets.js +272 -0
  53. package/dist/contexts/AssetSourceDispatchContext copy.js +41 -0
  54. package/dist/helpers/withRedux.js +84 -0
  55. package/dist/helpers/withRedux.js.map +1 -0
  56. package/dist/modules/assets/assetsSlice.js +552 -0
  57. package/dist/modules/assets/types.js +2 -0
  58. package/dist/modules/assets/types.js.map +1 -0
  59. package/dist/modules/debug/debugSlice.js +23 -0
  60. package/dist/modules/debug/types.js +2 -0
  61. package/dist/modules/debug/types.js.map +1 -0
  62. package/dist/modules/debug copy/index.js +22 -0
  63. package/dist/modules/dialog/dialogSlice.js +192 -0
  64. package/dist/modules/dialog/index.js.map +1 -1
  65. package/dist/modules/dialog/types.js +2 -0
  66. package/dist/modules/dialog/types.js.map +1 -0
  67. package/dist/modules/document/documentSlice.js +9 -0
  68. package/dist/modules/document/index.js +9 -0
  69. package/dist/modules/document/index.js.map +1 -0
  70. package/dist/modules/document/types.js +3 -0
  71. package/dist/modules/document/types.js.map +1 -0
  72. package/dist/modules/document copy/index.js +9 -0
  73. package/dist/modules/documentAssets/index.js +9 -0
  74. package/dist/modules/index.js +2 -2
  75. package/dist/modules/index.js.map +1 -1
  76. package/dist/modules/notifications/notificationsSlice.js +123 -0
  77. package/dist/modules/notifications/types.js +2 -0
  78. package/dist/modules/notifications/types.js.map +1 -0
  79. package/dist/modules/search/searchSlice.js +122 -0
  80. package/dist/modules/search/types.js +2 -0
  81. package/dist/modules/search/types.js.map +1 -0
  82. package/dist/modules/selectedAssets/index.js +9 -0
  83. package/dist/modules/selectedAssets/index.js.map +1 -0
  84. package/dist/modules/selectedAssets/selectedAssetsSlice.js +9 -0
  85. package/dist/modules/selectedAssets/types.js +2 -0
  86. package/dist/modules/selectedAssets/types.js.map +1 -0
  87. package/dist/modules/selectedAssets copy/index.js +9 -0
  88. package/dist/modules/tags/index.js +3 -3
  89. package/dist/modules/tags/index.js.map +1 -1
  90. package/dist/modules/tags/selectedAssetsSlice.js +9 -0
  91. package/dist/modules/tags/tagsSlice.js +442 -0
  92. package/dist/modules/tags/tagsSlice.js.map +1 -0
  93. package/dist/modules/tags/types.js +2 -0
  94. package/dist/modules/tags/types.js.map +1 -0
  95. package/dist/modules/theme/index.js +21 -0
  96. package/dist/modules/theme/index.js.map +1 -0
  97. package/dist/operators/debugThrottle copy.js +15 -0
  98. package/dist/operators/fetchExistingTag.js +27 -0
  99. package/dist/utils/getDocumentAssetRefs.js +50 -0
  100. package/package.json +8 -14
@@ -0,0 +1,552 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ var _a;
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.viewSet = exports.updateRequest = exports.updateError = exports.updateComplete = exports.tagsRemoveRequest = exports.tagsRemoveError = exports.tagsRemoveComplete = exports.tagsAddRequest = exports.tagsAddError = exports.tagsAddComplete = exports.sort = exports.pickRange = exports.pickClear = exports.pickAll = exports.pick = exports.orderSet = exports.loadPageIndex = exports.loadNextPage = exports.listenerUpdateQueue = exports.listenerUpdateComplete = exports.listenerDeleteQueue = exports.listenerDeleteComplete = exports.fetchRequest = exports.fetchError = exports.fetchComplete = exports.deleteRequest = exports.deletePicked = exports.deleteError = exports.deleteComplete = exports.clear = exports.selectAssetsPickedLength = exports.selectAssetsPicked = exports.selectAssetsLength = exports.selectAssets = exports.selectAssetById = exports.assetsUpdateEpic = exports.assetsUnpickEpic = exports.assetsTagsRemoveEpic = exports.assetsTagsAddEpic = exports.assetsSortEpic = exports.assetsListenerUpdateQueueEpic = exports.assetsListenerDeleteQueueEpic = exports.assetsSearchEpic = exports.assetsOrderSetEpic = exports.assetsRemoveTagsEpic = exports.assetsFetchNextPageEpic = exports.assetsFetchPageIndexEpic = exports.assetsFetchEpic = exports.assetsDeletePickedEpic = exports.assetsDeleteEpic = void 0;
23
+ var toolkit_1 = require("@reduxjs/toolkit");
24
+ var groq_1 = __importDefault(require("groq"));
25
+ var nanoid_1 = require("nanoid");
26
+ var client_1 = __importDefault(require("part:@sanity/base/client"));
27
+ var redux_observable_1 = require("redux-observable");
28
+ var rxjs_1 = require("rxjs");
29
+ var operators_1 = require("rxjs/operators");
30
+ var constants_1 = require("../../constants");
31
+ var constructFilter_1 = __importDefault(require("../../utils/constructFilter"));
32
+ var debugThrottle_1 = __importDefault(require("../../operators/debugThrottle"));
33
+ var searchSlice_1 = require("../search/searchSlice");
34
+ var defaultOrder = constants_1.ORDER_OPTIONS[0];
35
+ /**
36
+ * NOTE:
37
+ * `fetchCount` returns the number of items retrieved in the most recent fetch.
38
+ * This is a temporary workaround to be able to determine when there are no more items to retrieve.
39
+ * Typically this would be done by deriving the total number of assets upfront, but currently such
40
+ * queries in GROQ aren't fast enough to use on large datasets (1000s of entries).
41
+ *
42
+ * TODO:
43
+ * When the query engine has been improved and above queries are faster, remove all instances of
44
+ * of `fetchCount` and reinstate `totalCount` across the board.
45
+ */
46
+ var initialState = {
47
+ allIds: [],
48
+ byIds: {},
49
+ fetchCount: -1,
50
+ fetching: false,
51
+ fetchingError: null,
52
+ lastPicked: undefined,
53
+ order: {
54
+ direction: defaultOrder.direction,
55
+ field: defaultOrder.field,
56
+ title: constants_1.ORDER_DICTIONARY[defaultOrder.field][defaultOrder.direction]
57
+ },
58
+ pageIndex: 0,
59
+ pageSize: 50,
60
+ view: 'grid'
61
+ // totalCount: -1
62
+ };
63
+ var assetsSlice = toolkit_1.createSlice({
64
+ name: 'assets',
65
+ initialState: initialState,
66
+ reducers: {
67
+ // Clear asset order
68
+ clear: function (state) {
69
+ state.allIds = [];
70
+ },
71
+ deleteComplete: function (state, action) {
72
+ var _a;
73
+ var assetId = (_a = action.payload) === null || _a === void 0 ? void 0 : _a.assetId;
74
+ var deleteIndex = state.allIds.indexOf(assetId);
75
+ if (deleteIndex >= 0) {
76
+ state.allIds.splice(deleteIndex, 1);
77
+ }
78
+ delete state.byIds[assetId];
79
+ },
80
+ deleteError: function (state, action) {
81
+ var _a = action.payload, asset = _a.asset, error = _a.error;
82
+ var assetId = asset === null || asset === void 0 ? void 0 : asset._id;
83
+ state.byIds[assetId].error = error;
84
+ state.byIds[assetId].updating = false;
85
+ },
86
+ deletePicked: function () {
87
+ //
88
+ },
89
+ deleteRequest: function (state, action) {
90
+ var _a, _b;
91
+ var assetId = (_b = (_a = action.payload) === null || _a === void 0 ? void 0 : _a.asset) === null || _b === void 0 ? void 0 : _b._id;
92
+ state.byIds[assetId].picked = false;
93
+ state.byIds[assetId].updating = true;
94
+ Object.keys(state.byIds).forEach(function (key) {
95
+ delete state.byIds[key].error;
96
+ });
97
+ },
98
+ fetchComplete: function (state, action) {
99
+ var _a;
100
+ var assets = ((_a = action.payload) === null || _a === void 0 ? void 0 : _a.assets) || [];
101
+ if (assets) {
102
+ assets.forEach(function (asset) {
103
+ state.allIds.push(asset._id);
104
+ state.byIds[asset._id] = {
105
+ asset: asset,
106
+ picked: false,
107
+ updating: false
108
+ };
109
+ });
110
+ }
111
+ state.fetching = false;
112
+ state.fetchCount = assets.length || 0;
113
+ state.fetchingError = null;
114
+ },
115
+ fetchError: function (state, action) {
116
+ state.fetching = false;
117
+ state.fetchingError = true;
118
+ },
119
+ fetchRequest: {
120
+ reducer: function (state, action) {
121
+ state.fetching = true;
122
+ state.fetchingError = null;
123
+ },
124
+ prepare: function (_a) {
125
+ var filter = _a.filter, _b = _a.params, params = _b === void 0 ? {} : _b, _c = _a.selector, selector = _c === void 0 ? "" : _c, _d = _a.sort, sort = _d === void 0 ? groq_1.default(templateObject_1 || (templateObject_1 = __makeTemplateObject(["order(_updatedAt desc)"], ["order(_updatedAt desc)"]))) : _d;
126
+ var pipe = sort || selector ? '|' : '';
127
+ // Construct query
128
+ var query = groq_1.default(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n {\n \"items\": *[", "] {\n _id,\n _type,\n _updatedAt,\n altText,\n description,\n extension,\n metadata {\n dimensions,\n exif,\n isOpaque,\n },\n mimeType,\n opt {\n media\n },\n originalFilename,\n size,\n title,\n url\n } ", " ", " ", ",\n }\n "], ["\n {\n \"items\": *[", "] {\n _id,\n _type,\n _updatedAt,\n altText,\n description,\n extension,\n metadata {\n dimensions,\n exif,\n isOpaque,\n },\n mimeType,\n opt {\n media\n },\n originalFilename,\n size,\n title,\n url\n } ", " ", " ", ",\n }\n "])), filter, pipe, sort, selector);
129
+ return { payload: { params: params, query: query } };
130
+ }
131
+ },
132
+ listenerDeleteComplete: function (state, action) {
133
+ var _a;
134
+ var assetIds = (_a = action.payload) === null || _a === void 0 ? void 0 : _a.assetIds;
135
+ assetIds === null || assetIds === void 0 ? void 0 : assetIds.forEach(function (assetId) {
136
+ var deleteIndex = state.allIds.indexOf(assetId);
137
+ if (deleteIndex >= 0) {
138
+ state.allIds.splice(deleteIndex, 1);
139
+ }
140
+ delete state.byIds[assetId];
141
+ });
142
+ },
143
+ listenerDeleteQueue: function (state, action) {
144
+ //
145
+ },
146
+ listenerUpdateComplete: function (state, action) {
147
+ var _a;
148
+ var assets = (_a = action.payload) === null || _a === void 0 ? void 0 : _a.assets;
149
+ assets === null || assets === void 0 ? void 0 : assets.forEach(function (asset) {
150
+ var _a;
151
+ if ((_a = state.byIds[asset === null || asset === void 0 ? void 0 : asset._id]) === null || _a === void 0 ? void 0 : _a.asset) {
152
+ state.byIds[asset._id].asset = asset;
153
+ }
154
+ });
155
+ },
156
+ listenerUpdateQueue: function (state, action) {
157
+ //
158
+ },
159
+ loadNextPage: function (state) {
160
+ state.pageIndex += 1;
161
+ },
162
+ loadPageIndex: function (state, action) {
163
+ //
164
+ },
165
+ orderSet: function (state, action) {
166
+ var _a;
167
+ state.order = (_a = action.payload) === null || _a === void 0 ? void 0 : _a.order;
168
+ state.pageIndex = 0;
169
+ },
170
+ pick: function (state, action) {
171
+ var _a = action.payload, assetId = _a.assetId, picked = _a.picked;
172
+ state.byIds[assetId].picked = picked;
173
+ state.lastPicked = picked ? assetId : undefined;
174
+ },
175
+ pickAll: function (state) {
176
+ state.allIds.forEach(function (id) {
177
+ state.byIds[id].picked = true;
178
+ });
179
+ },
180
+ pickClear: function (state) {
181
+ state.lastPicked = undefined;
182
+ Object.values(state.byIds).forEach(function (asset) {
183
+ state.byIds[asset.asset._id].picked = false;
184
+ });
185
+ },
186
+ pickRange: function (state, action) {
187
+ var startIndex = state.allIds.findIndex(function (id) { return id === action.payload.startId; });
188
+ var endIndex = state.allIds.findIndex(function (id) { return id === action.payload.endId; });
189
+ // Sort numerically, ascending order
190
+ var indices = [startIndex, endIndex].sort(function (a, b) { return a - b; });
191
+ state.allIds.slice(indices[0], indices[1] + 1).forEach(function (key) {
192
+ state.byIds[key].picked = true;
193
+ });
194
+ state.lastPicked = state.allIds[endIndex];
195
+ },
196
+ sort: function (state) {
197
+ state.allIds.sort(function (a, b) {
198
+ var tagA = state.byIds[a].asset[state.order.field];
199
+ var tagB = state.byIds[b].asset[state.order.field];
200
+ if (tagA < tagB) {
201
+ return state.order.direction === 'asc' ? -1 : 1;
202
+ }
203
+ else if (tagA > tagB) {
204
+ return state.order.direction === 'asc' ? 1 : -1;
205
+ }
206
+ else {
207
+ return 0;
208
+ }
209
+ });
210
+ },
211
+ tagsAddComplete: function (state, action) {
212
+ var assets = action.payload.assets;
213
+ assets.forEach(function (asset) {
214
+ state.byIds[asset.asset._id].updating = false;
215
+ });
216
+ },
217
+ tagsAddError: function (state, action) {
218
+ var assets = action.payload.assets;
219
+ assets.forEach(function (asset) {
220
+ state.byIds[asset.asset._id].updating = false;
221
+ });
222
+ },
223
+ tagsAddRequest: function (state, action) {
224
+ var assets = action.payload.assets;
225
+ assets.forEach(function (asset) {
226
+ state.byIds[asset.asset._id].updating = true;
227
+ });
228
+ },
229
+ tagsRemoveComplete: function (state, action) {
230
+ var assets = action.payload.assets;
231
+ assets.forEach(function (asset) {
232
+ state.byIds[asset.asset._id].updating = false;
233
+ });
234
+ },
235
+ tagsRemoveError: function (state, action) {
236
+ var assets = action.payload.assets;
237
+ assets.forEach(function (asset) {
238
+ state.byIds[asset.asset._id].updating = false;
239
+ });
240
+ },
241
+ tagsRemoveRequest: function (state, action) {
242
+ var assets = action.payload.assets;
243
+ assets.forEach(function (asset) {
244
+ state.byIds[asset.asset._id].updating = true;
245
+ });
246
+ },
247
+ updateComplete: function (state, action) {
248
+ var _a;
249
+ var assetId = (_a = action.payload) === null || _a === void 0 ? void 0 : _a.assetId;
250
+ state.byIds[assetId].updating = false;
251
+ },
252
+ updateError: function (state, action) {
253
+ var _a = action.payload, asset = _a.asset, error = _a.error;
254
+ var assetId = asset === null || asset === void 0 ? void 0 : asset._id;
255
+ state.byIds[assetId].error = error;
256
+ state.byIds[assetId].updating = false;
257
+ },
258
+ updateRequest: function (state, action) {
259
+ var _a, _b;
260
+ var assetId = (_b = (_a = action.payload) === null || _a === void 0 ? void 0 : _a.asset) === null || _b === void 0 ? void 0 : _b._id;
261
+ state.byIds[assetId].updating = true;
262
+ },
263
+ viewSet: function (state, action) {
264
+ var _a;
265
+ state.view = (_a = action.payload) === null || _a === void 0 ? void 0 : _a.view;
266
+ }
267
+ }
268
+ });
269
+ var assetsDeleteEpic = function (action$, state$) {
270
+ return action$.pipe(operators_1.filter(assetsSlice.actions.deleteRequest.match), operators_1.withLatestFrom(state$), operators_1.mergeMap(function (_a) {
271
+ var action = _a[0], state = _a[1];
272
+ var asset = action.payload.asset;
273
+ return rxjs_1.of(action).pipe(debugThrottle_1.default(state.debug.badConnection), operators_1.mergeMap(function () { return rxjs_1.from(client_1.default.delete(asset._id)); }), operators_1.mergeMap(function () { return rxjs_1.of(assetsSlice.actions.deleteComplete({ assetId: asset._id })); }), operators_1.catchError(function (error) {
274
+ return rxjs_1.of(assetsSlice.actions.deleteError({
275
+ asset: asset,
276
+ error: {
277
+ message: (error === null || error === void 0 ? void 0 : error.message) || 'Internal error',
278
+ statusCode: (error === null || error === void 0 ? void 0 : error.statusCode) || 500
279
+ }
280
+ }));
281
+ }));
282
+ }));
283
+ };
284
+ exports.assetsDeleteEpic = assetsDeleteEpic;
285
+ var assetsDeletePickedEpic = function (action$, state$) {
286
+ return action$.pipe(operators_1.filter(assetsSlice.actions.deletePicked.match), operators_1.withLatestFrom(state$), operators_1.mergeMap(function (_a) {
287
+ var _ = _a[0], state = _a[1];
288
+ var availableItems = Object.entries(state.assets.byIds).filter(function (_a) {
289
+ var value = _a[1];
290
+ return value.picked && !value.updating;
291
+ });
292
+ if (availableItems.length === 0) {
293
+ return rxjs_1.empty();
294
+ }
295
+ var assets = availableItems.map(function (item) { return item[1].asset; });
296
+ return rxjs_1.of(assets);
297
+ }), operators_1.mergeAll(), operators_1.mergeMap(function (asset) { return rxjs_1.of(assetsSlice.actions.deleteRequest({ asset: asset })); }));
298
+ };
299
+ exports.assetsDeletePickedEpic = assetsDeletePickedEpic;
300
+ var assetsFetchEpic = function (action$, state$) {
301
+ return action$.pipe(operators_1.filter(assetsSlice.actions.fetchRequest.match), operators_1.withLatestFrom(state$), operators_1.switchMap(function (_a) {
302
+ var _b, _c;
303
+ var action = _a[0], state = _a[1];
304
+ var params = (_b = action.payload) === null || _b === void 0 ? void 0 : _b.params;
305
+ var query = (_c = action.payload) === null || _c === void 0 ? void 0 : _c.query;
306
+ return rxjs_1.of(action).pipe(debugThrottle_1.default(state.debug.badConnection), operators_1.mergeMap(function () { return rxjs_1.from(client_1.default.fetch(query, params)); }), operators_1.mergeMap(function (result) {
307
+ var items = result.items
308
+ // totalCount
309
+ ;
310
+ return rxjs_1.of(assetsSlice.actions.fetchComplete({ assets: items }));
311
+ }), operators_1.catchError(function (error) {
312
+ return rxjs_1.of(assetsSlice.actions.fetchError({
313
+ message: (error === null || error === void 0 ? void 0 : error.message) || 'Internal error',
314
+ statusCode: (error === null || error === void 0 ? void 0 : error.statusCode) || 500
315
+ }));
316
+ }));
317
+ }));
318
+ };
319
+ exports.assetsFetchEpic = assetsFetchEpic;
320
+ var assetsFetchPageIndexEpic = function (action$, state$) {
321
+ return action$.pipe(operators_1.filter(assetsSlice.actions.loadPageIndex.match), operators_1.withLatestFrom(state$), operators_1.switchMap(function (_a) {
322
+ var _b, _c, _d, _e, _f;
323
+ var action = _a[0], state = _a[1];
324
+ var pageSize = state.assets.pageSize;
325
+ var start = action.payload.pageIndex * pageSize;
326
+ var end = start + pageSize;
327
+ var documentId = (_b = state === null || state === void 0 ? void 0 : state.document) === null || _b === void 0 ? void 0 : _b._id;
328
+ return rxjs_1.of(assetsSlice.actions.fetchRequest(__assign(__assign({ filter: constructFilter_1.default({
329
+ hasDocument: !!state.document,
330
+ searchFacets: state.search.facets,
331
+ searchQuery: state.search.query
332
+ }) }, (documentId ? { params: { documentId: documentId } } : {})), { selector: groq_1.default(templateObject_3 || (templateObject_3 = __makeTemplateObject(["[", "...", "]"], ["[", "...", "]"])), start, end), sort: groq_1.default(templateObject_4 || (templateObject_4 = __makeTemplateObject(["order(", " ", ")"], ["order(", " ", ")"])), (_d = (_c = state.assets) === null || _c === void 0 ? void 0 : _c.order) === null || _d === void 0 ? void 0 : _d.field, (_f = (_e = state.assets) === null || _e === void 0 ? void 0 : _e.order) === null || _f === void 0 ? void 0 : _f.direction) })));
333
+ }));
334
+ };
335
+ exports.assetsFetchPageIndexEpic = assetsFetchPageIndexEpic;
336
+ var assetsFetchNextPageEpic = function (action$, state$) {
337
+ return action$.pipe(operators_1.filter(assetsSlice.actions.loadNextPage.match), operators_1.withLatestFrom(state$), operators_1.switchMap(function (_a) {
338
+ var _ = _a[0], state = _a[1];
339
+ return rxjs_1.of(assetsSlice.actions.loadPageIndex({ pageIndex: state.assets.pageIndex }));
340
+ }));
341
+ };
342
+ exports.assetsFetchNextPageEpic = assetsFetchNextPageEpic;
343
+ var assetsRemoveTagsEpic = function (action$, state$) {
344
+ return action$.pipe(operators_1.filter(assetsSlice.actions.tagsAddRequest.match), operators_1.withLatestFrom(state$), operators_1.mergeMap(function (_a) {
345
+ var action = _a[0], state = _a[1];
346
+ var _b = action.payload, assets = _b.assets, tag = _b.tag;
347
+ return rxjs_1.of(action).pipe(
348
+ // Optionally throttle
349
+ debugThrottle_1.default(state.debug.badConnection),
350
+ // Add tag references to all picked assets
351
+ operators_1.mergeMap(function () {
352
+ var pickedAssets = exports.selectAssetsPicked(state);
353
+ // Filter out picked assets which already include tag
354
+ var pickedAssetsFiltered = pickedAssets === null || pickedAssets === void 0 ? void 0 : pickedAssets.filter(function (assetItem) {
355
+ var _a, _b, _c, _d, _e;
356
+ var tagIndex = (_e = (_d = (_c = (_b = (_a = assetItem === null || assetItem === void 0 ? void 0 : assetItem.asset) === null || _a === void 0 ? void 0 : _a.opt) === null || _b === void 0 ? void 0 : _b.media) === null || _c === void 0 ? void 0 : _c.tags) === null || _d === void 0 ? void 0 : _d.findIndex(function (t) { return t._ref === (tag === null || tag === void 0 ? void 0 : tag._id); })) !== null && _e !== void 0 ? _e : -1;
357
+ return tagIndex < 0;
358
+ });
359
+ var transaction = pickedAssetsFiltered.reduce(function (transaction, pickedAsset) {
360
+ var _a;
361
+ return transaction.patch((_a = pickedAsset === null || pickedAsset === void 0 ? void 0 : pickedAsset.asset) === null || _a === void 0 ? void 0 : _a._id, function (patch) {
362
+ return patch
363
+ .setIfMissing({ opt: {} })
364
+ .setIfMissing({ 'opt.media': {} })
365
+ .setIfMissing({ 'opt.media.tags': [] })
366
+ .append('opt.media.tags', [
367
+ { _key: nanoid_1.nanoid(), _ref: tag === null || tag === void 0 ? void 0 : tag._id, _type: 'reference', _weak: true }
368
+ ]);
369
+ });
370
+ }, client_1.default.transaction());
371
+ return rxjs_1.from(transaction.commit());
372
+ }),
373
+ // Dispatch complete action
374
+ operators_1.mergeMap(function () { return rxjs_1.of(assetsSlice.actions.tagsAddComplete({ assets: assets, tag: tag })); }), operators_1.catchError(function (error) {
375
+ return rxjs_1.of(assetsSlice.actions.tagsAddError({
376
+ assets: assets,
377
+ error: {
378
+ message: (error === null || error === void 0 ? void 0 : error.message) || 'Internal error',
379
+ statusCode: (error === null || error === void 0 ? void 0 : error.statusCode) || 500
380
+ },
381
+ tag: tag
382
+ }));
383
+ }));
384
+ }));
385
+ };
386
+ exports.assetsRemoveTagsEpic = assetsRemoveTagsEpic;
387
+ var assetsOrderSetEpic = function (action$) {
388
+ return action$.pipe(operators_1.filter(assetsSlice.actions.orderSet.match), operators_1.switchMap(function () {
389
+ return rxjs_1.of(assetsSlice.actions.clear(), //
390
+ assetsSlice.actions.loadPageIndex({ pageIndex: 0 }));
391
+ }));
392
+ };
393
+ exports.assetsOrderSetEpic = assetsOrderSetEpic;
394
+ var assetsSearchEpic = function (action$) {
395
+ return action$.pipe(redux_observable_1.ofType(searchSlice_1.facetsAdd.type, searchSlice_1.facetsClear.type, searchSlice_1.facetsRemove.type, searchSlice_1.facetsTagAddOrUpdate.type, searchSlice_1.facetsUpdate.type, searchSlice_1.querySet.type), operators_1.debounceTime(400), operators_1.switchMap(function () {
396
+ return rxjs_1.of(assetsSlice.actions.clear(), //
397
+ assetsSlice.actions.loadPageIndex({ pageIndex: 0 }));
398
+ }));
399
+ };
400
+ exports.assetsSearchEpic = assetsSearchEpic;
401
+ var assetsListenerDeleteQueueEpic = function (action$) {
402
+ return action$.pipe(operators_1.filter(assetsSlice.actions.listenerDeleteQueue.match), operators_1.bufferTime(2000), operators_1.filter(function (actions) { return actions.length > 0; }), operators_1.switchMap(function (actions) {
403
+ var assetIds = actions === null || actions === void 0 ? void 0 : actions.map(function (action) { return action.payload.assetId; });
404
+ return rxjs_1.of(assetsSlice.actions.listenerDeleteComplete({ assetIds: assetIds }));
405
+ }));
406
+ };
407
+ exports.assetsListenerDeleteQueueEpic = assetsListenerDeleteQueueEpic;
408
+ var assetsListenerUpdateQueueEpic = function (action$) {
409
+ return action$.pipe(operators_1.filter(assetsSlice.actions.listenerUpdateQueue.match), operators_1.bufferTime(2000), operators_1.filter(function (actions) { return actions.length > 0; }), operators_1.switchMap(function (actions) {
410
+ var assets = actions === null || actions === void 0 ? void 0 : actions.map(function (action) { return action.payload.asset; });
411
+ return rxjs_1.of(assetsSlice.actions.listenerUpdateComplete({ assets: assets }));
412
+ }));
413
+ };
414
+ exports.assetsListenerUpdateQueueEpic = assetsListenerUpdateQueueEpic;
415
+ var assetsSortEpic = function (action$) {
416
+ return action$.pipe(redux_observable_1.ofType(assetsSlice.actions.listenerUpdateComplete.type, //
417
+ assetsSlice.actions.updateComplete.type), operators_1.bufferTime(1000), operators_1.filter(function (actions) { return actions.length > 0; }), operators_1.switchMap(function () {
418
+ return rxjs_1.of(assetsSlice.actions.sort());
419
+ }));
420
+ };
421
+ exports.assetsSortEpic = assetsSortEpic;
422
+ var assetsTagsAddEpic = function (action$, state$) {
423
+ return action$.pipe(operators_1.filter(assetsSlice.actions.tagsAddRequest.match), operators_1.withLatestFrom(state$), operators_1.mergeMap(function (_a) {
424
+ var action = _a[0], state = _a[1];
425
+ var _b = action.payload, assets = _b.assets, tag = _b.tag;
426
+ return rxjs_1.of(action).pipe(
427
+ // Optionally throttle
428
+ debugThrottle_1.default(state.debug.badConnection),
429
+ // Add tag references to all picked assets
430
+ operators_1.mergeMap(function () {
431
+ var pickedAssets = exports.selectAssetsPicked(state);
432
+ // Filter out picked assets which already include tag
433
+ var pickedAssetsFiltered = pickedAssets === null || pickedAssets === void 0 ? void 0 : pickedAssets.filter(function (assetItem) {
434
+ var _a, _b, _c, _d, _e;
435
+ var tagIndex = (_e = (_d = (_c = (_b = (_a = assetItem === null || assetItem === void 0 ? void 0 : assetItem.asset) === null || _a === void 0 ? void 0 : _a.opt) === null || _b === void 0 ? void 0 : _b.media) === null || _c === void 0 ? void 0 : _c.tags) === null || _d === void 0 ? void 0 : _d.findIndex(function (t) { return t._ref === (tag === null || tag === void 0 ? void 0 : tag._id); })) !== null && _e !== void 0 ? _e : -1;
436
+ return tagIndex < 0;
437
+ });
438
+ var transaction = pickedAssetsFiltered.reduce(function (transaction, pickedAsset) {
439
+ var _a;
440
+ return transaction.patch((_a = pickedAsset === null || pickedAsset === void 0 ? void 0 : pickedAsset.asset) === null || _a === void 0 ? void 0 : _a._id, function (patch) {
441
+ var _a;
442
+ return patch
443
+ .ifRevisionId((_a = pickedAsset === null || pickedAsset === void 0 ? void 0 : pickedAsset.asset) === null || _a === void 0 ? void 0 : _a._rev)
444
+ .setIfMissing({ opt: {} })
445
+ .setIfMissing({ 'opt.media': {} })
446
+ .setIfMissing({ 'opt.media.tags': [] })
447
+ .append('opt.media.tags', [
448
+ { _key: nanoid_1.nanoid(), _ref: tag === null || tag === void 0 ? void 0 : tag._id, _type: 'reference', _weak: true }
449
+ ]);
450
+ });
451
+ }, client_1.default.transaction());
452
+ return rxjs_1.from(transaction.commit());
453
+ }),
454
+ // Dispatch complete action
455
+ operators_1.mergeMap(function () { return rxjs_1.of(assetsSlice.actions.tagsAddComplete({ assets: assets, tag: tag })); }), operators_1.catchError(function (error) {
456
+ return rxjs_1.of(assetsSlice.actions.tagsAddError({
457
+ assets: assets,
458
+ error: {
459
+ message: (error === null || error === void 0 ? void 0 : error.message) || 'Internal error',
460
+ statusCode: (error === null || error === void 0 ? void 0 : error.statusCode) || 500
461
+ },
462
+ tag: tag
463
+ }));
464
+ }));
465
+ }));
466
+ };
467
+ exports.assetsTagsAddEpic = assetsTagsAddEpic;
468
+ var assetsTagsRemoveEpic = function (action$, state$) {
469
+ return action$.pipe(operators_1.filter(assetsSlice.actions.tagsRemoveRequest.match), operators_1.withLatestFrom(state$), operators_1.mergeMap(function (_a) {
470
+ var action = _a[0], state = _a[1];
471
+ var _b = action.payload, assets = _b.assets, tag = _b.tag;
472
+ return rxjs_1.of(action).pipe(
473
+ // Optionally throttle
474
+ debugThrottle_1.default(state.debug.badConnection),
475
+ // Remove tag references from all picked assets
476
+ operators_1.mergeMap(function () {
477
+ var pickedAssets = exports.selectAssetsPicked(state);
478
+ var transaction = pickedAssets.reduce(function (transaction, pickedAsset) {
479
+ var _a;
480
+ return transaction.patch((_a = pickedAsset === null || pickedAsset === void 0 ? void 0 : pickedAsset.asset) === null || _a === void 0 ? void 0 : _a._id, function (patch) {
481
+ var _a;
482
+ return patch
483
+ .ifRevisionId((_a = pickedAsset === null || pickedAsset === void 0 ? void 0 : pickedAsset.asset) === null || _a === void 0 ? void 0 : _a._rev)
484
+ .unset(["opt.media.tags[_ref == \"" + tag._id + "\"]"]);
485
+ });
486
+ }, client_1.default.transaction());
487
+ return rxjs_1.from(transaction.commit());
488
+ }),
489
+ // Dispatch complete action
490
+ operators_1.mergeMap(function () { return rxjs_1.of(assetsSlice.actions.tagsRemoveComplete({ assets: assets, tag: tag })); }), operators_1.catchError(function (error) {
491
+ return rxjs_1.of(assetsSlice.actions.tagsRemoveError({
492
+ assets: assets,
493
+ error: {
494
+ message: (error === null || error === void 0 ? void 0 : error.message) || 'Internal error',
495
+ statusCode: (error === null || error === void 0 ? void 0 : error.statusCode) || 500
496
+ },
497
+ tag: tag
498
+ }));
499
+ }));
500
+ }));
501
+ };
502
+ exports.assetsTagsRemoveEpic = assetsTagsRemoveEpic;
503
+ var assetsUnpickEpic = function (action$) {
504
+ return action$.pipe(redux_observable_1.ofType(assetsSlice.actions.orderSet.type, assetsSlice.actions.viewSet.type, searchSlice_1.facetsAdd.type, searchSlice_1.facetsClear.type, searchSlice_1.facetsRemove.type, searchSlice_1.facetsTagAddOrUpdate.type, searchSlice_1.facetsUpdate.type, searchSlice_1.querySet.type), operators_1.switchMap(function () {
505
+ return rxjs_1.of(assetsSlice.actions.pickClear());
506
+ }));
507
+ };
508
+ exports.assetsUnpickEpic = assetsUnpickEpic;
509
+ var assetsUpdateEpic = function (action$, state$) {
510
+ return action$.pipe(operators_1.filter(assetsSlice.actions.updateRequest.match), operators_1.withLatestFrom(state$), operators_1.mergeMap(function (_a) {
511
+ var action = _a[0], state = _a[1];
512
+ var _b = action.payload, asset = _b.asset, closeDialogId = _b.closeDialogId, formData = _b.formData;
513
+ return rxjs_1.of(action).pipe(debugThrottle_1.default(state.debug.badConnection), operators_1.mergeMap(function () {
514
+ return rxjs_1.from(client_1.default
515
+ .patch(asset._id)
516
+ .setIfMissing({ opt: {} })
517
+ .setIfMissing({ 'opt.media': {} })
518
+ .set(formData)
519
+ .commit());
520
+ }), operators_1.mergeMap(function (updatedAsset) {
521
+ return rxjs_1.of(assetsSlice.actions.updateComplete({
522
+ assetId: updatedAsset._id,
523
+ closeDialogId: closeDialogId
524
+ }));
525
+ }), operators_1.catchError(function (error) {
526
+ return rxjs_1.of(assetsSlice.actions.updateError({
527
+ asset: asset,
528
+ error: {
529
+ message: (error === null || error === void 0 ? void 0 : error.message) || 'Internal error',
530
+ statusCode: (error === null || error === void 0 ? void 0 : error.statusCode) || 500
531
+ }
532
+ }));
533
+ }));
534
+ }));
535
+ };
536
+ exports.assetsUpdateEpic = assetsUpdateEpic;
537
+ // Selectors
538
+ var selectAssetsByIds = function (state) { return state.assets.byIds; };
539
+ var selectAssetsAllIds = function (state) { return state.assets.allIds; };
540
+ exports.selectAssetById = toolkit_1.createSelector([
541
+ function (state) { return state.assets.byIds; },
542
+ function (_state, assetId) { return assetId; }
543
+ ], function (byIds, assetId) { return byIds[assetId]; });
544
+ exports.selectAssets = toolkit_1.createSelector([selectAssetsByIds, selectAssetsAllIds], function (byIds, allIds) { return allIds.map(function (id) { return byIds[id]; }); });
545
+ exports.selectAssetsLength = toolkit_1.createSelector([exports.selectAssets], function (assets) { return assets.length; });
546
+ exports.selectAssetsPicked = toolkit_1.createSelector([exports.selectAssets], function (assets) {
547
+ return assets.filter(function (item) { return item === null || item === void 0 ? void 0 : item.picked; });
548
+ });
549
+ exports.selectAssetsPickedLength = toolkit_1.createSelector([exports.selectAssetsPicked], function (assetsPicked) { return assetsPicked.length; });
550
+ exports.clear = (_a = assetsSlice.actions, _a.clear), exports.deleteComplete = _a.deleteComplete, exports.deleteError = _a.deleteError, exports.deletePicked = _a.deletePicked, exports.deleteRequest = _a.deleteRequest, exports.fetchComplete = _a.fetchComplete, exports.fetchError = _a.fetchError, exports.fetchRequest = _a.fetchRequest, exports.listenerDeleteComplete = _a.listenerDeleteComplete, exports.listenerDeleteQueue = _a.listenerDeleteQueue, exports.listenerUpdateComplete = _a.listenerUpdateComplete, exports.listenerUpdateQueue = _a.listenerUpdateQueue, exports.loadNextPage = _a.loadNextPage, exports.loadPageIndex = _a.loadPageIndex, exports.orderSet = _a.orderSet, exports.pick = _a.pick, exports.pickAll = _a.pickAll, exports.pickClear = _a.pickClear, exports.pickRange = _a.pickRange, exports.sort = _a.sort, exports.tagsAddComplete = _a.tagsAddComplete, exports.tagsAddError = _a.tagsAddError, exports.tagsAddRequest = _a.tagsAddRequest, exports.tagsRemoveComplete = _a.tagsRemoveComplete, exports.tagsRemoveError = _a.tagsRemoveError, exports.tagsRemoveRequest = _a.tagsRemoveRequest, exports.updateComplete = _a.updateComplete, exports.updateError = _a.updateError, exports.updateRequest = _a.updateRequest, exports.viewSet = _a.viewSet;
551
+ exports.default = assetsSlice.reducer;
552
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/modules/assets/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.toggleEnabled = exports.setBadConnection = void 0;
5
+ var toolkit_1 = require("@reduxjs/toolkit");
6
+ var initialState = {
7
+ badConnection: false,
8
+ enabled: false
9
+ };
10
+ var debugSlice = toolkit_1.createSlice({
11
+ name: 'debug',
12
+ initialState: initialState,
13
+ reducers: {
14
+ setBadConnection: function (state, action) {
15
+ state.badConnection = action.payload;
16
+ },
17
+ toggleEnabled: function (state) {
18
+ state.enabled = !state.enabled;
19
+ }
20
+ }
21
+ });
22
+ exports.setBadConnection = (_a = debugSlice.actions, _a.setBadConnection), exports.toggleEnabled = _a.toggleEnabled;
23
+ exports.default = debugSlice.reducer;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/modules/debug/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.debugActions = void 0;
4
+ var toolkit_1 = require("@reduxjs/toolkit");
5
+ var initialState = {
6
+ badConnection: false,
7
+ enabled: false
8
+ };
9
+ var debugSlice = toolkit_1.createSlice({
10
+ name: 'debug',
11
+ initialState: initialState,
12
+ reducers: {
13
+ setBadConnection: function (state, action) {
14
+ state.badConnection = action.payload;
15
+ },
16
+ toggleEnabled: function (state) {
17
+ state.enabled = !state.enabled;
18
+ }
19
+ }
20
+ });
21
+ exports.debugActions = debugSlice.actions;
22
+ exports.default = debugSlice.reducer;