@mirrormedia/lilith-draft-editor 1.1.0-alpha.1 → 1.1.0-alpha.3

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 (72) hide show
  1. package/lib/draft-js/buttons/annotation.js +0 -22
  2. package/lib/draft-js/buttons/audio.js +52 -0
  3. package/lib/draft-js/buttons/background-color.js +0 -26
  4. package/lib/draft-js/buttons/background-image.js +13 -32
  5. package/lib/draft-js/buttons/background-video.js +13 -32
  6. package/lib/draft-js/buttons/color-box.js +5 -21
  7. package/lib/draft-js/buttons/divider.js +3 -12
  8. package/lib/draft-js/buttons/embedded-code.js +5 -16
  9. package/lib/draft-js/buttons/enlarge.js +0 -3
  10. package/lib/draft-js/buttons/font-color.js +0 -26
  11. package/lib/draft-js/buttons/image.js +5 -16
  12. package/lib/draft-js/buttons/info-box.js +5 -21
  13. package/lib/draft-js/buttons/link.js +0 -19
  14. package/lib/draft-js/buttons/media.js +3 -16
  15. package/lib/draft-js/buttons/related-post.js +3 -14
  16. package/lib/draft-js/buttons/selector/align-selector.js +2 -11
  17. package/lib/draft-js/buttons/selector/audio-selector.js +252 -0
  18. package/lib/draft-js/buttons/selector/image-selector.js +6 -50
  19. package/lib/draft-js/buttons/selector/pagination.js +2 -6
  20. package/lib/draft-js/buttons/selector/post-selector.js +6 -39
  21. package/lib/draft-js/buttons/selector/search-box.js +0 -9
  22. package/lib/draft-js/buttons/selector/video-selector.js +4 -33
  23. package/lib/draft-js/buttons/side-index.js +15 -31
  24. package/lib/draft-js/buttons/slideshow.js +7 -16
  25. package/lib/draft-js/buttons/table.js +5 -11
  26. package/lib/draft-js/buttons/text-align.js +0 -14
  27. package/lib/draft-js/buttons/video.js +52 -0
  28. package/lib/draft-js/const.js +0 -2
  29. package/lib/draft-js/draft-converter/api-data-instance.js +0 -14
  30. package/lib/draft-js/draft-converter/atomic-block-processor.js +12 -41
  31. package/lib/draft-js/draft-converter/entities.js +1 -0
  32. package/lib/draft-js/draft-converter/index.js +10 -29
  33. package/lib/draft-js/draft-converter/inline-styles-processor.js +22 -55
  34. package/lib/draft-js/modifier.js +5 -13
  35. package/lib/index.js +0 -4
  36. package/lib/website/mirrormedia/block-renderer/background-image-block.js +2 -14
  37. package/lib/website/mirrormedia/block-renderer/background-video-block.js +2 -14
  38. package/lib/website/mirrormedia/block-renderer/color-box-block.js +2 -14
  39. package/lib/website/mirrormedia/block-renderer/embedded-code-block.js +3 -12
  40. package/lib/website/mirrormedia/block-renderer/info-box-block.js +2 -14
  41. package/lib/website/mirrormedia/block-renderer/side-index-block.js +2 -13
  42. package/lib/website/mirrormedia/block-renderer/slideshow-block.js +4 -11
  43. package/lib/website/mirrormedia/block-renderer/table-block.js +28 -62
  44. package/lib/website/mirrormedia/block-renderer-fn.js +11 -29
  45. package/lib/website/mirrormedia/draft-editor.js +31 -105
  46. package/lib/website/mirrormedia/entity-decorator.js +0 -4
  47. package/lib/website/mirrormedia/index.js +0 -3
  48. package/lib/website/mirrormedia/selector/align-selector.js +2 -11
  49. package/lib/website/mirrormedia/selector/audio-selector.js +252 -0
  50. package/lib/website/mirrormedia/selector/image-selector.js +10 -50
  51. package/lib/website/mirrormedia/selector/pagination.js +2 -6
  52. package/lib/website/mirrormedia/selector/post-selector.js +6 -39
  53. package/lib/website/mirrormedia/selector/search-box.js +0 -9
  54. package/lib/website/mirrormedia/selector/video-selector.js +8 -33
  55. package/lib/website/readr/block-renderer/background-image-block.js +2 -14
  56. package/lib/website/readr/block-renderer/background-video-block.js +2 -14
  57. package/lib/website/readr/block-renderer/color-box-block.js +2 -14
  58. package/lib/website/readr/block-renderer/info-box-block.js +2 -14
  59. package/lib/website/readr/block-renderer/side-index-block.js +2 -13
  60. package/lib/website/readr/block-renderer/table-block.js +28 -62
  61. package/lib/website/readr/block-renderer-fn.js +11 -27
  62. package/lib/website/readr/draft-editor.js +31 -105
  63. package/lib/website/readr/entity-decorator.js +0 -4
  64. package/lib/website/readr/index.js +0 -3
  65. package/lib/website/readr/selector/align-selector.js +2 -11
  66. package/lib/website/readr/selector/audio-selector.js +252 -0
  67. package/lib/website/readr/selector/image-selector.js +10 -50
  68. package/lib/website/readr/selector/pagination.js +2 -6
  69. package/lib/website/readr/selector/post-selector.js +6 -39
  70. package/lib/website/readr/selector/search-box.js +0 -9
  71. package/lib/website/readr/selector/video-selector.js +8 -33
  72. package/package.json +2 -2
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AudioSelector = AudioSelector;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
+ var _modals = require("@keystone-ui/modals");
10
+ var _apollo = require("@keystone-6/core/admin-ui/apollo");
11
+ var _searchBox = require("./search-box");
12
+ var _pagination = require("./pagination");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ const AudioSearchBox = (0, _styledComponents.default)(_searchBox.SearchBox)`
17
+ margin-top: 10px;
18
+ `;
19
+ const AudioSelectionWrapper = _styledComponents.default.div`
20
+ overflow: auto;
21
+ margin-top: 10px;
22
+ `;
23
+ const AudioGridsWrapper = _styledComponents.default.div`
24
+ display: flex;
25
+ flex-wrap: wrap;
26
+ overflow: auto;
27
+ `;
28
+ const AudioGridWrapper = _styledComponents.default.div`
29
+ flex: 0 0 50%;
30
+ cursor: pointer;
31
+ padding: 0 10px 10px;
32
+ `;
33
+ const AudioMetaGridsWrapper = _styledComponents.default.div`
34
+ display: flex;
35
+ flex-wrap: wrap;
36
+ overflow: auto;
37
+ `;
38
+ const AudioMetaGridWrapper = _styledComponents.default.div`
39
+ flex: 0 0 50%;
40
+ cursor: pointer;
41
+ padding: 0 10px 10px;
42
+ `;
43
+ const Audio = _styledComponents.default.audio`
44
+ width: 100%;
45
+ `;
46
+ const AudioName = _styledComponents.default.p`
47
+ text-align: center;
48
+ `;
49
+ const SeparationLine = _styledComponents.default.div`
50
+ border: #e1e5e9 1px solid;
51
+ margin-top: 10px;
52
+ margin-bottom: 10px;
53
+ `;
54
+ const AudioSelected = _styledComponents.default.div`
55
+ height: 1.4rem;
56
+ `;
57
+ const ErrorWrapper = _styledComponents.default.div`
58
+ & * {
59
+ margin: 0;
60
+ }
61
+ `;
62
+ function AudiosGrids(props) {
63
+ const {
64
+ audios,
65
+ selected,
66
+ onSelect
67
+ } = props;
68
+ return /*#__PURE__*/_react.default.createElement(AudioGridsWrapper, null, audios.map(audio => {
69
+ return /*#__PURE__*/_react.default.createElement(AudioGrid, {
70
+ key: audio.id,
71
+ isSelected: selected === null || selected === void 0 ? void 0 : selected.includes(audio),
72
+ onSelect: () => onSelect(audio),
73
+ audio: audio
74
+ });
75
+ }));
76
+ }
77
+ function AudioGrid(props) {
78
+ var _audio$file;
79
+ const {
80
+ audio,
81
+ onSelect,
82
+ isSelected
83
+ } = props;
84
+ console.log('audio', audio);
85
+ return /*#__PURE__*/_react.default.createElement(AudioGridWrapper, {
86
+ key: audio === null || audio === void 0 ? void 0 : audio.id,
87
+ onClick: () => onSelect(audio)
88
+ }, /*#__PURE__*/_react.default.createElement(AudioSelected, null, isSelected ? /*#__PURE__*/_react.default.createElement("i", {
89
+ className: "fas fa-check-circle"
90
+ }) : null), /*#__PURE__*/_react.default.createElement(Audio, {
91
+ controls: true
92
+ }, /*#__PURE__*/_react.default.createElement("source", {
93
+ src: audio === null || audio === void 0 ? void 0 : audio.urlOriginal
94
+ }), /*#__PURE__*/_react.default.createElement("source", {
95
+ src: audio === null || audio === void 0 ? void 0 : (_audio$file = audio.file) === null || _audio$file === void 0 ? void 0 : _audio$file.url
96
+ })), /*#__PURE__*/_react.default.createElement(AudioName, null, audio === null || audio === void 0 ? void 0 : audio.name));
97
+ }
98
+ function AudioMetaGrids(props) {
99
+ const {
100
+ audioMetas
101
+ } = props;
102
+ return /*#__PURE__*/_react.default.createElement(AudioMetaGridsWrapper, null, audioMetas.map(audioMeta => {
103
+ var _audioMeta$audio;
104
+ return /*#__PURE__*/_react.default.createElement(AudioMetaGrid, {
105
+ key: audioMeta === null || audioMeta === void 0 ? void 0 : (_audioMeta$audio = audioMeta.audio) === null || _audioMeta$audio === void 0 ? void 0 : _audioMeta$audio.id,
106
+ audioMeta: audioMeta
107
+ });
108
+ }));
109
+ }
110
+ function AudioMetaGrid(props) {
111
+ var _audio$file2;
112
+ const {
113
+ audioMeta
114
+ } = props;
115
+ const {
116
+ audio
117
+ } = audioMeta;
118
+ return /*#__PURE__*/_react.default.createElement(AudioMetaGridWrapper, null, /*#__PURE__*/_react.default.createElement(Audio, {
119
+ controls: true
120
+ }, /*#__PURE__*/_react.default.createElement("source", {
121
+ src: audio === null || audio === void 0 ? void 0 : audio.urlOriginal
122
+ }), /*#__PURE__*/_react.default.createElement("source", {
123
+ src: audio === null || audio === void 0 ? void 0 : (_audio$file2 = audio.file) === null || _audio$file2 === void 0 ? void 0 : _audio$file2.url
124
+ })), /*#__PURE__*/_react.default.createElement(AudioName, null, audio === null || audio === void 0 ? void 0 : audio.name));
125
+ }
126
+ const AudiosQuery = (0, _apollo.gql)`
127
+ query Audios($searchText: String!, $take: Int, $skip: Int) {
128
+ audioFilesCount(where: { name: { contains: $searchText } })
129
+ audioFiles(
130
+ where: { name: { contains: $searchText } }
131
+ take: $take
132
+ skip: $skip
133
+ ) {
134
+ id
135
+ name
136
+ urlOriginal
137
+ file {
138
+ url
139
+ }
140
+ heroImage {
141
+ imageFile {
142
+ url
143
+ }
144
+ resized {
145
+ w480
146
+ w800
147
+ w1200
148
+ w1600
149
+ w2400
150
+ }
151
+ }
152
+ }
153
+ }
154
+ `;
155
+ function AudioSelector(props) {
156
+ const [queryAudios, {
157
+ loading,
158
+ error,
159
+ data: {
160
+ audioFiles = [],
161
+ audioFilesCount = 0
162
+ } = {}
163
+ }] = (0, _apollo.useLazyQuery)(AudiosQuery, {
164
+ fetchPolicy: 'no-cache'
165
+ });
166
+ const [currentPage, setCurrentPage] = (0, _react.useState)(0); // page starts with 1, 0 is used to detect initialization
167
+ const [searchText, setSearchText] = (0, _react.useState)('');
168
+ const [selected, setSelected] = (0, _react.useState)([]);
169
+ const pageSize = 6;
170
+ const {
171
+ onChange
172
+ } = props;
173
+ const onSave = () => {
174
+ onChange(selected);
175
+ };
176
+ const onCancel = () => {
177
+ onChange([]);
178
+ };
179
+ const onSearchBoxChange = async searchInput => {
180
+ setSearchText(searchInput);
181
+ setCurrentPage(1);
182
+ };
183
+ const onAudiosGridSelect = audioEntity => {
184
+ setSelected(selected => {
185
+ const filterdSelected = selected.filter(ele => {
186
+ var _ele$audio;
187
+ return ((_ele$audio = ele.audio) === null || _ele$audio === void 0 ? void 0 : _ele$audio.id) !== audioEntity.id;
188
+ });
189
+
190
+ // deselect the audio
191
+ if (filterdSelected.length !== selected.length) {
192
+ return filterdSelected;
193
+ }
194
+
195
+ // single select
196
+ return [{
197
+ audio: audioEntity
198
+ }];
199
+ });
200
+ };
201
+ const selectedAudios = selected.map(ele => {
202
+ return ele.audio;
203
+ });
204
+ (0, _react.useEffect)(() => {
205
+ if (currentPage !== 0) {
206
+ queryAudios({
207
+ variables: {
208
+ searchText: searchText,
209
+ skip: (currentPage - 1) * pageSize,
210
+ take: pageSize
211
+ }
212
+ });
213
+ }
214
+ }, [currentPage, searchText]);
215
+ let searchResult = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(AudiosGrids, {
216
+ audios: audioFiles,
217
+ selected: selectedAudios,
218
+ onSelect: onAudiosGridSelect
219
+ }), /*#__PURE__*/_react.default.createElement(_pagination.Pagination, {
220
+ currentPage: currentPage,
221
+ total: audioFilesCount,
222
+ pageSize: pageSize,
223
+ onChange: pageIndex => {
224
+ setCurrentPage(pageIndex);
225
+ }
226
+ }));
227
+ if (loading) {
228
+ searchResult = /*#__PURE__*/_react.default.createElement("p", null, "searching...");
229
+ }
230
+ if (error) {
231
+ searchResult = /*#__PURE__*/_react.default.createElement(ErrorWrapper, null, /*#__PURE__*/_react.default.createElement("h3", null, "Errors occurs in the `audios` query"), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("b", null, "Message:"), /*#__PURE__*/_react.default.createElement("div", null, error.message), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("b", null, "Stack:"), /*#__PURE__*/_react.default.createElement("div", null, error.stack), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("b", null, "Query:"), /*#__PURE__*/_react.default.createElement("pre", null, AudiosQuery.loc.source.body)));
232
+ }
233
+ return /*#__PURE__*/_react.default.createElement(_modals.DrawerController, {
234
+ isOpen: true
235
+ }, /*#__PURE__*/_react.default.createElement(_modals.Drawer, {
236
+ title: "Select audio",
237
+ actions: {
238
+ cancel: {
239
+ label: 'Cancel',
240
+ action: onCancel
241
+ },
242
+ confirm: {
243
+ label: 'Confirm',
244
+ action: onSave
245
+ }
246
+ }
247
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(AudioSearchBox, {
248
+ onChange: onSearchBoxChange
249
+ }), /*#__PURE__*/_react.default.createElement(AudioSelectionWrapper, null, /*#__PURE__*/_react.default.createElement("div", null, searchResult), !!selected.length && /*#__PURE__*/_react.default.createElement(SeparationLine, null), /*#__PURE__*/_react.default.createElement(AudioMetaGrids, {
250
+ audioMetas: selected
251
+ })))));
252
+ }
@@ -4,31 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ImageSelector = ImageSelector;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _debounce = _interopRequireDefault(require("lodash/debounce"));
11
-
12
9
  var _styledComponents = _interopRequireDefault(require("styled-components"));
13
-
14
10
  var _fields = require("@keystone-ui/fields");
15
-
16
11
  var _modals = require("@keystone-ui/modals");
17
-
18
12
  var _apollo = require("@keystone-6/core/admin-ui/apollo");
19
-
20
13
  var _alignSelector = require("./align-selector");
21
-
22
14
  var _searchBox = require("./search-box");
23
-
24
15
  var _pagination = require("./pagination");
25
-
26
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
-
30
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
-
32
19
  const _ = {
33
20
  debounce: _debounce.default
34
21
  };
@@ -85,7 +72,6 @@ const ErrorWrapper = _styledComponents.default.div`
85
72
  margin: 0;
86
73
  }
87
74
  `;
88
-
89
75
  function ImageGrids(props) {
90
76
  const {
91
77
  images,
@@ -101,10 +87,8 @@ function ImageGrids(props) {
101
87
  });
102
88
  }));
103
89
  }
104
-
105
90
  function ImageGrid(props) {
106
91
  var _image$resized;
107
-
108
92
  const {
109
93
  image,
110
94
  onSelect,
@@ -119,12 +103,10 @@ function ImageGrid(props) {
119
103
  src: image === null || image === void 0 ? void 0 : (_image$resized = image.resized) === null || _image$resized === void 0 ? void 0 : _image$resized.w800,
120
104
  onError: e => {
121
105
  var _image$imageFile;
122
-
123
106
  return e.currentTarget.src = image === null || image === void 0 ? void 0 : (_image$imageFile = image.imageFile) === null || _image$imageFile === void 0 ? void 0 : _image$imageFile.url;
124
107
  }
125
108
  }));
