@sunggang/ui-lib 0.3.66 → 0.4.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 (93) hide show
  1. package/BaseCkeditor.cjs.js +66855 -0
  2. package/BaseCkeditor.esm.js +15 -18
  3. package/BigCalender.cjs.d.ts +1 -0
  4. package/BigCalender.cjs.default.js +1 -0
  5. package/BigCalender.cjs.js +20404 -0
  6. package/BigCalender.cjs.mjs +2 -0
  7. package/BigCalender.esm.d.ts +1 -0
  8. package/BigCalender.esm.js +20393 -0
  9. package/CkEditor.cjs.d.ts +1 -0
  10. package/CkEditor.cjs.default.js +1 -0
  11. package/CkEditor.cjs.js +31 -0
  12. package/CkEditor.cjs.mjs +2 -0
  13. package/CkEditor.esm.d.ts +1 -0
  14. package/CkEditor.esm.js +23 -0
  15. package/DataTable.cjs.d.ts +1 -0
  16. package/DataTable.cjs.default.js +1 -0
  17. package/DataTable.cjs.js +968 -0
  18. package/DataTable.cjs.mjs +2 -0
  19. package/DataTable.esm.d.ts +1 -0
  20. package/DataTable.esm.js +943 -0
  21. package/DropImage.cjs.d.ts +1 -0
  22. package/DropImage.cjs.default.js +1 -0
  23. package/DropImage.cjs.js +16845 -0
  24. package/DropImage.cjs.mjs +2 -0
  25. package/DropImage.esm.d.ts +1 -0
  26. package/DropImage.esm.js +16834 -0
  27. package/Form.cjs.d.ts +1 -0
  28. package/Form.cjs.default.js +1 -0
  29. package/Form.cjs.js +402 -0
  30. package/Form.cjs.mjs +2 -0
  31. package/Form.esm.d.ts +1 -0
  32. package/Form.esm.js +390 -0
  33. package/FormProvider.cjs.d.ts +1 -0
  34. package/FormProvider.cjs.default.js +1 -0
  35. package/FormProvider.cjs.js +81 -0
  36. package/FormProvider.cjs.mjs +2 -0
  37. package/FormProvider.esm.d.ts +1 -0
  38. package/FormProvider.esm.js +71 -0
  39. package/LiffProvider.cjs.d.ts +1 -0
  40. package/LiffProvider.cjs.default.js +1 -0
  41. package/LiffProvider.cjs.js +1120 -0
  42. package/LiffProvider.cjs.mjs +2 -0
  43. package/LiffProvider.esm.d.ts +1 -0
  44. package/LiffProvider.esm.js +1114 -0
  45. package/Modal.cjs.js +168 -0
  46. package/Modal.esm.js +164 -0
  47. package/Tabs.cjs.d.ts +1 -0
  48. package/Tabs.cjs.default.js +1 -0
  49. package/Tabs.cjs.js +62 -0
  50. package/Tabs.cjs.mjs +2 -0
  51. package/Tabs.esm.d.ts +1 -0
  52. package/Tabs.esm.js +58 -0
  53. package/_commonjsHelpers.cjs.js +30 -0
  54. package/_commonjsHelpers.esm.js +25 -0
  55. package/_tslib.cjs.js +232 -0
  56. package/_tslib.esm.js +224 -0
  57. package/baseSwitch.cjs.js +25830 -0
  58. package/baseSwitch.esm.js +25785 -0
  59. package/index.cjs.css +4832 -0
  60. package/index.cjs.d.ts +1 -0
  61. package/index.cjs.default.js +1 -0
  62. package/index.cjs.js +2097 -0
  63. package/index.cjs.mjs +2 -0
  64. package/index.cjs2.js +1064 -0
  65. package/index.cjs3.js +6424 -0
  66. package/index.esm.cjs.js +3406 -0
  67. package/index.esm.css +3624 -3632
  68. package/index.esm.esm.js +3375 -0
  69. package/index.esm.js +2032 -22
  70. package/index.esm2.js +131 -81165
  71. package/index.esm3.js +2 -25
  72. package/inheritsLoose.cjs.js +9 -0
  73. package/inheritsLoose.esm.js +7 -0
  74. package/input.cjs.js +244 -0
  75. package/input.esm.js +220 -0
  76. package/memoize-one.esm.cjs.js +204 -0
  77. package/memoize-one.esm.esm.js +189 -0
  78. package/package.json +59 -5
  79. package/setPrototypeOf.cjs.js +91 -0
  80. package/setPrototypeOf.esm.js +83 -0
  81. package/src/BigCalender.d.ts +2 -0
  82. package/src/CkEditor.d.ts +1 -0
  83. package/src/DataTable.d.ts +2 -0
  84. package/src/DropImage.d.ts +2 -0
  85. package/src/Form.d.ts +3 -0
  86. package/src/FormProvider.d.ts +1 -0
  87. package/src/LiffProvider.d.ts +1 -0
  88. package/src/Tabs.d.ts +1 -0
  89. package/src/index.d.ts +9 -21
  90. package/styled-components.esm.cjs.js +1621 -0
  91. package/styled-components.esm.esm.js +1615 -0
  92. package/utils.cjs.js +13 -0
  93. package/utils.esm.js +11 -0
