@kids-reporter/draft-editor 0.1.0

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