@tradly/asset 1.0.13 → 1.0.15

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 (76) hide show
  1. package/README.md +414 -13
  2. package/dist/components/FileUpload.js +8 -254
  3. package/dist/components/FileUpload.native.js +13 -0
  4. package/dist/components/Icons.js +10 -33
  5. package/dist/components/Icons.native.js +16 -0
  6. package/dist/components/ImagesSkeleton.js +7 -15
  7. package/dist/components/ImagesSkeleton.native.js +13 -0
  8. package/dist/components/MediaGallery.js +8 -148
  9. package/dist/components/MediaGallery.native.js +13 -0
  10. package/dist/components/MediaPopup.js +8 -99
  11. package/dist/components/MediaPopup.native.js +13 -0
  12. package/dist/components/MediaTab.js +7 -180
  13. package/dist/components/MediaTab.native.js +13 -0
  14. package/dist/components/Pagination.js +8 -136
  15. package/dist/components/Pagination.native.js +13 -0
  16. package/dist/components/VideosGallery.js +8 -148
  17. package/dist/components/VideosGallery.native.js +13 -0
  18. package/dist/core/MediaApiService.js +396 -0
  19. package/dist/esm/components/FileUpload.js +1 -253
  20. package/dist/esm/components/FileUpload.native.js +1 -0
  21. package/dist/esm/components/Icons.js +1 -32
  22. package/dist/esm/components/Icons.native.js +1 -0
  23. package/dist/esm/components/ImagesSkeleton.js +1 -14
  24. package/dist/esm/components/ImagesSkeleton.native.js +1 -0
  25. package/dist/esm/components/MediaGallery.js +1 -144
  26. package/dist/esm/components/MediaGallery.native.js +1 -0
  27. package/dist/esm/components/MediaPopup.js +1 -97
  28. package/dist/esm/components/MediaPopup.native.js +1 -0
  29. package/dist/esm/components/MediaTab.js +1 -177
  30. package/dist/esm/components/MediaTab.native.js +1 -0
  31. package/dist/esm/components/Pagination.js +1 -134
  32. package/dist/esm/components/Pagination.native.js +1 -0
  33. package/dist/esm/components/VideosGallery.js +1 -144
  34. package/dist/esm/components/VideosGallery.native.js +1 -0
  35. package/dist/esm/core/MediaApiService.js +390 -0
  36. package/dist/esm/index.js +4 -1
  37. package/dist/esm/native/FileUpload.native.js +310 -0
  38. package/dist/esm/native/Icons.native.js +51 -0
  39. package/dist/esm/native/ImagesSkeleton.native.js +45 -0
  40. package/dist/esm/native/MediaGallery.native.js +228 -0
  41. package/dist/esm/native/MediaPopup.native.js +170 -0
  42. package/dist/esm/native/MediaTab.native.js +192 -0
  43. package/dist/esm/native/Pagination.native.js +210 -0
  44. package/dist/esm/native/THEME_EXAMPLE.js +112 -0
  45. package/dist/esm/native/VideosGallery.native.js +240 -0
  46. package/dist/esm/native/theme.js +167 -0
  47. package/dist/esm/services/apiService.js +1 -372
  48. package/dist/esm/web/FileUpload.web.js +253 -0
  49. package/dist/esm/web/Icons.web.js +32 -0
  50. package/dist/esm/web/ImagesSkeleton.web.js +14 -0
  51. package/dist/esm/web/MediaGallery.web.js +144 -0
  52. package/dist/esm/web/MediaPopup.web.js +97 -0
  53. package/dist/esm/web/MediaTab.web.js +177 -0
  54. package/dist/esm/web/Pagination.web.js +134 -0
  55. package/dist/esm/web/VideosGallery.web.js +144 -0
  56. package/dist/index.js +16 -2
  57. package/dist/native/FileUpload.native.js +316 -0
  58. package/dist/native/Icons.native.js +59 -0
  59. package/dist/native/ImagesSkeleton.native.js +52 -0
  60. package/dist/native/MediaGallery.native.js +237 -0
  61. package/dist/native/MediaPopup.native.js +177 -0
  62. package/dist/native/MediaTab.native.js +201 -0
  63. package/dist/native/Pagination.native.js +217 -0
  64. package/dist/native/THEME_EXAMPLE.js +117 -0
  65. package/dist/native/VideosGallery.native.js +248 -0
  66. package/dist/native/theme.js +173 -0
  67. package/dist/services/apiService.js +2 -372
  68. package/dist/web/FileUpload.web.js +259 -0
  69. package/dist/web/Icons.web.js +39 -0
  70. package/dist/web/ImagesSkeleton.web.js +21 -0
  71. package/dist/web/MediaGallery.web.js +153 -0
  72. package/dist/web/MediaPopup.web.js +104 -0
  73. package/dist/web/MediaTab.web.js +186 -0
  74. package/dist/web/Pagination.web.js +141 -0
  75. package/dist/web/VideosGallery.web.js +153 -0
  76. package/package.json +3 -2
