@orangesix/react 1.0.10 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/api/index.d.ts +2 -2
  2. package/autocomplete/index.cjs.js +2 -0
  3. package/autocomplete/index.cjs.js.map +1 -0
  4. package/autocomplete/index.d.ts +149 -0
  5. package/autocomplete/index.esm.js +2 -0
  6. package/autocomplete/index.esm.js.map +1 -0
  7. package/autocomplete/package.json +5 -0
  8. package/box/_box.scss +0 -27
  9. package/box/index.cjs.js.map +1 -1
  10. package/box/index.d.ts +2 -2
  11. package/box/index.esm.js.map +1 -1
  12. package/editor/_editor.scss +12 -21
  13. package/editor/index.cjs.js.map +1 -1
  14. package/editor/index.esm.js.map +1 -1
  15. package/inputfilter/_inputfilter.scss +2 -7
  16. package/inputfilter/index.cjs.js.map +1 -1
  17. package/inputfilter/index.d.ts +1 -1
  18. package/inputfilter/index.esm.js.map +1 -1
  19. package/package.json +16 -23
  20. package/style/index.cjs.js +2 -0
  21. package/style/index.cjs.js.map +1 -0
  22. package/style/index.d.ts +2 -0
  23. package/style/index.esm.js +2 -0
  24. package/style/index.esm.js.map +1 -0
  25. package/style/index.ts +0 -0
  26. package/style/scss/_variables.scss +925 -0
  27. package/style/scss/bootstrap.scss +31 -0
  28. package/style/scss/components/_root.scss +110 -0
  29. package/style/scss/components/button/_button.scss +644 -0
  30. package/style/scss/components/button/_speeddial.scss +91 -0
  31. package/style/scss/components/button/_splitbutton.scss +359 -0
  32. package/style/scss/components/data/_carousel.scss +39 -0
  33. package/style/scss/components/data/_datascroller.scss +47 -0
  34. package/style/scss/components/data/_datatable.scss +414 -0
  35. package/style/scss/components/data/_dataview.scss +47 -0
  36. package/style/scss/components/data/_filter.scss +138 -0
  37. package/style/scss/components/data/_orderlist.scss +86 -0
  38. package/style/scss/components/data/_organizationchart.scss +50 -0
  39. package/style/scss/components/data/_paginator.scss +91 -0
  40. package/style/scss/components/data/_picklist.scss +74 -0
  41. package/style/scss/components/data/_timeline.scss +38 -0
  42. package/style/scss/components/data/_tree.scss +184 -0
  43. package/style/scss/components/data/_treetable.scss +431 -0
  44. package/style/scss/components/file/_fileupload.scss +41 -0
  45. package/style/scss/components/input/_autocomplete.scss +106 -0
  46. package/style/scss/components/input/_calendar.scss +251 -0
  47. package/style/scss/components/input/_cascadeselect.scss +107 -0
  48. package/style/scss/components/input/_checkbox.scss +181 -0
  49. package/style/scss/components/input/_chips.scss +102 -0
  50. package/style/scss/components/input/_colorpicker.scss +18 -0
  51. package/style/scss/components/input/_dropdown.scss +255 -0
  52. package/style/scss/components/input/_editor.scss +122 -0
  53. package/style/scss/components/input/_iconfield.scss +10 -0
  54. package/style/scss/components/input/_inputgroup.scss +74 -0
  55. package/style/scss/components/input/_inputicon.scss +15 -0
  56. package/style/scss/components/input/_inputnumber.scss +5 -0
  57. package/style/scss/components/input/_inputotp.scss +10 -0
  58. package/style/scss/components/input/_inputswitch.scss +100 -0
  59. package/style/scss/components/input/_inputtext.scss +101 -0
  60. package/style/scss/components/input/_listbox.scss +139 -0
  61. package/style/scss/components/input/_mention.scss +31 -0
  62. package/style/scss/components/input/_multiselect.scss +278 -0
  63. package/style/scss/components/input/_password.scss +33 -0
  64. package/style/scss/components/input/_radiobutton.scss +170 -0
  65. package/style/scss/components/input/_rating.scss +81 -0
  66. package/style/scss/components/input/_selectbutton.scss +50 -0
  67. package/style/scss/components/input/_slider.scss +49 -0
  68. package/style/scss/components/input/_togglebutton.scss +99 -0
  69. package/style/scss/components/input/_treeselect.scss +151 -0
  70. package/style/scss/components/input/_tristatecheckbox.scss +46 -0
  71. package/style/scss/components/menu/_breadcrumb.scss +42 -0
  72. package/style/scss/components/menu/_contextmenu.scss +39 -0
  73. package/style/scss/components/menu/_dock.scss +109 -0
  74. package/style/scss/components/menu/_megamenu.scss +141 -0
  75. package/style/scss/components/menu/_menu.scss +33 -0
  76. package/style/scss/components/menu/_menubar.scss +216 -0
  77. package/style/scss/components/menu/_panelmenu.scss +153 -0
  78. package/style/scss/components/menu/_slidemenu.scss +60 -0
  79. package/style/scss/components/menu/_steps.scss +57 -0
  80. package/style/scss/components/menu/_tabmenu.scss +50 -0
  81. package/style/scss/components/menu/_tieredmenu.scss +43 -0
  82. package/style/scss/components/messages/_inlinemessage.scss +69 -0
  83. package/style/scss/components/messages/_message.scss +107 -0
  84. package/style/scss/components/messages/_toast.scss +100 -0
  85. package/style/scss/components/misc/_avatar.scss +34 -0
  86. package/style/scss/components/misc/_badge.scss +77 -0
  87. package/style/scss/components/misc/_blockui.scss +0 -0
  88. package/style/scss/components/misc/_chip.scss +39 -0
  89. package/style/scss/components/misc/_inplace.scss +17 -0
  90. package/style/scss/components/misc/_metergroup.scss +81 -0
  91. package/style/scss/components/misc/_progressbar.scss +17 -0
  92. package/style/scss/components/misc/_scrolltop.scss +25 -0
  93. package/style/scss/components/misc/_skeleton.scss +8 -0
  94. package/style/scss/components/misc/_tag.scss +40 -0
  95. package/style/scss/components/misc/_terminal.scss +12 -0
  96. package/style/scss/components/multimedia/_galleria.scss +153 -0
  97. package/style/scss/components/multimedia/_image.scss +54 -0
  98. package/style/scss/components/overlay/_confirmpopup.scss +72 -0
  99. package/style/scss/components/overlay/_dialog.scss +78 -0
  100. package/style/scss/components/overlay/_overlaypanel.scss +64 -0
  101. package/style/scss/components/overlay/_sidebar.scss +23 -0
  102. package/style/scss/components/overlay/_tooltip.scss +33 -0
  103. package/style/scss/components/panel/_accordion.scss +118 -0
  104. package/style/scss/components/panel/_card.scss +30 -0
  105. package/style/scss/components/panel/_divider.scss +31 -0
  106. package/style/scss/components/panel/_fieldset.scss +47 -0
  107. package/style/scss/components/panel/_panel.scss +47 -0
  108. package/style/scss/components/panel/_scrollpanel.scss +10 -0
  109. package/style/scss/components/panel/_splitter.scss +23 -0
  110. package/style/scss/components/panel/_stepper.scss +136 -0
  111. package/style/scss/components/panel/_tabview.scss +148 -0
  112. package/style/scss/components/panel/_toolbar.scss +11 -0
  113. package/style/scss/core/_colors.scss +18 -0
  114. package/style/scss/core/_extensions.scss +27 -0
  115. package/style/scss/core/_mixins.scss +243 -0
  116. package/style/scss/core/_reset.scss +75 -0
  117. package/table/index.cjs.js +1 -1
  118. package/table/index.cjs.js.map +1 -1
  119. package/table/index.d.ts +3 -8
  120. package/table/index.esm.js +1 -1
  121. package/table/index.esm.js.map +1 -1
  122. package/tablepivot/_tablepivot.scss +15 -31
  123. package/tablepivot/index.cjs.js.map +1 -1
  124. package/tablepivot/index.esm.js.map +1 -1
  125. package/tabview/index.cjs.js +2 -0
  126. package/tabview/index.cjs.js.map +1 -0
  127. package/tabview/index.d.ts +137 -0
  128. package/tabview/index.esm.js +2 -0
  129. package/tabview/index.esm.js.map +1 -0
  130. package/tabview/package.json +5 -0
  131. package/utils/index.cjs.js.map +1 -1
  132. package/utils/index.esm.js.map +1 -1
  133. package/api/theme.css +0 -1
  134. package/table/_table.scss +0 -136
