@teppen/react-ui 0.7.4 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/table/base.js +1 -1
- package/dist/cjs/src/table/cell.js +2 -1
- package/dist/cjs/src/table/cell.js.map +1 -1
- package/dist/cjs/src/table/edit/hooks.js +2 -0
- package/dist/cjs/src/table/edit/hooks.js.map +1 -0
- package/dist/cjs/src/table/edit/provider.js +3 -0
- package/dist/cjs/src/table/edit/provider.js.map +1 -0
- package/dist/cjs/src/table/filter/components.js +3 -0
- package/dist/cjs/src/table/filter/components.js.map +1 -0
- package/dist/cjs/src/table/filter/constants.js +2 -0
- package/dist/cjs/src/table/filter/constants.js.map +1 -0
- package/dist/cjs/src/table/filter/filter-icon.js.map +1 -0
- package/dist/cjs/src/table/filter/hooks.js +2 -0
- package/dist/cjs/src/table/filter/hooks.js.map +1 -0
- package/dist/cjs/src/table/filter/provider.js +3 -0
- package/dist/cjs/src/table/filter/provider.js.map +1 -0
- package/dist/cjs/src/table/hook.js +1 -1
- package/dist/cjs/src/table/hook.js.map +1 -1
- package/dist/cjs/src/table/pagenation/components.js +3 -0
- package/dist/cjs/src/table/pagenation/components.js.map +1 -0
- package/dist/cjs/src/table/pagenation/constants.js +2 -0
- package/dist/cjs/src/table/pagenation/constants.js.map +1 -0
- package/dist/cjs/src/table/pagenation/hooks.js +2 -0
- package/dist/cjs/src/table/pagenation/hooks.js.map +1 -0
- package/dist/cjs/src/table/pagenation/providers.js +3 -0
- package/dist/cjs/src/table/pagenation/providers.js.map +1 -0
- package/dist/cjs/src/table/sheet/providers.js +3 -0
- package/dist/cjs/src/table/sheet/providers.js.map +1 -0
- package/dist/cjs/src/table/sort/components.js +3 -0
- package/dist/cjs/src/table/sort/components.js.map +1 -0
- package/dist/cjs/src/table/sort/hooks.js +2 -0
- package/dist/cjs/src/table/sort/hooks.js.map +1 -0
- package/dist/cjs/src/table/{sort-icon.js → sort/icon.js} +1 -1
- package/dist/cjs/src/table/sort/icon.js.map +1 -0
- package/dist/cjs/src/table/sort/provider.js +3 -0
- package/dist/cjs/src/table/sort/provider.js.map +1 -0
- package/dist/esm/src/table/base.js +1 -1
- package/dist/esm/src/table/cell.js +2 -1
- package/dist/esm/src/table/cell.js.map +1 -1
- package/dist/esm/src/table/edit/hooks.js +2 -0
- package/dist/esm/src/table/edit/hooks.js.map +1 -0
- package/dist/esm/src/table/edit/provider.js +3 -0
- package/dist/esm/src/table/edit/provider.js.map +1 -0
- package/dist/esm/src/table/filter/components.js +3 -0
- package/dist/esm/src/table/filter/components.js.map +1 -0
- package/dist/esm/src/table/filter/constants.js +2 -0
- package/dist/esm/src/table/filter/constants.js.map +1 -0
- package/dist/esm/src/table/filter/filter-icon.js.map +1 -0
- package/dist/esm/src/table/filter/hooks.js +2 -0
- package/dist/esm/src/table/filter/hooks.js.map +1 -0
- package/dist/esm/src/table/filter/provider.js +3 -0
- package/dist/esm/src/table/filter/provider.js.map +1 -0
- package/dist/esm/src/table/hook.js +1 -1
- package/dist/esm/src/table/hook.js.map +1 -1
- package/dist/esm/src/table/pagenation/components.js +3 -0
- package/dist/esm/src/table/pagenation/components.js.map +1 -0
- package/dist/esm/src/table/pagenation/constants.js +2 -0
- package/dist/esm/src/table/pagenation/constants.js.map +1 -0
- package/dist/esm/src/table/pagenation/hooks.js +2 -0
- package/dist/esm/src/table/pagenation/hooks.js.map +1 -0
- package/dist/esm/src/table/pagenation/providers.js +3 -0
- package/dist/esm/src/table/pagenation/providers.js.map +1 -0
- package/dist/esm/src/table/sheet/providers.js +3 -0
- package/dist/esm/src/table/sheet/providers.js.map +1 -0
- package/dist/esm/src/table/sort/components.js +3 -0
- package/dist/esm/src/table/sort/components.js.map +1 -0
- package/dist/esm/src/table/sort/hooks.js +2 -0
- package/dist/esm/src/table/sort/hooks.js.map +1 -0
- package/dist/esm/src/table/{sort-icon.js → sort/icon.js} +1 -1
- package/dist/esm/src/table/sort/icon.js.map +1 -0
- package/dist/esm/src/table/sort/provider.js +3 -0
- package/dist/esm/src/table/sort/provider.js.map +1 -0
- package/dist/index.d.ts +19 -13
- package/package.json +1 -2
- package/dist/cjs/src/table/filter-form.js +0 -2
- package/dist/cjs/src/table/filter-form.js.map +0 -1
- package/dist/cjs/src/table/filter-icon.js.map +0 -1
- package/dist/cjs/src/table/filter.js +0 -2
- package/dist/cjs/src/table/filter.js.map +0 -1
- package/dist/cjs/src/table/page.js +0 -2
- package/dist/cjs/src/table/page.js.map +0 -1
- package/dist/cjs/src/table/sort-icon.js.map +0 -1
- package/dist/cjs/src/table/sort.js +0 -2
- package/dist/cjs/src/table/sort.js.map +0 -1
- package/dist/esm/src/table/filter-form.js +0 -2
- package/dist/esm/src/table/filter-form.js.map +0 -1
- package/dist/esm/src/table/filter-icon.js.map +0 -1
- package/dist/esm/src/table/filter.js +0 -2
- package/dist/esm/src/table/filter.js.map +0 -1
- package/dist/esm/src/table/page.js +0 -2
- package/dist/esm/src/table/page.js.map +0 -1
- package/dist/esm/src/table/sort-icon.js.map +0 -1
- package/dist/esm/src/table/sort.js +0 -2
- package/dist/esm/src/table/sort.js.map +0 -1
- /package/dist/cjs/src/table/{filter-icon.js → filter/filter-icon.js} +0 -0
- /package/dist/esm/src/table/{filter-icon.js → filter/filter-icon.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter-form.js","sources":["../../../../src/table/filter-form.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport {\n FILTER_OPERATOR,\n NUMBER_FILTER_OPERATOR,\n SELECT_FILTER_OPERATOR,\n STRING_FILTER_OPERATOR,\n TNumberFilterOperator,\n TSelectFilterOperator,\n TStringFilterOperator,\n TableFilterRemoveButton,\n useTableFilterContext,\n} from \"./filter\";\nimport { DataObject, TColumnType, TTableColumn } from \"./type\";\nimport { CancelIcon } from \"./cancel-icon\";\n\ntype TPropsFilterForm<T extends DataObject> = {\n cols: TTableColumn<T>[];\n};\n\nexport function TableFilterForm<T extends DataObject>(\n props: TPropsFilterForm<T>\n) {\n const { addFilter, removeFilter, filterConditions } = useTableFilterContext();\n const [selectingKey, setSelectingKey] = useState<string>(\"\");\n const [selectingOperator, setSelectingOperator] = useState<string>(\"\");\n const [value, setValue] = useState<string>(\"\");\n const [filterType, setFilterType] = useState<TColumnType>(\"string\");\n\n const filterColumn = props.cols.find((col) => col.key === selectingKey)!;\n\n useEffect(() => {\n setValue(\"\");\n setSelectingOperator(\"\");\n }, [selectingKey]);\n\n return (\n <>\n <div className=\"flex flex-col gap-2 mb-5\">\n <p className=\"font-bold text-lg\">フィルタ追加</p>\n <div className=\"flex flex-wrap gap-1\">\n <select\n value={selectingKey}\n onChange={(e) => {\n e.preventDefault();\n setSelectingKey(e.target.value);\n const columnType = props.cols.find(\n (col) => col.key === e.target.value\n )?.type as TColumnType;\n setFilterType(columnType);\n }}\n >\n <option value=\"\">-- 列を選択 --</option>\n {props.cols\n .filter((col) => !!col.label && !!col.type)\n .map((col) => (\n <option key={col.key} value={col.key}>\n {col.label}\n </option>\n ))}\n </select>\n <select\n value={selectingOperator}\n onChange={(e) => {\n e.preventDefault();\n setSelectingOperator(e.target.value);\n }}\n disabled={!selectingKey}\n >\n <option value=\"\">\n {selectingKey ? \"-- 条件を選択 --\" : \"-- 列を選択してください --\"}\n </option>\n {filterType === \"string\" &&\n STRING_FILTER_OPERATOR.map((op) => (\n <option key={op.key} value={op.key}>\n {op.label}\n </option>\n ))}\n {filterType === \"number\" &&\n NUMBER_FILTER_OPERATOR.map((op) => (\n <option key={op.key} value={op.key}>\n {op.label}\n </option>\n ))}\n {filterType === \"select\" &&\n SELECT_FILTER_OPERATOR.map((op) => (\n <option key={op.key} value={op.key}>\n {op.label}\n </option>\n ))}\n </select>\n {filterType === \"select\" ? (\n <select\n value={value}\n onChange={(e) => {\n e.preventDefault();\n setValue(e.target.value);\n }}\n >\n <option value=\"\">-- 未選択 --</option>\n {filterColumn.type === \"select\" &&\n filterColumn.options.map((op) => (\n <option key={op.value} value={op.value}>\n {op.label}\n </option>\n ))}\n </select>\n ) : (\n <input\n type=\"text\"\n value={value}\n onChange={(e) => {\n e.preventDefault();\n setValue(e.target.value);\n }}\n placeholder=\"-- 値を入力 --\"\n />\n )}\n </div>\n <div className=\"flex justify-end\">\n <button\n className=\"bg-gray-900 text-white py-1 px-2 rounded-md\"\n onClick={(e) => {\n e.preventDefault();\n if (\n !selectingKey ||\n !selectingOperator ||\n (filterColumn.type !== \"select\" && !value)\n ) {\n alert(\"全ての項目を入力してください\");\n return;\n }\n\n const addFilterColumn = props.cols.find(\n (col) => col.key === selectingKey\n )!;\n\n addFilter(\n filterType === \"string\"\n ? {\n key: selectingKey,\n operator: selectingOperator as TStringFilterOperator,\n value: [value],\n }\n : filterType === \"select\"\n ? {\n key: selectingKey,\n operator: selectingOperator as TSelectFilterOperator,\n value: value,\n label:\n addFilterColumn.type === \"select\"\n ? addFilterColumn.options.find(\n (op) => op.value === value\n )?.label\n : undefined,\n }\n : {\n key: selectingKey,\n operator: selectingOperator as TNumberFilterOperator,\n value: Number(value),\n }\n );\n }}\n >\n 追加\n </button>\n </div>\n </div>\n <div>\n {filterConditions.length > 0 && (\n <p className=\"font-bold text-lg\">フィルタ一覧</p>\n )}\n <ul className=\"flex flex-col gap-1 my-2\">\n {filterConditions.map((f) => (\n <li key={f.id} className=\"flex justify-between\">\n <p>\n 「\n <strong>\n {props.cols.find((col) => col.key === f.key)?.label}\n </strong>\n 」 は\n <span>\n {FILTER_OPERATOR.find((op) => op.key === f.operator)?.label}\n </span>\n :<span>{f.label ? f.label : f.value}</span>\n </p>\n <button\n onClick={(e) => {\n e.preventDefault();\n removeFilter(f.id);\n }}\n >\n <CancelIcon size={16} />\n </button>\n </li>\n ))}\n </ul>\n <div className=\"flex justify-center\">\n <TableFilterRemoveButton>\n <p className=\"text-gray-600 underline hover:text-gray-800\">\n remove all filters\n </p>\n </TableFilterRemoveButton>\n </div>\n </div>\n </>\n );\n}\n"],"names":["TableFilterForm","props","_a","useTableFilterContext","addFilter","removeFilter","filterConditions","_b","useState","selectingKey","setSelectingKey","_c","selectingOperator","setSelectingOperator","_d","value","setValue","_e","filterType","setFilterType","filterColumn","cols","find","col","key","useEffect","_jsxs","_Fragment","children","className","_jsx","onChange","e","preventDefault","target","columnType","type","filter","label","map","disabled","STRING_FILTER_OPERATOR","op","NUMBER_FILTER_OPERATOR","SELECT_FILTER_OPERATOR","options","placeholder","onClick","addFilterColumn","operator","undefined","Number","alert","length","f","FILTER_OPERATOR","id","CancelIcon","size","TableFilterRemoveButton"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter-icon.js","sources":["../../../../src/table/filter-icon.tsx"],"sourcesContent":["type TPropsFIlterIcon = {\n size?: number;\n isFilterActive?: boolean;\n};\n\nexport function FIlterIcon(props: TPropsFIlterIcon) {\n const size = props.size ?? 16;\n return (\n <div\n className={`duration-300 ${\n props.isFilterActive ? \"text-gray-700\" : \"text-gray-500\"\n }`}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n version=\"1.1\"\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 256 256\"\n xmlSpace=\"preserve\"\n >\n <defs></defs>\n {props.isFilterActive ? (\n <g\n style={{\n stroke: \"none\",\n strokeWidth: 0,\n strokeDasharray: \"none\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeMiterlimit: 10,\n fill: \"none\",\n fillRule: \"nonzero\",\n opacity: 1,\n }}\n transform=\"translate(1.4065934065934016 1.4065934065934016) scale(2.81 2.81)\"\n >\n <path\n d=\"M 52.537 80.466 V 45.192 L 84.53 2.999 C 85.464 1.768 84.586 0 83.041 0 H 6.959 C 5.414 0 4.536 1.768 5.47 2.999 l 31.994 42.192 v 43.441 c 0 1.064 1.163 1.719 2.073 1.167 l 11.758 -7.127 C 52.065 82.205 52.537 81.368 52.537 80.466 z\"\n style={{\n stroke: \"none\",\n strokeWidth: 1,\n strokeDasharray: \"none\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeMiterlimit: 10,\n fill: \"currentColor\",\n fillRule: \"nonzero\",\n opacity: 1,\n }}\n transform=\" matrix(1 0 0 1 0 0) \"\n strokeLinecap=\"round\"\n />\n </g>\n ) : (\n <g\n style={{\n stroke: \"none\",\n strokeWidth: 0,\n strokeDasharray: \"none\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeMiterlimit: 10,\n fill: \"none\",\n fillRule: \"nonzero\",\n opacity: 1,\n }}\n transform=\"translate(1.4065934065934016 1.4065934065934016) scale(2.81 2.81)\"\n >\n <path\n d=\"M 37.882 90 c -0.338 0 -0.676 -0.086 -0.981 -0.258 c -0.629 -0.354 -1.019 -1.02 -1.019 -1.742 V 45.354 L 3.923 3.208 C 3.464 2.604 3.388 1.791 3.726 1.11 S 4.758 0 5.517 0 h 78.966 c 0.76 0 1.453 0.43 1.791 1.11 s 0.262 1.493 -0.197 2.098 L 54.118 45.354 V 79.37 c 0 0.699 -0.365 1.348 -0.963 1.71 l -14.237 8.63 C 38.601 89.903 38.241 90 37.882 90 z M 9.543 4 l 29.932 39.474 c 0.264 0.348 0.406 0.772 0.406 1.208 v 39.767 l 10.236 -6.205 V 44.682 c 0 -0.437 0.143 -0.861 0.406 -1.208 L 80.457 4 H 9.543 z M 52.118 79.37 h 0.01 H 52.118 z\"\n style={{\n stroke: \"none\",\n strokeWidth: 1,\n strokeDasharray: \"none\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeMiterlimit: 10,\n fill: \"currentColor\",\n fillRule: \"nonzero\",\n opacity: 1,\n }}\n transform=\" matrix(1 0 0 1 0 0) \"\n strokeLinecap=\"round\"\n />\n </g>\n )}\n </svg>\n </div>\n );\n}\n"],"names":["FIlterIcon","props","size","_a","_jsx","className","concat","isFilterActive","children","_jsxs","xmlns","xmlnsXlink","version","width","height","viewBox","xmlSpace","style","stroke","strokeWidth","strokeDasharray","strokeLinecap","strokeLinejoin","strokeMiterlimit","fill","fillRule","opacity","transform","d"],"mappings":"kDAKM,SAAUA,EAAWC,SACnBC,EAAiB,QAAVC,EAAAF,EAAMC,YAAI,IAAAC,EAAAA,EAAI,GAC3B,OACEC,EAAA,MAAA,CACEC,UAAW,gBACTC,OAAAL,EAAMM,eAAiB,gBAAkB,iBACzCC,SAEFC,EACE,MAAA,CAAAC,MAAM,6BACNC,WAAW,+BACXC,QAAQ,MACRC,MAAO,GAAGP,OAAAJ,EAAQ,MAClBY,OAAQ,GAAGR,OAAAJ,EAAQ,MACnBa,QAAQ,cACRC,SAAS,WAAUR,SAAA,CAEnBJ,EAAa,OAAA,IACZH,EAAMM,eACLH,EAAA,IAAA,CACEa,MAAO,CACLC,OAAQ,OACRC,YAAa,EACbC,gBAAiB,OACjBC,cAAe,OACfC,eAAgB,QAChBC,iBAAkB,GAClBC,KAAM,OACNC,SAAU,UACVC,QAAS,GAEXC,UAAU,oEAEVnB,SAAAJ,EAAA,OAAA,CACEwB,EAAE,4OACFX,MAAO,CACLC,OAAQ,OACRC,YAAa,EACbC,gBAAiB,OACjBC,cAAe,OACfC,eAAgB,QAChBC,iBAAkB,GAClBC,KAAM,eACNC,SAAU,UACVC,QAAS,GAEXC,UAAU,wBACVN,cAAc,YAIlBjB,EAAA,IAAA,CACEa,MAAO,CACLC,OAAQ,OACRC,YAAa,EACbC,gBAAiB,OACjBC,cAAe,OACfC,eAAgB,QAChBC,iBAAkB,GAClBC,KAAM,OACNC,SAAU,UACVC,QAAS,GAEXC,UAAU,oEAEVnB,SAAAJ,EAAA,OAAA,CACEwB,EAAE,8hBACFX,MAAO,CACLC,OAAQ,OACRC,YAAa,EACbC,gBAAiB,OACjBC,cAAe,OACfC,eAAgB,QAChBC,iBAAkB,GAClBC,KAAM,eACNC,SAAU,UACVC,QAAS,GAEXC,UAAU,wBACVN,cAAc,gBAO5B"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{__spreadArray as e,__assign as t}from"../../node_modules/tslib/tslib.es6.js";import{jsx as r}from"react/jsx-runtime";import{createContext as n,useReducer as i,useCallback as l,useContext as u}from"react";import{FIlterIcon as c}from"./filter-icon.js";var o=[{key:"includeText",label:"次の値を含む"}],a=[{key:"eq",label:"次の値と等しい"},{key:"ne",label:"次の値と等しくない"},{key:"gt",label:"次の値より大きい"},{key:"lt",label:"次の値より小さい"},{key:"gte",label:"次の値以上"},{key:"lte",label:"次の値以下"}],f=[{key:"selected",label:"次の値と等しい"},{key:"notSelected",label:"次の値と等しくない"}],s=e(e(e([],o,!0),a,!0),f,!0);function d(r,n){switch(n.type){case"add":return{filters:e(e([],r.filters,!0),[t({id:(new Date).getTime()},n.payload.filter)],!1)};case"remove":return{filters:r.filters.filter((function(e){return e.id!==n.payload.id}))};case"clear":return{filters:[]}}}function y(){var e=i(d,{filters:[]}),t=e[0],r=e[1],n=l((function(e){return r({type:"add",payload:{filter:e}})}),[r]);return{addFilter:n,removeFilter:l((function(e){return r({type:"remove",payload:{id:e}})}),[r]),clearFilter:l((function(){return r({type:"clear"})}),[r]),filter:l((function(e){return t.filters.reduce((function(e,t){switch(t.operator){case"includeText":return e.filter((function(e){var r=e[t.key];return"string"==typeof r&&t.value.some((function(e){return r.includes(e)}))}));case"eq":case"selected":return e.filter((function(e){return e[t.key]===t.value}));case"ne":case"notSelected":return e.filter((function(e){return e[t.key]!==t.value}));case"gt":return e.filter((function(e){return e[t.key]>t.value}));case"lt":return e.filter((function(e){return e[t.key]<t.value}));case"gte":return e.filter((function(e){return e[t.key]>=t.value}));case"lte":return e.filter((function(e){return e[t.key]<=t.value}))}}),e)}),[t]),filterConditions:t.filters}}var v=n({addFilter:function(){},removeFilter:function(){},clearFilter:function(){},filter:function(){return[]},filterConditions:[]});function k(e){var t=e.children;return r(v.Provider,{value:y(),children:t})}function m(){return u(v)}function p(e){var t=m().filterConditions;return r("div",{className:"relative cursor-pointer",onClick:e.onClick,children:r(c,{isFilterActive:t.filter((function(t){return t.key===e.keyName})).length>0})})}function b(e){var t=e.children,n=m(),i=n.clearFilter;if(0!==n.filterConditions.length)return r("button",{onClick:function(e){e.preventDefault(),i()},children:t})}export{s as FILTER_OPERATOR,a as NUMBER_FILTER_OPERATOR,f as SELECT_FILTER_OPERATOR,o as STRING_FILTER_OPERATOR,p as TableFilter,k as TableFilterProvider,b as TableFilterRemoveButton,d as filterReducer,m as useTableFilterContext};
|
|
2
|
-
//# sourceMappingURL=filter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sources":["../../../../src/table/filter.tsx"],"sourcesContent":["import { createContext, useCallback, useContext, useReducer } from \"react\";\nimport { DataObject } from \"./type\";\nimport { FIlterIcon } from \"./filter-icon\";\n\nexport const STRING_FILTER_OPERATOR = [\n { key: \"includeText\", label: \"次の値を含む\" },\n] as const;\n\nexport const NUMBER_FILTER_OPERATOR = [\n { key: \"eq\", label: \"次の値と等しい\" },\n { key: \"ne\", label: \"次の値と等しくない\" },\n { key: \"gt\", label: \"次の値より大きい\" },\n { key: \"lt\", label: \"次の値より小さい\" },\n { key: \"gte\", label: \"次の値以上\" },\n { key: \"lte\", label: \"次の値以下\" },\n] as const;\n\nexport const SELECT_FILTER_OPERATOR = [\n { key: \"selected\", label: \"次の値と等しい\" },\n { key: \"notSelected\", label: \"次の値と等しくない\" },\n] as const;\n\nexport const FILTER_OPERATOR = [\n ...STRING_FILTER_OPERATOR,\n ...NUMBER_FILTER_OPERATOR,\n ...SELECT_FILTER_OPERATOR,\n] as const;\n\nexport type TStringFilterOperator =\n (typeof STRING_FILTER_OPERATOR)[number][\"key\"];\nexport type TNumberFilterOperator =\n (typeof NUMBER_FILTER_OPERATOR)[number][\"key\"];\nexport type TSelectFilterOperator =\n (typeof SELECT_FILTER_OPERATOR)[number][\"key\"];\nexport type TFilterOperator =\n | TStringFilterOperator\n | TNumberFilterOperator\n | TSelectFilterOperator;\n\ntype TStringFilter = {\n key: string;\n operator: TStringFilterOperator;\n value: string[];\n label?: string;\n};\n\ntype TNumberFilter = {\n key: string;\n operator: TNumberFilterOperator;\n value: number;\n label?: string;\n};\n\ntype TSelectFilter = {\n key: string;\n operator: TSelectFilterOperator;\n value: string;\n label?: string;\n};\n\ntype TFilter = TStringFilter | TNumberFilter | TSelectFilter;\n\ntype TFilterState = {\n filters: ({ id: number } & TFilter)[];\n};\n\ntype TFilterAction =\n | { type: \"add\"; payload: { filter: TFilter } }\n | { type: \"remove\"; payload: { id: number } }\n | { type: \"clear\" };\n\nexport function filterReducer(\n state: TFilterState,\n action: TFilterAction\n): TFilterState {\n switch (action.type) {\n case \"add\":\n return {\n filters: [\n ...state.filters,\n { id: new Date().getTime(), ...action.payload.filter },\n ],\n };\n case \"remove\":\n return {\n filters: state.filters.filter((f) => f.id !== action.payload.id),\n };\n case \"clear\":\n return { filters: [] };\n }\n}\n\nfunction useFilterReducer() {\n const [state, dispatch] = useReducer(filterReducer, { filters: [] });\n\n const addFilter = useCallback(\n (filter: TFilter) => dispatch({ type: \"add\", payload: { filter } }),\n [dispatch]\n );\n const removeFilter = useCallback(\n (id: number) => dispatch({ type: \"remove\", payload: { id } }),\n [dispatch]\n );\n const clearFilter = useCallback(\n () => dispatch({ type: \"clear\" }),\n [dispatch]\n );\n\n const filter = useCallback(\n <T extends DataObject>(rows: T[]): T[] => {\n return state.filters.reduce((acc, filter) => {\n switch (filter.operator) {\n case \"includeText\":\n return acc.filter((row) => {\n const value = row[filter.key];\n if (typeof value === \"string\") {\n return filter.value.some((v) => value.includes(v));\n }\n return false;\n });\n case \"eq\":\n return acc.filter((row) => row[filter.key] === filter.value);\n case \"ne\":\n return acc.filter((row) => row[filter.key] !== filter.value);\n case \"gt\":\n return acc.filter((row) => row[filter.key] > filter.value);\n case \"lt\":\n return acc.filter((row) => row[filter.key] < filter.value);\n case \"gte\":\n return acc.filter((row) => row[filter.key] >= filter.value);\n case \"lte\":\n return acc.filter((row) => row[filter.key] <= filter.value);\n case \"selected\":\n return acc.filter((row) => row[filter.key] === filter.value);\n case \"notSelected\":\n return acc.filter((row) => row[filter.key] !== filter.value);\n }\n }, rows);\n },\n [state]\n );\n\n return {\n addFilter,\n removeFilter,\n clearFilter,\n filter,\n filterConditions: state.filters,\n };\n}\n\nconst TableFilterContext = createContext<ReturnType<typeof useFilterReducer>>({\n addFilter: () => {},\n removeFilter: () => {},\n clearFilter: () => {},\n filter: () => [],\n filterConditions: [],\n});\n\nexport function TableFilterProvider({\n children,\n}: {\n children: JSX.Element | JSX.Element[];\n}) {\n return (\n <TableFilterContext.Provider value={useFilterReducer()}>\n {children}\n </TableFilterContext.Provider>\n );\n}\n\nexport function useTableFilterContext() {\n return useContext(TableFilterContext);\n}\n\ntype TPropsTableFilter = {\n keyName: string;\n onClick: React.MouseEventHandler<HTMLDivElement>;\n};\n\nexport function TableFilter(props: TPropsTableFilter) {\n const { filterConditions } = useTableFilterContext();\n\n return (\n <div className=\"relative cursor-pointer\" onClick={props.onClick}>\n <FIlterIcon\n isFilterActive={\n filterConditions.filter((f) => f.key === props.keyName).length > 0\n }\n />\n </div>\n );\n}\n\nexport function TableFilterRemoveButton({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const { clearFilter, filterConditions } = useTableFilterContext();\n\n if (filterConditions.length === 0) {\n return;\n }\n\n return (\n <button\n onClick={(e) => {\n e.preventDefault();\n clearFilter();\n }}\n >\n {children}\n </button>\n );\n}\n"],"names":["STRING_FILTER_OPERATOR","key","label","NUMBER_FILTER_OPERATOR","SELECT_FILTER_OPERATOR","FILTER_OPERATOR","__spreadArray","filterReducer","state","action","type","filters","__assign","id","Date","getTime","payload","filter","f","useFilterReducer","_a","useReducer","dispatch","addFilter","useCallback","removeFilter","clearFilter","rows","reduce","acc","operator","row","value","some","v","includes","filterConditions","TableFilterContext","createContext","TableFilterProvider","children","_jsx","Provider","useTableFilterContext","useContext","TableFilter","props","className","onClick","FIlterIcon","isFilterActive","keyName","length","TableFilterRemoveButton","_b","e","preventDefault"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{__assign as e}from"../../node_modules/tslib/tslib.es6.js";import{jsxs as r,jsx as t}from"react/jsx-runtime";import{memo as n,useReducer as u,useCallback as a}from"react";function o(r,t){switch(t.type){case"setRowCount":return e(e({},r),{rowCount:t.payload.rouCount});case"setPerPage":return e(e({},r),{perPage:t.payload.perPage});case"next":return r.currentPage===Math.ceil(r.rowCount/r.perPage)?r:e(e({},r),{currentPage:r.currentPage+1});case"prev":return 1===r.currentPage?r:e(e({},r),{currentPage:r.currentPage-1});case"jump":return t.payload.pageNumber<1||t.payload.pageNumber>Math.ceil(r.rowCount/r.perPage)||r.currentPage===t.payload.pageNumber?r:e(e({},r),{currentPage:t.payload.pageNumber});default:return r}}var c={perPage:50,currentPage:1,rowCount:0};function p(e){var r=u(o,null!=e?e:c),t=r[0],n=r[1],p=a((function(){return n({type:"next"})}),[n]),i=a((function(){return n({type:"prev"})}),[n]),l=a((function(e){return n({type:"jump",payload:{pageNumber:e}})}),[n]),s=a((function(e){return n({type:"setRowCount",payload:{rouCount:e}})}),[n]);return{perPage:t.perPage,currentPage:t.currentPage,rowCount:t.rowCount,pageCount:Math.ceil(t.rowCount/t.perPage),from:(t.currentPage-1)*t.perPage,to:t.currentPage*t.perPage,next:p,prev:i,jump:l,setRowCount:s}}var i=n((function(e){return r("div",{className:"flex justify-center gap-2",children:[t("button",{className:"text-sm",onClick:function(){return e.jump(1)},disabled:1===e.current,children:"≪"}),t("button",{className:"text-sm",onClick:function(){return e.prev()},disabled:1===e.current,children:"<"}),Array.from({length:e.count},(function(e,r){return r+1})).filter((function(r){return e.current-2<=r&&r<=e.current+2})).map((function(r){return t("button",{className:"text-sm ".concat(e.current===r?"text-blue-600":""),onClick:function(){return e.jump(r)},children:r},r)})),t("button",{className:"text-sm",onClick:function(){return e.next()},disabled:e.current===e.count,children:">"}),t("button",{className:"text-sm",onClick:function(){return e.jump(e.count)},disabled:e.current===e.count,children:"≫"})]})}));export{i as Pagenation,p as usePageReducer};
|
|
2
|
-
//# sourceMappingURL=page.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sources":["../../../../src/table/page.tsx"],"sourcesContent":["import { memo, useCallback, useReducer } from \"react\";\n\ntype TPage = {\n perPage: number;\n currentPage: number;\n rowCount: number;\n};\n\ntype TPageMoveAction =\n | { type: \"setRowCount\"; payload: { rouCount: number } }\n | { type: \"setPerPage\"; payload: { perPage: number } }\n | {\n type: \"next\";\n }\n | {\n type: \"prev\";\n }\n | {\n type: \"jump\";\n payload: { pageNumber: number };\n };\n\nfunction pageReducer(state: TPage, action: TPageMoveAction): TPage {\n switch (action.type) {\n case \"setRowCount\":\n return {\n ...state,\n rowCount: action.payload.rouCount,\n };\n case \"setPerPage\":\n return {\n ...state,\n perPage: action.payload.perPage,\n };\n case \"next\":\n if (state.currentPage === Math.ceil(state.rowCount / state.perPage)) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage + 1,\n };\n case \"prev\":\n if (state.currentPage === 1) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage - 1,\n };\n case \"jump\":\n if (\n action.payload.pageNumber < 1 ||\n action.payload.pageNumber > Math.ceil(state.rowCount / state.perPage) ||\n state.currentPage === action.payload.pageNumber\n ) {\n return state;\n }\n\n return {\n ...state,\n currentPage: action.payload.pageNumber,\n };\n default:\n return state;\n }\n}\n\nconst InitialPageState: TPage = {\n perPage: 50,\n currentPage: 1,\n rowCount: 0,\n};\n\nexport function usePageReducer(initialState?: TPage) {\n const [state, dispatch] = useReducer(\n pageReducer,\n initialState ?? InitialPageState\n );\n\n const next = useCallback(() => dispatch({ type: \"next\" }), [dispatch]);\n const prev = useCallback(() => dispatch({ type: \"prev\" }), [dispatch]);\n const jump = useCallback(\n (pageNumber: number) => dispatch({ type: \"jump\", payload: { pageNumber } }),\n [dispatch]\n );\n const setRowCount = useCallback(\n (rouCount: number) =>\n dispatch({ type: \"setRowCount\", payload: { rouCount } }),\n [dispatch]\n );\n\n return {\n perPage: state.perPage,\n currentPage: state.currentPage,\n rowCount: state.rowCount,\n pageCount: Math.ceil(state.rowCount / state.perPage),\n from: (state.currentPage - 1) * state.perPage,\n to: state.currentPage * state.perPage,\n next,\n prev,\n jump,\n setRowCount,\n };\n}\n\ntype TPropsPagenation = {\n count: number;\n current: number;\n jump: (pageNumber: number) => void;\n next: () => void;\n prev: () => void;\n};\n\nexport const Pagenation = memo(function TablePagenation(\n props: TPropsPagenation\n) {\n return (\n <div className=\"flex justify-center gap-2\">\n <button\n className=\"text-sm\"\n onClick={() => props.jump(1)}\n disabled={props.current === 1}\n >\n ≪\n </button>\n <button\n className=\"text-sm\"\n onClick={() => props.prev()}\n disabled={props.current === 1}\n >\n <\n </button>\n {Array.from({ length: props.count }, (_, i) => i + 1)\n .filter((i) => props.current - 2 <= i && i <= props.current + 2)\n .map((i) => (\n <button\n key={i}\n className={`text-sm ${props.current === i ? \"text-blue-600\" : \"\"}`}\n onClick={() => props.jump(i)}\n >\n {i}\n </button>\n ))}\n <button\n className=\"text-sm\"\n onClick={() => props.next()}\n disabled={props.current === props.count}\n >\n >\n </button>\n <button\n className=\"text-sm\"\n onClick={() => props.jump(props.count)}\n disabled={props.current === props.count}\n >\n ≫\n </button>\n </div>\n );\n});\n"],"names":["pageReducer","state","action","type","__assign","rowCount","payload","rouCount","perPage","currentPage","Math","ceil","pageNumber","InitialPageState","usePageReducer","initialState","_a","useReducer","dispatch","next","useCallback","prev","jump","setRowCount","pageCount","from","to","Pagenation","memo","props","_jsxs","className","_jsx","onClick","disabled","current","children","Array","length","count","_","i","filter","map","concat"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sort-icon.js","sources":["../../../../src/table/sort-icon.tsx"],"sourcesContent":["import { memo } from \"react\";\n\ntype TPropsSortIcon = {\n sortOrder?: \"ASC\" | \"DESC\";\n isSortActive?: boolean;\n size?: number;\n};\n\nconst SortIcon = memo(function SI(props: TPropsSortIcon) {\n const size = props.size || 16;\n const order = props.sortOrder || \"ASC\";\n\n return (\n <div\n className=\"relative\"\n style={{ width: `${size}px`, height: `${size}px` }}\n >\n <div\n className={`absolute top-1/2 right-0 w-[40%] h-[20%] duration-300 ${\n order === \"ASC\" ? \"-translate-y-[250%]\" : \"translate-y-[150%]\"\n } ${\n props.isSortActive\n ? \"bg-gray-700\"\n : \"bg-gray-200 border border-gray-500\"\n }`}\n ></div>\n <div\n className={`absolute top-1/2 right-0 w-[70%] h-[20%] duration-300 -translate-y-1/2 ${\n props.isSortActive\n ? \"bg-gray-700\"\n : \"bg-gray-200 border border-gray-500\"\n }`}\n ></div>\n <div\n className={`absolute top-1/2 right-0 w-full h-[20%] duration-300 ${\n order === \"ASC\" ? \"translate-y-[150%]\" : \"-translate-y-[250%]\"\n } ${\n props.isSortActive\n ? \"bg-gray-700\"\n : \"bg-gray-200 border border-gray-500\"\n }`}\n ></div>\n </div>\n );\n});\n\nexport { SortIcon };\n"],"names":["SortIcon","memo","props","size","order","sortOrder","_jsxs","className","style","width","height","children","_jsx","concat","isSortActive"],"mappings":"+EAQA,IAAMA,EAAWC,GAAK,SAAYC,GAChC,IAAMC,EAAOD,EAAMC,MAAQ,GACrBC,EAAQF,EAAMG,WAAa,MAEjC,OACEC,EACE,MAAA,CAAAC,UAAU,WACVC,MAAO,CAAEC,MAAO,UAAGN,EAAI,MAAMO,OAAQ,UAAGP,EAAI,OAAMQ,SAAA,CAElDC,SACEL,UAAW,gEACC,QAAVH,EAAkB,sBAAwB,qBAE1C,KAAAS,OAAAX,EAAMY,aACF,cACA,wCAGRF,EACE,MAAA,CAAAL,UAAW,2EAAAM,OACTX,EAAMY,aACF,cACA,wCAGRF,EACE,MAAA,CAAAL,UAAW,wDAAAM,OACC,QAAVT,EAAkB,qBAAuB,sBAAqB,MAAAS,OAE9DX,EAAMY,aACF,cACA,0CAKd"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{jsx as r}from"react/jsx-runtime";import{SortIcon as o}from"./sort-icon.js";function i(i){return r("div",{onClick:i.onClick,className:"cursor-pointer",children:r(o,{sortOrder:i.isSortedByThis?i.sortOrder:"ASC",isSortActive:i.isSortedByThis})})}export{i as Sort};
|
|
2
|
-
//# sourceMappingURL=sort.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sort.js","sources":["../../../../src/table/sort.tsx"],"sourcesContent":["import { SortIcon } from \"./sort-icon\";\n\ntype TPropsSort = {\n onClick: (e: React.MouseEvent<HTMLDivElement>) => void;\n isSortedByThis: boolean;\n sortOrder: \"ASC\" | \"DESC\";\n};\n\nexport function Sort(props: TPropsSort) {\n return (\n <div onClick={props.onClick} className=\"cursor-pointer\">\n <SortIcon\n sortOrder={props.isSortedByThis ? props.sortOrder : \"ASC\"}\n isSortActive={props.isSortedByThis}\n />\n </div>\n );\n}\n"],"names":["Sort","props","_jsx","onClick","className","children","SortIcon","sortOrder","isSortedByThis","isSortActive"],"mappings":"kFAQM,SAAUA,EAAKC,GACnB,OACEC,EAAK,MAAA,CAAAC,QAASF,EAAME,QAASC,UAAU,iBACrCC,SAAAH,EAACI,EACC,CAAAC,UAAWN,EAAMO,eAAiBP,EAAMM,UAAY,MACpDE,aAAcR,EAAMO,kBAI5B"}
|
|
File without changes
|
|
File without changes
|