@@ -3,102 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _reactDom = require("react-dom");
9
- var _MediaTab = _interopRequireDefault(require("./MediaTab"));
10
- var _Icons = require("./Icons");
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- var MediaPopup = function MediaPopup(_ref) {
14
- var isOpen = _ref.isOpen,
15
- onClose = _ref.onClose,
16
- onSelect = _ref.onSelect,
17
- currentData = _ref.currentData,
18
- _ref$options = _ref.options,
19
- options = _ref$options === void 0 ? ['image'] : _ref$options,
20
- apiService = _ref.apiService,
21
- onError = _ref.onError,
22
- _ref$title = _ref.title,
23
- title = _ref$title === void 0 ? 'Media Gallery' : _ref$title,
24
- className = _ref.className,
25
- overlayClassName = _ref.overlayClassName,
26
- containerClassName = _ref.containerClassName,
27
- headerClassName = _ref.headerClassName,
28
- titleClassName = _ref.titleClassName,
29
- closeButtonClassName = _ref.closeButtonClassName,
30
- tabListClassName = _ref.tabListClassName,
31
- tabButtonClassName = _ref.tabButtonClassName,
32
- tabButtonActiveClassName = _ref.tabButtonActiveClassName,
33
- tabButtonInactiveClassName = _ref.tabButtonInactiveClassName,
34
- tabPanelClassName = _ref.tabPanelClassName,
35
- gridClassName = _ref.gridClassName,
36
- imageItemClassName = _ref.imageItemClassName,
37
- videoItemClassName = _ref.videoItemClassName,
38
- paginationContainerClassName = _ref.paginationContainerClassName;
39
- if (!isOpen) return null;
40
- var handleUpdate = function handleUpdate(data) {
41
- if (onSelect) {
42
- onSelect(data);
43
- }
44
- };
45
- var handleClose = function handleClose() {
46
- if (onClose) {
47
- onClose();
48
- }
49
- };
50
-
51
- // Default classes with customization support
52
- var defaultOverlayClass = 'fixed inset-0 w-screen h-screen bg-black opacity-10';
53
- var defaultContainerClass = 'origin-top-right z-[9999] absolute inset-0 max-w-3xl mx-auto my-auto min-h-[200px] h-[600px] bg-white rounded shadow-inner cursor-auto p-6';
54
- var defaultHeaderClass = 'flex items-center justify-between gap-4';
55
- var defaultTitleClass = 'text-[#000] font-bold text-2xl';
56
- var defaultCloseButtonClass = 'bg-transparent rounded-full hover:bg-gray-100 p-1 transition-colors';
57
- return /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
58
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
59
- className: overlayClassName || defaultOverlayClass,
60
- style: {
61
- zIndex: 9998
62
- },
63
- onClick: handleClose
64
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
65
- className: containerClassName || defaultContainerClass,
66
- style: {
67
- zIndex: 9999
68
- },
69
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
70
- className: headerClassName || defaultHeaderClass,
71
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
72
- className: titleClassName || defaultTitleClass,
73
- children: title
74
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
75
- className: closeButtonClassName || defaultCloseButtonClass,
76
- type: "button",
77
- onClick: handleClose,
78
- "aria-label": "Close",
79
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icons.CloseIcon, {})
80
- })]
81
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaTab.default, {
82
- imagePopup: isOpen,
83
- update_data: handleUpdate,
84
- current_data: currentData,
85
- closePopup: handleClose,
86
- options: options,
87
- apiService: apiService,
88
- onError: onError
89
- // Pass styling props through
90
- ,
91
- tabListClassName: tabListClassName,
92
- tabButtonClassName: tabButtonClassName,
93
- tabButtonActiveClassName: tabButtonActiveClassName,
94
- tabButtonInactiveClassName: tabButtonInactiveClassName,
95
- tabPanelClassName: tabPanelClassName,
96
- gridClassName: gridClassName,
97
- imageItemClassName: imageItemClassName,
98
- videoItemClassName: videoItemClassName,
99
- paginationContainerClassName: paginationContainerClassName
100
- })]
101
- })]
102
- }), document.body);
103
- };
104
- var _default = exports.default = MediaPopup;
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _MediaPopup.default;
10
+ }
11
+ });
12
+ var _MediaPopup = _interopRequireDefault(require("../web/MediaPopup.web"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _MediaPopup.default;
10
+ }
11
+ });
12
+ var _MediaPopup = _interopRequireDefault(require("../native/MediaPopup.native"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -1,186 +1,13 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.default = void 0;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _MediaGallery = _interopRequireDefault(require("./MediaGallery"));
10
- var _VideosGallery = _interopRequireDefault(require("./VideosGallery"));
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
14
- function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
15
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
17
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
18
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
19
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
20
- function classNames() {
21
- for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {
22
- classes[_key] = arguments[_key];
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _MediaTab.default;
23
10
  }
24
- return classes.filter(Boolean).join(" ");
25
- }
26
- var MediaTab = function MediaTab(_ref) {
27
- var imagePopup = _ref.imagePopup,
28
- current_data = _ref.current_data,
29
- update_data = _ref.update_data,
30
- closePopup = _ref.closePopup,
31
- options = _ref.options,
32
- apiService = _ref.apiService,
33
- onError = _ref.onError,
34
- className = _ref.className,
35
- tabListClassName = _ref.tabListClassName,
36
- tabButtonClassName = _ref.tabButtonClassName,
37
- tabButtonActiveClassName = _ref.tabButtonActiveClassName,
38
- tabButtonInactiveClassName = _ref.tabButtonInactiveClassName,
39
- tabPanelClassName = _ref.tabPanelClassName,
40
- gridClassName = _ref.gridClassName,
41
- imageItemClassName = _ref.imageItemClassName,
42
- videoItemClassName = _ref.videoItemClassName,
43
- paginationContainerClassName = _ref.paginationContainerClassName;
44
- // Build a stable list of enabled tabs in order
45
- var availableTabs = (0, _react.useMemo)(function () {
46
- var tabs = [];
47
- if (options !== null && options !== void 0 && options.includes("image")) tabs.push("image");
48
- if (options !== null && options !== void 0 && options.includes("video")) tabs.push("video");
49
- if (options !== null && options !== void 0 && options.includes("file")) tabs.push("file");
50
- return tabs;
51
- }, [options]);
52
- var _useState = (0, _react.useState)(0),
53
- _useState2 = _slicedToArray(_useState, 2),
54
- selectedIndex = _useState2[0],
55
- setSelectedIndex = _useState2[1];
56
-
57
- // Guard: if no options passed, render nothing
58
- if (!availableTabs.length) {
59
- return null;
60
- }
61
-
62
- // Default classes with customization support
63
- var defaultTabGroupClass = "h-[520px] overflow-y-auto scrollbar-none";
64
- var defaultTabListClass = "sticky top-0 z-30 bg-white w-full flex border-b-2 border-gray-200";
65
- var defaultTabButtonBaseClass = "rounded-lg py-2.5 px-8 text-base font-medium leading-5 flex flex-col md:flex-row items-center justify-center gap-3 ring-0 focus:outline-none";
66
- var defaultTabButtonActiveClass = 'relative text-primary after:content-[""] after:h-1 after:w-full after:block after:absolute after:-bottom-0.5 after:bg-primary after:rounded-card';
67
- var defaultTabButtonInactiveClass = "text-[#4F4F4F]";
68
- var defaultTabPanelClass = "h-full py-4 relative";
69
- var handleKeyDown = function handleKeyDown(event, index) {
70
- if (event.key === "Enter" || event.key === " ") {
71
- event.preventDefault();
72
- setSelectedIndex(index);
73
- }
74
- if (event.key === "ArrowRight") {
75
- event.preventDefault();
76
- setSelectedIndex(function (prev) {
77
- return (prev + 1) % availableTabs.length;
78
- });
79
- }
80
- if (event.key === "ArrowLeft") {
81
- event.preventDefault();
82
- setSelectedIndex(function (prev) {
83
- return (prev - 1 + availableTabs.length) % availableTabs.length;
84
- });
85
- }
86
- };
87
- var renderTabLabel = function renderTabLabel(type) {
88
- if (type === "image") return "Images";
89
- if (type === "video") return "Videos";
90
- if (type === "file") return "Files";
91
- return type;
92
- };
93
- var renderPanel = function renderPanel(type) {
94
- if (type === "image") {
95
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaGallery.default, {
96
- imagePopup: imagePopup,
97
- update_data: update_data,
98
- current_data: current_data,
99
- closePopup: closePopup,
100
- apiService: apiService,
101
- onError: onError,
102
- gridClassName: gridClassName,
103
- imageItemClassName: imageItemClassName,
104
- paginationContainerClassName: paginationContainerClassName
105
- });
106
- }
107
- if (type === "video") {
108
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_VideosGallery.default, {
109
- imagePopup: imagePopup,
110
- update_data: update_data,
111
- current_data: current_data,
112
- closePopup: closePopup,
113
- apiService: apiService,
114
- onError: onError,
115
- gridClassName: gridClassName,
116
- videoItemClassName: videoItemClassName,
117
- paginationContainerClassName: paginationContainerClassName
118
- });
119
- }
120
- if (type === "file") {
121
- // Reuse ImagesGallery for files as in original implementation
122
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaGallery.default, {
123
- imagePopup: imagePopup,
124
- update_data: update_data,
125
- current_data: current_data,
126
- closePopup: closePopup,
127
- apiService: apiService,
128
- onError: onError,
129
- gridClassName: gridClassName,
130
- imageItemClassName: imageItemClassName,
131
- paginationContainerClassName: paginationContainerClassName
132
- });
133
- }
134
- return null;
135
- };
136
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
137
- className: className || defaultTabGroupClass,
138
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
139
- className: tabListClassName || defaultTabListClass,
140
- role: "tablist",
141
- "aria-orientation": "horizontal",
142
- children: availableTabs.map(function (type, index) {
143
- var isSelected = index === selectedIndex;
144
- var baseClass = tabButtonClassName || defaultTabButtonBaseClass;
145
- var activeClass = tabButtonActiveClassName || defaultTabButtonActiveClass;
146
- var inactiveClass = tabButtonInactiveClassName || defaultTabButtonInactiveClass;
147
- var tabClassName = classNames(baseClass, isSelected ? activeClass : inactiveClass);
148
- var id = type === "image" ? "image-tab-button" : type === "video" ? "video-tab-button" : "file-tab-button";
149
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
150
- id: id,
151
- type: "button",
152
- role: "tab",
153
- "aria-selected": isSelected,
154
- "aria-controls": "".concat(id, "-panel"),
155
- tabIndex: isSelected ? 0 : -1,
156
- className: tabClassName,
157
- onClick: function onClick() {
158
- return setSelectedIndex(index);
159
- },
160
- onKeyDown: function onKeyDown(e) {
161
- return handleKeyDown(e, index);
162
- },
163
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
164
- children: renderTabLabel(type)
165
- })
166
- }, type);
167
- })
168
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
169
- className: "h-full",
170
- role: "tabpanel",
171
- children: availableTabs.map(function (type, index) {
172
- var isSelected = index === selectedIndex;
173
- var id = type === "image" ? "image-tab-button" : type === "video" ? "video-tab-button" : "file-tab-button";
174
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
175
- id: "".concat(id, "-panel"),
176
- role: "tabpanel",
177
- "aria-labelledby": id,
178
- hidden: !isSelected,
179
- className: tabPanelClassName || defaultTabPanelClass,
180
- children: isSelected && renderPanel(type)
181
- }, type);
182
- })
183
- })]
184
- });
185
- };
186
- var _default = exports.default = MediaTab;
11
+ });
12
+ var _MediaTab = _interopRequireDefault(require("../web/MediaTab.web"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _MediaTab.default;
10
+ }
11
+ });
12
+ var _MediaTab = _interopRequireDefault(require("../native/MediaTab.native"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -3,139 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- var _jsxRuntime = require("react/jsx-runtime");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- var Pagination = function Pagination(_ref) {
11
- var className = _ref.className,
12
- nextPage = _ref.nextPage,
13
- current_page = _ref.current_page,
14
- pageCount = _ref.pageCount,
15
- navClassName = _ref.navClassName,
16
- previousButtonClassName = _ref.previousButtonClassName,
17
- nextButtonClassName = _ref.nextButtonClassName,
18
- pageButtonClassName = _ref.pageButtonClassName,
19
- pageButtonActiveClassName = _ref.pageButtonActiveClassName,
20
- ellipsisClassName = _ref.ellipsisClassName;
21
- var totalPages = Math.ceil(pageCount) || 1;
22
- var currentPage = current_page || 1;
23
-
24
- // Generate page numbers to display
25
- var getPageNumbers = function getPageNumbers() {
26
- var pages = [];
27
- var maxVisible = 5;
28
- var startPage = Math.max(1, currentPage - Math.floor(maxVisible / 2));
29
- var endPage = Math.min(totalPages, startPage + maxVisible - 1);
30
- if (endPage - startPage < maxVisible - 1) {
31
- startPage = Math.max(1, endPage - maxVisible + 1);
32
- }
33
-
34
- // Add first page and ellipsis
35
- if (startPage > 1) {
36
- pages.push(1);
37
- if (startPage > 2) {
38
- pages.push('...');
39
- }
40
- }
41
-
42
- // Add visible pages
43
- for (var i = startPage; i <= endPage; i++) {
44
- pages.push(i);
45
- }
46
-
47
- // Add ellipsis and last page
48
- if (endPage < totalPages) {
49
- if (endPage < totalPages - 1) {
50
- pages.push('...');
51
- }
52
- pages.push(totalPages);
53
- }
54
- return pages;
55
- };
56
- var handlePageClick = function handlePageClick(page) {
57
- if (page !== currentPage && page >= 1 && page <= totalPages) {
58
- nextPage(page);
59
- }
60
- };
61
- var handlePrevious = function handlePrevious() {
62
- if (currentPage > 1) {
63
- nextPage(currentPage - 1);
64
- }
65
- };
66
- var handleNext = function handleNext() {
67
- if (currentPage < totalPages) {
68
- nextPage(currentPage + 1);
69
- }
70
- };
71
- if (totalPages <= 1) return null;
72
- var pageNumbers = getPageNumbers();
73
-
74
- // Default classes with customization support
75
- var defaultContainerClass = 'flex justify-center';
76
- var defaultNavClass = 'relative z-0 inline-flex flex-wrap justify-center rounded-md shadow-sm -space-x-px';
77
- var defaultPreviousButtonClass = 'relative inline-flex items-center px-2 py-2 border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50';
78
- var defaultNextButtonClass = 'relative inline-flex items-center px-2 py-2 border border-gray-300 bg-white text-sm font-medium text-gray-500 hover:bg-gray-50';
79
- var defaultPageButtonClass = 'relative inline-flex items-center px-4 py-2 border bg-white border-gray-300 text-gray-500 hover:bg-gray-50 text-sm font-medium';
80
- var defaultPageButtonActiveClass = 'z-10 bg-primary border-primary text-white relative inline-flex items-center px-4 py-2 border text-md font-semibold';
81
- var defaultEllipsisClass = 'relative inline-flex items-center px-4 py-2 border border-gray-300 bg-white text-sm font-medium text-gray-700';
82
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
83
- className: className || defaultContainerClass,
84
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("nav", {
85
- className: navClassName || defaultNavClass,
86
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
87
- onClick: handlePrevious,
88
- disabled: currentPage === 1,
89
- className: "".concat(previousButtonClassName || defaultPreviousButtonClass, " ").concat(currentPage === 1 ? 'opacity-50 cursor-not-allowed' : ''),
90
- "aria-label": "Previous page",
91
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", {
92
- className: "h-5 w-5",
93
- xmlns: "http://www.w3.org/2000/svg",
94
- viewBox: "0 0 20 20",
95
- fill: "currentColor",
96
- "aria-hidden": "true",
97
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
98
- fillRule: "evenodd",
99
- d: "M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",
100
- clipRule: "evenodd"
101
- })
102
- })
103
- }), pageNumbers.map(function (page, index) {
104
- if (page === '...') {
105
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
106
- className: ellipsisClassName || defaultEllipsisClass,
107
- children: "..."
108
- }, "ellipsis-".concat(index));
109
- }
110
- var isActive = page === currentPage;
111
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
112
- onClick: function onClick() {
113
- return handlePageClick(page);
114
- },
115
- className: isActive ? pageButtonActiveClassName || defaultPageButtonActiveClass : pageButtonClassName || defaultPageButtonClass,
116
- "aria-label": "Page ".concat(page),
117
- "aria-current": isActive ? 'page' : undefined,
118
- children: page
119
- }, page);
120
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
121
- onClick: handleNext,
122
- disabled: currentPage === totalPages,
123
- className: "".concat(nextButtonClassName || defaultNextButtonClass, " ").concat(currentPage === totalPages ? 'opacity-50 cursor-not-allowed' : ''),
124
- "aria-label": "Next page",
125
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", {
126
- className: "h-5 w-5",
127
- xmlns: "http://www.w3.org/2000/svg",
128
- viewBox: "0 0 20 20",
129
- fill: "currentColor",
130
- "aria-hidden": "true",
131
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
132
- fillRule: "evenodd",
133
- d: "M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",
134
- clipRule: "evenodd"
135
- })
136
- })
137
- })]
138
- })
139
- });
140
- };
141
- var _default = exports.default = Pagination;
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _Pagination.default;
10
+ }
11
+ });
12
+ var _Pagination = _interopRequireDefault(require("../web/Pagination.web"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _Pagination.default;
10
+ }
11
+ });
12
+ var _Pagination = _interopRequireDefault(require("../native/Pagination.native"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }