@gbmtech/aurora-ui 0.1.32 → 0.1.34

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 (184) hide show
  1. package/dist/cjs/components/data-table/data-table-action-bar.cjs +3 -0
  2. package/dist/cjs/components/data-table/data-table-action-bar.cjs.map +1 -0
  3. package/dist/cjs/components/data-table/data-table-advanced-toolbar.cjs +3 -0
  4. package/dist/cjs/components/data-table/data-table-advanced-toolbar.cjs.map +1 -0
  5. package/dist/cjs/components/data-table/data-table-column-header.cjs +3 -0
  6. package/dist/cjs/components/data-table/data-table-column-header.cjs.map +1 -0
  7. package/dist/cjs/components/data-table/data-table-date-filter.cjs +3 -0
  8. package/dist/cjs/components/data-table/data-table-date-filter.cjs.map +1 -0
  9. package/dist/cjs/components/data-table/data-table-faceted-filter.cjs +3 -0
  10. package/dist/cjs/components/data-table/data-table-faceted-filter.cjs.map +1 -0
  11. package/dist/cjs/components/data-table/data-table-filter-list.cjs +3 -0
  12. package/dist/cjs/components/data-table/data-table-filter-list.cjs.map +1 -0
  13. package/dist/cjs/components/data-table/data-table-filter-menu.cjs +3 -0
  14. package/dist/cjs/components/data-table/data-table-filter-menu.cjs.map +1 -0
  15. package/dist/cjs/components/data-table/data-table-pagination.cjs +2 -0
  16. package/dist/cjs/components/data-table/data-table-pagination.cjs.map +1 -0
  17. package/dist/cjs/components/data-table/data-table-range-filter.cjs +3 -0
  18. package/dist/cjs/components/data-table/data-table-range-filter.cjs.map +1 -0
  19. package/dist/cjs/components/data-table/data-table-skeleton.cjs +2 -0
  20. package/dist/cjs/components/data-table/data-table-skeleton.cjs.map +1 -0
  21. package/dist/cjs/components/data-table/data-table-slider-filter.cjs +3 -0
  22. package/dist/cjs/components/data-table/data-table-slider-filter.cjs.map +1 -0
  23. package/dist/cjs/components/data-table/data-table-sort-list.cjs +3 -0
  24. package/dist/cjs/components/data-table/data-table-sort-list.cjs.map +1 -0
  25. package/dist/cjs/components/data-table/data-table-toolbar.cjs +3 -0
  26. package/dist/cjs/components/data-table/data-table-toolbar.cjs.map +1 -0
  27. package/dist/cjs/components/data-table/data-table-view-options.cjs +3 -0
  28. package/dist/cjs/components/data-table/data-table-view-options.cjs.map +1 -0
  29. package/dist/cjs/components/data-table/data-table.cjs +2 -0
  30. package/dist/cjs/components/data-table/data-table.cjs.map +1 -0
  31. package/dist/cjs/components/data-table/index.cjs +1 -0
  32. package/dist/cjs/components/faceted.cjs +3 -0
  33. package/dist/cjs/components/faceted.cjs.map +1 -0
  34. package/dist/cjs/components/input.cjs.map +1 -1
  35. package/dist/cjs/components/slider.cjs +3 -0
  36. package/dist/cjs/components/slider.cjs.map +1 -0
  37. package/dist/cjs/components/sortable.cjs +7 -0
  38. package/dist/cjs/components/sortable.cjs.map +1 -0
  39. package/dist/cjs/components/table.cjs +1 -1
  40. package/dist/cjs/components/table.cjs.map +1 -1
  41. package/dist/cjs/hooks/use-callback-ref.cjs +2 -0
  42. package/dist/cjs/hooks/use-callback-ref.cjs.map +1 -0
  43. package/dist/cjs/hooks/use-data-table.cjs +3 -0
  44. package/dist/cjs/hooks/use-data-table.cjs.map +1 -0
  45. package/dist/cjs/hooks/use-debounced-callback.cjs +2 -0
  46. package/dist/cjs/hooks/use-debounced-callback.cjs.map +1 -0
  47. package/dist/cjs/index.cjs +1 -1
  48. package/dist/cjs/lib/composition.cjs +2 -0
  49. package/dist/cjs/lib/composition.cjs.map +1 -0
  50. package/dist/cjs/lib/data-table-config.cjs +2 -0
  51. package/dist/cjs/lib/data-table-config.cjs.map +1 -0
  52. package/dist/cjs/lib/data-table.cjs +2 -0
  53. package/dist/cjs/lib/data-table.cjs.map +1 -0
  54. package/dist/cjs/lib/format.cjs +2 -0
  55. package/dist/cjs/lib/format.cjs.map +1 -0
  56. package/dist/cjs/lib/id.cjs +2 -0
  57. package/dist/cjs/lib/id.cjs.map +1 -0
  58. package/dist/cjs/lib/parsers.cjs +2 -0
  59. package/dist/cjs/lib/parsers.cjs.map +1 -0
  60. package/dist/cjs/types/data-table.cjs +1 -0
  61. package/dist/esm/components/data-table/data-table-action-bar.js +3 -0
  62. package/dist/esm/components/data-table/data-table-action-bar.js.map +1 -0
  63. package/dist/esm/components/data-table/data-table-advanced-toolbar.js +3 -0
  64. package/dist/esm/components/data-table/data-table-advanced-toolbar.js.map +1 -0
  65. package/dist/esm/components/data-table/data-table-column-header.js +3 -0
  66. package/dist/esm/components/data-table/data-table-column-header.js.map +1 -0
  67. package/dist/esm/components/data-table/data-table-date-filter.js +3 -0
  68. package/dist/esm/components/data-table/data-table-date-filter.js.map +1 -0
  69. package/dist/esm/components/data-table/data-table-faceted-filter.js +3 -0
  70. package/dist/esm/components/data-table/data-table-faceted-filter.js.map +1 -0
  71. package/dist/esm/components/data-table/data-table-filter-list.js +3 -0
  72. package/dist/esm/components/data-table/data-table-filter-list.js.map +1 -0
  73. package/dist/esm/components/data-table/data-table-filter-menu.js +3 -0
  74. package/dist/esm/components/data-table/data-table-filter-menu.js.map +1 -0
  75. package/dist/esm/components/data-table/data-table-pagination.js +2 -0
  76. package/dist/esm/components/data-table/data-table-pagination.js.map +1 -0
  77. package/dist/esm/components/data-table/data-table-range-filter.js +3 -0
  78. package/dist/esm/components/data-table/data-table-range-filter.js.map +1 -0
  79. package/dist/esm/components/data-table/data-table-skeleton.js +2 -0
  80. package/dist/esm/components/data-table/data-table-skeleton.js.map +1 -0
  81. package/dist/esm/components/data-table/data-table-slider-filter.js +3 -0
  82. package/dist/esm/components/data-table/data-table-slider-filter.js.map +1 -0
  83. package/dist/esm/components/data-table/data-table-sort-list.js +3 -0
  84. package/dist/esm/components/data-table/data-table-sort-list.js.map +1 -0
  85. package/dist/esm/components/data-table/data-table-toolbar.js +3 -0
  86. package/dist/esm/components/data-table/data-table-toolbar.js.map +1 -0
  87. package/dist/esm/components/data-table/data-table-view-options.js +3 -0
  88. package/dist/esm/components/data-table/data-table-view-options.js.map +1 -0
  89. package/dist/esm/components/data-table/data-table.js +2 -0
  90. package/dist/esm/components/data-table/data-table.js.map +1 -0
  91. package/dist/esm/components/data-table/index.js +1 -0
  92. package/dist/esm/components/faceted.js +3 -0
  93. package/dist/esm/components/faceted.js.map +1 -0
  94. package/dist/esm/components/input.js.map +1 -1
  95. package/dist/esm/components/slider.js +3 -0
  96. package/dist/esm/components/slider.js.map +1 -0
  97. package/dist/esm/components/sortable.js +7 -0
  98. package/dist/esm/components/sortable.js.map +1 -0
  99. package/dist/esm/components/table.js +1 -1
  100. package/dist/esm/components/table.js.map +1 -1
  101. package/dist/esm/hooks/use-callback-ref.js +2 -0
  102. package/dist/esm/hooks/use-callback-ref.js.map +1 -0
  103. package/dist/esm/hooks/use-data-table.js +3 -0
  104. package/dist/esm/hooks/use-data-table.js.map +1 -0
  105. package/dist/esm/hooks/use-debounced-callback.js +2 -0
  106. package/dist/esm/hooks/use-debounced-callback.js.map +1 -0
  107. package/dist/esm/index.js +1 -1
  108. package/dist/esm/lib/composition.js +2 -0
  109. package/dist/esm/lib/composition.js.map +1 -0
  110. package/dist/esm/lib/data-table-config.js +2 -0
  111. package/dist/esm/lib/data-table-config.js.map +1 -0
  112. package/dist/esm/lib/data-table.js +2 -0
  113. package/dist/esm/lib/data-table.js.map +1 -0
  114. package/dist/esm/lib/format.js +2 -0
  115. package/dist/esm/lib/format.js.map +1 -0
  116. package/dist/esm/lib/id.js +2 -0
  117. package/dist/esm/lib/id.js.map +1 -0
  118. package/dist/esm/lib/parsers.js +2 -0
  119. package/dist/esm/lib/parsers.js.map +1 -0
  120. package/dist/esm/types/data-table.js +0 -0
  121. package/dist/types/components/data-table/data-table-action-bar.d.ts +21 -0
  122. package/dist/types/components/data-table/data-table-action-bar.d.ts.map +1 -0
  123. package/dist/types/components/data-table/data-table-advanced-toolbar.d.ts +8 -0
  124. package/dist/types/components/data-table/data-table-advanced-toolbar.d.ts.map +1 -0
  125. package/dist/types/components/data-table/data-table-column-header.d.ts +9 -0
  126. package/dist/types/components/data-table/data-table-column-header.d.ts.map +1 -0
  127. package/dist/types/components/data-table/data-table-date-filter.d.ts +9 -0
  128. package/dist/types/components/data-table/data-table-date-filter.d.ts.map +1 -0
  129. package/dist/types/components/data-table/data-table-faceted-filter.d.ts +11 -0
  130. package/dist/types/components/data-table/data-table-faceted-filter.d.ts.map +1 -0
  131. package/dist/types/components/data-table/data-table-filter-list.d.ts +12 -0
  132. package/dist/types/components/data-table/data-table-filter-list.d.ts.map +1 -0
  133. package/dist/types/components/data-table/data-table-filter-menu.d.ts +12 -0
  134. package/dist/types/components/data-table/data-table-filter-menu.d.ts.map +1 -0
  135. package/dist/types/components/data-table/data-table-pagination.d.ts +8 -0
  136. package/dist/types/components/data-table/data-table-pagination.d.ts.map +1 -0
  137. package/dist/types/components/data-table/data-table-range-filter.d.ts +12 -0
  138. package/dist/types/components/data-table/data-table-range-filter.d.ts.map +1 -0
  139. package/dist/types/components/data-table/data-table-skeleton.d.ts +12 -0
  140. package/dist/types/components/data-table/data-table-skeleton.d.ts.map +1 -0
  141. package/dist/types/components/data-table/data-table-slider-filter.d.ts +8 -0
  142. package/dist/types/components/data-table/data-table-slider-filter.d.ts.map +1 -0
  143. package/dist/types/components/data-table/data-table-sort-list.d.ts +9 -0
  144. package/dist/types/components/data-table/data-table-sort-list.d.ts.map +1 -0
  145. package/dist/types/components/data-table/data-table-toolbar.d.ts +8 -0
  146. package/dist/types/components/data-table/data-table-toolbar.d.ts.map +1 -0
  147. package/dist/types/components/data-table/data-table-view-options.d.ts +7 -0
  148. package/dist/types/components/data-table/data-table-view-options.d.ts.map +1 -0
  149. package/dist/types/components/data-table/data-table.d.ts +9 -0
  150. package/dist/types/components/data-table/data-table.d.ts.map +1 -0
  151. package/dist/types/components/data-table/index.d.ts +16 -0
  152. package/dist/types/components/data-table/index.d.ts.map +1 -0
  153. package/dist/types/components/faceted.d.ts +34 -0
  154. package/dist/types/components/faceted.d.ts.map +1 -0
  155. package/dist/types/components/input.d.ts +1 -1
  156. package/dist/types/components/input.d.ts.map +1 -1
  157. package/dist/types/components/slider.d.ts +5 -0
  158. package/dist/types/components/slider.d.ts.map +1 -0
  159. package/dist/types/components/sortable.d.ts +54 -0
  160. package/dist/types/components/sortable.d.ts.map +1 -0
  161. package/dist/types/components/table.d.ts.map +1 -1
  162. package/dist/types/hooks/use-callback-ref.d.ts +10 -0
  163. package/dist/types/hooks/use-callback-ref.d.ts.map +1 -0
  164. package/dist/types/hooks/use-data-table.d.ts +24 -0
  165. package/dist/types/hooks/use-data-table.d.ts.map +1 -0
  166. package/dist/types/hooks/use-debounced-callback.d.ts +5 -0
  167. package/dist/types/hooks/use-debounced-callback.d.ts.map +1 -0
  168. package/dist/types/index.d.ts +2 -0
  169. package/dist/types/index.d.ts.map +1 -1
  170. package/dist/types/lib/composition.d.ts +24 -0
  171. package/dist/types/lib/composition.d.ts.map +1 -0
  172. package/dist/types/lib/data-table-config.d.ts +125 -0
  173. package/dist/types/lib/data-table-config.d.ts.map +1 -0
  174. package/dist/types/lib/data-table.d.ts +13 -0
  175. package/dist/types/lib/data-table.d.ts.map +1 -0
  176. package/dist/types/lib/format.d.ts +2 -0
  177. package/dist/types/lib/format.d.ts.map +1 -0
  178. package/dist/types/lib/id.d.ts +8 -0
  179. package/dist/types/lib/id.d.ts.map +1 -0
  180. package/dist/types/lib/parsers.d.ts +26 -0
  181. package/dist/types/lib/parsers.d.ts.map +1 -0
  182. package/dist/types/types/data-table.d.ts +34 -0
  183. package/dist/types/types/data-table.d.ts.map +1 -0
  184. package/package.json +12 -2
