next-recomponents 1.3.5 → 1.3.6

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.mjs CHANGED
@@ -11110,9 +11110,6 @@ var regularExpresions = {
11110
11110
  };
11111
11111
  var regular_expresions_default = regularExpresions;
11112
11112
 
11113
- // src/table/index.tsx
11114
- import { useState as useState7 } from "react";
11115
-
11116
11113
  // src/table/h.tsx
11117
11114
  import React4, { useEffect as useEffect7, useMemo as useMemo7, useRef as useRef4, useState as useState6 } from "react";
11118
11115
 
@@ -11126,7 +11123,6 @@ function TD(_a) {
11126
11123
  index,
11127
11124
  color: color2,
11128
11125
  symbols,
11129
- handlers,
11130
11126
  mapedData,
11131
11127
  setMapedData
11132
11128
  } = _b, props = __objRest(_b, [
@@ -11135,11 +11131,10 @@ function TD(_a) {
11135
11131
  "index",
11136
11132
  "color",
11137
11133
  "symbols",
11138
- "handlers",
11139
11134
  "mapedData",
11140
11135
  "setMapedData"
11141
11136
  ]);
11142
- var _a2, _b2, _c, _d;
11137
+ var _a2, _b2;
11143
11138
  const [isHidded, setIsHidded] = useState4(false);
11144
11139
  const newProps = symbols && React3.isValidElement(symbols[item == null ? void 0 : item.name]) && ((_b2 = Object.keys((_a2 = symbols[item == null ? void 0 : item.name]) == null ? void 0 : _a2.props)) == null ? void 0 : _b2.reduce(
11145
11140
  (acc, i) => {
@@ -11159,65 +11154,58 @@ function TD(_a) {
11159
11154
  },
11160
11155
  { defaultValue: item == null ? void 0 : item.content }
11161
11156
  ));
11162
- const newProps2 = handlers && React3.isValidElement(handlers[item == null ? void 0 : item.name]) && ((_d = Object.keys((_c = handlers[item == null ? void 0 : item.name]) == null ? void 0 : _c.props)) == null ? void 0 : _d.reduce(
11163
- (acc, i) => {
11164
- try {
11165
- const newAcc = __spreadValues({}, acc);
11166
- const hasEvent = `${i}`.startsWith("on");
11167
- if (hasEvent) {
11168
- newAcc[i] = (e) => {
11169
- var _a3, _b3;
11170
- e.item = item;
11171
- (_b3 = (_a3 = handlers[item == null ? void 0 : item.name].props)[i]) == null ? void 0 : _b3.call(_a3, e);
11172
- if (i == "onChange") {
11173
- const newData = [...mapedData];
11174
- newData[index][item == null ? void 0 : item.name].content = e.target.value;
11175
- setMapedData == null ? void 0 : setMapedData(newData);
11176
- }
11177
- };
11178
- }
11179
- return newAcc;
11180
- } catch (error) {
11181
- }
11182
- },
11183
- { value: item == null ? void 0 : item.content }
11184
- ));
11185
11157
  return /* @__PURE__ */ jsx8(
11186
11158
  "td",
11187
11159
  {
11188
11160
  onDoubleClick: (e) => setIsHidded(!isHidded),
11189
- title: item == null ? void 0 : item.title,
11190
11161
  className: [
11191
11162
  isHidded && color2,
11192
11163
  !isHidded && "whitespace-nowrap overflow-hidden text-ellipsis ",
11193
- "border-b max-w-[200px] p-5 ",
11194
- ["number", "money"].includes(item == null ? void 0 : item.cellTypeOf) && "text-right"
11164
+ "border-b max-w-[200px] p-5 "
11165
+ // ["number", "money"].includes(item?.cellTypeOf) && "text-right",
11195
11166
  ].join(" "),
11196
- children: handlers && handlers[item == null ? void 0 : item.name] ? /* @__PURE__ */ jsx8("div", { children: React3.Children.map(handlers[item == null ? void 0 : item.name], (child) => {
11197
- if (React3.isValidElement(child)) {
11198
- return React3.cloneElement(child, __spreadValues({}, newProps2));
11199
- }
11200
- }) }) : /* @__PURE__ */ jsxs6(
11201
- "div",
11202
- {
11203
- className: symbols && symbols[item == null ? void 0 : item.name] && "flex justify-between",
11204
- children: [
11205
- /* @__PURE__ */ jsx8("div", { children: symbols && React3.Children.map(symbols[item == null ? void 0 : item.name], (child) => {
11206
- if (React3.isValidElement(child)) {
11207
- return React3.cloneElement(child, __spreadValues({}, newProps));
11167
+ children: /* @__PURE__ */ jsxs6("div", { className: symbols && symbols[item == null ? void 0 : item.name] && "flex justify-between", children: [
11168
+ symbols && /* @__PURE__ */ jsx8("div", { children: React3.Children.map(symbols[item == null ? void 0 : item.name], (child) => {
11169
+ if (React3.isValidElement(child)) {
11170
+ return React3.cloneElement(child, __spreadValues({}, newProps));
11171
+ }
11172
+ return child;
11173
+ }) }),
11174
+ /* @__PURE__ */ jsx8("div", { children: (item == null ? void 0 : item.handler) ? React3.Children.map(item.handler, (handler) => {
11175
+ if (React3.isValidElement(handler)) {
11176
+ return React3.cloneElement(handler, {
11177
+ value: mapedData[index][item.name].content,
11178
+ onChange: (e) => {
11179
+ var _a3, _b3;
11180
+ const nmd = [...mapedData];
11181
+ nmd[index][item.name].content = e.target.value;
11182
+ e.item = Object.assign(
11183
+ {},
11184
+ ...nmd.map(
11185
+ (d) => Object.keys(d).map((k) => ({ [k]: d[k].content }))
11186
+ )[index]
11187
+ );
11188
+ e.setData = (data) => {
11189
+ const nmd2 = [...mapedData];
11190
+ for (let datum in data) {
11191
+ nmd2[index][datum].content = data[datum];
11192
+ }
11193
+ setMapedData == null ? void 0 : setMapedData(nmd2);
11194
+ };
11195
+ setMapedData == null ? void 0 : setMapedData(nmd);
11196
+ (_b3 = (_a3 = handler == null ? void 0 : handler.props) == null ? void 0 : _a3.onChange) == null ? void 0 : _b3.call(_a3, e);
11208
11197
  }
11209
- return child;
11210
- }) }),
11211
- /* @__PURE__ */ jsx8("div", { children: item == null ? void 0 : item.content })
11212
- ]
11213
- }
11214
- )
11198
+ });
11199
+ }
11200
+ return handler;
11201
+ }) : item.content })
11202
+ ] })
11215
11203
  }
11216
11204
  );
11217
11205
  }
11218
11206
 
11219
11207
  // src/table/filters.tsx
11220
- import { jsx as jsx9 } from "react/jsx-runtime";
11208
+ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
11221
11209
  function FilterOffIcon() {
11222
11210
  return /* @__PURE__ */ jsx9(
11223
11211
  "svg",
@@ -11233,6 +11221,24 @@ function FilterOffIcon() {
11233
11221
  }
11234
11222
  );
11235
11223
  }
11224
+ function SaveIcon() {
11225
+ return /* @__PURE__ */ jsxs7(
11226
+ "svg",
11227
+ {
11228
+ stroke: "currentColor",
11229
+ fill: "currentColor",
11230
+ strokeWidth: "0",
11231
+ viewBox: "0 0 512 512",
11232
+ height: "20px",
11233
+ width: "20px",
11234
+ xmlns: "http://www.w3.org/2000/svg",
11235
+ children: [
11236
+ /* @__PURE__ */ jsx9("path", { d: "M272 64h-16c-4.4 0-8 3.6-8 8v72c0 4.4 7.6 8 12 8h12c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8z" }),
11237
+ /* @__PURE__ */ jsx9("path", { d: "M433.9 130.1L382 78.2c-9-9-21.3-14.2-34.1-14.2h-28c-8.8 0-16 7.3-16 16.2v80c0 8.8-7.2 16-16 16H160c-8.8 0-16-7.2-16-16v-80c0-8.8-7.2-16.2-16-16.2H96c-17.6 0-32 14.4-32 32v320c0 17.6 14.4 32 32 32h320c17.6 0 32-14.4 32-32V164c0-12.7-5.1-24.9-14.1-33.9zM322 400.1c0 8.8-8 16-17.8 16H143.8c-9.8 0-17.8-7.2-17.8-16v-96c0-8.8 8-16 17.8-16h160.4c9.8 0 17.8 7.2 17.8 16v96z" })
11238
+ ]
11239
+ }
11240
+ );
11241
+ }
11236
11242
  function ExcelIcon() {
11237
11243
  return /* @__PURE__ */ jsx9(
11238
11244
  "svg",
@@ -11251,7 +11257,7 @@ function ExcelIcon() {
11251
11257
 
11252
11258
  // src/table/filter.menu.tsx
11253
11259
  import { useEffect as useEffect6, useState as useState5 } from "react";
11254
- import { Fragment as Fragment3, jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
11260
+ import { Fragment as Fragment3, jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
11255
11261
  function FilterMenu({
11256
11262
  h,
11257
11263
  mapedData,
@@ -11264,11 +11270,7 @@ function FilterMenu({
11264
11270
  const [newMapedData, setNewMapedData] = useState5([]);
11265
11271
  useEffect6(() => {
11266
11272
  setNewMapedData(
11267
- [
11268
- ...new Set(
11269
- mapedData.filter((md) => md.__visible__ === true).map((md) => md[h])
11270
- )
11271
- ].filter((item) => {
11273
+ [...new Set(mapedData.map((md) => md[h]))].filter((item) => {
11272
11274
  return item && `${item}`.toLowerCase().includes(text.toLowerCase());
11273
11275
  })
11274
11276
  );
@@ -11276,14 +11278,14 @@ function FilterMenu({
11276
11278
  useEffect6(() => {
11277
11279
  setText("");
11278
11280
  }, [selectedFilter]);
11279
- return selectedFilter == index && /* @__PURE__ */ jsxs7(Fragment3, { children: [
11281
+ return selectedFilter == index && /* @__PURE__ */ jsxs8(Fragment3, { children: [
11280
11282
  /* @__PURE__ */ jsx10(
11281
11283
  "div",
11282
11284
  {
11283
11285
  className: "absolute bg-white border rounded min-w-[200px] ",
11284
11286
  style: { zIndex: 9999999 },
11285
- children: /* @__PURE__ */ jsxs7("div", { className: "flex flex-col items-start text-black", children: [
11286
- /* @__PURE__ */ jsxs7(
11287
+ children: /* @__PURE__ */ jsxs8("div", { className: "flex flex-col items-start text-black", children: [
11288
+ /* @__PURE__ */ jsxs8(
11287
11289
  "div",
11288
11290
  {
11289
11291
  className: "flex gap-1 w-full hover:bg-gray-100 p-3 cursor-pointer",
@@ -11317,13 +11319,13 @@ function FilterMenu({
11317
11319
  }
11318
11320
  }
11319
11321
  ) }),
11320
- /* @__PURE__ */ jsx10("div", { className: "px-2 w-full h-[150px]", children: /* @__PURE__ */ jsxs7(
11322
+ /* @__PURE__ */ jsx10("div", { className: "px-2 w-full h-[150px]", children: /* @__PURE__ */ jsxs8(
11321
11323
  "div",
11322
11324
  {
11323
11325
  style: { overflow: "auto" },
11324
11326
  className: "border h-full flex gap-2 flex-col p-1",
11325
11327
  children: [
11326
- /* @__PURE__ */ jsx10("div", { className: "flex gap-2 items-center justify-start ", children: /* @__PURE__ */ jsxs7("label", { children: [
11328
+ /* @__PURE__ */ jsx10("div", { className: "flex gap-2 items-center justify-start ", children: /* @__PURE__ */ jsxs8("label", { children: [
11327
11329
  /* @__PURE__ */ jsx10(
11328
11330
  "input",
11329
11331
  {
@@ -11331,10 +11333,11 @@ function FilterMenu({
11331
11333
  checked: mapedData.map((d) => d[h].exclude).every((d) => d === false),
11332
11334
  onChange: (e) => {
11333
11335
  const nmd = [...mapedData];
11336
+ const all = nmd.map((d) => d[h].exclude).every((d) => d === false);
11334
11337
  setMapedData(
11335
11338
  nmd.map((d) => {
11336
11339
  const newd = __spreadValues({}, d);
11337
- newd[h].exclude = false;
11340
+ newd[h].exclude = all;
11338
11341
  return newd;
11339
11342
  })
11340
11343
  );
@@ -11363,7 +11366,7 @@ function FilterMenu({
11363
11366
  "div",
11364
11367
  {
11365
11368
  className: "flex gap-2 items-center justify-start",
11366
- children: /* @__PURE__ */ jsxs7("label", { children: [
11369
+ children: /* @__PURE__ */ jsxs8("label", { children: [
11367
11370
  /* @__PURE__ */ jsx10(
11368
11371
  "input",
11369
11372
  {
@@ -11414,167 +11417,6 @@ function FilterMenu({
11414
11417
  ] });
11415
11418
  }
11416
11419
 
11417
- // src/table/h.tsx
11418
- import { Fragment as Fragment4, jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
11419
- function HTable(_a) {
11420
- var _b = _a, {
11421
- data,
11422
- mapedData,
11423
- setMapedData,
11424
- symbols,
11425
- totals,
11426
- exportName
11427
- } = _b, props = __objRest(_b, [
11428
- "data",
11429
- "mapedData",
11430
- "setMapedData",
11431
- "symbols",
11432
- "totals",
11433
- "exportName"
11434
- ]);
11435
- const [selected, setSelected] = useState6(null);
11436
- const [selectedFilter, setSelectedFilter] = useState6(null);
11437
- const modalRef = useRef4(null);
11438
- const head = useMemo7(() => {
11439
- return [...new Set(data.map((d) => Object.keys(d)).flat())];
11440
- }, [data]);
11441
- const mapedTotals = useMemo7(() => {
11442
- return mapedData == null ? void 0 : mapedData.reduce((acc, md) => {
11443
- head.forEach((h) => {
11444
- var _a2, _b2;
11445
- const value = isNaN(+((_a2 = md[h]) == null ? void 0 : _a2.content)) ? 0 : +((_b2 = md[h]) == null ? void 0 : _b2.content);
11446
- if (acc[h]) {
11447
- acc[h] += value;
11448
- } else {
11449
- acc[h] = value;
11450
- }
11451
- });
11452
- return acc;
11453
- }, {});
11454
- }, [mapedData]);
11455
- useEffect7(() => {
11456
- const newData = data.map((d, trkey) => {
11457
- const obj = { __visible__: true };
11458
- for (let key in d) {
11459
- const typeOf = typeof d[key];
11460
- const isObject2 = typeOf == "object";
11461
- const isDate = typeOf == "string" && d[key].includes("T");
11462
- const cellTypeOf = isDate ? "date" : isObject2 ? "object" : typeOf;
11463
- const content = cellTypeOf == "date" ? d[key].split("T").join(" ").split(".")[0] : cellTypeOf == "object" ? React4.isValidElement(d[key]) ? d[key] : JSON.stringify(d[key]) : d[key];
11464
- obj[key] = {
11465
- index: trkey,
11466
- originalData: content,
11467
- cellTypeOf,
11468
- title: content,
11469
- content,
11470
- name: key,
11471
- exclude: false
11472
- };
11473
- }
11474
- return obj;
11475
- });
11476
- setMapedData(newData);
11477
- }, [data]);
11478
- return /* @__PURE__ */ jsx11(Fragment4, { children: /* @__PURE__ */ jsxs8("table", __spreadProps(__spreadValues({}, props), { className: "w-full border-collapse table-auto", children: [
11479
- /* @__PURE__ */ jsx11("thead", { className: "bg-gray-800 text-white", children: /* @__PURE__ */ jsx11("tr", { children: head.map((h, key) => {
11480
- var _a2;
11481
- return /* @__PURE__ */ jsxs8(
11482
- "th",
11483
- {
11484
- className: "whitespace-nowrap overflow-hidden text-ellipsis max-w-[200px] border-b p-5",
11485
- children: [
11486
- /* @__PURE__ */ jsx11(
11487
- "div",
11488
- {
11489
- className: "cursor-pointer flex ",
11490
- onClick: (e) => {
11491
- setSelectedFilter(key == selectedFilter ? null : key);
11492
- },
11493
- children: /* @__PURE__ */ jsxs8("div", { className: "text-white w-full bg-black rounded p-1 flex justify-center", children: [
11494
- h,
11495
- " ",
11496
- !((_a2 = mapedData == null ? void 0 : mapedData.map((d) => {
11497
- var _a3;
11498
- return (_a3 = d[h]) == null ? void 0 : _a3.exclude;
11499
- })) == null ? void 0 : _a2.every((d) => d === false)) && /* @__PURE__ */ jsx11("div", { className: "text-red-300", children: /* @__PURE__ */ jsx11(FilterOffIcon, {}) })
11500
- ] })
11501
- }
11502
- ),
11503
- /* @__PURE__ */ jsx11(
11504
- FilterMenu,
11505
- {
11506
- h,
11507
- mapedData,
11508
- setMapedData,
11509
- index: key,
11510
- selectedFilter,
11511
- setSelectedFilter
11512
- }
11513
- )
11514
- ]
11515
- },
11516
- h
11517
- );
11518
- }) }) }),
11519
- /* @__PURE__ */ jsx11("tbody", { className: "divide-y divide-gray-200", children: mapedData.map((md, trKey) => {
11520
- var _a2;
11521
- const color2 = trKey % 2 == 0 ? "bg-white" : "bg-gray-100";
11522
- for (let d in md) {
11523
- if (md[d].exclude === true) {
11524
- return null;
11525
- }
11526
- }
11527
- return /* @__PURE__ */ jsx11(
11528
- "tr",
11529
- {
11530
- onDoubleClick: (e) => {
11531
- var _a3;
11532
- (_a3 = modalRef.current) == null ? void 0 : _a3.showModal();
11533
- },
11534
- onClick: (e) => setSelected(trKey),
11535
- className: [
11536
- "hover:bg-green-100 ",
11537
- color2,
11538
- selected == trKey && "bg-green-200 hover:bg-green-300"
11539
- ].join(" "),
11540
- children: head.map((h, tdKey) => {
11541
- var _a3;
11542
- const item = md[h];
11543
- const id3 = trKey + "-" + (((_a3 = md == null ? void 0 : md.id) == null ? void 0 : _a3.content) || tdKey) + "-" + h;
11544
- return /* @__PURE__ */ jsx11(
11545
- TD,
11546
- {
11547
- index: trKey,
11548
- symbols,
11549
- handlers: props.handlers,
11550
- item,
11551
- color: color2,
11552
- mapedData,
11553
- setMapedData
11554
- },
11555
- id3
11556
- );
11557
- })
11558
- },
11559
- ((_a2 = md == null ? void 0 : md.id) == null ? void 0 : _a2.content) || trKey
11560
- );
11561
- }) }),
11562
- /* @__PURE__ */ jsx11("tfoot", { className: "bg-gray-800 text-white", children: /* @__PURE__ */ jsx11("tr", { children: head.map((h, fkey) => {
11563
- return /* @__PURE__ */ jsx11(
11564
- "th",
11565
- {
11566
- className: "text-right border-b max-w-[200px] p-5 ",
11567
- children: totals && totals.includes(h) && /* @__PURE__ */ jsxs8("div", { className: "flex justify-between text-white w-full bg-black rounded p-1", children: [
11568
- /* @__PURE__ */ jsx11("div", { className: "p-1", children: symbols && symbols[h] && symbols[h] }),
11569
- /* @__PURE__ */ jsx11("div", { className: "p-1", children: mapedTotals[h] })
11570
- ] })
11571
- },
11572
- fkey
11573
- );
11574
- }) }) })
11575
- ] })) });
11576
- }
11577
-
11578
11420
  // ../../node_modules/xlsx/xlsx.mjs
11579
11421
  var XLSX = {};
11580
11422
  XLSX.version = "0.18.5";
@@ -32076,46 +31918,218 @@ function useExportdata() {
32076
31918
  };
32077
31919
  }
32078
31920
 
32079
- // src/table/index.tsx
32080
- import { Fragment as Fragment5, jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
32081
- function Table(props) {
32082
- const [mapedData, setMapedData] = useState7([]);
32083
- const isArray = Array.isArray(props.data);
31921
+ // src/table/h.tsx
31922
+ import { Fragment as Fragment4, jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
31923
+ function HTable(_a) {
31924
+ var _b = _a, {
31925
+ data,
31926
+ symbols,
31927
+ totals,
31928
+ exportName,
31929
+ onSave
31930
+ } = _b, props = __objRest(_b, [
31931
+ "data",
31932
+ "symbols",
31933
+ "totals",
31934
+ "exportName",
31935
+ "onSave"
31936
+ ]);
31937
+ if (!Array.isArray(data)) return null;
31938
+ const [mapedData, setMapedData] = useState6([...data]);
32084
31939
  const exported = useExportdata();
32085
- return /* @__PURE__ */ jsxs9("div", { className: "bg-gray-200 border rounded shadow p-1", children: [
32086
- (props == null ? void 0 : props.exportName) && props.data.length > 0 && /* @__PURE__ */ jsx12(Fragment5, { children: /* @__PURE__ */ jsxs9(
32087
- "button",
32088
- {
32089
- className: "p-2 border rounded shadow bg-green-800 text-white flex gap-1",
32090
- onClick: (e) => exported.export(
32091
- mapedData.map((md) => {
32092
- const _a = md, { __visible__ } = _a, newMd = __objRest(_a, ["__visible__"]);
32093
- for (let i of Object.keys(newMd)) {
32094
- newMd[i] = newMd[i].content;
32095
- }
32096
- return newMd;
32097
- }),
32098
- props.exportName
32099
- ),
32100
- children: [
32101
- /* @__PURE__ */ jsx12(ExcelIcon, {}),
32102
- " Exportar"
32103
- ]
31940
+ const [selected, setSelected] = useState6(null);
31941
+ const [selectedFilter, setSelectedFilter] = useState6(null);
31942
+ const modalRef = useRef4(null);
31943
+ const head = useMemo7(() => {
31944
+ return [...new Set(data.map((d) => Object.keys(d)).flat())];
31945
+ }, [data]);
31946
+ const mapedTotals = useMemo7(() => {
31947
+ return mapedData == null ? void 0 : mapedData.reduce((acc, md) => {
31948
+ head.forEach((h) => {
31949
+ var _a2, _b2;
31950
+ const value = isNaN(+((_a2 = md[h]) == null ? void 0 : _a2.content)) ? 0 : +((_b2 = md[h]) == null ? void 0 : _b2.content);
31951
+ if (acc[h]) {
31952
+ acc[h] += value;
31953
+ } else {
31954
+ acc[h] = value;
31955
+ }
31956
+ });
31957
+ return acc;
31958
+ }, {});
31959
+ }, [mapedData]);
31960
+ useEffect7(() => {
31961
+ setMapedData(data);
31962
+ }, [data]);
31963
+ useEffect7(() => {
31964
+ const newData = data.map((d, trkey) => {
31965
+ var _a2, _b2;
31966
+ const obj = {};
31967
+ for (let key in d) {
31968
+ const item = {};
31969
+ for (let key2 in d) {
31970
+ item[key2] = ((_a2 = d[key2]) == null ? void 0 : _a2.content) || d[key2];
31971
+ }
31972
+ const typeOf = typeof d[key];
31973
+ const isObject2 = typeOf == "object";
31974
+ const isDate = typeOf == "string" && d[key].toString().includes("T");
31975
+ const cellTypeOf = isDate ? "date" : isObject2 ? "object" : typeOf;
31976
+ const content = cellTypeOf == "date" ? d[key].split("T").join(" ").split(".")[0] : cellTypeOf == "object" ? React4.isValidElement(d[key]) ? ((_b2 = d[key]) == null ? void 0 : _b2.props).defaultValue : JSON.stringify(d[key]) : d[key];
31977
+ const handler = React4.isValidElement(d[key]) ? d[key] : null;
31978
+ obj[key] = {
31979
+ index: trkey,
31980
+ originalData: content,
31981
+ cellTypeOf,
31982
+ title: content,
31983
+ content,
31984
+ name: key,
31985
+ exclude: false,
31986
+ handler
31987
+ };
32104
31988
  }
32105
- ) }),
32106
- isArray ? /* @__PURE__ */ jsx12(
32107
- HTable,
32108
- __spreadValues({}, __spreadProps(__spreadValues({}, props), {
32109
- mapedData,
32110
- setMapedData
32111
- }))
32112
- ) : /* @__PURE__ */ jsx12("div", { className: " p-5 border rounded shadow bg-yellw-500", children: "No es un array" })
31989
+ return obj;
31990
+ });
31991
+ setMapedData(newData);
31992
+ }, [data]);
31993
+ const values = useMemo7(() => {
31994
+ return mapedData.map((d) => Object.keys(d).map((k) => ({ [k]: d[k].content }))).map((d) => Object.assign({}, ...d));
31995
+ }, [mapedData]);
31996
+ return /* @__PURE__ */ jsxs9(Fragment4, { children: [
31997
+ /* @__PURE__ */ jsxs9("div", { className: "flex gap-2", children: [
31998
+ onSave && /* @__PURE__ */ jsxs9(
31999
+ "button",
32000
+ {
32001
+ className: "p-2 border rounded shadow bg-blue-800 text-white flex gap-1",
32002
+ onClick: (e) => {
32003
+ onSave({ data: values });
32004
+ },
32005
+ children: [
32006
+ /* @__PURE__ */ jsx11(SaveIcon, {}),
32007
+ " Guardar"
32008
+ ]
32009
+ }
32010
+ ),
32011
+ exportName && mapedData.length > 0 && /* @__PURE__ */ jsx11(Fragment4, { children: /* @__PURE__ */ jsxs9(
32012
+ "button",
32013
+ {
32014
+ className: "p-2 border rounded shadow bg-green-800 text-white flex gap-1",
32015
+ onClick: (e) => exported.export(values, exportName),
32016
+ children: [
32017
+ /* @__PURE__ */ jsx11(ExcelIcon, {}),
32018
+ " Exportar"
32019
+ ]
32020
+ }
32021
+ ) })
32022
+ ] }),
32023
+ /* @__PURE__ */ jsxs9("table", __spreadProps(__spreadValues({}, props), { className: "w-full border-collapse table-auto", children: [
32024
+ /* @__PURE__ */ jsx11("thead", { className: "bg-gray-800 text-white", children: /* @__PURE__ */ jsx11("tr", { children: head.map((h, key) => {
32025
+ var _a2;
32026
+ return /* @__PURE__ */ jsxs9(
32027
+ "th",
32028
+ {
32029
+ className: "whitespace-nowrap overflow-hidden text-ellipsis max-w-[200px] border-b p-2",
32030
+ children: [
32031
+ /* @__PURE__ */ jsx11(
32032
+ "div",
32033
+ {
32034
+ className: "cursor-pointer flex ",
32035
+ onClick: (e) => {
32036
+ setSelectedFilter(key == selectedFilter ? null : key);
32037
+ },
32038
+ children: /* @__PURE__ */ jsxs9("div", { className: "text-white w-full bg-black rounded flex justify-center", children: [
32039
+ h,
32040
+ " ",
32041
+ !((_a2 = mapedData == null ? void 0 : mapedData.map((d) => {
32042
+ var _a3;
32043
+ return (_a3 = d[h]) == null ? void 0 : _a3.exclude;
32044
+ })) == null ? void 0 : _a2.every((d) => d === false)) && /* @__PURE__ */ jsx11("div", { className: "text-red-300", children: /* @__PURE__ */ jsx11(FilterOffIcon, {}) })
32045
+ ] })
32046
+ }
32047
+ ),
32048
+ /* @__PURE__ */ jsx11(
32049
+ FilterMenu,
32050
+ {
32051
+ h,
32052
+ mapedData,
32053
+ setMapedData,
32054
+ index: key,
32055
+ selectedFilter,
32056
+ setSelectedFilter
32057
+ }
32058
+ )
32059
+ ]
32060
+ },
32061
+ h
32062
+ );
32063
+ }) }) }),
32064
+ /* @__PURE__ */ jsx11("tbody", { className: "divide-y divide-gray-200", children: mapedData.map((md, trKey) => {
32065
+ var _a2;
32066
+ const color2 = trKey % 2 == 0 ? "bg-white" : "bg-gray-100";
32067
+ for (let d in md) {
32068
+ if (md[d].exclude === true) {
32069
+ return null;
32070
+ }
32071
+ }
32072
+ return /* @__PURE__ */ jsx11(
32073
+ "tr",
32074
+ {
32075
+ onDoubleClick: (e) => {
32076
+ var _a3;
32077
+ (_a3 = modalRef.current) == null ? void 0 : _a3.showModal();
32078
+ },
32079
+ onClick: (e) => setSelected(trKey),
32080
+ className: [
32081
+ "hover:bg-green-100 ",
32082
+ color2,
32083
+ selected == trKey && "bg-green-200 hover:bg-green-300"
32084
+ ].join(" "),
32085
+ children: head.map((h, tdKey) => {
32086
+ var _a3;
32087
+ const item = md[h];
32088
+ const id3 = trKey + "-" + (((_a3 = md == null ? void 0 : md.id) == null ? void 0 : _a3.content) || tdKey) + "-" + h;
32089
+ return /* @__PURE__ */ jsx11(
32090
+ TD,
32091
+ {
32092
+ index: trKey,
32093
+ symbols,
32094
+ item,
32095
+ color: color2,
32096
+ mapedData,
32097
+ setMapedData
32098
+ },
32099
+ id3
32100
+ );
32101
+ })
32102
+ },
32103
+ ((_a2 = md == null ? void 0 : md.id) == null ? void 0 : _a2.content) || trKey
32104
+ );
32105
+ }) }),
32106
+ totals && /* @__PURE__ */ jsx11("tfoot", { className: "bg-gray-800 text-white", children: /* @__PURE__ */ jsx11("tr", { children: head.map((h, fkey) => {
32107
+ return /* @__PURE__ */ jsx11(
32108
+ "th",
32109
+ {
32110
+ className: "text-right border-b max-w-[200px] p-2 ",
32111
+ children: totals.includes(h) && /* @__PURE__ */ jsxs9("div", { className: "flex justify-between text-white w-full bg-black rounded ", children: [
32112
+ /* @__PURE__ */ jsx11("div", { className: "p-1", children: symbols && symbols[h] && symbols[h] }),
32113
+ /* @__PURE__ */ jsx11("div", { className: "p-1", children: mapedTotals[h] })
32114
+ ] })
32115
+ },
32116
+ fkey
32117
+ );
32118
+ }) }) })
32119
+ ] }))
32113
32120
  ] });
32114
32121
  }
32115
32122
 
32123
+ // src/table/index.tsx
32124
+ import { jsx as jsx12 } from "react/jsx-runtime";
32125
+ function Table(_a) {
32126
+ var props = __objRest(_a, []);
32127
+ return /* @__PURE__ */ jsx12("div", { className: "bg-gray-200 border rounded shadow p-1", children: Array.isArray(props.data) ? /* @__PURE__ */ jsx12(HTable, __spreadValues({}, props)) : /* @__PURE__ */ jsx12("div", { className: " p-5 border rounded shadow bg-yellw-500", children: "No es un array" }) });
32128
+ }
32129
+
32116
32130
  // src/text-area/index.tsx
32117
32131
  import {
32118
- useState as useState8
32132
+ useState as useState7
32119
32133
  } from "react";
32120
32134
  import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
32121
32135
  function TextArea(_a) {
@@ -32132,7 +32146,7 @@ function TextArea(_a) {
32132
32146
  "onChange",
32133
32147
  "children"
32134
32148
  ]);
32135
- const [value, setValue] = useState8(children);
32149
+ const [value, setValue] = useState7(children);
32136
32150
  return /* @__PURE__ */ jsx13("div", { className: "w-full", children: /* @__PURE__ */ jsxs10("label", { className: "flex flex-col gap-1", children: [
32137
32151
  /* @__PURE__ */ jsx13("div", { className: "font-bold ", children: label }),
32138
32152
  /* @__PURE__ */ jsxs10("div", { children: [
@@ -32162,7 +32176,7 @@ function TextArea(_a) {
32162
32176
  }
32163
32177
 
32164
32178
  // src/use-resources/index.ts
32165
- import { useEffect as useEffect8, useMemo as useMemo9, useState as useState9 } from "react";
32179
+ import { useEffect as useEffect8, useMemo as useMemo9, useState as useState8 } from "react";
32166
32180
 
32167
32181
  // src/use-resources/get.token.tsx
32168
32182
  import { useMemo as useMemo8 } from "react";
@@ -32260,7 +32274,7 @@ function useResources({
32260
32274
  onError
32261
32275
  }) {
32262
32276
  const token = useToken();
32263
- const [info, setInfo] = useState9({});
32277
+ const [info, setInfo] = useState8({});
32264
32278
  const result = useMemo9(() => {
32265
32279
  var _c, _d, _e, _f, _g, _h, _i;
32266
32280
  const r = {};
@@ -32513,7 +32527,7 @@ function useResources({
32513
32527
  import React6, {
32514
32528
  useEffect as useEffect9,
32515
32529
  useRef as useRef5,
32516
- useState as useState10
32530
+ useState as useState9
32517
32531
  } from "react";
32518
32532
 
32519
32533
  // src/select/icon.tsx
@@ -32566,15 +32580,15 @@ function Select(_a) {
32566
32580
  "children",
32567
32581
  "strictMode"
32568
32582
  ]);
32569
- const [isOpen, setIsOpen] = useState10(false);
32570
- const [inputValue, setInputValue] = useState10((props == null ? void 0 : props.value) || "");
32571
- const [options, setOptions] = useState10(
32583
+ const [isOpen, setIsOpen] = useState9(false);
32584
+ const [inputValue, setInputValue] = useState9((props == null ? void 0 : props.value) || "");
32585
+ const [options, setOptions] = useState9(
32572
32586
  []
32573
32587
  );
32574
- const [filtered, setFiltered] = useState10(
32588
+ const [filtered, setFiltered] = useState9(
32575
32589
  []
32576
32590
  );
32577
- const [highlightedIndex, setHighlightedIndex] = useState10(-1);
32591
+ const [highlightedIndex, setHighlightedIndex] = useState9(-1);
32578
32592
  const inputRef = useRef5(null);
32579
32593
  const validOption = (value) => {
32580
32594
  return options.find((opt) => opt.label == value);
@@ -32622,7 +32636,7 @@ function Select(_a) {
32622
32636
  setIsOpen(false);
32623
32637
  };
32624
32638
  const containerRef = useRef5(null);
32625
- const [openUpwards, setOpenUpwards] = useState10(false);
32639
+ const [openUpwards, setOpenUpwards] = useState9(false);
32626
32640
  useEffect9(() => {
32627
32641
  if (isOpen && containerRef.current) {
32628
32642
  const rect = containerRef.current.getBoundingClientRect();
@@ -32740,7 +32754,7 @@ function Select(_a) {
32740
32754
 
32741
32755
  // src/modal/index.tsx
32742
32756
  import React7, { useRef as useRef6 } from "react";
32743
- import { Fragment as Fragment6, jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
32757
+ import { Fragment as Fragment5, jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
32744
32758
  function Modal({ button, children, ref }) {
32745
32759
  const modalRef = ref || useRef6(null);
32746
32760
  function show() {
@@ -32751,7 +32765,7 @@ function Modal({ button, children, ref }) {
32751
32765
  var _a;
32752
32766
  typeof modalRef == "object" && ((_a = modalRef.current) == null ? void 0 : _a.close());
32753
32767
  }
32754
- return /* @__PURE__ */ jsxs12(Fragment6, { children: [
32768
+ return /* @__PURE__ */ jsxs12(Fragment5, { children: [
32755
32769
  React7.Children.map(button, (child) => {
32756
32770
  if (React7.isValidElement(child)) {
32757
32771
  return React7.cloneElement(child, {