@apia/table 4.0.18 → 4.0.20

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.d.ts CHANGED
@@ -153,6 +153,7 @@ type TResponsiveTableRowState = {
153
153
  type TResponsiveTableColumn = TResponsiveTableWithRendererElement & {
154
154
  /** Con esta propiedad se puede pasar parámetros opcionales */
155
155
  additionalData?: Record<string, unknown>;
156
+ autoAdjustWidth?: boolean;
156
157
  /**
157
158
  * Determina si la columna admite ordenamiento.
158
159
  */
@@ -696,6 +697,14 @@ declare class Controller2 {
696
697
  }
697
698
  declare function makeController2(tableName: string): [Controller2, FC<TKeyHandlerProps>];
698
699
 
700
+ /**
701
+ * Este contexto es necesario para resolver el problema de que no se muestra
702
+ * la etiqueta correcta cuando la tabla está cargando.
703
+ */
704
+ declare const TableLoadingContext: React.Context<{
705
+ current: boolean;
706
+ }>;
707
+
699
708
  declare const RangeFilter: ({ filter, tableName, className, }: {
700
709
  filter: TApiaFilter;
701
710
  tableName?: string;
@@ -789,5 +798,5 @@ declare const TableRenderer: React__default.MemoExoticComponent<({ variant }: {
789
798
  variant?: string;
790
799
  }) => React__default.JSX.Element>;
791
800
 
792
- export { AccordionCell, AccordionDocNameCellRenderer, AccordionElement, AccordionHTMLCellRenderer, AccordionRenderer, Additional, AdditionalColumnDefaultRenderer, Controller2, DefaultCellRenderer, DefaultRowRenderer, DocNameCellRenderer, HTMLCellRenderer, type IAccordionElement, IsLoadingRenderer, NoEllipsisCellRenderer, NoRegistersRenderer, Pagination, PriorityAccordionRenderer, PriorityRenderer, RangeFilter, Responsive, ResponsiveTable, ResponsiveTableContext, RowStatesRenderer, Sort, StatusAccordionRenderer, StatusRenderer, type TAccordionCellRenderer, type TAccordionCellRendererProps, type TColoredElement, type TDocNameCellRenderer, type TDocNameCellRendererProps, type TResponsiveTableCell, type TResponsiveTableCellRenderer, type TResponsiveTableCellRendererProps, type TResponsiveTableColumn, type TResponsiveTableContext, type TResponsiveTableContextProps, type TResponsiveTableRow, type TResponsiveTableRowRenderer, type TResponsiveTableRowRendererProps, type TResponsiveTableRowState, type TResponsiveTableRowsSelectionEvent, type TResponsiveTableSortChangeEvent, type TResponsiveTableSortValue, type TResponsiveTableStoreProps, type TResponsiveTableWithRendererElement, TableContextReproducer, TableRenderer, defaultLabels, getPriorityHandler, getResponsiveTableContext, getStatusRendererClassName, makeAccordionAsyncRenderer, makeAsyncRenderer, makeController2, responsiveTableActions, responsiveTableStore, useResponsiveTable, useResponsiveTableContext };
801
+ export { AccordionCell, AccordionDocNameCellRenderer, AccordionElement, AccordionHTMLCellRenderer, AccordionRenderer, Additional, AdditionalColumnDefaultRenderer, Controller2, DefaultCellRenderer, DefaultRowRenderer, DocNameCellRenderer, HTMLCellRenderer, type IAccordionElement, IsLoadingRenderer, NoEllipsisCellRenderer, NoRegistersRenderer, Pagination, PriorityAccordionRenderer, PriorityRenderer, RangeFilter, Responsive, ResponsiveTable, ResponsiveTableContext, RowStatesRenderer, Sort, StatusAccordionRenderer, StatusRenderer, type TAccordionCellRenderer, type TAccordionCellRendererProps, type TColoredElement, type TDocNameCellRenderer, type TDocNameCellRendererProps, type TResponsiveTableCell, type TResponsiveTableCellRenderer, type TResponsiveTableCellRendererProps, type TResponsiveTableColumn, type TResponsiveTableContext, type TResponsiveTableContextProps, type TResponsiveTableRow, type TResponsiveTableRowRenderer, type TResponsiveTableRowRendererProps, type TResponsiveTableRowState, type TResponsiveTableRowsSelectionEvent, type TResponsiveTableSortChangeEvent, type TResponsiveTableSortValue, type TResponsiveTableStoreProps, type TResponsiveTableWithRendererElement, TableContextReproducer, TableLoadingContext, TableRenderer, defaultLabels, getPriorityHandler, getResponsiveTableContext, getStatusRendererClassName, makeAccordionAsyncRenderer, makeAsyncRenderer, makeController2, responsiveTableActions, responsiveTableStore, useResponsiveTable, useResponsiveTableContext };
793
802
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment } from '@apia/theme/jsx-runtime';
2
- import React, { useMemo, useRef, useState, memo, useEffect, useCallback, createRef, forwardRef } from 'react';
2
+ import React, { useMemo, useRef, useState, createContext, useContext, memo, useEffect, useCallback, createRef, forwardRef } from 'react';
3
3
  import { Box, getVariant, Input, Select, useBreakpointIndex, Label, Link, Spinner } from '@apia/theme';
4
4
  import { useMount, useUpdateEffect, useUnmount, useThrottleFn } from 'ahooks';
5
5
  import uniqueId from 'lodash-es/uniqueId';
@@ -1264,6 +1264,32 @@ const NoMemoHeaderCell = ({
1264
1264
  ...domProps,
1265
1265
  role: "rowheader",
1266
1266
  className: `${isFilterRequired && window.SHOW_REQUIRED_POSITION ? "requiredFilterColumn" : ""}`,
1267
+ ref: (el) => {
1268
+ if (!column?.autoAdjustWidth)
1269
+ return;
1270
+ if (el instanceof HTMLElement && !el.dataset.resized && storedWidth === void 0) {
1271
+ const clone = el.cloneNode(true);
1272
+ const child = clone.querySelector(
1273
+ ".headButton__label"
1274
+ );
1275
+ child.style.opacity = "0";
1276
+ document.body.append(child);
1277
+ child.style.position = "fixed";
1278
+ child.style.maxWidth = "0";
1279
+ child.style.minWidth = "0";
1280
+ child.style.width = "0";
1281
+ child.style.overflow = "auto";
1282
+ child.style.textWrap = "nowrap";
1283
+ window.requestAnimationFrame(() => {
1284
+ const idealWidth = child.scrollWidth;
1285
+ const currentWidth = el.querySelector(".headButton__label").getBoundingClientRect().width;
1286
+ const elWidth = el.getBoundingClientRect().width;
1287
+ const diff = idealWidth - currentWidth;
1288
+ setWidth(elWidth + diff + 5);
1289
+ el.dataset.resized = "true";
1290
+ });
1291
+ }
1292
+ },
1267
1293
  children: /* @__PURE__ */ jsxs(Box, { as: "span", className: "headButton__container", children: [
1268
1294
  /* @__PURE__ */ jsx(
1269
1295
  Box,
@@ -2125,9 +2151,14 @@ const NoMemoRow = ({ rowIndex }) => {
2125
2151
  };
2126
2152
  const Row = React.memo(NoMemoRow);
2127
2153
 
2154
+ const TableLoadingContext = createContext({
2155
+ current: true
2156
+ });
2157
+
2128
2158
  const NoRegistersRenderer = () => {
2129
2159
  const { labels } = useResponsiveTableContext();
2130
- return /* @__PURE__ */ jsx(Box, { className: "no__registers", children: labels.noRegisters });
2160
+ const { current } = useContext(TableLoadingContext);
2161
+ return /* @__PURE__ */ jsx(Box, { className: "no__registers", children: current ? labels.noRegisters : "" });
2131
2162
  };
2132
2163
 
2133
2164
  const NoMemoTableRenderer = ({ variant }) => {
@@ -3598,10 +3629,11 @@ const NoMemoAccordionHTMLCellRenderer = React.forwardRef(
3598
3629
  column,
3599
3630
  row,
3600
3631
  ...props
3601
- }, currentRef) => (
3602
- /**
3603
- * Aca falta el title de la columna
3604
- */
3632
+ }, currentRef) => /* @__PURE__ */ jsxs(Box, { children: [
3633
+ column.label.trim() !== "" && /* @__PURE__ */ jsxs(Box, { as: "strong", children: [
3634
+ column.label,
3635
+ ": "
3636
+ ] }),
3605
3637
  /* @__PURE__ */ jsx(
3606
3638
  Box,
3607
3639
  {
@@ -3618,7 +3650,7 @@ const NoMemoAccordionHTMLCellRenderer = React.forwardRef(
3618
3650
  as: "span"
3619
3651
  }
3620
3652
  )
3621
- )
3653
+ ] })
3622
3654
  );
3623
3655
  NoMemoAccordionHTMLCellRenderer.displayName = "AccordionHTMLCellRenderer";
3624
3656
  const AccordionHTMLCellRenderer = NoMemoAccordionHTMLCellRenderer;
@@ -3879,5 +3911,5 @@ const NoMemoStatusAccordionRenderer = React.forwardRef(({ cell, column }, curren
3879
3911
  NoMemoStatusAccordionRenderer.displayName = "StatusAccordionRenderer";
3880
3912
  const StatusAccordionRenderer = NoMemoStatusAccordionRenderer;
3881
3913
 
3882
- export { AccordionCell, AccordionDocNameCellRenderer, AccordionElement, AccordionHTMLCellRenderer, AccordionRenderer, Additional, AdditionalColumnDefaultRenderer, Controller2, DefaultCellRenderer, DefaultRowRenderer, DocNameCellRenderer, HTMLCellRenderer, IsLoadingRenderer, NoEllipsisCellRenderer, NoRegistersRenderer, Pagination, PriorityAccordionRenderer, PriorityRenderer, RangeFilter, Responsive, ResponsiveTable, ResponsiveTableContext, RowStatesRenderer, Sort, StatusAccordionRenderer, StatusRenderer, TableContextReproducer, TableRenderer, defaultLabels, getPriorityHandler, getResponsiveTableContext, getStatusRendererClassName, makeAccordionAsyncRenderer, makeAsyncRenderer, makeController2, responsiveTableActions, responsiveTableStore, useResponsiveTable, useResponsiveTableContext };
3914
+ export { AccordionCell, AccordionDocNameCellRenderer, AccordionElement, AccordionHTMLCellRenderer, AccordionRenderer, Additional, AdditionalColumnDefaultRenderer, Controller2, DefaultCellRenderer, DefaultRowRenderer, DocNameCellRenderer, HTMLCellRenderer, IsLoadingRenderer, NoEllipsisCellRenderer, NoRegistersRenderer, Pagination, PriorityAccordionRenderer, PriorityRenderer, RangeFilter, Responsive, ResponsiveTable, ResponsiveTableContext, RowStatesRenderer, Sort, StatusAccordionRenderer, StatusRenderer, TableContextReproducer, TableLoadingContext, TableRenderer, defaultLabels, getPriorityHandler, getResponsiveTableContext, getStatusRendererClassName, makeAccordionAsyncRenderer, makeAsyncRenderer, makeController2, responsiveTableActions, responsiveTableStore, useResponsiveTable, useResponsiveTableContext };
3883
3915
  //# sourceMappingURL=index.js.map