@@ -0,0 +1,2 @@
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{useCallbackRef:()=>useCallbackRef});let external_react_namespaceObject=require("react");function useCallbackRef(e){let _=external_react_namespaceObject.useRef(e);return external_react_namespaceObject.useEffect(()=>{_.current=e}),external_react_namespaceObject.useMemo(()=>(...e)=>_.current?.(...e),[])}for(var __webpack_i__ in exports.useCallbackRef=__webpack_exports__.useCallbackRef,__webpack_exports__)-1===["useCallbackRef"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
+ //# sourceMappingURL=use-callback-ref.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks\\use-callback-ref.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/hooks/use-callback-ref.ts"],"sourcesContent":["import * as React from 'react'\r\n\r\n/**\r\n * @see https://github.com/radix-ui/primitives/blob/main/packages/react/use-callback-ref/src/useCallbackRef.tsx\r\n */\r\n\r\n/**\r\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\r\n * prop or avoid re-executing effects when passed as a dependency\r\n */\r\nfunction useCallbackRef<T extends (...args: never[]) => unknown>(\r\n callback: T | undefined\r\n): T {\r\n const callbackRef = React.useRef(callback)\r\n\r\n React.useEffect(() => {\r\n callbackRef.current = callback\r\n })\r\n\r\n // https://github.com/facebook/react/issues/19240\r\n return React.useMemo(\r\n () => ((...args) => callbackRef.current?.(...args)) as T,\r\n []\r\n )\r\n}\r\n\r\nexport { useCallbackRef }\r\n"],"names":["useCallbackRef","callback","callbackRef","React","args"],"mappings":"o2BAUA,SAASA,eACPC,CAAuB,EAEvB,IAAMC,EAAcC,+BAAAA,MAAY,CAACF,GAOjC,OALAE,+BAAAA,SAAe,CAAC,KACdD,EAAY,OAAO,CAAGD,CACxB,GAGOE,+BAAAA,OAAa,CAClB,IAAO,CAAC,GAAGC,IAASF,EAAY,OAAO,MAAME,GAC7C,EAAE,CAEN,C"}
@@ -0,0 +1,3 @@
1
+ 'use client'
2
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,a)=>{for(var t in a)__webpack_require__.o(a,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},__webpack_require__.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{useDataTable:()=>useDataTable});let react_table_namespaceObject=require("@tanstack/react-table"),external_nuqs_namespaceObject=require("nuqs"),external_react_namespaceObject=require("react"),external_use_debounced_callback_cjs_namespaceObject=require("./use-debounced-callback.cjs"),parsers_cjs_namespaceObject=require("../lib/parsers.cjs"),PAGE_KEY="page",PER_PAGE_KEY="perPage",SORT_KEY="sort",ARRAY_SEPARATOR=",",DEBOUNCE_MS=300,THROTTLE_MS=50;function useDataTable(e){let{columns:a,pageCount:t=-1,initialState:_,history:r="replace",debounceMs:c=300,throttleMs:n=50,clearOnDefault:s=!1,enableAdvancedFilter:l=!1,scroll:o=!1,shallow:i=!0,startTransition:u,...p}=e,b=external_react_namespaceObject.useMemo(()=>({history:r,scroll:o,shallow:i,throttleMs:n,debounceMs:c,clearOnDefault:s,startTransition:u}),[r,o,i,n,c,s,u]),[m,d]=external_react_namespaceObject.useState(_?.rowSelection??{}),[O,j]=external_react_namespaceObject.useState(_?.columnVisibility??{}),[g,w]=(0,external_nuqs_namespaceObject.useQueryState)("page",external_nuqs_namespaceObject.parseAsInteger.withOptions(b).withDefault(1)),[x,f]=(0,external_nuqs_namespaceObject.useQueryState)("perPage",external_nuqs_namespaceObject.parseAsInteger.withOptions(b).withDefault(_?.pagination?.pageSize??10)),S=external_react_namespaceObject.useMemo(()=>({pageIndex:g-1,pageSize:x}),[g,x]),q=external_react_namespaceObject.useCallback(e=>{if("function"==typeof e){let a=e(S);w(a.pageIndex+1),f(a.pageSize)}else w(e.pageIndex+1),f(e.pageSize)},[S,w,f]),k=external_react_namespaceObject.useMemo(()=>new Set(a.map(e=>e.id).filter(Boolean)),[a]),[M,y]=(0,external_nuqs_namespaceObject.useQueryState)("sort",(0,parsers_cjs_namespaceObject.getSortingStateParser)(k).withOptions(b).withDefault(_?.sorting??[])),R=external_react_namespaceObject.useCallback(e=>{"function"==typeof e?y(e(M)):y(e)},[M,y]),A=external_react_namespaceObject.useMemo(()=>l?[]:a.filter(e=>e.enableColumnFilter),[a,l]),P=external_react_namespaceObject.useMemo(()=>l?{}:A.reduce((e,a)=>(a.meta?.options?e[a.id??""]=(0,external_nuqs_namespaceObject.parseAsArrayOf)(external_nuqs_namespaceObject.parseAsString,",").withOptions(b):e[a.id??""]=external_nuqs_namespaceObject.parseAsString.withOptions(b),e),{}),[A,b,l]),[h,C]=(0,external_nuqs_namespaceObject.useQueryStates)(P),T=(0,external_use_debounced_callback_cjs_namespaceObject.useDebouncedCallback)(e=>{w(1),C(e)},c),D=external_react_namespaceObject.useMemo(()=>l?[]:Object.entries(h).reduce((e,[a,t])=>{if(null!==t){let _=Array.isArray(t)?t:"string"==typeof t&&/[^a-zA-Z0-9]/.test(t)?t.split(/[^a-zA-Z0-9]+/).filter(Boolean):[t];e.push({id:a,value:_})}return e},[]),[h,l]),[F,E]=external_react_namespaceObject.useState(D),v=external_react_namespaceObject.useCallback(e=>{l||E(a=>{let t="function"==typeof e?e(a):e,_=t.reduce((e,a)=>(A.find(e=>e.id===a.id)&&(e[a.id]=a.value),e),{});for(let e of a)t.some(a=>a.id===e.id)||(_[e.id]=null);return T(_),t})},[T,A,l]);return{table:(0,react_table_namespaceObject.useReactTable)({...p,columns:a,initialState:_,pageCount:t,state:{pagination:S,sorting:M,columnVisibility:O,rowSelection:m,columnFilters:F},defaultColumn:{...p.defaultColumn,enableColumnFilter:!1},enableRowSelection:!0,onRowSelectionChange:d,onPaginationChange:q,onSortingChange:R,onColumnFiltersChange:v,onColumnVisibilityChange:j,getCoreRowModel:(0,react_table_namespaceObject.getCoreRowModel)(),getFilteredRowModel:(0,react_table_namespaceObject.getFilteredRowModel)(),getPaginationRowModel:(0,react_table_namespaceObject.getPaginationRowModel)(),getSortedRowModel:(0,react_table_namespaceObject.getSortedRowModel)(),getFacetedRowModel:(0,react_table_namespaceObject.getFacetedRowModel)(),getFacetedUniqueValues:(0,react_table_namespaceObject.getFacetedUniqueValues)(),getFacetedMinMaxValues:(0,react_table_namespaceObject.getFacetedMinMaxValues)(),manualPagination:!0,manualSorting:!0,manualFiltering:!0}),shallow:i,debounceMs:c,throttleMs:n}}for(var __webpack_i__ in exports.useDataTable=__webpack_exports__.useDataTable,__webpack_exports__)-1===["useDataTable"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
3
+ //# sourceMappingURL=use-data-table.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks\\use-data-table.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/hooks/use-data-table.ts"],"sourcesContent":["\r\n\r\nimport {\r\n type ColumnFiltersState,\r\n type PaginationState,\r\n type RowSelectionState,\r\n type SortingState,\r\n type TableOptions,\r\n type TableState,\r\n type Updater,\r\n type VisibilityState,\r\n getCoreRowModel,\r\n getFacetedMinMaxValues,\r\n getFacetedRowModel,\r\n getFacetedUniqueValues,\r\n getFilteredRowModel,\r\n getPaginationRowModel,\r\n getSortedRowModel,\r\n useReactTable,\r\n} from '@tanstack/react-table'\r\nimport {\r\n type Parser,\r\n type UseQueryStateOptions,\r\n parseAsArrayOf,\r\n parseAsInteger,\r\n parseAsString,\r\n useQueryState,\r\n useQueryStates,\r\n} from 'nuqs'\r\nimport * as React from 'react'\r\n\r\nimport { useDebouncedCallback } from '@/hooks/use-debounced-callback'\r\nimport { getSortingStateParser } from '@/lib/parsers'\r\nimport type { ExtendedColumnSort } from '@/types/data-table'\r\n\r\nconst PAGE_KEY = 'page'\r\nconst PER_PAGE_KEY = 'perPage'\r\nconst SORT_KEY = 'sort'\r\nconst ARRAY_SEPARATOR = ','\r\nconst DEBOUNCE_MS = 300\r\nconst THROTTLE_MS = 50\r\n\r\ninterface UseDataTableProps<TData>\r\n extends Omit<\r\n TableOptions<TData>,\r\n | 'state'\r\n | 'pageCount'\r\n | 'getCoreRowModel'\r\n | 'manualFiltering'\r\n | 'manualPagination'\r\n | 'manualSorting'\r\n >,\r\n Required<Pick<TableOptions<TData>, 'pageCount'>> {\r\n initialState?: Omit<Partial<TableState>, 'sorting'> & {\r\n sorting?: ExtendedColumnSort<TData>[]\r\n }\r\n history?: 'push' | 'replace'\r\n debounceMs?: number\r\n throttleMs?: number\r\n clearOnDefault?: boolean\r\n enableAdvancedFilter?: boolean\r\n scroll?: boolean\r\n shallow?: boolean\r\n startTransition?: React.TransitionStartFunction\r\n}\r\n\r\nexport function useDataTable<TData>(props: UseDataTableProps<TData>) {\r\n const {\r\n columns,\r\n pageCount = -1,\r\n initialState,\r\n history = 'replace',\r\n debounceMs = DEBOUNCE_MS,\r\n throttleMs = THROTTLE_MS,\r\n clearOnDefault = false,\r\n enableAdvancedFilter = false,\r\n scroll = false,\r\n shallow = true,\r\n startTransition,\r\n ...tableProps\r\n } = props\r\n\r\n const queryStateOptions = React.useMemo<\r\n Omit<UseQueryStateOptions<string>, 'parse'>\r\n >(\r\n () => ({\r\n history,\r\n scroll,\r\n shallow,\r\n throttleMs,\r\n debounceMs,\r\n clearOnDefault,\r\n startTransition,\r\n }),\r\n [\r\n history,\r\n scroll,\r\n shallow,\r\n throttleMs,\r\n debounceMs,\r\n clearOnDefault,\r\n startTransition,\r\n ]\r\n )\r\n\r\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>(\r\n initialState?.rowSelection ?? {}\r\n )\r\n const [columnVisibility, setColumnVisibility] =\r\n React.useState<VisibilityState>(initialState?.columnVisibility ?? {})\r\n\r\n const [page, setPage] = useQueryState(\r\n PAGE_KEY,\r\n parseAsInteger.withOptions(queryStateOptions).withDefault(1)\r\n )\r\n const [perPage, setPerPage] = useQueryState(\r\n PER_PAGE_KEY,\r\n parseAsInteger\r\n .withOptions(queryStateOptions)\r\n .withDefault(initialState?.pagination?.pageSize ?? 10)\r\n )\r\n\r\n const pagination: PaginationState = React.useMemo(() => {\r\n return {\r\n pageIndex: page - 1, // zero-based index -> one-based index\r\n pageSize: perPage,\r\n }\r\n }, [page, perPage])\r\n\r\n const onPaginationChange = React.useCallback(\r\n (updaterOrValue: Updater<PaginationState>) => {\r\n if (typeof updaterOrValue === 'function') {\r\n const newPagination = updaterOrValue(pagination)\r\n void setPage(newPagination.pageIndex + 1)\r\n void setPerPage(newPagination.pageSize)\r\n } else {\r\n void setPage(updaterOrValue.pageIndex + 1)\r\n void setPerPage(updaterOrValue.pageSize)\r\n }\r\n },\r\n [pagination, setPage, setPerPage]\r\n )\r\n\r\n const columnIds = React.useMemo(() => {\r\n return new Set(columns.map(column => column.id).filter(Boolean) as string[])\r\n }, [columns])\r\n\r\n const [sorting, setSorting] = useQueryState(\r\n SORT_KEY,\r\n getSortingStateParser<TData>(columnIds)\r\n .withOptions(queryStateOptions)\r\n .withDefault(initialState?.sorting ?? [])\r\n )\r\n\r\n const onSortingChange = React.useCallback(\r\n (updaterOrValue: Updater<SortingState>) => {\r\n if (typeof updaterOrValue === 'function') {\r\n const newSorting = updaterOrValue(sorting)\r\n setSorting(newSorting as ExtendedColumnSort<TData>[])\r\n } else {\r\n setSorting(updaterOrValue as ExtendedColumnSort<TData>[])\r\n }\r\n },\r\n [sorting, setSorting]\r\n )\r\n\r\n const filterableColumns = React.useMemo(() => {\r\n if (enableAdvancedFilter) return []\r\n\r\n return columns.filter(column => column.enableColumnFilter)\r\n }, [columns, enableAdvancedFilter])\r\n\r\n const filterParsers = React.useMemo(() => {\r\n if (enableAdvancedFilter) return {}\r\n\r\n return filterableColumns.reduce<\r\n Record<string, Parser<string> | Parser<string[]>>\r\n >((acc, column) => {\r\n if (column.meta?.options) {\r\n acc[column.id ?? ''] = parseAsArrayOf(\r\n parseAsString,\r\n ARRAY_SEPARATOR\r\n ).withOptions(queryStateOptions)\r\n } else {\r\n acc[column.id ?? ''] = parseAsString.withOptions(queryStateOptions)\r\n }\r\n return acc\r\n }, {})\r\n }, [filterableColumns, queryStateOptions, enableAdvancedFilter])\r\n\r\n const [filterValues, setFilterValues] = useQueryStates(filterParsers)\r\n\r\n const debouncedSetFilterValues = useDebouncedCallback(\r\n (values: typeof filterValues) => {\r\n void setPage(1)\r\n void setFilterValues(values)\r\n },\r\n debounceMs\r\n )\r\n\r\n const initialColumnFilters: ColumnFiltersState = React.useMemo(() => {\r\n if (enableAdvancedFilter) return []\r\n\r\n return Object.entries(filterValues).reduce<ColumnFiltersState>(\r\n (filters, [key, value]) => {\r\n if (value !== null) {\r\n const processedValue = Array.isArray(value)\r\n ? value\r\n : typeof value === 'string' && /[^a-zA-Z0-9]/.test(value)\r\n ? value.split(/[^a-zA-Z0-9]+/).filter(Boolean)\r\n : [value]\r\n\r\n filters.push({\r\n id: key,\r\n value: processedValue,\r\n })\r\n }\r\n return filters\r\n },\r\n []\r\n )\r\n }, [filterValues, enableAdvancedFilter])\r\n\r\n const [columnFilters, setColumnFilters] =\r\n React.useState<ColumnFiltersState>(initialColumnFilters)\r\n\r\n const onColumnFiltersChange = React.useCallback(\r\n (updaterOrValue: Updater<ColumnFiltersState>) => {\r\n if (enableAdvancedFilter) return\r\n\r\n setColumnFilters(prev => {\r\n const next =\r\n typeof updaterOrValue === 'function'\r\n ? updaterOrValue(prev)\r\n : updaterOrValue\r\n\r\n const filterUpdates = next.reduce<\r\n Record<string, string | string[] | null>\r\n >((acc, filter) => {\r\n if (filterableColumns.find(column => column.id === filter.id)) {\r\n acc[filter.id] = filter.value as string | string[]\r\n }\r\n return acc\r\n }, {})\r\n\r\n for (const prevFilter of prev) {\r\n if (!next.some(filter => filter.id === prevFilter.id)) {\r\n filterUpdates[prevFilter.id] = null\r\n }\r\n }\r\n\r\n debouncedSetFilterValues(filterUpdates)\r\n return next\r\n })\r\n },\r\n [debouncedSetFilterValues, filterableColumns, enableAdvancedFilter]\r\n )\r\n\r\n const table = useReactTable({\r\n ...tableProps,\r\n columns,\r\n initialState,\r\n pageCount,\r\n state: {\r\n pagination,\r\n sorting,\r\n columnVisibility,\r\n rowSelection,\r\n columnFilters,\r\n },\r\n defaultColumn: {\r\n ...tableProps.defaultColumn,\r\n enableColumnFilter: false,\r\n },\r\n enableRowSelection: true,\r\n onRowSelectionChange: setRowSelection,\r\n onPaginationChange,\r\n onSortingChange,\r\n onColumnFiltersChange,\r\n onColumnVisibilityChange: setColumnVisibility,\r\n getCoreRowModel: getCoreRowModel(),\r\n getFilteredRowModel: getFilteredRowModel(),\r\n getPaginationRowModel: getPaginationRowModel(),\r\n getSortedRowModel: getSortedRowModel(),\r\n getFacetedRowModel: getFacetedRowModel(),\r\n getFacetedUniqueValues: getFacetedUniqueValues(),\r\n getFacetedMinMaxValues: getFacetedMinMaxValues(),\r\n manualPagination: true,\r\n manualSorting: true,\r\n manualFiltering: true,\r\n })\r\n\r\n return { table, shallow, debounceMs, throttleMs }\r\n}\r\n"],"names":["PAGE_KEY","PER_PAGE_KEY","SORT_KEY","ARRAY_SEPARATOR","DEBOUNCE_MS","THROTTLE_MS","useDataTable","props","columns","pageCount","initialState","history","debounceMs","throttleMs","clearOnDefault","enableAdvancedFilter","scroll","shallow","startTransition","tableProps","queryStateOptions","React","rowSelection","setRowSelection","columnVisibility","setColumnVisibility","page","setPage","useQueryState","parseAsInteger","perPage","setPerPage","pagination","onPaginationChange","updaterOrValue","newPagination","columnIds","Set","column","Boolean","sorting","setSorting","getSortingStateParser","onSortingChange","filterableColumns","filterParsers","acc","parseAsArrayOf","parseAsString","filterValues","setFilterValues","useQueryStates","debouncedSetFilterValues","useDebouncedCallback","values","initialColumnFilters","Object","filters","key","value","processedValue","Array","columnFilters","setColumnFilters","onColumnFiltersChange","prev","next","filterUpdates","filter","prevFilter","table","useReactTable","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","getFacetedRowModel","getFacetedUniqueValues","getFacetedMinMaxValues"],"mappings":";imCAmCMA,SAAW,OACXC,aAAe,UACfC,SAAW,OACXC,gBAAkB,IAClBC,YAAc,IACdC,YAAc,GA0Bb,SAASC,aAAoBC,CAA+B,EACjE,GAAM,CACJC,QAAAA,CAAO,CACPC,UAAAA,EAAY,EAAE,CACdC,aAAAA,CAAY,CACZC,QAAAA,EAAU,SAAS,CACnBC,WAAAA,EAjCgB,GAiCQ,CACxBC,WAAAA,EAjCgB,EAiCQ,CACxBC,eAAAA,EAAiB,EAAK,CACtBC,qBAAAA,EAAuB,EAAK,CAC5BC,OAAAA,EAAS,EAAK,CACdC,QAAAA,EAAU,EAAI,CACdC,gBAAAA,CAAe,CACf,GAAGC,EACJ,CAAGZ,EAEEa,EAAoBC,+BAAAA,OAAa,CAGrC,IAAO,EACLV,QAAAA,EACAK,OAAAA,EACAC,QAAAA,EACAJ,WAAAA,EACAD,WAAAA,EACAE,eAAAA,EACAI,gBAAAA,CACF,GACA,CACEP,EACAK,EACAC,EACAJ,EACAD,EACAE,EACAI,EACD,EAGG,CAACI,EAAcC,EAAgB,CAAGF,+BAAAA,QAAc,CACpDX,GAAc,cAAgB,CAAC,GAE3B,CAACc,EAAkBC,EAAoB,CAC3CJ,+BAAAA,QAAc,CAAkBX,GAAc,kBAAoB,CAAC,GAE/D,CAACgB,EAAMC,EAAQ,CAAGC,GAAAA,8BAAAA,aAAAA,EA5ET,OA8EbC,8BAAAA,cAAAA,CAAAA,WAA0B,CAACT,GAAmB,WAAW,CAAC,IAEtD,CAACU,EAASC,EAAW,CAAGH,GAAAA,8BAAAA,aAAAA,EA/EX,UAiFjBC,8BAAAA,cAAAA,CAAAA,WACc,CAACT,GACZ,WAAW,CAACV,GAAc,YAAY,UAAY,KAGjDsB,EAA8BX,+BAAAA,OAAa,CAAC,IACzC,EACL,UAAWK,EAAO,EAClB,SAAUI,CACZ,GACC,CAACJ,EAAMI,EAAQ,EAEZG,EAAqBZ,+BAAAA,WAAiB,CAC1C,IACE,GAAI,mBAAOa,EAA+B,CACxC,IAAMC,EAAgBD,EAAeF,GAChCL,EAAQQ,EAAc,SAAS,CAAG,GAClCJ,EAAWI,EAAc,QAAQ,CACxC,MACOR,EAAQO,EAAe,SAAS,CAAG,GACnCH,EAAWG,EAAe,QAAQ,CAE3C,EACA,CAACF,EAAYL,EAASI,EAAW,EAG7BK,EAAYf,+BAAAA,OAAa,CAAC,IACvB,IAAIgB,IAAI7B,EAAQ,GAAG,CAAC8B,GAAUA,EAAO,EAAE,EAAE,MAAM,CAACC,UACtD,CAAC/B,EAAQ,EAEN,CAACgC,EAASC,EAAW,CAAGb,GAAAA,8BAAAA,aAAAA,EA9Gf,OAgHbc,GAAAA,4BAAAA,qBAAAA,EAA6BN,GAC1B,WAAW,CAAChB,GACZ,WAAW,CAACV,GAAc,SAAW,EAAE,GAGtCiC,EAAkBtB,+BAAAA,WAAiB,CACvC,IACM,mBAAOa,EAETO,EADmBP,EAAeM,IAGlCC,EAAWP,EAEf,EACA,CAACM,EAASC,EAAW,EAGjBG,EAAoBvB,+BAAAA,OAAa,CAAC,IACtC,EAAiC,EAAE,CAE5Bb,EAAQ,MAAM,CAAC8B,GAAUA,EAAO,kBAAkB,EACxD,CAAC9B,EAASO,EAAqB,EAE5B8B,EAAgBxB,+BAAAA,OAAa,CAAC,IAClC,EAAiC,CAAC,EAE3BuB,EAAkB,MAAM,CAE7B,CAACE,EAAKR,KACFA,EAAO,IAAI,EAAE,QACfQ,CAAG,CAACR,EAAO,EAAE,EAAI,GAAG,CAAGS,GAAAA,8BAAAA,cAAAA,EACrBC,8BAAAA,aAAaA,CA9IC,KAgJd,WAAW,CAAC5B,GAEd0B,CAAG,CAACR,EAAO,EAAE,EAAI,GAAG,CAAGU,8BAAAA,aAAAA,CAAAA,WAAyB,CAAC5B,GAE5C0B,GACN,CAAC,GACH,CAACF,EAAmBxB,EAAmBL,EAAqB,EAEzD,CAACkC,EAAcC,EAAgB,CAAGC,GAAAA,8BAAAA,cAAAA,EAAeN,GAEjDO,EAA2BC,GAAAA,oDAAAA,oBAAAA,EAC/B,IACO1B,EAAQ,GACRuB,EAAgBI,EACvB,EACA1C,GAGI2C,EAA2ClC,+BAAAA,OAAa,CAAC,IAC7D,EAAiC,EAAE,CAE5BmC,OAAO,OAAO,CAACP,GAAc,MAAM,CACxC,CAACQ,EAAS,CAACC,EAAKC,EAAM,IACpB,GAAIA,OAAAA,EAAgB,CAClB,IAAMC,EAAiBC,MAAM,OAAO,CAACF,GACjCA,EACA,iBAAOA,GAAsB,eAAe,IAAI,CAACA,GAC/CA,EAAM,KAAK,CAAC,iBAAiB,MAAM,CAACpB,SACpC,CAACoB,EAAM,CAEbF,EAAQ,IAAI,CAAC,CACX,GAAIC,EACJ,MAAOE,CACT,EACF,CACA,OAAOH,CACT,EACA,EAAE,EAEH,CAACR,EAAclC,EAAqB,EAEjC,CAAC+C,EAAeC,EAAiB,CACrC1C,+BAAAA,QAAc,CAAqBkC,GAE/BS,EAAwB3C,+BAAAA,WAAiB,CAC7C,IACMN,GAEJgD,EAAiBE,IACf,IAAMC,EACJ,mBAAOhC,EACHA,EAAe+B,GACf/B,EAEAiC,EAAgBD,EAAK,MAAM,CAE/B,CAACpB,EAAKsB,KACFxB,EAAkB,IAAI,CAACN,GAAUA,EAAO,EAAE,GAAK8B,EAAO,EAAE,GAC1DtB,CAAAA,CAAG,CAACsB,EAAO,EAAE,CAAC,CAAGA,EAAO,KAAK,EAExBtB,GACN,CAAC,GAEJ,IAAK,IAAMuB,KAAcJ,EACnB,EAAM,IAAI,CAACG,GAAUA,EAAO,EAAE,GAAKC,EAAW,EAAE,GAClDF,CAAAA,CAAa,CAACE,EAAW,EAAE,CAAC,CAAG,IAAG,EAKtC,OADAjB,EAAyBe,GAClBD,CACT,EACF,EACA,CAACd,EAA0BR,EAAmB7B,EAAqB,EAqCrE,MAAO,CAAEuD,MAlCKC,GAAAA,4BAAAA,aAAAA,EAAc,CAC1B,GAAGpD,CAAU,CACbX,QAAAA,EACAE,aAAAA,EACAD,UAAAA,EACA,MAAO,CACLuB,WAAAA,EACAQ,QAAAA,EACAhB,iBAAAA,EACAF,aAAAA,EACAwC,cAAAA,CACF,EACA,cAAe,CACb,GAAG3C,EAAW,aAAa,CAC3B,mBAAoB,EACtB,EACA,mBAAoB,GACpB,qBAAsBI,EACtBU,mBAAAA,EACAU,gBAAAA,EACAqB,sBAAAA,EACA,yBAA0BvC,EAC1B,gBAAiB+C,GAAAA,4BAAAA,eAAAA,IACjB,oBAAqBC,GAAAA,4BAAAA,mBAAAA,IACrB,sBAAuBC,GAAAA,4BAAAA,qBAAAA,IACvB,kBAAmBC,GAAAA,4BAAAA,iBAAAA,IACnB,mBAAoBC,GAAAA,4BAAAA,kBAAAA,IACpB,uBAAwBC,GAAAA,4BAAAA,sBAAAA,IACxB,uBAAwBC,GAAAA,4BAAAA,sBAAAA,IACxB,iBAAkB,GAClB,cAAe,GACf,gBAAiB,EACnB,GAEgB7D,QAAAA,EAASL,WAAAA,EAAYC,WAAAA,CAAW,CAClD,C"}
@@ -0,0 +1,2 @@
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{useDebouncedCallback:()=>useDebouncedCallback});let external_react_namespaceObject=require("react"),external_use_callback_ref_cjs_namespaceObject=require("./use-callback-ref.cjs");function useDebouncedCallback(e,_){let r=(0,external_use_callback_ref_cjs_namespaceObject.useCallbackRef)(e),a=external_react_namespaceObject.useRef(0);return external_react_namespaceObject.useEffect(()=>()=>window.clearTimeout(a.current),[]),external_react_namespaceObject.useCallback((...e)=>{window.clearTimeout(a.current),a.current=window.setTimeout(()=>r(...e),_)},[r,_])}for(var __webpack_i__ in exports.useDebouncedCallback=__webpack_exports__.useDebouncedCallback,__webpack_exports__)-1===["useDebouncedCallback"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
+ //# sourceMappingURL=use-debounced-callback.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks\\use-debounced-callback.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/hooks/use-debounced-callback.ts"],"sourcesContent":["/**\r\n * @see https://github.com/mantinedev/mantine/blob/master/packages/@mantine/hooks/src/use-debounced-callback/use-debounced-callback.ts\r\n */\r\n\r\nimport * as React from 'react'\r\n\r\nimport { useCallbackRef } from '@/hooks/use-callback-ref'\r\n\r\nexport function useDebouncedCallback<T extends (...args: never[]) => unknown>(\r\n callback: T,\r\n delay: number\r\n) {\r\n const handleCallback = useCallbackRef(callback)\r\n const debounceTimerRef = React.useRef(0)\r\n React.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), [])\r\n\r\n const setValue = React.useCallback(\r\n (...args: Parameters<T>) => {\r\n window.clearTimeout(debounceTimerRef.current)\r\n debounceTimerRef.current = window.setTimeout(\r\n () => handleCallback(...args),\r\n delay\r\n )\r\n },\r\n [handleCallback, delay]\r\n )\r\n\r\n return setValue\r\n}\r\n"],"names":["useDebouncedCallback","callback","delay","handleCallback","useCallbackRef","debounceTimerRef","React","window","args"],"mappings":"g8BAQO,SAASA,qBACdC,CAAW,CACXC,CAAa,EAEb,IAAMC,EAAiBC,AAAAA,GAAAA,8CAAAA,cAAAA,AAAAA,EAAeH,GAChCI,EAAmBC,+BAAAA,MAAY,CAAC,GActC,OAbAA,+BAAAA,SAAe,CAAC,IAAM,IAAMC,OAAO,YAAY,CAACF,EAAiB,OAAO,EAAG,EAAE,EAE5DC,+BAAAA,WAAiB,CAChC,CAAC,GAAGE,KACFD,OAAO,YAAY,CAACF,EAAiB,OAAO,EAC5CA,EAAiB,OAAO,CAAGE,OAAO,UAAU,CAC1C,IAAMJ,KAAkBK,GACxBN,EAEJ,EACA,CAACC,EAAgBD,EAAM,CAI3B,C"}
@@ -1 +1 @@
1
- "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_modules__={"./components/alert-dialog":function(e){e.exports=require("./components/alert-dialog.cjs")},"./components/breadcrumb":function(e){e.exports=require("./components/breadcrumb.cjs")},"./components/button":function(e){e.exports=require("./components/button.cjs")},"./components/calendar":function(e){e.exports=require("./components/calendar.cjs")},"./components/checkbox":function(e){e.exports=require("./components/checkbox.cjs")},"./components/combobox":function(e){e.exports=require("./components/combobox.cjs")},"./components/date-picker-with-range":function(e){e.exports=require("./components/date-picker-with-range.cjs")},"./components/date-picker-with-time":function(e){e.exports=require("./components/date-picker-with-time.cjs")},"./components/date-picker":function(e){e.exports=require("./components/date-picker.cjs")},"./components/date-time-picker-with-range":function(e){e.exports=require("./components/date-time-picker-with-range.cjs")},"./components/dialog":function(e){e.exports=require("./components/dialog.cjs")},"./components/dropdown-menu":function(e){e.exports=require("./components/dropdown-menu.cjs")},"./components/form":function(e){e.exports=require("./components/form.cjs")},"./components/input-otp":function(e){e.exports=require("./components/input-otp.cjs")},"./components/input-password":function(e){e.exports=require("./components/input-password.cjs")},"./components/input":function(e){e.exports=require("./components/input.cjs")},"./components/label":function(e){e.exports=require("./components/label.cjs")},"./components/mask-input":function(e){e.exports=require("./components/mask-input.cjs")},"./components/multi-select":function(e){e.exports=require("./components/multi-select.cjs")},"./components/page-layout":function(e){e.exports=require("./components/page-layout/index.cjs")},"./components/pagination":function(e){e.exports=require("./components/pagination.cjs")},"./components/scroll-area":function(e){e.exports=require("./components/scroll-area.cjs")},"./components/select":function(e){e.exports=require("./components/select.cjs")},"./components/separator":function(e){e.exports=require("./components/separator.cjs")},"./components/skeleton":function(e){e.exports=require("./components/skeleton.cjs")},"./components/switch":function(e){e.exports=require("./components/switch.cjs")},"./components/table-expandable":function(e){e.exports=require("./components/table-expandable.cjs")},"./components/table":function(e){e.exports=require("./components/table.cjs")},"./components/tabs":function(e){e.exports=require("./components/tabs/index.cjs")},"./components/textarea":function(e){e.exports=require("./components/textarea.cjs")},"./components/title":function(e){e.exports=require("./components/title.cjs")},"./components/tokens-grid":function(e){e.exports=require("./components/tokens-grid.cjs")},"./components/tooltip":function(e){e.exports=require("./components/tooltip.cjs")},"@/lib/utils":function(e){e.exports=require("./lib/utils.cjs")},"@/utils/phosphor-icon-map":function(e){e.exports=require("./utils/phosphor-icon-map.cjs")}},__webpack_module_cache__={};function __webpack_require__(e){var _=__webpack_module_cache__[e];if(void 0!==_)return _.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};for(var __webpack_i__ in(()=>{__webpack_require__.r(__webpack_exports__);var e=__webpack_require__("./components/alert-dialog"),_={};for(var r in e)"default"!==r&&(_[r]=(function(_){return e[_]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var n=__webpack_require__("./components/dialog"),_={};for(var r in n)"default"!==r&&(_[r]=(function(e){return n[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var o=__webpack_require__("./components/button"),_={};for(var r in o)"default"!==r&&(_[r]=(function(e){return o[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var t=__webpack_require__("./components/input-password"),_={};for(var r in t)"default"!==r&&(_[r]=(function(e){return t[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var c=__webpack_require__("./components/input"),_={};for(var r in c)"default"!==r&&(_[r]=(function(e){return c[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var p=__webpack_require__("./components/tokens-grid"),_={};for(var r in p)"default"!==r&&(_[r]=(function(e){return p[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var i=__webpack_require__("./components/tooltip"),_={};for(var r in i)"default"!==r&&(_[r]=(function(e){return i[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var a=__webpack_require__("./components/switch"),_={};for(var r in a)"default"!==r&&(_[r]=(function(e){return a[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var u=__webpack_require__("./components/label"),_={};for(var r in u)"default"!==r&&(_[r]=(function(e){return u[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var s=__webpack_require__("./components/checkbox"),_={};for(var r in s)"default"!==r&&(_[r]=(function(e){return s[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var b=__webpack_require__("./components/breadcrumb"),_={};for(var r in b)"default"!==r&&(_[r]=(function(e){return b[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var d=__webpack_require__("./components/tabs"),_={};for(var r in d)"default"!==r&&(_[r]=(function(e){return d[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var f=__webpack_require__("./components/form"),_={};for(var r in f)"default"!==r&&(_[r]=(function(e){return f[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var k=__webpack_require__("./components/dropdown-menu"),_={};for(var r in k)"default"!==r&&(_[r]=(function(e){return k[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var w=__webpack_require__("./components/multi-select"),_={};for(var r in w)"default"!==r&&(_[r]=(function(e){return w[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var m=__webpack_require__("./components/select"),_={};for(var r in m)"default"!==r&&(_[r]=(function(e){return m[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var l=__webpack_require__("./components/table"),_={};for(var r in l)"default"!==r&&(_[r]=(function(e){return l[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var q=__webpack_require__("./components/table-expandable"),_={};for(var r in q)"default"!==r&&(_[r]=(function(e){return q[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var x=__webpack_require__("./components/textarea"),_={};for(var r in x)"default"!==r&&(_[r]=(function(e){return x[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var v=__webpack_require__("./components/calendar"),_={};for(var r in v)"default"!==r&&(_[r]=(function(e){return v[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var j=__webpack_require__("./components/date-picker"),_={};for(var r in j)"default"!==r&&(_[r]=(function(e){return j[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var h=__webpack_require__("./components/date-picker-with-range"),_={};for(var r in h)"default"!==r&&(_[r]=(function(e){return h[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var g=__webpack_require__("./components/date-picker-with-time"),_={};for(var r in g)"default"!==r&&(_[r]=(function(e){return g[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var y=__webpack_require__("./components/date-time-picker-with-range"),_={};for(var r in y)"default"!==r&&(_[r]=(function(e){return y[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var S=__webpack_require__("./components/title"),_={};for(var r in S)"default"!==r&&(_[r]=(function(e){return S[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var O=__webpack_require__("./components/page-layout"),_={};for(var r in O)"default"!==r&&(_[r]=(function(e){return O[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var P=__webpack_require__("./components/pagination"),_={};for(var r in P)"default"!==r&&(_[r]=(function(e){return P[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var M=__webpack_require__("./components/skeleton"),_={};for(var r in M)"default"!==r&&(_[r]=(function(e){return M[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var R=__webpack_require__("./components/separator"),_={};for(var r in R)"default"!==r&&(_[r]=(function(e){return R[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var U=__webpack_require__("./components/input-otp"),_={};for(var r in U)"default"!==r&&(_[r]=(function(e){return U[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var L=__webpack_require__("./components/combobox"),_={};for(var r in L)"default"!==r&&(_[r]=(function(e){return L[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var T=__webpack_require__("./components/mask-input"),_={};for(var r in T)"default"!==r&&(_[r]=(function(e){return T[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var I=__webpack_require__("./components/scroll-area"),_={};for(var r in I)"default"!==r&&(_[r]=(function(e){return I[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var z=__webpack_require__("@/utils/phosphor-icon-map"),_={};for(var r in z)"default"!==r&&(_[r]=(function(e){return z[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var A=__webpack_require__("@/lib/utils"),_={};for(var r in A)"default"!==r&&(_[r]=(function(e){return A[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_)})(),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_modules__={"./components/alert-dialog":function(e){e.exports=require("./components/alert-dialog.cjs")},"./components/breadcrumb":function(e){e.exports=require("./components/breadcrumb.cjs")},"./components/button":function(e){e.exports=require("./components/button.cjs")},"./components/calendar":function(e){e.exports=require("./components/calendar.cjs")},"./components/checkbox":function(e){e.exports=require("./components/checkbox.cjs")},"./components/combobox":function(e){e.exports=require("./components/combobox.cjs")},"./components/data-table":function(e){e.exports=require("./components/data-table/index.cjs")},"./components/date-picker-with-range":function(e){e.exports=require("./components/date-picker-with-range.cjs")},"./components/date-picker-with-time":function(e){e.exports=require("./components/date-picker-with-time.cjs")},"./components/date-picker":function(e){e.exports=require("./components/date-picker.cjs")},"./components/date-time-picker-with-range":function(e){e.exports=require("./components/date-time-picker-with-range.cjs")},"./components/dialog":function(e){e.exports=require("./components/dialog.cjs")},"./components/dropdown-menu":function(e){e.exports=require("./components/dropdown-menu.cjs")},"./components/form":function(e){e.exports=require("./components/form.cjs")},"./components/input-otp":function(e){e.exports=require("./components/input-otp.cjs")},"./components/input-password":function(e){e.exports=require("./components/input-password.cjs")},"./components/input":function(e){e.exports=require("./components/input.cjs")},"./components/label":function(e){e.exports=require("./components/label.cjs")},"./components/mask-input":function(e){e.exports=require("./components/mask-input.cjs")},"./components/multi-select":function(e){e.exports=require("./components/multi-select.cjs")},"./components/page-layout":function(e){e.exports=require("./components/page-layout/index.cjs")},"./components/pagination":function(e){e.exports=require("./components/pagination.cjs")},"./components/scroll-area":function(e){e.exports=require("./components/scroll-area.cjs")},"./components/select":function(e){e.exports=require("./components/select.cjs")},"./components/separator":function(e){e.exports=require("./components/separator.cjs")},"./components/skeleton":function(e){e.exports=require("./components/skeleton.cjs")},"./components/switch":function(e){e.exports=require("./components/switch.cjs")},"./components/table-expandable":function(e){e.exports=require("./components/table-expandable.cjs")},"./components/table":function(e){e.exports=require("./components/table.cjs")},"./components/tabs":function(e){e.exports=require("./components/tabs/index.cjs")},"./components/textarea":function(e){e.exports=require("./components/textarea.cjs")},"./components/title":function(e){e.exports=require("./components/title.cjs")},"./components/tokens-grid":function(e){e.exports=require("./components/tokens-grid.cjs")},"./components/tooltip":function(e){e.exports=require("./components/tooltip.cjs")},"@/hooks/use-data-table":function(e){e.exports=require("./hooks/use-data-table.cjs")},"@/lib/utils":function(e){e.exports=require("./lib/utils.cjs")},"@/utils/phosphor-icon-map":function(e){e.exports=require("./utils/phosphor-icon-map.cjs")}},__webpack_module_cache__={};function __webpack_require__(e){var _=__webpack_module_cache__[e];if(void 0!==_)return _.exports;var r=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};for(var __webpack_i__ in(()=>{__webpack_require__.r(__webpack_exports__);var e=__webpack_require__("./components/alert-dialog"),_={};for(var r in e)"default"!==r&&(_[r]=(function(_){return e[_]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var n=__webpack_require__("./components/dialog"),_={};for(var r in n)"default"!==r&&(_[r]=(function(e){return n[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var o=__webpack_require__("./components/button"),_={};for(var r in o)"default"!==r&&(_[r]=(function(e){return o[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var t=__webpack_require__("./components/input-password"),_={};for(var r in t)"default"!==r&&(_[r]=(function(e){return t[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var c=__webpack_require__("./components/input"),_={};for(var r in c)"default"!==r&&(_[r]=(function(e){return c[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var p=__webpack_require__("./components/tokens-grid"),_={};for(var r in p)"default"!==r&&(_[r]=(function(e){return p[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var a=__webpack_require__("./components/tooltip"),_={};for(var r in a)"default"!==r&&(_[r]=(function(e){return a[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var i=__webpack_require__("./components/switch"),_={};for(var r in i)"default"!==r&&(_[r]=(function(e){return i[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var u=__webpack_require__("./components/label"),_={};for(var r in u)"default"!==r&&(_[r]=(function(e){return u[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var s=__webpack_require__("./components/checkbox"),_={};for(var r in s)"default"!==r&&(_[r]=(function(e){return s[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var b=__webpack_require__("./components/breadcrumb"),_={};for(var r in b)"default"!==r&&(_[r]=(function(e){return b[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var d=__webpack_require__("./components/tabs"),_={};for(var r in d)"default"!==r&&(_[r]=(function(e){return d[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var f=__webpack_require__("./components/form"),_={};for(var r in f)"default"!==r&&(_[r]=(function(e){return f[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var k=__webpack_require__("./components/dropdown-menu"),_={};for(var r in k)"default"!==r&&(_[r]=(function(e){return k[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var w=__webpack_require__("./components/multi-select"),_={};for(var r in w)"default"!==r&&(_[r]=(function(e){return w[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var m=__webpack_require__("./components/select"),_={};for(var r in m)"default"!==r&&(_[r]=(function(e){return m[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var l=__webpack_require__("./components/table"),_={};for(var r in l)"default"!==r&&(_[r]=(function(e){return l[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var q=__webpack_require__("./components/table-expandable"),_={};for(var r in q)"default"!==r&&(_[r]=(function(e){return q[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var x=__webpack_require__("./components/textarea"),_={};for(var r in x)"default"!==r&&(_[r]=(function(e){return x[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var v=__webpack_require__("./components/calendar"),_={};for(var r in v)"default"!==r&&(_[r]=(function(e){return v[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var j=__webpack_require__("./components/date-picker"),_={};for(var r in j)"default"!==r&&(_[r]=(function(e){return j[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var h=__webpack_require__("./components/date-picker-with-range"),_={};for(var r in h)"default"!==r&&(_[r]=(function(e){return h[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var g=__webpack_require__("./components/date-picker-with-time"),_={};for(var r in g)"default"!==r&&(_[r]=(function(e){return g[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var y=__webpack_require__("./components/date-time-picker-with-range"),_={};for(var r in y)"default"!==r&&(_[r]=(function(e){return y[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var S=__webpack_require__("./components/title"),_={};for(var r in S)"default"!==r&&(_[r]=(function(e){return S[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var O=__webpack_require__("./components/page-layout"),_={};for(var r in O)"default"!==r&&(_[r]=(function(e){return O[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var P=__webpack_require__("./components/pagination"),_={};for(var r in P)"default"!==r&&(_[r]=(function(e){return P[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var M=__webpack_require__("./components/skeleton"),_={};for(var r in M)"default"!==r&&(_[r]=(function(e){return M[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var R=__webpack_require__("./components/separator"),_={};for(var r in R)"default"!==r&&(_[r]=(function(e){return R[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var U=__webpack_require__("./components/input-otp"),_={};for(var r in U)"default"!==r&&(_[r]=(function(e){return U[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var L=__webpack_require__("./components/combobox"),_={};for(var r in L)"default"!==r&&(_[r]=(function(e){return L[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var T=__webpack_require__("./components/mask-input"),_={};for(var r in T)"default"!==r&&(_[r]=(function(e){return T[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var I=__webpack_require__("./components/scroll-area"),_={};for(var r in I)"default"!==r&&(_[r]=(function(e){return I[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var z=__webpack_require__("./components/data-table"),_={};for(var r in z)"default"!==r&&(_[r]=(function(e){return z[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var A=__webpack_require__("@/utils/phosphor-icon-map"),_={};for(var r in A)"default"!==r&&(_[r]=(function(e){return A[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var B=__webpack_require__("@/lib/utils"),_={};for(var r in B)"default"!==r&&(_[r]=(function(e){return B[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_);var C=__webpack_require__("@/hooks/use-data-table"),_={};for(var r in C)"default"!==r&&(_[r]=(function(e){return C[e]}).bind(0,r));__webpack_require__.d(__webpack_exports__,_)})(),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -0,0 +1,2 @@
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{useComposedRefs:()=>useComposedRefs,composeEventHandlers:()=>composeEventHandlers,composeRefs:()=>composeRefs});let external_react_namespaceObject=require("react");function composeEventHandlers(e,_,{checkForDefaultPrevented:r=!0}={}){return function(o){if(e?.(o),!1===r||!o.defaultPrevented)return _?.(o)}}function setRef(e,_){if("function"==typeof e)return e(_);null!=e&&(e.current=_)}function composeRefs(...e){return _=>{let r=!1,o=e.map(e=>{let o=setRef(e,_);return r||"function"!=typeof o||(r=!0),o});if(r)return()=>{for(let _=0;_<o.length;_++){let r=o[_];"function"==typeof r?r():setRef(e[_],null)}}}}function useComposedRefs(...e){return external_react_namespaceObject.useCallback(composeRefs(...e),e)}for(var __webpack_i__ in exports.composeEventHandlers=__webpack_exports__.composeEventHandlers,exports.composeRefs=__webpack_exports__.composeRefs,exports.useComposedRefs=__webpack_exports__.useComposedRefs,__webpack_exports__)-1===["composeEventHandlers","composeRefs","useComposedRefs"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
+ //# sourceMappingURL=composition.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib\\composition.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/lib/composition.ts"],"sourcesContent":["import * as React from 'react'\r\n\r\n/**\r\n * A utility to compose multiple event handlers into a single event handler.\r\n * Call originalEventHandler first, then ourEventHandler unless prevented.\r\n */\r\nfunction composeEventHandlers<E>(\r\n originalEventHandler?: (event: E) => void,\r\n ourEventHandler?: (event: E) => void,\r\n { checkForDefaultPrevented = true } = {}\r\n) {\r\n return function handleEvent(event: E) {\r\n originalEventHandler?.(event)\r\n\r\n if (\r\n checkForDefaultPrevented === false ||\r\n !(event as unknown as Event).defaultPrevented\r\n ) {\r\n return ourEventHandler?.(event)\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * @see https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/compose-refs.tsx\r\n */\r\n\r\ntype PossibleRef<T> = React.Ref<T> | undefined\r\n\r\n/**\r\n * Set a given ref to a given value.\r\n * This utility takes care of different types of refs: callback refs and RefObject(s).\r\n */\r\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\r\n if (typeof ref === 'function') {\r\n return ref(value)\r\n }\r\n\r\n if (ref !== null && ref !== undefined) {\r\n ref.current = value\r\n }\r\n}\r\n\r\n/**\r\n * A utility to compose multiple refs together.\r\n * Accepts callback refs and RefObject(s).\r\n */\r\nfunction composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\r\n return node => {\r\n let hasCleanup = false\r\n const cleanups = refs.map(ref => {\r\n const cleanup = setRef(ref, node)\r\n if (!hasCleanup && typeof cleanup === 'function') {\r\n hasCleanup = true\r\n }\r\n return cleanup\r\n })\r\n\r\n // React <19 will log an error to the console if a callback ref returns a\r\n // value. We don't use ref cleanups internally so this will only happen if a\r\n // user's ref callback returns a value, which we only expect if they are\r\n // using the cleanup functionality added in React 19.\r\n if (hasCleanup) {\r\n return () => {\r\n for (let i = 0; i < cleanups.length; i++) {\r\n const cleanup = cleanups[i]\r\n if (typeof cleanup === 'function') {\r\n cleanup()\r\n } else {\r\n setRef(refs[i], null)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * A custom hook that composes multiple refs.\r\n * Accepts callback refs and RefObject(s).\r\n */\r\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n return React.useCallback(composeRefs(...refs), refs)\r\n}\r\n\r\nexport { composeEventHandlers, composeRefs, useComposedRefs }\r\n"],"names":["composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","setRef","ref","value","composeRefs","refs","node","hasCleanup","cleanups","cleanup","i","useComposedRefs","React"],"mappings":"g7BAMA,SAASA,qBACPC,CAAyC,CACzCC,CAAoC,CACpC,CAAEC,yBAAAA,EAA2B,EAAI,CAAE,CAAG,CAAC,CAAC,EAExC,OAAO,SAAqBC,CAAQ,EAGlC,GAFAH,IAAuBG,GAGrBD,AAA6B,KAA7BA,GACA,CAAEC,EAA2B,gBAAgB,CAE7C,OAAOF,IAAkBE,EAE7B,CACF,CAYA,SAASC,OAAUC,CAAmB,CAAEC,CAAQ,EAC9C,GAAI,AAAe,YAAf,OAAOD,EACT,OAAOA,EAAIC,EAGTD,OAAAA,GACFA,CAAAA,EAAI,OAAO,CAAGC,CAAI,CAEtB,CAMA,SAASC,YAAe,GAAGC,CAAsB,EAC/C,OAAOC,AAAAA,IACL,IAAIC,EAAa,GACXC,EAAWH,EAAK,GAAG,CAACH,AAAAA,IACxB,IAAMO,EAAUR,OAAOC,EAAKI,GAI5B,OAHI,AAACC,GAAc,AAAmB,YAAnB,OAAOE,GACxBF,CAAAA,EAAa,EAAG,EAEXE,CACT,GAMA,GAAIF,EACF,MAAO,KACL,IAAK,IAAIG,EAAI,EAAGA,EAAIF,EAAS,MAAM,CAAEE,IAAK,CACxC,IAAMD,EAAUD,CAAQ,CAACE,EAAE,AACvB,AAAmB,aAAnB,OAAOD,EACTA,IAEAR,OAAOI,CAAI,CAACK,EAAE,CAAE,KAEpB,CACF,CAEJ,CACF,CAMA,SAASC,gBAAmB,GAAGN,CAAsB,EAEnD,OAAOO,+BAAAA,WAAiB,CAACR,eAAeC,GAAOA,EACjD,C"}
@@ -0,0 +1,2 @@
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,a)=>{for(var l in a)__webpack_require__.o(a,l)&&!__webpack_require__.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:a[l]})},__webpack_require__.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{dataTableConfig:()=>dataTableConfig});let dataTableConfig={textOperators:[{label:"Contains",value:"iLike"},{label:"Does not contain",value:"notILike"},{label:"Is",value:"eq"},{label:"Is not",value:"ne"},{label:"Is empty",value:"isEmpty"},{label:"Is not empty",value:"isNotEmpty"}],numericOperators:[{label:"Is",value:"eq"},{label:"Is not",value:"ne"},{label:"Is less than",value:"lt"},{label:"Is less than or equal to",value:"lte"},{label:"Is greater than",value:"gt"},{label:"Is greater than or equal to",value:"gte"},{label:"Is between",value:"isBetween"},{label:"Is empty",value:"isEmpty"},{label:"Is not empty",value:"isNotEmpty"}],dateOperators:[{label:"Is",value:"eq"},{label:"Is not",value:"ne"},{label:"Is before",value:"lt"},{label:"Is after",value:"gt"},{label:"Is on or before",value:"lte"},{label:"Is on or after",value:"gte"},{label:"Is between",value:"isBetween"},{label:"Is relative to today",value:"isRelativeToToday"},{label:"Is empty",value:"isEmpty"},{label:"Is not empty",value:"isNotEmpty"}],selectOperators:[{label:"Is",value:"eq"},{label:"Is not",value:"ne"},{label:"Is empty",value:"isEmpty"},{label:"Is not empty",value:"isNotEmpty"}],multiSelectOperators:[{label:"Has any of",value:"inArray"},{label:"Has none of",value:"notInArray"},{label:"Is empty",value:"isEmpty"},{label:"Is not empty",value:"isNotEmpty"}],booleanOperators:[{label:"Is",value:"eq"},{label:"Is not",value:"ne"}],sortOrders:[{label:"Asc",value:"asc"},{label:"Desc",value:"desc"}],filterVariants:["text","number","range","date","dateRange","boolean","select","multiSelect"],operators:["iLike","notILike","eq","ne","inArray","notInArray","isEmpty","isNotEmpty","lt","lte","gt","gte","isBetween","isRelativeToToday"],joinOperators:["and","or"]};for(var __webpack_i__ in exports.dataTableConfig=__webpack_exports__.dataTableConfig,__webpack_exports__)-1===["dataTableConfig"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
+ //# sourceMappingURL=data-table-config.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib\\data-table-config.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/lib/data-table-config.ts"],"sourcesContent":["export type DataTableConfig = typeof dataTableConfig\n\nexport const dataTableConfig = {\n textOperators: [\n { label: 'Contains', value: 'iLike' as const },\n { label: 'Does not contain', value: 'notILike' as const },\n { label: 'Is', value: 'eq' as const },\n { label: 'Is not', value: 'ne' as const },\n { label: 'Is empty', value: 'isEmpty' as const },\n { label: 'Is not empty', value: 'isNotEmpty' as const },\n ],\n numericOperators: [\n { label: 'Is', value: 'eq' as const },\n { label: 'Is not', value: 'ne' as const },\n { label: 'Is less than', value: 'lt' as const },\n { label: 'Is less than or equal to', value: 'lte' as const },\n { label: 'Is greater than', value: 'gt' as const },\n { label: 'Is greater than or equal to', value: 'gte' as const },\n { label: 'Is between', value: 'isBetween' as const },\n { label: 'Is empty', value: 'isEmpty' as const },\n { label: 'Is not empty', value: 'isNotEmpty' as const },\n ],\n dateOperators: [\n { label: 'Is', value: 'eq' as const },\n { label: 'Is not', value: 'ne' as const },\n { label: 'Is before', value: 'lt' as const },\n { label: 'Is after', value: 'gt' as const },\n { label: 'Is on or before', value: 'lte' as const },\n { label: 'Is on or after', value: 'gte' as const },\n { label: 'Is between', value: 'isBetween' as const },\n { label: 'Is relative to today', value: 'isRelativeToToday' as const },\n { label: 'Is empty', value: 'isEmpty' as const },\n { label: 'Is not empty', value: 'isNotEmpty' as const },\n ],\n selectOperators: [\n { label: 'Is', value: 'eq' as const },\n { label: 'Is not', value: 'ne' as const },\n { label: 'Is empty', value: 'isEmpty' as const },\n { label: 'Is not empty', value: 'isNotEmpty' as const },\n ],\n multiSelectOperators: [\n { label: 'Has any of', value: 'inArray' as const },\n { label: 'Has none of', value: 'notInArray' as const },\n { label: 'Is empty', value: 'isEmpty' as const },\n { label: 'Is not empty', value: 'isNotEmpty' as const },\n ],\n booleanOperators: [\n { label: 'Is', value: 'eq' as const },\n { label: 'Is not', value: 'ne' as const },\n ],\n sortOrders: [\n { label: 'Asc', value: 'asc' as const },\n { label: 'Desc', value: 'desc' as const },\n ],\n filterVariants: [\n 'text',\n 'number',\n 'range',\n 'date',\n 'dateRange',\n 'boolean',\n 'select',\n 'multiSelect',\n ] as const,\n operators: [\n 'iLike',\n 'notILike',\n 'eq',\n 'ne',\n 'inArray',\n 'notInArray',\n 'isEmpty',\n 'isNotEmpty',\n 'lt',\n 'lte',\n 'gt',\n 'gte',\n 'isBetween',\n 'isRelativeToToday',\n ] as const,\n joinOperators: ['and', 'or'] as const,\n}\n"],"names":["dataTableConfig"],"mappings":"kzBAEO,IAAMA,gBAAkB,CAC7B,cAAe,CACb,CAAE,MAAO,WAAY,MAAO,OAAiB,EAC7C,CAAE,MAAO,mBAAoB,MAAO,UAAoB,EACxD,CAAE,MAAO,KAAM,MAAO,IAAc,EACpC,CAAE,MAAO,SAAU,MAAO,IAAc,EACxC,CAAE,MAAO,WAAY,MAAO,SAAmB,EAC/C,CAAE,MAAO,eAAgB,MAAO,YAAsB,EACvD,CACD,iBAAkB,CAChB,CAAE,MAAO,KAAM,MAAO,IAAc,EACpC,CAAE,MAAO,SAAU,MAAO,IAAc,EACxC,CAAE,MAAO,eAAgB,MAAO,IAAc,EAC9C,CAAE,MAAO,2BAA4B,MAAO,KAAe,EAC3D,CAAE,MAAO,kBAAmB,MAAO,IAAc,EACjD,CAAE,MAAO,8BAA+B,MAAO,KAAe,EAC9D,CAAE,MAAO,aAAc,MAAO,WAAqB,EACnD,CAAE,MAAO,WAAY,MAAO,SAAmB,EAC/C,CAAE,MAAO,eAAgB,MAAO,YAAsB,EACvD,CACD,cAAe,CACb,CAAE,MAAO,KAAM,MAAO,IAAc,EACpC,CAAE,MAAO,SAAU,MAAO,IAAc,EACxC,CAAE,MAAO,YAAa,MAAO,IAAc,EAC3C,CAAE,MAAO,WAAY,MAAO,IAAc,EAC1C,CAAE,MAAO,kBAAmB,MAAO,KAAe,EAClD,CAAE,MAAO,iBAAkB,MAAO,KAAe,EACjD,CAAE,MAAO,aAAc,MAAO,WAAqB,EACnD,CAAE,MAAO,uBAAwB,MAAO,mBAA6B,EACrE,CAAE,MAAO,WAAY,MAAO,SAAmB,EAC/C,CAAE,MAAO,eAAgB,MAAO,YAAsB,EACvD,CACD,gBAAiB,CACf,CAAE,MAAO,KAAM,MAAO,IAAc,EACpC,CAAE,MAAO,SAAU,MAAO,IAAc,EACxC,CAAE,MAAO,WAAY,MAAO,SAAmB,EAC/C,CAAE,MAAO,eAAgB,MAAO,YAAsB,EACvD,CACD,qBAAsB,CACpB,CAAE,MAAO,aAAc,MAAO,SAAmB,EACjD,CAAE,MAAO,cAAe,MAAO,YAAsB,EACrD,CAAE,MAAO,WAAY,MAAO,SAAmB,EAC/C,CAAE,MAAO,eAAgB,MAAO,YAAsB,EACvD,CACD,iBAAkB,CAChB,CAAE,MAAO,KAAM,MAAO,IAAc,EACpC,CAAE,MAAO,SAAU,MAAO,IAAc,EACzC,CACD,WAAY,CACV,CAAE,MAAO,MAAO,MAAO,KAAe,EACtC,CAAE,MAAO,OAAQ,MAAO,MAAgB,EACzC,CACD,eAAgB,CACd,OACA,SACA,QACA,OACA,YACA,UACA,SACA,cACD,CACD,UAAW,CACT,QACA,WACA,KACA,KACA,UACA,aACA,UACA,aACA,KACA,MACA,KACA,MACA,YACA,oBACD,CACD,cAAe,CAAC,MAAO,KAAK,AAC9B,E"}
@@ -0,0 +1,2 @@
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,t)=>{for(var a in t)__webpack_require__.o(t,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{getCommonPinningStyles:()=>getCommonPinningStyles,getDefaultFilterOperator:()=>getDefaultFilterOperator,getFilterOperators:()=>getFilterOperators,getValidFilters:()=>getValidFilters});let external_data_table_config_cjs_namespaceObject=require("./data-table-config.cjs");function getCommonPinningStyles({column:e,withBorder:t=!1}){let a=e.getIsPinned(),r="left"===a&&e.getIsLastColumn("left"),_="right"===a&&e.getIsFirstColumn("right");return{boxShadow:t?r?"-4px 0 4px -4px hsl(var(--stroke)) inset":_?"4px 0 4px -4px hsl(var(--stroke)) inset":void 0:void 0,left:"left"===a?`${e.getStart("left")}px`:void 0,right:"right"===a?`${e.getAfter("right")}px`:void 0,opacity:a?.97:1,position:a?"sticky":"relative",background:"hsl(var(--background))",width:e.getSize(),zIndex:+!!a}}function getFilterOperators(e){return({text:external_data_table_config_cjs_namespaceObject.dataTableConfig.textOperators,number:external_data_table_config_cjs_namespaceObject.dataTableConfig.numericOperators,range:external_data_table_config_cjs_namespaceObject.dataTableConfig.numericOperators,date:external_data_table_config_cjs_namespaceObject.dataTableConfig.dateOperators,dateRange:external_data_table_config_cjs_namespaceObject.dataTableConfig.dateOperators,boolean:external_data_table_config_cjs_namespaceObject.dataTableConfig.booleanOperators,select:external_data_table_config_cjs_namespaceObject.dataTableConfig.selectOperators,multiSelect:external_data_table_config_cjs_namespaceObject.dataTableConfig.multiSelectOperators})[e]??external_data_table_config_cjs_namespaceObject.dataTableConfig.textOperators}function getDefaultFilterOperator(e){let t=getFilterOperators(e);return t[0]?.value??("text"===e?"iLike":"eq")}function getValidFilters(e){return e.filter(e=>"isEmpty"===e.operator||"isNotEmpty"===e.operator||(Array.isArray(e.value)?e.value.length>0:""!==e.value&&null!==e.value&&void 0!==e.value))}for(var __webpack_i__ in exports.getCommonPinningStyles=__webpack_exports__.getCommonPinningStyles,exports.getDefaultFilterOperator=__webpack_exports__.getDefaultFilterOperator,exports.getFilterOperators=__webpack_exports__.getFilterOperators,exports.getValidFilters=__webpack_exports__.getValidFilters,__webpack_exports__)-1===["getCommonPinningStyles","getDefaultFilterOperator","getFilterOperators","getValidFilters"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
+ //# sourceMappingURL=data-table.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib\\data-table.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/lib/data-table.ts"],"sourcesContent":["import type {\r\n ExtendedColumnFilter,\r\n FilterOperator,\r\n FilterVariant,\r\n} from '@/types/data-table'\r\nimport type { Column } from '@tanstack/react-table'\r\n\r\nimport { dataTableConfig } from '@/lib/data-table-config'\r\n\r\nexport function getCommonPinningStyles<TData>({\r\n column,\r\n withBorder = false,\r\n}: {\r\n column: Column<TData>\r\n withBorder?: boolean\r\n}): React.CSSProperties {\r\n const isPinned = column.getIsPinned()\r\n const isLastLeftPinnedColumn =\r\n isPinned === 'left' && column.getIsLastColumn('left')\r\n const isFirstRightPinnedColumn =\r\n isPinned === 'right' && column.getIsFirstColumn('right')\r\n\r\n return {\r\n boxShadow: withBorder\r\n ? isLastLeftPinnedColumn\r\n ? '-4px 0 4px -4px hsl(var(--stroke)) inset'\r\n : isFirstRightPinnedColumn\r\n ? '4px 0 4px -4px hsl(var(--stroke)) inset'\r\n : undefined\r\n : undefined,\r\n left: isPinned === 'left' ? `${column.getStart('left')}px` : undefined,\r\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\r\n opacity: isPinned ? 0.97 : 1,\r\n position: isPinned ? 'sticky' : 'relative',\r\n background: isPinned ? 'hsl(var(--background))' : 'hsl(var(--background))',\r\n width: column.getSize(),\r\n zIndex: isPinned ? 1 : 0,\r\n }\r\n}\r\n\r\nexport function getFilterOperators(filterVariant: FilterVariant) {\r\n const operatorMap: Record<\r\n FilterVariant,\r\n { label: string; value: FilterOperator }[]\r\n > = {\r\n text: dataTableConfig.textOperators,\r\n number: dataTableConfig.numericOperators,\r\n range: dataTableConfig.numericOperators,\r\n date: dataTableConfig.dateOperators,\r\n dateRange: dataTableConfig.dateOperators,\r\n boolean: dataTableConfig.booleanOperators,\r\n select: dataTableConfig.selectOperators,\r\n multiSelect: dataTableConfig.multiSelectOperators,\r\n }\r\n\r\n return operatorMap[filterVariant] ?? dataTableConfig.textOperators\r\n}\r\n\r\nexport function getDefaultFilterOperator(filterVariant: FilterVariant) {\r\n const operators = getFilterOperators(filterVariant)\r\n\r\n return operators[0]?.value ?? (filterVariant === 'text' ? 'iLike' : 'eq')\r\n}\r\n\r\nexport function getValidFilters<TData>(\r\n filters: ExtendedColumnFilter<TData>[]\r\n): ExtendedColumnFilter<TData>[] {\r\n return filters.filter(\r\n filter =>\r\n filter.operator === 'isEmpty' ||\r\n filter.operator === 'isNotEmpty' ||\r\n (Array.isArray(filter.value)\r\n ? filter.value.length > 0\r\n : filter.value !== '' &&\r\n filter.value !== null &&\r\n filter.value !== undefined)\r\n )\r\n}\r\n"],"names":["getCommonPinningStyles","column","withBorder","isPinned","isLastLeftPinnedColumn","isFirstRightPinnedColumn","undefined","getFilterOperators","filterVariant","operatorMap","dataTableConfig","getDefaultFilterOperator","operators","getValidFilters","filters","filter","Array"],"mappings":"0hCASO,SAASA,uBAA8B,CAC5CC,OAAAA,CAAM,CACNC,WAAAA,EAAa,EAAK,CAInB,EACC,IAAMC,EAAWF,EAAO,WAAW,GAC7BG,EACJD,AAAa,SAAbA,GAAuBF,EAAO,eAAe,CAAC,QAC1CI,EACJF,AAAa,UAAbA,GAAwBF,EAAO,gBAAgB,CAAC,SAElD,MAAO,CACL,UAAWC,EACPE,EACE,2CACAC,EACE,0CACAC,KAAAA,EACJA,KAAAA,EACJ,KAAMH,AAAa,SAAbA,EAAsB,CAAC,EAAEF,EAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAGK,KAAAA,EAC7D,MAAOH,AAAa,UAAbA,EAAuB,CAAC,EAAEF,EAAO,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAGK,KAAAA,EAChE,QAASH,EAAW,IAAO,EAC3B,SAAUA,EAAW,SAAW,WAChC,WAAuB,yBACvB,MAAOF,EAAO,OAAO,GACrB,OAAQE,GAAAA,CACV,CACF,CAEO,SAASI,mBAAmBC,CAA4B,EAe7D,MAAOC,AAXH,EACF,KAAMC,+CAAAA,eAAAA,CAAAA,aAA6B,CACnC,OAAQA,+CAAAA,eAAAA,CAAAA,gBAAgC,CACxC,MAAOA,+CAAAA,eAAAA,CAAAA,gBAAgC,CACvC,KAAMA,+CAAAA,eAAAA,CAAAA,aAA6B,CACnC,UAAWA,+CAAAA,eAAAA,CAAAA,aAA6B,CACxC,QAASA,+CAAAA,eAAAA,CAAAA,gBAAgC,CACzC,OAAQA,+CAAAA,eAAAA,CAAAA,eAA+B,CACvC,YAAaA,+CAAAA,eAAAA,CAAAA,oBAAoC,AACnD,EAEkB,CAACF,EAAc,EAAIE,+CAAAA,eAAAA,CAAAA,aAA6B,AACpE,CAEO,SAASC,yBAAyBH,CAA4B,EACnE,IAAMI,EAAYL,mBAAmBC,GAErC,OAAOI,CAAS,CAAC,EAAE,EAAE,OAAUJ,CAAAA,AAAkB,SAAlBA,EAA2B,QAAU,IAAG,CACzE,CAEO,SAASK,gBACdC,CAAsC,EAEtC,OAAOA,EAAQ,MAAM,CACnBC,AAAAA,GACEA,AAAoB,YAApBA,EAAO,QAAQ,EACfA,AAAoB,eAApBA,EAAO,QAAQ,EACdC,CAAAA,MAAM,OAAO,CAACD,EAAO,KAAK,EACvBA,EAAO,KAAK,CAAC,MAAM,CAAG,EACtBA,AAAiB,KAAjBA,EAAO,KAAK,EACZA,AAAiB,OAAjBA,EAAO,KAAK,EACZA,AAAiBT,KAAAA,IAAjBS,EAAO,KAAK,AAAa,EAEnC,C"}
@@ -0,0 +1,2 @@
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};function formatDate(e,_={}){if(!e)return"";try{return new Intl.DateTimeFormat("en-US",{month:_.month??"long",day:_.day??"numeric",year:_.year??"numeric",..._}).format(new Date(e))}catch(e){return""}}for(var __webpack_i__ in __webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{formatDate:()=>formatDate}),exports.formatDate=__webpack_exports__.formatDate,__webpack_exports__)-1===["formatDate"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
+ //# sourceMappingURL=format.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib\\format.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/lib/format.ts"],"sourcesContent":["export function formatDate(\r\n date: Date | string | number | undefined,\r\n opts: Intl.DateTimeFormatOptions = {}\r\n) {\r\n if (!date) return ''\r\n\r\n try {\r\n return new Intl.DateTimeFormat('en-US', {\r\n month: opts.month ?? 'long',\r\n day: opts.day ?? 'numeric',\r\n year: opts.year ?? 'numeric',\r\n ...opts,\r\n }).format(new Date(date))\r\n } catch (_err) {\r\n return ''\r\n }\r\n}\r\n"],"names":["formatDate","date","opts","Intl","Date","_err"],"mappings":"srBAAO,SAASA,WACdC,CAAwC,CACxCC,EAAmC,CAAC,CAAC,EAErC,GAAI,CAACD,EAAM,MAAO,GAElB,GAAI,CACF,OAAO,IAAIE,KAAK,cAAc,CAAC,QAAS,CACtC,MAAOD,EAAK,KAAK,EAAI,OACrB,IAAKA,EAAK,GAAG,EAAI,UACjB,KAAMA,EAAK,IAAI,EAAI,UACnB,GAAGA,CAAI,AACT,GAAG,MAAM,CAAC,IAAIE,KAAKH,GACrB,CAAE,MAAOI,EAAM,CACb,MAAO,EACT,CACF,C"}
@@ -0,0 +1,2 @@
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{generateId:()=>generateId});let external_nanoid_namespaceObject=require("nanoid"),prefixes={};function generateId(e,_={}){let r="object"==typeof e?void 0:e,{length:t=12,separator:a="_"}="object"==typeof e?e:_,p=(0,external_nanoid_namespaceObject.customAlphabet)("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",t)();return r?`${prefixes[r]}${a}${p}`:p}for(var __webpack_i__ in exports.generateId=__webpack_exports__.generateId,__webpack_exports__)-1===["generateId"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
+ //# sourceMappingURL=id.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib\\id.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/lib/id.ts"],"sourcesContent":["import { customAlphabet } from 'nanoid'\r\n\r\nconst prefixes: Record<string, unknown> = {}\r\n\r\ninterface GenerateIdOptions {\r\n length?: number\r\n separator?: string\r\n}\r\n\r\nexport function generateId(\r\n prefixOrOptions?: keyof typeof prefixes | GenerateIdOptions,\r\n inputOptions: GenerateIdOptions = {}\r\n) {\r\n const finalOptions =\r\n typeof prefixOrOptions === 'object' ? prefixOrOptions : inputOptions\r\n\r\n const prefix =\r\n typeof prefixOrOptions === 'object' ? undefined : prefixOrOptions\r\n\r\n const { length = 12, separator = '_' } = finalOptions\r\n const id = customAlphabet(\r\n '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\r\n length\r\n )()\r\n\r\n return prefix ? `${prefixes[prefix]}${separator}${id}` : id\r\n}\r\n"],"names":["prefixes","generateId","prefixOrOptions","inputOptions","prefix","undefined","length","separator","id","customAlphabet"],"mappings":"81BAEMA,SAAoC,CAAC,EAOpC,SAASC,WACdC,CAA2D,CAC3DC,EAAkC,CAAC,CAAC,EAKpC,IAAMC,EACJ,AAA2B,UAA3B,OAAOF,EAA+BG,KAAAA,EAAYH,EAE9C,CAAEI,OAAAA,EAAS,EAAE,CAAEC,UAAAA,EAAY,GAAG,CAAE,CALpC,AAA2B,UAA3B,OAAOL,EAA+BA,EAAkBC,EAMpDK,EAAKC,AAAAA,GAAAA,gCAAAA,cAAAA,AAAAA,EACT,iEACAH,KAGF,OAAOF,EAAS,CAAC,EAAEJ,QAAQ,CAACI,EAAO,CAAC,EAAEG,EAAU,EAAEC,EAAG,CAAC,CAAGA,CAC3D,C"}
@@ -0,0 +1,2 @@
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{getFiltersStateParser:()=>getFiltersStateParser,getSortingStateParser:()=>getSortingStateParser});let server_namespaceObject=require("nuqs/server"),external_zod_namespaceObject=require("zod"),external_data_table_config_cjs_namespaceObject=require("./data-table-config.cjs"),sortingItemSchema=external_zod_namespaceObject.z.object({id:external_zod_namespaceObject.z.string(),desc:external_zod_namespaceObject.z.boolean()}),getSortingStateParser=e=>{let t=e?e instanceof Set?e:new Set(e):null;return(0,server_namespaceObject.createParser)({parse:e=>{try{let r=JSON.parse(e),a=external_zod_namespaceObject.z.array(sortingItemSchema).safeParse(r);if(!a.success||t&&a.data.some(e=>!t.has(e.id)))return null;return a.data}catch{return null}},serialize:e=>JSON.stringify(e),eq:(e,t)=>e.length===t.length&&e.every((e,r)=>e.id===t[r]?.id&&e.desc===t[r]?.desc)})},filterItemSchema=external_zod_namespaceObject.z.object({id:external_zod_namespaceObject.z.string(),value:external_zod_namespaceObject.z.union([external_zod_namespaceObject.z.string(),external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string())]),variant:external_zod_namespaceObject.z.enum(external_data_table_config_cjs_namespaceObject.dataTableConfig.filterVariants),operator:external_zod_namespaceObject.z.enum(external_data_table_config_cjs_namespaceObject.dataTableConfig.operators),filterId:external_zod_namespaceObject.z.string()}),getFiltersStateParser=e=>{let t=e?e instanceof Set?e:new Set(e):null;return(0,server_namespaceObject.createParser)({parse:e=>{try{let r=JSON.parse(e),a=external_zod_namespaceObject.z.array(filterItemSchema).safeParse(r);if(!a.success||t&&a.data.some(e=>!t.has(e.id)))return null;return a.data}catch{return null}},serialize:e=>JSON.stringify(e),eq:(e,t)=>e.length===t.length&&e.every((e,r)=>e.id===t[r]?.id&&e.value===t[r]?.value&&e.variant===t[r]?.variant&&e.operator===t[r]?.operator)})};for(var __webpack_i__ in exports.getFiltersStateParser=__webpack_exports__.getFiltersStateParser,exports.getSortingStateParser=__webpack_exports__.getSortingStateParser,__webpack_exports__)-1===["getFiltersStateParser","getSortingStateParser"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
2
+ //# sourceMappingURL=parsers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib\\parsers.cjs","sources":["webpack://@gbmtech/aurora-ui/./src/lib/parsers.ts"],"sourcesContent":["import { createParser } from 'nuqs/server'\r\nimport { z } from 'zod'\r\n\r\nimport { dataTableConfig } from '@/lib/data-table-config'\r\n\r\nimport type {\r\n ExtendedColumnFilter,\r\n ExtendedColumnSort,\r\n} from '@/types/data-table'\r\n\r\nconst sortingItemSchema = z.object({\r\n id: z.string(),\r\n desc: z.boolean(),\r\n})\r\n\r\nexport const getSortingStateParser = <TData>(\r\n columnIds?: string[] | Set<string>\r\n) => {\r\n const validKeys = columnIds\r\n ? columnIds instanceof Set\r\n ? columnIds\r\n : new Set(columnIds)\r\n : null\r\n\r\n return createParser({\r\n parse: value => {\r\n try {\r\n const parsed = JSON.parse(value)\r\n const result = z.array(sortingItemSchema).safeParse(parsed)\r\n\r\n if (!result.success) return null\r\n\r\n if (validKeys && result.data.some(item => !validKeys.has(item.id))) {\r\n return null\r\n }\r\n\r\n return result.data as ExtendedColumnSort<TData>[]\r\n } catch {\r\n return null\r\n }\r\n },\r\n serialize: value => JSON.stringify(value),\r\n eq: (a, b) =>\r\n a.length === b.length &&\r\n a.every(\r\n (item, index) =>\r\n item.id === b[index]?.id && item.desc === b[index]?.desc\r\n ),\r\n })\r\n}\r\n\r\nconst filterItemSchema = z.object({\r\n id: z.string(),\r\n value: z.union([z.string(), z.array(z.string())]),\r\n variant: z.enum(dataTableConfig.filterVariants),\r\n operator: z.enum(dataTableConfig.operators),\r\n filterId: z.string(),\r\n})\r\n\r\nexport type FilterItemSchema = z.infer<typeof filterItemSchema>\r\n\r\nexport const getFiltersStateParser = <TData>(\r\n columnIds?: string[] | Set<string>\r\n) => {\r\n const validKeys = columnIds\r\n ? columnIds instanceof Set\r\n ? columnIds\r\n : new Set(columnIds)\r\n : null\r\n\r\n return createParser({\r\n parse: value => {\r\n try {\r\n const parsed = JSON.parse(value)\r\n const result = z.array(filterItemSchema).safeParse(parsed)\r\n\r\n if (!result.success) return null\r\n\r\n if (validKeys && result.data.some(item => !validKeys.has(item.id))) {\r\n return null\r\n }\r\n\r\n return result.data as ExtendedColumnFilter<TData>[]\r\n } catch {\r\n return null\r\n }\r\n },\r\n serialize: value => JSON.stringify(value),\r\n eq: (a, b) =>\r\n a.length === b.length &&\r\n a.every(\r\n (filter, index) =>\r\n filter.id === b[index]?.id &&\r\n filter.value === b[index]?.value &&\r\n filter.variant === b[index]?.variant &&\r\n filter.operator === b[index]?.operator\r\n ),\r\n })\r\n}\r\n"],"names":["sortingItemSchema","z","getSortingStateParser","columnIds","validKeys","Set","createParser","value","parsed","JSON","result","item","a","b","index","filterItemSchema","dataTableConfig","getFiltersStateParser","filter"],"mappings":"8hCAUMA,kBAAoBC,6BAAAA,CAAAA,CAAAA,MAAQ,CAAC,CACjC,GAAIA,6BAAAA,CAAAA,CAAAA,MAAQ,GACZ,KAAMA,6BAAAA,CAAAA,CAAAA,OAAS,EACjB,GAEaC,sBAAwB,AACnCC,IAEA,IAAMC,EAAYD,EACdA,aAAqBE,IACnBF,EACA,IAAIE,IAAIF,GACV,KAEJ,MAAOG,AAAAA,GAAAA,uBAAAA,YAAAA,AAAAA,EAAa,CAClB,MAAOC,AAAAA,IACL,GAAI,CACF,IAAMC,EAASC,KAAK,KAAK,CAACF,GACpBG,EAAST,6BAAAA,CAAAA,CAAAA,KAAO,CAACD,mBAAmB,SAAS,CAACQ,GAEpD,GAAI,CAACE,EAAO,OAAO,EAEfN,GAAaM,EAAO,IAAI,CAAC,IAAI,CAACC,AAAAA,GAAQ,CAACP,EAAU,GAAG,CAACO,EAAK,EAAE,GAF3C,OAAO,KAM5B,OAAOD,EAAO,IAAI,AACpB,CAAE,KAAM,CACN,OAAO,IACT,CACF,EACA,UAAWH,AAAAA,GAASE,KAAK,SAAS,CAACF,GACnC,GAAI,CAACK,EAAGC,IACND,EAAE,MAAM,GAAKC,EAAE,MAAM,EACrBD,EAAE,KAAK,CACL,CAACD,EAAMG,IACLH,EAAK,EAAE,GAAKE,CAAC,CAACC,EAAM,EAAE,IAAMH,EAAK,IAAI,GAAKE,CAAC,CAACC,EAAM,EAAE,KAE5D,EACF,EAEMC,iBAAmBd,6BAAAA,CAAAA,CAAAA,MAAQ,CAAC,CAChC,GAAIA,6BAAAA,CAAAA,CAAAA,MAAQ,GACZ,MAAOA,6BAAAA,CAAAA,CAAAA,KAAO,CAAC,CAACA,6BAAAA,CAAAA,CAAAA,MAAQ,GAAIA,6BAAAA,CAAAA,CAAAA,KAAO,CAACA,6BAAAA,CAAAA,CAAAA,MAAQ,IAAI,EAChD,QAASA,6BAAAA,CAAAA,CAAAA,IAAM,CAACe,+CAAAA,eAAAA,CAAAA,cAA8B,EAC9C,SAAUf,6BAAAA,CAAAA,CAAAA,IAAM,CAACe,+CAAAA,eAAAA,CAAAA,SAAyB,EAC1C,SAAUf,6BAAAA,CAAAA,CAAAA,MAAQ,EACpB,GAIagB,sBAAwB,AACnCd,IAEA,IAAMC,EAAYD,EACdA,aAAqBE,IACnBF,EACA,IAAIE,IAAIF,GACV,KAEJ,MAAOG,AAAAA,GAAAA,uBAAAA,YAAAA,AAAAA,EAAa,CAClB,MAAOC,AAAAA,IACL,GAAI,CACF,IAAMC,EAASC,KAAK,KAAK,CAACF,GACpBG,EAAST,6BAAAA,CAAAA,CAAAA,KAAO,CAACc,kBAAkB,SAAS,CAACP,GAEnD,GAAI,CAACE,EAAO,OAAO,EAEfN,GAAaM,EAAO,IAAI,CAAC,IAAI,CAACC,AAAAA,GAAQ,CAACP,EAAU,GAAG,CAACO,EAAK,EAAE,GAF3C,OAAO,KAM5B,OAAOD,EAAO,IAAI,AACpB,CAAE,KAAM,CACN,OAAO,IACT,CACF,EACA,UAAWH,AAAAA,GAASE,KAAK,SAAS,CAACF,GACnC,GAAI,CAACK,EAAGC,IACND,EAAE,MAAM,GAAKC,EAAE,MAAM,EACrBD,EAAE,KAAK,CACL,CAACM,EAAQJ,IACPI,EAAO,EAAE,GAAKL,CAAC,CAACC,EAAM,EAAE,IACxBI,EAAO,KAAK,GAAKL,CAAC,CAACC,EAAM,EAAE,OAC3BI,EAAO,OAAO,GAAKL,CAAC,CAACC,EAAM,EAAE,SAC7BI,EAAO,QAAQ,GAAKL,CAAC,CAACC,EAAM,EAAE,SAEtC,EACF,E"}
@@ -0,0 +1 @@
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};for(var __webpack_i__ in __webpack_require__.r(__webpack_exports__),__webpack_exports__)exports[__webpack_i__]=__webpack_exports__[__webpack_i__];Object.defineProperty(exports,"__esModule",{value:!0});
@@ -0,0 +1,3 @@
1
+ 'use client'
2
+ import*as e from"react/jsx-runtime";import*as t from"../button.js";import*as o from"../separator.js";import*as r from"../tooltip.js";import*as n from"../../lib/utils.js";import*as s from"@phosphor-icons/react";import*as i from"motion/react";import*as a from"react";import*as l from"react-dom";import*as c from"../spinner.js";function d({table:t,visible:o,container:r,children:s,className:c,...d}){let[m,p]=a.useState(!1);a.useLayoutEffect(()=>{p(!0)},[]),a.useEffect(()=>{function e(e){"Escape"===e.key&&t.toggleAllRowsSelected(!1)}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let x=r??(m?globalThis.document?.body:null);if(!x)return null;let f=o??t.getFilteredSelectedRowModel().rows.length>0;return l.createPortal((0,e.jsx)(i.AnimatePresence,{children:f&&(0,e.jsx)(i.motion.div,{role:"toolbar","aria-orientation":"horizontal",initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:20},transition:{duration:.2,ease:"easeInOut"},className:(0,n.cn)("fixed inset-x-0 bottom-6 z-50 mx-auto flex w-fit flex-wrap items-center justify-center gap-2 rounded-md border bg-background p-2 text-foreground shadow-sm",c),...d,children:s})}),x)}function m({size:o="sm",tooltip:s,isPending:i,disabled:a,className:l,children:d,...m}){let p=(0,e.jsx)(t.Button,{variant:"secondary",size:o,className:(0,n.cn)("gap-1.5 border border-secondary bg-secondary/50 hover:bg-secondary/70 [&>svg]:size-3.5","icon"===o?"size-7":"h-7",l),disabled:a||i,...m,children:i?(0,e.jsx)(c.Spinner,{}):d});return s?(0,e.jsxs)(r.Tooltip,{children:[(0,e.jsx)(r.TooltipTrigger,{asChild:!0,children:p}),(0,e.jsx)(r.TooltipContent,{sideOffset:6,className:"border bg-accent font-semibold text-foreground dark:bg-zinc-900 [&>span]:hidden",children:(0,e.jsx)("p",{children:s})})]}):p}function p({table:n}){let i=a.useCallback(()=>{n.toggleAllRowsSelected(!1)},[n]);return(0,e.jsxs)("div",{className:"flex h-7 items-center rounded-md border pr-1 pl-2.5",children:[(0,e.jsxs)("span",{className:"whitespace-nowrap text-xs",children:[n.getFilteredSelectedRowModel().rows.length," selected"]}),(0,e.jsx)(o.Separator,{orientation:"vertical",className:"mr-1 ml-2 data-[orientation=vertical]:h-4"}),(0,e.jsxs)(r.Tooltip,{children:[(0,e.jsx)(r.TooltipTrigger,{asChild:!0,children:(0,e.jsx)(t.Button,{variant:"ghost",size:"icon",className:"size-5",onClick:i,children:(0,e.jsx)(s.X,{className:"size-3.5"})})}),(0,e.jsxs)(r.TooltipContent,{sideOffset:10,className:"flex items-center gap-2 border bg-accent px-2 py-1 font-semibold text-foreground dark:bg-zinc-900 [&>span]:hidden",children:[(0,e.jsx)("p",{children:"Clear selection"}),(0,e.jsx)("kbd",{className:"select-none rounded border bg-background px-1.5 py-px font-mono font-normal text-[0.7rem] text-foreground shadow-xs",children:(0,e.jsx)("abbr",{title:"Escape",className:"no-underline",children:"Esc"})})]})]})]})}export{d as DataTableActionBar,m as DataTableActionBarAction,p as DataTableActionBarSelection};
3
+ //# sourceMappingURL=data-table-action-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components\\data-table\\data-table-action-bar.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-action-bar.tsx"],"sourcesContent":["\r\n\r\nimport { Button } from '@/components/button'\r\nimport { Separator } from '@/components/separator'\r\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/tooltip'\r\nimport { cn } from '@/lib/utils'\r\nimport { X } from '@phosphor-icons/react'\r\nimport type { Table } from '@tanstack/react-table'\r\nimport { AnimatePresence, motion } from 'motion/react'\r\nimport * as React from 'react'\r\nimport * as ReactDOM from 'react-dom'\r\nimport { Spinner } from '../spinner'\r\n\r\ninterface DataTableActionBarProps<TData>\r\n extends React.ComponentProps<typeof motion.div> {\r\n table: Table<TData>\r\n visible?: boolean\r\n container?: Element | DocumentFragment | null\r\n}\r\n\r\nfunction DataTableActionBar<TData>({\r\n table,\r\n visible: visibleProp,\r\n container: containerProp,\r\n children,\r\n className,\r\n ...props\r\n}: DataTableActionBarProps<TData>) {\r\n const [mounted, setMounted] = React.useState(false)\r\n\r\n React.useLayoutEffect(() => {\r\n setMounted(true)\r\n }, [])\r\n\r\n React.useEffect(() => {\r\n function onKeyDown(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n table.toggleAllRowsSelected(false)\r\n }\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [table])\r\n\r\n const container =\r\n containerProp ?? (mounted ? globalThis.document?.body : null)\r\n\r\n if (!container) return null\r\n\r\n const visible =\r\n visibleProp ?? table.getFilteredSelectedRowModel().rows.length > 0\r\n\r\n return ReactDOM.createPortal(\r\n <AnimatePresence>\r\n {visible && (\r\n <motion.div\r\n role=\"toolbar\"\r\n aria-orientation=\"horizontal\"\r\n initial={{ opacity: 0, y: 20 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n exit={{ opacity: 0, y: 20 }}\r\n transition={{ duration: 0.2, ease: 'easeInOut' }}\r\n className={cn(\r\n 'fixed inset-x-0 bottom-6 z-50 mx-auto flex w-fit flex-wrap items-center justify-center gap-2 rounded-md border bg-background p-2 text-foreground shadow-sm',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>,\r\n container\r\n )\r\n}\r\n\r\ninterface DataTableActionBarActionProps\r\n extends React.ComponentProps<typeof Button> {\r\n tooltip?: string\r\n isPending?: boolean\r\n}\r\n\r\nfunction DataTableActionBarAction({\r\n size = 'sm',\r\n tooltip,\r\n isPending,\r\n disabled,\r\n className,\r\n children,\r\n ...props\r\n}: DataTableActionBarActionProps) {\r\n const trigger = (\r\n <Button\r\n variant=\"secondary\"\r\n size={size}\r\n className={cn(\r\n 'gap-1.5 border border-secondary bg-secondary/50 hover:bg-secondary/70 [&>svg]:size-3.5',\r\n size === 'icon' ? 'size-7' : 'h-7',\r\n className\r\n )}\r\n disabled={disabled || isPending}\r\n {...props}\r\n >\r\n {isPending ? <Spinner /> : children}\r\n </Button>\r\n )\r\n\r\n if (!tooltip) return trigger\r\n\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger asChild>{trigger}</TooltipTrigger>\r\n <TooltipContent\r\n sideOffset={6}\r\n className=\"border bg-accent font-semibold text-foreground dark:bg-zinc-900 [&>span]:hidden\"\r\n >\r\n <p>{tooltip}</p>\r\n </TooltipContent>\r\n </Tooltip>\r\n )\r\n}\r\n\r\ninterface DataTableActionBarSelectionProps<TData> {\r\n table: Table<TData>\r\n}\r\n\r\nfunction DataTableActionBarSelection<TData>({\r\n table,\r\n}: DataTableActionBarSelectionProps<TData>) {\r\n const onClearSelection = React.useCallback(() => {\r\n table.toggleAllRowsSelected(false)\r\n }, [table])\r\n\r\n return (\r\n <div className=\"flex h-7 items-center rounded-md border pr-1 pl-2.5\">\r\n <span className=\"whitespace-nowrap text-xs\">\r\n {table.getFilteredSelectedRowModel().rows.length} selected\r\n </span>\r\n <Separator\r\n orientation=\"vertical\"\r\n className=\"mr-1 ml-2 data-[orientation=vertical]:h-4\"\r\n />\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"size-5\"\r\n onClick={onClearSelection}\r\n >\r\n <X className=\"size-3.5\" />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent\r\n sideOffset={10}\r\n className=\"flex items-center gap-2 border bg-accent px-2 py-1 font-semibold text-foreground dark:bg-zinc-900 [&>span]:hidden\"\r\n >\r\n <p>Clear selection</p>\r\n <kbd className=\"select-none rounded border bg-background px-1.5 py-px font-mono font-normal text-[0.7rem] text-foreground shadow-xs\">\r\n <abbr title=\"Escape\" className=\"no-underline\">\r\n Esc\r\n </abbr>\r\n </kbd>\r\n </TooltipContent>\r\n </Tooltip>\r\n </div>\r\n )\r\n}\r\n\r\nexport {\r\n DataTableActionBar,\r\n DataTableActionBarAction,\r\n DataTableActionBarSelection,\r\n}\r\n"],"names":["DataTableActionBar","table","visibleProp","containerProp","children","className","props","mounted","setMounted","React","onKeyDown","event","window","container","globalThis","visible","ReactDOM","AnimatePresence","motion","cn","DataTableActionBarAction","size","tooltip","isPending","disabled","trigger","Button","Spinner","Tooltip","TooltipTrigger","TooltipContent","DataTableActionBarSelection","onClearSelection","Separator","X"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ 'use client'
2
+ import*as e from"react/jsx-runtime";import*as a from"./data-table-view-options.js";import*as t from"../../lib/utils.js";function i({table:i,children:s,className:r,...l}){return(0,e.jsxs)("div",{role:"toolbar","aria-orientation":"horizontal",className:(0,t.cn)("flex w-full items-start justify-between gap-2 p-1",r),...l,children:[(0,e.jsx)("div",{className:"flex flex-1 flex-wrap items-center gap-2",children:s}),(0,e.jsx)("div",{className:"flex items-center gap-2",children:(0,e.jsx)(a.DataTableViewOptions,{table:i})})]})}export{i as DataTableAdvancedToolbar};
3
+ //# sourceMappingURL=data-table-advanced-toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components\\data-table\\data-table-advanced-toolbar.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-advanced-toolbar.tsx"],"sourcesContent":["\r\n\r\nimport type { Table } from '@tanstack/react-table'\r\nimport type * as React from 'react'\r\n\r\nimport { DataTableViewOptions } from '@/components/data-table/data-table-view-options'\r\nimport { cn } from '@/lib/utils'\r\n\r\ninterface DataTableAdvancedToolbarProps<TData>\r\n extends React.ComponentProps<'div'> {\r\n table: Table<TData>\r\n}\r\n\r\nexport function DataTableAdvancedToolbar<TData>({\r\n table,\r\n children,\r\n className,\r\n ...props\r\n}: DataTableAdvancedToolbarProps<TData>) {\r\n return (\r\n <div\r\n role=\"toolbar\"\r\n aria-orientation=\"horizontal\"\r\n className={cn(\r\n 'flex w-full items-start justify-between gap-2 p-1',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"flex flex-1 flex-wrap items-center gap-2\">{children}</div>\r\n <div className=\"flex items-center gap-2\">\r\n <DataTableViewOptions table={table} />\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"names":["DataTableAdvancedToolbar","table","children","className","props","cn","DataTableViewOptions"],"mappings":";wHAaO,SAASA,EAAgC,CAC9CC,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACT,GAAGC,EACkC,EACrC,MACE,WAAC,OACC,KAAK,UACL,mBAAiB,aACjB,UAAWC,GAAAA,EAAAA,EAAAA,EACT,oDACAF,GAED,GAAGC,CAAK,C,UAET,UAAC,OAAI,UAAU,2C,SAA4CF,C,GAC3D,UAAC,OAAI,UAAU,0B,SACb,UAACI,EAAAA,oBAAoBA,CAAAA,CAAC,MAAOL,C,OAIrC,Q"}
@@ -0,0 +1,3 @@
1
+ 'use client'
2
+ import*as e from"react/jsx-runtime";import*as t from"@phosphor-icons/react";import*as s from"../dropdown-menu.js";import*as r from"../../lib/utils.js";function o({column:o,title:n,className:i,...a}){return o.getCanSort()||o.getCanHide()?(0,e.jsxs)(s.DropdownMenu,{children:[(0,e.jsxs)(s.DropdownMenuTrigger,{className:(0,r.cn)("-ml-1.5 flex h-8 items-center gap-1.5 rounded-md px-2 py-1.5 hover:bg-accent focus:outline-none focus:ring-1 focus:ring-ring data-[state=open]:bg-accent [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-muted-foreground",i),...a,children:[n,o.getCanSort()&&("desc"===o.getIsSorted()?(0,e.jsx)(t.CaretDown,{}):"asc"===o.getIsSorted()?(0,e.jsx)(t.CaretUp,{}):(0,e.jsx)(t.CaretUpDown,{}))]}),(0,e.jsxs)(s.DropdownMenuContent,{align:"start",className:"w-28",children:[o.getCanSort()&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(s.DropdownMenuCheckboxItem,{className:"relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground",checked:"asc"===o.getIsSorted(),onClick:()=>o.toggleSorting(!1),children:[(0,e.jsx)(t.CaretUp,{}),"Asc"]}),(0,e.jsxs)(s.DropdownMenuCheckboxItem,{className:"relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground",checked:"desc"===o.getIsSorted(),onClick:()=>o.toggleSorting(!0),children:[(0,e.jsx)(t.CaretDown,{}),"Desc"]}),o.getIsSorted()&&(0,e.jsxs)(s.DropdownMenuItem,{className:"pl-2 [&_svg]:text-muted-foreground",onClick:()=>o.clearSorting(),children:[(0,e.jsx)(t.X,{}),"Reset"]})]}),o.getCanHide()&&(0,e.jsxs)(s.DropdownMenuCheckboxItem,{className:"relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground",checked:!o.getIsVisible(),onClick:()=>o.toggleVisibility(!1),children:[(0,e.jsx)(t.EyeSlash,{}),"Hide"]})]})]}):(0,e.jsx)("div",{className:(0,r.cn)(i),children:n})}export{o as DataTableColumnHeader};
3
+ //# sourceMappingURL=data-table-column-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components\\data-table\\data-table-column-header.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-column-header.tsx"],"sourcesContent":["\r\n\r\nimport {\r\n CaretDown,\r\n CaretUp,\r\n CaretUpDown,\r\n EyeSlash,\r\n X,\r\n} from '@phosphor-icons/react'\r\nimport type { Column } from '@tanstack/react-table'\r\n\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuTrigger,\r\n} from '@/components/dropdown-menu'\r\nimport { cn } from '@/lib/utils'\r\n\r\ninterface DataTableColumnHeaderProps<TData, TValue>\r\n extends React.ComponentProps<typeof DropdownMenuTrigger> {\r\n column: Column<TData, TValue>\r\n title: string\r\n}\r\n\r\nexport function DataTableColumnHeader<TData, TValue>({\r\n column,\r\n title,\r\n className,\r\n ...props\r\n}: DataTableColumnHeaderProps<TData, TValue>) {\r\n if (!column.getCanSort() && !column.getCanHide()) {\r\n return <div className={cn(className)}>{title}</div>\r\n }\r\n\r\n return (\r\n <DropdownMenu>\r\n <DropdownMenuTrigger\r\n className={cn(\r\n '-ml-1.5 flex h-8 items-center gap-1.5 rounded-md px-2 py-1.5 hover:bg-accent focus:outline-none focus:ring-1 focus:ring-ring data-[state=open]:bg-accent [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-muted-foreground',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {title}\r\n {column.getCanSort() &&\r\n (column.getIsSorted() === 'desc' ? (\r\n <CaretDown />\r\n ) : column.getIsSorted() === 'asc' ? (\r\n <CaretUp />\r\n ) : (\r\n <CaretUpDown />\r\n ))}\r\n </DropdownMenuTrigger>\r\n <DropdownMenuContent align=\"start\" className=\"w-28\">\r\n {column.getCanSort() && (\r\n <>\r\n <DropdownMenuCheckboxItem\r\n className=\"relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground\"\r\n checked={column.getIsSorted() === 'asc'}\r\n onClick={() => column.toggleSorting(false)}\r\n >\r\n <CaretUp />\r\n Asc\r\n </DropdownMenuCheckboxItem>\r\n <DropdownMenuCheckboxItem\r\n className=\"relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground\"\r\n checked={column.getIsSorted() === 'desc'}\r\n onClick={() => column.toggleSorting(true)}\r\n >\r\n <CaretDown />\r\n Desc\r\n </DropdownMenuCheckboxItem>\r\n {column.getIsSorted() && (\r\n <DropdownMenuItem\r\n className=\"pl-2 [&_svg]:text-muted-foreground\"\r\n onClick={() => column.clearSorting()}\r\n >\r\n <X />\r\n Reset\r\n </DropdownMenuItem>\r\n )}\r\n </>\r\n )}\r\n {column.getCanHide() && (\r\n <DropdownMenuCheckboxItem\r\n className=\"relative pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto [&_svg]:text-muted-foreground\"\r\n checked={!column.getIsVisible()}\r\n onClick={() => column.toggleVisibility(false)}\r\n >\r\n <EyeSlash />\r\n Hide\r\n </DropdownMenuCheckboxItem>\r\n )}\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n )\r\n}\r\n"],"names":["DataTableColumnHeader","column","title","className","props","DropdownMenu","DropdownMenuTrigger","cn","CaretDown","CaretUp","CaretUpDown","DropdownMenuContent","DropdownMenuCheckboxItem","DropdownMenuItem","X","EyeSlash"],"mappings":";uJA0BO,SAASA,EAAqC,CACnDC,OAAAA,CAAM,CACNC,MAAAA,CAAK,CACLC,UAAAA,CAAS,CACT,GAAGC,EACuC,SAC1C,EAAY,UAAU,IAAOH,EAAO,UAAU,GAK5C,WAACI,EAAAA,YAAYA,CAAAA,C,UACX,WAACC,EAAAA,mBAAmBA,CAAAA,CAClB,UAAWC,GAAAA,EAAAA,EAAAA,EACT,yNACAJ,GAED,GAAGC,CAAK,C,UAERF,EACAD,EAAO,UAAU,IACfA,CAAAA,SAAAA,EAAO,WAAW,GACjB,UAACO,EAAAA,SAASA,CAAAA,CAAAA,GACRP,QAAAA,EAAO,WAAW,GACpB,UAACQ,EAAAA,OAAOA,CAAAA,CAAAA,GAER,UAACC,EAAAA,WAAWA,CAAAA,CAAAA,EAAAA,E,GAGlB,WAACC,EAAAA,mBAAmBA,CAAAA,CAAC,MAAM,QAAQ,UAAU,O,UAC1CV,EAAO,UAAU,IAChB,uB,UACE,WAACW,EAAAA,wBAAwBA,CAAAA,CACvB,UAAU,+GACV,QAASX,QAAAA,EAAO,WAAW,GAC3B,QAAS,IAAMA,EAAO,aAAa,CAAC,I,UAEpC,UAACQ,EAAAA,OAAOA,CAAAA,CAAAA,GAAG,M,GAGb,WAACG,EAAAA,wBAAwBA,CAAAA,CACvB,UAAU,+GACV,QAASX,SAAAA,EAAO,WAAW,GAC3B,QAAS,IAAMA,EAAO,aAAa,CAAC,I,UAEpC,UAACO,EAAAA,SAASA,CAAAA,CAAAA,GAAG,O,GAGdP,EAAO,WAAW,IACjB,WAACY,EAAAA,gBAAgBA,CAAAA,CACf,UAAU,qCACV,QAAS,IAAMZ,EAAO,YAAY,G,UAElC,UAACa,EAAAA,CAACA,CAAAA,CAAAA,GAAG,Q,MAMZb,EAAO,UAAU,IAChB,WAACW,EAAAA,wBAAwBA,CAAAA,CACvB,UAAU,+GACV,QAAS,CAACX,EAAO,YAAY,GAC7B,QAAS,IAAMA,EAAO,gBAAgB,CAAC,I,UAEvC,UAACc,EAAAA,QAAQA,CAAAA,CAAAA,GAAG,O,SA1Db,UAAC,OAAI,UAAWR,GAAAA,EAAAA,EAAAA,EAAGJ,G,SAAaD,C,EAiE3C,Q"}
@@ -0,0 +1,3 @@
1
+ 'use client'
2
+ import*as e from"react/jsx-runtime";import*as r from"@phosphor-icons/react";import*as t from"react";import*as a from"../button.js";import*as o from"../calendar.js";import*as i from"../popover.js";import*as s from"../separator.js";import*as n from"../../lib/format.js";function l(e){return e&&"object"==typeof e&&!Array.isArray(e)}function m(e){if(!e)return;let r=new Date("string"==typeof e?Number(e):e);return Number.isNaN(r.getTime())?void 0:r}function c(e){return null==e?[]:Array.isArray(e)?e.map(e=>{if("number"==typeof e||"string"==typeof e)return e}):"string"==typeof e||"number"==typeof e?[e]:[]}function u({column:u,title:f,multiple:d}){let p=u.getFilterValue(),g=t.useMemo(()=>{if(!p)return d?{from:void 0,to:void 0}:[];if(d){let e=c(p);return{from:m(e[0]),to:m(e[1])}}let e=m(c(p)[0]);return e?[e]:[]},[p,d]),j=t.useCallback(e=>{if(!e)return void u.setFilterValue(void 0);if(!d||"getTime"in e)!d&&"getTime"in e&&u.setFilterValue(e.getTime());else{let r=e.from?.getTime(),t=e.to?.getTime();u.setFilterValue(r||t?[r,t]:void 0)}},[u,d]),x=t.useCallback(e=>{e.stopPropagation(),u.setFilterValue(void 0)},[u]),v=t.useMemo(()=>d?!!l(g)&&(g.from||g.to):!!Array.isArray(g)&&g.length>0,[d,g]),h=t.useCallback(e=>e.from||e.to?e.from&&e.to?`${(0,n.formatDate)(e.from)} - ${(0,n.formatDate)(e.to)}`:(0,n.formatDate)(e.from??e.to):"",[]),b=t.useMemo(()=>{if(d){if(!l(g))return null;let r=g.from||g.to,t=r?h(g):"Select date range";return(0,e.jsxs)("span",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{children:f}),r&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(s.Separator,{orientation:"vertical",className:"mx-0.5 data-[orientation=vertical]:h-4"}),(0,e.jsx)("span",{children:t})]})]})}if(l(g))return null;let r=g.length>0,t=r?(0,n.formatDate)(g[0]):"Select date";return(0,e.jsxs)("span",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{children:f}),r&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(s.Separator,{orientation:"vertical",className:"mx-0.5 data-[orientation=vertical]:h-4"}),(0,e.jsx)("span",{children:t})]})]})},[g,d,h,f]);return(0,e.jsxs)(i.Popover,{children:[(0,e.jsx)(i.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(a.Button,{variant:"outline",size:"sm",className:"border-dashed",children:[v?(0,e.jsx)("div",{role:"button","aria-label":`Clear ${f} filter`,tabIndex:0,onClick:x,className:"rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",children:(0,e.jsx)(r.XCircle,{})}):(0,e.jsx)(r.Calendar,{}),b]})}),(0,e.jsx)(i.PopoverContent,{className:"w-auto p-0",align:"start",children:d?(0,e.jsx)(o.Calendar,{initialFocus:!0,mode:"range",selected:l(g)?g:{from:void 0,to:void 0},onSelect:j}):(0,e.jsx)(o.Calendar,{initialFocus:!0,mode:"single",selected:l(g)?void 0:g[0],onSelect:j})})]})}export{u as DataTableDateFilter};
3
+ //# sourceMappingURL=data-table-date-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components\\data-table\\data-table-date-filter.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-date-filter.tsx"],"sourcesContent":["\r\n\r\nimport { Calendar as CalendarIcon, XCircle } from '@phosphor-icons/react'\r\nimport type { Column } from '@tanstack/react-table'\r\nimport * as React from 'react'\r\nimport type { DateRange } from 'react-day-picker'\r\n\r\nimport { Button } from '@/components/button'\r\nimport { Calendar } from '@/components/calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport { Separator } from '@/components/separator'\r\nimport { formatDate } from '@/lib/format'\r\n\r\ntype DateSelection = Date[] | DateRange\r\n\r\nfunction getIsDateRange(value: DateSelection): value is DateRange {\r\n return value && typeof value === 'object' && !Array.isArray(value)\r\n}\r\n\r\nfunction parseAsDate(timestamp: number | string | undefined): Date | undefined {\r\n if (!timestamp) return undefined\r\n const numericTimestamp =\r\n typeof timestamp === 'string' ? Number(timestamp) : timestamp\r\n const date = new Date(numericTimestamp)\r\n return !Number.isNaN(date.getTime()) ? date : undefined\r\n}\r\n\r\nfunction parseColumnFilterValue(value: unknown) {\r\n if (value === null || value === undefined) {\r\n return []\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return value.map(item => {\r\n if (typeof item === 'number' || typeof item === 'string') {\r\n return item\r\n }\r\n return undefined\r\n })\r\n }\r\n\r\n if (typeof value === 'string' || typeof value === 'number') {\r\n return [value]\r\n }\r\n\r\n return []\r\n}\r\n\r\ninterface DataTableDateFilterProps<TData> {\r\n column: Column<TData, unknown>\r\n title?: string\r\n multiple?: boolean\r\n}\r\n\r\nexport function DataTableDateFilter<TData>({\r\n column,\r\n title,\r\n multiple,\r\n}: DataTableDateFilterProps<TData>) {\r\n const columnFilterValue = column.getFilterValue()\r\n\r\n const selectedDates = React.useMemo<DateSelection>(() => {\r\n if (!columnFilterValue) {\r\n return multiple ? { from: undefined, to: undefined } : []\r\n }\r\n\r\n if (multiple) {\r\n const timestamps = parseColumnFilterValue(columnFilterValue)\r\n return {\r\n from: parseAsDate(timestamps[0]),\r\n to: parseAsDate(timestamps[1]),\r\n }\r\n }\r\n\r\n const timestamps = parseColumnFilterValue(columnFilterValue)\r\n const date = parseAsDate(timestamps[0])\r\n return date ? [date] : []\r\n }, [columnFilterValue, multiple])\r\n\r\n const onSelect = React.useCallback(\r\n (date: Date | DateRange | undefined) => {\r\n if (!date) {\r\n column.setFilterValue(undefined)\r\n return\r\n }\r\n\r\n if (multiple && !('getTime' in date)) {\r\n const from = date.from?.getTime()\r\n const to = date.to?.getTime()\r\n column.setFilterValue(from || to ? [from, to] : undefined)\r\n } else if (!multiple && 'getTime' in date) {\r\n column.setFilterValue(date.getTime())\r\n }\r\n },\r\n [column, multiple]\r\n )\r\n\r\n const onReset = React.useCallback(\r\n (event: React.MouseEvent) => {\r\n event.stopPropagation()\r\n column.setFilterValue(undefined)\r\n },\r\n [column]\r\n )\r\n\r\n const hasValue = React.useMemo(() => {\r\n if (multiple) {\r\n if (!getIsDateRange(selectedDates)) return false\r\n return selectedDates.from || selectedDates.to\r\n }\r\n if (!Array.isArray(selectedDates)) return false\r\n return selectedDates.length > 0\r\n }, [multiple, selectedDates])\r\n\r\n const formatDateRange = React.useCallback((range: DateRange) => {\r\n if (!range.from && !range.to) return ''\r\n if (range.from && range.to) {\r\n return `${formatDate(range.from)} - ${formatDate(range.to)}`\r\n }\r\n return formatDate(range.from ?? range.to)\r\n }, [])\r\n\r\n const label = React.useMemo(() => {\r\n if (multiple) {\r\n if (!getIsDateRange(selectedDates)) return null\r\n\r\n const hasSelectedDates = selectedDates.from || selectedDates.to\r\n const dateText = hasSelectedDates\r\n ? formatDateRange(selectedDates)\r\n : 'Select date range'\r\n\r\n return (\r\n <span className=\"flex items-center gap-2\">\r\n <span>{title}</span>\r\n {hasSelectedDates && (\r\n <>\r\n <Separator\r\n orientation=\"vertical\"\r\n className=\"mx-0.5 data-[orientation=vertical]:h-4\"\r\n />\r\n <span>{dateText}</span>\r\n </>\r\n )}\r\n </span>\r\n )\r\n }\r\n\r\n if (getIsDateRange(selectedDates)) return null\r\n\r\n const hasSelectedDate = selectedDates.length > 0\r\n const dateText = hasSelectedDate\r\n ? formatDate(selectedDates[0])\r\n : 'Select date'\r\n\r\n return (\r\n <span className=\"flex items-center gap-2\">\r\n <span>{title}</span>\r\n {hasSelectedDate && (\r\n <>\r\n <Separator\r\n orientation=\"vertical\"\r\n className=\"mx-0.5 data-[orientation=vertical]:h-4\"\r\n />\r\n <span>{dateText}</span>\r\n </>\r\n )}\r\n </span>\r\n )\r\n }, [selectedDates, multiple, formatDateRange, title])\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button variant=\"outline\" size=\"sm\" className=\"border-dashed\">\r\n {hasValue ? (\r\n <div\r\n role=\"button\"\r\n aria-label={`Clear ${title} filter`}\r\n tabIndex={0}\r\n onClick={onReset}\r\n className=\"rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\r\n >\r\n <XCircle />\r\n </div>\r\n ) : (\r\n <CalendarIcon />\r\n )}\r\n {label}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n {multiple ? (\r\n <Calendar\r\n initialFocus\r\n mode=\"range\"\r\n selected={\r\n getIsDateRange(selectedDates)\r\n ? selectedDates\r\n : { from: undefined, to: undefined }\r\n }\r\n onSelect={onSelect}\r\n />\r\n ) : (\r\n <Calendar\r\n initialFocus\r\n mode=\"single\"\r\n selected={\r\n !getIsDateRange(selectedDates) ? selectedDates[0] : undefined\r\n }\r\n onSelect={onSelect}\r\n />\r\n )}\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n"],"names":["getIsDateRange","value","Array","parseAsDate","timestamp","date","Date","Number","undefined","parseColumnFilterValue","item","DataTableDateFilter","column","title","multiple","columnFilterValue","selectedDates","React","timestamps","onSelect","from","to","onReset","event","hasValue","formatDateRange","range","formatDate","label","hasSelectedDates","dateText","Separator","hasSelectedDate","Popover","PopoverTrigger","Button","XCircle","CalendarIcon","PopoverContent","Calendar"],"mappings":";4QAeA,SAASA,EAAeC,CAAoB,EAC1C,OAAOA,GAAS,iBAAOA,GAAsB,CAACC,MAAM,OAAO,CAACD,EAC9D,CAEA,SAASE,EAAYC,CAAsC,EACzD,GAAI,CAACA,EAAW,OAGhB,IAAMC,EAAO,IAAIC,KADf,iBAAOF,EAAyBG,OAAOH,GAAaA,GAEtD,OAAO,OAAQ,KAAK,CAACC,EAAK,OAAO,IAAaG,KAAAA,EAAPH,CACzC,CAEA,SAASI,EAAuBR,CAAc,SAC5C,MAAIA,EACK,EAAE,CAGPC,MAAM,OAAO,CAACD,GACTA,EAAM,GAAG,CAACS,IACf,GAAI,iBAAOA,GAAqB,iBAAOA,EACrC,OAAOA,CAGX,GAGE,iBAAOT,GAAsB,iBAAOA,EAC/B,CAACA,EAAM,CAGT,EAAE,CASJ,SAASU,EAA2B,CACzCC,OAAAA,CAAM,CACNC,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACwB,EAChC,IAAMC,EAAoBH,EAAO,cAAc,GAEzCI,EAAgBC,EAAAA,OAAa,CAAgB,KACjD,GAAI,CAACF,EACH,OAAOD,EAAW,CAAE,KAAMN,KAAAA,EAAW,GAAIA,KAAAA,CAAU,EAAI,EAAE,CAG3D,GAAIM,EAAU,CACZ,IAAMI,EAAaT,EAAuBM,GAC1C,MAAO,CACL,KAAMZ,EAAYe,CAAU,CAAC,EAAE,EAC/B,GAAIf,EAAYe,CAAU,CAAC,EAAE,CAC/B,CACF,CAGA,IAAMb,EAAOF,EAAYe,EADiBH,EACP,CAAC,EAAE,EACtC,OAAOV,EAAO,CAACA,EAAK,CAAG,EAAE,EACxB,CAACU,EAAmBD,EAAS,EAE1BK,EAAWF,EAAAA,WAAiB,CAChC,IACE,GAAI,CAACZ,EAAM,YACTO,EAAO,cAAc,CAACJ,KAAAA,GAIxB,GAAIM,CAAAA,GAAc,YAAaT,EAIpB,CAACS,GAAY,YAAaT,GACnCO,EAAO,cAAc,CAACP,EAAK,OAAO,QALE,CACpC,IAAMe,EAAOf,EAAK,IAAI,EAAE,UAClBgB,EAAKhB,EAAK,EAAE,EAAE,UACpBO,EAAO,cAAc,CAACQ,GAAQC,EAAK,CAACD,EAAMC,EAAG,CAAGb,KAAAA,EAClD,CAGF,EACA,CAACI,EAAQE,EAAS,EAGdQ,EAAUL,EAAAA,WAAiB,CAC/B,IACEM,EAAM,eAAe,GACrBX,EAAO,cAAc,CAACJ,KAAAA,EACxB,EACA,CAACI,EAAO,EAGJY,EAAWP,EAAAA,OAAa,CAAC,IAC7B,EACE,CAAI,CAACjB,EAAegB,IACbA,CAAAA,EAAc,IAAI,EAAIA,EAAc,EAAE,EAE/C,CAAI,CAACd,MAAM,OAAO,CAACc,IACZA,EAAc,MAAM,CAAG,EAC7B,CAACF,EAAUE,EAAc,EAEtBS,EAAkBR,EAAAA,WAAiB,CAAC,GACxC,EAAW,IAAI,EAAKS,EAAM,EAAE,CACxBA,EAAM,IAAI,EAAIA,EAAM,EAAE,CACjB,CAAC,EAAEC,GAAAA,EAAAA,UAAAA,EAAWD,EAAM,IAAI,EAAE,GAAG,EAAEC,GAAAA,EAAAA,UAAAA,EAAWD,EAAM,EAAE,EAAE,CAAC,CAEvDC,GAAAA,EAAAA,UAAAA,EAAWD,EAAM,IAAI,EAAIA,EAAM,EAAE,EAJH,GAKpC,EAAE,EAECE,EAAQX,EAAAA,OAAa,CAAC,KAC1B,GAAIH,EAAU,CACZ,GAAI,CAACd,EAAegB,GAAgB,OAAO,KAE3C,IAAMa,EAAmBb,EAAc,IAAI,EAAIA,EAAc,EAAE,CACzDc,EAAWD,EACbJ,EAAgBT,GAChB,oBAEJ,MACE,WAAC,QAAK,UAAU,0B,UACd,UAAC,Q,SAAMH,C,GACNgB,GACC,uB,UACE,UAACE,EAAAA,SAASA,CAAAA,CACR,YAAY,WACZ,UAAU,wC,GAEZ,UAAC,Q,SAAMD,C,QAKjB,CAEA,GAAI9B,EAAegB,GAAgB,OAAO,KAE1C,IAAMgB,EAAkBhB,EAAc,MAAM,CAAG,EACzCc,EAAWE,EACbL,GAAAA,EAAAA,UAAAA,EAAWX,CAAa,CAAC,EAAE,EAC3B,cAEJ,MACE,WAAC,QAAK,UAAU,0B,UACd,UAAC,Q,SAAMH,C,GACNmB,GACC,uB,UACE,UAACD,EAAAA,SAASA,CAAAA,CACR,YAAY,WACZ,UAAU,wC,GAEZ,UAAC,Q,SAAMD,C,QAKjB,EAAG,CAACd,EAAeF,EAAUW,EAAiBZ,EAAM,EAEpD,MACE,WAACoB,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,WAACC,EAAAA,MAAMA,CAAAA,CAAC,QAAQ,UAAU,KAAK,KAAK,UAAU,gB,UAC3CX,EACC,UAAC,OACC,KAAK,SACL,aAAY,CAAC,MAAM,EAAEX,EAAM,OAAO,CAAC,CACnC,SAAU,EACV,QAASS,EACT,UAAU,qI,SAEV,UAACc,EAAAA,OAAOA,CAAAA,CAAAA,E,GAGV,UAACC,EAAAA,QAAYA,CAAAA,CAAAA,GAEdT,E,KAGL,UAACU,EAAAA,cAAcA,CAAAA,CAAC,UAAU,aAAa,MAAM,Q,SAC1CxB,EACC,UAACyB,EAAAA,QAAQA,CAAAA,CACP,aAAY,GACZ,KAAK,QACL,SACEvC,EAAegB,GACXA,EACA,CAAE,KAAMR,KAAAA,EAAW,GAAIA,KAAAA,CAAU,EAEvC,SAAUW,C,GAGZ,UAACoB,EAAAA,QAAQA,CAAAA,CACP,aAAY,GACZ,KAAK,SACL,SACE,EAAgBvB,GAAoCR,KAAAA,EAAnBQ,CAAa,CAAC,EAAE,CAEnD,SAAUG,C,OAMtB,Q"}
@@ -0,0 +1,3 @@
1
+ 'use client'
2
+ import*as e from"react/jsx-runtime";import*as a from"@phosphor-icons/react";import*as s from"../badge.js";import*as r from"../button.js";import*as o from"../command.js";import*as t from"../popover.js";import*as i from"../separator.js";import*as l from"../../lib/utils.js";import*as n from"react";function m({column:m,title:c,options:d,multiple:u}){let[p,x]=n.useState(!1),h=m?.getFilterValue(),j=new Set(Array.isArray(h)?h:[]),f=n.useCallback((e,a)=>{if(m)if(u){let s=new Set(j);a?s.delete(e.value):s.add(e.value);let r=Array.from(s);m.setFilterValue(r.length?r:void 0)}else m.setFilterValue(a?void 0:[e.value]),x(!1)},[m,u,j]),v=n.useCallback(e=>{e?.stopPropagation(),m?.setFilterValue(void 0)},[m]);return(0,e.jsxs)(t.Popover,{open:p,onOpenChange:x,children:[(0,e.jsx)(t.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(r.Button,{variant:"outline",size:"sm",className:"border-dashed",children:[j?.size>0?(0,e.jsx)("div",{role:"button","aria-label":`Clear ${c} filter`,tabIndex:0,onClick:v,className:"rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",children:(0,e.jsx)(a.XCircle,{})}):(0,e.jsx)(a.PlusCircle,{}),c,j?.size>0&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(i.Separator,{orientation:"vertical",className:"mx-0.5 data-[orientation=vertical]:h-4"}),(0,e.jsx)(s.Badge,{variant:"secondary",className:"rounded-sm px-1 font-normal lg:hidden",children:j.size}),(0,e.jsx)("div",{className:"hidden items-center gap-1 lg:flex",children:j.size>2?(0,e.jsxs)(s.Badge,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:[j.size," selected"]}):d.filter(e=>j.has(e.value)).map(a=>(0,e.jsx)(s.Badge,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:a.label},a.value))})]})]})}),(0,e.jsx)(t.PopoverContent,{className:"w-[12.5rem] p-0",align:"start",children:(0,e.jsxs)(o.Command,{children:[(0,e.jsx)(o.CommandInput,{placeholder:c}),(0,e.jsxs)(o.CommandList,{className:"max-h-full",children:[(0,e.jsx)(o.CommandEmpty,{children:"No results found."}),(0,e.jsx)(o.CommandGroup,{className:"max-h-[18.75rem] overflow-y-auto overflow-x-hidden",children:d.map(s=>{let r=j.has(s.value);return(0,e.jsxs)(o.CommandItem,{onSelect:()=>f(s,r),children:[(0,e.jsx)("div",{className:(0,l.cn)("flex size-4 items-center justify-center rounded-sm border border-primary",r?"bg-primary":"opacity-50 [&_svg]:invisible"),children:(0,e.jsx)(a.Check,{})}),s.icon&&(0,e.jsx)(s.icon,{}),(0,e.jsx)("span",{className:"truncate",children:s.label}),s.count&&(0,e.jsx)("span",{className:"ml-auto font-mono text-xs",children:s.count})]},s.value)})}),j.size>0&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(o.CommandSeparator,{}),(0,e.jsx)(o.CommandGroup,{children:(0,e.jsx)(o.CommandItem,{onSelect:()=>v(),className:"justify-center text-center",children:"Clear filters"})})]})]})]})})]})}export{m as DataTableFacetedFilter};
3
+ //# sourceMappingURL=data-table-faceted-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components\\data-table\\data-table-faceted-filter.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-faceted-filter.tsx"],"sourcesContent":["\r\n\r\nimport type { Option } from '@/types/data-table'\r\nimport { Check, PlusCircle, XCircle } from '@phosphor-icons/react'\r\nimport type { Column } from '@tanstack/react-table'\r\n\r\nimport { Badge } from '@/components/badge'\r\nimport { Button } from '@/components/button'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n CommandSeparator,\r\n} from '@/components/command'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport { Separator } from '@/components/separator'\r\nimport { cn } from '@/lib/utils'\r\nimport * as React from 'react'\r\n\r\ninterface DataTableFacetedFilterProps<TData, TValue> {\r\n column?: Column<TData, TValue>\r\n title?: string\r\n options: Option[]\r\n multiple?: boolean\r\n}\r\n\r\nexport function DataTableFacetedFilter<TData, TValue>({\r\n column,\r\n title,\r\n options,\r\n multiple,\r\n}: DataTableFacetedFilterProps<TData, TValue>) {\r\n const [open, setOpen] = React.useState(false)\r\n\r\n const columnFilterValue = column?.getFilterValue()\r\n const selectedValues = new Set(\r\n Array.isArray(columnFilterValue) ? columnFilterValue : []\r\n )\r\n\r\n const onItemSelect = React.useCallback(\r\n (option: Option, isSelected: boolean) => {\r\n if (!column) return\r\n\r\n if (multiple) {\r\n const newSelectedValues = new Set(selectedValues)\r\n if (isSelected) {\r\n newSelectedValues.delete(option.value)\r\n } else {\r\n newSelectedValues.add(option.value)\r\n }\r\n const filterValues = Array.from(newSelectedValues)\r\n column.setFilterValue(filterValues.length ? filterValues : undefined)\r\n } else {\r\n column.setFilterValue(isSelected ? undefined : [option.value])\r\n setOpen(false)\r\n }\r\n },\r\n [column, multiple, selectedValues]\r\n )\r\n\r\n const onReset = React.useCallback(\r\n (event?: React.MouseEvent) => {\r\n event?.stopPropagation()\r\n column?.setFilterValue(undefined)\r\n },\r\n [column]\r\n )\r\n\r\n return (\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger asChild>\r\n <Button variant=\"outline\" size=\"sm\" className=\"border-dashed\">\r\n {selectedValues?.size > 0 ? (\r\n <div\r\n role=\"button\"\r\n aria-label={`Clear ${title} filter`}\r\n tabIndex={0}\r\n onClick={onReset}\r\n className=\"rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\r\n >\r\n <XCircle />\r\n </div>\r\n ) : (\r\n <PlusCircle />\r\n )}\r\n {title}\r\n {selectedValues?.size > 0 && (\r\n <>\r\n <Separator\r\n orientation=\"vertical\"\r\n className=\"mx-0.5 data-[orientation=vertical]:h-4\"\r\n />\r\n <Badge\r\n variant=\"secondary\"\r\n className=\"rounded-sm px-1 font-normal lg:hidden\"\r\n >\r\n {selectedValues.size}\r\n </Badge>\r\n <div className=\"hidden items-center gap-1 lg:flex\">\r\n {selectedValues.size > 2 ? (\r\n <Badge\r\n variant=\"secondary\"\r\n className=\"rounded-sm px-1 font-normal\"\r\n >\r\n {selectedValues.size} selected\r\n </Badge>\r\n ) : (\r\n options\r\n .filter(option => selectedValues.has(option.value))\r\n .map(option => (\r\n <Badge\r\n variant=\"secondary\"\r\n key={option.value}\r\n className=\"rounded-sm px-1 font-normal\"\r\n >\r\n {option.label}\r\n </Badge>\r\n ))\r\n )}\r\n </div>\r\n </>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-[12.5rem] p-0\" align=\"start\">\r\n <Command>\r\n <CommandInput placeholder={title} />\r\n <CommandList className=\"max-h-full\">\r\n <CommandEmpty>No results found.</CommandEmpty>\r\n <CommandGroup className=\"max-h-[18.75rem] overflow-y-auto overflow-x-hidden\">\r\n {options.map(option => {\r\n const isSelected = selectedValues.has(option.value)\r\n\r\n return (\r\n <CommandItem\r\n key={option.value}\r\n onSelect={() => onItemSelect(option, isSelected)}\r\n >\r\n <div\r\n className={cn(\r\n 'flex size-4 items-center justify-center rounded-sm border border-primary',\r\n isSelected\r\n ? 'bg-primary'\r\n : 'opacity-50 [&_svg]:invisible'\r\n )}\r\n >\r\n <Check />\r\n </div>\r\n {option.icon && <option.icon />}\r\n <span className=\"truncate\">{option.label}</span>\r\n {option.count && (\r\n <span className=\"ml-auto font-mono text-xs\">\r\n {option.count}\r\n </span>\r\n )}\r\n </CommandItem>\r\n )\r\n })}\r\n </CommandGroup>\r\n {selectedValues.size > 0 && (\r\n <>\r\n <CommandSeparator />\r\n <CommandGroup>\r\n <CommandItem\r\n onSelect={() => onReset()}\r\n className=\"justify-center text-center\"\r\n >\r\n Clear filters\r\n </CommandItem>\r\n </CommandGroup>\r\n </>\r\n )}\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n"],"names":["DataTableFacetedFilter","column","title","options","multiple","open","setOpen","React","columnFilterValue","selectedValues","Set","Array","onItemSelect","option","isSelected","newSelectedValues","filterValues","undefined","onReset","event","Popover","PopoverTrigger","Button","XCircle","PlusCircle","Separator","Badge","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","cn","Check","CommandSeparator"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ 'use client'
2
+ import*as e from"react/jsx-runtime";import*as a from"@phosphor-icons/react";import*as t from"nuqs";import*as r from"react";import*as l from"../badge.js";import*as n from"../button.js";import*as i from"../calendar.js";import*as s from"../command.js";import*as o from"./data-table-range-filter.js";import*as d from"../faceted.js";import*as c from"../input.js";import*as m from"../popover.js";import*as u from"../select.js";import*as p from"../sortable.js";import*as f from"../../hooks/use-debounced-callback.js";import*as x from"../../lib/data-table.js";import*as h from"../../lib/data-table-config.js";import*as j from"../../lib/format.js";import*as v from"../../lib/id.js";import*as g from"../../lib/parsers.js";import*as b from"../../lib/utils.js";let w=["backspace","delete"];function C({table:i,debounceMs:s=300,throttleMs:o=50,shallow:d=!0,...c}){let u=r.useId(),h=r.useId(),j=r.useId(),[C,y]=r.useState(!1),S=r.useRef(null),I=r.useMemo(()=>i.getAllColumns().filter(e=>e.columnDef.enableColumnFilter),[i]),[D,F]=(0,t.useQueryState)("filters",(0,g.getFiltersStateParser)(I.map(e=>e.id)).withDefault([]).withOptions({clearOnDefault:!0,shallow:d,throttleMs:o})),k=(0,f.useDebouncedCallback)(F,s),[$,T]=(0,t.useQueryState)("joinOperator",(0,t.parseAsStringEnum)(["and","or"]).withDefault("and").withOptions({clearOnDefault:!0,shallow:d})),O=r.useCallback(()=>{let e=I[0];e&&k([...D,{id:e.id,value:"",variant:e.columnDef.meta?.variant??"text",operator:(0,x.getDefaultFilterOperator)(e.columnDef.meta?.variant??"text"),filterId:(0,v.generateId)({length:8})}])},[I,D,k]),B=r.useCallback((e,a)=>{k(t=>t.map(t=>t.filterId===e?{...t,...a}:t))},[k]),E=r.useCallback(e=>{F(D.filter(a=>a.filterId!==e)),requestAnimationFrame(()=>{S.current?.focus()})},[D,F]),z=r.useCallback(()=>{F(null),T("and")},[F,T]);r.useEffect(()=>{function e(e){!(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement)&&("f"!==e.key.toLowerCase()||e.ctrlKey||e.metaKey||e.shiftKey||(e.preventDefault(),y(!0)),"f"===e.key.toLowerCase()&&e.shiftKey&&D.length>0&&(e.preventDefault(),E(D[D.length-1]?.filterId??"")))}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[D,E]);let L=r.useCallback(e=>{w.includes(e.key.toLowerCase())&&D.length>0&&(e.preventDefault(),E(D[D.length-1]?.filterId??""))},[D,E]);return(0,e.jsxs)(p.Sortable,{value:D,onValueChange:F,getItemValue:e=>e.filterId,children:[(0,e.jsxs)(m.Popover,{open:C,onOpenChange:y,children:[(0,e.jsx)(m.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(n.Button,{variant:"outline",size:"sm",onKeyDown:L,children:[(0,e.jsx)(a.FunnelSimple,{}),"Filter",D.length>0&&(0,e.jsx)(l.Badge,{variant:"secondary",className:"h-[18.24px] rounded-[3.2px] px-[5.12px] font-mono font-normal text-[10.4px]",children:D.length})]})}),(0,e.jsxs)(m.PopoverContent,{"aria-describedby":j,"aria-labelledby":h,className:"flex w-full max-w-[var(--radix-popover-content-available-width)] origin-[var(--radix-popover-content-transform-origin)] flex-col gap-3.5 p-4 sm:min-w-[380px]",...c,children:[(0,e.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,e.jsx)("h4",{id:h,className:"font-medium leading-none",children:D.length>0?"Filters":"No filters applied"}),(0,e.jsx)("p",{id:j,className:(0,b.cn)("text-muted-foreground text-sm",D.length>0&&"sr-only"),children:D.length>0?"Modify filters to refine your rows.":"Add filters to refine your rows."})]}),D.length>0?(0,e.jsx)(p.SortableContent,{asChild:!0,children:(0,e.jsx)("div",{role:"list",className:"flex max-h-[300px] flex-col gap-2 overflow-y-auto p-1",children:D.map((a,t)=>(0,e.jsx)(N,{filter:a,index:t,filterItemId:`${u}-filter-${a.filterId}`,joinOperator:$,setJoinOperator:T,columns:I,onFilterUpdate:B,onFilterRemove:E},a.filterId))})}):null,(0,e.jsxs)("div",{className:"flex w-full items-center gap-2",children:[(0,e.jsx)(n.Button,{size:"sm",className:"rounded",ref:S,onClick:O,children:"Add filter"}),D.length>0?(0,e.jsx)(n.Button,{variant:"outline",size:"sm",className:"rounded",onClick:z,children:"Reset filters"}):null]})]})]}),(0,e.jsx)(p.SortableOverlay,{children:(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("div",{className:"h-8 min-w-[72px] rounded-sm bg-primary/10"}),(0,e.jsx)("div",{className:"h-8 w-32 rounded-sm bg-primary/10"}),(0,e.jsx)("div",{className:"h-8 w-32 rounded-sm bg-primary/10"}),(0,e.jsx)("div",{className:"h-8 min-w-36 flex-1 rounded-sm bg-primary/10"}),(0,e.jsx)("div",{className:"size-8 shrink-0 rounded-sm bg-primary/10"}),(0,e.jsx)("div",{className:"size-8 shrink-0 rounded-sm bg-primary/10"})]})})]})}function N({filter:t,index:l,filterItemId:f,joinOperator:v,setJoinOperator:g,columns:C,onFilterUpdate:N,onFilterRemove:y}){let[S,I]=r.useState(!1),[D,F]=r.useState(!1),[k,$]=r.useState(!1),T=C.find(e=>e.id===t.id);if(!T)return null;let O=`${f}-join-operator-listbox`,B=`${f}-field-listbox`,E=`${f}-operator-listbox`,z=`${f}-input`,L=T.columnDef.meta,A=(0,x.getFilterOperators)(t.variant),P=r.useCallback(e=>{!(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement)&&(S||D||k||w.includes(e.key.toLowerCase())&&(e.preventDefault(),y(t.filterId)))},[t.filterId,S,D,k,y]);return(0,e.jsx)(p.SortableItem,{value:t.filterId,asChild:!0,children:(0,e.jsxs)("div",{role:"listitem",id:f,tabIndex:-1,className:"flex items-center gap-2",onKeyDown:P,children:[(0,e.jsx)("div",{className:"min-w-[72px] text-center",children:0===l?(0,e.jsx)("span",{className:"text-muted-foreground text-sm",children:"Where"}):1===l?(0,e.jsxs)(u.Select,{value:v,onValueChange:e=>g(e),children:[(0,e.jsx)(u.SelectTrigger,{"aria-label":"Select join operator","aria-controls":O,className:"h-8 rounded lowercase [&[data-size]]:h-8",children:(0,e.jsx)(u.SelectValue,{placeholder:v})}),(0,e.jsx)(u.SelectContent,{id:O,position:"popper",className:"min-w-(--radix-select-trigger-width) lowercase",children:h.dataTableConfig.joinOperators.map(a=>(0,e.jsx)(u.SelectItem,{value:a,children:a},a))})]}):(0,e.jsx)("span",{className:"text-muted-foreground text-sm",children:v})}),(0,e.jsxs)(m.Popover,{open:S,onOpenChange:I,children:[(0,e.jsx)(m.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(n.Button,{role:"combobox","aria-controls":B,variant:"outline",size:"sm",className:"w-32 justify-between rounded font-normal",children:[(0,e.jsx)("span",{className:"truncate",children:C.find(e=>e.id===t.id)?.columnDef.meta?.label??"Select field"}),(0,e.jsx)(a.CaretUpDown,{className:"opacity-50"})]})}),(0,e.jsx)(m.PopoverContent,{id:B,align:"start",className:"w-40 origin-[var(--radix-popover-content-transform-origin)] p-0",children:(0,e.jsxs)(s.Command,{children:[(0,e.jsx)(s.CommandInput,{placeholder:"Search fields..."}),(0,e.jsxs)(s.CommandList,{children:[(0,e.jsx)(s.CommandEmpty,{children:"No fields found."}),(0,e.jsx)(s.CommandGroup,{children:C.map(r=>(0,e.jsxs)(s.CommandItem,{value:r.id,onSelect:e=>{N(t.filterId,{id:e,variant:r.columnDef.meta?.variant??"text",operator:(0,x.getDefaultFilterOperator)(r.columnDef.meta?.variant??"text"),value:""}),I(!1)},children:[(0,e.jsx)("span",{className:"truncate",children:r.columnDef.meta?.label}),(0,e.jsx)(a.Check,{className:(0,b.cn)("ml-auto",r.id===t.id?"opacity-100":"opacity-0")})]},r.id))})]})]})})]}),(0,e.jsxs)(u.Select,{open:D,onOpenChange:F,value:t.operator,onValueChange:e=>N(t.filterId,{operator:e,value:"isEmpty"===e||"isNotEmpty"===e?"":t.value}),children:[(0,e.jsx)(u.SelectTrigger,{"aria-controls":E,className:"h-8 w-32 rounded lowercase [&[data-size]]:h-8",children:(0,e.jsx)("div",{className:"truncate",children:(0,e.jsx)(u.SelectValue,{placeholder:t.operator})})}),(0,e.jsx)(u.SelectContent,{id:E,className:"origin-[var(--radix-select-content-transform-origin)]",children:A.map(a=>(0,e.jsx)(u.SelectItem,{value:a.value,className:"lowercase",children:a.label},a.value))})]}),(0,e.jsx)("div",{className:"min-w-36 flex-1",children:function({filter:t,inputId:r,column:l,columnMeta:s,onFilterUpdate:p,showValueSelector:f,setShowValueSelector:x}){if("isEmpty"===t.operator||"isNotEmpty"===t.operator)return(0,e.jsx)("div",{id:r,role:"status","aria-label":`${s?.label} filter is ${"isEmpty"===t.operator?"empty":"not empty"}`,"aria-live":"polite",className:"h-8 w-full rounded border bg-transparent dark:bg-input/30"});switch(t.variant){case"text":case"number":case"range":{if("range"===t.variant&&"isBetween"===t.operator||"isBetween"===t.operator)return(0,e.jsx)(o.DataTableRangeFilter,{filter:t,column:l,inputId:r,onFilterUpdate:p});let a="number"===t.variant||"range"===t.variant;return(0,e.jsx)(c.Input,{id:r,type:a?"number":t.variant,"aria-label":`${s?.label} filter value`,"aria-describedby":`${r}-description`,inputMode:a?"numeric":void 0,placeholder:s?.placeholder??"Enter a value...",className:"h-8 w-full rounded",defaultValue:"string"==typeof t.value?t.value:void 0,onChange:e=>p(t.filterId,{value:e.target.value})})}case"boolean":{if(Array.isArray(t.value))return null;let a=`${r}-listbox`;return(0,e.jsxs)(u.Select,{open:f,onOpenChange:x,value:t.value,onValueChange:e=>p(t.filterId,{value:e}),children:[(0,e.jsx)(u.SelectTrigger,{id:r,"aria-controls":a,"aria-label":`${s?.label} boolean filter`,className:"h-8 w-full rounded [&[data-size]]:h-8",children:(0,e.jsx)(u.SelectValue,{placeholder:t.value?"True":"False"})}),(0,e.jsxs)(u.SelectContent,{id:a,children:[(0,e.jsx)(u.SelectItem,{value:"true",children:"True"}),(0,e.jsx)(u.SelectItem,{value:"false",children:"False"})]})]})}case"select":case"multiSelect":{let a=`${r}-listbox`,l="multiSelect"===t.variant,i=l?Array.isArray(t.value)?t.value:[]:"string"==typeof t.value?t.value:void 0;return(0,e.jsxs)(d.Faceted,{open:f,onOpenChange:x,value:i,onValueChange:e=>{p(t.filterId,{value:e})},multiple:l,children:[(0,e.jsx)(d.FacetedTrigger,{asChild:!0,children:(0,e.jsx)(n.Button,{id:r,"aria-controls":a,"aria-label":`${s?.label} filter value${l?"s":""}`,variant:"outline",size:"sm",className:"w-full rounded font-normal",children:(0,e.jsx)(d.FacetedBadgeList,{options:s?.options,placeholder:s?.placeholder??`Select option${l?"s":""}...`})})}),(0,e.jsxs)(d.FacetedContent,{id:a,className:"w-[200px] origin-[var(--radix-popover-content-transform-origin)]",children:[(0,e.jsx)(d.FacetedInput,{"aria-label":`Search ${s?.label} options`,placeholder:s?.placeholder??"Search options..."}),(0,e.jsxs)(d.FacetedList,{children:[(0,e.jsx)(d.FacetedEmpty,{children:"No options found."}),(0,e.jsx)(d.FacetedGroup,{children:s?.options?.map(a=>(0,e.jsxs)(d.FacetedItem,{value:a.value,children:[a.icon&&(0,e.jsx)(a.icon,{}),(0,e.jsx)("span",{children:a.label}),a.count&&(0,e.jsx)("span",{className:"ml-auto font-mono text-xs",children:a.count})]},a.value))})]})]})]})}case"date":case"dateRange":{let l=`${r}-listbox`,o=Array.isArray(t.value)?t.value.filter(Boolean):[t.value,t.value].filter(Boolean),d="isBetween"===t.operator&&2===o.length?`${(0,j.formatDate)(new Date(Number(o[0])))} - ${(0,j.formatDate)(new Date(Number(o[1])))}`:o[0]?(0,j.formatDate)(new Date(Number(o[0]))):"Pick a date";return(0,e.jsxs)(m.Popover,{open:f,onOpenChange:x,children:[(0,e.jsx)(m.PopoverTrigger,{asChild:!0,children:(0,e.jsxs)(n.Button,{id:r,"aria-controls":l,"aria-label":`${s?.label} date filter`,variant:"outline",size:"sm",className:(0,b.cn)("w-full justify-start rounded text-left font-normal",!t.value&&"text-muted-foreground"),children:[(0,e.jsx)(a.Calendar,{}),(0,e.jsx)("span",{className:"truncate",children:d})]})}),(0,e.jsx)(m.PopoverContent,{id:l,align:"start",className:"w-auto origin-[var(--radix-popover-content-transform-origin)] p-0",children:"isBetween"===t.operator?(0,e.jsx)(i.Calendar,{"aria-label":`Select ${s?.label} date range`,mode:"range",initialFocus:!0,selected:2===o.length?{from:new Date(Number(o[0])),to:new Date(Number(o[1]))}:{from:new Date,to:new Date},onSelect:e=>{p(t.filterId,{value:e?[(e.from?.getTime()??"").toString(),(e.to?.getTime()??"").toString()]:[]})}}):(0,e.jsx)(i.Calendar,{"aria-label":`Select ${s?.label} date`,mode:"single",initialFocus:!0,selected:o[0]?new Date(Number(o[0])):void 0,onSelect:e=>{p(t.filterId,{value:(e?.getTime()??"").toString()})}})})]})}default:return null}}({filter:t,inputId:z,column:T,columnMeta:L,onFilterUpdate:N,showValueSelector:k,setShowValueSelector:$})}),(0,e.jsx)(n.Button,{"aria-controls":f,variant:"outline",size:"icon",className:"size-8 rounded",onClick:()=>y(t.filterId),children:(0,e.jsx)(a.Trash,{})}),(0,e.jsx)(p.SortableItemHandle,{asChild:!0,children:(0,e.jsx)(n.Button,{variant:"outline",size:"icon",className:"size-8 rounded",children:(0,e.jsx)(a.DotsSixVertical,{})})})]})})}export{C as DataTableFilterList};
3
+ //# sourceMappingURL=data-table-filter-list.js.map