package/Form.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./src/Form";
@@ -0,0 +1 @@
1
+ exports._default = require('./Form.cjs.js').default;
package/Form.cjs.js ADDED
@@ -0,0 +1,402 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var baseSwitch = require('./baseSwitch.cjs.js');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var React = require('react');
8
+ var react = require('@iconify/react');
9
+ var Modal = require('./Modal.cjs.js');
10
+ require('@radix-ui/react-switch');
11
+ require('./utils.cjs.js');
12
+ require('clsx');
13
+ require('tailwind-merge');
14
+ require('./index.esm.cjs.js');
15
+ require('next/dynamic');
16
+ require('./setPrototypeOf.cjs.js');
17
+ require('./memoize-one.esm.cjs.js');
18
+ require('@emotion/react');
19
+ require('react-dom');
20
+ require('@mui/material');
21
+ require('./styled-components.esm.cjs.js');
22
+ require('./_tslib.cjs.js');
23
+ require('./_commonjsHelpers.cjs.js');
24
+ require('@radix-ui/react-select');
25
+ require('@radix-ui/react-icons');
26
+
27
+ function _array_like_to_array$2(arr, len) {
28
+ if (len == null || len > arr.length) len = arr.length;
29
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
30
+ return arr2;
31
+ }
32
+ function _array_with_holes$2(arr) {
33
+ if (Array.isArray(arr)) return arr;
34
+ }
35
+ function _iterable_to_array_limit$2(arr, i) {
36
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
37
+ if (_i == null) return;
38
+ var _arr = [];
39
+ var _n = true;
40
+ var _d = false;
41
+ var _s, _e;
42
+ try {
43
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
44
+ _arr.push(_s.value);
45
+ if (i && _arr.length === i) break;
46
+ }
47
+ } catch (err) {
48
+ _d = true;
49
+ _e = err;
50
+ } finally{
51
+ try {
52
+ if (!_n && _i["return"] != null) _i["return"]();
53
+ } finally{
54
+ if (_d) throw _e;
55
+ }
56
+ }
57
+ return _arr;
58
+ }
59
+ function _non_iterable_rest$2() {
60
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
61
+ }
62
+ function _sliced_to_array$2(arr, i) {
63
+ return _array_with_holes$2(arr) || _iterable_to_array_limit$2(arr, i) || _unsupported_iterable_to_array$2(arr, i) || _non_iterable_rest$2();
64
+ }
65
+ function _unsupported_iterable_to_array$2(o, minLen) {
66
+ if (!o) return;
67
+ if (typeof o === "string") return _array_like_to_array$2(o, minLen);
68
+ var n = Object.prototype.toString.call(o).slice(8, -1);
69
+ if (n === "Object" && o.constructor) n = o.constructor.name;
70
+ if (n === "Map" || n === "Set") return Array.from(n);
71
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$2(o, minLen);
72
+ }
73
+ var BaseTemplate = function(param) {
74
+ var file = param.file, imageUrl = param.imageUrl;
75
+ var _useState = _sliced_to_array$2(React.useState(null), 2), tempImage = _useState[0], setTempImage = _useState[1];
76
+ React.useEffect(function() {
77
+ var fileReader;
78
+ var isCancel = false;
79
+ if (file) {
80
+ fileReader = new FileReader();
81
+ fileReader.onload = function(e) {
82
+ var result = e.target.result;
83
+ if (result && !isCancel) {
84
+ setTempImage(result.toString());
85
+ }
86
+ };
87
+ fileReader.readAsDataURL(file);
88
+ }
89
+ return function() {
90
+ setTempImage(null);
91
+ isCancel = true;
92
+ if (fileReader && fileReader.readyState === 1) {
93
+ fileReader.abort();
94
+ }
95
+ };
96
+ }, [
97
+ file
98
+ ]);
99
+ return /*#__PURE__*/ jsxRuntime.jsx("div", {
100
+ className: "max-w-sm mx-auto bg-white rounded-lg shadow-md overflow-hidden items-center",
101
+ children: /*#__PURE__*/ jsxRuntime.jsx("div", {
102
+ className: "px-4 py-6 w-72 h-56",
103
+ children: tempImage || imageUrl ? /*#__PURE__*/ jsxRuntime.jsx("img", {
104
+ className: "w-full h-full object-contain border-dashed border-2 border-gray-400 p-6 rounded-lg",
105
+ src: tempImage || imageUrl,
106
+ alt: ""
107
+ }) : /*#__PURE__*/ jsxRuntime.jsx("div", {
108
+ id: "image-preview",
109
+ className: "max-w-sm p-6 bg-gray-100 border-dashed border-2 border-gray-400 rounded-lg items-center mx-auto text-center cursor-pointer",
110
+ children: /*#__PURE__*/ jsxRuntime.jsxs("div", {
111
+ className: "cursor-pointer",
112
+ children: [
113
+ /*#__PURE__*/ jsxRuntime.jsx("div", {
114
+ className: "flex justify-center",
115
+ children: /*#__PURE__*/ jsxRuntime.jsx(react.Icon, {
116
+ icon: "material-symbols:upload",
117
+ width: "2.5rem",
118
+ height: "2.5rem"
119
+ })
120
+ }),
121
+ /*#__PURE__*/ jsxRuntime.jsx("p", {
122
+ className: "font-normal text-sm text-gray-400 py-4",
123
+ children: "圖片僅支援 png、jpg、jpeg"
124
+ }),
125
+ /*#__PURE__*/ jsxRuntime.jsx("h5", {
126
+ className: "mb-2 text-xl font-bold tracking-tight text-gray-700",
127
+ children: "上傳圖片"
128
+ })
129
+ ]
130
+ })
131
+ })
132
+ })
133
+ });
134
+ };
135
+
136
+ function _array_like_to_array$1(arr, len) {
137
+ if (len == null || len > arr.length) len = arr.length;
138
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
139
+ return arr2;
140
+ }
141
+ function _array_with_holes$1(arr) {
142
+ if (Array.isArray(arr)) return arr;
143
+ }
144
+ function _iterable_to_array_limit$1(arr, i) {
145
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
146
+ if (_i == null) return;
147
+ var _arr = [];
148
+ var _n = true;
149
+ var _d = false;
150
+ var _s, _e;
151
+ try {
152
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
153
+ _arr.push(_s.value);
154
+ if (i && _arr.length === i) break;
155
+ }
156
+ } catch (err) {
157
+ _d = true;
158
+ _e = err;
159
+ } finally{
160
+ try {
161
+ if (!_n && _i["return"] != null) _i["return"]();
162
+ } finally{
163
+ if (_d) throw _e;
164
+ }
165
+ }
166
+ return _arr;
167
+ }
168
+ function _non_iterable_rest$1() {
169
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
170
+ }
171
+ function _sliced_to_array$1(arr, i) {
172
+ return _array_with_holes$1(arr) || _iterable_to_array_limit$1(arr, i) || _unsupported_iterable_to_array$1(arr, i) || _non_iterable_rest$1();
173
+ }
174
+ function _unsupported_iterable_to_array$1(o, minLen) {
175
+ if (!o) return;
176
+ if (typeof o === "string") return _array_like_to_array$1(o, minLen);
177
+ var n = Object.prototype.toString.call(o).slice(8, -1);
178
+ if (n === "Object" && o.constructor) n = o.constructor.name;
179
+ if (n === "Map" || n === "Set") return Array.from(n);
180
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
181
+ }
182
+ var CustomUpload = function(param) {
183
+ var className = param.className, children = param.children, file = param.file, setFile = param.setFile, imageUrl = param.imageUrl, setImageUrl = param.setImageUrl;
184
+ var imageMimeType = /image\/(png|jpg|jpeg)/i;
185
+ var DEFAULT_IMAGE_SIZE_LIMIT_IN_BYTES = 5242880;
186
+ var _useState = _sliced_to_array$1(React.useState(null), 2), modal = _useState[0], setModal = _useState[1];
187
+ var hiddenFileInput = React.useRef(null);
188
+ var handleImageClick = function() {
189
+ var _hiddenFileInput_current;
190
+ (_hiddenFileInput_current = hiddenFileInput.current) === null || _hiddenFileInput_current === void 0 ? void 0 : _hiddenFileInput_current.click();
191
+ };
192
+ var handleRemove = function() {
193
+ setFile(null);
194
+ setImageUrl(null);
195
+ };
196
+ var handleImageChange = function(event) {
197
+ var _event_target_files, _currentFile_type;
198
+ var currentFile = (_event_target_files = event.target.files) === null || _event_target_files === void 0 ? void 0 : _event_target_files[0];
199
+ if (!currentFile) {
200
+ setFile(null);
201
+ return;
202
+ }
203
+ if (currentFile && !((_currentFile_type = currentFile.type) === null || _currentFile_type === void 0 ? void 0 : _currentFile_type.match(imageMimeType))) {
204
+ setModal(/*#__PURE__*/ jsxRuntime.jsx(Modal.ErrorContent, {
205
+ setModal: setModal,
206
+ errmsg: "圖片僅支援 png、jpg、jpeg!"
207
+ }));
208
+ return;
209
+ }
210
+ if (currentFile && currentFile.size > DEFAULT_IMAGE_SIZE_LIMIT_IN_BYTES) {
211
+ setModal(/*#__PURE__*/ jsxRuntime.jsx(Modal.ErrorContent, {
212
+ setModal: setModal,
213
+ errmsg: /*#__PURE__*/ jsxRuntime.jsxs("span", {
214
+ children: [
215
+ "選擇的檔案大小:",
216
+ String((currentFile.size / 1024 / 1024).toFixed(3)),
217
+ " MB",
218
+ /*#__PURE__*/ jsxRuntime.jsx("br", {}),
219
+ /*#__PURE__*/ jsxRuntime.jsx("hr", {}),
220
+ "上限:",
221
+ String((DEFAULT_IMAGE_SIZE_LIMIT_IN_BYTES / 1024 / 1024).toFixed(3)),
222
+ " MB"
223
+ ]
224
+ })
225
+ }));
226
+ return;
227
+ }
228
+ setFile(currentFile);
229
+ };
230
+ return /*#__PURE__*/ jsxRuntime.jsxs("div", {
231
+ className: [
232
+ "w-fit",
233
+ className
234
+ ].join(" "),
235
+ children: [
236
+ /*#__PURE__*/ jsxRuntime.jsx("div", {
237
+ className: "mb-2",
238
+ children: /*#__PURE__*/ jsxRuntime.jsxs("button", {
239
+ type: "button",
240
+ onClick: handleImageClick,
241
+ children: [
242
+ children || /*#__PURE__*/ jsxRuntime.jsx(BaseTemplate, {
243
+ file: file,
244
+ imageUrl: imageUrl
245
+ }),
246
+ /*#__PURE__*/ jsxRuntime.jsx("input", {
247
+ type: "file",
248
+ ref: hiddenFileInput,
249
+ accept: ".png, .jpg, .jpeg",
250
+ onChange: handleImageChange,
251
+ className: "hidden"
252
+ })
253
+ ]
254
+ })
255
+ }),
256
+ /*#__PURE__*/ jsxRuntime.jsx("button", {
257
+ type: "button",
258
+ className: [
259
+ "w-6 h-6 text-[#000]",
260
+ file || imageUrl ? "visible" : "invisible"
261
+ ].join(" "),
262
+ onClick: handleRemove,
263
+ children: /*#__PURE__*/ jsxRuntime.jsx(react.Icon, {
264
+ icon: "mingcute:delete-2-line",
265
+ width: "100%",
266
+ height: "100%"
267
+ })
268
+ }),
269
+ modal && /*#__PURE__*/ jsxRuntime.jsx(Modal.Modal, {
270
+ modal: modal,
271
+ unsetModal: setModal
272
+ })
273
+ ]
274
+ });
275
+ };
276
+
277
+ function _array_like_to_array(arr, len) {
278
+ if (len == null || len > arr.length) len = arr.length;
279
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
280
+ return arr2;
281
+ }
282
+ function _array_with_holes(arr) {
283
+ if (Array.isArray(arr)) return arr;
284
+ }
285
+ function _iterable_to_array_limit(arr, i) {
286
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
287
+ if (_i == null) return;
288
+ var _arr = [];
289
+ var _n = true;
290
+ var _d = false;
291
+ var _s, _e;
292
+ try {
293
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
294
+ _arr.push(_s.value);
295
+ if (i && _arr.length === i) break;
296
+ }
297
+ } catch (err) {
298
+ _d = true;
299
+ _e = err;
300
+ } finally{
301
+ try {
302
+ if (!_n && _i["return"] != null) _i["return"]();
303
+ } finally{
304
+ if (_d) throw _e;
305
+ }
306
+ }
307
+ return _arr;
308
+ }
309
+ function _non_iterable_rest() {
310
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
311
+ }
312
+ function _sliced_to_array(arr, i) {
313
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
314
+ }
315
+ function _unsupported_iterable_to_array(o, minLen) {
316
+ if (!o) return;
317
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
318
+ var n = Object.prototype.toString.call(o).slice(8, -1);
319
+ if (n === "Object" && o.constructor) n = o.constructor.name;
320
+ if (n === "Map" || n === "Set") return Array.from(n);
321
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
322
+ }
323
+ var CustomSelect = function(param) {
324
+ var items = param.items, currentID = param.currentID, setCurrentID = param.setCurrentID, _param_className = param.className, className = _param_className === void 0 ? "" : _param_className, _param_hasEmptyOption = param.hasEmptyOption, hasEmptyOption = _param_hasEmptyOption === void 0 ? true : _param_hasEmptyOption;
325
+ var _useState = _sliced_to_array(React.useState(false), 2), isDropdownOpen = _useState[0], setIsDropdownOpen = _useState[1];
326
+ var selectRef = React.useRef(null);
327
+ React.useEffect(function() {
328
+ var handleClickOutside = function(event) {
329
+ if (selectRef.current && !selectRef.current.contains(event.target)) {
330
+ setIsDropdownOpen(false);
331
+ }
332
+ };
333
+ document.addEventListener("mousedown", handleClickOutside);
334
+ return function() {
335
+ document.removeEventListener("mousedown", handleClickOutside);
336
+ };
337
+ }, []);
338
+ var getSelectedItemName = function() {
339
+ if (currentID === undefined || currentID === null) return "請選擇";
340
+ var selectedItem = items.find(function(item) {
341
+ return String(item.value) === String(currentID);
342
+ });
343
+ return (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.name) || "請選擇";
344
+ };
345
+ return /*#__PURE__*/ jsxRuntime.jsxs("div", {
346
+ ref: selectRef,
347
+ className: "relative w-full border border-gray-300 rounded-lg ".concat(className),
348
+ children: [
349
+ /*#__PURE__*/ jsxRuntime.jsxs("button", {
350
+ type: "button",
351
+ className: "w-full h-10 px-4 flex items-center justify-between cursor-pointer rounded-lg",
352
+ onClick: function() {
353
+ return setIsDropdownOpen(function(prev) {
354
+ return !prev;
355
+ });
356
+ },
357
+ children: [
358
+ /*#__PURE__*/ jsxRuntime.jsx("span", {
359
+ children: getSelectedItemName()
360
+ }),
361
+ /*#__PURE__*/ jsxRuntime.jsx(react.Icon, {
362
+ width: 28,
363
+ icon: isDropdownOpen ? "iconamoon:arrow-down-2" : "iconamoon:arrow-right-2"
364
+ })
365
+ ]
366
+ }),
367
+ isDropdownOpen && /*#__PURE__*/ jsxRuntime.jsxs("ul", {
368
+ className: "absolute z-10 mt-0 w-full bg-white border border-gray-300 rounded-lg shadow-lg",
369
+ children: [
370
+ hasEmptyOption && /*#__PURE__*/ jsxRuntime.jsx("li", {
371
+ className: "px-4 py-2 cursor-pointer hover:bg-gray-100",
372
+ onClick: function() {
373
+ setCurrentID(null);
374
+ setIsDropdownOpen(false);
375
+ },
376
+ children: "請選擇"
377
+ }),
378
+ items.map(function(item) {
379
+ return /*#__PURE__*/ jsxRuntime.jsx("li", {
380
+ className: "px-4 py-2 cursor-pointer hover:bg-gray-100",
381
+ onClick: function() {
382
+ setCurrentID(item.value);
383
+ setIsDropdownOpen(false);
384
+ },
385
+ children: item.name
386
+ }, item.value);
387
+ })
388
+ ]
389
+ })
390
+ ]
391
+ });
392
+ };
393
+
394
+ exports.City = baseSwitch.City;
395
+ exports.CustomUploadField = baseSwitch.CustomUploadField;
396
+ exports.FieldLabel = baseSwitch.FieldLabel;
397
+ exports.Fields = baseSwitch.Fields;
398
+ exports.Form = baseSwitch.Form;
399
+ exports.Row = baseSwitch.Row;
400
+ exports.Textarea = baseSwitch.Textarea;
401
+ exports.CustomSelect = CustomSelect;
402
+ exports.CustomUpload = CustomUpload;
package/Form.cjs.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export * from './Form.cjs.js';
2
+ export { _default as default } from './Form.cjs.default.js';
package/Form.esm.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./src/Form";