126
109
  }
127
-
128
110
  function ImageMetaGrids(props) {
129
111
  const {
130
112
  imageMetas,
@@ -134,7 +116,6 @@ function ImageMetaGrids(props) {
134
116
  } = props;
135
117
  return /*#__PURE__*/_react.default.createElement(ImageMetaGridsWrapper, null, imageMetas.map(imageMeta => {
136
118
  var _imageMeta$image;
137
-
138
119
  return /*#__PURE__*/_react.default.createElement(ImageMetaGrid, {
139
120
  key: imageMeta === null || imageMeta === void 0 ? void 0 : (_imageMeta$image = imageMeta.image) === null || _imageMeta$image === void 0 ? void 0 : _imageMeta$image.id,
140
121
  imageMeta: imageMeta,
@@ -144,10 +125,8 @@ function ImageMetaGrids(props) {
144
125
  });
145
126
  }));
146
127
  }
147
-
148
128
  function ImageMetaGrid(props) {
149
129
  var _image$resized2;
150
-
151
130
  const {
152
131
  imageMeta,
153
132
  enableCaption,
@@ -163,7 +142,6 @@ function ImageMetaGrid(props) {
163
142
  src: image === null || image === void 0 ? void 0 : (_image$resized2 = image.resized) === null || _image$resized2 === void 0 ? void 0 : _image$resized2.w800,
164
143
  onError: e => {
165
144
  var _image$imageFile2;
166
-
167
145
  return e.currentTarget.src = image === null || image === void 0 ? void 0 : (_image$imageFile2 = image.imageFile) === null || _image$imageFile2 === void 0 ? void 0 : _image$imageFile2.url;
168
146
  }
169
147
  }), enableCaption && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Label, {
@@ -196,7 +174,6 @@ function ImageMetaGrid(props) {
196
174
  })
197
175
  })));
