@knovator/pagecreator 1.0.3 → 1.0.5

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 (3) hide show
  1. package/index.js +697 -0
  2. package/package.json +33 -26
  3. package/style.css +2 -0
package/index.js ADDED
@@ -0,0 +1,697 @@
1
+ import React, { Fragment, useState } from 'react';
2
+ import { Swiper, SwiperSlide } from 'swiper/react';
3
+ import { Pagination, Autoplay, Virtual } from 'swiper';
4
+ import { Tabs, TabList, Tab, TabPanel } from 'react-tabs';
5
+
6
+ var regeneratorRuntime$1 = {exports: {}};
7
+
8
+ var OverloadYield = {exports: {}};
9
+
10
+ (function (module) {
11
+ function _OverloadYield(e, d) {
12
+ this.v = e, this.k = d;
13
+ }
14
+ module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
15
+ }(OverloadYield));
16
+
17
+ var regenerator$1 = {exports: {}};
18
+
19
+ var regeneratorDefine = {exports: {}};
20
+
21
+ (function (module) {
22
+ function _regeneratorDefine(e, r, n, t) {
23
+ var i = Object.defineProperty;
24
+ try {
25
+ i({}, "", {});
26
+ } catch (e) {
27
+ i = 0;
28
+ }
29
+ module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
30
+ function o(r, n) {
31
+ _regeneratorDefine(e, r, function (e) {
32
+ return this._invoke(r, n, e);
33
+ });
34
+ }
35
+ r ? i ? i(e, r, {
36
+ value: n,
37
+ enumerable: !t,
38
+ configurable: !t,
39
+ writable: !t
40
+ }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
41
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
42
+ }
43
+ module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
44
+ }(regeneratorDefine));
45
+
46
+ (function (module) {
47
+ var regeneratorDefine$1 = regeneratorDefine.exports;
48
+ function _regenerator() {
49
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
50
+ var e,
51
+ t,
52
+ r = "function" == typeof Symbol ? Symbol : {},
53
+ n = r.iterator || "@@iterator",
54
+ o = r.toStringTag || "@@toStringTag";
55
+ function i(r, n, o, i) {
56
+ var c = n && n.prototype instanceof Generator ? n : Generator,
57
+ u = Object.create(c.prototype);
58
+ return regeneratorDefine$1(u, "_invoke", function (r, n, o) {
59
+ var i,
60
+ c,
61
+ u,
62
+ f = 0,
63
+ p = o || [],
64
+ y = !1,
65
+ G = {
66
+ p: 0,
67
+ n: 0,
68
+ v: e,
69
+ a: d,
70
+ f: d.bind(e, 4),
71
+ d: function d(t, r) {
72
+ return i = t, c = 0, u = e, G.n = r, a;
73
+ }
74
+ };
75
+ function d(r, n) {
76
+ for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
77
+ var o,
78
+ i = p[t],
79
+ d = G.p,
80
+ l = i[2];
81
+ r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
82
+ }
83
+ if (o || r > 1) return a;
84
+ throw y = !0, n;
85
+ }
86
+ return function (o, p, l) {
87
+ if (f > 1) throw TypeError("Generator is already running");
88
+ for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
89
+ i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
90
+ try {
91
+ if (f = 2, i) {
92
+ if (c || (o = "next"), t = i[o]) {
93
+ if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
94
+ if (!t.done) return t;
95
+ u = t.value, c < 2 && (c = 0);
96
+ } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
97
+ i = e;
98
+ } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
99
+ } catch (t) {
100
+ i = e, c = 1, u = t;
101
+ } finally {
102
+ f = 1;
103
+ }
104
+ }
105
+ return {
106
+ value: t,
107
+ done: y
108
+ };
109
+ };
110
+ }(r, o, i), !0), u;
111
+ }
112
+ var a = {};
113
+ function Generator() {}
114
+ function GeneratorFunction() {}
115
+ function GeneratorFunctionPrototype() {}
116
+ t = Object.getPrototypeOf;
117
+ var c = [][n] ? t(t([][n]())) : (regeneratorDefine$1(t = {}, n, function () {
118
+ return this;
119
+ }), t),
120
+ u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
121
+ function f(e) {
122
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine$1(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
123
+ }
124
+ return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine$1(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine$1(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine$1(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine$1(u), regeneratorDefine$1(u, o, "Generator"), regeneratorDefine$1(u, n, function () {
125
+ return this;
126
+ }), regeneratorDefine$1(u, "toString", function () {
127
+ return "[object Generator]";
128
+ }), (module.exports = _regenerator = function _regenerator() {
129
+ return {
130
+ w: i,
131
+ m: f
132
+ };
133
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
134
+ }
135
+ module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
136
+ }(regenerator$1));
137
+
138
+ var regeneratorAsync = {exports: {}};
139
+
140
+ var regeneratorAsyncGen = {exports: {}};
141
+
142
+ var regeneratorAsyncIterator = {exports: {}};
143
+
144
+ (function (module) {
145
+ var OverloadYield$1 = OverloadYield.exports;
146
+ var regeneratorDefine$1 = regeneratorDefine.exports;
147
+ function AsyncIterator(t, e) {
148
+ function n(r, o, i, f) {
149
+ try {
150
+ var c = t[r](o),
151
+ u = c.value;
152
+ return u instanceof OverloadYield$1 ? e.resolve(u.v).then(function (t) {
153
+ n("next", t, i, f);
154
+ }, function (t) {
155
+ n("throw", t, i, f);
156
+ }) : e.resolve(u).then(function (t) {
157
+ c.value = t, i(c);
158
+ }, function (t) {
159
+ return n("throw", t, i, f);
160
+ });
161
+ } catch (t) {
162
+ f(t);
163
+ }
164
+ }
165
+ var r;
166
+ this.next || (regeneratorDefine$1(AsyncIterator.prototype), regeneratorDefine$1(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
167
+ return this;
168
+ })), regeneratorDefine$1(this, "_invoke", function (t, o, i) {
169
+ function f() {
170
+ return new e(function (e, r) {
171
+ n(t, i, e, r);
172
+ });
173
+ }
174
+ return r = r ? r.then(f, f) : f();
175
+ }, !0);
176
+ }
177
+ module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
178
+ }(regeneratorAsyncIterator));
179
+
180
+ (function (module) {
181
+ var regenerator = regenerator$1.exports;
182
+ var regeneratorAsyncIterator$1 = regeneratorAsyncIterator.exports;
183
+ function _regeneratorAsyncGen(r, e, t, o, n) {
184
+ return new regeneratorAsyncIterator$1(regenerator().w(r, e, t, o), n || Promise);
185
+ }
186
+ module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
187
+ }(regeneratorAsyncGen));
188
+
189
+ (function (module) {
190
+ var regeneratorAsyncGen$1 = regeneratorAsyncGen.exports;
191
+ function _regeneratorAsync(n, e, r, t, o) {
192
+ var a = regeneratorAsyncGen$1(n, e, r, t, o);
193
+ return a.next().then(function (n) {
194
+ return n.done ? n.value : a.next();
195
+ });
196
+ }
197
+ module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
198
+ }(regeneratorAsync));
199
+
200
+ var regeneratorKeys = {exports: {}};
201
+
202
+ (function (module) {
203
+ function _regeneratorKeys(e) {
204
+ var n = Object(e),
205
+ r = [];
206
+ for (var t in n) r.unshift(t);
207
+ return function e() {
208
+ for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
209
+ return e.done = !0, e;
210
+ };
211
+ }
212
+ module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
213
+ }(regeneratorKeys));
214
+
215
+ var regeneratorValues = {exports: {}};
216
+
217
+ var _typeof = {exports: {}};
218
+
219
+ (function (module) {
220
+ function _typeof(o) {
221
+ "@babel/helpers - typeof";
222
+
223
+ return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
224
+ return typeof o;
225
+ } : function (o) {
226
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
227
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
228
+ }
229
+ module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
230
+ }(_typeof));
231
+
232
+ (function (module) {
233
+ var _typeof$1 = _typeof.exports["default"];
234
+ function _regeneratorValues(e) {
235
+ if (null != e) {
236
+ var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
237
+ r = 0;
238
+ if (t) return t.call(e);
239
+ if ("function" == typeof e.next) return e;
240
+ if (!isNaN(e.length)) return {
241
+ next: function next() {
242
+ return e && r >= e.length && (e = void 0), {
243
+ value: e && e[r++],
244
+ done: !e
245
+ };
246
+ }
247
+ };
248
+ }
249
+ throw new TypeError(_typeof$1(e) + " is not iterable");
250
+ }
251
+ module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
252
+ }(regeneratorValues));
253
+
254
+ (function (module) {
255
+ var OverloadYield$1 = OverloadYield.exports;
256
+ var regenerator = regenerator$1.exports;
257
+ var regeneratorAsync$1 = regeneratorAsync.exports;
258
+ var regeneratorAsyncGen$1 = regeneratorAsyncGen.exports;
259
+ var regeneratorAsyncIterator$1 = regeneratorAsyncIterator.exports;
260
+ var regeneratorKeys$1 = regeneratorKeys.exports;
261
+ var regeneratorValues$1 = regeneratorValues.exports;
262
+ function _regeneratorRuntime() {
263
+
264
+ var r = regenerator(),
265
+ e = r.m(_regeneratorRuntime),
266
+ t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
267
+ function n(r) {
268
+ var e = "function" == typeof r && r.constructor;
269
+ return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
270
+ }
271
+ var o = {
272
+ "throw": 1,
273
+ "return": 2,
274
+ "break": 3,
275
+ "continue": 3
276
+ };
277
+ function a(r) {
278
+ var e, t;
279
+ return function (n) {
280
+ e || (e = {
281
+ stop: function stop() {
282
+ return t(n.a, 2);
283
+ },
284
+ "catch": function _catch() {
285
+ return n.v;
286
+ },
287
+ abrupt: function abrupt(r, e) {
288
+ return t(n.a, o[r], e);
289
+ },
290
+ delegateYield: function delegateYield(r, o, a) {
291
+ return e.resultName = o, t(n.d, regeneratorValues$1(r), a);
292
+ },
293
+ finish: function finish(r) {
294
+ return t(n.f, r);
295
+ }
296
+ }, t = function t(r, _t, o) {
297
+ n.p = e.prev, n.n = e.next;
298
+ try {
299
+ return r(_t, o);
300
+ } finally {
301
+ e.next = n.n;
302
+ }
303
+ }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
304
+ try {
305
+ return r.call(this, e);
306
+ } finally {
307
+ n.p = e.prev, n.n = e.next;
308
+ }
309
+ };
310
+ }
311
+ return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
312
+ return {
313
+ wrap: function wrap(e, t, n, o) {
314
+ return r.w(a(e), t, n, o && o.reverse());
315
+ },
316
+ isGeneratorFunction: n,
317
+ mark: r.m,
318
+ awrap: function awrap(r, e) {
319
+ return new OverloadYield$1(r, e);
320
+ },
321
+ AsyncIterator: regeneratorAsyncIterator$1,
322
+ async: function async(r, e, t, o, u) {
323
+ return (n(e) ? regeneratorAsyncGen$1 : regeneratorAsync$1)(a(r), e, t, o, u);
324
+ },
325
+ keys: regeneratorKeys$1,
326
+ values: regeneratorValues$1
327
+ };
328
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
329
+ }
330
+ module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
331
+ }(regeneratorRuntime$1));
332
+
333
+ // TODO(Babel 8): Remove this file.
334
+
335
+ var runtime = regeneratorRuntime$1.exports();
336
+ var regenerator = runtime;
337
+
338
+ // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
339
+ try {
340
+ regeneratorRuntime = runtime;
341
+ } catch (accidentalStrictMode) {
342
+ if (typeof globalThis === "object") {
343
+ globalThis.regeneratorRuntime = runtime;
344
+ } else {
345
+ Function("r", "regeneratorRuntime = r")(runtime);
346
+ }
347
+ }
348
+
349
+ /******************************************************************************
350
+ Copyright (c) Microsoft Corporation.
351
+
352
+ Permission to use, copy, modify, and/or distribute this software for any
353
+ purpose with or without fee is hereby granted.
354
+
355
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
356
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
357
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
358
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
359
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
360
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
361
+ PERFORMANCE OF THIS SOFTWARE.
362
+ ***************************************************************************** */
363
+
364
+ function __awaiter(thisArg, _arguments, P, generator) {
365
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
366
+ return new (P || (P = Promise))(function (resolve, reject) {
367
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
368
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
369
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
370
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
371
+ });
372
+ }
373
+
374
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
375
+ var e = new Error(message);
376
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
377
+ };
378
+
379
+ var _a;
380
+ function getData(_ref) {
381
+ var url = _ref.url,
382
+ code = _ref.code,
383
+ token = _ref.token;
384
+ return __awaiter(this, void 0, void 0, /*#__PURE__*/regenerator.mark(function _callee() {
385
+ var response, data;
386
+ return regenerator.wrap(function _callee$(_context) {
387
+ while (1) {
388
+ switch (_context.prev = _context.next) {
389
+ case 0:
390
+ _context.next = 2;
391
+ return fetch(url, {
392
+ method: 'POST',
393
+ headers: {
394
+ 'Content-Type': 'application/json',
395
+ Authorization: token ? "Bearer ".concat(token) : ''
396
+ },
397
+ body: JSON.stringify({
398
+ code: code
399
+ })
400
+ });
401
+ case 2:
402
+ response = _context.sent;
403
+ if (response.ok) {
404
+ _context.next = 5;
405
+ break;
406
+ }
407
+ throw new Error(response.statusText);
408
+ case 5:
409
+ _context.next = 7;
410
+ return response.json();
411
+ case 7:
412
+ data = _context.sent;
413
+ return _context.abrupt("return", data['data']);
414
+ case 9:
415
+ case "end":
416
+ return _context.stop();
417
+ }
418
+ }
419
+ }, _callee);
420
+ }));
421
+ }
422
+ function buildSrcSets(imageBaseUrl, srcSets) {
423
+ if (!srcSets) return '';
424
+ if (!imageBaseUrl) return srcSets;
425
+ return srcSets.split(', ').map(function (srcSetItem) {
426
+ return "".concat(imageBaseUrl).concat(srcSetItem);
427
+ }).join(', ');
428
+ }
429
+ var isMobileDevice = typeof window !== 'undefined' && /Mobi/i.test((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent);
430
+ var filterItemData = function filterItemData(data) {
431
+ return isMobileDevice ? data.itemType === 'Mobile' : data.itemType === 'Web';
432
+ };
433
+
434
+ function FixedWidget(_ref) {
435
+ var widgetData = _ref.widgetData,
436
+ formatItem = _ref.formatItem,
437
+ className = _ref.className,
438
+ itemsContainer = _ref.itemsContainer;
439
+ var gridClasses = "grid grid-cols-".concat(widgetData.mobilePerRow, " md:grid-cols-").concat(widgetData.tabletPerRow, " lg:grid-cols-").concat(widgetData.webPerRow);
440
+ if (typeof itemsContainer === 'function') return itemsContainer(widgetData.itemsType === 'Image' ? widgetData.items.filter(filterItemData).map(function (item, index) {
441
+ return /*#__PURE__*/React.createElement(Fragment, {
442
+ key: index
443
+ }, formatItem(item));
444
+ }) : widgetData.collectionItems.map(function (item, index) {
445
+ return /*#__PURE__*/React.createElement(Fragment, {
446
+ key: index
447
+ }, formatItem(item));
448
+ }));
449
+ return /*#__PURE__*/React.createElement("div", {
450
+ className: className || gridClasses
451
+ }, widgetData.itemsType === 'Image' ? widgetData.items.filter(filterItemData).map(function (item, index) {
452
+ return /*#__PURE__*/React.createElement(Fragment, {
453
+ key: index
454
+ }, formatItem(item));
455
+ }) : widgetData.collectionItems.map(function (item, index) {
456
+ return /*#__PURE__*/React.createElement(Fragment, {
457
+ key: index
458
+ }, formatItem(item));
459
+ }));
460
+ }
461
+
462
+ function CarouselWidget(_ref) {
463
+ var widgetData = _ref.widgetData,
464
+ formatItem = _ref.formatItem,
465
+ settings = _ref.settings,
466
+ className = _ref.className,
467
+ itemsContainer = _ref.itemsContainer;
468
+ var defaultSetting = {
469
+ slidesPerView: widgetData.mobilePerRow,
470
+ loop: true,
471
+ loopAdditionalSlides: 2,
472
+ speed: 5000,
473
+ breakpoints: {
474
+ 640: {
475
+ slidesPerView: widgetData.mobilePerRow,
476
+ spaceBetween: 20
477
+ },
478
+ 768: {
479
+ slidesPerView: widgetData.tabletPerRow,
480
+ spaceBetween: 40
481
+ },
482
+ 1024: {
483
+ slidesPerView: widgetData.webPerRow,
484
+ spaceBetween: 50
485
+ }
486
+ }
487
+ };
488
+ if (!widgetData) return null;
489
+ if (typeof itemsContainer === 'function') return itemsContainer(widgetData.itemsType === 'Image' ? widgetData.items.filter(filterItemData).map(function (item, index) {
490
+ return /*#__PURE__*/React.createElement(Fragment, {
491
+ key: index
492
+ }, formatItem(item));
493
+ }) : widgetData.collectionItems.map(function (item, index) {
494
+ return /*#__PURE__*/React.createElement(Fragment, {
495
+ key: index
496
+ }, formatItem(item));
497
+ }));
498
+ return /*#__PURE__*/React.createElement(Swiper, Object.assign({}, Object.assign(Object.assign({}, defaultSetting), settings || {}), {
499
+ className: className,
500
+ modules: [Pagination, Autoplay, Virtual],
501
+ virtual: typeof window === 'undefined'
502
+ }), widgetData.itemsType === 'Image' ? widgetData.items.filter(filterItemData).map(function (item, index) {
503
+ return /*#__PURE__*/React.createElement(SwiperSlide, {
504
+ key: index
505
+ }, formatItem(item));
506
+ }) : widgetData.collectionItems.map(function (item, index) {
507
+ return /*#__PURE__*/React.createElement(SwiperSlide, {
508
+ key: index
509
+ }, formatItem(item));
510
+ }));
511
+ }
512
+
513
+ function Banner(_ref) {
514
+ var imageAltText = _ref.imageAltText,
515
+ imageUrl = _ref.imageUrl,
516
+ _onClick = _ref.onClick,
517
+ srcSets = _ref.srcSets,
518
+ title = _ref.title,
519
+ subtitle = _ref.subtitle;
520
+ return /*#__PURE__*/React.createElement("div", {
521
+ className: "kpc_banner"
522
+ }, /*#__PURE__*/React.createElement("b", null, title), subtitle ? /*#__PURE__*/React.createElement("p", null, subtitle) : null, /*#__PURE__*/React.createElement("img", {
523
+ src: imageUrl,
524
+ alt: imageAltText,
525
+ className: "kpc_banner-image",
526
+ srcSet: srcSets,
527
+ loading: "lazy",
528
+ onClick: function onClick() {
529
+ return _onClick && _onClick();
530
+ }
531
+ }));
532
+ }
533
+
534
+ function CollectionItem(_ref) {
535
+ var name = _ref.name,
536
+ _onClick = _ref.onClick;
537
+ return /*#__PURE__*/React.createElement("div", {
538
+ className: "kpc_item",
539
+ onClick: function onClick() {
540
+ return _onClick && _onClick();
541
+ }
542
+ }, /*#__PURE__*/React.createElement("p", {
543
+ className: "kpc_item-text"
544
+ }, name || 'Laurem Ipsum'));
545
+ }
546
+
547
+ function TabWidget(_ref) {
548
+ var widgetData = _ref.widgetData,
549
+ formatItem = _ref.formatItem,
550
+ className = _ref.className,
551
+ formatTabTitle = _ref.formatTabTitle,
552
+ itemsContainer = _ref.itemsContainer;
553
+ var _useState = useState(0),
554
+ activeTab = _useState[0],
555
+ setActiveTab = _useState[1];
556
+ var gridClasses = "grid grid-cols-".concat(widgetData.mobilePerRow, " md:grid-cols-").concat(widgetData.tabletPerRow, " lg:grid-cols-").concat(widgetData.webPerRow);
557
+ return /*#__PURE__*/React.createElement(Tabs, {
558
+ selectedIndex: activeTab,
559
+ onSelect: setActiveTab
560
+ }, /*#__PURE__*/React.createElement(TabList, null, widgetData.tabs.map(function (tab, index) {
561
+ return /*#__PURE__*/React.createElement(Tab, {
562
+ key: index
563
+ }, formatTabTitle(tab.names || tab.name, tab.collectionItems, activeTab === index));
564
+ })), widgetData.tabs.map(function (tab, index) {
565
+ return /*#__PURE__*/React.createElement(TabPanel, {
566
+ key: index
567
+ }, typeof itemsContainer === 'function' ? itemsContainer(tab.collectionItems.map(function (item, index) {
568
+ return /*#__PURE__*/React.createElement(Fragment, {
569
+ key: index
570
+ }, formatItem(item));
571
+ })) : (/*#__PURE__*/React.createElement("div", {
572
+ className: className || gridClasses
573
+ }, tab.collectionItems.map(function (item, index) {
574
+ return /*#__PURE__*/React.createElement(Fragment, {
575
+ key: index
576
+ }, formatItem(item));
577
+ }))));
578
+ }));
579
+ }
580
+
581
+ function Widget(_ref) {
582
+ var widgetData = _ref.widgetData,
583
+ imageBaseUrl = _ref.imageBaseUrl,
584
+ formatItem = _ref.formatItem,
585
+ _onClick = _ref.onClick,
586
+ settings = _ref.settings,
587
+ hideTitle = _ref.hideTitle,
588
+ className = _ref.className,
589
+ formatFooter = _ref.formatFooter,
590
+ formatHeader = _ref.formatHeader,
591
+ formatTabTitle = _ref.formatTabTitle,
592
+ itemsContainer = _ref.itemsContainer;
593
+ var formatItems = function formatItems(item) {
594
+ var _a;
595
+ // If user provides a custom formatItem function, use it
596
+ if (typeof formatItem === 'function' && formatItem) return formatItem(item);
597
+ // Default rendering for Image type items
598
+ if (widgetData.itemsType === 'Image') return /*#__PURE__*/React.createElement(Banner, {
599
+ key: item._id,
600
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
601
+ // @ts-ignore
602
+ imageUrl: "".concat(imageBaseUrl || '').concat((_a = item.image) === null || _a === void 0 ? void 0 : _a.uri),
603
+ imageAltText: item._id,
604
+ onClick: function onClick() {
605
+ return _onClick && _onClick(item);
606
+ },
607
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
608
+ // @ts-ignore
609
+ srcSets: buildSrcSets(imageBaseUrl, item.srcSets),
610
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
611
+ // @ts-ignore
612
+ title: item.title,
613
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
614
+ // @ts-ignore
615
+ subtitle: item.subtitle
616
+ });
617
+ // Default fallback for collection items - renders basic info
618
+ return /*#__PURE__*/React.createElement(CollectionItem, Object.assign({
619
+ key: item._id,
620
+ onClick: function onClick() {
621
+ return _onClick && _onClick(item);
622
+ }
623
+ }, item));
624
+ };
625
+ var formatTabTitles = function formatTabTitles(title, collectionData, isActive) {
626
+ if (typeof formatTabTitle === 'function' && formatTabTitle) return formatTabTitle(title, collectionData, isActive);
627
+ return /*#__PURE__*/React.createElement("div", null, typeof title === 'string' ? title : JSON.stringify(title));
628
+ };
629
+ if (!widgetData) return null;
630
+ return /*#__PURE__*/React.createElement("div", {
631
+ className: "kpc_widget",
632
+ style: {
633
+ backgroundColor: widgetData.backgroundColor
634
+ }
635
+ }, hideTitle === true ? null : typeof formatHeader === 'function' ? formatHeader(widgetData.widgetTitles || widgetData.widgetTitle, widgetData) : (/*#__PURE__*/React.createElement("h2", {
636
+ className: "kpc_widget-title",
637
+ dangerouslySetInnerHTML: {
638
+ __html: widgetData.widgetTitles ? JSON.stringify(widgetData.widgetTitles) : widgetData.widgetTitle
639
+ }
640
+ })), /*#__PURE__*/React.createElement("div", {
641
+ className: "kpc_widget-body"
642
+ }, widgetData.widgetType === 'Carousel' ? (/*#__PURE__*/React.createElement(CarouselWidget, {
643
+ settings: settings,
644
+ widgetData: widgetData,
645
+ formatItem: formatItems,
646
+ className: className,
647
+ formatTabTitle: formatTabTitles,
648
+ itemsContainer: itemsContainer
649
+ })) : widgetData.widgetType === 'Tabs' ? (/*#__PURE__*/React.createElement(TabWidget, {
650
+ formatItem: formatItems,
651
+ formatTabTitle: formatTabTitles,
652
+ widgetData: widgetData,
653
+ className: className,
654
+ itemsContainer: itemsContainer
655
+ })) : (/*#__PURE__*/React.createElement(FixedWidget, {
656
+ widgetData: widgetData,
657
+ formatItem: formatItems,
658
+ className: className,
659
+ formatTabTitle: formatTabTitles,
660
+ itemsContainer: itemsContainer
661
+ }))), typeof formatFooter === 'function' ? formatFooter(widgetData) : null);
662
+ }
663
+
664
+ function Page(_ref) {
665
+ var title = _ref.title,
666
+ imageBaseUrl = _ref.imageBaseUrl,
667
+ pageData = _ref.pageData,
668
+ formatItem = _ref.formatItem,
669
+ onClick = _ref.onClick,
670
+ formatWidget = _ref.formatWidget,
671
+ hideWidgetTitles = _ref.hideWidgetTitles;
672
+ if (!pageData) return null;
673
+ return /*#__PURE__*/React.createElement("div", {
674
+ className: "kpc_page"
675
+ }, title && /*#__PURE__*/React.createElement("h1", {
676
+ className: "kpc_page-title"
677
+ }, title), /*#__PURE__*/React.createElement("div", {
678
+ className: "kpc_page-widgets"
679
+ }, pageData.widgets.map(function (widgetData, index) {
680
+ return typeof formatWidget === 'function' ? (/*#__PURE__*/React.createElement(Fragment, {
681
+ key: index
682
+ }, formatWidget(widgetData, index))) : (/*#__PURE__*/React.createElement(Widget, {
683
+ widgetData: widgetData,
684
+ key: index,
685
+ imageBaseUrl: imageBaseUrl,
686
+ hideTitle: hideWidgetTitles === true,
687
+ formatItem: formatItem && function (itemData) {
688
+ return formatItem(widgetData.code, itemData);
689
+ },
690
+ onClick: onClick && function (itemData) {
691
+ return onClick(widgetData.code, itemData);
692
+ }
693
+ }));
694
+ })));
695
+ }
696
+
697
+ export { Page, Widget, getData };
package/package.json CHANGED
@@ -1,26 +1,33 @@
1
- {
2
- "name": "@knovator/pagecreator",
3
- "version": "1.0.3",
4
- "repository": {
5
- "type": "git",
6
- "url": "git@github.com:knovator/pagecreator.git"
7
- },
8
- "keywords": [
9
- "pagecreator",
10
- "pagebuilder",
11
- "knovator",
12
- "chavda-bhavik"
13
- ],
14
- "author": "knovator (https://knovator.com/)",
15
- "dependencies": {
16
- "swiper": "^8.4.5",
17
- "react-tabs": "^6.0.0"
18
- },
19
- "files": [
20
- "lib",
21
- "package.json",
22
- "README.md",
23
- "style.css",
24
- "index.js"
25
- ]
26
- }
1
+ {
2
+ "name": "@knovator/pagecreator",
3
+ "version": "1.0.5",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "git@github.com:knovator/pagecreator.git"
7
+ },
8
+ "keywords": [
9
+ "pagecreator",
10
+ "pagebuilder",
11
+ "knovator",
12
+ "chavda-bhavik"
13
+ ],
14
+ "author": "knovator (https://knovator.com/)",
15
+ "dependencies": {
16
+ "swiper": "^8.4.5",
17
+ "react-tabs": "^6.0.0"
18
+ },
19
+ "files": [
20
+ "lib",
21
+ "package.json",
22
+ "README.md",
23
+ "style.css",
24
+ "index.js"
25
+ ],
26
+ "module": "./index.js",
27
+ "main": "./index.js",
28
+ "type": "module",
29
+ "types": "./src\\index.d.ts",
30
+ "peerDependencies": {
31
+ "react": "18.2.0"
32
+ }
33
+ }
package/style.css ADDED
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */
2
+ @import "swiper/swiper-bundle.min.css";@import "react-tabs/style/react-tabs.css";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-font-weight:initial;--tw-border-style:solid;--tw-space-y-reverse:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-md:.375rem;--radius-lg:.5rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.grid{display:grid}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}}.kpc_widget-title{margin-bottom:calc(var(--spacing)*2);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.kpc_simple-card{gap:calc(var(--spacing)*2);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-400);padding:calc(var(--spacing)*3);flex-direction:column;display:flex;overflow:hidden}.kpc_simple-card-heading{flex-shrink:0}.kpc_simple-card-image{aspect-ratio:1;border-radius:var(--radius-md);object-fit:cover}.kpc_simple-card-body{width:100%;display:contents}.kpc_simple-card-label{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-gray-600);overflow:hidden}.kpc_simple-card-content{justify-content:space-between;align-items:center;width:100%}.kpc_simple-card-title{text-align:center;font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.kpc_simple-card-subtitle{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-gray-600)}.kpc_banner{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-500);padding:calc(var(--spacing)*1)}.kpc_banner-image{aspect-ratio:1;width:100%;height:100%}.kpc_page-title{margin-bottom:calc(var(--spacing)*2);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}:where(.kpc_page-widgets>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}.kpc_item{border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-gray-500);padding:calc(var(--spacing)*2)}.kpc_item-text{text-align:center;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}