@@ -0,0 +1,75 @@
1
+ * {
2
+ box-sizing: border-box;
3
+ }
4
+
5
+ .p-component {
6
+ font-family: var(--font-family);
7
+ font-feature-settings: var(--font-feature-settings, normal);
8
+ font-size: $fontSize;
9
+ font-weight: $fontWeight;
10
+ }
11
+
12
+ .p-component-overlay {
13
+ background-color: $maskBg;
14
+ transition-duration: $transitionDuration;
15
+ }
16
+
17
+ .p-disabled, .p-component:disabled {
18
+ opacity: $disabledOpacity;
19
+ }
20
+
21
+ .p-error {
22
+ color: $errorColor;
23
+ }
24
+
25
+ .p-text-secondary {
26
+ color: $textSecondaryColor;
27
+ }
28
+
29
+ .pi {
30
+ font-size: $primeIconFontSize;
31
+ }
32
+
33
+ .p-icon {
34
+ width: $primeIconFontSize;
35
+ height: $primeIconFontSize;
36
+ }
37
+
38
+ .p-link {
39
+ font-family: var(--font-family);
40
+ font-feature-settings: var(--font-feature-settings, normal);
41
+ font-size: $fontSize;
42
+ border-radius: $borderRadius;
43
+
44
+ &:focus-visible {
45
+ @include focused();
46
+ }
47
+ }
48
+
49
+ .p-component-overlay-enter {
50
+ animation: p-component-overlay-enter-animation 150ms forwards;
51
+ }
52
+
53
+ .p-component-overlay-leave {
54
+ animation: p-component-overlay-leave-animation 150ms forwards;
55
+ }
56
+
57
+ .p-component-overlay {
58
+ @keyframes p-component-overlay-enter-animation {
59
+ from {
60
+ background-color: transparent;
61
+ }
62
+ to {
63
+ background-color: var(--maskbg);
64
+ }
65
+ }
66
+
67
+ @keyframes p-component-overlay-leave-animation {
68
+ from {
69
+ background-color: var(--maskbg);
70
+ }
71
+ to {
72
+ background-color: transparent;
73
+ }
74
+ }
75
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),t=require("primereact/utils"),a=require("primereact/column"),o=require("primereact/datatable");const r=({children:a,...o})=>{const r={size:`box-size-${o.size??"100"}`,direction:`box-direction-${o.direction??"row"}`,justify:void 0===o.justify?"":Array.isArray(o.justify)?o.justify?.join(" "):o.justify,align:void 0===o.align?"":Array.isArray(o.align)?o.align?.join(" "):o.align},n={className:t.classNames(["box",o.className??"",r.size,r.direction,r.justify,r.align]),style:o.css,id:o.id};return e.createElement("div",{...n},a)};function n(e){return{value:e.data,dataKey:"id",lazy:void 0!==e.lazy,resizableColumns:e.styleResizable??!1,columnResizeMode:"expand",emptyMessage:e.emptyMessage??"Não há informações disponíveis no momento.",header:e.templeteHeader,footer:e.templateFooter}}function i(e){return{sortField:e.lazy?.sortField,sortOrder:e.lazy?.sortOrder??null,onSort:void 0!==e.lazy?function(t){e.onSort&&e.onSort(t.sortField,t.sortOrder)}:void 0}}function l(e,t,a){return{groupRowsBy:e.rowGroup,rowGroupMode:e.rowGroupMode,rowGroupHeaderTemplate:e.rowGroupHeaderTemplate,rowGroupFooterTemplate:e.rowGroupFooterTemplate,expandableRowGroups:e.rowExpandable??!1,expandedRows:t,onRowToggle(e){a(e.data)}}}function s(e){return{metaKeySelection:void 0!==e.onSelection,selection:e.selection,selectionMode:void 0!==e.onSelection?e.selectionMode??"single":void 0,onSelectionChange:function(t){e.onSelection&&e.onSelection(t.value)}}}function d(t){return{paginator:t.paginator??!1,paginatorClassName:"pagination",totalRecords:t?.lazy?.paginationTotal??void 0,first:void 0===t?.lazy?.paginationPage?0:((t?.lazy?.paginationPage??0)-1)*(t.paginatorRow??10),rows:t.paginator?t.paginatorRow??10:void 0,rowsPerPageOptions:[5,10,15,20,50,100],paginatorTemplate:{layout:"RowsPerPageDropdown FirstPageLink PageLinks LastPageLink CurrentPageReport",CurrentPageReport:t=>e.createElement("p",{className:"text-secondary mx-2",style:{fontSize:".9em"}},"Total de registros: ",t.totalRecords),RowsPerPageDropdown:t=>e.createElement("select",{className:"form-select form-select-sm mx-2",style:{maxWidth:"60px"},value:t.value,onChange:e=>{const a={};a.value=Number(e.target.value),t.onChange(a)}},t.options.map((t=>e.createElement("option",{key:t.value,value:t.value},t.label))))},paginatorRight:t.templatePaginationRight,paginatorLeft:t.templatePaginationLeft,onPage:void 0!==t.lazy?function(e){let a=e.first/(t.paginatorRow??10);t.onPaginator&&t.onPaginator(a+1,e.rows)}:void 0}}function c(e){return{root:{className:"table-responsive"},table:{className:t.classNames(["table",e.styleHover?"table-hover":"",e.styleStriped?"table-striped":"","small"===e.styleSize?"table-sm":"","bordered"===e.styleType?"table-bordered":"borderless"===e.styleType?"table-borderless":""])},header:{className:"table-header"},footer:{className:"table-footer"},paginator:{root:{className:t.classNames(["p-0 d-flex mb-1 mt-2",`justify-content-${e.paginatorAlign??"center"}`]),style:{borderTop:"none"}},firstPageButton:{style:{borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"}},lastPageButton:{style:{borderTopRightRadius:"3px",borderBottomRightRadius:"3px"}}}}}function p(){return{sort:{className:"table-sort"},headerCell:e=>({className:t.classNames([e?.context.sorted?"table-sort-active":""])}),bodyCell:{className:"table-resizable"}}}exports.Table=function(t){const[u,m]=e.useState([]);return e.createElement(r,{className:"p-0",size:t.size??"100"},e.createElement(o.DataTable,{pt:{...c(t)},tableClassName:t.className,...n(t),...i(t),...s(t),...d(t),...l(t,u,m)},"checkbox"===t.selectionMode&&e.createElement(a.Column,{align:"center",headerStyle:{width:"2.5rem"},pt:{...p()},selectionMode:"multiple"}),t.column.map((t=>e.createElement(a.Column,{unstyled:!0,align:t.align,alignFrozen:t.frozen?"right":void 0,alignHeader:t.alignHeader,body:t.body,field:t.id,frozen:void 0!==t.frozen,header:t.header,key:t.id,pt:{...p()},sortable:t.sort??!1,style:t.style})))))};
1
+ "use strict";var e=require("react"),o=require("primereact/utils"),t=require("primereact/column"),a=require("primereact/datatable");const r=({children:t,...a})=>{const r={size:`box-size-${a.size??"100"}`,direction:`box-direction-${a.direction??"row"}`,justify:void 0===a.justify?"":Array.isArray(a.justify)?a.justify?.join(" "):a.justify,align:void 0===a.align?"":Array.isArray(a.align)?a.align?.join(" "):a.align},i={className:o.classNames(["box",a.className??"",r.size,r.direction,r.justify,r.align]),style:a.css,id:a.id};return e.createElement("div",{...i},t)};function i(e){return{value:e.data,dataKey:"id",lazy:void 0!==e.lazy,resizableColumns:e.styleResizable??!1,columnResizeMode:"expand",emptyMessage:e.emptyMessage??"Não há informações disponíveis no momento.",header:e.templeteHeader,footer:e.templateFooter,stripedRows:e.styleStriped,size:e.styleSize,showGridlines:"bordered"===e.styleType}}function n(e){return{sortField:e.lazy?.sortField,sortOrder:e.lazy?.sortOrder??null,onSort:void 0!==e.lazy?function(o){e.onSort&&e.onSort(o.sortField,o.sortOrder)}:void 0}}function l(e,o,t){return{groupRowsBy:e.rowGroup,rowGroupMode:e.rowGroupMode,rowGroupHeaderTemplate:e.rowGroupHeaderTemplate,rowGroupFooterTemplate:e.rowGroupFooterTemplate,expandableRowGroups:e.rowExpandable??!1,expandedRows:o,onRowToggle(e){t(e.data)}}}function s(e){return{paginator:{root:{className:o.classNames([`justify-content-${e.paginatorAlign??"center"}`])}}}}function d(e){return{metaKeySelection:void 0!==e.onSelection,selection:e.selection,selectionMode:void 0!==e.onSelection?e.selectionMode??"single":void 0,onSelectionChange:function(o){e.onSelection&&e.onSelection(o.value)}}}function c(o){return{paginator:o.paginator??!1,totalRecords:o?.lazy?.paginationTotal??void 0,first:void 0===o?.lazy?.paginationPage?0:((o?.lazy?.paginationPage??0)-1)*(o.paginatorRow??10),rows:o.paginator?o.paginatorRow??10:void 0,rowsPerPageOptions:[5,10,15,20,50,100],paginatorTemplate:{layout:"RowsPerPageDropdown FirstPageLink PageLinks LastPageLink CurrentPageReport",CurrentPageReport:o=>e.createElement("span",{className:"ms-2"},"Total de registros: ",o.totalRecords)},paginatorRight:o.templatePaginationRight,paginatorLeft:o.templatePaginationLeft,onPage:void 0!==o.lazy?function(e){let t=e.first/(o.paginatorRow??10);o.onPaginator&&o.onPaginator(t+1,e.rows)}:void 0}}exports.Table=function(o){const[p,u]=e.useState([]);return e.createElement(r,{className:"p-0",size:o.size??"100"},e.createElement(a.DataTable,{pt:{...s(o)},tableClassName:o.className,...i(o),...n(o),...d(o),...c(o),...l(o,p,u)},"checkbox"===o.selectionMode&&e.createElement(t.Column,{align:"center",headerStyle:{width:"2.5rem"},selectionMode:"multiple"}),o.column.map((o=>e.createElement(t.Column,{align:o.align,alignFrozen:o.frozen?"right":void 0,alignHeader:o.alignHeader,body:o.body,field:o.id,frozen:void 0!==o.frozen,header:o.header,key:o.id,sortable:o.sort??!1,style:o.style})))))};
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx","../../src/table/core/core.tsx","../../src/table/core/sort.tsx","../../src/table/core/group.tsx","../../src/table/core/selection.tsx","../../src/table/core/pagination.tsx","../../src/table/styled.ts","../../src/table/table.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import { TableProps } from \"../types\";\r\nimport { DataTableBaseProps } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo principal da tabela.\r\n */\r\nexport function tableCore(\r\n props: TableProps<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n return {\r\n value: props.data as any,\r\n dataKey: \"id\",\r\n lazy: props.lazy !== undefined,\r\n resizableColumns: props.styleResizable ?? false,\r\n columnResizeMode: \"expand\",\r\n emptyMessage: props.emptyMessage ?? \"Não há informações disponíveis no momento.\",\r\n header: props.templeteHeader,\r\n footer: props.templateFooter\r\n };\r\n}","import { TableProps } from \"../types\";\r\nimport { DataTableProps, DataTableStateEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de ordenação de resultado.\r\n */\r\nexport function tableSort(\r\n props: TableProps<any>\r\n): Partial<DataTableProps<any>> {\r\n\r\n function onSort(event: DataTableStateEvent) {\r\n if (props.onSort) {\r\n props.onSort(event.sortField, event.sortOrder);\r\n }\r\n }\r\n\r\n return {\r\n sortField: props.lazy?.sortField,\r\n sortOrder: props.lazy?.sortOrder ?? null,\r\n onSort: props.lazy !== undefined ? onSort : undefined\r\n };\r\n}","import React from \"react\";\r\nimport { TableProps } from \"../types\";\r\nimport { DataTableBaseProps, DataTableRowToggleEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações de agrupamento da tabela.\r\n */\r\nexport function tableGroup(\r\n props: TableProps<any>,\r\n expandedRows: any,\r\n setExpandedRows: React.Dispatch<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n return {\r\n groupRowsBy: props.rowGroup,\r\n rowGroupMode: props.rowGroupMode,\r\n rowGroupHeaderTemplate: props.rowGroupHeaderTemplate,\r\n rowGroupFooterTemplate: props.rowGroupFooterTemplate,\r\n expandableRowGroups: props.rowExpandable ?? false,\r\n expandedRows: expandedRows,\r\n onRowToggle(event: DataTableRowToggleEvent) {\r\n setExpandedRows(event.data);\r\n }\r\n };\r\n}","import { TableProps } from \"../types\";\r\nimport { DataTableProps, DataTableSelectionSingleChangeEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de seleção de dados.\r\n */\r\nexport function tableSelection(\r\n props: TableProps<any>\r\n): Partial<DataTableProps<any>> {\r\n\r\n function onSelect(e: DataTableSelectionSingleChangeEvent<any>) {\r\n if (props.onSelection) {\r\n props.onSelection(e.value);\r\n }\r\n }\r\n\r\n return {\r\n metaKeySelection: props.onSelection !== undefined,\r\n selection: props.selection,\r\n selectionMode: props.onSelection !== undefined ? (props.selectionMode as any ?? \"single\") : undefined,\r\n onSelectionChange: onSelect,\r\n };\r\n}","import React from \"react\";\r\nimport { TableProps } from \"../types\";\r\nimport { PaginatorChangeEvent } from \"primereact/paginator\";\r\nimport { DataTableBaseProps, DataTableStateEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de paginação de resultado.\r\n */\r\nexport function tablePagination(\r\n props: TableProps<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n\r\n function onPage(event: DataTableStateEvent) {\r\n let paginationPage = event.first / (props.paginatorRow ?? 10);\r\n if (props.onPaginator) {\r\n props.onPaginator(paginationPage + 1, event.rows);\r\n }\r\n }\r\n\r\n return {\r\n paginator: props.paginator ?? false,\r\n paginatorClassName: \"pagination\",\r\n totalRecords: props?.lazy?.paginationTotal ?? undefined,\r\n first: props?.lazy?.paginationPage === undefined ? 0 : ((props?.lazy?.paginationPage ?? 0) - 1) * (props.paginatorRow ?? 10),\r\n rows: props.paginator ? (props.paginatorRow ?? 10) : undefined,\r\n rowsPerPageOptions: [5, 10, 15, 20, 50, 100],\r\n paginatorTemplate: {\r\n layout: \"RowsPerPageDropdown FirstPageLink PageLinks LastPageLink CurrentPageReport\",\r\n CurrentPageReport: options => {\r\n return (\r\n <p className=\"text-secondary mx-2\"\r\n style={{ fontSize: \".9em\" }}>Total de registros: {options.totalRecords}</p>\r\n );\r\n },\r\n RowsPerPageDropdown: options => {\r\n return (\r\n <select className=\"form-select form-select-sm mx-2\"\r\n style={{ maxWidth: \"60px\" }}\r\n value={options.value}\r\n onChange={(e) => {\r\n const event = {} as PaginatorChangeEvent;\r\n // @ts-ignore\r\n event.value = Number(e.target.value);\r\n options.onChange(event);\r\n }}>\r\n {options.options.map(obj => <option key={obj.value}\r\n value={obj.value}>{obj.label}</option>)}\r\n </select>\r\n );\r\n }\r\n },\r\n paginatorRight: props.templatePaginationRight,\r\n paginatorLeft: props.templatePaginationLeft,\r\n onPage: props.lazy !== undefined ? onPage : undefined,\r\n };\r\n}","import { TableProps } from \"./types\";\r\nimport { classNames } from \"primereact/utils\";\r\nimport { ColumnPassThroughOptions } from \"primereact/column\";\r\nimport { DataTablePassThroughOptions } from \"primereact/datatable\";\r\n\r\n/**\r\n * Realiza a personalização na TABLE\r\n */\r\nexport function bootstrapTableStyle(props: TableProps<any>): DataTablePassThroughOptions {\r\n return {\r\n root: {\r\n className: \"table-responsive\"\r\n },\r\n table: {\r\n className: classNames([\r\n \"table\",\r\n props.styleHover ? \"table-hover\" : \"\",\r\n props.styleStriped ? \"table-striped\" : \"\",\r\n props.styleSize === \"small\" ? \"table-sm\" : \"\",\r\n props.styleType === \"bordered\" ? \"table-bordered\" : props.styleType === \"borderless\" ? \"table-borderless\" : \"\",\r\n ]),\r\n },\r\n header: {\r\n className: \"table-header\",\r\n },\r\n footer: {\r\n className: \"table-footer\"\r\n },\r\n paginator: {\r\n root: {\r\n className: classNames([\r\n \"p-0 d-flex mb-1 mt-2\",\r\n `justify-content-${props.paginatorAlign ?? \"center\"}`\r\n ]),\r\n style: { borderTop: \"none\" }\r\n },\r\n firstPageButton: {\r\n style: { borderTopLeftRadius: \"3px\", borderBottomLeftRadius: \"3px\" }\r\n },\r\n lastPageButton: {\r\n style: { borderTopRightRadius: \"3px\", borderBottomRightRadius: \"3px\" }\r\n }\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * Realiza a personalização na COLUNA da tabela\r\n */\r\nexport function bootstrapColumnStyle(): ColumnPassThroughOptions {\r\n\r\n return {\r\n sort: {\r\n className: \"table-sort\"\r\n },\r\n headerCell: (options) => {\r\n return {\r\n className: classNames([\r\n options?.context.sorted ? \"table-sort-active\" : \"\",\r\n ])\r\n };\r\n },\r\n bodyCell: {\r\n className: \"table-resizable\"\r\n },\r\n };\r\n}","import { Box } from \"../box\";\r\nimport { TableProps } from \"./types\";\r\nimport React, { useState } from \"react\";\r\nimport { tableCore } from \"./core/core\";\r\nimport { tableSort } from \"./core/sort\";\r\nimport { tableGroup } from \"./core/group\";\r\nimport { Column } from \"primereact/column\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { tableSelection } from \"./core/selection\";\r\nimport { tablePagination } from \"./core/pagination\";\r\nimport { bootstrapColumnStyle, bootstrapTableStyle } from \"./styled\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar tabela de dados.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport function Table<T = any>(props: TableProps<T>) {\r\n const [expandedRows, setExpandedRows] = useState([]);\r\n\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <Box className=\"p-0\"\r\n size={props.size ?? \"100\"}>\r\n {/*@ts-ignore*/}\r\n <DataTable<any>\r\n pt={{ ...bootstrapTableStyle(props) }}\r\n tableClassName={props.className}\r\n {...tableCore(props)}\r\n {...tableSort(props)}\r\n {...tableSelection(props)}\r\n {...tablePagination(props)}\r\n {...tableGroup(props, expandedRows, setExpandedRows)}>\r\n {props.selectionMode === \"checkbox\"\r\n && <Column align=\"center\"\r\n headerStyle={{ width: \"2.5rem\" }}\r\n pt={{ ...bootstrapColumnStyle() }}\r\n selectionMode=\"multiple\"/>}\r\n {props.column.map(obj => {\r\n return (\r\n <Column\r\n unstyled\r\n align={obj.align}\r\n alignFrozen={obj.frozen ? \"right\" : undefined}\r\n alignHeader={obj.alignHeader}\r\n body={obj.body}\r\n field={obj.id}\r\n frozen={obj.frozen !== undefined}\r\n header={obj.header}\r\n key={obj.id}\r\n pt={{ ...bootstrapColumnStyle() }}\r\n sortable={obj.sort ?? false}\r\n style={obj.style}/>\r\n );\r\n })}\r\n </DataTable>\r\n </Box>\r\n );\r\n}"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","tableCore","value","data","dataKey","lazy","resizableColumns","styleResizable","columnResizeMode","emptyMessage","header","templeteHeader","footer","templateFooter","tableSort","sortField","sortOrder","onSort","event","tableGroup","expandedRows","setExpandedRows","groupRowsBy","rowGroup","rowGroupMode","rowGroupHeaderTemplate","rowGroupFooterTemplate","expandableRowGroups","rowExpandable","onRowToggle","tableSelection","metaKeySelection","onSelection","selection","selectionMode","onSelectionChange","e","tablePagination","paginator","paginatorClassName","totalRecords","paginationTotal","first","paginationPage","paginatorRow","rows","rowsPerPageOptions","paginatorTemplate","layout","CurrentPageReport","options","fontSize","RowsPerPageDropdown","maxWidth","onChange","Number","target","map","obj","key","label","paginatorRight","templatePaginationRight","paginatorLeft","templatePaginationLeft","onPage","onPaginator","bootstrapTableStyle","root","table","styleHover","styleStriped","styleSize","styleType","paginatorAlign","borderTop","firstPageButton","borderTopLeftRadius","borderBottomLeftRadius","lastPageButton","borderTopRightRadius","borderBottomRightRadius","bootstrapColumnStyle","sort","headerCell","context","sorted","bodyCell","useState","DataTable","pt","tableClassName","Column","headerStyle","width","column","unstyled","alignFrozen","frozen","alignHeader","body","field","sortable"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/box/box.tsx","../../src/table/core/core.tsx","../../src/table/core/sort.tsx","../../src/table/core/group.tsx","../../src/table/styled.ts","../../src/table/core/selection.tsx","../../src/table/core/pagination.tsx","../../src/table/table.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import { TableProps } from \"../types\";\r\nimport { DataTableBaseProps } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo principal da tabela.\r\n */\r\nexport function tableCore(\r\n props: TableProps<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n return {\r\n value: props.data as any,\r\n dataKey: \"id\",\r\n lazy: props.lazy !== undefined,\r\n resizableColumns: props.styleResizable ?? false,\r\n columnResizeMode: \"expand\",\r\n emptyMessage: props.emptyMessage ?? \"Não há informações disponíveis no momento.\",\r\n header: props.templeteHeader,\r\n footer: props.templateFooter,\r\n stripedRows: props.styleStriped,\r\n size: props.styleSize,\r\n showGridlines: props.styleType === \"bordered\"\r\n };\r\n}","import { TableProps } from \"../types\";\r\nimport { DataTableProps, DataTableStateEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de ordenação de resultado.\r\n */\r\nexport function tableSort(\r\n props: TableProps<any>\r\n): Partial<DataTableProps<any>> {\r\n\r\n function onSort(event: DataTableStateEvent) {\r\n if (props.onSort) {\r\n props.onSort(event.sortField, event.sortOrder);\r\n }\r\n }\r\n\r\n return {\r\n sortField: props.lazy?.sortField,\r\n sortOrder: props.lazy?.sortOrder ?? null,\r\n onSort: props.lazy !== undefined ? onSort : undefined\r\n };\r\n}","import React from \"react\";\r\nimport { TableProps } from \"../types\";\r\nimport { DataTableBaseProps, DataTableRowToggleEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações de agrupamento da tabela.\r\n */\r\nexport function tableGroup(\r\n props: TableProps<any>,\r\n expandedRows: any,\r\n setExpandedRows: React.Dispatch<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n return {\r\n groupRowsBy: props.rowGroup,\r\n rowGroupMode: props.rowGroupMode,\r\n rowGroupHeaderTemplate: props.rowGroupHeaderTemplate,\r\n rowGroupFooterTemplate: props.rowGroupFooterTemplate,\r\n expandableRowGroups: props.rowExpandable ?? false,\r\n expandedRows: expandedRows,\r\n onRowToggle(event: DataTableRowToggleEvent) {\r\n setExpandedRows(event.data);\r\n }\r\n };\r\n}","import { TableProps } from \"./types\";\r\nimport { classNames } from \"primereact/utils\";\r\nimport { DataTablePassThroughOptions } from \"primereact/datatable\";\r\n\r\n/**\r\n * Realiza a personalização na TABLE\r\n */\r\nexport function bootstrapTableStyle(props: TableProps<any>): DataTablePassThroughOptions {\r\n return {\r\n paginator: {\r\n root: {\r\n className: classNames([\r\n `justify-content-${props.paginatorAlign ?? \"center\"}`\r\n ]),\r\n }\r\n }\r\n };\r\n}","import { TableProps } from \"../types\";\r\nimport { DataTableProps, DataTableSelectionSingleChangeEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de seleção de dados.\r\n */\r\nexport function tableSelection(\r\n props: TableProps<any>\r\n): Partial<DataTableProps<any>> {\r\n\r\n function onSelect(e: DataTableSelectionSingleChangeEvent<any>) {\r\n if (props.onSelection) {\r\n props.onSelection(e.value);\r\n }\r\n }\r\n\r\n return {\r\n metaKeySelection: props.onSelection !== undefined,\r\n selection: props.selection,\r\n selectionMode: props.onSelection !== undefined ? (props.selectionMode as any ?? \"single\") : undefined,\r\n onSelectionChange: onSelect,\r\n };\r\n}","import React from \"react\";\r\nimport { TableProps } from \"../types\";\r\nimport { DataTableBaseProps, DataTableStateEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de paginação de resultado.\r\n */\r\nexport function tablePagination(\r\n props: TableProps<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n\r\n function onPage(event: DataTableStateEvent) {\r\n let paginationPage = event.first / (props.paginatorRow ?? 10);\r\n if (props.onPaginator) {\r\n props.onPaginator(paginationPage + 1, event.rows);\r\n }\r\n }\r\n\r\n return {\r\n paginator: props.paginator ?? false,\r\n totalRecords: props?.lazy?.paginationTotal ?? undefined,\r\n first: props?.lazy?.paginationPage === undefined ? 0 : ((props?.lazy?.paginationPage ?? 0) - 1) * (props.paginatorRow ?? 10),\r\n rows: props.paginator ? (props.paginatorRow ?? 10) : undefined,\r\n rowsPerPageOptions: [5, 10, 15, 20, 50, 100],\r\n paginatorTemplate: {\r\n layout: \"RowsPerPageDropdown FirstPageLink PageLinks LastPageLink CurrentPageReport\",\r\n CurrentPageReport: options => {\r\n return (\r\n <span className=\"ms-2\">Total de registros: {options.totalRecords}</span>\r\n );\r\n },\r\n },\r\n paginatorRight: props.templatePaginationRight,\r\n paginatorLeft: props.templatePaginationLeft,\r\n onPage: props.lazy !== undefined ? onPage : undefined,\r\n };\r\n}","import { Box } from \"../box\";\r\nimport { TableProps } from \"./types\";\r\nimport React, { useState } from \"react\";\r\nimport { tableCore } from \"./core/core\";\r\nimport { tableSort } from \"./core/sort\";\r\nimport { tableGroup } from \"./core/group\";\r\nimport { Column } from \"primereact/column\";\r\nimport { bootstrapTableStyle } from \"./styled\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { tableSelection } from \"./core/selection\";\r\nimport { tablePagination } from \"./core/pagination\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar tabela de dados.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport function Table<T = any>(props: TableProps<T>) {\r\n const [expandedRows, setExpandedRows] = useState([]);\r\n\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <Box className=\"p-0\"\r\n size={props.size ?? \"100\"}>\r\n {/*@ts-ignore*/}\r\n <DataTable<any>\r\n pt={{ ...bootstrapTableStyle(props) }}\r\n tableClassName={props.className}\r\n {...tableCore(props)}\r\n {...tableSort(props)}\r\n {...tableSelection(props)}\r\n {...tablePagination(props)}\r\n {...tableGroup(props, expandedRows, setExpandedRows)}>\r\n {props.selectionMode === \"checkbox\"\r\n && <Column align=\"center\"\r\n headerStyle={{ width: \"2.5rem\" }}\r\n selectionMode=\"multiple\"/>}\r\n {props.column.map(obj => {\r\n return (\r\n <Column align={obj.align}\r\n alignFrozen={obj.frozen ? \"right\" : undefined}\r\n alignHeader={obj.alignHeader}\r\n body={obj.body}\r\n field={obj.id}\r\n frozen={obj.frozen !== undefined}\r\n header={obj.header}\r\n key={obj.id}\r\n sortable={obj.sort ?? false}\r\n style={obj.style}/>\r\n );\r\n })}\r\n </DataTable>\r\n </Box>\r\n );\r\n}"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","tableCore","value","data","dataKey","lazy","resizableColumns","styleResizable","columnResizeMode","emptyMessage","header","templeteHeader","footer","templateFooter","stripedRows","styleStriped","styleSize","showGridlines","styleType","tableSort","sortField","sortOrder","onSort","event","tableGroup","expandedRows","setExpandedRows","groupRowsBy","rowGroup","rowGroupMode","rowGroupHeaderTemplate","rowGroupFooterTemplate","expandableRowGroups","rowExpandable","onRowToggle","bootstrapTableStyle","paginator","root","paginatorAlign","tableSelection","metaKeySelection","onSelection","selection","selectionMode","onSelectionChange","e","tablePagination","totalRecords","paginationTotal","first","paginationPage","paginatorRow","rows","rowsPerPageOptions","paginatorTemplate","layout","CurrentPageReport","options","paginatorRight","templatePaginationRight","paginatorLeft","templatePaginationLeft","onPage","onPaginator","useState","DataTable","pt","tableClassName","Column","headerStyle","width","column","map","obj","alignFrozen","frozen","alignHeader","body","field","key","sortable","sort"],"mappings":"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"}
package/table/index.d.ts CHANGED
@@ -69,11 +69,6 @@ interface TableStyleProps {
69
69
  */
70
70
  styleStriped?: boolean
71
71
 
72
- /**
73
- * Define estilo da tabela quando passa mouse sobre a linha da tabela
74
- */
75
- styleHover?: boolean
76
-
77
72
  /**
78
73
  * Define se as coluna das tabela por ser redimensionadas
79
74
  */
@@ -82,12 +77,12 @@ interface TableStyleProps {
82
77
  /**
83
78
  * Define estilo da tabela com bordar ou sem borda
84
79
  */
85
- styleType?: "bordered" | "borderless"
80
+ styleType?: "bordered"
86
81
 
87
82
  /**
88
83
  * Define o tamanho da tabela.
89
84
  */
90
- styleSize?: "small"
85
+ styleSize?: "small" | "normal" | "large"
91
86
  }
92
87
 
93
88
  interface TableColumnProps {
@@ -221,7 +216,7 @@ type TableLazyProps = {
221
216
  * Define o número total de registro da tabela
222
217
  */
223
218
  paginationTotal?: number
224
- }
219
+ };
225
220
 
226
221
  interface TableProps<T> extends TableStyleProps, TableSelectionProps, TableTemplateProps, TableSortProps, TablePaginationProps, TableGroupProps, ApiComponentProps {
227
222
 
@@ -1,2 +1,2 @@
1
- import e,{useState as t}from"react";import{classNames as o}from"primereact/utils";import{Column as a}from"primereact/column";import{DataTable as r}from"primereact/datatable";const n=({children:t,...a})=>{const r={size:`box-size-${a.size??"100"}`,direction:`box-direction-${a.direction??"row"}`,justify:void 0===a.justify?"":Array.isArray(a.justify)?a.justify?.join(" "):a.justify,align:void 0===a.align?"":Array.isArray(a.align)?a.align?.join(" "):a.align},n={className:o(["box",a.className??"",r.size,r.direction,r.justify,r.align]),style:a.css,id:a.id};return e.createElement("div",{...n},t)};function i(e){return{value:e.data,dataKey:"id",lazy:void 0!==e.lazy,resizableColumns:e.styleResizable??!1,columnResizeMode:"expand",emptyMessage:e.emptyMessage??"Não há informações disponíveis no momento.",header:e.templeteHeader,footer:e.templateFooter}}function l(e){return{sortField:e.lazy?.sortField,sortOrder:e.lazy?.sortOrder??null,onSort:void 0!==e.lazy?function(t){e.onSort&&e.onSort(t.sortField,t.sortOrder)}:void 0}}function s(e,t,o){return{groupRowsBy:e.rowGroup,rowGroupMode:e.rowGroupMode,rowGroupHeaderTemplate:e.rowGroupHeaderTemplate,rowGroupFooterTemplate:e.rowGroupFooterTemplate,expandableRowGroups:e.rowExpandable??!1,expandedRows:t,onRowToggle(e){o(e.data)}}}function d(e){return{metaKeySelection:void 0!==e.onSelection,selection:e.selection,selectionMode:void 0!==e.onSelection?e.selectionMode??"single":void 0,onSelectionChange:function(t){e.onSelection&&e.onSelection(t.value)}}}function p(t){return{paginator:t.paginator??!1,paginatorClassName:"pagination",totalRecords:t?.lazy?.paginationTotal??void 0,first:void 0===t?.lazy?.paginationPage?0:((t?.lazy?.paginationPage??0)-1)*(t.paginatorRow??10),rows:t.paginator?t.paginatorRow??10:void 0,rowsPerPageOptions:[5,10,15,20,50,100],paginatorTemplate:{layout:"RowsPerPageDropdown FirstPageLink PageLinks LastPageLink CurrentPageReport",CurrentPageReport:t=>e.createElement("p",{className:"text-secondary mx-2",style:{fontSize:".9em"}},"Total de registros: ",t.totalRecords),RowsPerPageDropdown:t=>e.createElement("select",{className:"form-select form-select-sm mx-2",style:{maxWidth:"60px"},value:t.value,onChange:e=>{const o={};o.value=Number(e.target.value),t.onChange(o)}},t.options.map((t=>e.createElement("option",{key:t.value,value:t.value},t.label))))},paginatorRight:t.templatePaginationRight,paginatorLeft:t.templatePaginationLeft,onPage:void 0!==t.lazy?function(e){let o=e.first/(t.paginatorRow??10);t.onPaginator&&t.onPaginator(o+1,e.rows)}:void 0}}function c(e){return{root:{className:"table-responsive"},table:{className:o(["table",e.styleHover?"table-hover":"",e.styleStriped?"table-striped":"","small"===e.styleSize?"table-sm":"","bordered"===e.styleType?"table-bordered":"borderless"===e.styleType?"table-borderless":""])},header:{className:"table-header"},footer:{className:"table-footer"},paginator:{root:{className:o(["p-0 d-flex mb-1 mt-2",`justify-content-${e.paginatorAlign??"center"}`]),style:{borderTop:"none"}},firstPageButton:{style:{borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"}},lastPageButton:{style:{borderTopRightRadius:"3px",borderBottomRightRadius:"3px"}}}}}function m(){return{sort:{className:"table-sort"},headerCell:e=>({className:o([e?.context.sorted?"table-sort-active":""])}),bodyCell:{className:"table-resizable"}}}function u(o){const[u,g]=t([]);return e.createElement(n,{className:"p-0",size:o.size??"100"},e.createElement(r,{pt:{...c(o)},tableClassName:o.className,...i(o),...l(o),...d(o),...p(o),...s(o,u,g)},"checkbox"===o.selectionMode&&e.createElement(a,{align:"center",headerStyle:{width:"2.5rem"},pt:{...m()},selectionMode:"multiple"}),o.column.map((t=>e.createElement(a,{unstyled:!0,align:t.align,alignFrozen:t.frozen?"right":void 0,alignHeader:t.alignHeader,body:t.body,field:t.id,frozen:void 0!==t.frozen,header:t.header,key:t.id,pt:{...m()},sortable:t.sort??!1,style:t.style})))))}export{u as Table};
1
+ import e,{useState as o}from"react";import{classNames as t}from"primereact/utils";import{Column as r}from"primereact/column";import{DataTable as a}from"primereact/datatable";const i=({children:o,...r})=>{const a={size:`box-size-${r.size??"100"}`,direction:`box-direction-${r.direction??"row"}`,justify:void 0===r.justify?"":Array.isArray(r.justify)?r.justify?.join(" "):r.justify,align:void 0===r.align?"":Array.isArray(r.align)?r.align?.join(" "):r.align},i={className:t(["box",r.className??"",a.size,a.direction,a.justify,a.align]),style:r.css,id:r.id};return e.createElement("div",{...i},o)};function n(e){return{value:e.data,dataKey:"id",lazy:void 0!==e.lazy,resizableColumns:e.styleResizable??!1,columnResizeMode:"expand",emptyMessage:e.emptyMessage??"Não há informações disponíveis no momento.",header:e.templeteHeader,footer:e.templateFooter,stripedRows:e.styleStriped,size:e.styleSize,showGridlines:"bordered"===e.styleType}}function l(e){return{sortField:e.lazy?.sortField,sortOrder:e.lazy?.sortOrder??null,onSort:void 0!==e.lazy?function(o){e.onSort&&e.onSort(o.sortField,o.sortOrder)}:void 0}}function s(e,o,t){return{groupRowsBy:e.rowGroup,rowGroupMode:e.rowGroupMode,rowGroupHeaderTemplate:e.rowGroupHeaderTemplate,rowGroupFooterTemplate:e.rowGroupFooterTemplate,expandableRowGroups:e.rowExpandable??!1,expandedRows:o,onRowToggle(e){t(e.data)}}}function d(e){return{paginator:{root:{className:t([`justify-content-${e.paginatorAlign??"center"}`])}}}}function p(e){return{metaKeySelection:void 0!==e.onSelection,selection:e.selection,selectionMode:void 0!==e.onSelection?e.selectionMode??"single":void 0,onSelectionChange:function(o){e.onSelection&&e.onSelection(o.value)}}}function c(o){return{paginator:o.paginator??!1,totalRecords:o?.lazy?.paginationTotal??void 0,first:void 0===o?.lazy?.paginationPage?0:((o?.lazy?.paginationPage??0)-1)*(o.paginatorRow??10),rows:o.paginator?o.paginatorRow??10:void 0,rowsPerPageOptions:[5,10,15,20,50,100],paginatorTemplate:{layout:"RowsPerPageDropdown FirstPageLink PageLinks LastPageLink CurrentPageReport",CurrentPageReport:o=>e.createElement("span",{className:"ms-2"},"Total de registros: ",o.totalRecords)},paginatorRight:o.templatePaginationRight,paginatorLeft:o.templatePaginationLeft,onPage:void 0!==o.lazy?function(e){let t=e.first/(o.paginatorRow??10);o.onPaginator&&o.onPaginator(t+1,e.rows)}:void 0}}function g(t){const[g,m]=o([]);return e.createElement(i,{className:"p-0",size:t.size??"100"},e.createElement(a,{pt:{...d(t)},tableClassName:t.className,...n(t),...l(t),...p(t),...c(t),...s(t,g,m)},"checkbox"===t.selectionMode&&e.createElement(r,{align:"center",headerStyle:{width:"2.5rem"},selectionMode:"multiple"}),t.column.map((o=>e.createElement(r,{align:o.align,alignFrozen:o.frozen?"right":void 0,alignHeader:o.alignHeader,body:o.body,field:o.id,frozen:void 0!==o.frozen,header:o.header,key:o.id,sortable:o.sort??!1,style:o.style})))))}export{g as Table};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../src/box/box.tsx","../../src/table/core/core.tsx","../../src/table/core/sort.tsx","../../src/table/core/group.tsx","../../src/table/core/selection.tsx","../../src/table/core/pagination.tsx","../../src/table/styled.ts","../../src/table/table.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import { TableProps } from \"../types\";\r\nimport { DataTableBaseProps } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo principal da tabela.\r\n */\r\nexport function tableCore(\r\n props: TableProps<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n return {\r\n value: props.data as any,\r\n dataKey: \"id\",\r\n lazy: props.lazy !== undefined,\r\n resizableColumns: props.styleResizable ?? false,\r\n columnResizeMode: \"expand\",\r\n emptyMessage: props.emptyMessage ?? \"Não há informações disponíveis no momento.\",\r\n header: props.templeteHeader,\r\n footer: props.templateFooter\r\n };\r\n}","import { TableProps } from \"../types\";\r\nimport { DataTableProps, DataTableStateEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de ordenação de resultado.\r\n */\r\nexport function tableSort(\r\n props: TableProps<any>\r\n): Partial<DataTableProps<any>> {\r\n\r\n function onSort(event: DataTableStateEvent) {\r\n if (props.onSort) {\r\n props.onSort(event.sortField, event.sortOrder);\r\n }\r\n }\r\n\r\n return {\r\n sortField: props.lazy?.sortField,\r\n sortOrder: props.lazy?.sortOrder ?? null,\r\n onSort: props.lazy !== undefined ? onSort : undefined\r\n };\r\n}","import React from \"react\";\r\nimport { TableProps } from \"../types\";\r\nimport { DataTableBaseProps, DataTableRowToggleEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações de agrupamento da tabela.\r\n */\r\nexport function tableGroup(\r\n props: TableProps<any>,\r\n expandedRows: any,\r\n setExpandedRows: React.Dispatch<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n return {\r\n groupRowsBy: props.rowGroup,\r\n rowGroupMode: props.rowGroupMode,\r\n rowGroupHeaderTemplate: props.rowGroupHeaderTemplate,\r\n rowGroupFooterTemplate: props.rowGroupFooterTemplate,\r\n expandableRowGroups: props.rowExpandable ?? false,\r\n expandedRows: expandedRows,\r\n onRowToggle(event: DataTableRowToggleEvent) {\r\n setExpandedRows(event.data);\r\n }\r\n };\r\n}","import { TableProps } from \"../types\";\r\nimport { DataTableProps, DataTableSelectionSingleChangeEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de seleção de dados.\r\n */\r\nexport function tableSelection(\r\n props: TableProps<any>\r\n): Partial<DataTableProps<any>> {\r\n\r\n function onSelect(e: DataTableSelectionSingleChangeEvent<any>) {\r\n if (props.onSelection) {\r\n props.onSelection(e.value);\r\n }\r\n }\r\n\r\n return {\r\n metaKeySelection: props.onSelection !== undefined,\r\n selection: props.selection,\r\n selectionMode: props.onSelection !== undefined ? (props.selectionMode as any ?? \"single\") : undefined,\r\n onSelectionChange: onSelect,\r\n };\r\n}","import React from \"react\";\r\nimport { TableProps } from \"../types\";\r\nimport { PaginatorChangeEvent } from \"primereact/paginator\";\r\nimport { DataTableBaseProps, DataTableStateEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de paginação de resultado.\r\n */\r\nexport function tablePagination(\r\n props: TableProps<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n\r\n function onPage(event: DataTableStateEvent) {\r\n let paginationPage = event.first / (props.paginatorRow ?? 10);\r\n if (props.onPaginator) {\r\n props.onPaginator(paginationPage + 1, event.rows);\r\n }\r\n }\r\n\r\n return {\r\n paginator: props.paginator ?? false,\r\n paginatorClassName: \"pagination\",\r\n totalRecords: props?.lazy?.paginationTotal ?? undefined,\r\n first: props?.lazy?.paginationPage === undefined ? 0 : ((props?.lazy?.paginationPage ?? 0) - 1) * (props.paginatorRow ?? 10),\r\n rows: props.paginator ? (props.paginatorRow ?? 10) : undefined,\r\n rowsPerPageOptions: [5, 10, 15, 20, 50, 100],\r\n paginatorTemplate: {\r\n layout: \"RowsPerPageDropdown FirstPageLink PageLinks LastPageLink CurrentPageReport\",\r\n CurrentPageReport: options => {\r\n return (\r\n <p className=\"text-secondary mx-2\"\r\n style={{ fontSize: \".9em\" }}>Total de registros: {options.totalRecords}</p>\r\n );\r\n },\r\n RowsPerPageDropdown: options => {\r\n return (\r\n <select className=\"form-select form-select-sm mx-2\"\r\n style={{ maxWidth: \"60px\" }}\r\n value={options.value}\r\n onChange={(e) => {\r\n const event = {} as PaginatorChangeEvent;\r\n // @ts-ignore\r\n event.value = Number(e.target.value);\r\n options.onChange(event);\r\n }}>\r\n {options.options.map(obj => <option key={obj.value}\r\n value={obj.value}>{obj.label}</option>)}\r\n </select>\r\n );\r\n }\r\n },\r\n paginatorRight: props.templatePaginationRight,\r\n paginatorLeft: props.templatePaginationLeft,\r\n onPage: props.lazy !== undefined ? onPage : undefined,\r\n };\r\n}","import { TableProps } from \"./types\";\r\nimport { classNames } from \"primereact/utils\";\r\nimport { ColumnPassThroughOptions } from \"primereact/column\";\r\nimport { DataTablePassThroughOptions } from \"primereact/datatable\";\r\n\r\n/**\r\n * Realiza a personalização na TABLE\r\n */\r\nexport function bootstrapTableStyle(props: TableProps<any>): DataTablePassThroughOptions {\r\n return {\r\n root: {\r\n className: \"table-responsive\"\r\n },\r\n table: {\r\n className: classNames([\r\n \"table\",\r\n props.styleHover ? \"table-hover\" : \"\",\r\n props.styleStriped ? \"table-striped\" : \"\",\r\n props.styleSize === \"small\" ? \"table-sm\" : \"\",\r\n props.styleType === \"bordered\" ? \"table-bordered\" : props.styleType === \"borderless\" ? \"table-borderless\" : \"\",\r\n ]),\r\n },\r\n header: {\r\n className: \"table-header\",\r\n },\r\n footer: {\r\n className: \"table-footer\"\r\n },\r\n paginator: {\r\n root: {\r\n className: classNames([\r\n \"p-0 d-flex mb-1 mt-2\",\r\n `justify-content-${props.paginatorAlign ?? \"center\"}`\r\n ]),\r\n style: { borderTop: \"none\" }\r\n },\r\n firstPageButton: {\r\n style: { borderTopLeftRadius: \"3px\", borderBottomLeftRadius: \"3px\" }\r\n },\r\n lastPageButton: {\r\n style: { borderTopRightRadius: \"3px\", borderBottomRightRadius: \"3px\" }\r\n }\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * Realiza a personalização na COLUNA da tabela\r\n */\r\nexport function bootstrapColumnStyle(): ColumnPassThroughOptions {\r\n\r\n return {\r\n sort: {\r\n className: \"table-sort\"\r\n },\r\n headerCell: (options) => {\r\n return {\r\n className: classNames([\r\n options?.context.sorted ? \"table-sort-active\" : \"\",\r\n ])\r\n };\r\n },\r\n bodyCell: {\r\n className: \"table-resizable\"\r\n },\r\n };\r\n}","import { Box } from \"../box\";\r\nimport { TableProps } from \"./types\";\r\nimport React, { useState } from \"react\";\r\nimport { tableCore } from \"./core/core\";\r\nimport { tableSort } from \"./core/sort\";\r\nimport { tableGroup } from \"./core/group\";\r\nimport { Column } from \"primereact/column\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { tableSelection } from \"./core/selection\";\r\nimport { tablePagination } from \"./core/pagination\";\r\nimport { bootstrapColumnStyle, bootstrapTableStyle } from \"./styled\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar tabela de dados.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport function Table<T = any>(props: TableProps<T>) {\r\n const [expandedRows, setExpandedRows] = useState([]);\r\n\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <Box className=\"p-0\"\r\n size={props.size ?? \"100\"}>\r\n {/*@ts-ignore*/}\r\n <DataTable<any>\r\n pt={{ ...bootstrapTableStyle(props) }}\r\n tableClassName={props.className}\r\n {...tableCore(props)}\r\n {...tableSort(props)}\r\n {...tableSelection(props)}\r\n {...tablePagination(props)}\r\n {...tableGroup(props, expandedRows, setExpandedRows)}>\r\n {props.selectionMode === \"checkbox\"\r\n && <Column align=\"center\"\r\n headerStyle={{ width: \"2.5rem\" }}\r\n pt={{ ...bootstrapColumnStyle() }}\r\n selectionMode=\"multiple\"/>}\r\n {props.column.map(obj => {\r\n return (\r\n <Column\r\n unstyled\r\n align={obj.align}\r\n alignFrozen={obj.frozen ? \"right\" : undefined}\r\n alignHeader={obj.alignHeader}\r\n body={obj.body}\r\n field={obj.id}\r\n frozen={obj.frozen !== undefined}\r\n header={obj.header}\r\n key={obj.id}\r\n pt={{ ...bootstrapColumnStyle() }}\r\n sortable={obj.sort ?? false}\r\n style={obj.style}/>\r\n );\r\n })}\r\n </DataTable>\r\n </Box>\r\n );\r\n}"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","tableCore","value","data","dataKey","lazy","resizableColumns","styleResizable","columnResizeMode","emptyMessage","header","templeteHeader","footer","templateFooter","tableSort","sortField","sortOrder","onSort","event","tableGroup","expandedRows","setExpandedRows","groupRowsBy","rowGroup","rowGroupMode","rowGroupHeaderTemplate","rowGroupFooterTemplate","expandableRowGroups","rowExpandable","onRowToggle","tableSelection","metaKeySelection","onSelection","selection","selectionMode","onSelectionChange","e","tablePagination","paginator","paginatorClassName","totalRecords","paginationTotal","first","paginationPage","paginatorRow","rows","rowsPerPageOptions","paginatorTemplate","layout","CurrentPageReport","options","fontSize","RowsPerPageDropdown","maxWidth","onChange","Number","target","map","obj","key","label","paginatorRight","templatePaginationRight","paginatorLeft","templatePaginationLeft","onPage","onPaginator","bootstrapTableStyle","root","table","styleHover","styleStriped","styleSize","styleType","paginatorAlign","borderTop","firstPageButton","borderTopLeftRadius","borderBottomLeftRadius","lastPageButton","borderTopRightRadius","borderBottomRightRadius","bootstrapColumnStyle","sort","headerCell","context","sorted","bodyCell","Table","useState","DataTable","pt","tableClassName","Column","headerStyle","width","column","unstyled","alignFrozen","frozen","alignHeader","body","field","sortable"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../src/box/box.tsx","../../src/table/core/core.tsx","../../src/table/core/sort.tsx","../../src/table/core/group.tsx","../../src/table/styled.ts","../../src/table/core/selection.tsx","../../src/table/core/pagination.tsx","../../src/table/table.tsx"],"sourcesContent":["import { BoxProps } from \"./types\";\r\nimport React, { HTMLAttributes } from \"react\";\r\nimport { classNames } from \"primereact/utils\";\r\n\r\n/**\r\n * Componente - `Box`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar seções ou caixas em uma página.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n *\r\n * Exemplo de uso:\r\n * ```tsx\r\n * <Box align=\"align-items-center\"\r\n * justify=\"justify-content-end\"\r\n * size=\"25\">\r\n * ...conteúdo HTML\r\n * </Box>\r\n * ```\r\n */\r\nexport const Box = ({ children, ...props }: BoxProps) => {\r\n const css = {\r\n size: `box-size-${(props.size ?? \"100\")}`,\r\n direction: `box-direction-${props.direction ?? \"row\"}`,\r\n justify: props.justify === undefined ? \"\" : Array.isArray(props.justify) ? props.justify?.join(\" \") : props.justify,\r\n align: props.align === undefined ? \"\" : Array.isArray(props.align) ? props.align?.join(\" \") : props.align\r\n };\r\n\r\n const attr: HTMLAttributes<\"div\"> & Omit<BoxProps, \"children\"> = {\r\n className: classNames([\r\n \"box\",\r\n props.className ?? \"\",\r\n css.size,\r\n css.direction,\r\n css.justify,\r\n css.align\r\n ]),\r\n style: props.css,\r\n id: props.id\r\n };\r\n\r\n return (\r\n <div {...attr as any}>{children}</div>\r\n );\r\n};","import { TableProps } from \"../types\";\r\nimport { DataTableBaseProps } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo principal da tabela.\r\n */\r\nexport function tableCore(\r\n props: TableProps<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n return {\r\n value: props.data as any,\r\n dataKey: \"id\",\r\n lazy: props.lazy !== undefined,\r\n resizableColumns: props.styleResizable ?? false,\r\n columnResizeMode: \"expand\",\r\n emptyMessage: props.emptyMessage ?? \"Não há informações disponíveis no momento.\",\r\n header: props.templeteHeader,\r\n footer: props.templateFooter,\r\n stripedRows: props.styleStriped,\r\n size: props.styleSize,\r\n showGridlines: props.styleType === \"bordered\"\r\n };\r\n}","import { TableProps } from \"../types\";\r\nimport { DataTableProps, DataTableStateEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de ordenação de resultado.\r\n */\r\nexport function tableSort(\r\n props: TableProps<any>\r\n): Partial<DataTableProps<any>> {\r\n\r\n function onSort(event: DataTableStateEvent) {\r\n if (props.onSort) {\r\n props.onSort(event.sortField, event.sortOrder);\r\n }\r\n }\r\n\r\n return {\r\n sortField: props.lazy?.sortField,\r\n sortOrder: props.lazy?.sortOrder ?? null,\r\n onSort: props.lazy !== undefined ? onSort : undefined\r\n };\r\n}","import React from \"react\";\r\nimport { TableProps } from \"../types\";\r\nimport { DataTableBaseProps, DataTableRowToggleEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações de agrupamento da tabela.\r\n */\r\nexport function tableGroup(\r\n props: TableProps<any>,\r\n expandedRows: any,\r\n setExpandedRows: React.Dispatch<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n return {\r\n groupRowsBy: props.rowGroup,\r\n rowGroupMode: props.rowGroupMode,\r\n rowGroupHeaderTemplate: props.rowGroupHeaderTemplate,\r\n rowGroupFooterTemplate: props.rowGroupFooterTemplate,\r\n expandableRowGroups: props.rowExpandable ?? false,\r\n expandedRows: expandedRows,\r\n onRowToggle(event: DataTableRowToggleEvent) {\r\n setExpandedRows(event.data);\r\n }\r\n };\r\n}","import { TableProps } from \"./types\";\r\nimport { classNames } from \"primereact/utils\";\r\nimport { DataTablePassThroughOptions } from \"primereact/datatable\";\r\n\r\n/**\r\n * Realiza a personalização na TABLE\r\n */\r\nexport function bootstrapTableStyle(props: TableProps<any>): DataTablePassThroughOptions {\r\n return {\r\n paginator: {\r\n root: {\r\n className: classNames([\r\n `justify-content-${props.paginatorAlign ?? \"center\"}`\r\n ]),\r\n }\r\n }\r\n };\r\n}","import { TableProps } from \"../types\";\r\nimport { DataTableProps, DataTableSelectionSingleChangeEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de seleção de dados.\r\n */\r\nexport function tableSelection(\r\n props: TableProps<any>\r\n): Partial<DataTableProps<any>> {\r\n\r\n function onSelect(e: DataTableSelectionSingleChangeEvent<any>) {\r\n if (props.onSelection) {\r\n props.onSelection(e.value);\r\n }\r\n }\r\n\r\n return {\r\n metaKeySelection: props.onSelection !== undefined,\r\n selection: props.selection,\r\n selectionMode: props.onSelection !== undefined ? (props.selectionMode as any ?? \"single\") : undefined,\r\n onSelectionChange: onSelect,\r\n };\r\n}","import React from \"react\";\r\nimport { TableProps } from \"../types\";\r\nimport { DataTableBaseProps, DataTableStateEvent } from \"primereact/datatable\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Define as configurações do modo de paginação de resultado.\r\n */\r\nexport function tablePagination(\r\n props: TableProps<any>\r\n): Partial<DataTableBaseProps<any>> {\r\n\r\n function onPage(event: DataTableStateEvent) {\r\n let paginationPage = event.first / (props.paginatorRow ?? 10);\r\n if (props.onPaginator) {\r\n props.onPaginator(paginationPage + 1, event.rows);\r\n }\r\n }\r\n\r\n return {\r\n paginator: props.paginator ?? false,\r\n totalRecords: props?.lazy?.paginationTotal ?? undefined,\r\n first: props?.lazy?.paginationPage === undefined ? 0 : ((props?.lazy?.paginationPage ?? 0) - 1) * (props.paginatorRow ?? 10),\r\n rows: props.paginator ? (props.paginatorRow ?? 10) : undefined,\r\n rowsPerPageOptions: [5, 10, 15, 20, 50, 100],\r\n paginatorTemplate: {\r\n layout: \"RowsPerPageDropdown FirstPageLink PageLinks LastPageLink CurrentPageReport\",\r\n CurrentPageReport: options => {\r\n return (\r\n <span className=\"ms-2\">Total de registros: {options.totalRecords}</span>\r\n );\r\n },\r\n },\r\n paginatorRight: props.templatePaginationRight,\r\n paginatorLeft: props.templatePaginationLeft,\r\n onPage: props.lazy !== undefined ? onPage : undefined,\r\n };\r\n}","import { Box } from \"../box\";\r\nimport { TableProps } from \"./types\";\r\nimport React, { useState } from \"react\";\r\nimport { tableCore } from \"./core/core\";\r\nimport { tableSort } from \"./core/sort\";\r\nimport { tableGroup } from \"./core/group\";\r\nimport { Column } from \"primereact/column\";\r\nimport { bootstrapTableStyle } from \"./styled\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { tableSelection } from \"./core/selection\";\r\nimport { tablePagination } from \"./core/pagination\";\r\n\r\n/**\r\n * Componente - `Table`\r\n *\r\n * Um componente versátil que pode ser utilizado para criar tabela de dados.\r\n * Permite personalizar o estilo e o conteúdo através de propriedades.\r\n */\r\nexport function Table<T = any>(props: TableProps<T>) {\r\n const [expandedRows, setExpandedRows] = useState([]);\r\n\r\n /*\r\n |------------------------------------------\r\n | render() - Renderização do componente\r\n |------------------------------------------\r\n */\r\n return (\r\n <Box className=\"p-0\"\r\n size={props.size ?? \"100\"}>\r\n {/*@ts-ignore*/}\r\n <DataTable<any>\r\n pt={{ ...bootstrapTableStyle(props) }}\r\n tableClassName={props.className}\r\n {...tableCore(props)}\r\n {...tableSort(props)}\r\n {...tableSelection(props)}\r\n {...tablePagination(props)}\r\n {...tableGroup(props, expandedRows, setExpandedRows)}>\r\n {props.selectionMode === \"checkbox\"\r\n && <Column align=\"center\"\r\n headerStyle={{ width: \"2.5rem\" }}\r\n selectionMode=\"multiple\"/>}\r\n {props.column.map(obj => {\r\n return (\r\n <Column align={obj.align}\r\n alignFrozen={obj.frozen ? \"right\" : undefined}\r\n alignHeader={obj.alignHeader}\r\n body={obj.body}\r\n field={obj.id}\r\n frozen={obj.frozen !== undefined}\r\n header={obj.header}\r\n key={obj.id}\r\n sortable={obj.sort ?? false}\r\n style={obj.style}/>\r\n );\r\n })}\r\n </DataTable>\r\n </Box>\r\n );\r\n}"],"names":["Box","children","props","css","size","direction","justify","undefined","Array","isArray","join","align","attr","className","classNames","style","id","React","createElement","tableCore","value","data","dataKey","lazy","resizableColumns","styleResizable","columnResizeMode","emptyMessage","header","templeteHeader","footer","templateFooter","stripedRows","styleStriped","styleSize","showGridlines","styleType","tableSort","sortField","sortOrder","onSort","event","tableGroup","expandedRows","setExpandedRows","groupRowsBy","rowGroup","rowGroupMode","rowGroupHeaderTemplate","rowGroupFooterTemplate","expandableRowGroups","rowExpandable","onRowToggle","bootstrapTableStyle","paginator","root","paginatorAlign","tableSelection","metaKeySelection","onSelection","selection","selectionMode","onSelectionChange","e","tablePagination","totalRecords","paginationTotal","first","paginationPage","paginatorRow","rows","rowsPerPageOptions","paginatorTemplate","layout","CurrentPageReport","options","paginatorRight","templatePaginationRight","paginatorLeft","templatePaginationLeft","onPage","onPaginator","Table","useState","DataTable","pt","tableClassName","Column","headerStyle","width","column","map","obj","alignFrozen","frozen","alignHeader","body","field","key","sortable","sort"],"mappings":"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"}
@@ -1,31 +1,15 @@
1
- :root {
2
- --table-pivot-toolbar-font-size: .9em;
3
-
4
- --table-pivot-border-radius: 5px;
5
- --table-pivot-border-color: var(--bs-gray-300, #e5e5e5);
6
-
7
- --table-pivot-background: var(--bs-white, #fff);
8
- --table-pivot-background-toolbar: transparent;
9
- --table-pivot-background-header: #f2f2f2;
10
- --table-pivot-background-filter: #e0e0e0;
11
-
12
- --table-pivot-modal-padding: 1rem;
13
- --table-pivot-modal-btn-font-size: .9em;
14
- --table-pivot-modal-btn-padding: .375rem .5rem;
15
- }
16
-
17
1
  .pivot-table {
18
2
  position: relative;
19
- border: 1px dashed var(--table-pivot-border-color);
20
- border-radius: var(--table-pivot-border-radius);
3
+ border: 1px dashed #{$tablePivotBorderColor};
4
+ border-radius: $borderRadius;
21
5
 
22
6
  //Toolbar - Cabeçalho de opções
23
7
  #wdr-toolbar-wrapper #wdr-toolbar {
24
- background: var(--table-pivot-background-toolbar) !important;
8
+ background: transparent !important;
25
9
 
26
10
  span {
27
- font-size: var(--table-pivot-toolbar-font-size) !important;
28
- font-family: var(--bs-body-font-family), serif !important;
11
+ font-size: $fontSize !important;
12
+ font-family: $fontFamily;
29
13
  }
30
14
  }
31
15
 
@@ -34,28 +18,28 @@
34
18
 
35
19
  //Cabeçalho
36
20
  .wdr-grid-layout div.wdr-header {
37
- background: var(--table-pivot-background-header) !important;
21
+ background: $tablePivotViewBg !important;
38
22
  }
39
23
 
40
24
  //Filtro
41
25
  .wdr-grid-layout #wdr-cols-filter {
42
- background: var(--table-pivot-background-filter);
26
+ background: $tablePivotViewFilterBg;
43
27
  }
44
28
 
45
29
  //Linhas e colunas
46
30
  .wdr-ui div {
47
- font-family: var(--bs-body-font-family), serif !important;
31
+ font-family: $fontFamily !important;
48
32
 
49
33
  &.wdr-cell {
50
34
  //color: #abc502 !important;
51
- background: var(--table-pivot-background);
52
- border-color: var(--table-pivot-border-color);
35
+ background: $tablePivotBg;
36
+ border-color: $tablePivotBorderColor;
53
37
  }
54
38
  }
55
39
 
56
40
  //Modal
57
41
  div.wdr-ui-window {
58
- padding: var(--table-pivot-modal-padding);
42
+ padding: $tablePivotModalPadding;
59
43
 
60
44
  //Titulo e subtitulo
61
45
  .wdr-popup-subtitle,
@@ -72,15 +56,15 @@
72
56
  .wdr-ui-btn {
73
57
  height: auto;
74
58
  margin: 0 .25rem;
75
- padding: var(--table-pivot-modal-btn-padding);
76
- font-size: var(--table-pivot-modal-btn-font-size);
59
+ padding: $tablePivotModalBtnPadding;
60
+ font-size: $tablePivotModalBtnFontSize;
77
61
  }
78
62
 
79
63
  .wdr-selected,
80
64
  .wdr-unchecked,
81
65
  .wdr-checked {
82
66
  span {
83
- font-family: var(--bs-body-font-family), serif !important;
67
+ font-family: $fontFamily !important;
84
68
  }
85
69
  }
86
70
 
@@ -92,7 +76,7 @@
92
76
 
93
77
  //Opções de dados
94
78
  .wdr-ui {
95
- font-family: var(--bs-body-font-family), serif !important;
79
+ font-family: $fontFamily !important;
96
80
  }
97
81
 
98
82
  .wdr-credits {