@mirrormedia/lilith-draft-editor 2.3.0 → 3.0.1

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 (27) hide show
  1. package/lib/hooks.js +34 -0
  2. package/lib/website/mirrordaily/README.md +3 -0
  3. package/lib/website/mirrordaily/block-renderer/background-image-block.js +93 -0
  4. package/lib/website/mirrordaily/block-renderer/background-video-block.js +93 -0
  5. package/lib/website/mirrordaily/block-renderer/color-box-block.js +86 -0
  6. package/lib/website/mirrordaily/block-renderer/embedded-code-block.js +88 -0
  7. package/lib/website/mirrordaily/block-renderer/image-block.js +108 -0
  8. package/lib/website/mirrordaily/block-renderer/info-box-block.js +86 -0
  9. package/lib/website/mirrordaily/block-renderer/side-index-block.js +90 -0
  10. package/lib/website/mirrordaily/block-renderer/slideshow-block.js +150 -0
  11. package/lib/website/mirrordaily/block-renderer/table-block.js +408 -0
  12. package/lib/website/mirrordaily/block-renderer-fn.js +151 -0
  13. package/lib/website/mirrordaily/draft-editor.js +972 -0
  14. package/lib/website/mirrordaily/entity-decorator.js +27 -0
  15. package/lib/website/mirrordaily/index.js +16 -0
  16. package/lib/website/mirrordaily/selector/align-selector.js +71 -0
  17. package/lib/website/mirrordaily/selector/audio-selector.js +283 -0
  18. package/lib/website/mirrordaily/selector/image-selector.js +459 -0
  19. package/lib/website/mirrordaily/selector/pagination.js +82 -0
  20. package/lib/website/mirrordaily/selector/post-selector.js +321 -0
  21. package/lib/website/mirrordaily/selector/search-box.js +46 -0
  22. package/lib/website/mirrordaily/selector/video-selector.js +334 -0
  23. package/lib/website/mirrordaily/shared-style/index.js +17 -0
  24. package/lib/website/mirrordaily/theme/index.js +28 -0
  25. package/lib/website/mirrormedia/draft-editor.js +0 -4
  26. package/lib/website/readr/draft-editor.js +0 -4
  27. package/package.json +3 -2
@@ -0,0 +1,459 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ImageSelector = ImageSelector;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
11
+
12
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
13
+
14
+ var _fields = require("@keystone-ui/fields");
15
+
16
+ var _modals = require("@keystone-ui/modals");
17
+
18
+ var _apollo = require("@keystone-6/core/admin-ui/apollo");
19
+
20
+ var _alignSelector = require("./align-selector");
21
+
22
+ var _searchBox = require("./search-box");
23
+
24
+ var _pagination = require("./pagination");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ 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
+ 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
+ const imagesQuery = (0, _apollo.gql)`
33
+ query Photos($searchText: String!, $take: Int, $skip: Int) {
34
+ photosCount(where: { name: { contains: $searchText } })
35
+ photos(
36
+ where: { name: { contains: $searchText } }
37
+ orderBy: { id: desc }
38
+ take: $take
39
+ skip: $skip
40
+ ) {
41
+ id
42
+ name
43
+ imageFile {
44
+ url
45
+ width
46
+ height
47
+ }
48
+ resized {
49
+ original
50
+ w480
51
+ w800
52
+ w1200
53
+ w1600
54
+ w2400
55
+ }
56
+ resizedWebp {
57
+ original
58
+ w480
59
+ w800
60
+ w1200
61
+ w1600
62
+ w2400
63
+ }
64
+ }
65
+ }
66
+ `;
67
+ const _ = {
68
+ debounce: _debounce.default
69
+ };
70
+ const GlobalStyle = (0, _styledComponents.createGlobalStyle)`
71
+ form {
72
+ @media (max-width: 575px) {
73
+ width: 100vw !important;
74
+ }
75
+ }
76
+ `;
77
+ const ImageSearchBox = (0, _styledComponents.default)(_searchBox.SearchBox)`
78
+ margin-top: 10px;
79
+ `;
80
+ const ImageSelectionWrapper = _styledComponents.default.div`
81
+ overflow: auto;
82
+ margin-top: 10px;
83
+ `;
84
+ const ImageBlockMetaWrapper = _styledComponents.default.div``;
85
+ const ImageGridsWrapper = _styledComponents.default.div`
86
+ display: flex;
87
+ flex-wrap: wrap;
88
+ overflow: auto;
89
+ margin-top: 5px;
90
+ `;
91
+ const ImageGridWrapper = _styledComponents.default.div`
92
+ flex: 0 0 33.3333%;
93
+ cursor: pointer;
94
+ padding: 0 10px 10px;
95
+ `;
96
+ const ImageMetaGridsWrapper = _styledComponents.default.div`
97
+ display: flex;
98
+ flex-wrap: wrap;
99
+ overflow: auto;
100
+ `;
101
+ const ImageMetaGridWrapper = _styledComponents.default.div`
102
+ flex: 0 0 33.3333%;
103
+ cursor: pointer;
104
+ padding: 0 10px 10px;
105
+ `;
106
+ const Image = _styledComponents.default.img`
107
+ display: block;
108
+ width: 100%;
109
+ aspect-ratio: 2;
110
+ object-fit: cover;
111
+ `;
112
+ const Label = _styledComponents.default.label`
113
+ display: block;
114
+ margin: 10px 0;
115
+ font-weight: 600;
116
+ `;
117
+ const SeparationLine = _styledComponents.default.div`
118
+ border: #e1e5e9 1px solid;
119
+ margin-top: 10px;
120
+ margin-bottom: 10px;
121
+ `;
122
+ const ImageSelected = _styledComponents.default.div`
123
+ height: 1.4rem;
124
+ `;
125
+ const ErrorWrapper = _styledComponents.default.div`
126
+ & * {
127
+ margin: 0;
128
+ }
129
+ `;
130
+ const ImageName = _styledComponents.default.p`
131
+ text-align: center;
132
+ `;
133
+
134
+ function ImageGrids(props) {
135
+ const {
136
+ images,
137
+ selected,
138
+ onSelect
139
+ } = props;
140
+ return /*#__PURE__*/_react.default.createElement(ImageGridsWrapper, null, images.map(image => {
141
+ return /*#__PURE__*/_react.default.createElement(ImageGrid, {
142
+ key: image.id,
143
+ isSelected: !!(selected !== null && selected !== void 0 && selected.find(selectedImage => selectedImage.id === image.id)),
144
+ onSelect: () => onSelect(image),
145
+ image: image
146
+ });
147
+ }));
148
+ }
149
+
150
+ function ImageGrid(props) {
151
+ var _image$resized;
152
+
153
+ const {
154
+ image,
155
+ onSelect,
156
+ isSelected
157
+ } = props;
158
+ return /*#__PURE__*/_react.default.createElement(ImageGridWrapper, {
159
+ key: image === null || image === void 0 ? void 0 : image.id,
160
+ onClick: () => onSelect(image)
161
+ }, /*#__PURE__*/_react.default.createElement(ImageSelected, null, isSelected ? /*#__PURE__*/_react.default.createElement("i", {
162
+ className: "fas fa-check-circle"
163
+ }) : null), /*#__PURE__*/_react.default.createElement(Image, {
164
+ src: image === null || image === void 0 ? void 0 : (_image$resized = image.resized) === null || _image$resized === void 0 ? void 0 : _image$resized.w800,
165
+ onError: e => {
166
+ var _image$imageFile;
167
+
168
+ 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;
169
+ }
170
+ }));
171
+ }
172
+
173
+ function ImageMetaGrids(props) {
174
+ const {
175
+ imageMetas,
176
+ onChange,
177
+ enableCaption,
178
+ enableUrl
179
+ } = props;
180
+ return /*#__PURE__*/_react.default.createElement(ImageMetaGridsWrapper, null, imageMetas.map(imageMeta => {
181
+ var _imageMeta$image;
182
+
183
+ return /*#__PURE__*/_react.default.createElement(ImageMetaGrid, {
184
+ key: imageMeta === null || imageMeta === void 0 ? void 0 : (_imageMeta$image = imageMeta.image) === null || _imageMeta$image === void 0 ? void 0 : _imageMeta$image.id,
185
+ imageMeta: imageMeta,
186
+ enableCaption: enableCaption,
187
+ enableUrl: enableUrl,
188
+ onChange: onChange
189
+ });
190
+ }));
191
+ }
192
+
193
+ function ImageMetaGrid(props) {
194
+ var _image$resized2;
195
+
196
+ const {
197
+ imageMeta,
198
+ enableCaption,
199
+ enableUrl,
200
+ onChange
201
+ } = props;
202
+ const {
203
+ image,
204
+ desc,
205
+ url
206
+ } = imageMeta;
207
+ return /*#__PURE__*/_react.default.createElement(ImageMetaGridWrapper, null, /*#__PURE__*/_react.default.createElement(Image, {
208
+ src: image === null || image === void 0 ? void 0 : (_image$resized2 = image.resized) === null || _image$resized2 === void 0 ? void 0 : _image$resized2.w800,
209
+ onError: e => {
210
+ var _image$imageFile2;
211
+
212
+ 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;
213
+ }
214
+ }), /*#__PURE__*/_react.default.createElement(ImageName, null, image === null || image === void 0 ? void 0 : image.name), enableCaption && /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(Label, {
215
+ htmlFor: "caption"
216
+ }, "Image Caption:"), /*#__PURE__*/_react.default.createElement(_fields.TextInput, {
217
+ id: "caption",
218
+ type: "text",
219
+ placeholder: image === null || image === void 0 ? void 0 : image.name,
220
+ defaultValue: desc,
221
+ onChange: _.debounce(e => {
222
+ onChange({
223
+ image,
224
+ desc: e.target.value,
225
+ url
226
+ });
227
+ })
228
+ })), enableUrl && /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(Label, {
229
+ htmlFor: "url"
230
+ }, "Url:"), /*#__PURE__*/_react.default.createElement(_fields.TextInput, {
231
+ id: "url",
232
+ type: "text",
233
+ placeholder: "(Optional)",
234
+ defaultValue: url,
235
+ onChange: _.debounce(e => {
236
+ onChange({
237
+ image,
238
+ desc,
239
+ url: e.target.value
240
+ });
241
+ })
242
+ })));
243
+ }
244
+
245
+ function DelayInput(props) {
246
+ const {
247
+ delay,
248
+ onChange
249
+ } = props;
250
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(Label, null, "Slideshow delay:"), /*#__PURE__*/_react.default.createElement(_fields.TextInput, {
251
+ type: "number",
252
+ placeholder: "\u8ACB\u8F38\u5165\u81EA\u52D5\u5207\u63DB\u79D2\u6578",
253
+ step: "0.5",
254
+ min: "1",
255
+ value: delay,
256
+ onChange: e => {
257
+ onChange(e.target.value);
258
+ }
259
+ }));
260
+ }
261
+
262
+ function ImageSelector(props) {
263
+ const {
264
+ enableMultiSelect = false,
265
+ enableCaption = false,
266
+ enableUrl = false,
267
+ enableAlignment = false,
268
+ enableDelay = false,
269
+ onChange,
270
+ initialSelected = [],
271
+ initialAlign,
272
+ initialDelay
273
+ } = props;
274
+ const [queryImages, {
275
+ loading,
276
+ error,
277
+ data: {
278
+ photos: images = [],
279
+ photosCount: imagesCount = 0
280
+ } = {}
281
+ }] = (0, _apollo.useLazyQuery)(imagesQuery, {
282
+ fetchPolicy: 'no-cache'
283
+ });
284
+ const [currentPage, setCurrentPage] = (0, _react.useState)(0); // page starts with 1, 0 is used to detect initialization
285
+
286
+ const [searchText, setSearchText] = (0, _react.useState)('');
287
+ const [selected, setSelected] = (0, _react.useState)(initialSelected);
288
+ const [delay, setDelay] = (0, _react.useState)(initialDelay ?? '5');
289
+ const [align, setAlign] = (0, _react.useState)(initialAlign);
290
+ const contentWrapperRef = (0, _react.useRef)(null);
291
+ const pageSize = 18;
292
+ const options = [{
293
+ value: undefined,
294
+ label: 'default',
295
+ isDisabled: false
296
+ }, {
297
+ value: 'left',
298
+ label: 'left',
299
+ isDisabled: false
300
+ }, {
301
+ value: 'right',
302
+ label: 'right',
303
+ isDisabled: false
304
+ }];
305
+
306
+ const onSave = () => {
307
+ let adjustedDelay = +delay;
308
+ adjustedDelay = adjustedDelay < 1 ? 1 : adjustedDelay;
309
+ onChange(selected, align, adjustedDelay);
310
+ };
311
+
312
+ const onCancel = () => {
313
+ onChange([]);
314
+ };
315
+
316
+ const onSearchBoxChange = async searchInput => {
317
+ setSearchText(searchInput);
318
+ setCurrentPage(1);
319
+ };
320
+
321
+ const onDealyChange = delay => {
322
+ setDelay(delay);
323
+ };
324
+
325
+ const onAlignSelectChange = align => {
326
+ setAlign(align);
327
+ };
328
+
329
+ const onAlignSelectOpen = () => {
330
+ var _contentWrapperRef$cu;
331
+
332
+ const scrollWrapper = (_contentWrapperRef$cu = contentWrapperRef.current) === null || _contentWrapperRef$cu === void 0 ? void 0 : _contentWrapperRef$cu.parentElement;
333
+
334
+ if (scrollWrapper) {
335
+ scrollWrapper.scrollTop = scrollWrapper.scrollHeight;
336
+ }
337
+ };
338
+
339
+ const onImageMetaChange = imageEntityWithMeta => {
340
+ if (enableMultiSelect) {
341
+ const foundIndex = selected.findIndex(ele => {
342
+ var _ele$image, _imageEntityWithMeta$;
343
+
344
+ 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);
345
+ });
346
+
347
+ if (foundIndex !== -1) {
348
+ selected[foundIndex] = imageEntityWithMeta;
349
+ setSelected(selected);
350
+ }
351
+
352
+ return;
353
+ }
354
+
355
+ setSelected([imageEntityWithMeta]);
356
+ };
357
+
358
+ const onImagesGridSelect = imageEntity => {
359
+ setSelected(selected => {
360
+ const filterdSelected = selected.filter(ele => {
361
+ var _ele$image2;
362
+
363
+ return ((_ele$image2 = ele.image) === null || _ele$image2 === void 0 ? void 0 : _ele$image2.id) !== imageEntity.id;
364
+ }); // deselect the image
365
+
366
+ if (filterdSelected.length !== selected.length) {
367
+ return filterdSelected;
368
+ } // add new selected one
369
+
370
+
371
+ if (enableMultiSelect) {
372
+ return selected.concat([{
373
+ image: imageEntity,
374
+ desc: ''
375
+ }]);
376
+ } // single select
377
+
378
+
379
+ return [{
380
+ image: imageEntity,
381
+ desc: ''
382
+ }];
383
+ });
384
+ };
385
+
386
+ const selectedImages = selected.map(ele => {
387
+ return ele.image;
388
+ });
389
+ (0, _react.useEffect)(() => {
390
+ if (currentPage !== 0) {
391
+ queryImages({
392
+ variables: {
393
+ searchText: searchText,
394
+ skip: (currentPage - 1) * pageSize,
395
+ take: pageSize
396
+ }
397
+ });
398
+ }
399
+ }, [currentPage, searchText]);
400
+
401
+ let searchResult = /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(ImageGrids, {
402
+ images: images,
403
+ selected: selectedImages,
404
+ onSelect: onImagesGridSelect
405
+ }), /*#__PURE__*/_react.default.createElement(_pagination.Pagination, {
406
+ currentPage: currentPage,
407
+ total: imagesCount,
408
+ pageSize: pageSize,
409
+ onChange: pageIndex => {
410
+ setCurrentPage(pageIndex);
411
+ }
412
+ }));
413
+
414
+ if (loading) {
415
+ searchResult = /*#__PURE__*/_react.default.createElement("p", null, "searching...");
416
+ }
417
+
418
+ if (error) {
419
+ var _imagesQuery$loc, _imagesQuery$loc$sour;
420
+
421
+ 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 === null || imagesQuery === void 0 ? void 0 : (_imagesQuery$loc = imagesQuery.loc) === null || _imagesQuery$loc === void 0 ? void 0 : (_imagesQuery$loc$sour = _imagesQuery$loc.source) === null || _imagesQuery$loc$sour === void 0 ? void 0 : _imagesQuery$loc$sour.body)));
422
+ }
423
+
424
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(GlobalStyle, null), /*#__PURE__*/_react.default.createElement(_modals.DrawerController, {
425
+ isOpen: true
426
+ }, /*#__PURE__*/_react.default.createElement(_modals.Drawer, {
427
+ title: "Select images",
428
+ actions: {
429
+ cancel: {
430
+ label: 'Cancel',
431
+ action: onCancel
432
+ },
433
+ confirm: {
434
+ label: 'Confirm',
435
+ action: onSave
436
+ }
437
+ },
438
+ width: "narrow"
439
+ }, /*#__PURE__*/_react.default.createElement("div", {
440
+ ref: contentWrapperRef
441
+ }, /*#__PURE__*/_react.default.createElement(ImageSearchBox, {
442
+ onChange: onSearchBoxChange
443
+ }), /*#__PURE__*/_react.default.createElement(ImageSelectionWrapper, null, /*#__PURE__*/_react.default.createElement("div", null, searchResult), !!selected.length && /*#__PURE__*/_react.default.createElement(SeparationLine, null), /*#__PURE__*/_react.default.createElement(ImageMetaGrids, {
444
+ imageMetas: selected,
445
+ onChange: onImageMetaChange,
446
+ enableCaption: enableCaption,
447
+ enableUrl: enableUrl
448
+ })), /*#__PURE__*/_react.default.createElement(ImageBlockMetaWrapper, null, (enableDelay || enableAlignment) && /*#__PURE__*/_react.default.createElement(SeparationLine, null), enableDelay && /*#__PURE__*/_react.default.createElement(DelayInput, {
449
+ delay: delay,
450
+ onChange: onDealyChange
451
+ }), enableAlignment && /*#__PURE__*/_react.default.createElement(_alignSelector.AlignSelector // @ts-ignore: align could be undefined
452
+ , {
453
+ align: align // @ts-ignore: option with undefined value
454
+ ,
455
+ options: options,
456
+ onChange: onAlignSelectChange,
457
+ onOpen: onAlignSelectOpen
458
+ }))))));
459
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Pagination = Pagination;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ const PaginationWrapper = _styledComponents.default.div`
15
+ display: flex;
16
+ justify-content: end;
17
+ `;
18
+ const Arrows = _styledComponents.default.div`
19
+ display: flex;
20
+ `;
21
+ const ArrowButtonWrapper = _styledComponents.default.a`
22
+ color: #415269;
23
+ cursor: pointer;
24
+ ${({
25
+ disable
26
+ }) => {
27
+ if (disable) {
28
+ return `
29
+ pointer-events: none;
30
+ opacity: 0.65;
31
+ cursor: unset;
32
+ `;
33
+ }
34
+ }}
35
+ `;
36
+
37
+ function Pagination({
38
+ currentPage,
39
+ total,
40
+ pageSize,
41
+ onChange
42
+ }) {
43
+ const minPage = 1;
44
+ const limit = Math.ceil(total / pageSize);
45
+ 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.
47
+
48
+ if (total <= pageSize) return null;
49
+ 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
+ onClick: () => {
51
+ onChange(prevPage);
52
+ },
53
+ disable: prevPage < minPage
54
+ }, /*#__PURE__*/_react.default.createElement("svg", {
55
+ "aria-hidden": "true",
56
+ focusable: "false",
57
+ height: "24px",
58
+ width: "24px",
59
+ role: "img",
60
+ viewBox: "0 0 24 24",
61
+ xmlns: "http://www.w3.org/2000/svg",
62
+ className: "css-bztyua"
63
+ }, /*#__PURE__*/_react.default.createElement("polyline", {
64
+ points: "15 18 9 12 15 6"
65
+ }), ' ')), /*#__PURE__*/_react.default.createElement(ArrowButtonWrapper, {
66
+ onClick: () => {
67
+ onChange(nextPage);
68
+ },
69
+ disable: nextPage > limit
70
+ }, /*#__PURE__*/_react.default.createElement("svg", {
71
+ "aria-hidden": "true",
72
+ focusable: "false",
73
+ height: "24px",
74
+ width: "24px",
75
+ role: "img",
76
+ viewBox: "0 0 24 24",
77
+ xmlns: "http://www.w3.org/2000/svg",
78
+ className: "css-bztyua"
79
+ }, /*#__PURE__*/_react.default.createElement("polyline", {
80
+ points: "9 18 15 12 9 6"
81
+ })))));
82
+ }