@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 imagesQuery = (0, _apollo.gql)`
33
20
  query Photos($searchText: String!, $take: Int, $skip: Int) {
34
21
  photosCount(where: { name: { contains: $searchText } })
@@ -109,7 +96,9 @@ const ErrorWrapper = _styledComponents.default.div`
109
96
  margin: 0;
110
97
  }
111
98
  `;
112
-
99
+ const ImageName = _styledComponents.default.p`
100
+ text-align: center;
101
+ `;
113
102
  function ImageGrids(props) {
114
103
  const {
115
104
  images,
@@ -125,10 +114,8 @@ function ImageGrids(props) {
125
114
  });
126
115
  }));
127
116
  }
128
-
129
117
  function ImageGrid(props) {
130
118
  var _image$resized;
131
-
132
119
  const {
133
120
  image,
134
121
  onSelect,
@@ -143,12 +130,10 @@ function ImageGrid(props) {
143
130
  src: image === null || image === void 0 ? void 0 : (_image$resized = image.resized) === null || _image$resized === void 0 ? void 0 : _image$resized.w800,
144
131
  onError: e => {
145
132
  var _image$imageFile;
146
-
147
133
  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;
148
134
  }
149
135
  }));
150
136
  }
151
-
152
137
  function ImageMetaGrids(props) {
153
138
  const {
154
139
  imageMetas,
@@ -158,7 +143,6 @@ function ImageMetaGrids(props) {
158
143
  } = props;
159
144
  return /*#__PURE__*/_react.default.createElement(ImageMetaGridsWrapper, null, imageMetas.map(imageMeta => {
160
145
  var _imageMeta$image;
161
-
162
146
  return /*#__PURE__*/_react.default.createElement(ImageMetaGrid, {
163
147
  key: imageMeta === null || imageMeta === void 0 ? void 0 : (_imageMeta$image = imageMeta.image) === null || _imageMeta$image === void 0 ? void 0 : _imageMeta$image.id,
164
148
  imageMeta: imageMeta,
@@ -168,10 +152,8 @@ function ImageMetaGrids(props) {
168
152
  });
169
153
  }));
170
154
  }
171
-
172
155
  function ImageMetaGrid(props) {
173
156
  var _image$resized2;
174
-
175
157
  const {
176
158
  imageMeta,
177
159
  enableCaption,
@@ -187,10 +169,9 @@ function ImageMetaGrid(props) {
187
169
  src: image === null || image === void 0 ? void 0 : (_image$resized2 = image.resized) === null || _image$resized2 === void 0 ? void 0 : _image$resized2.w800,
188
170
  onError: e => {
189
171
  var _image$imageFile2;
190
-
191
172
  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;
192
173
  }
193
- }), enableCaption && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Label, {
174
+ }), /*#__PURE__*/_react.default.createElement(ImageName, null, image === null || image === void 0 ? void 0 : image.name), enableCaption && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Label, {
194
175
  htmlFor: "caption"
195
176
  }, "Image Caption:"), /*#__PURE__*/_react.default.createElement(_fields.TextInput, {
196
177
  id: "caption",
@@ -220,7 +201,6 @@ function ImageMetaGrid(props) {
220
201
  })
221
202
  })));
222
203
  }
223
-
224
204
  function DelayInput(props) {
225
205
  const {
226
206
  delay,
@@ -237,7 +217,6 @@ function DelayInput(props) {
237
217
  }
238
218
  }));
239
219
  }
240
-
241
220
  function ImageSelector(props) {
242
221
  const [queryImages, {
243
222
  loading,
@@ -250,7 +229,6 @@ function ImageSelector(props) {
250
229
  fetchPolicy: 'no-cache'
251
230
  });
252
231
  const [currentPage, setCurrentPage] = (0, _react.useState)(0); // page starts with 1, 0 is used to detect initialization
253
-
254
232
  const [searchText, setSearchText] = (0, _react.useState)('');
255
233
  const [selected, setSelected] = (0, _react.useState)([]);
256
234
  const [delay, setDelay] = (0, _react.useState)('5');
@@ -278,84 +256,70 @@ function ImageSelector(props) {
278
256
  enableDelay = false,
279
257
  onChange
280
258
  } = props;
281
-
282
259
  const onSave = () => {
283
260
  let adjustedDelay = +delay;
284
261
  adjustedDelay = adjustedDelay < 1 ? 1 : adjustedDelay;
285
262
  onChange(selected, align, adjustedDelay);
286
263
  };
287
-
288
264
  const onCancel = () => {
289
265
  onChange([]);
290
266
  };
291
-
292
267
  const onSearchBoxChange = async searchInput => {
293
268
  setSearchText(searchInput);
294
269
  setCurrentPage(1);
295
270
  };
296
-
297
271
  const onDealyChange = delay => {
298
272
  setDelay(delay);
299
273
  };
300
-
301
274
  const onAlignSelectChange = align => {
302
275
  setAlign(align);
303
276
  };
304
-
305
277
  const onAlignSelectOpen = () => {
306
278
  var _contentWrapperRef$cu;
307
-
308
279
  const scrollWrapper = (_contentWrapperRef$cu = contentWrapperRef.current) === null || _contentWrapperRef$cu === void 0 ? void 0 : _contentWrapperRef$cu.parentElement;
309
280
  scrollWrapper.scrollTop = scrollWrapper.scrollHeight;
310
281
  };
311
-
312
282
  const onImageMetaChange = imageEntityWithMeta => {
313
283
  if (enableMultiSelect) {
314
284
  const foundIndex = selected.findIndex(ele => {
315
285
  var _ele$image, _imageEntityWithMeta$;
316
-
317
286
  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);
318
287
  });
319
-
320
288
  if (foundIndex !== -1) {
321
289
  selected[foundIndex] = imageEntityWithMeta;
322
290
  setSelected(selected);
323
291
  }
324
-
325
292
  return;
326
293
  }
327
-
328
294
  setSelected([imageEntityWithMeta]);
329
295
  };
330
-
331
296
  const onImagesGridSelect = imageEntity => {
332
297
  setSelected(selected => {
333
298
  const filterdSelected = selected.filter(ele => {
334
299
  var _ele$image2;
335
-
336
300
  return ((_ele$image2 = ele.image) === null || _ele$image2 === void 0 ? void 0 : _ele$image2.id) !== imageEntity.id;
337
- }); // deselect the image
301
+ });
338
302
 
303
+ // deselect the image
339
304
  if (filterdSelected.length !== selected.length) {
340
305
  return filterdSelected;
341
- } // add new selected one
342
-
306
+ }
343
307
 
308
+ // add new selected one
344
309
  if (enableMultiSelect) {
345
310
  return selected.concat([{
346
311
  image: imageEntity,
347
312
  desc: ''
348
313
  }]);
349
- } // single select
350
-
314
+ }
351
315
 
316
+ // single select
352
317
  return [{
353
318
  image: imageEntity,
354
319
  desc: ''
355
320
  }];
356
321
  });
357
322
  };
358
-
359
323
  const selectedImages = selected.map(ele => {
360
324
  return ele.image;
361
325
  });
@@ -370,7 +334,6 @@ function ImageSelector(props) {
370
334
  });
371
335
  }
372
336
  }, [currentPage, searchText]);
373
-
374
337
  let searchResult = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ImageGrids, {
375
338
  images: images,
376
339
  selected: selectedImages,
@@ -383,15 +346,12 @@ function ImageSelector(props) {
383
346
  setCurrentPage(pageIndex);
384
347
  }
385
348
  }));
386
-
387
349
  if (loading) {
388
350
  searchResult = /*#__PURE__*/_react.default.createElement("p", null, "searching...");
389
351
  }
390
-
391
352
  if (error) {
392
353
  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)));
393
354
  }
394
-
395
355
  return /*#__PURE__*/_react.default.createElement(_modals.DrawerController, {
396
356
  isOpen: true
397
357
  }, /*#__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: () => {