198
176
  }
199
-
200
177
  function DelayInput(props) {
201
178
  const {
202
179
  delay,
@@ -213,7 +190,6 @@ function DelayInput(props) {
213
190
  }
214
191
  }));
215
192
  }
216
-
217
193
  const imagesQuery = (0, _apollo.gql)`
218
194
  query Photos($searchText: String!, $take: Int, $skip: Int) {
219
195
  photosCount(where: { name: { contains: $searchText } })
@@ -238,7 +214,6 @@ const imagesQuery = (0, _apollo.gql)`
238
214
  }
239
215
  }
240
216
  `;
241
-
242
217
  function ImageSelector(props) {
243
218
  const [queryImages, {
244
219
  loading,
@@ -251,7 +226,6 @@ function ImageSelector(props) {
251
226
  fetchPolicy: 'no-cache'
252
227
  });
253
228
  const [currentPage, setCurrentPage] = (0, _react.useState)(0); // page starts with 1, 0 is used to detect initialization
254
-
255
229
  const [searchText, setSearchText] = (0, _react.useState)('');
256
230
  const [selected, setSelected] = (0, _react.useState)([]);
257
231
  const [delay, setDelay] = (0, _react.useState)('5');
@@ -279,84 +253,70 @@ function ImageSelector(props) {
279
253
  enableDelay = false,
280
254
  onChange
281
255
  } = props;
282
-
283
256
  const onSave = () => {
284
257
  let adjustedDelay = +delay;
285
258
  adjustedDelay = adjustedDelay < 1 ? 1 : adjustedDelay;
286
259
  onChange(selected, align, adjustedDelay);
287
260
  };
288
-
289
261
  const onCancel = () => {
290
262
  onChange([]);
291
263
  };
292
-
293
264
  const onSearchBoxChange = async searchInput => {
294
265
  setSearchText(searchInput);
295
266
  setCurrentPage(1);
296
267
  };
297
-
298
268
  const onDealyChange = delay => {
299
269
  setDelay(delay);
300
270
  };
301
-
302
271
  const onAlignSelectChange = align => {
303
272
  setAlign(align);
304
273
  };
305
-
306
274
  const onAlignSelectOpen = () => {
307
275
  var _contentWrapperRef$cu;
308
-
309
276
  const scrollWrapper = (_contentWrapperRef$cu = contentWrapperRef.current) === null || _contentWrapperRef$cu === void 0 ? void 0 : _contentWrapperRef$cu.parentElement;
310
277
  scrollWrapper.scrollTop = scrollWrapper.scrollHeight;
311
278
  };
312
-
313
279
  const onImageMetaChange = imageEntityWithMeta => {
314
280
  if (enableMultiSelect) {
315
281
  const foundIndex = selected.findIndex(ele => {
316
282
  var _ele$image, _imageEntityWithMeta$;
317
-
318
283
  return (ele === null || ele === void 0 ? void 0 : (_ele$image = ele.image) === null || _ele$image === void 0 ? void 0 : _ele$image.id) === (imageEntityWithMeta === null || imageEntityWithMeta === void 0 ? void 0 : (_imageEntityWithMeta$ = imageEntityWithMeta.image) === null || _imageEntityWithMeta$ === void 0 ? void 0 : _imageEntityWithMeta$.id);
319
284
  });
320
-
321
285
  if (foundIndex !== -1) {
322
286
  selected[foundIndex] = imageEntityWithMeta;
323
287
  setSelected(selected);
324
288
  }
325
-
326
289
  return;
327
290
  }
328
-
329
291
  setSelected([imageEntityWithMeta]);
330
292
  };
331
-
332
293
  const onImagesGridSelect = imageEntity => {
333
294
  setSelected(selected => {
334
295
  const filterdSelected = selected.filter(ele => {
335
296
  var _ele$image2;
336
-
337
297
  return ((_ele$image2 = ele.image) === null || _ele$image2 === void 0 ? void 0 : _ele$image2.id) !== imageEntity.id;
338
- }); // deselect the image
298
+ });
339
299
 
300
+ // deselect the image
340
301
  if (filterdSelected.length !== selected.length) {
341
302
  return filterdSelected;
342
- } // add new selected one
343
-
303
+ }
344
304
 
305
+ // add new selected one
345
306
  if (enableMultiSelect) {
346
307
  return selected.concat([{
347
308
  image: imageEntity,
348
309
  desc: ''
349
310
  }]);
350
- } // single select
351
-
311
+ }
352
312
 
313
+ // single select
353
314
  return [{
354
315
  image: imageEntity,
355
316
  desc: ''
356
317
  }];
357
318
  });
358
319
  };
359
-
360
320
  const selectedImages = selected.map(ele => {
361
321
  return ele.image;
362
322
  });
@@ -371,7 +331,6 @@ function ImageSelector(props) {
371
331
  });
372
332
  }
373
333
  }, [currentPage, searchText]);
374
-
375
334
  let searchResult = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ImageGrids, {
376
335
  images: images,
377
336
  selected: selectedImages,
@@ -384,15 +343,12 @@ function ImageSelector(props) {
384
343
  setCurrentPage(pageIndex);
385
344
  }
386
345
  }));
387
-
388
346
  if (loading) {
389
347
  searchResult = /*#__PURE__*/_react.default.createElement("p", null, "searching...");
390
348
  }
391
-
392
349
  if (error) {
393
350
  searchResult = /*#__PURE__*/_react.default.createElement(ErrorWrapper, null, /*#__PURE__*/_react.default.createElement("h3", null, "Errors occurs in the `images` query"), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("b", null, "Message:"), /*#__PURE__*/_react.default.createElement("div", null, error.message), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("b", null, "Stack:"), /*#__PURE__*/_react.default.createElement("div", null, error.stack), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("b", null, "Query:"), /*#__PURE__*/_react.default.createElement("pre", null, imagesQuery.loc.source.body)));
394
351
  }
395
-
396
352
  return /*#__PURE__*/_react.default.createElement(_modals.DrawerController, {
397
353
  isOpen: true
398
354
  }, /*#__PURE__*/_react.default.createElement(_modals.Drawer, {
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Pagination = Pagination;
7
-
8
7
  var _react = _interopRequireDefault(require("react"));
9
-
10
8
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  const PaginationWrapper = _styledComponents.default.div`
15
11
  display: flex;
16
12
  justify-content: end;
@@ -33,7 +29,6 @@ const ArrowButtonWrapper = _styledComponents.default.a`
33
29
  }
34
30
  }}
35
31
  `;
36
-
37
32
  function Pagination({
38
33
  currentPage,
39
34
  total,
@@ -43,8 +38,9 @@ function Pagination({
43
38
  const minPage = 1;
44
39
  const limit = Math.ceil(total / pageSize);
45
40
  const nextPage = currentPage + 1;
46
- const prevPage = currentPage - 1; // Don't render the pagiantion component if the pageSize is greater than the total number of items in the list.
41
+ const prevPage = currentPage - 1;
47
42
 
43
+ // Don't render the pagiantion component if the pageSize is greater than the total number of items in the list.
48
44
  if (total <= pageSize) return null;
49
45
  return /*#__PURE__*/_react.default.createElement(PaginationWrapper, null, /*#__PURE__*/_react.default.createElement("div", null, currentPage, " of ", limit, " pages"), /*#__PURE__*/_react.default.createElement(Arrows, null, /*#__PURE__*/_react.default.createElement(ArrowButtonWrapper, {
50
46
  onClick: () => {