@pdg/react-table 1.1.0 → 1.1.2

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.
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import*as React from'react';import React__default,{useRef,useState,useCallback,useEffect,createContext,useContext,useMemo,useLayoutEffect,useId}from'react';import {styled,TableRow,lighten,TableCell,Stack,Pagination,Checkbox,useTheme,TableHead,Box,Tooltip,TableBody,Icon,TableFooter,Paper,Table,Grid,Popper,Grow,ClickAwayListener,IconButton}from'@mui/material';import {useAutoUpdateLayoutState}from'@pdg/react-hook';import {useSensors,useSensor,MouseSensor,TouchSensor,KeyboardSensor,DndContext,closestCenter}from'@dnd-kit/core';import {useSortable,SortableContext,verticalListSortingStrategy,sortableKeyboardCoordinates,arrayMove}from'@dnd-kit/sortable';import {v4}from'uuid';import {formatPersonalNo,formatBusinessNo,formatTelNo,formatNumber}from'@pdg/formatting';import {useInView}from'react-intersection-observer';import {ifUndefined,notEmpty,equal,empty}from'@pdg/compare';import {PSearch,PSearchGroup,PFormHidden}from'@pdg/react-form';import {PButton,PIcon,PCopyToClipboard}from'@pdg/react-component';function insertStyle(css) {
1
+ import*as React from'react';import React__default,{useMemo,useRef,useState,useCallback,useEffect,createContext,useContext,useLayoutEffect,useId}from'react';import {styled,Box,IconButton,Grid,Stack,TableRow,lighten,TableCell,Pagination,Checkbox,useTheme,TableHead,Tooltip,TableBody,Icon,TableFooter,Paper,Table,Popper,Grow,ClickAwayListener}from'@mui/material';import {notEmpty,empty,ifUndefined,equal}from'@pdg/compare';import {formatPersonalNo,formatBusinessNo,formatTelNo,formatNumber}from'@pdg/formatting';import {PIcon,PCopyToClipboard,PButton}from'@pdg/react-component';import {PSearch,PSearchGroup,PFormHidden}from'@pdg/react-form';import {useAutoUpdateLayoutState,useForwardLayoutRef}from'@pdg/react-hook';import {useSensors,useSensor,MouseSensor,TouchSensor,KeyboardSensor,DndContext,closestCenter}from'@dnd-kit/core';import {useSortable,SortableContext,verticalListSortingStrategy,sortableKeyboardCoordinates,arrayMove}from'@dnd-kit/sortable';import {v4}from'uuid';import {useInView}from'react-intersection-observer';function insertStyle(css) {
2
2
  if (typeof window === 'undefined')
3
3
  return;
4
4
  const style = document.createElement('style');
@@ -138,7 +138,250 @@ function requireClassnames () {
138
138
  } (classnames));
139
139
  return classnames.exports;
140
140
  }var classnamesExports = requireClassnames();
141
- var classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);/**
141
+ var classNames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);var Label = styled(Box)(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n font-size: 12px;\n font-weight: bold;\n"], ["\n font-size: 12px;\n font-weight: bold;\n"])));
142
+ var ValueWrap = styled(Box)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n margin-top: 3px;\n position: relative;\n display: flex;\n flex-direction: row;\n"], ["\n margin-top: 3px;\n position: relative;\n display: flex;\n flex-direction: row;\n"])));
143
+ var Value = styled('div')(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n flex: 1;\n"], ["\n flex: 1;\n"])));
144
+ var ValueEllipsis = styled('div')(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n flex: 1;\n position: relative;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"], ["\n flex: 1;\n position: relative;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
145
+ var ValueClipboard = styled('div')(templateObject_5 || (templateObject_5 = __makeTemplateObject([""], [""])));
146
+ var ClipboardIconButton = styled(IconButton)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n margin-top: -10px;\n margin-bottom: -10px;\n"], ["\n margin-top: -10px;\n margin-bottom: -10px;\n"])));
147
+ var Line = styled('div')(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n border-top: 1px solid #efefef;\n height: 1px;\n flex: 1;\n"], ["\n border-top: 1px solid #efefef;\n height: 1px;\n flex: 1;\n"])));
148
+ var templateObject_1$4, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;function getTableColumnAlign(column, defaultAlign) {
149
+ switch (column.type) {
150
+ case 'number':
151
+ return column.align ? column.align : 'right';
152
+ default:
153
+ return column.align || defaultAlign;
154
+ }
155
+ }
156
+ function combineSx() {
157
+ var sx = [];
158
+ for (var _i = 0; _i < arguments.length; _i++) {
159
+ sx[_i] = arguments[_i];
160
+ }
161
+ var finalSx = [];
162
+ if (Array.isArray(finalSx)) {
163
+ sx.forEach(function (v) { return v && finalSx.push.apply(finalSx, (Array.isArray(v) ? v : [v])); });
164
+ }
165
+ return finalSx;
166
+ }
167
+ function typographyColorToSxColor(color) {
168
+ if (typeof color === 'string') {
169
+ if (['primary', 'secondary', 'info', 'warning', 'error'].includes(color)) {
170
+ return "".concat(color, ".main");
171
+ }
172
+ else if (color === 'text') {
173
+ return 'text.primary';
174
+ }
175
+ else {
176
+ return color;
177
+ }
178
+ }
179
+ else {
180
+ return color;
181
+ }
182
+ }var dayjs_min$1 = {exports: {}};var dayjs_min = dayjs_min$1.exports;
183
+
184
+ var hasRequiredDayjs_min;
185
+
186
+ function requireDayjs_min () {
187
+ if (hasRequiredDayjs_min) return dayjs_min$1.exports;
188
+ hasRequiredDayjs_min = 1;
189
+ (function (module, exports) {
190
+ !function(t,e){module.exports=e();}(dayjs_min,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,true),this.parse(t),this.$x=this.$x||t.x||{},this[p]=true;}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return b},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,false)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case "YY":return String(e.$y).slice(-2);case "YYYY":return b.s(e.$y,4,"0");case "M":return a+1;case "MM":return b.s(a+1,2,"0");case "MMM":return h(n.monthsShort,a,c,3);case "MMMM":return h(c,a);case "D":return e.$D;case "DD":return b.s(e.$D,2,"0");case "d":return String(e.$W);case "dd":return h(n.weekdaysMin,e.$W,o,2);case "ddd":return h(n.weekdaysShort,e.$W,o,3);case "dddd":return o[e.$W];case "H":return String(s);case "HH":return b.s(s,2,"0");case "h":return d(1);case "hh":return d(2);case "a":return $(s,u,true);case "A":return $(s,u,false);case "m":return String(u);case "mm":return b.s(u,2,"0");case "s":return String(e.$s);case "ss":return b.s(e.$s,2,"0");case "SSS":return b.s(e.$ms,3,"0");case "Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g;}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,true);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=true),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));
191
+ } (dayjs_min$1));
192
+ return dayjs_min$1.exports;
193
+ }var dayjs_minExports = requireDayjs_min();
194
+ var dayjs = /*@__PURE__*/getDefaultExportFromCjs(dayjs_minExports);var PInfoTable = function (_a) {
195
+ /********************************************************************************************************************
196
+ * Memo
197
+ * ******************************************************************************************************************/
198
+ var cols = _a.cols, _b = _a.spacing, spacing = _b === void 0 ? 2 : _b, columnSpacing = _a.columnSpacing, _c = _a.rowSpacing, rowSpacing = _c === void 0 ? 3 : _c, className = _a.className, style = _a.style, sx = _a.sx, labelClassName = _a.labelClassName, _d = _a.labelColor, labelColor = _d === void 0 ? 'primary' : _d, labelStyle = _a.labelStyle, labelSx = _a.labelSx, _e = _a.dividerColor, dividerColor = _e === void 0 ? 'gray' : _e, valueClassName = _a.valueClassName, valueStyle = _a.valueStyle, valueSx = _a.valueSx, ellipsis = _a.ellipsis, valueUnderline = _a.valueUnderline, info = _a.info, items = _a.items, onCopyToClipboard = _a.onCopyToClipboard;
199
+ var renderItems = useMemo(function () {
200
+ return items.filter(function (item) { return !!item && (!item.onHide || !item.onHide(info)); }).map(function (item) {
201
+ /** data */
202
+ var data = undefined;
203
+ if (item.name !== undefined) {
204
+ if (info[item.name] !== undefined) {
205
+ if (info[item.name] instanceof Date) {
206
+ data = dayjs(info[item.name]).format('YYYY-MM-DD HH:mm:ss');
207
+ }
208
+ else if (info[item.name] instanceof dayjs) {
209
+ data = info[item.name].format('YYYY-MM-DD HH:mm:ss');
210
+ }
211
+ else {
212
+ data = info[item.name];
213
+ }
214
+ }
215
+ }
216
+ if (item.onRender) {
217
+ data = item.onRender(info);
218
+ }
219
+ else if (notEmpty(data)) {
220
+ switch (item.type) {
221
+ case 'number':
222
+ if (typeof data === 'string' || typeof data === 'number') {
223
+ data = formatNumber(data);
224
+ if (item.numberPrefix) {
225
+ data = (React__default.createElement(React__default.Fragment, null,
226
+ React__default.createElement("span", { style: { opacity: 0.5, marginRight: 2 } }, item.numberPrefix),
227
+ data));
228
+ }
229
+ if (item.numberSuffix) {
230
+ data = (React__default.createElement(React__default.Fragment, null,
231
+ data,
232
+ React__default.createElement("span", { style: { opacity: 0.5, marginLeft: 2 } }, item.numberSuffix)));
233
+ }
234
+ }
235
+ break;
236
+ case 'tel':
237
+ if (typeof data === 'string') {
238
+ data = formatTelNo(data);
239
+ }
240
+ break;
241
+ case 'email':
242
+ if (typeof data === 'string') {
243
+ data = (React__default.createElement(React__default.Fragment, null,
244
+ React__default.createElement("a", { href: "mailto:".concat(data) }, data)));
245
+ }
246
+ break;
247
+ case 'url':
248
+ if (typeof data === 'string' && data.toLowerCase().startsWith('http')) {
249
+ data = (React__default.createElement(React__default.Fragment, null,
250
+ React__default.createElement("a", { href: data, target: '_blank' }, data)));
251
+ }
252
+ break;
253
+ case 'business_no':
254
+ if (typeof data === 'string') {
255
+ data = formatBusinessNo(data);
256
+ }
257
+ break;
258
+ case 'personal_no':
259
+ if (typeof data === 'string') {
260
+ data = formatPersonalNo(data);
261
+ }
262
+ break;
263
+ case 'date':
264
+ if (typeof data === 'string' || typeof data === 'number') {
265
+ data = dayjs(data, item.dateFormat).format('YYYY-MM-DD');
266
+ }
267
+ break;
268
+ case 'datetime':
269
+ if (typeof data === 'string' || typeof data === 'number') {
270
+ var dt = dayjs(data, item.dateFormat);
271
+ data = (React__default.createElement(React__default.Fragment, null,
272
+ React__default.createElement("span", null, dt.format('YYYY-MM-DD')),
273
+ item.dateTwoLine ? React__default.createElement("br", null) : ' ',
274
+ React__default.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH:mm:ss'))));
275
+ }
276
+ break;
277
+ case 'date-hour':
278
+ if (typeof data === 'string' || typeof data === 'number') {
279
+ var dt = dayjs(data, item.dateFormat);
280
+ data = (React__default.createElement(React__default.Fragment, null,
281
+ React__default.createElement("span", null, dt.format('YYYY-MM-DD')),
282
+ item.dateTwoLine ? React__default.createElement("br", null) : ' ',
283
+ React__default.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH시'))));
284
+ }
285
+ break;
286
+ case 'date-minute':
287
+ if (typeof data === 'string' || typeof data === 'number') {
288
+ var dt = dayjs(data, item.dateFormat);
289
+ data = (React__default.createElement(React__default.Fragment, null,
290
+ React__default.createElement("span", null, dt.format('YYYY-MM-DD')),
291
+ item.dateTwoLine ? React__default.createElement("br", null) : ' ',
292
+ React__default.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH시 MM분'))));
293
+ }
294
+ break;
295
+ }
296
+ }
297
+ if (empty(data))
298
+ data = item.onRenderEmpty ? item.onRenderEmpty(info) : React__default.createElement(React__default.Fragment, null, "\u00A0");
299
+ /** copyToClipboardText */
300
+ var copyToClipboardText = item.clipboardText || (typeof data === 'string' ? data : typeof data === 'number' ? data.toString() : '');
301
+ /** sizeProps */
302
+ var sizeProps = {};
303
+ if (typeof cols === 'number') {
304
+ sizeProps.xs = 12 / cols;
305
+ }
306
+ else {
307
+ if (cols.xs)
308
+ sizeProps.xs = 12 / cols.xs;
309
+ if (cols.sm)
310
+ sizeProps.sm = 12 / cols.sm;
311
+ if (cols.md)
312
+ sizeProps.md = 12 / cols.md;
313
+ if (cols.lg)
314
+ sizeProps.lg = 12 / cols.lg;
315
+ if (cols.xl)
316
+ sizeProps.xl = 12 / cols.xl;
317
+ }
318
+ if (item.xs)
319
+ sizeProps.xs = item.xs;
320
+ if (item.sm)
321
+ sizeProps.sm = item.sm;
322
+ if (item.md)
323
+ sizeProps.md = item.md;
324
+ if (item.lg)
325
+ sizeProps.lg = item.lg;
326
+ if (item.xl)
327
+ sizeProps.xl = item.xl;
328
+ if (item.onXs)
329
+ sizeProps.xs = item.onXs(info);
330
+ if (item.onSm)
331
+ sizeProps.sm = item.onSm(info);
332
+ if (item.onMd)
333
+ sizeProps.md = item.onMd(info);
334
+ if (item.onLg)
335
+ sizeProps.lg = item.onLg(info);
336
+ if (item.onXl)
337
+ sizeProps.xl = item.onXl(info);
338
+ return { item: item, data: data, copyToClipboardText: copyToClipboardText, sizeProps: sizeProps };
339
+ });
340
+ }, [info, items, cols]);
341
+ var content = useMemo(function () {
342
+ return renderItems.map(function (_a, idx) {
343
+ var item = _a.item, data = _a.data, copyToClipboardText = _a.copyToClipboardText, sizeProps = _a.sizeProps;
344
+ var finalLabelColor = typographyColorToSxColor(item.type === 'divider' ? item.dividerColor || dividerColor : item.labelColor || labelColor);
345
+ var finalLabelSx = combineSx(labelSx, item.labelSx, !!finalLabelColor && { color: finalLabelColor });
346
+ var finalValueSx = combineSx(valueSx, item.valueSx);
347
+ var valueUnderlineStyle = valueUnderline
348
+ ? { borderBottom: '1px solid #efefef', paddingBottom: 5 }
349
+ : undefined;
350
+ return item.type === 'divider' ? (React__default.createElement(Grid, { key: idx, size: { xs: 12 } },
351
+ React__default.createElement(Stack, { direction: 'row', spacing: 0.5, alignItems: 'center' },
352
+ item.icon && (React__default.createElement(PIcon, { sx: { color: item.dividerColor || dividerColor }, size: 'small' }, item.icon)),
353
+ item.label && (React__default.createElement(Label, { className: classNames(labelClassName, item.labelClassName), style: __assign$2(__assign$2({}, item.labelStyle), labelStyle), sx: finalLabelSx }, item.label)),
354
+ item.dividerLine && (React__default.createElement(React__default.Fragment, null, item.icon || item.label ? (React__default.createElement("div", { style: { flex: 1, paddingLeft: 5 } },
355
+ React__default.createElement(Line, null))) : (React__default.createElement(Line, null))))))) : (React__default.createElement(Grid, { key: idx, size: sizeProps, className: item.className, style: item.style, sx: item.sx },
356
+ React__default.createElement(Stack, { direction: 'row', spacing: 0.5, alignItems: 'center' },
357
+ item.icon && (React__default.createElement(PIcon, { sx: { color: finalLabelColor }, size: 'small' }, "CalendarMonth")),
358
+ React__default.createElement(Label, { className: classNames(labelClassName, item.labelClassName), style: __assign$2(__assign$2({}, item.labelStyle), labelStyle), sx: finalLabelSx }, item.label)),
359
+ React__default.createElement(ValueWrap, { className: classNames(valueClassName, item.valueClassName), style: __assign$2(__assign$2(__assign$2({}, valueStyle), item.valueStyle), valueUnderlineStyle), sx: finalValueSx },
360
+ item.ellipsis || ellipsis ? React__default.createElement(ValueEllipsis, null, data) : React__default.createElement(Value, null, data),
361
+ item.clipboard && notEmpty(copyToClipboardText) && (React__default.createElement(ValueClipboard, null,
362
+ React__default.createElement(PCopyToClipboard, { text: copyToClipboardText, onCopy: onCopyToClipboard ? function () { return onCopyToClipboard(item, copyToClipboardText); } : undefined },
363
+ React__default.createElement(ClipboardIconButton, __assign$2({ size: 'small', color: 'primary' }, item.clipboardProps),
364
+ React__default.createElement(PIcon, null, item.clipboardIcon || 'ContentPaste'))))))));
365
+ });
366
+ }, [
367
+ dividerColor,
368
+ ellipsis,
369
+ labelClassName,
370
+ labelColor,
371
+ labelStyle,
372
+ labelSx,
373
+ onCopyToClipboard,
374
+ renderItems,
375
+ valueClassName,
376
+ valueStyle,
377
+ valueSx,
378
+ valueUnderline,
379
+ ]);
380
+ /********************************************************************************************************************
381
+ * Render
382
+ * ******************************************************************************************************************/
383
+ return (React__default.createElement(Grid, { container: true, spacing: spacing, columnSpacing: columnSpacing, rowSpacing: rowSpacing, className: classNames('PInfoTable', className), style: style, sx: sx }, content));
384
+ };/**
142
385
  * Checks if `value` is the
143
386
  * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
144
387
  * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
@@ -1006,55 +1249,21 @@ function useResizeDetector({ skipOnMount = false, refreshMode, refreshRate = 100
1006
1249
  (_a = resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect) === null || _a === void 0 ? void 0 : _a.call(resizeObserver);
1007
1250
  (_c = (_b = resizeHandler).cancel) === null || _c === void 0 ? void 0 : _c.call(_b);
1008
1251
  };
1009
- }, [resizeHandler, refElement]);
1010
- return Object.assign({ ref: refProxy }, size);
1011
- }var StyledBodyRow = styled(TableRow)(function (_a) {
1012
- var theme = _a.theme;
1013
- return ({
1014
- '&.odd-color:nth-of-type(odd):not(:hover)': {
1015
- backgroundColor: lighten(theme.palette.action.hover, 0.4),
1016
- },
1017
- '&.even-color:nth-of-type(even):not(:hover)': {
1018
- backgroundColor: lighten(theme.palette.action.hover, 0.4),
1019
- },
1020
- });
1021
- });
1022
- var StyledNoDataDiv = styled('div')(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n text-align: center;\n padding: 30px 0;\n font-weight: 500;\n font-size: 13px;\n color: #94a0b2;\n opacity: 0.8;\n\n .material-icons {\n font-size: 40px;\n margin-bottom: 5px;\n }\n"], ["\n text-align: center;\n padding: 30px 0;\n font-weight: 500;\n font-size: 13px;\n color: #94a0b2;\n opacity: 0.8;\n\n .material-icons {\n font-size: 40px;\n margin-bottom: 5px;\n }\n"])));
1023
- var templateObject_1$4;function getTableColumnAlign(column, defaultAlign) {
1024
- switch (column.type) {
1025
- case 'number':
1026
- return column.align ? column.align : 'right';
1027
- default:
1028
- return column.align || defaultAlign;
1029
- }
1030
- }
1031
- function combineSx() {
1032
- var sx = [];
1033
- for (var _i = 0; _i < arguments.length; _i++) {
1034
- sx[_i] = arguments[_i];
1035
- }
1036
- var finalSx = [];
1037
- if (Array.isArray(finalSx)) {
1038
- sx.forEach(function (v) { return v && finalSx.push.apply(finalSx, (Array.isArray(v) ? v : [v])); });
1039
- }
1040
- return finalSx;
1041
- }
1042
- function typographyColorToSxColor(color) {
1043
- if (typeof color === 'string') {
1044
- if (['primary', 'secondary', 'info', 'warning', 'error'].includes(color)) {
1045
- return "".concat(color, ".main");
1046
- }
1047
- else if (color === 'text') {
1048
- return 'text.primary';
1049
- }
1050
- else {
1051
- return color;
1052
- }
1053
- }
1054
- else {
1055
- return color;
1056
- }
1057
- }var PTableContextDefaultValue = {
1252
+ }, [resizeHandler, refElement]);
1253
+ return Object.assign({ ref: refProxy }, size);
1254
+ }var StyledBodyRow = styled(TableRow)(function (_a) {
1255
+ var theme = _a.theme;
1256
+ return ({
1257
+ '&.odd-color:nth-of-type(odd):not(:hover)': {
1258
+ backgroundColor: lighten(theme.palette.action.hover, 0.4),
1259
+ },
1260
+ '&.even-color:nth-of-type(even):not(:hover)': {
1261
+ backgroundColor: lighten(theme.palette.action.hover, 0.4),
1262
+ },
1263
+ });
1264
+ });
1265
+ var StyledNoDataDiv = styled('div')(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n text-align: center;\n padding: 30px 0;\n font-weight: 500;\n font-size: 13px;\n color: #94a0b2;\n opacity: 0.8;\n\n .material-icons {\n font-size: 40px;\n margin-bottom: 5px;\n }\n"], ["\n text-align: center;\n padding: 30px 0;\n font-weight: 500;\n font-size: 13px;\n color: #94a0b2;\n opacity: 0.8;\n\n .material-icons {\n font-size: 40px;\n margin-bottom: 5px;\n }\n"])));
1266
+ var templateObject_1$3;var PTableContextDefaultValue = {
1058
1267
  menuOpen: false,
1059
1268
  openMenuId: undefined,
1060
1269
  setMenuOpen: function () { },
@@ -1069,7 +1278,7 @@ function typographyColorToSxColor(color) {
1069
1278
  throw new Error('useFormState should be used within TableContext.Provider');
1070
1279
  }
1071
1280
  return value;
1072
- }var StyledTableCell = styled(TableCell)(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n &.ellipsis {\n position: relative;\n max-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n"], ["\n &.ellipsis {\n position: relative;\n max-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n"])));
1281
+ }var StyledTableCell = styled(TableCell)(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["\n &.ellipsis {\n position: relative;\n max-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n"], ["\n &.ellipsis {\n position: relative;\n max-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n"])));
1073
1282
  var PTableCommonCell = React__default.forwardRef(function (_a, ref) {
1074
1283
  /********************************************************************************************************************
1075
1284
  * Use
@@ -1226,7 +1435,7 @@ var PTableCommonCell = React__default.forwardRef(function (_a, ref) {
1226
1435
  * ******************************************************************************************************************/
1227
1436
  return (React__default.createElement(StyledTableCell, { ref: ref, align: align, className: classNames(className, 'PTableCommonCell', ellipsis && 'ellipsis', column.type ? "column-type-".concat(column.type) : false), style: style, sx: sx, onClick: type === 'body' ? handleClick : undefined }, children));
1228
1437
  });
1229
- var templateObject_1$3;var PTableFooterCell = function (_a) {
1438
+ var templateObject_1$2;var PTableFooterCell = function (_a) {
1230
1439
  /********************************************************************************************************************
1231
1440
  * Memo
1232
1441
  * ******************************************************************************************************************/
@@ -1340,7 +1549,7 @@ var templateObject_1$3;var PTableFooterCell = function (_a) {
1340
1549
  * Render
1341
1550
  * ******************************************************************************************************************/
1342
1551
  return (React__default.createElement(PTableCommonCell, { type: 'head', className: 'PTableHeadCell', style: top !== undefined ? { top: top } : undefined, column: column, defaultAlign: defaultAlign }, data));
1343
- };var BottomLine = styled('div')(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["\n height: 1px;\n position: absolute;\n left: 3px;\n right: 3px;\n bottom: 0;\n"], ["\n height: 1px;\n position: absolute;\n left: 3px;\n right: 3px;\n bottom: 0;\n"])));
1552
+ };var BottomLine = styled('div')(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n height: 1px;\n position: absolute;\n left: 3px;\n right: 3px;\n bottom: 0;\n"], ["\n height: 1px;\n position: absolute;\n left: 3px;\n right: 3px;\n bottom: 0;\n"])));
1344
1553
  var PTableTopHead = function (_a) {
1345
1554
  /********************************************************************************************************************
1346
1555
  * Use
@@ -1439,7 +1648,7 @@ var PTableTopHead = function (_a) {
1439
1648
  columnRow));
1440
1649
  }
1441
1650
  };
1442
- var templateObject_1$2;/**
1651
+ var templateObject_1$1;/**
1443
1652
  * Checks if `value` is the
1444
1653
  * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
1445
1654
  * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
@@ -3046,19 +3255,7 @@ SimpleBar.displayName = 'SimpleBar';var makeSortableItems = function (items) {
3046
3255
  }
3047
3256
 
3048
3257
  }
3049
- });var dayjs_min$1 = {exports: {}};var dayjs_min = dayjs_min$1.exports;
3050
-
3051
- var hasRequiredDayjs_min;
3052
-
3053
- function requireDayjs_min () {
3054
- if (hasRequiredDayjs_min) return dayjs_min$1.exports;
3055
- hasRequiredDayjs_min = 1;
3056
- (function (module, exports) {
3057
- !function(t,e){module.exports=e();}(dayjs_min,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,true),this.parse(t),this.$x=this.$x||t.x||{},this[p]=true;}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return b},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,false)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case "YY":return String(e.$y).slice(-2);case "YYYY":return b.s(e.$y,4,"0");case "M":return a+1;case "MM":return b.s(a+1,2,"0");case "MMM":return h(n.monthsShort,a,c,3);case "MMMM":return h(c,a);case "D":return e.$D;case "DD":return b.s(e.$D,2,"0");case "d":return String(e.$W);case "dd":return h(n.weekdaysMin,e.$W,o,2);case "ddd":return h(n.weekdaysShort,e.$W,o,3);case "dddd":return o[e.$W];case "H":return String(s);case "HH":return b.s(s,2,"0");case "h":return d(1);case "hh":return d(2);case "a":return $(s,u,true);case "A":return $(s,u,false);case "m":return String(u);case "mm":return b.s(u,2,"0");case "s":return String(e.$s);case "ss":return b.s(e.$s,2,"0");case "SSS":return b.s(e.$ms,3,"0");case "Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g;}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,true);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=true),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));
3058
- } (dayjs_min$1));
3059
- return dayjs_min$1.exports;
3060
- }var dayjs_minExports = requireDayjs_min();
3061
- var dayjs = /*@__PURE__*/getDefaultExportFromCjs(dayjs_minExports);var StyledButtonsBox = styled(Box)(templateObject_1$1 || (templateObject_1$1 = __makeTemplateObject(["\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n"], ["\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n"])));
3258
+ });var StyledButtonsBox = styled(Box)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n"], ["\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n"])));
3062
3259
  var PTableBodyCell = React__default.forwardRef(function (_a, ref) {
3063
3260
  /********************************************************************************************************************
3064
3261
  * Use
@@ -3250,7 +3447,7 @@ var PTableBodyCell = React__default.forwardRef(function (_a, ref) {
3250
3447
  * ******************************************************************************************************************/
3251
3448
  return (React__default.createElement(PTableCommonCell, { ref: ref, type: 'body', className: classNames('PTableBodyCell', className), style: style, sx: sx, column: column, defaultAlign: defaultAlign, defaultEllipsis: defaultEllipsis, item: item, index: index, onClick: column.onClick || onClick ? handleClick : undefined }, !isHidden && data));
3252
3449
  });
3253
- var templateObject_1$1;var PStyledBodyRow = styled(TableRow)(function (_a) {
3450
+ var templateObject_1;var PStyledBodyRow = styled(TableRow)(function (_a) {
3254
3451
  var theme = _a.theme;
3255
3452
  return ({
3256
3453
  '&.odd-color:nth-of-type(odd):not(:hover)': {
@@ -3679,61 +3876,52 @@ var PTable = React__default.forwardRef(function (_a, ref) {
3679
3876
  /********************************************************************************************************************
3680
3877
  * Commands
3681
3878
  * ******************************************************************************************************************/
3682
- useLayoutEffect(function () {
3683
- if (ref) {
3684
- var lastColumns_1 = columns;
3685
- var lastItems_1 = items;
3686
- var lastPaging_1 = paging;
3687
- var commands = {
3688
- getColumns: function () { return lastColumns_1; },
3689
- setColumns: function (columns) {
3690
- lastColumns_1 = columns;
3691
- setColumns(lastColumns_1);
3692
- },
3693
- getItems: function () { return lastItems_1; },
3694
- setItems: function (items) {
3695
- lastItems_1 = items;
3696
- setItems(items);
3697
- },
3698
- getPaging: function () { return lastPaging_1; },
3699
- setItemsPaging: function (items, paging) {
3700
- lastItems_1 = items;
3701
- lastPaging_1 = paging;
3702
- setItems(lastItems_1);
3703
- setPaging(lastPaging_1);
3704
- },
3705
- resetSort: function () {
3706
- setSortableItems(makeSortableItems(lastItems_1));
3707
- },
3708
- getCheckedItems: getCheckedItems,
3709
- getChecked: getChecked,
3710
- setChecked: setChecked,
3711
- toggleChecked: toggleChecked,
3712
- setCheckedAll: setCheckedAll,
3713
- scrollToTop: simpleBarScrollToTop,
3714
- };
3715
- if (typeof ref === 'function') {
3716
- ref(commands);
3717
- }
3718
- else {
3719
- ref.current = commands;
3720
- }
3721
- }
3879
+ useForwardLayoutRef(ref, useMemo(function () {
3880
+ var lastColumns = columns;
3881
+ var lastItems = items;
3882
+ var lastPaging = paging;
3883
+ return {
3884
+ getColumns: function () { return lastColumns; },
3885
+ setColumns: function (columns) {
3886
+ lastColumns = columns;
3887
+ setColumns(lastColumns);
3888
+ },
3889
+ getItems: function () { return lastItems; },
3890
+ setItems: function (items) {
3891
+ lastItems = items;
3892
+ setItems(items);
3893
+ },
3894
+ getPaging: function () { return lastPaging; },
3895
+ setItemsPaging: function (items, paging) {
3896
+ lastItems = items;
3897
+ lastPaging = paging;
3898
+ setItems(lastItems);
3899
+ setPaging(lastPaging);
3900
+ },
3901
+ resetSort: function () {
3902
+ setSortableItems(makeSortableItems(lastItems));
3903
+ },
3904
+ getCheckedItems: getCheckedItems,
3905
+ getChecked: getChecked,
3906
+ setChecked: setChecked,
3907
+ toggleChecked: toggleChecked,
3908
+ setCheckedAll: setCheckedAll,
3909
+ scrollToTop: simpleBarScrollToTop,
3910
+ };
3722
3911
  }, [
3723
- ref,
3724
3912
  columns,
3913
+ getChecked,
3914
+ getCheckedItems,
3725
3915
  items,
3726
3916
  paging,
3917
+ setChecked,
3918
+ setCheckedAll,
3727
3919
  setColumns,
3728
3920
  setItems,
3729
3921
  setPaging,
3730
- getCheckedItems,
3731
3922
  simpleBarScrollToTop,
3732
- setChecked,
3733
3923
  toggleChecked,
3734
- getChecked,
3735
- setCheckedAll,
3736
- ]);
3924
+ ]));
3737
3925
  /********************************************************************************************************************
3738
3926
  * Event Handler
3739
3927
  * ******************************************************************************************************************/
@@ -4138,45 +4326,35 @@ var deHash = function () {
4138
4326
  /********************************************************************************************************************
4139
4327
  * Commands
4140
4328
  * ******************************************************************************************************************/
4141
- useLayoutEffect(function () {
4142
- if (ref) {
4143
- var commands = {
4144
- reload: function (page) {
4145
- var _a, _b, _c, _d;
4146
- if (page != null) {
4147
- (_a = tableRef.current) === null || _a === void 0 ? void 0 : _a.scrollToTop();
4148
- }
4149
- var finalData;
4150
- if (lastGetDataDataRef.current) {
4151
- finalData = __assign$2({}, lastGetDataDataRef.current);
4152
- if (page != null) {
4153
- (_b = searchRef.current) === null || _b === void 0 ? void 0 : _b.setValue('page', page);
4154
- finalData.page = page;
4155
- }
4156
- }
4157
- else {
4158
- if (hash) {
4159
- hashToSearchValue();
4160
- }
4161
- if (page != null) {
4162
- (_c = searchRef.current) === null || _c === void 0 ? void 0 : _c.setValue('page', page);
4163
- }
4164
- finalData = ((_d = searchRef.current) === null || _d === void 0 ? void 0 : _d.getAllFormValue()) || {};
4165
- }
4166
- getData(finalData);
4167
- },
4168
- getLastLoadData: function () { return lastGetDataDataRef.current || {}; },
4169
- getSearch: function () { return searchRef.current; },
4170
- getTable: function () { return tableRef.current; },
4171
- };
4172
- if (typeof ref === 'function') {
4173
- ref(commands);
4329
+ useForwardLayoutRef(ref, useMemo(function () { return ({
4330
+ reload: function (page) {
4331
+ var _a, _b, _c, _d;
4332
+ if (page != null) {
4333
+ (_a = tableRef.current) === null || _a === void 0 ? void 0 : _a.scrollToTop();
4334
+ }
4335
+ var finalData;
4336
+ if (lastGetDataDataRef.current) {
4337
+ finalData = __assign$2({}, lastGetDataDataRef.current);
4338
+ if (page != null) {
4339
+ (_b = searchRef.current) === null || _b === void 0 ? void 0 : _b.setValue('page', page);
4340
+ finalData.page = page;
4341
+ }
4174
4342
  }
4175
4343
  else {
4176
- ref.current = commands;
4344
+ if (hash) {
4345
+ hashToSearchValue();
4346
+ }
4347
+ if (page != null) {
4348
+ (_c = searchRef.current) === null || _c === void 0 ? void 0 : _c.setValue('page', page);
4349
+ }
4350
+ finalData = ((_d = searchRef.current) === null || _d === void 0 ? void 0 : _d.getAllFormValue()) || {};
4177
4351
  }
4178
- }
4179
- }, [ref, hash, lastGetDataDataRef, searchRef, tableRef, getData, hashToSearchValue]);
4352
+ getData(finalData);
4353
+ },
4354
+ getLastLoadData: function () { return lastGetDataDataRef.current || {}; },
4355
+ getSearch: function () { return searchRef.current; },
4356
+ getTable: function () { return tableRef.current; },
4357
+ }); }, [getData, hash, hashToSearchValue]));
4180
4358
  /********************************************************************************************************************
4181
4359
  * hash
4182
4360
  * ******************************************************************************************************************/
@@ -4513,201 +4691,4 @@ var PTableButton$1 = React__default.memo(PTableButton);var PTableMenuButton = Re
4513
4691
  React__default.createElement(Paper, null,
4514
4692
  React__default.createElement(ClickAwayListener, { onClickAway: handleClose }, finalMenuList))));
4515
4693
  })));
4516
- });var Label = styled(Box)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n font-size: 12px;\n font-weight: bold;\n"], ["\n font-size: 12px;\n font-weight: bold;\n"])));
4517
- var ValueWrap = styled(Box)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n margin-top: 3px;\n position: relative;\n display: flex;\n flex-direction: row;\n"], ["\n margin-top: 3px;\n position: relative;\n display: flex;\n flex-direction: row;\n"])));
4518
- var Value = styled('div')(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n flex: 1;\n"], ["\n flex: 1;\n"])));
4519
- var ValueEllipsis = styled('div')(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n flex: 1;\n position: relative;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"], ["\n flex: 1;\n position: relative;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
4520
- var ValueClipboard = styled('div')(templateObject_5 || (templateObject_5 = __makeTemplateObject([""], [""])));
4521
- var ClipboardIconButton = styled(IconButton)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n margin-top: -10px;\n margin-bottom: -10px;\n"], ["\n margin-top: -10px;\n margin-bottom: -10px;\n"])));
4522
- var Line = styled('div')(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n border-top: 1px solid #efefef;\n height: 1px;\n flex: 1;\n"], ["\n border-top: 1px solid #efefef;\n height: 1px;\n flex: 1;\n"])));
4523
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;var PInfoTable = function (_a) {
4524
- /********************************************************************************************************************
4525
- * Memo
4526
- * ******************************************************************************************************************/
4527
- var cols = _a.cols, _b = _a.spacing, spacing = _b === void 0 ? 2 : _b, columnSpacing = _a.columnSpacing, _c = _a.rowSpacing, rowSpacing = _c === void 0 ? 3 : _c, className = _a.className, style = _a.style, sx = _a.sx, labelClassName = _a.labelClassName, _d = _a.labelColor, labelColor = _d === void 0 ? 'primary' : _d, labelStyle = _a.labelStyle, labelSx = _a.labelSx, _e = _a.dividerColor, dividerColor = _e === void 0 ? 'gray' : _e, valueClassName = _a.valueClassName, valueStyle = _a.valueStyle, valueSx = _a.valueSx, ellipsis = _a.ellipsis, valueUnderline = _a.valueUnderline, info = _a.info, items = _a.items, onCopyToClipboard = _a.onCopyToClipboard;
4528
- var renderItems = useMemo(function () {
4529
- return items.filter(function (item) { return !!item && (!item.onHide || !item.onHide(info)); }).map(function (item) {
4530
- /** data */
4531
- var data = undefined;
4532
- if (item.name !== undefined) {
4533
- if (info[item.name] !== undefined) {
4534
- if (info[item.name] instanceof Date) {
4535
- data = dayjs(info[item.name]).format('YYYY-MM-DD HH:mm:ss');
4536
- }
4537
- else if (info[item.name] instanceof dayjs) {
4538
- data = info[item.name].format('YYYY-MM-DD HH:mm:ss');
4539
- }
4540
- else {
4541
- data = info[item.name];
4542
- }
4543
- }
4544
- }
4545
- if (item.onRender) {
4546
- data = item.onRender(info);
4547
- }
4548
- else if (notEmpty(data)) {
4549
- switch (item.type) {
4550
- case 'number':
4551
- if (typeof data === 'string' || typeof data === 'number') {
4552
- data = formatNumber(data);
4553
- if (item.numberPrefix) {
4554
- data = (React__default.createElement(React__default.Fragment, null,
4555
- React__default.createElement("span", { style: { opacity: 0.5, marginRight: 2 } }, item.numberPrefix),
4556
- data));
4557
- }
4558
- if (item.numberSuffix) {
4559
- data = (React__default.createElement(React__default.Fragment, null,
4560
- data,
4561
- React__default.createElement("span", { style: { opacity: 0.5, marginLeft: 2 } }, item.numberSuffix)));
4562
- }
4563
- }
4564
- break;
4565
- case 'tel':
4566
- if (typeof data === 'string') {
4567
- data = formatTelNo(data);
4568
- }
4569
- break;
4570
- case 'email':
4571
- if (typeof data === 'string') {
4572
- data = (React__default.createElement(React__default.Fragment, null,
4573
- React__default.createElement("a", { href: "mailto:".concat(data) }, data)));
4574
- }
4575
- break;
4576
- case 'url':
4577
- if (typeof data === 'string' && data.toLowerCase().startsWith('http')) {
4578
- data = (React__default.createElement(React__default.Fragment, null,
4579
- React__default.createElement("a", { href: data, target: '_blank' }, data)));
4580
- }
4581
- break;
4582
- case 'business_no':
4583
- if (typeof data === 'string') {
4584
- data = formatBusinessNo(data);
4585
- }
4586
- break;
4587
- case 'personal_no':
4588
- if (typeof data === 'string') {
4589
- data = formatPersonalNo(data);
4590
- }
4591
- break;
4592
- case 'date':
4593
- if (typeof data === 'string' || typeof data === 'number') {
4594
- data = dayjs(data, item.dateFormat).format('YYYY-MM-DD');
4595
- }
4596
- break;
4597
- case 'datetime':
4598
- if (typeof data === 'string' || typeof data === 'number') {
4599
- var dt = dayjs(data, item.dateFormat);
4600
- data = (React__default.createElement(React__default.Fragment, null,
4601
- React__default.createElement("span", null, dt.format('YYYY-MM-DD')),
4602
- item.dateTwoLine ? React__default.createElement("br", null) : ' ',
4603
- React__default.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH:mm:ss'))));
4604
- }
4605
- break;
4606
- case 'date-hour':
4607
- if (typeof data === 'string' || typeof data === 'number') {
4608
- var dt = dayjs(data, item.dateFormat);
4609
- data = (React__default.createElement(React__default.Fragment, null,
4610
- React__default.createElement("span", null, dt.format('YYYY-MM-DD')),
4611
- item.dateTwoLine ? React__default.createElement("br", null) : ' ',
4612
- React__default.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH시'))));
4613
- }
4614
- break;
4615
- case 'date-minute':
4616
- if (typeof data === 'string' || typeof data === 'number') {
4617
- var dt = dayjs(data, item.dateFormat);
4618
- data = (React__default.createElement(React__default.Fragment, null,
4619
- React__default.createElement("span", null, dt.format('YYYY-MM-DD')),
4620
- item.dateTwoLine ? React__default.createElement("br", null) : ' ',
4621
- React__default.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH시 MM분'))));
4622
- }
4623
- break;
4624
- }
4625
- }
4626
- if (empty(data))
4627
- data = item.onRenderEmpty ? item.onRenderEmpty(info) : React__default.createElement(React__default.Fragment, null, "\u00A0");
4628
- /** copyToClipboardText */
4629
- var copyToClipboardText = item.clipboardText || (typeof data === 'string' ? data : typeof data === 'number' ? data.toString() : '');
4630
- /** sizeProps */
4631
- var sizeProps = {};
4632
- if (typeof cols === 'number') {
4633
- sizeProps.xs = 12 / cols;
4634
- }
4635
- else {
4636
- if (cols.xs)
4637
- sizeProps.xs = 12 / cols.xs;
4638
- if (cols.sm)
4639
- sizeProps.sm = 12 / cols.sm;
4640
- if (cols.md)
4641
- sizeProps.md = 12 / cols.md;
4642
- if (cols.lg)
4643
- sizeProps.lg = 12 / cols.lg;
4644
- if (cols.xl)
4645
- sizeProps.xl = 12 / cols.xl;
4646
- }
4647
- if (item.xs)
4648
- sizeProps.xs = item.xs;
4649
- if (item.sm)
4650
- sizeProps.sm = item.sm;
4651
- if (item.md)
4652
- sizeProps.md = item.md;
4653
- if (item.lg)
4654
- sizeProps.lg = item.lg;
4655
- if (item.xl)
4656
- sizeProps.xl = item.xl;
4657
- if (item.onXs)
4658
- sizeProps.xs = item.onXs(info);
4659
- if (item.onSm)
4660
- sizeProps.sm = item.onSm(info);
4661
- if (item.onMd)
4662
- sizeProps.md = item.onMd(info);
4663
- if (item.onLg)
4664
- sizeProps.lg = item.onLg(info);
4665
- if (item.onXl)
4666
- sizeProps.xl = item.onXl(info);
4667
- return { item: item, data: data, copyToClipboardText: copyToClipboardText, sizeProps: sizeProps };
4668
- });
4669
- }, [info, items, cols]);
4670
- var content = useMemo(function () {
4671
- return renderItems.map(function (_a, idx) {
4672
- var item = _a.item, data = _a.data, copyToClipboardText = _a.copyToClipboardText, sizeProps = _a.sizeProps;
4673
- var finalLabelColor = typographyColorToSxColor(item.type === 'divider' ? item.dividerColor || dividerColor : item.labelColor || labelColor);
4674
- var finalLabelSx = combineSx(labelSx, item.labelSx, !!finalLabelColor && { color: finalLabelColor });
4675
- var finalValueSx = combineSx(valueSx, item.valueSx);
4676
- var valueUnderlineStyle = valueUnderline
4677
- ? { borderBottom: '1px solid #efefef', paddingBottom: 5 }
4678
- : undefined;
4679
- return item.type === 'divider' ? (React__default.createElement(Grid, { key: idx, size: { xs: 12 } },
4680
- React__default.createElement(Stack, { direction: 'row', spacing: 0.5, alignItems: 'center' },
4681
- item.icon && (React__default.createElement(PIcon, { sx: { color: item.dividerColor || dividerColor }, size: 'small' }, item.icon)),
4682
- item.label && (React__default.createElement(Label, { className: classNames(labelClassName, item.labelClassName), style: __assign$2(__assign$2({}, item.labelStyle), labelStyle), sx: finalLabelSx }, item.label)),
4683
- item.dividerLine && (React__default.createElement(React__default.Fragment, null, item.icon || item.label ? (React__default.createElement("div", { style: { flex: 1, paddingLeft: 5 } },
4684
- React__default.createElement(Line, null))) : (React__default.createElement(Line, null))))))) : (React__default.createElement(Grid, { key: idx, size: sizeProps, className: item.className, style: item.style, sx: item.sx },
4685
- React__default.createElement(Stack, { direction: 'row', spacing: 0.5, alignItems: 'center' },
4686
- item.icon && (React__default.createElement(PIcon, { sx: { color: finalLabelColor }, size: 'small' }, "CalendarMonth")),
4687
- React__default.createElement(Label, { className: classNames(labelClassName, item.labelClassName), style: __assign$2(__assign$2({}, item.labelStyle), labelStyle), sx: finalLabelSx }, item.label)),
4688
- React__default.createElement(ValueWrap, { className: classNames(valueClassName, item.valueClassName), style: __assign$2(__assign$2(__assign$2({}, valueStyle), item.valueStyle), valueUnderlineStyle), sx: finalValueSx },
4689
- item.ellipsis || ellipsis ? React__default.createElement(ValueEllipsis, null, data) : React__default.createElement(Value, null, data),
4690
- item.clipboard && notEmpty(copyToClipboardText) && (React__default.createElement(ValueClipboard, null,
4691
- React__default.createElement(PCopyToClipboard, { text: copyToClipboardText, onCopy: onCopyToClipboard ? function () { return onCopyToClipboard(item, copyToClipboardText); } : undefined },
4692
- React__default.createElement(ClipboardIconButton, __assign$2({ size: 'small', color: 'primary' }, item.clipboardProps),
4693
- React__default.createElement(PIcon, null, item.clipboardIcon || 'ContentPaste'))))))));
4694
- });
4695
- }, [
4696
- dividerColor,
4697
- ellipsis,
4698
- labelClassName,
4699
- labelColor,
4700
- labelStyle,
4701
- labelSx,
4702
- onCopyToClipboard,
4703
- renderItems,
4704
- valueClassName,
4705
- valueStyle,
4706
- valueSx,
4707
- valueUnderline,
4708
- ]);
4709
- /********************************************************************************************************************
4710
- * Render
4711
- * ******************************************************************************************************************/
4712
- return (React__default.createElement(Grid, { container: true, spacing: spacing, columnSpacing: columnSpacing, rowSpacing: rowSpacing, className: classNames('PInfoTable', className), style: style, sx: sx }, content));
4713
- };export{PInfoTable,PSearchTable,PTable,PTableButton$1 as PTableButton,PTableMenuButton};
4694
+ });export{PInfoTable,PSearchTable,PTable,PTableBodyCell,PTableBodyRow,PTableButton$1 as PTableButton,PTableCommonCell,PTableFooterCell,PTableHeadCell,PTableMenuButton,PTablePagination,PTableSortableBody,PTableSortableBodyBlock,PTableTopHead};