@teppen/react-ui 1.8.6 → 1.8.8

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 (48) hide show
  1. package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js +1 -1
  2. package/dist/cjs/src/search-bar/condition-search-bar/input-form.js +1 -1
  3. package/dist/cjs/src/select-box/options-window/component.js +1 -1
  4. package/dist/cjs/src/select-box/options-window/component.js.map +1 -1
  5. package/dist/cjs/src/share/search-operator/constant.js +1 -1
  6. package/dist/cjs/src/share/search-operator/constant.js.map +1 -1
  7. package/dist/cjs/src/table/cell/hooks.js +1 -1
  8. package/dist/cjs/src/table/cell/hooks.js.map +1 -1
  9. package/dist/cjs/src/table/copy/hooks.js +1 -1
  10. package/dist/cjs/src/table/copy/hooks.js.map +1 -1
  11. package/dist/cjs/src/table/edit/ui/base-input.js +1 -1
  12. package/dist/cjs/src/table/filter-v2/hook.js +1 -1
  13. package/dist/cjs/src/table/filter-v2/hook.js.map +1 -1
  14. package/dist/cjs/src/table/header/header-v2.js +1 -1
  15. package/dist/cjs/src/table/header/header-v2.js.map +1 -1
  16. package/dist/cjs/src/table/libs/generate-validate-function.js +1 -1
  17. package/dist/cjs/src/table/libs/generate-validate-function.js.map +1 -1
  18. package/dist/cjs/src/table/operation/components/keyboard-setting.js +1 -1
  19. package/dist/cjs/src/table/range/hooks.js +1 -1
  20. package/dist/cjs/src/table/range/hooks.js.map +1 -1
  21. package/dist/cjs/src/table/range/provider.js +1 -1
  22. package/dist/cjs/src/table/range/provider.js.map +1 -1
  23. package/dist/cjs/src/table/table/hook.js.map +1 -1
  24. package/dist/esm/src/search-bar/condition-search-bar/condition-list.js +1 -1
  25. package/dist/esm/src/search-bar/condition-search-bar/input-form.js +1 -1
  26. package/dist/esm/src/select-box/options-window/component.js +1 -1
  27. package/dist/esm/src/select-box/options-window/component.js.map +1 -1
  28. package/dist/esm/src/share/search-operator/constant.js +1 -1
  29. package/dist/esm/src/share/search-operator/constant.js.map +1 -1
  30. package/dist/esm/src/table/cell/hooks.js +1 -1
  31. package/dist/esm/src/table/cell/hooks.js.map +1 -1
  32. package/dist/esm/src/table/copy/hooks.js +1 -1
  33. package/dist/esm/src/table/copy/hooks.js.map +1 -1
  34. package/dist/esm/src/table/edit/ui/base-input.js +1 -1
  35. package/dist/esm/src/table/filter-v2/hook.js +1 -1
  36. package/dist/esm/src/table/filter-v2/hook.js.map +1 -1
  37. package/dist/esm/src/table/header/header-v2.js +1 -1
  38. package/dist/esm/src/table/header/header-v2.js.map +1 -1
  39. package/dist/esm/src/table/libs/generate-validate-function.js +1 -1
  40. package/dist/esm/src/table/libs/generate-validate-function.js.map +1 -1
  41. package/dist/esm/src/table/operation/components/keyboard-setting.js +1 -1
  42. package/dist/esm/src/table/range/hooks.js +1 -1
  43. package/dist/esm/src/table/range/hooks.js.map +1 -1
  44. package/dist/esm/src/table/range/provider.js +1 -1
  45. package/dist/esm/src/table/range/provider.js.map +1 -1
  46. package/dist/esm/src/table/table/hook.js.map +1 -1
  47. package/dist/index.d.ts +22 -5
  48. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("./condition-input-management/context.js");require("react"),require("../../../node_modules/tslib/tslib.es6.js");var n=require("../../../node_modules/react-icons/ti/index.js");function a(a){var o=t.useConditionInputAction().deleteCondition;return e.jsxs("div",{className:"flex items-center gap-2 w-fit px-2 border-2 border-sky-600 rounded shadow",children:[e.jsx("p",{className:"whitespace-nowrap",children:r(a.condition)}),e.jsx("div",{children:e.jsx(n.TiDeleteOutline,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:function(){return o(a.index)}})})]})}function r(e){var t;switch(e.input.type){case"none":return"".concat(e.target.label," ").concat(e.operator.label);case"single string":case"single number":case"single date":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value);case"range string":case"range number":case"range date":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.from," ~ ").concat(e.input.payload.to);case"select":if("select"!==e.target.type)throw new Error("type error");var n=e.input.payload.value;return"".concat(e.target.label," ").concat(e.operator.label," ").concat(null===(t=e.target.options.find((function(e){return e.value===n})))||void 0===t?void 0:t.label);case"multi select":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value.join(", "))}}exports.ConditionList=function(t){return e.jsx("div",{className:"flex gap-1",children:t.conditions.map((function(t,n){return e.jsx(a,{index:n,condition:t},n)}))})};
2
+ "use strict";var e=require("react/jsx-runtime"),t=require("./condition-input-management/context.js");require("react"),require("../../../node_modules/tslib/tslib.es6.js");var a=require("../../../node_modules/react-icons/ti/index.js");function n(n){var o=t.useConditionInputAction().deleteCondition;return e.jsxs("div",{className:"flex items-center gap-2 w-fit px-2 border-2 border-sky-600 rounded shadow",children:[e.jsx("p",{className:"whitespace-nowrap",children:r(n.condition)}),e.jsx("div",{children:e.jsx(a.TiDeleteOutline,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:function(){return o(n.index)}})})]})}function r(e){var t;switch(e.input.type){case"none":return"".concat(e.target.label," ").concat(e.operator.label);case"single string":case"single number":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value);case"single date":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value.toLocaleDateString());case"single datetime":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value.toLocaleString());case"range string":case"range number":case"range date":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.from," ~ ").concat(e.input.payload.to);case"select":if("select"!==e.target.type)throw new Error("type error");var a=e.input.payload.value;return"".concat(e.target.label," ").concat(e.operator.label," ").concat(null===(t=e.target.options.find((function(e){return e.value===a})))||void 0===t?void 0:t.label);case"multi select":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value.join(", "))}}exports.ConditionList=function(t){return e.jsx("div",{className:"flex gap-1",children:t.conditions.map((function(t,a){return e.jsx(n,{index:a,condition:t},a)}))})};
3
3
  //# sourceMappingURL=condition-list.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../../select-box/index.js"),i=require("./condition-input-management/context.js");require("../../../node_modules/tslib/tslib.es6.js");var o=require("../id-generator/context.js"),r=require("../../../node_modules/react-icons/ti/index.js");function a(){var t=o.useIdGenerator().generateId,r=i.useConditionInputState().targets,a=i.useConditionInputAction().inputTarget;return e.jsx(n.SelectBox,{id:t("TargetInput"),onSelect:function(e){a(e)},options:r.map((function(e){return{value:e.key,label:e.label}})),placeholder:"Select target",no_appearance:!0,no_icon:!0})}function u(){var t=o.useIdGenerator().generateId,r=i.useConditionInputState(),a=i.useConditionInputAction(),u=a.inputOperator,l=a.removeInputedTarget;if("inputted target"!==r.status)return null;var s=r.inputtingCondition.target,p=r.useableOperators;return e.jsxs(e.Fragment,{children:[e.jsx(d,{label:s.label,onClickDelete:function(){l()}}),e.jsx("div",{className:"w-full min-w-64",children:e.jsx(n.SelectBox,{id:t("OperatorInput"),onSelect:function(e){u(e),setTimeout((function(){var e=document.getElementById(t("ValueInput"));e&&e.focus()}),10)},options:p.map((function(e){return{value:e.key,label:e.label}})),defaultIsOpen:!0,placeholder:"Select operator",no_appearance:!0,no_icon:!0})})]})}function l(t){var n=i.useConditionInputState(),o=i.useConditionInputAction(),r=o.removeInputedOperator,a=o.removeInputedTarget;if("inputted operator"!==n.status)return null;var u=n.inputtingCondition.target,l=n.inputtingCondition.operator;return e.jsxs(e.Fragment,{children:[e.jsx(d,{label:u.label,onClickDelete:function(){a()}}),e.jsx(d,{label:l.label,onClickDelete:function(){r()}}),"single string"===n.inputtingCondition.operator.inputType?e.jsx(s,{inputType:"single string",size:t.size}):"single number"===n.inputtingCondition.operator.inputType?e.jsx(p,{inputType:"single number",size:t.size}):"select"===n.inputtingCondition.operator.inputType?e.jsx(c,{inputType:"select",options:"select"===n.inputtingCondition.target.type?n.inputtingCondition.target.options:[]}):console.error("Not implemented")]})}function s(n){var r=o.useIdGenerator().generateId,a=t.useState(""),u=a[0],l=a[1],s=i.useConditionInputAction().inputValue;return e.jsx("input",{id:r("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===n.size?"text-sm":"large"===n.size?"text-lg":""),type:"text",placeholder:"Search text",value:u,onChange:function(e){l(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(s({type:n.inputType,payload:{value:u}}),l(""))}})}function p(n){var r=o.useIdGenerator().generateId,a=t.useState(""),u=a[0],l=a[1],s=i.useConditionInputAction().inputValue;return e.jsx("input",{id:r("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===n.size?"text-sm":"large"===n.size?"text-lg":""),type:"text",placeholder:"Search text",value:u,onChange:function(e){l(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(s({type:n.inputType,payload:{value:Number(u)}}),l(""))}})}function c(t){var r=i.useConditionInputAction().inputValue,a=o.useIdGenerator().generateId;return e.jsx("div",{className:"w-full min-w-64",children:e.jsx(n.SelectBox,{id:a("ValueInput"),onSelect:function(e){r({type:t.inputType,payload:{value:e}})},options:t.options,defaultIsOpen:!0,placeholder:"Select value",no_appearance:!0,no_icon:!0})})}function d(t){return e.jsxs("div",{className:"flex items-center gap-2 w-fit px-2 border rounded bg-slate-100",children:[e.jsx("p",{className:"whitespace-nowrap",children:t.label}),t.onClickDelete&&e.jsx("div",{children:e.jsx(r.TiDeleteOutline,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:t.onClickDelete})})]})}exports.SearchBarInputForm=function(t){switch(i.useConditionInputState().status){case"waiting for input":return e.jsx(a,{});case"inputted target":return e.jsx(u,{});case"inputted operator":return e.jsx(l,{size:t.size})}};
2
+ "use strict";var e=require("react/jsx-runtime"),n=require("react"),t=require("../../select-box/index.js"),i=require("./condition-input-management/context.js");require("../../../node_modules/tslib/tslib.es6.js");var o=require("../id-generator/context.js"),r=require("../../../node_modules/react-icons/ti/index.js");function u(){var n=o.useIdGenerator().generateId,r=i.useConditionInputState().targets,u=i.useConditionInputAction().inputTarget;return e.jsx(t.SelectBox,{id:n("TargetInput"),onSelect:function(e){u(e)},options:r.map((function(e){return{value:e.key,label:e.label}})),placeholder:"Select target",no_appearance:!0,no_icon:!0})}function a(){var n=o.useIdGenerator().generateId,r=i.useConditionInputState(),u=i.useConditionInputAction(),a=u.inputOperator,l=u.removeInputedTarget;if("inputted target"!==r.status)return null;var s=r.inputtingCondition.target,p=r.useableOperators;return e.jsxs(e.Fragment,{children:[e.jsx(g,{label:s.label,onClickDelete:function(){l()}}),e.jsx("div",{className:"w-full min-w-64",children:e.jsx(t.SelectBox,{id:n("OperatorInput"),onSelect:function(e){a(e),setTimeout((function(){var e=document.getElementById(n("ValueInput"));e&&e.focus()}),10)},options:p.map((function(e){return{value:e.key,label:e.label}})),defaultIsOpen:!0,placeholder:"Select operator",no_appearance:!0,no_icon:!0})})]})}function l(n){var t=i.useConditionInputState(),o=i.useConditionInputAction(),r=o.removeInputedOperator,u=o.removeInputedTarget;if("inputted operator"!==t.status)return null;var a=t.inputtingCondition.target,l=t.inputtingCondition.operator;return e.jsxs(e.Fragment,{children:[e.jsx(g,{label:a.label,onClickDelete:function(){u()}}),e.jsx(g,{label:l.label,onClickDelete:function(){r()}}),"single string"===t.inputtingCondition.operator.inputType?e.jsx(s,{inputType:t.inputtingCondition.operator.inputType,size:n.size}):"single number"===t.inputtingCondition.operator.inputType?e.jsx(p,{inputType:t.inputtingCondition.operator.inputType,size:n.size}):"select"===t.inputtingCondition.operator.inputType?e.jsx(c,{inputType:t.inputtingCondition.operator.inputType,options:"select"===t.inputtingCondition.target.type?t.inputtingCondition.target.options:[]}):"single datetime"===t.inputtingCondition.operator.inputType?e.jsx(d,{inputType:t.inputtingCondition.operator.inputType,size:n.size}):"single date"===t.inputtingCondition.operator.inputType?e.jsx(f,{inputType:t.inputtingCondition.operator.inputType,size:n.size}):console.error("Not implemented")]})}function s(t){var r=o.useIdGenerator().generateId,u=n.useState(""),a=u[0],l=u[1],s=i.useConditionInputAction().inputValue;return e.jsx("input",{id:r("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"text",placeholder:"Search text",value:a,onChange:function(e){l(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(s({type:t.inputType,payload:{value:a}}),l(""))}})}function p(t){var r=o.useIdGenerator().generateId,u=n.useState(""),a=u[0],l=u[1],s=i.useConditionInputAction().inputValue;return e.jsx("input",{id:r("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"text",placeholder:"Search text",value:a,onChange:function(e){l(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(s({type:t.inputType,payload:{value:Number(a)}}),l(""))}})}function c(n){var r=i.useConditionInputAction().inputValue,u=o.useIdGenerator().generateId;return e.jsx("div",{className:"w-full min-w-64",children:e.jsx(t.SelectBox,{id:u("ValueInput"),onSelect:function(e){r({type:n.inputType,payload:{value:e}})},options:n.options,defaultIsOpen:!0,placeholder:"Select value",no_appearance:!0,no_icon:!0})})}function d(t){var r=o.useIdGenerator().generateId,u=i.useConditionInputAction().inputValue,a=n.useRef(null);return n.useEffect((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e.jsx("input",{ref:a,id:r("ValueInput"),className:"appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"datetime-local",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,16),onKeyDown:function(e){var n,i;if("Enter"===e.key){var o=new Date(null!==(i=null===(n=a.current)||void 0===n?void 0:n.value)&&void 0!==i?i:"");if(isNaN(o.getTime()))return;u({type:t.inputType,payload:{value:o}})}},onClick:function(e){e.currentTarget.showPicker()}})}function f(t){var r=o.useIdGenerator().generateId,u=i.useConditionInputAction().inputValue,a=n.useRef(null),l=n.useRef(!1);return n.useEffect((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e.jsx("input",{ref:a,id:r("ValueInput"),className:"appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"date",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,10),onKeyDown:function(e){var n;if("Enter"===e.key){if(!(null===(n=a.current)||void 0===n?void 0:n.value))return;var i=a.current.value.split("-"),o=i[0],r=i[1],l=i[2],s=new Date(Number(o),Number(r)-1,Number(l));if(isNaN(s.getTime()))return;u({type:t.inputType,payload:{value:s}})}},onClick:function(e){l.current||(e.currentTarget.showPicker(),l.current=!0)}})}function g(n){return e.jsxs("div",{className:"flex items-center gap-2 w-fit px-2 border rounded bg-slate-100",children:[e.jsx("p",{className:"whitespace-nowrap",children:n.label}),n.onClickDelete&&e.jsx("div",{children:e.jsx(r.TiDeleteOutline,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:n.onClickDelete})})]})}exports.SearchBarInputForm=function(n){switch(i.useConditionInputState().status){case"waiting for input":return e.jsx(u,{});case"inputted target":return e.jsx(a,{});case"inputted operator":return e.jsx(l,{size:n.size})}};
3
3
  //# sourceMappingURL=input-form.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("./context.js"),o=require("../id/provider.js"),i=require("../lib/id-generator.js");exports.OptionsArea=function(){var r=o.useIdContext(),s=n.useOptionsWindow(),l=s.state,u=s.actions,a=t.useState(""),c=a[0],d=a[1],f=t.useState(void 0),p=f[0],v=f[1],m=t.useState({top:0,left:0}),g=m[0],y=m[1],w=l.isOpen?0===l.options.length?void 0:"number"==typeof p&&p<l.options.length&&p>=0?l.options[p].value:void 0:void 0;return t.useEffect((function(){if(l.isOpen){var e=document.getElementById(i.IdGenerator.generateIdSelectBoxOption(r,null!=w?w:""));if(!e)return;if(0===g.top&&0===g.left)return;e.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}else v(void 0)}),[l,g,w]),t.useEffect((function(){if(l.isOpen){var e=function(e){if("ArrowDown"===e.key)e.preventDefault(),v((function(e){return"number"==typeof e?Math.min(e+1,l.options.length-1):0}));else if("ArrowUp"===e.key)e.preventDefault(),v((function(e){return"number"==typeof e?Math.max(e-1,0):0}));else if("Enter"===e.key){if(e.preventDefault(),"number"==typeof p){if(0===l.options.length||l.options.length<=p)return;var t=l.options[p].value;if(!t)return;d(t),l.onSelect(t),u.closeOptionsWindow()}}else"Escape"===e.key&&(e.preventDefault(),u.closeOptionsWindow())};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}}),[l,p,v,u]),t.useEffect((function(){var e=setTimeout((function(){var e;if(l.isOpen){for(var t=null===(e=document.getElementById("ReactUI:SelectBox:OptionsArea"))||void 0===e?void 0:e.parentElement,n=["relative","fixed","absolute","sticky"];t;){var o=n.some((function(e){return t.className.includes(e)})),i=n.some((function(e){return t.style.position.includes(e)}));if(o||i)break;t=t.parentElement}var r=document.getElementById(l.selectBoxId);if(r){var s=r.getBoundingClientRect(),u=s.top+s.height,a=s.left;if(t){var c=t.getBoundingClientRect();y({top:u-c.top+t.scrollTop,left:a-c.left+t.scrollLeft})}else y({top:u+window.scrollY,left:a+window.scrollX})}}}),0);return function(){clearTimeout(e)}}),[l.isOpen]),t.useEffect((function(){var e=function(e){if(l.isOpen){var t=document.getElementById(l.selectBoxId),n=document.getElementById("ReactUI:SelectBox:OptionsArea"),o=e.target;o instanceof Node&&(null==t?void 0:t.contains(o))||o instanceof Node&&(null==n?void 0:n.contains(o))||(u.setSearchText(""),u.closeOptionsWindow())}};return document.addEventListener("mousedown",e),function(){document.removeEventListener("mousedown",e)}}),[l.isOpen]),l.isOpen?e.jsx("div",{id:"ReactUI:SelectBox:OptionsArea",className:"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10",style:g,children:l.options.map((function(t){var n,o;return e.jsx("div",{id:i.IdGenerator.generateIdSelectBoxOption(r,null!==(n=t.value)&&void 0!==n?n:""),className:"hover:bg-gray-200 px-2 py-1 ".concat("string"==typeof w?w===t.value?"bg-gray-100":"bg-white":c===t.value?"bg-gray-100":"bg-white"),onClick:function(){l.onSelect(t.value),u.closeOptionsWindow()},children:null!==(o=t.searchLabel)&&void 0!==o?o:t.label},t.value)}))}):e.jsx(e.Fragment,{})};
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../id/provider.js"),o=require("../lib/id-generator.js"),i=require("./context.js");exports.OptionsArea=function(){var r=n.useIdContext(),s=i.useOptionsWindow(),l=s.state,u=s.actions,a=t.useState(""),c=a[0],d=a[1],f=t.useState(void 0),p=f[0],v=f[1],m=t.useState({top:0,left:0}),g=m[0],y=m[1],w=l.isOpen?0===l.options.length?void 0:"number"==typeof p&&p<l.options.length&&p>=0?l.options[p].value:void 0:void 0;return t.useEffect((function(){if(l.isOpen){var e=document.getElementById(o.IdGenerator.generateIdSelectBoxOption(r,null!=w?w:""));if(!e)return;if(0===g.top&&0===g.left)return;e.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}else v(void 0)}),[l,g,w]),t.useEffect((function(){if(l.isOpen){var e=function(e){if("ArrowDown"===e.key)e.preventDefault(),v((function(e){return"number"==typeof e?Math.min(e+1,l.options.length-1):0}));else if("ArrowUp"===e.key)e.preventDefault(),v((function(e){return"number"==typeof e?Math.max(e-1,0):0}));else if("Enter"===e.key){if(e.preventDefault(),"number"==typeof p){if(0===l.options.length||l.options.length<=p)return;var t=l.options[p].value;if(!t)return;d(t),l.onSelect(t),u.closeOptionsWindow()}}else"Escape"===e.key&&(e.preventDefault(),u.closeOptionsWindow())};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}}),[l,p,v,u]),t.useEffect((function(){var e=setTimeout((function(){var e;if(l.isOpen){for(var t=null===(e=document.getElementById("ReactUI:SelectBox:OptionsArea"))||void 0===e?void 0:e.parentElement,n=["relative","fixed","absolute","sticky"];t;){var o=n.some((function(e){return t.className.includes(e)})),i=n.some((function(e){return t.style.position.includes(e)}));if(o||i)break;t=t.parentElement}var r=document.getElementById(l.selectBoxId);if(r){var s=r.getBoundingClientRect(),u=s.top+s.height,a=s.left;if(t){var c=t.getBoundingClientRect();y({top:u-c.top+t.scrollTop,left:a-c.left+t.scrollLeft})}else y({top:u+window.scrollY,left:a+window.scrollX})}}}),0);return function(){clearTimeout(e)}}),[l.isOpen]),t.useEffect((function(){var e=function(e){if(l.isOpen){var t=document.getElementById(l.selectBoxId),n=document.getElementById("ReactUI:SelectBox:OptionsArea"),o=e.target;o instanceof Node&&(null==t?void 0:t.contains(o))||o instanceof Node&&(null==n?void 0:n.contains(o))||(u.setSearchText(""),u.closeOptionsWindow())}};return document.addEventListener("mousedown",e),function(){document.removeEventListener("mousedown",e)}}),[l.isOpen]),l.isOpen?e.jsx("div",{id:"ReactUI:SelectBox:OptionsArea",className:"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10",style:g,children:l.options.map((function(t){var n,i;return e.jsx("div",{id:o.IdGenerator.generateIdSelectBoxOption(r,null!==(n=t.value)&&void 0!==n?n:""),className:"hover:bg-gray-200 px-2 py-1 ".concat("string"==typeof w?w===t.value?"bg-gray-100":"bg-white":c===t.value?"bg-gray-100":"bg-white"),onClick:function(){l.onSelect(t.value),u.closeOptionsWindow()},children:null!==(i=t.searchLabel)&&void 0!==i?i:t.label},t.value)}))}):e.jsx(e.Fragment,{})};
2
2
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../../../src/select-box/options-window/component.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { useOptionsWindow } from \"../options-window\";\nimport { useIdContext } from \"../id/provider\";\nimport { IdGenerator } from \"../lib\";\n\nexport function OptionsArea() {\n const id = useIdContext();\n const { state, actions } = useOptionsWindow();\n const [value, setValue] = useState(\"\");\n const [selectingIndex, setSelectingIndex] = useState<number | undefined>(\n undefined\n );\n const [position, setPosition] = useState({ top: 0, left: 0 });\n\n const selectingValue = state.isOpen\n ? state.options.length === 0\n ? undefined\n : typeof selectingIndex === \"number\" &&\n selectingIndex < state.options.length &&\n selectingIndex >= 0\n ? state.options[selectingIndex].value\n : undefined\n : undefined;\n\n useEffect(() => {\n if (state.isOpen) {\n const optionElement = document.getElementById(\n IdGenerator.generateIdSelectBoxOption(id, selectingValue ?? \"\")\n );\n\n if (!optionElement) return;\n if (position.top === 0 && position.left === 0) return;\n\n optionElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n } else {\n setSelectingIndex(undefined);\n }\n }, [state, position, selectingValue]);\n\n useEffect(() => {\n if (state.isOpen) {\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setSelectingIndex((prev) =>\n typeof prev === \"number\"\n ? Math.min(prev + 1, state.options.length - 1)\n : 0\n );\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setSelectingIndex((prev) =>\n typeof prev === \"number\" ? Math.max(prev - 1, 0) : 0\n );\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (typeof selectingIndex === \"number\") {\n if (\n state.options.length === 0 ||\n state.options.length <= selectingIndex\n )\n return;\n\n const value = state.options[selectingIndex].value;\n\n if (!value) return;\n\n setValue(value);\n state.onSelect(value);\n actions.closeOptionsWindow();\n }\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n actions.closeOptionsWindow();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeydown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown);\n };\n }\n }, [state, selectingIndex, setSelectingIndex, actions]);\n\n useEffect(() => {\n const searchParentElement = () => {\n if (state.isOpen) {\n let parentElement = document.getElementById(\n \"ReactUI:SelectBox:OptionsArea\"\n )?.parentElement;\n\n const positionClasses = [\"relative\", \"fixed\", \"absolute\", \"sticky\"];\n\n while (parentElement) {\n const hasPositionClass = positionClasses.some((className) =>\n parentElement!.className.includes(className)\n );\n\n const hasPositionStyle = positionClasses.some((style) =>\n parentElement!.style.position.includes(style)\n );\n\n if (hasPositionClass || hasPositionStyle) break;\n\n parentElement = parentElement.parentElement;\n }\n\n const selectBoxElement = document.getElementById(state.selectBoxId);\n\n if (selectBoxElement) {\n const rect = selectBoxElement.getBoundingClientRect();\n let top = rect.top + rect.height;\n let left = rect.left;\n\n if (parentElement) {\n const parentRect = parentElement.getBoundingClientRect();\n setPosition({\n top: top - parentRect.top + parentElement.scrollTop,\n left: left - parentRect.left + parentElement.scrollLeft,\n });\n } else {\n setPosition({\n top: top + window.scrollY,\n left: left + window.scrollX,\n });\n }\n }\n }\n };\n\n const timer = setTimeout(searchParentElement, 0);\n\n return () => {\n clearTimeout(timer);\n };\n }, [state.isOpen]);\n\n useEffect(() => {\n const onClickOutOfSelectBox = (e: MouseEvent) => {\n if (!state.isOpen) return;\n\n // SelectBox関連の要素を取得\n const frameElement = document.getElementById(state.selectBoxId);\n const optionsElement = document.getElementById(\n \"ReactUI:SelectBox:OptionsArea\"\n );\n\n // クリックされた要素を取得\n const ele = e.target;\n\n if (ele instanceof Node && frameElement?.contains(ele)) return;\n\n if (ele instanceof Node && optionsElement?.contains(ele)) return;\n\n actions.setSearchText(\"\");\n actions.closeOptionsWindow();\n };\n\n document.addEventListener(\"mousedown\", onClickOutOfSelectBox);\n\n return () => {\n document.removeEventListener(\"mousedown\", onClickOutOfSelectBox);\n };\n }, [state.isOpen]);\n\n if (!state.isOpen) return <></>;\n\n return (\n <div\n id={\"ReactUI:SelectBox:OptionsArea\"}\n className=\"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10\"\n style={position}\n >\n {state.options.map((option) => (\n <div\n id={IdGenerator.generateIdSelectBoxOption(id, option.value ?? \"\")}\n className={`hover:bg-gray-200 px-2 py-1 ${\n typeof selectingValue === \"string\"\n ? selectingValue === option.value\n ? \"bg-gray-100\"\n : \"bg-white\"\n : value === option.value\n ? \"bg-gray-100\"\n : \"bg-white\"\n }`}\n key={option.value}\n onClick={() => {\n state.onSelect(option.value);\n actions.closeOptionsWindow();\n }}\n >\n {option.searchLabel ?? option.label}\n </div>\n ))}\n </div>\n );\n}\n"],"names":["id","useIdContext","_a","useOptionsWindow","state","actions","_b","useState","value","setValue","_c","undefined","selectingIndex","setSelectingIndex","_d","top","left","position","setPosition","selectingValue","isOpen","options","length","useEffect","optionElement","document","getElementById","IdGenerator","generateIdSelectBoxOption","scrollIntoView","behavior","block","inline","handleKeydown_1","e","key","preventDefault","prev","Math","min","max","value_1","onSelect","closeOptionsWindow","addEventListener","removeEventListener","timer","setTimeout","parentElement_1","parentElement","positionClasses","hasPositionClass","some","className","includes","hasPositionStyle","style","selectBoxElement","selectBoxId","rect","getBoundingClientRect","top_1","height","parentRect","scrollTop","scrollLeft","window","scrollY","scrollX","clearTimeout","onClickOutOfSelectBox","frameElement","optionsElement","ele","target","Node","contains","setSearchText","_jsx","map","option","jsx","concat","onClick","children","searchLabel","label"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../../../src/select-box/options-window/component.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { useIdContext } from \"../id/provider\";\nimport { IdGenerator } from \"../lib\";\nimport { useOptionsWindow } from \"./context\";\n\nexport function OptionsArea() {\n const id = useIdContext();\n const { state, actions } = useOptionsWindow();\n const [value, setValue] = useState(\"\");\n const [selectingIndex, setSelectingIndex] = useState<number | undefined>(\n undefined\n );\n const [position, setPosition] = useState({ top: 0, left: 0 });\n\n const selectingValue = state.isOpen\n ? state.options.length === 0\n ? undefined\n : typeof selectingIndex === \"number\" &&\n selectingIndex < state.options.length &&\n selectingIndex >= 0\n ? state.options[selectingIndex].value\n : undefined\n : undefined;\n\n useEffect(() => {\n if (state.isOpen) {\n const optionElement = document.getElementById(\n IdGenerator.generateIdSelectBoxOption(id, selectingValue ?? \"\")\n );\n\n if (!optionElement) return;\n if (position.top === 0 && position.left === 0) return;\n\n optionElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n } else {\n setSelectingIndex(undefined);\n }\n }, [state, position, selectingValue]);\n\n useEffect(() => {\n if (state.isOpen) {\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setSelectingIndex((prev) =>\n typeof prev === \"number\"\n ? Math.min(prev + 1, state.options.length - 1)\n : 0\n );\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setSelectingIndex((prev) =>\n typeof prev === \"number\" ? Math.max(prev - 1, 0) : 0\n );\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (typeof selectingIndex === \"number\") {\n if (\n state.options.length === 0 ||\n state.options.length <= selectingIndex\n )\n return;\n\n const value = state.options[selectingIndex].value;\n\n if (!value) return;\n\n setValue(value);\n state.onSelect(value);\n actions.closeOptionsWindow();\n }\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n actions.closeOptionsWindow();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeydown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown);\n };\n }\n }, [state, selectingIndex, setSelectingIndex, actions]);\n\n useEffect(() => {\n const searchParentElement = () => {\n if (state.isOpen) {\n let parentElement = document.getElementById(\n \"ReactUI:SelectBox:OptionsArea\"\n )?.parentElement;\n\n const positionClasses = [\"relative\", \"fixed\", \"absolute\", \"sticky\"];\n\n while (parentElement) {\n const hasPositionClass = positionClasses.some((className) =>\n parentElement!.className.includes(className)\n );\n\n const hasPositionStyle = positionClasses.some((style) =>\n parentElement!.style.position.includes(style)\n );\n\n if (hasPositionClass || hasPositionStyle) break;\n\n parentElement = parentElement.parentElement;\n }\n\n const selectBoxElement = document.getElementById(state.selectBoxId);\n\n if (selectBoxElement) {\n const rect = selectBoxElement.getBoundingClientRect();\n let top = rect.top + rect.height;\n let left = rect.left;\n\n if (parentElement) {\n const parentRect = parentElement.getBoundingClientRect();\n setPosition({\n top: top - parentRect.top + parentElement.scrollTop,\n left: left - parentRect.left + parentElement.scrollLeft,\n });\n } else {\n setPosition({\n top: top + window.scrollY,\n left: left + window.scrollX,\n });\n }\n }\n }\n };\n\n const timer = setTimeout(searchParentElement, 0);\n\n return () => {\n clearTimeout(timer);\n };\n }, [state.isOpen]);\n\n useEffect(() => {\n const onClickOutOfSelectBox = (e: MouseEvent) => {\n if (!state.isOpen) return;\n\n // SelectBox関連の要素を取得\n const frameElement = document.getElementById(state.selectBoxId);\n const optionsElement = document.getElementById(\n \"ReactUI:SelectBox:OptionsArea\"\n );\n\n // クリックされた要素を取得\n const ele = e.target;\n\n if (ele instanceof Node && frameElement?.contains(ele)) return;\n\n if (ele instanceof Node && optionsElement?.contains(ele)) return;\n\n actions.setSearchText(\"\");\n actions.closeOptionsWindow();\n };\n\n document.addEventListener(\"mousedown\", onClickOutOfSelectBox);\n\n return () => {\n document.removeEventListener(\"mousedown\", onClickOutOfSelectBox);\n };\n }, [state.isOpen]);\n\n if (!state.isOpen) return <></>;\n\n return (\n <div\n id={\"ReactUI:SelectBox:OptionsArea\"}\n className=\"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10\"\n style={position}\n >\n {state.options.map((option) => (\n <div\n id={IdGenerator.generateIdSelectBoxOption(id, option.value ?? \"\")}\n className={`hover:bg-gray-200 px-2 py-1 ${\n typeof selectingValue === \"string\"\n ? selectingValue === option.value\n ? \"bg-gray-100\"\n : \"bg-white\"\n : value === option.value\n ? \"bg-gray-100\"\n : \"bg-white\"\n }`}\n key={option.value}\n onClick={() => {\n state.onSelect(option.value);\n actions.closeOptionsWindow();\n }}\n >\n {option.searchLabel ?? option.label}\n </div>\n ))}\n </div>\n );\n}\n"],"names":["id","useIdContext","_a","useOptionsWindow","state","actions","_b","useState","value","setValue","_c","undefined","selectingIndex","setSelectingIndex","_d","top","left","position","setPosition","selectingValue","isOpen","options","length","useEffect","optionElement","document","getElementById","IdGenerator","generateIdSelectBoxOption","scrollIntoView","behavior","block","inline","handleKeydown_1","e","key","preventDefault","prev","Math","min","max","value_1","onSelect","closeOptionsWindow","addEventListener","removeEventListener","timer","setTimeout","parentElement_1","parentElement","positionClasses","hasPositionClass","some","className","includes","hasPositionStyle","style","selectBoxElement","selectBoxId","rect","getBoundingClientRect","top_1","height","parentRect","scrollTop","scrollLeft","window","scrollY","scrollX","clearTimeout","onClickOutOfSelectBox","frameElement","optionsElement","ele","target","Node","contains","setSearchText","_jsx","map","option","jsx","concat","onClick","children","searchLabel","label"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e="none",t="single string",n="single number",l="select",p=[{key:"string:eq",label:"=",type:"string",inputType:t},{key:"string:neq",label:"≠",type:"string",inputType:t},{key:"string:like",label:"like",type:"string",inputType:t},{key:"string:not_like",label:"not like",type:"string",inputType:t},{key:"string:is_null",label:"is empty",type:"string",inputType:e},{key:"string:is_not_null",label:"is not empty",type:"string",inputType:e},{key:"number:eq",label:"=",type:"number",inputType:n},{key:"number:neq",label:"≠",type:"number",inputType:n},{key:"number:gt",label:">",type:"number",inputType:n},{key:"number:lt",label:"<",type:"number",inputType:n},{key:"number:gte",label:"≧",type:"number",inputType:n},{key:"number:lte",label:"≦",type:"number",inputType:n},{key:"select:eq",label:"=",type:"select",inputType:l},{key:"select:neq",label:"≠",type:"select",inputType:l},{key:"select:is_null",label:"is empty",type:"select",inputType:e},{key:"select:is_not_null",label:"is not empty",type:"select",inputType:e}];exports.DEFAULT_SEARCH_OPERATOR=p,exports.NONE=e,exports.SELECT=l,exports.SINGLE_NUMBER=n,exports.SINGLE_STRING=t;
1
+ "use strict";var e="none",t="single string",l="single number",p="single date",y="single datetime",n="select",i=[{key:"string:eq",label:"=",type:"string",inputType:t},{key:"string:neq",label:"≠",type:"string",inputType:t},{key:"string:like",label:"like",type:"string",inputType:t},{key:"string:not_like",label:"not like",type:"string",inputType:t},{key:"string:is_null",label:"is empty",type:"string",inputType:e},{key:"string:is_not_null",label:"is not empty",type:"string",inputType:e},{key:"number:eq",label:"=",type:"number",inputType:l},{key:"number:neq",label:"≠",type:"number",inputType:l},{key:"number:gt",label:">",type:"number",inputType:l},{key:"number:lt",label:"<",type:"number",inputType:l},{key:"number:gte",label:"≧",type:"number",inputType:l},{key:"number:lte",label:"≦",type:"number",inputType:l},{key:"select:eq",label:"=",type:"select",inputType:n},{key:"select:neq",label:"≠",type:"select",inputType:n},{key:"select:is_null",label:"is empty",type:"select",inputType:e},{key:"select:is_not_null",label:"is not empty",type:"select",inputType:e},{key:"date:eq",label:"=",type:"date",inputType:p},{key:"date:neq",label:"≠",type:"date",inputType:p},{key:"date:gt",label:">",type:"date",inputType:p},{key:"date:lt",label:"<",type:"date",inputType:p},{key:"date:gte",label:"≧",type:"date",inputType:p},{key:"date:lte",label:"≦",type:"date",inputType:p},{key:"date:is_null",label:"is null",type:"date",inputType:e},{key:"date:is_not_null",label:"is not null",type:"date",inputType:e},{key:"datetime:gt",label:">",type:"datetime",inputType:y},{key:"datetime:lt",label:"<",type:"datetime",inputType:y},{key:"datetime:gte",label:"≧",type:"datetime",inputType:y},{key:"datetime:lte",label:"≦",type:"datetime",inputType:y},{key:"datetime:is_null",label:"is empty",type:"datetime",inputType:e},{key:"datetime:is_not_null",label:"is not empty",type:"datetime",inputType:e}];exports.DEFAULT_SEARCH_OPERATOR=i,exports.NONE=e,exports.SELECT=n,exports.SINGLE_DATE=p,exports.SINGLE_DATETIME=y,exports.SINGLE_NUMBER=l,exports.SINGLE_STRING=t;
2
2
  //# sourceMappingURL=constant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constant.js","sources":["../../../../../src/share/search-operator/constant.ts"],"sourcesContent":["export const NONE = \"none\";\nexport const SINGLE_STRING = \"single string\";\nexport const SINGLE_NUMBER = \"single number\";\nexport const SINGLE_DATE = \"single date\";\nexport const RANGE_STRING = \"range string\";\nexport const RANGE_NUMBER = \"range number\";\nexport const RANGE_DATE = \"range date\";\nexport const SELECT = \"select\";\nexport const MULTI_SELECT = \"multi select\";\n\nexport const DEFAULT_SEARCH_OPERATOR = [\n {\n key: \"string:eq\",\n label: \"=\",\n type: \"string\",\n inputType: SINGLE_STRING,\n },\n {\n key: \"string:neq\",\n label: \"≠\",\n type: \"string\",\n inputType: SINGLE_STRING,\n },\n {\n key: \"string:like\",\n label: \"like\",\n type: \"string\",\n inputType: SINGLE_STRING,\n },\n {\n key: \"string:not_like\",\n label: \"not like\",\n type: \"string\",\n inputType: SINGLE_STRING,\n },\n // { key: \"string:in\", label: \"in\", type: \"string\" },\n // { key: \"string:not_in\", label: \"not in\", type: \"string\" },\n {\n key: \"string:is_null\",\n label: \"is empty\",\n type: \"string\",\n inputType: NONE,\n },\n {\n key: \"string:is_not_null\",\n label: \"is not empty\",\n type: \"string\",\n inputType: NONE,\n },\n {\n key: \"number:eq\",\n label: \"=\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"number:neq\",\n label: \"≠\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"number:gt\",\n label: \">\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"number:lt\",\n label: \"<\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"number:gte\",\n label: \"≧\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"number:lte\",\n label: \"≦\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"select:eq\",\n label: \"=\",\n type: \"select\",\n inputType: SELECT,\n },\n {\n key: \"select:neq\",\n label: \"≠\",\n type: \"select\",\n inputType: SELECT,\n },\n {\n key: \"select:is_null\",\n label: \"is empty\",\n type: \"select\",\n inputType: NONE,\n },\n {\n key: \"select:is_not_null\",\n label: \"is not empty\",\n type: \"select\",\n inputType: NONE,\n },\n // { key: \"date:eq\", label: \"=\", type: \"date\" },\n // { key: \"date:neq\", label: \"≠\", type: \"date\" },\n // { key: \"date:gt\", label: \">\", type: \"date\" },\n // { key: \"date:lt\", label: \"<\", type: \"date\" },\n // { key: \"date:gte\", label: \">=\", type: \"date\" },\n // { key: \"date:lte\", label: \"<=\", type: \"date\" },\n // { key: \"date:is_null\", label: \"is null\", type: \"date\" },\n // { key: \"date:is_not_null\", label: \"is not null\", type: \"date\" },\n] as const;\n\nexport type T_DEFAULT_SEARCH_OPERATOR =\n (typeof DEFAULT_SEARCH_OPERATOR)[number];\n\nexport type T_SEARCH_INPUT_TYPE = T_DEFAULT_SEARCH_OPERATOR[\"inputType\"];\n"],"names":["NONE","SINGLE_STRING","SINGLE_NUMBER","SELECT","DEFAULT_SEARCH_OPERATOR","key","label","type","inputType"],"mappings":"aAAO,IAAMA,EAAO,OACPC,EAAgB,gBAChBC,EAAgB,gBAKhBC,EAAS,SAGTC,EAA0B,CACrC,CACEC,IAAK,YACLC,MAAO,IACPC,KAAM,SACNC,UAAWP,GAEb,CACEI,IAAK,aACLC,MAAO,IACPC,KAAM,SACNC,UAAWP,GAEb,CACEI,IAAK,cACLC,MAAO,OACPC,KAAM,SACNC,UAAWP,GAEb,CACEI,IAAK,kBACLC,MAAO,WACPC,KAAM,SACNC,UAAWP,GAIb,CACEI,IAAK,iBACLC,MAAO,WACPC,KAAM,SACNC,UAAWR,GAEb,CACEK,IAAK,qBACLC,MAAO,eACPC,KAAM,SACNC,UAAWR,GAEb,CACEK,IAAK,YACLC,MAAO,IACPC,KAAM,SACNC,UAAWN,GAEb,CACEG,IAAK,aACLC,MAAO,IACPC,KAAM,SACNC,UAAWN,GAEb,CACEG,IAAK,YACLC,MAAO,IACPC,KAAM,SACNC,UAAWN,GAEb,CACEG,IAAK,YACLC,MAAO,IACPC,KAAM,SACNC,UAAWN,GAEb,CACEG,IAAK,aACLC,MAAO,IACPC,KAAM,SACNC,UAAWN,GAEb,CACEG,IAAK,aACLC,MAAO,IACPC,KAAM,SACNC,UAAWN,GAEb,CACEG,IAAK,YACLC,MAAO,IACPC,KAAM,SACNC,UAAWL,GAEb,CACEE,IAAK,aACLC,MAAO,IACPC,KAAM,SACNC,UAAWL,GAEb,CACEE,IAAK,iBACLC,MAAO,WACPC,KAAM,SACNC,UAAWR,GAEb,CACEK,IAAK,qBACLC,MAAO,eACPC,KAAM,SACNC,UAAWR"}
1
+ {"version":3,"file":"constant.js","sources":["../../../../../src/share/search-operator/constant.ts"],"sourcesContent":["export const NONE = \"none\";\nexport const SINGLE_STRING = \"single string\";\nexport const SINGLE_NUMBER = \"single number\";\nexport const SINGLE_DATE = \"single date\";\nexport const SINGLE_DATETIME = \"single datetime\";\nexport const RANGE_STRING = \"range string\";\nexport const RANGE_NUMBER = \"range number\";\nexport const RANGE_DATE = \"range date\";\nexport const SELECT = \"select\";\nexport const MULTI_SELECT = \"multi select\";\n\nexport const DEFAULT_SEARCH_OPERATOR = [\n {\n key: \"string:eq\",\n label: \"=\",\n type: \"string\",\n inputType: SINGLE_STRING,\n },\n {\n key: \"string:neq\",\n label: \"≠\",\n type: \"string\",\n inputType: SINGLE_STRING,\n },\n {\n key: \"string:like\",\n label: \"like\",\n type: \"string\",\n inputType: SINGLE_STRING,\n },\n {\n key: \"string:not_like\",\n label: \"not like\",\n type: \"string\",\n inputType: SINGLE_STRING,\n },\n // { key: \"string:in\", label: \"in\", type: \"string\" },\n // { key: \"string:not_in\", label: \"not in\", type: \"string\" },\n {\n key: \"string:is_null\",\n label: \"is empty\",\n type: \"string\",\n inputType: NONE,\n },\n {\n key: \"string:is_not_null\",\n label: \"is not empty\",\n type: \"string\",\n inputType: NONE,\n },\n {\n key: \"number:eq\",\n label: \"=\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"number:neq\",\n label: \"≠\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"number:gt\",\n label: \">\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"number:lt\",\n label: \"<\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"number:gte\",\n label: \"≧\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"number:lte\",\n label: \"≦\",\n type: \"number\",\n inputType: SINGLE_NUMBER,\n },\n {\n key: \"select:eq\",\n label: \"=\",\n type: \"select\",\n inputType: SELECT,\n },\n {\n key: \"select:neq\",\n label: \"≠\",\n type: \"select\",\n inputType: SELECT,\n },\n {\n key: \"select:is_null\",\n label: \"is empty\",\n type: \"select\",\n inputType: NONE,\n },\n {\n key: \"select:is_not_null\",\n label: \"is not empty\",\n type: \"select\",\n inputType: NONE,\n },\n { key: \"date:eq\", label: \"=\", type: \"date\", inputType: SINGLE_DATE },\n { key: \"date:neq\", label: \"≠\", type: \"date\", inputType: SINGLE_DATE },\n { key: \"date:gt\", label: \">\", type: \"date\", inputType: SINGLE_DATE },\n { key: \"date:lt\", label: \"<\", type: \"date\", inputType: SINGLE_DATE },\n { key: \"date:gte\", label: \"≧\", type: \"date\", inputType: SINGLE_DATE },\n { key: \"date:lte\", label: \"≦\", type: \"date\", inputType: SINGLE_DATE },\n { key: \"date:is_null\", label: \"is null\", type: \"date\", inputType: NONE },\n {\n key: \"date:is_not_null\",\n label: \"is not null\",\n type: \"date\",\n inputType: NONE,\n },\n {\n key: \"datetime:gt\",\n label: \">\",\n type: \"datetime\",\n inputType: SINGLE_DATETIME,\n },\n {\n key: \"datetime:lt\",\n label: \"<\",\n type: \"datetime\",\n inputType: SINGLE_DATETIME,\n },\n {\n key: \"datetime:gte\",\n label: \"≧\",\n type: \"datetime\",\n inputType: SINGLE_DATETIME,\n },\n {\n key: \"datetime:lte\",\n label: \"≦\",\n type: \"datetime\",\n inputType: SINGLE_DATETIME,\n },\n {\n key: \"datetime:is_null\",\n label: \"is empty\",\n type: \"datetime\",\n inputType: NONE,\n },\n {\n key: \"datetime:is_not_null\",\n label: \"is not empty\",\n type: \"datetime\",\n inputType: NONE,\n },\n] as const;\n\nexport type T_DEFAULT_SEARCH_OPERATOR =\n (typeof DEFAULT_SEARCH_OPERATOR)[number];\n\nexport type T_SEARCH_INPUT_TYPE = T_DEFAULT_SEARCH_OPERATOR[\"inputType\"];\n"],"names":["NONE","SINGLE_STRING","SINGLE_NUMBER","SINGLE_DATE","SINGLE_DATETIME","SELECT","DEFAULT_SEARCH_OPERATOR","key","label","type","inputType"],"mappings":"aAAO,IAAMA,EAAO,OACPC,EAAgB,gBAChBC,EAAgB,gBAChBC,EAAc,cACdC,EAAkB,kBAIlBC,EAAS,SAGTC,EAA0B,CACrC,CACEC,IAAK,YACLC,MAAO,IACPC,KAAM,SACNC,UAAWT,GAEb,CACEM,IAAK,aACLC,MAAO,IACPC,KAAM,SACNC,UAAWT,GAEb,CACEM,IAAK,cACLC,MAAO,OACPC,KAAM,SACNC,UAAWT,GAEb,CACEM,IAAK,kBACLC,MAAO,WACPC,KAAM,SACNC,UAAWT,GAIb,CACEM,IAAK,iBACLC,MAAO,WACPC,KAAM,SACNC,UAAWV,GAEb,CACEO,IAAK,qBACLC,MAAO,eACPC,KAAM,SACNC,UAAWV,GAEb,CACEO,IAAK,YACLC,MAAO,IACPC,KAAM,SACNC,UAAWR,GAEb,CACEK,IAAK,aACLC,MAAO,IACPC,KAAM,SACNC,UAAWR,GAEb,CACEK,IAAK,YACLC,MAAO,IACPC,KAAM,SACNC,UAAWR,GAEb,CACEK,IAAK,YACLC,MAAO,IACPC,KAAM,SACNC,UAAWR,GAEb,CACEK,IAAK,aACLC,MAAO,IACPC,KAAM,SACNC,UAAWR,GAEb,CACEK,IAAK,aACLC,MAAO,IACPC,KAAM,SACNC,UAAWR,GAEb,CACEK,IAAK,YACLC,MAAO,IACPC,KAAM,SACNC,UAAWL,GAEb,CACEE,IAAK,aACLC,MAAO,IACPC,KAAM,SACNC,UAAWL,GAEb,CACEE,IAAK,iBACLC,MAAO,WACPC,KAAM,SACNC,UAAWV,GAEb,CACEO,IAAK,qBACLC,MAAO,eACPC,KAAM,SACNC,UAAWV,GAEb,CAAEO,IAAK,UAAWC,MAAO,IAAKC,KAAM,OAAQC,UAAWP,GACvD,CAAEI,IAAK,WAAYC,MAAO,IAAKC,KAAM,OAAQC,UAAWP,GACxD,CAAEI,IAAK,UAAWC,MAAO,IAAKC,KAAM,OAAQC,UAAWP,GACvD,CAAEI,IAAK,UAAWC,MAAO,IAAKC,KAAM,OAAQC,UAAWP,GACvD,CAAEI,IAAK,WAAYC,MAAO,IAAKC,KAAM,OAAQC,UAAWP,GACxD,CAAEI,IAAK,WAAYC,MAAO,IAAKC,KAAM,OAAQC,UAAWP,GACxD,CAAEI,IAAK,eAAgBC,MAAO,UAAWC,KAAM,OAAQC,UAAWV,GAClE,CACEO,IAAK,mBACLC,MAAO,cACPC,KAAM,OACNC,UAAWV,GAEb,CACEO,IAAK,cACLC,MAAO,IACPC,KAAM,WACNC,UAAWN,GAEb,CACEG,IAAK,cACLC,MAAO,IACPC,KAAM,WACNC,UAAWN,GAEb,CACEG,IAAK,eACLC,MAAO,IACPC,KAAM,WACNC,UAAWN,GAEb,CACEG,IAAK,eACLC,MAAO,IACPC,KAAM,WACNC,UAAWN,GAEb,CACEG,IAAK,mBACLC,MAAO,WACPC,KAAM,WACNC,UAAWV,GAEb,CACEO,IAAK,uBACLC,MAAO,eACPC,KAAM,WACNC,UAAWV"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),t=require("../edit/provider.js"),n=require("../sheet/providers.js"),o=require("../range/provider.js"),r=require("../id/provider.js");exports.useCell=function(i,u){var d,s,l=r.useTableIdGenerator(),a=o.useRangeActionContext(),c=a.startSelectRange,p=a.moveSelectRange,v=a.endSelectRange,m=t.useEditActionContext().startEditing,f=l.extractCellIndexFromId(i),g=f[0],x=f[1],I=n.useColumnsContext()[x],C=u[I.key],E="select"===I.type?null===(s=null===(d=I.options)||void 0===d?void 0:d.find((function(e){return e.value===C})))||void 0===s?void 0:s.label:C,b=e.useMemo((function(){return I.editable?E:I.render?I.render(C,u):E}),[I.editable,E,C,u]);return{type:!I.editable&&I.render?"component":I.type,component:b,onDoubleClick:function(e){e.preventDefault(),m()},onMouseDown:function(e){document.getElementById(l.getEditorId())||setTimeout((function(){c({rowIndex:g,colIndex:x});var e=function(t){t.preventDefault(),t.stopPropagation(),v(),document.removeEventListener("mouseup",e)};document.addEventListener("mouseup",e)}),0)},onMouseEnter:function(e){e.preventDefault(),e.stopPropagation(),p({rowIndex:g,colIndex:x})}}};
1
+ "use strict";var e=require("react"),t=require("../edit/provider.js"),n=require("../sheet/providers.js"),o=require("../range/provider.js"),r=require("../id/provider.js");exports.useCell=function(i,u){var d,a,l,s=r.useTableIdGenerator(),c=o.useRangeActionContext(),p=c.startSelectRange,v=c.moveSelectRange,m=c.endSelectRange,f=t.useEditActionContext().startEditing,g=s.extractCellIndexFromId(i),x=g[0],y=g[1],I=n.useColumnsContext()[y],C=u[I.key],D="select"===I.type?null!==(l=null===(a=null===(d=I.options)||void 0===d?void 0:d.find((function(e){return e.value===C})))||void 0===a?void 0:a.label)&&void 0!==l?l:"":"date"===I.type||"datetime"===I.type?I.render(C instanceof Date?C:new Date(C)):C,E=e.useMemo((function(){return"date"===I.type||"datetime"===I.type||I.editable?D:I.render?I.render(C,u):D}),[I.editable,D,C,u]);return{type:!I.editable&&I.render?"component":I.type,component:E,onDoubleClick:function(e){e.preventDefault(),f()},onMouseDown:function(e){document.getElementById(s.getEditorId())||setTimeout((function(){p({rowIndex:x,colIndex:y});var e=function(t){t.preventDefault(),t.stopPropagation(),m(),document.removeEventListener("mouseup",e)};document.addEventListener("mouseup",e)}),0)},onMouseEnter:function(e){e.preventDefault(),e.stopPropagation(),v({rowIndex:x,colIndex:y})}}};
2
2
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/cell/hooks.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useEditActionContext } from \"../edit/provider\";\nimport { useColumnsContext } from \"../sheet/providers\";\nimport { DataObject, DataRecord, TColumnType } from \"../table/type\";\nimport { useRangeActionContext } from \"../range/provider\";\nimport { useTableIdGenerator } from \"../id\";\n\nexport function useCell(id: string, row: DataObject<DataRecord>) {\n const IdGenerator = useTableIdGenerator();\n const { startSelectRange, moveSelectRange, endSelectRange } =\n useRangeActionContext();\n const { startEditing } = useEditActionContext();\n const [rowIndex, colIndex] = IdGenerator.extractCellIndexFromId(id);\n const col = useColumnsContext()[colIndex];\n const value = row[col.key as string];\n\n const label =\n col.type === \"select\"\n ? col.options?.find((op) => op.value === value)?.label\n : value;\n\n const component = useMemo(() => {\n if (col.editable) {\n return label;\n } else {\n return col.render ? col.render(value as never, row) : label;\n }\n }, [col.editable, label, value, row]);\n\n const type: TColumnType | \"component\" =\n !col.editable && col.render ? \"component\" : col.type;\n\n const onDoubleClick: React.MouseEventHandler<HTMLDivElement> = (e) => {\n e.preventDefault();\n startEditing();\n };\n\n /**\n * onBlurよりも先に発火するため、onBlurでendEditingを呼ぶと\n * すぐにstartEditingが呼ばれてしまうため、setTimeoutで遅延させる\n * これにより、endEditingが先に呼ばれるようになる\n */\n const onMouseDown: React.MouseEventHandler<HTMLDivElement> = (e) => {\n const element = document.getElementById(IdGenerator.getEditorId());\n\n if (!!element) {\n return;\n }\n\n setTimeout(() => {\n startSelectRange({ rowIndex, colIndex });\n\n const onMouseUp = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n endSelectRange();\n document.removeEventListener(\"mouseup\", onMouseUp);\n };\n\n document.addEventListener(\"mouseup\", onMouseUp);\n }, 0);\n };\n\n const onMouseEnter: React.MouseEventHandler<HTMLDivElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n moveSelectRange({ rowIndex, colIndex });\n };\n\n return {\n type,\n component,\n onDoubleClick,\n onMouseDown,\n onMouseEnter,\n };\n}\n"],"names":["id","row","IdGenerator","useTableIdGenerator","_c","useRangeActionContext","startSelectRange","moveSelectRange","endSelectRange","startEditing","useEditActionContext","_d","extractCellIndexFromId","rowIndex","colIndex","col","useColumnsContext","value","key","label","type","_a","options","find","op","_b","component","useMemo","editable","render","onDoubleClick","e","preventDefault","onMouseDown","document","getElementById","getEditorId","setTimeout","onMouseUp","stopPropagation","removeEventListener","addEventListener","onMouseEnter"],"mappings":"yLAOgB,SAAQA,EAAYC,WAC5BC,EAAcC,EAAAA,sBACdC,EACJC,EAAAA,wBADMC,EAAgBF,EAAAE,iBAAEC,EAAeH,EAAAG,gBAAEC,EAAcJ,EAAAI,eAEjDC,EAAiBC,sCACnBC,EAAuBT,EAAYU,uBAAuBZ,GAAzDa,EAAQF,EAAA,GAAEG,OACXC,EAAMC,EAAAA,oBAAoBF,GAC1BG,EAAQhB,EAAIc,EAAIG,KAEhBC,EACS,WAAbJ,EAAIK,KAC6C,UAAlC,QAAXC,EAAAN,EAAIO,eAAO,IAAAD,OAAA,EAAAA,EAAEE,MAAK,SAACC,GAAO,OAAAA,EAAGP,QAAUA,CAAb,WAAmB,IAAAQ,OAAA,EAAAA,EAAEN,MAC/CF,EAEAS,EAAYC,EAAAA,SAAQ,WACxB,OAAIZ,EAAIa,SACCT,EAEAJ,EAAIc,OAASd,EAAIc,OAAOZ,EAAgBhB,GAAOkB,CAE1D,GAAG,CAACJ,EAAIa,SAAUT,EAAOF,EAAOhB,IA0ChC,MAAO,CACLmB,MAxCCL,EAAIa,UAAYb,EAAIc,OAAS,YAAcd,EAAIK,KAyChDM,UAASA,EACTI,cAxC6D,SAACC,GAC9DA,EAAEC,iBACFvB,GACF,EAsCEwB,YA/B2D,SAACF,GAC5CG,SAASC,eAAejC,EAAYkC,gBAMpDC,YAAW,WACT/B,EAAiB,CAAEO,SAAQA,EAAEC,SAAQA,IAErC,IAAMwB,EAAY,SAACP,GACjBA,EAAEC,iBACFD,EAAEQ,kBACF/B,IACA0B,SAASM,oBAAoB,UAAWF,EAC1C,EAEAJ,SAASO,iBAAiB,UAAWH,EACtC,GAAE,EACL,EAaEI,aAX4D,SAACX,GAC7DA,EAAEC,iBACFD,EAAEQ,kBACFhC,EAAgB,CAAEM,SAAQA,EAAEC,SAAQA,GACtC,EASF"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/cell/hooks.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useEditActionContext } from \"../edit/provider\";\nimport { useColumnsContext } from \"../sheet/providers\";\nimport { DataObject, DataRecord, TColumnType } from \"../table/type\";\nimport { useRangeActionContext } from \"../range/provider\";\nimport { useTableIdGenerator } from \"../id\";\n\nexport function useCell(id: string, row: DataObject<DataRecord>) {\n const IdGenerator = useTableIdGenerator();\n const { startSelectRange, moveSelectRange, endSelectRange } =\n useRangeActionContext();\n const { startEditing } = useEditActionContext();\n const [rowIndex, colIndex] = IdGenerator.extractCellIndexFromId(id);\n const col = useColumnsContext()[colIndex];\n const value = row[col.key as string];\n\n const label =\n col.type === \"select\"\n ? col.options?.find((op) => op.value === value)?.label ?? \"\"\n : col.type === \"date\" || col.type === \"datetime\"\n ? col.render(value instanceof Date ? value : new Date(value))\n : (value as string | number);\n\n const component = useMemo(() => {\n if (col.type === \"date\" || col.type === \"datetime\" || col.editable) {\n return label;\n } else {\n return col.render ? col.render(value as never, row) : label;\n }\n }, [col.editable, label, value, row]);\n\n const type: TColumnType | \"component\" =\n !col.editable && col.render ? \"component\" : col.type;\n\n const onDoubleClick: React.MouseEventHandler<HTMLDivElement> = (e) => {\n e.preventDefault();\n startEditing();\n };\n\n /**\n * onBlurよりも先に発火するため、onBlurでendEditingを呼ぶと\n * すぐにstartEditingが呼ばれてしまうため、setTimeoutで遅延させる\n * これにより、endEditingが先に呼ばれるようになる\n */\n const onMouseDown: React.MouseEventHandler<HTMLDivElement> = (e) => {\n const element = document.getElementById(IdGenerator.getEditorId());\n\n if (!!element) {\n return;\n }\n\n setTimeout(() => {\n startSelectRange({ rowIndex, colIndex });\n\n const onMouseUp = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n endSelectRange();\n document.removeEventListener(\"mouseup\", onMouseUp);\n };\n\n document.addEventListener(\"mouseup\", onMouseUp);\n }, 0);\n };\n\n const onMouseEnter: React.MouseEventHandler<HTMLDivElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n moveSelectRange({ rowIndex, colIndex });\n };\n\n return {\n type,\n component,\n onDoubleClick,\n onMouseDown,\n onMouseEnter,\n };\n}\n"],"names":["id","row","IdGenerator","useTableIdGenerator","_d","useRangeActionContext","startSelectRange","moveSelectRange","endSelectRange","startEditing","useEditActionContext","_e","extractCellIndexFromId","rowIndex","colIndex","col","useColumnsContext","value","key","label","type","_c","_b","_a","options","find","op","render","Date","component","useMemo","editable","onDoubleClick","e","preventDefault","onMouseDown","document","getElementById","getEditorId","setTimeout","onMouseUp","stopPropagation","removeEventListener","addEventListener","onMouseEnter"],"mappings":"yLAOgB,SAAQA,EAAYC,aAC5BC,EAAcC,EAAAA,sBACdC,EACJC,EAAAA,wBADMC,EAAgBF,EAAAE,iBAAEC,EAAeH,EAAAG,gBAAEC,EAAcJ,EAAAI,eAEjDC,EAAiBC,sCACnBC,EAAuBT,EAAYU,uBAAuBZ,GAAzDa,EAAQF,EAAA,GAAEG,OACXC,EAAMC,EAAAA,oBAAoBF,GAC1BG,EAAQhB,EAAIc,EAAIG,KAEhBC,EACS,WAAbJ,EAAIK,KACoD,QAApDC,EAA6C,QAA7CC,EAAW,QAAXC,EAAAR,EAAIS,eAAO,IAAAD,OAAA,EAAAA,EAAEE,MAAK,SAACC,GAAO,OAAAA,EAAGT,QAAUA,CAAK,WAAC,IAAAK,OAAA,EAAAA,EAAEH,aAAK,IAAAE,EAAAA,EAAI,GAC3C,SAAbN,EAAIK,MAAgC,aAAbL,EAAIK,KAC3BL,EAAIY,OAAOV,aAAiBW,KAAOX,EAAQ,IAAIW,KAAKX,IACnDA,EAEDY,EAAYC,EAAAA,SAAQ,WACxB,MAAiB,SAAbf,EAAIK,MAAgC,aAAbL,EAAIK,MAAuBL,EAAIgB,SACjDZ,EAEAJ,EAAIY,OAASZ,EAAIY,OAAOV,EAAgBhB,GAAOkB,CAE1D,GAAG,CAACJ,EAAIgB,SAAUZ,EAAOF,EAAOhB,IA0ChC,MAAO,CACLmB,MAxCCL,EAAIgB,UAAYhB,EAAIY,OAAS,YAAcZ,EAAIK,KAyChDS,UAASA,EACTG,cAxC6D,SAACC,GAC9DA,EAAEC,iBACFzB,GACF,EAsCE0B,YA/B2D,SAACF,GAC5CG,SAASC,eAAenC,EAAYoC,gBAMpDC,YAAW,WACTjC,EAAiB,CAAEO,SAAQA,EAAEC,SAAQA,IAErC,IAAM0B,EAAY,SAACP,GACjBA,EAAEC,iBACFD,EAAEQ,kBACFjC,IACA4B,SAASM,oBAAoB,UAAWF,EAC1C,EAEAJ,SAASO,iBAAiB,UAAWH,EACtC,GAAE,EACL,EAaEI,aAX4D,SAACX,GAC7DA,EAAEC,iBACFD,EAAEQ,kBACFlC,EAAgB,CAAEM,SAAQA,EAAEC,SAAQA,GACtC,EASF"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react"),n=require("../range/provider.js"),o=function(t,n){switch(n.type){case"setRows":return e.__assign(e.__assign({},t),{rows:n.payload.rows});case"setCols":return e.__assign(e.__assign({},t),{cols:n.payload.cols});case"copied":return e.__assign(e.__assign({},t),{copiedAt:new Date});default:return t}};exports.useCopyReducer=function(s){var r=t.useReducer(o,e.__assign({},s)),a=r[0],d=r[1],c=n.useRangeStateContext();t.useEffect((function(){d({type:"setCols",payload:{cols:s.cols}})}),[s.cols]);var i=t.useCallback((function(e){if(c.isSelecting){var t=c.start.rowIndex<=c.end.rowIndex?c.start.rowIndex:c.end.rowIndex,n=c.start.rowIndex>=c.end.rowIndex?c.start.rowIndex:c.end.rowIndex,o=c.start.colIndex<=c.end.colIndex?c.start.colIndex:c.end.colIndex,s=c.start.colIndex>=c.end.colIndex?c.start.colIndex:c.end.colIndex,r=a.rows.slice(t,n+1).map((function(e){for(var t=[],n=function(n){var o=a.cols[n];if("number"==o.type||"string"==o.type)return t.push(e[o.key]),"continue";if("select"==o.type){var s=e[o.key];null==s||""===s?t.push(""):t.push(o.options.find((function(t){return t.value===e[o.key]})).label)}},r=o;r<=s;r++)n(r);return t})).map((function(e){return e.join("\t")})).join("\n");if(null==e?void 0:e.enableDeprecatedCopy){var i=document.createElement("textarea");i.style.position="fixed",i.style.top="0",i.style.left="0",i.style.width="2em",i.style.height="2em",i.style.padding="0",i.style.border="none",i.style.outline="none",i.style.boxShadow="none",i.style.background="transparent",i.value=r,document.body.appendChild(i),i.select(),document.execCommand("copy"),document.body.removeChild(i)}else navigator.clipboard.writeText(r);d({type:"copied"})}}),[c,a.rows,a.cols]),l=t.useCallback((function(e){d({type:"setRows",payload:{rows:e}})}),[]);return{states:t.useMemo((function(){return{copiedAt:a.copiedAt}}),[a.copiedAt]),actions:t.useMemo((function(){return{copy:i,setRows:l}}),[i,l])}};
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react"),n=require("../range/provider.js"),o=function(t,n){switch(n.type){case"setRows":return e.__assign(e.__assign({},t),{rows:n.payload.rows});case"setCols":return e.__assign(e.__assign({},t),{cols:n.payload.cols});case"copied":return e.__assign(e.__assign({},t),{copiedAt:new Date});default:return t}};exports.useCopyReducer=function(s){var r=t.useReducer(o,e.__assign({},s)),a=r[0],i=r[1],d=n.useRangeStateContext();t.useEffect((function(){i({type:"setCols",payload:{cols:s.cols}})}),[s.cols]);var c=t.useCallback((function(e){if(d.isSelecting){var t=d.start.rowIndex<=d.end.rowIndex?d.start.rowIndex:d.end.rowIndex,n=d.start.rowIndex>=d.end.rowIndex?d.start.rowIndex:d.end.rowIndex,o=d.start.colIndex<=d.end.colIndex?d.start.colIndex:d.end.colIndex,s=d.start.colIndex>=d.end.colIndex?d.start.colIndex:d.end.colIndex,r=a.rows.slice(t,n+1).map((function(e){for(var t=[],n=function(n){var o=a.cols[n];if("number"==o.type||"string"==o.type)return t.push(e[o.key]),"continue";if("select"==o.type){var s=e[o.key];return null==s||""===s?t.push(""):t.push(o.options.find((function(t){return t.value===e[o.key]})).label),"continue"}return"date"===o.type?(t.push(e[o.key].toISOString().split("T")[0]),"continue"):"datetime"===o.type?(t.push(e[o.key].toISOString()),"continue"):void 0},r=o;r<=s;r++)n(r);return t})).map((function(e){return e.join("\t")})).join("\n");if(null==e?void 0:e.enableDeprecatedCopy){var c=document.createElement("textarea");c.style.position="fixed",c.style.top="0",c.style.left="0",c.style.width="2em",c.style.height="2em",c.style.padding="0",c.style.border="none",c.style.outline="none",c.style.boxShadow="none",c.style.background="transparent",c.value=r,document.body.appendChild(c),c.select(),document.execCommand("copy"),document.body.removeChild(c)}else navigator.clipboard.writeText(r);i({type:"copied"})}}),[d,a.rows,a.cols]),l=t.useCallback((function(e){i({type:"setRows",payload:{rows:e}})}),[]);return{states:t.useMemo((function(){return{copiedAt:a.copiedAt}}),[a.copiedAt]),actions:t.useMemo((function(){return{copy:c,setRows:l}}),[c,l])}};
2
2
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/copy/hooks.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useReducer } from \"react\";\nimport { useRangeStateContext } from \"../range/provider\";\nimport { TCopyReducer, TReturnCopyReducer } from \"./types\";\n\nconst reducer: TCopyReducer = (state, action) => {\n switch (action.type) {\n case \"setRows\":\n return { ...state, rows: action.payload.rows };\n case \"setCols\":\n return { ...state, cols: action.payload.cols };\n case \"copied\":\n return { ...state, copiedAt: new Date() };\n default:\n return state;\n }\n};\n\nexport function useCopyReducer(initial: {\n rows: any[];\n cols: any[];\n onUpdateRowFunction?: (newRow: any, oldRow: any) => void;\n}): TReturnCopyReducer {\n const [state, dispatch] = useReducer(reducer, {\n ...initial,\n });\n const range = useRangeStateContext();\n\n useEffect(() => {\n dispatch({ type: \"setCols\", payload: { cols: initial.cols } });\n }, [initial.cols]);\n\n const copy = useCallback(\n (options?: { enableDeprecatedCopy?: boolean }) => {\n if (!range.isSelecting) {\n return;\n }\n\n const startRowIndex =\n range.start.rowIndex <= range.end.rowIndex\n ? range.start.rowIndex\n : range.end.rowIndex;\n const endRowIndex =\n range.start.rowIndex >= range.end.rowIndex\n ? range.start.rowIndex\n : range.end.rowIndex;\n const startColIndex =\n range.start.colIndex <= range.end.colIndex\n ? range.start.colIndex\n : range.end.colIndex;\n const endColIndex =\n range.start.colIndex >= range.end.colIndex\n ? range.start.colIndex\n : range.end.colIndex;\n\n const copiedData = state.rows\n .slice(startRowIndex, endRowIndex + 1)\n .map((row) => {\n const copiedRow = [];\n for (let i = startColIndex; i <= endColIndex; i++) {\n const col = state.cols[i];\n\n if (col.type == \"number\" || col.type == \"string\") {\n copiedRow.push(row[col.key]);\n continue;\n } else if (col.type == \"select\") {\n const value = row[col.key];\n\n if (value === null || value === undefined || value === \"\") {\n copiedRow.push(\"\");\n } else {\n copiedRow.push(\n col.options.find((option) => option.value === row[col.key])!\n .label\n );\n }\n }\n }\n return copiedRow;\n });\n\n const copiedDataString = copiedData\n .map((row) => row.join(\"\\t\"))\n .join(\"\\n\");\n\n if (options?.enableDeprecatedCopy) {\n const textArea = document.createElement(\"textarea\");\n textArea.style.position = \"fixed\";\n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.width = \"2em\";\n textArea.style.height = \"2em\";\n textArea.style.padding = \"0\";\n textArea.style.border = \"none\";\n textArea.style.outline = \"none\";\n textArea.style.boxShadow = \"none\";\n textArea.style.background = \"transparent\";\n textArea.value = copiedDataString;\n document.body.appendChild(textArea);\n textArea.select();\n document.execCommand(\"copy\");\n document.body.removeChild(textArea);\n } else {\n navigator.clipboard.writeText(copiedDataString);\n }\n\n dispatch({ type: \"copied\" });\n },\n [range, state.rows, state.cols]\n );\n\n const setRows = useCallback((rows: any[]) => {\n dispatch({ type: \"setRows\", payload: { rows } });\n }, []);\n\n const states = useMemo(\n () => ({\n copiedAt: state.copiedAt,\n }),\n [state.copiedAt]\n );\n\n const actions = useMemo(\n () => ({\n copy,\n setRows,\n }),\n [copy, setRows]\n );\n\n return {\n states,\n actions,\n };\n}\n"],"names":["reducer","state","action","type","__assign","rows","payload","cols","copiedAt","Date","initial","_a","useReducer","dispatch","range","useRangeStateContext","useEffect","copy","useCallback","options","isSelecting","startRowIndex","start","rowIndex","end","endRowIndex","startColIndex","colIndex","endColIndex","copiedDataString","slice","map","row","copiedRow","i","col","push","key","value","find","option","label","join","enableDeprecatedCopy","textArea","document","createElement","style","position","top","left","width","height","padding","border","outline","boxShadow","background","body","appendChild","select","execCommand","removeChild","navigator","clipboard","writeText","setRows","states","useMemo","actions"],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/copy/hooks.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useReducer } from \"react\";\nimport { useRangeStateContext } from \"../range/provider\";\nimport { TCopyReducer, TReturnCopyReducer } from \"./types\";\n\nconst reducer: TCopyReducer = (state, action) => {\n switch (action.type) {\n case \"setRows\":\n return { ...state, rows: action.payload.rows };\n case \"setCols\":\n return { ...state, cols: action.payload.cols };\n case \"copied\":\n return { ...state, copiedAt: new Date() };\n default:\n return state;\n }\n};\n\nexport function useCopyReducer(initial: {\n rows: any[];\n cols: any[];\n onUpdateRowFunction?: (newRow: any, oldRow: any) => void;\n}): TReturnCopyReducer {\n const [state, dispatch] = useReducer(reducer, {\n ...initial,\n });\n const range = useRangeStateContext();\n\n useEffect(() => {\n dispatch({ type: \"setCols\", payload: { cols: initial.cols } });\n }, [initial.cols]);\n\n const copy = useCallback(\n (options?: { enableDeprecatedCopy?: boolean }) => {\n if (!range.isSelecting) {\n return;\n }\n\n const startRowIndex =\n range.start.rowIndex <= range.end.rowIndex\n ? range.start.rowIndex\n : range.end.rowIndex;\n const endRowIndex =\n range.start.rowIndex >= range.end.rowIndex\n ? range.start.rowIndex\n : range.end.rowIndex;\n const startColIndex =\n range.start.colIndex <= range.end.colIndex\n ? range.start.colIndex\n : range.end.colIndex;\n const endColIndex =\n range.start.colIndex >= range.end.colIndex\n ? range.start.colIndex\n : range.end.colIndex;\n\n const copiedData = state.rows\n .slice(startRowIndex, endRowIndex + 1)\n .map((row) => {\n const copiedRow = [];\n for (let i = startColIndex; i <= endColIndex; i++) {\n const col = state.cols[i];\n\n if (col.type == \"number\" || col.type == \"string\") {\n copiedRow.push(row[col.key]);\n continue;\n } else if (col.type == \"select\") {\n const value = row[col.key];\n\n if (value === null || value === undefined || value === \"\") {\n copiedRow.push(\"\");\n } else {\n copiedRow.push(\n col.options.find((option) => option.value === row[col.key])!\n .label\n );\n }\n continue;\n } else if (col.type === \"date\") {\n copiedRow.push(row[col.key].toISOString().split(\"T\")[0]);\n continue;\n } else if (col.type === \"datetime\") {\n copiedRow.push(row[col.key].toISOString());\n continue;\n }\n\n col satisfies never;\n }\n return copiedRow;\n });\n\n const copiedDataString = copiedData\n .map((row) => row.join(\"\\t\"))\n .join(\"\\n\");\n\n if (options?.enableDeprecatedCopy) {\n const textArea = document.createElement(\"textarea\");\n textArea.style.position = \"fixed\";\n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.width = \"2em\";\n textArea.style.height = \"2em\";\n textArea.style.padding = \"0\";\n textArea.style.border = \"none\";\n textArea.style.outline = \"none\";\n textArea.style.boxShadow = \"none\";\n textArea.style.background = \"transparent\";\n textArea.value = copiedDataString;\n document.body.appendChild(textArea);\n textArea.select();\n document.execCommand(\"copy\");\n document.body.removeChild(textArea);\n } else {\n navigator.clipboard.writeText(copiedDataString);\n }\n\n dispatch({ type: \"copied\" });\n },\n [range, state.rows, state.cols]\n );\n\n const setRows = useCallback((rows: any[]) => {\n dispatch({ type: \"setRows\", payload: { rows } });\n }, []);\n\n const states = useMemo(\n () => ({\n copiedAt: state.copiedAt,\n }),\n [state.copiedAt]\n );\n\n const actions = useMemo(\n () => ({\n copy,\n setRows,\n }),\n [copy, setRows]\n );\n\n return {\n states,\n actions,\n };\n}\n"],"names":["reducer","state","action","type","__assign","rows","payload","cols","copiedAt","Date","initial","_a","useReducer","dispatch","range","useRangeStateContext","useEffect","copy","useCallback","options","isSelecting","startRowIndex","start","rowIndex","end","endRowIndex","startColIndex","colIndex","endColIndex","copiedDataString","slice","map","row","copiedRow","i","col","push","key","value","find","option","label","toISOString","split","join","enableDeprecatedCopy","textArea","document","createElement","style","position","top","left","width","height","padding","border","outline","boxShadow","background","body","appendChild","select","execCommand","removeChild","navigator","clipboard","writeText","setRows","states","useMemo","actions"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../../../icon/cancel-icon.js"),r=require("../../id/provider.js");exports.CellInput=function(u){var i=r.useTableIdGenerator(),o=t.useRef(null);return t.useEffect((function(){o.current&&o.current.focus()}),[o]),e.jsxs("div",{className:"flex justify-between gap-1 w-full items-center",onClick:function(e){e.preventDefault(),e.stopPropagation()},children:[e.jsx("input",{id:i.getEditorId(),ref:o,className:"w-full py-1 px-2 bg-white text-gray-900",type:"text",value:u.value,onChange:u.onChange,onBlur:u.onBlur,onKeyUp:function(e){e.preventDefault(),"Enter"===e.key?e.target.blur():"Escape"===e.key&&(u.reset(),u.endEditing())}}),e.jsx("button",{onMouseDown:function(e){e.preventDefault(),e.stopPropagation(),setTimeout((function(){u.reset(),u.endEditing()}),300)},children:e.jsx(n.CancelIcon,{size:16})})]})};
2
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../../../icon/cancel-icon.js"),r=require("../../id/provider.js");exports.CellInput=function(u){var i,o=r.useTableIdGenerator(),s=t.useRef(null);return t.useEffect((function(){s.current&&s.current.focus()}),[s]),e.jsxs("div",{className:"flex justify-between gap-1 w-full items-center",onClick:function(e){e.preventDefault(),e.stopPropagation()},children:[e.jsx("input",{id:o.getEditorId(),ref:s,className:"w-full py-1 px-2 bg-white text-gray-900",type:null!==(i=u.type)&&void 0!==i?i:"text",value:u.value,onChange:u.onChange,onBlur:u.onBlur,onKeyUp:function(e){e.preventDefault(),"Enter"===e.key?e.target.blur():"Escape"===e.key&&(u.reset(),u.endEditing())}}),e.jsx("button",{onMouseDown:function(e){e.preventDefault(),e.stopPropagation(),setTimeout((function(){u.reset(),u.endEditing()}),300)},children:e.jsx(n.CancelIcon,{size:16})})]})};
3
3
  //# sourceMappingURL=base-input.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),t=require("./reducer.js");exports.useFilterHook=function(r){var n=e.useReducer(t.filterReducer,{conditions:r}),i=n[0],o=n[1],u=e.useMemo((function(){return{addFilter:function(e){o({type:"add",payload:{condition:e}})},removeFilter:function(e){o({type:"remove",payload:{index:e}})},clearFilter:function(){o({type:"clear"})}}}),[i.conditions]),s=e.useMemo((function(){return{filter:function(e){return e.filter((function(e){return i.conditions.every((function(t){return function(e,t,r){switch(e.operator.type){case"number":if("single number"===e.operator.inputType){if(r.type!==e.operator.inputType)throw new Error("input type is not match");var n=r.payload.value;switch(e.operator.key){case"number:eq":return t===n;case"number:gt":return t>n;case"number:gte":return t>=n;case"number:lt":return t<n;case"number:lte":return t<=n;case"number:neq":return t!==n}}case"string":switch(e.operator.inputType){case"none":if(r.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"string:is_not_null":return null!=t&&""!==t;case"string:is_null":return null==t||""===t}case"single string":if(r.type!==e.operator.inputType)throw new Error("input type is not match");var i=r.payload.value;switch(e.operator.key){case"string:eq":return t===i;case"string:like":return t.includes(i);case"string:neq":return t!==i;case"string:not_like":return!t.includes(i)}}case"select":switch(e.operator.inputType){case"select":if(r.type!==e.operator.inputType)throw new Error("input type is not match");i=r.payload.value;switch(e.operator.key){case"select:eq":return t===i;case"select:neq":return t!==i}case"none":if(r.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"select:is_null":return null==t||""===t;case"select:is_not_null":return null!=t&&""!==t}}}}(t,e[t.target.key],t.input)}))}))}}}),[i.conditions]);return{state:i,actions:u,functions:s}};
1
+ "use strict";var e=require("react"),t=require("./reducer.js");exports.useFilterHook=function(r){var n=e.useReducer(t.filterReducer,{conditions:r}),a=n[0],o=n[1],i=e.useMemo((function(){return{addFilter:function(e){o({type:"add",payload:{condition:e}})},removeFilter:function(e){o({type:"remove",payload:{index:e}})},clearFilter:function(){o({type:"clear"})}}}),[a.conditions]),u=e.useMemo((function(){return{filter:function(e){return e.filter((function(e){return a.conditions.every((function(t){return function(e,t,r){switch(e.operator.type){case"number":if("single number"===e.operator.inputType){if(r.type!==e.operator.inputType)throw new Error("input type is not match");var n=r.payload.value;switch(e.operator.key){case"number:eq":return t===n;case"number:gt":return t>n;case"number:gte":return t>=n;case"number:lt":return t<n;case"number:lte":return t<=n;case"number:neq":return t!==n}}case"string":switch(e.operator.inputType){case"none":if(r.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"string:is_not_null":return null!=t&&""!==t;case"string:is_null":return null==t||""===t}case"single string":if(r.type!==e.operator.inputType)throw new Error("input type is not match");var a=r.payload.value;switch(e.operator.key){case"string:eq":return t===a;case"string:like":return t.includes(a);case"string:neq":return t!==a;case"string:not_like":return!t.includes(a)}}case"select":switch(e.operator.inputType){case"select":if(r.type!==e.operator.inputType)throw new Error("input type is not match");a=r.payload.value;switch(e.operator.key){case"select:eq":return t===a;case"select:neq":return t!==a}case"none":if(r.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"select:is_null":return null==t||""===t;case"select:is_not_null":return null!=t&&""!==t}}case"date":switch(e.operator.inputType){case"single date":if(r.type!==e.operator.inputType)throw new Error("input type is not match");var o=r.payload.value;if(!(t instanceof Date))throw new Error("date value is not Date object");switch(e.operator.key){case"date:eq":return t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth()&&t.getDate()===o.getDate();case"date:neq":return t.getFullYear()!==o.getFullYear()||t.getMonth()!==o.getMonth()||t.getDate()!==o.getDate();case"date:gt":return t>o;case"date:gte":return t>=o;case"date:lt":return t<o;case"date:lte":return t<=o}case"none":if(r.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"date:is_null":return null==t||""===t;case"date:is_not_null":return null!=t&&""!==t}}case"datetime":switch(e.operator.inputType){case"single datetime":if(r.type!==e.operator.inputType)throw new Error("input type is not match");o=r.payload.value;switch(e.operator.key){case"datetime:gt":return t>o;case"datetime:gte":return t>=o;case"datetime:lt":return t<o;case"datetime:lte":return t<=o}case"none":if(r.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"datetime:is_null":return null==t||""===t;case"datetime:is_not_null":return null!=t&&""!==t}}}}(t,e[t.target.key],t.input)}))}))}}}),[a.conditions]);return{state:a,actions:i,functions:u}};
2
2
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../../src/table/filter-v2/hook.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { TFilterHook } from \"./type\";\nimport { filterReducer } from \"./reducer\";\nimport { Condition } from \"../../search-bar\";\nimport { DataObject, DataRecord } from \"../table/type\";\nimport { SearchInput } from \"../../search-bar/condition-search-bar/condition-input-management/type\";\n\nexport const useFilterHook: TFilterHook = (initialConditions) => {\n const [state, dispatch] = useReducer(filterReducer, {\n conditions: initialConditions,\n });\n\n const actions = useMemo(\n () => ({\n addFilter: (condition: Condition) => {\n dispatch({ type: \"add\", payload: { condition } });\n },\n removeFilter: (index: number) => {\n dispatch({ type: \"remove\", payload: { index } });\n },\n clearFilter: () => {\n dispatch({ type: \"clear\" });\n },\n }),\n [state.conditions]\n );\n\n const functions = useMemo(\n () => ({\n filter: <T extends DataRecord>(rows: DataObject<T>[]) => {\n return rows.filter((row) => {\n return state.conditions.every((condition) => {\n const value = row[condition.target.key];\n return isMatchCondition(condition, value, condition.input);\n });\n });\n },\n }),\n [state.conditions]\n );\n\n return {\n state,\n actions,\n functions,\n };\n};\n\nfunction isMatchCondition(\n condition: Condition,\n targetValue: any,\n input: SearchInput\n): boolean {\n switch (condition.operator.type) {\n // case \"date\":\n // switch (condition.operator.key) {\n // case \"date:eq\":\n // return false;\n // case \"date:gt\":\n // return false;\n // case \"date:gte\":\n // return false;\n // case \"date:lt\":\n // return false;\n // case \"date:lte\":\n // return false;\n // case \"date:neq\":\n // return false;\n // case \"date:is_not_null\":\n // return false;\n // case \"date:is_null\":\n // return false;\n // }\n case \"number\":\n switch (condition.operator.inputType) {\n case \"single number\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const numValue = input.payload.value;\n\n switch (condition.operator.key) {\n case \"number:eq\":\n return targetValue === numValue;\n case \"number:gt\":\n return targetValue > numValue;\n case \"number:gte\":\n return targetValue >= numValue;\n case \"number:lt\":\n return targetValue < numValue;\n case \"number:lte\":\n return targetValue <= numValue;\n case \"number:neq\":\n return targetValue !== numValue;\n }\n }\n\n case \"string\":\n switch (condition.operator.inputType) {\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"string:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n case \"string:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n }\n case \"single string\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const value = input.payload.value;\n\n switch (condition.operator.key) {\n case \"string:eq\":\n return targetValue === value;\n case \"string:like\":\n return targetValue.includes(value);\n case \"string:neq\":\n return targetValue !== value;\n case \"string:not_like\":\n return !targetValue.includes(value);\n }\n }\n\n case \"select\":\n switch (condition.operator.inputType) {\n case \"select\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const value = input.payload.value;\n\n switch (condition.operator.key) {\n case \"select:eq\":\n return targetValue === value;\n case \"select:neq\":\n return targetValue !== value;\n }\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"select:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n case \"select:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n }\n }\n }\n}\n"],"names":["initialConditions","_a","useReducer","filterReducer","conditions","state","dispatch","actions","useMemo","addFilter","condition","type","payload","removeFilter","index","clearFilter","functions","filter","rows","row","every","targetValue","input","operator","inputType","Error","numValue","value","key","includes","isMatchCondition","target"],"mappings":"oFAO0C,SAACA,GACnC,IAAAC,EAAoBC,EAAUA,WAACC,gBAAe,CAClDC,WAAYJ,IADPK,EAAKJ,EAAA,GAAEK,OAIRC,EAAUC,WACd,WAAM,MAAC,CACLC,UAAW,SAACC,GACVJ,EAAS,CAAEK,KAAM,MAAOC,QAAS,CAAEF,UAASA,IAC7C,EACDG,aAAc,SAACC,GACbR,EAAS,CAAEK,KAAM,SAAUC,QAAS,CAAEE,MAAKA,IAC5C,EACDC,YAAa,WACXT,EAAS,CAAEK,KAAM,SAClB,KAEH,CAACN,EAAMD,aAGHY,EAAYR,WAChB,WAAM,MAAC,CACLS,OAAQ,SAAuBC,GAC7B,OAAOA,EAAKD,QAAO,SAACE,GAClB,OAAOd,EAAMD,WAAWgB,OAAM,SAACV,GAE7B,OAeZ,SACEA,EACAW,EACAC,GAEA,OAAQZ,EAAUa,SAASZ,MAoBzB,IAAK,SACH,GACO,kBADCD,EAAUa,SAASC,UACzB,CACE,GAAIF,EAAMX,OAASD,EAAUa,SAASC,UACpC,MAAM,IAAIC,MAAM,2BAGlB,IAAMC,EAAWJ,EAAMV,QAAQe,MAE/B,OAAQjB,EAAUa,SAASK,KACzB,IAAK,YACH,OAAOP,IAAgBK,EACzB,IAAK,YACH,OAAOL,EAAcK,EACvB,IAAK,aACH,OAAOL,GAAeK,EACxB,IAAK,YACH,OAAOL,EAAcK,EACvB,IAAK,aACH,OAAOL,GAAeK,EACxB,IAAK,aACH,OAAOL,IAAgBK,EAC1B,CAGP,IAAK,SACH,OAAQhB,EAAUa,SAASC,WACzB,IAAK,OACH,GAAIF,EAAMX,OAASD,EAAUa,SAASC,UACpC,MAAM,IAAIC,MAAM,2BAGlB,OAAQf,EAAUa,SAASK,KACzB,IAAK,qBACH,OACEP,SAEgB,KAAhBA,EAEJ,IAAK,iBACH,OACEA,SAEgB,KAAhBA,EAGR,IAAK,gBACH,GAAIC,EAAMX,OAASD,EAAUa,SAASC,UACpC,MAAM,IAAIC,MAAM,2BAGlB,IAAME,EAAQL,EAAMV,QAAQe,MAE5B,OAAQjB,EAAUa,SAASK,KACzB,IAAK,YACH,OAAOP,IAAgBM,EACzB,IAAK,cACH,OAAON,EAAYQ,SAASF,GAC9B,IAAK,aACH,OAAON,IAAgBM,EACzB,IAAK,kBACH,OAAQN,EAAYQ,SAASF,IAIvC,IAAK,SACH,OAAQjB,EAAUa,SAASC,WACzB,IAAK,SACH,GAAIF,EAAMX,OAASD,EAAUa,SAASC,UACpC,MAAM,IAAIC,MAAM,2BAGZE,EAAQL,EAAMV,QAAQe,MAE5B,OAAQjB,EAAUa,SAASK,KACzB,IAAK,YACH,OAAOP,IAAgBM,EACzB,IAAK,aACH,OAAON,IAAgBM,EAE7B,IAAK,OACH,GAAIL,EAAMX,OAASD,EAAUa,SAASC,UACpC,MAAM,IAAIC,MAAM,2BAGlB,OAAQf,EAAUa,SAASK,KACzB,IAAK,iBACH,OACEP,SAEgB,KAAhBA,EAEJ,IAAK,qBACH,OACEA,SAEgB,KAAhBA,IAKhB,CA7ImBS,CAAiBpB,EADVS,EAAIT,EAAUqB,OAAOH,KACOlB,EAAUY,MACtD,GACF,GACD,KAEH,CAACjB,EAAMD,aAGT,MAAO,CACLC,MAAKA,EACLE,QAAOA,EACPS,UAASA,EAEb"}
1
+ {"version":3,"file":"hook.js","sources":["../../../../../src/table/filter-v2/hook.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { TFilterHook } from \"./type\";\nimport { filterReducer } from \"./reducer\";\nimport { Condition } from \"../../search-bar\";\nimport { DataObject, DataRecord } from \"../table/type\";\nimport { SearchInput } from \"../../search-bar/condition-search-bar/condition-input-management/type\";\n\nexport const useFilterHook: TFilterHook = (initialConditions) => {\n const [state, dispatch] = useReducer(filterReducer, {\n conditions: initialConditions,\n });\n\n const actions = useMemo(\n () => ({\n addFilter: (condition: Condition) => {\n dispatch({ type: \"add\", payload: { condition } });\n },\n removeFilter: (index: number) => {\n dispatch({ type: \"remove\", payload: { index } });\n },\n clearFilter: () => {\n dispatch({ type: \"clear\" });\n },\n }),\n [state.conditions]\n );\n\n const functions = useMemo(\n () => ({\n filter: <T extends DataRecord>(rows: DataObject<T>[]) => {\n return rows.filter((row) => {\n return state.conditions.every((condition) => {\n const value = row[condition.target.key];\n return isMatchCondition(condition, value, condition.input);\n });\n });\n },\n }),\n [state.conditions]\n );\n\n return {\n state,\n actions,\n functions,\n };\n};\n\nfunction isMatchCondition(\n condition: Condition,\n targetValue: any,\n input: SearchInput\n): boolean {\n switch (condition.operator.type) {\n case \"number\":\n switch (condition.operator.inputType) {\n case \"single number\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const numValue = input.payload.value;\n\n switch (condition.operator.key) {\n case \"number:eq\":\n return targetValue === numValue;\n case \"number:gt\":\n return targetValue > numValue;\n case \"number:gte\":\n return targetValue >= numValue;\n case \"number:lt\":\n return targetValue < numValue;\n case \"number:lte\":\n return targetValue <= numValue;\n case \"number:neq\":\n return targetValue !== numValue;\n }\n }\n\n case \"string\":\n switch (condition.operator.inputType) {\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"string:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n case \"string:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n }\n case \"single string\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const value = input.payload.value;\n\n switch (condition.operator.key) {\n case \"string:eq\":\n return targetValue === value;\n case \"string:like\":\n return targetValue.includes(value);\n case \"string:neq\":\n return targetValue !== value;\n case \"string:not_like\":\n return !targetValue.includes(value);\n }\n }\n\n case \"select\":\n switch (condition.operator.inputType) {\n case \"select\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const value = input.payload.value;\n\n switch (condition.operator.key) {\n case \"select:eq\":\n return targetValue === value;\n case \"select:neq\":\n return targetValue !== value;\n }\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"select:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n case \"select:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n }\n }\n case \"date\":\n switch (condition.operator.inputType) {\n case \"single date\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const dateValue = input.payload.value;\n\n if (!(targetValue instanceof Date)) {\n throw new Error(\"date value is not Date object\");\n }\n\n switch (condition.operator.key) {\n case \"date:eq\":\n return (\n targetValue.getFullYear() === dateValue.getFullYear() &&\n targetValue.getMonth() === dateValue.getMonth() &&\n targetValue.getDate() === dateValue.getDate()\n );\n case \"date:neq\":\n return (\n targetValue.getFullYear() !== dateValue.getFullYear() ||\n targetValue.getMonth() !== dateValue.getMonth() ||\n targetValue.getDate() !== dateValue.getDate()\n );\n case \"date:gt\":\n return targetValue > dateValue;\n case \"date:gte\":\n return targetValue >= dateValue;\n case \"date:lt\":\n return targetValue < dateValue;\n case \"date:lte\":\n return targetValue <= dateValue;\n }\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"date:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n case \"date:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n }\n }\n case \"datetime\":\n switch (condition.operator.inputType) {\n case \"single datetime\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const dateValue = input.payload.value;\n\n switch (condition.operator.key) {\n case \"datetime:gt\":\n return targetValue > dateValue;\n case \"datetime:gte\":\n return targetValue >= dateValue;\n case \"datetime:lt\":\n return targetValue < dateValue;\n case \"datetime:lte\":\n return targetValue <= dateValue;\n }\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"datetime:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n case \"datetime:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n }\n }\n }\n}\n"],"names":["initialConditions","_a","useReducer","filterReducer","conditions","state","dispatch","actions","useMemo","addFilter","condition","type","payload","removeFilter","index","clearFilter","functions","filter","rows","row","every","targetValue","input","operator","inputType","Error","numValue","value","key","includes","dateValue","Date","getFullYear","getMonth","getDate","isMatchCondition","target"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./columns-width/context.js");require("../../../node_modules/tslib/tslib.es6.js");var l=require("./header-v2-hook.js"),n=require("../checkbox/components.js"),s=require("../../search-bar/condition-search-bar/base.js"),i=require("../id/provider.js"),a=require("../filter-v2/context.js");var o=t.memo((function(r){var n=t.useRef(null),s=l.useResizeColWidthHook(r.keyName).onMouseDownResizeWidth,i=n.current?r.colWidth-n.current.clientWidth:r.colWidth;return e.jsxs("div",{className:"relative",style:{width:r.colWidth,maxWidth:r.colWidth,minWidth:r.colWidth},children:[e.jsxs("div",{className:"flex justify-between items-center bg-gray-200 text-gray-600 h-[32px]",children:[e.jsx("div",{className:"px-2",style:{maxWidth:i},children:r.label&&e.jsx("p",{className:"text-left font-bold text-nowrap overflow-hidden text-ellipsis",children:r.label})}),e.jsx("div",{ref:n,className:"flex items-center w-fit shrink-0 gap-1 px-1",children:!r.disableSort&&r.generateSortButton&&r.generateSortButton(r.keyName)})]}),e.jsx("div",{className:"absolute top-0 right-0 grid place-items-end py-1 w-[4px] h-full cursor-col-resize",onMouseDown:s,children:e.jsx("div",{className:"w-[1px] h-full bg-white"})})]})}));exports.TableHeader=function(c){var d=i.useTableIdGenerator(),u=r.useColumnsWidthState().getColumnWidth,h=a.useFilter(),x=h.conditions,b=h.addFilter,m=h.removeFilter,p=l.useScrollXRef();t.useEffect((function(){if(p.current){var e=p.current,t=function(t){0!==t.deltaY&&(t.preventDefault(),e.scrollLeft+=t.deltaY)};return e.addEventListener("wheel",t),function(){e.removeEventListener("wheel",t)}}}),[p]);var f=t.useCallback((function(e){switch(e.type){case"add":b(e.payload.condition);break;case"remove":m(e.payload.index)}}),[]),v=t.useMemo((function(){return c.cols.filter((function(e){return!!e.label&&(e.editable||!e.editable&&!e.render)})).map((function(e){switch(e.type){case"string":case"number":return{key:e.key.toString(),label:e.label,type:e.type};case"select":return{key:e.key.toString(),label:e.label,type:e.type,options:e.options}}}))}),[c.cols]);return e.jsxs("div",{className:"border-gray-200 bg-gray-200 text-gray-600 rounded-t-md",style:{maxWidth:c.maxWidth},children:[e.jsx("div",{className:"py-2 px-2",children:e.jsx(s.ConditionSearchBar,{id:d.getTableHeaderId(),targets:v,conditions:x,onChangeCondition:f,size:"small"})}),e.jsx("style",{children:"\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n "}),e.jsx("div",{ref:p,className:"relative max-w-full overflow-x-auto teppen-no-scrollbar",children:e.jsxs("div",{className:"flex h-[32px]",children:[c.checkbox&&e.jsx("div",{className:"w-8 h-full",children:e.jsx(n.AllCheckbox,{rows:c.rows})}),c.cols.map((function(t){return e.jsx(o,{keyName:t.key.toString(),label:t.label,colWidth:u(t.key),disableSort:t.disableSort||!t.editable&&!!t.render,generateSortButton:c.generateSortButton},t.key.toString())}))]})})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./columns-width/context.js");require("../../../node_modules/tslib/tslib.es6.js");var l=require("./header-v2-hook.js"),i=require("../checkbox/components.js"),s=require("../../search-bar/condition-search-bar/base.js"),n=require("../id/provider.js"),a=require("../filter-v2/context.js");var o=t.memo((function(r){var i=t.useRef(null),s=l.useResizeColWidthHook(r.keyName).onMouseDownResizeWidth,n=i.current?r.colWidth-i.current.clientWidth:r.colWidth;return e.jsxs("div",{className:"relative",style:{width:r.colWidth,maxWidth:r.colWidth,minWidth:r.colWidth},children:[e.jsxs("div",{className:"flex justify-between items-center bg-gray-200 text-gray-600 h-[32px]",children:[e.jsx("div",{className:"px-2",style:{maxWidth:n},children:r.label&&e.jsx("p",{className:"text-left font-bold text-nowrap overflow-hidden text-ellipsis",children:r.label})}),e.jsx("div",{ref:i,className:"flex items-center w-fit shrink-0 gap-1 px-1",children:!r.disableSort&&r.generateSortButton&&r.generateSortButton(r.keyName)})]}),e.jsx("div",{className:"absolute top-0 right-0 grid place-items-end py-1 w-[4px] h-full cursor-col-resize",onMouseDown:s,children:e.jsx("div",{className:"w-[1px] h-full bg-white"})})]})}));exports.TableHeader=function(d){var c=n.useTableIdGenerator(),u=r.useColumnsWidthState().getColumnWidth,h=a.useFilter(),m=h.conditions,x=h.addFilter,b=h.removeFilter,p=l.useScrollXRef();t.useEffect((function(){if(p.current){var e=p.current,t=function(t){0!==t.deltaY&&(t.preventDefault(),e.scrollLeft+=t.deltaY)};return e.addEventListener("wheel",t),function(){e.removeEventListener("wheel",t)}}}),[p]);var y=t.useCallback((function(e){switch(e.type){case"add":x(e.payload.condition);break;case"remove":b(e.payload.index)}}),[]),f=t.useMemo((function(){return d.cols.filter((function(e){return!!e.label&&("datetime"===e.type||"date"===e.type||e.editable||!e.editable&&!e.render)})).map((function(e){switch(e.type){case"string":case"number":case"date":case"datetime":return{key:e.key.toString(),label:e.label,type:e.type};case"select":return{key:e.key.toString(),label:e.label,type:e.type,options:e.options}}}))}),[d.cols]);return e.jsxs("div",{className:"border-gray-200 bg-gray-200 text-gray-600 rounded-t-md",style:{maxWidth:d.maxWidth},children:[e.jsx("div",{className:"py-2 px-2",children:e.jsx(s.ConditionSearchBar,{id:c.getTableHeaderId(),targets:f,conditions:m,onChangeCondition:y,size:"small"})}),e.jsx("style",{children:"\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n "}),e.jsx("div",{ref:p,className:"relative max-w-full overflow-x-auto teppen-no-scrollbar",children:e.jsxs("div",{className:"flex h-[32px]",children:[d.checkbox&&e.jsx("div",{className:"w-8 h-full",children:e.jsx(i.AllCheckbox,{rows:d.rows})}),d.cols.map((function(t){return e.jsx(o,{keyName:t.key.toString(),label:t.label,colWidth:u(t.key),disableSort:t.disableSort||"datetime"!==t.type&&"date"!==t.type&&!t.editable&&!!t.render,generateSortButton:d.generateSortButton},t.key.toString())}))]})})]})};
2
2
  //# sourceMappingURL=header-v2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-v2.js","sources":["../../../../../src/table/header/header-v2.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { DataObject, DataRecord, TTableColumn } from \"../table/type\";\nimport { useColumnsWidthState } from \"./columns-width\";\nimport { useResizeColWidthHook, useScrollXRef } from \"./header-v2-hook\";\nimport { AllCheckbox } from \"../checkbox/components\";\nimport { ConditionSearchBar } from \"../../search-bar\";\nimport { useTableIdGenerator } from \"../id\";\nimport { useFilter } from \"../filter-v2\";\nimport { TConditionChangeAction } from \"../../search-bar/condition-search-bar/condition-input-management/type\";\n\ninterface IPropsTableHeader<T extends DataRecord> {\n cols: TTableColumn<T>[];\n checkbox?: boolean;\n rows: DataObject<T>[];\n maxWidth?: string;\n generateSortButton?: (columnKey: string) => React.ReactNode;\n}\n\nexport function TableHeader<T extends DataRecord>(props: IPropsTableHeader<T>) {\n const idGenerator = useTableIdGenerator();\n const { getColumnWidth } = useColumnsWidthState();\n const { conditions, addFilter, removeFilter } = useFilter();\n const ref = useScrollXRef();\n\n useEffect(() => {\n if (ref.current) {\n const element = ref.current;\n\n const scrollX = (e: WheelEvent) => {\n if (e.deltaY === 0) return;\n\n e.preventDefault();\n element.scrollLeft += e.deltaY;\n };\n\n element.addEventListener(\"wheel\", scrollX);\n\n return () => {\n element.removeEventListener(\"wheel\", scrollX);\n };\n }\n }, [ref]);\n\n const onChangeCondition = useCallback((action: TConditionChangeAction) => {\n switch (action.type) {\n case \"add\":\n addFilter(action.payload.condition);\n break;\n case \"remove\":\n removeFilter(action.payload.index);\n break;\n }\n }, []);\n\n const targets = useMemo(() => {\n return props.cols\n .filter(\n (col) => !!col.label && (col.editable || (!col.editable && !col.render))\n )\n .map((col) => {\n switch (col.type) {\n case \"string\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"number\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"select\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n options: col.options,\n };\n }\n });\n }, [props.cols]);\n\n return (\n <div\n className=\"border-gray-200 bg-gray-200 text-gray-600 rounded-t-md\"\n style={{ maxWidth: props.maxWidth }}\n >\n <div className=\"py-2 px-2\">\n <ConditionSearchBar\n id={idGenerator.getTableHeaderId()}\n targets={targets}\n conditions={conditions}\n onChangeCondition={onChangeCondition}\n size=\"small\"\n />\n </div>\n\n <style>{`\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n `}</style>\n <div\n ref={ref}\n className=\"relative max-w-full overflow-x-auto teppen-no-scrollbar\"\n >\n <div className=\"flex h-[32px]\">\n {props.checkbox && (\n <div className=\"w-8 h-full\">\n <AllCheckbox rows={props.rows} />\n </div>\n )}\n {props.cols.map((col) => {\n return (\n <HeaderElement\n key={col.key.toString()}\n keyName={col.key.toString()}\n label={col.label}\n colWidth={getColumnWidth(col.key as string)}\n disableSort={col.disableSort || (!col.editable && !!col.render)}\n generateSortButton={props.generateSortButton}\n />\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n\ninterface IPropsHeaderElement {\n keyName: string;\n label?: string;\n colWidth: number;\n disableSort?: boolean;\n generateSortButton?: (columnKey: string) => React.ReactNode;\n}\n\nconst HeaderElement = memo(function HE(props: IPropsHeaderElement) {\n const ref = useRef<HTMLDivElement>(null);\n const { onMouseDownResizeWidth } = useResizeColWidthHook(props.keyName);\n\n const maxWidthLabel = ref.current\n ? props.colWidth - ref.current.clientWidth\n : props.colWidth;\n\n return (\n <div\n className=\"relative\"\n style={{\n width: props.colWidth,\n maxWidth: props.colWidth,\n minWidth: props.colWidth,\n }}\n >\n <div\n className={`flex justify-between items-center bg-gray-200 text-gray-600 h-[32px]`}\n >\n <div className=\"px-2\" style={{ maxWidth: maxWidthLabel }}>\n {props.label && (\n <p\n className={`text-left font-bold text-nowrap overflow-hidden text-ellipsis`}\n >\n {props.label}\n </p>\n )}\n </div>\n\n <div ref={ref} className=\"flex items-center w-fit shrink-0 gap-1 px-1\">\n {!props.disableSort &&\n props.generateSortButton &&\n props.generateSortButton(props.keyName)}\n </div>\n </div>\n <div\n className=\"absolute top-0 right-0 grid place-items-end py-1 w-[4px] h-full cursor-col-resize\"\n onMouseDown={onMouseDownResizeWidth}\n >\n <div className={`w-[1px] h-full bg-white`} />\n </div>\n </div>\n );\n});\n"],"names":["HeaderElement","memo","props","ref","useRef","onMouseDownResizeWidth","useResizeColWidthHook","keyName","maxWidthLabel","current","colWidth","clientWidth","_jsxs","jsxs","className","style","width","maxWidth","minWidth","children","_jsx","jsx","label","disableSort","generateSortButton","onMouseDown","idGenerator","useTableIdGenerator","getColumnWidth","useColumnsWidthState","_a","useFilter","conditions","addFilter","removeFilter","useScrollXRef","useEffect","element_1","scrollX_1","e","deltaY","preventDefault","scrollLeft","addEventListener","removeEventListener","onChangeCondition","useCallback","action","type","payload","condition","index","targets","useMemo","cols","filter","col","editable","render","map","key","toString","options","ConditionSearchBar","id","getTableHeaderId","size","checkbox","AllCheckbox","rows"],"mappings":"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"}
1
+ {"version":3,"file":"header-v2.js","sources":["../../../../../src/table/header/header-v2.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { DataObject, DataRecord, TTableColumn } from \"../table/type\";\nimport { useColumnsWidthState } from \"./columns-width\";\nimport { useResizeColWidthHook, useScrollXRef } from \"./header-v2-hook\";\nimport { AllCheckbox } from \"../checkbox/components\";\nimport { ConditionSearchBar } from \"../../search-bar\";\nimport { useTableIdGenerator } from \"../id\";\nimport { useFilter } from \"../filter-v2\";\nimport { TConditionChangeAction } from \"../../search-bar/condition-search-bar/condition-input-management/type\";\n\ninterface IPropsTableHeader<T extends DataRecord> {\n cols: TTableColumn<T>[];\n checkbox?: boolean;\n rows: DataObject<T>[];\n maxWidth?: string;\n generateSortButton?: (columnKey: string) => React.ReactNode;\n}\n\nexport function TableHeader<T extends DataRecord>(props: IPropsTableHeader<T>) {\n const idGenerator = useTableIdGenerator();\n const { getColumnWidth } = useColumnsWidthState();\n const { conditions, addFilter, removeFilter } = useFilter();\n const ref = useScrollXRef();\n\n useEffect(() => {\n if (ref.current) {\n const element = ref.current;\n\n const scrollX = (e: WheelEvent) => {\n if (e.deltaY === 0) return;\n\n e.preventDefault();\n element.scrollLeft += e.deltaY;\n };\n\n element.addEventListener(\"wheel\", scrollX);\n\n return () => {\n element.removeEventListener(\"wheel\", scrollX);\n };\n }\n }, [ref]);\n\n const onChangeCondition = useCallback((action: TConditionChangeAction) => {\n switch (action.type) {\n case \"add\":\n addFilter(action.payload.condition);\n break;\n case \"remove\":\n removeFilter(action.payload.index);\n break;\n }\n }, []);\n\n const targets = useMemo(() => {\n return props.cols\n .filter(\n (col) =>\n !!col.label &&\n (col.type === \"datetime\" ||\n col.type === \"date\" ||\n col.editable ||\n (!col.editable && !col.render))\n )\n .map((col) => {\n switch (col.type) {\n case \"string\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"number\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"select\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n options: col.options,\n };\n case \"date\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"datetime\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n }\n });\n }, [props.cols]);\n\n return (\n <div\n className=\"border-gray-200 bg-gray-200 text-gray-600 rounded-t-md\"\n style={{ maxWidth: props.maxWidth }}\n >\n <div className=\"py-2 px-2\">\n <ConditionSearchBar\n id={idGenerator.getTableHeaderId()}\n targets={targets}\n conditions={conditions}\n onChangeCondition={onChangeCondition}\n size=\"small\"\n />\n </div>\n\n <style>{`\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n `}</style>\n <div\n ref={ref}\n className=\"relative max-w-full overflow-x-auto teppen-no-scrollbar\"\n >\n <div className=\"flex h-[32px]\">\n {props.checkbox && (\n <div className=\"w-8 h-full\">\n <AllCheckbox rows={props.rows} />\n </div>\n )}\n {props.cols.map((col) => {\n return (\n <HeaderElement\n key={col.key.toString()}\n keyName={col.key.toString()}\n label={col.label}\n colWidth={getColumnWidth(col.key as string)}\n disableSort={\n col.disableSort ||\n (col.type !== \"datetime\" &&\n col.type !== \"date\" &&\n !col.editable &&\n !!col.render)\n }\n generateSortButton={props.generateSortButton}\n />\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n\ninterface IPropsHeaderElement {\n keyName: string;\n label?: string;\n colWidth: number;\n disableSort?: boolean;\n generateSortButton?: (columnKey: string) => React.ReactNode;\n}\n\nconst HeaderElement = memo(function HE(props: IPropsHeaderElement) {\n const ref = useRef<HTMLDivElement>(null);\n const { onMouseDownResizeWidth } = useResizeColWidthHook(props.keyName);\n\n const maxWidthLabel = ref.current\n ? props.colWidth - ref.current.clientWidth\n : props.colWidth;\n\n return (\n <div\n className=\"relative\"\n style={{\n width: props.colWidth,\n maxWidth: props.colWidth,\n minWidth: props.colWidth,\n }}\n >\n <div\n className={`flex justify-between items-center bg-gray-200 text-gray-600 h-[32px]`}\n >\n <div className=\"px-2\" style={{ maxWidth: maxWidthLabel }}>\n {props.label && (\n <p\n className={`text-left font-bold text-nowrap overflow-hidden text-ellipsis`}\n >\n {props.label}\n </p>\n )}\n </div>\n\n <div ref={ref} className=\"flex items-center w-fit shrink-0 gap-1 px-1\">\n {!props.disableSort &&\n props.generateSortButton &&\n props.generateSortButton(props.keyName)}\n </div>\n </div>\n <div\n className=\"absolute top-0 right-0 grid place-items-end py-1 w-[4px] h-full cursor-col-resize\"\n onMouseDown={onMouseDownResizeWidth}\n >\n <div className={`w-[1px] h-full bg-white`} />\n </div>\n </div>\n );\n});\n"],"names":["HeaderElement","memo","props","ref","useRef","onMouseDownResizeWidth","useResizeColWidthHook","keyName","maxWidthLabel","current","colWidth","clientWidth","_jsxs","jsxs","className","style","width","maxWidth","minWidth","children","_jsx","jsx","label","disableSort","generateSortButton","onMouseDown","idGenerator","useTableIdGenerator","getColumnWidth","useColumnsWidthState","_a","useFilter","conditions","addFilter","removeFilter","useScrollXRef","useEffect","element_1","scrollX_1","e","deltaY","preventDefault","scrollLeft","addEventListener","removeEventListener","onChangeCondition","useCallback","action","type","payload","condition","index","targets","useMemo","cols","filter","col","editable","render","map","key","toString","options","ConditionSearchBar","id","getTableHeaderId","size","checkbox","AllCheckbox","rows"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function n(n){var e="入力値が不正のため、エラーを確認し修正してください。\n\n";e+="[対象の列名]: ".concat(n[0].label,"\n"),e+="[入力値]  : ".concat(n[0].value,"\n\n"),e+="[エラー内容]:",e+=n.reduce((function(n,e){switch(e.type){case"STRING_IS_TOO_LONG":return n+"\n・文字数が最大の長さ".concat(e.maxLength,"文字を超えています。(現在").concat(e.currentLength,"文字)");case"STRING_IS_TOO_SHORT":return n+"\n・文字数が最小の長さ".concat(e.minLength,"文字に満たないです。(現在").concat(e.currentLength,"文字)");case"STRING_PATTERN_NOT_MATCH":return n+"\n・パターンに一致しません。(パターン".concat(e.pattern,")");case"NUMBER_IS_TOO_LARGE":return n+"\n・最大値".concat(e.max,"を超えています。(入力値").concat(e.value,")");case"NUMBER_IS_TOO_SMALL":return n+"\n・最小値".concat(e.min,"を下回っています。(入力値").concat(e.value,")");case"NOT_NUMBER":return n+"\n・数値ではない値が入力されています。";case"NOT_IN_OPTIONS":return n+"\n・選択肢に含まれていない値です。"}}),""),alert(e)}exports.generateValidateFunction=function(e,t){if("string"===e.type)return function(e,t,r,a){return function(e){var u=[];return(null==r?void 0:r.maxLength)&&e.length>r.maxLength&&u.push({type:"STRING_IS_TOO_LONG",label:t,maxLength:r.maxLength,currentLength:e.length,value:e}),(null==r?void 0:r.minLength)&&e.length<r.minLength&&u.push({type:"STRING_IS_TOO_SHORT",label:t,minLength:r.minLength,currentLength:e.length,value:e}),(null==r?void 0:r.pattern)&&(new RegExp(r.pattern).test(e)||u.push({type:"STRING_PATTERN_NOT_MATCH",label:t,pattern:r.pattern,value:e})),!(u.length>0&&(a?a(u):n(u),1))}}(e.key,e.label,e.constraints,t);if("number"===e.type)return function(e,t,r,a){return function(e){var u=[];return"string"!=typeof e||/^-?[0-9]+(\.[0-9]+)?$/.test(e)?(e=Number(e),"number"==typeof(null==r?void 0:r.max)&&e>r.max&&u.push({type:"NUMBER_IS_TOO_LARGE",label:t,max:r.max,value:e}),"number"==typeof(null==r?void 0:r.min)&&e<r.min&&u.push({type:"NUMBER_IS_TOO_SMALL",label:t,min:r.min,value:e}),!(u.length>0&&(a?a(u):n(u),1))):(u.push({type:"NOT_NUMBER",label:t,value:e}),a?a(u):n(u),!1)}}(e.key,e.label,e.constraints,t);if("select"===e.type)return function(e,t,r,a,u){var l=new Set(r.map((function(n){return n.label})));return function(e){if(a&&""===e)return!0;var r=[];return l.has(e)||r.push({type:"NOT_IN_OPTIONS",label:t,value:e,options:Array.from(l)}),!(r.length>0&&(u?u(r):n(r),1))}}(e.key,e.label,e.options,e.allowEmpty,t);throw new Error("Invalid type")};
1
+ "use strict";function e(e){var n="入力値が不正のため、エラーを確認し修正してください。\n\n";n+="[対象の列名]: ".concat(e[0].label,"\n"),n+="[入力値]  : ".concat(e[0].value,"\n\n"),n+="[エラー内容]:",n+=e.reduce((function(e,n){switch(n.type){case"STRING_IS_TOO_LONG":return e+"\n・文字数が最大の長さ".concat(n.maxLength,"文字を超えています。(現在").concat(n.currentLength,"文字)");case"STRING_IS_TOO_SHORT":return e+"\n・文字数が最小の長さ".concat(n.minLength,"文字に満たないです。(現在").concat(n.currentLength,"文字)");case"STRING_PATTERN_NOT_MATCH":return e+"\n・パターンに一致しません。(パターン".concat(n.pattern,")");case"NUMBER_IS_TOO_LARGE":return e+"\n・最大値".concat(n.max,"を超えています。(入力値").concat(n.value,")");case"NUMBER_IS_TOO_SMALL":return e+"\n・最小値".concat(n.min,"を下回っています。(入力値").concat(n.value,")");case"NOT_NUMBER":return e+"\n・数値ではない値が入力されています。";case"NOT_IN_OPTIONS":return e+"\n・選択肢に含まれていない値です。";case"NOT_DATE":return e+"\n・日付の形式ではありません。";case"NOT_DATETIME":return e+"\n・日時の形式ではありません。"}}),""),alert(n)}exports.generateValidateFunction=function(n,t){if("string"===n.type)return function(n,t,r,a){return function(n){var u=[];return(null==r?void 0:r.maxLength)&&n.length>r.maxLength&&u.push({type:"STRING_IS_TOO_LONG",label:t,maxLength:r.maxLength,currentLength:n.length,value:n}),(null==r?void 0:r.minLength)&&n.length<r.minLength&&u.push({type:"STRING_IS_TOO_SHORT",label:t,minLength:r.minLength,currentLength:n.length,value:n}),(null==r?void 0:r.pattern)&&(new RegExp(r.pattern).test(n)||u.push({type:"STRING_PATTERN_NOT_MATCH",label:t,pattern:r.pattern,value:n})),!(u.length>0&&(a?a(u):e(u),1))}}(n.key,n.label,n.constraints,t);if("number"===n.type)return function(n,t,r,a){return function(n){var u=[];return"string"!=typeof n||/^-?[0-9]+(\.[0-9]+)?$/.test(n)?(n=Number(n),"number"==typeof(null==r?void 0:r.max)&&n>r.max&&u.push({type:"NUMBER_IS_TOO_LARGE",label:t,max:r.max,value:n}),"number"==typeof(null==r?void 0:r.min)&&n<r.min&&u.push({type:"NUMBER_IS_TOO_SMALL",label:t,min:r.min,value:n}),!(u.length>0&&(a?a(u):e(u),1))):(u.push({type:"NOT_NUMBER",label:t,value:n}),a?a(u):e(u),!1)}}(n.key,n.label,n.constraints,t);if("select"===n.type)return function(n,t,r,a,u){var l=new Set(r.map((function(e){return e.label})));return function(n){if(a&&""===n)return!0;var r=[];return l.has(n)||r.push({type:"NOT_IN_OPTIONS",label:t,value:n,options:Array.from(l)}),!(r.length>0&&(u?u(r):e(r),1))}}(n.key,n.label,n.options,n.allowEmpty,t);if("date"===n.type)return function(n,t,r){return function(n){var a=[];return isNaN(new Date(n).getTime())&&a.push({type:"NOT_DATE",label:t,value:n}),!(a.length>0&&(r?r(a):e(a),1))}}(n.key,n.label,t);if("datetime"===n.type)return function(n,t,r){return function(n){var a=[];return isNaN(new Date(n).getTime())&&a.push({type:"NOT_DATETIME",label:t,value:n}),!(a.length>0&&(r?r(a):e(a),1))}}(n.key,n.label,t);throw new Error("Invalid type")};
2
2
  //# sourceMappingURL=generate-validate-function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-validate-function.js","sources":["../../../../../src/table/libs/generate-validate-function.ts"],"sourcesContent":["export type TStringValidateOption = {\n maxLength?: number;\n minLength?: number;\n pattern?: string;\n};\n\nexport type TNumberValidateOption = {\n max?: number;\n min?: number;\n};\n\ntype TPropsGenerateValidateFunction = {\n key: string;\n label: string;\n} & (\n | {\n type: \"string\";\n constraints?: TStringValidateOption;\n }\n | {\n type: \"number\";\n constraints?: TNumberValidateOption;\n }\n | {\n type: \"select\";\n options: { value: string; label: string }[];\n allowEmpty?: boolean;\n }\n);\n\ntype TStringValidateFunction = (value: string) => boolean;\n\nexport type TErrorValidation = {\n label: string;\n value: string | number;\n} & (\n | {\n type: \"STRING_IS_TOO_LONG\";\n maxLength: number;\n currentLength: number;\n }\n | {\n type: \"STRING_IS_TOO_SHORT\";\n minLength: number;\n currentLength: number;\n }\n | {\n type: \"STRING_PATTERN_NOT_MATCH\";\n pattern: string;\n }\n | {\n type: \"NUMBER_IS_TOO_LARGE\";\n max: number;\n }\n | {\n type: \"NUMBER_IS_TOO_SMALL\";\n min: number;\n }\n | {\n type: \"NOT_NUMBER\";\n }\n | {\n type: \"NOT_IN_OPTIONS\";\n options: string[];\n }\n);\n\nfunction defaultErrorHandler(errors: TErrorValidation[]) {\n let message = `入力値が不正のため、エラーを確認し修正してください。\\n\\n`;\n message += `[対象の列名]: ${errors[0].label}\\n`;\n message += `[入力値]  : ${errors[0].value}\\n\\n`;\n message += `[エラー内容]:`;\n\n message += errors.reduce((acc, error) => {\n switch (error.type) {\n case \"STRING_IS_TOO_LONG\":\n return (\n acc +\n `\\n・文字数が最大の長さ${error.maxLength}文字を超えています。(現在${error.currentLength}文字)`\n );\n case \"STRING_IS_TOO_SHORT\":\n return (\n acc +\n `\\n・文字数が最小の長さ${error.minLength}文字に満たないです。(現在${error.currentLength}文字)`\n );\n case \"STRING_PATTERN_NOT_MATCH\":\n return acc + `\\n・パターンに一致しません。(パターン${error.pattern})`;\n case \"NUMBER_IS_TOO_LARGE\":\n return (\n acc + `\\n・最大値${error.max}を超えています。(入力値${error.value})`\n );\n case \"NUMBER_IS_TOO_SMALL\":\n return (\n acc + `\\n・最小値${error.min}を下回っています。(入力値${error.value})`\n );\n case \"NOT_NUMBER\":\n return acc + `\\n・数値ではない値が入力されています。`;\n case \"NOT_IN_OPTIONS\":\n return acc + `\\n・選択肢に含まれていない値です。`;\n }\n }, \"\");\n\n alert(message);\n}\n\nfunction generateStringValidateFunction(\n key: string,\n label: string,\n constraints?: TStringValidateOption,\n errorHandler?: (errors: TErrorValidation[]) => void\n): TStringValidateFunction {\n return (value: string) => {\n const errors: TErrorValidation[] = [];\n\n if (constraints?.maxLength) {\n if (value.length > constraints.maxLength) {\n errors.push({\n type: \"STRING_IS_TOO_LONG\",\n label,\n maxLength: constraints.maxLength,\n currentLength: value.length,\n value,\n });\n }\n }\n\n if (constraints?.minLength) {\n if (value.length < constraints.minLength) {\n errors.push({\n type: \"STRING_IS_TOO_SHORT\",\n label,\n minLength: constraints.minLength,\n currentLength: value.length,\n value,\n });\n }\n }\n\n if (constraints?.pattern) {\n if (!new RegExp(constraints.pattern).test(value)) {\n errors.push({\n type: \"STRING_PATTERN_NOT_MATCH\",\n label,\n pattern: constraints.pattern,\n value,\n });\n }\n }\n\n if (errors.length > 0) {\n if (errorHandler) {\n errorHandler(errors);\n } else {\n defaultErrorHandler(errors);\n }\n return false;\n }\n\n return true;\n };\n}\n\ntype TNumberValidateFunction = (value: number) => boolean;\n\nfunction generateNumberValidateFunction(\n key: string,\n label: string,\n constraints?: TNumberValidateOption,\n errorHandler?: (errors: TErrorValidation[]) => void\n): TNumberValidateFunction {\n return (value: number | string) => {\n const errors: TErrorValidation[] = [];\n\n if (typeof value === \"string\") {\n // 小数も含めて数値に変換可能な値かを検査\n if (!/^-?[0-9]+(\\.[0-9]+)?$/.test(value)) {\n errors.push({\n type: \"NOT_NUMBER\",\n label,\n value,\n });\n\n if (errorHandler) {\n errorHandler(errors);\n } else {\n defaultErrorHandler(errors);\n }\n return false;\n }\n }\n\n value = Number(value);\n\n if (typeof constraints?.max === \"number\") {\n if (value > constraints.max) {\n errors.push({\n type: \"NUMBER_IS_TOO_LARGE\",\n label,\n max: constraints.max,\n value,\n });\n }\n }\n\n if (typeof constraints?.min === \"number\") {\n if (value < constraints.min) {\n errors.push({\n type: \"NUMBER_IS_TOO_SMALL\",\n label,\n min: constraints.min,\n value,\n });\n }\n }\n\n if (errors.length > 0) {\n if (errorHandler) {\n errorHandler(errors);\n } else {\n defaultErrorHandler(errors);\n }\n return false;\n }\n\n return true;\n };\n}\n\ntype TSelectValidateFunction = (label: string) => boolean;\n\nfunction generatSelectValidateFunction(\n key: string,\n columnLabel: string,\n options: { value: string; label: string }[],\n allowEmpty?: boolean,\n errorHandler?: (errors: TErrorValidation[]) => void\n): TSelectValidateFunction {\n const labelSets = new Set(options.map((option) => option.label));\n return (label: string) => {\n if (allowEmpty && label === \"\") {\n return true;\n }\n\n const errors: TErrorValidation[] = [];\n\n if (!labelSets.has(label)) {\n errors.push({\n type: \"NOT_IN_OPTIONS\",\n label: columnLabel,\n value: label,\n options: Array.from(labelSets),\n });\n }\n\n if (errors.length > 0) {\n if (errorHandler) {\n errorHandler(errors);\n } else {\n defaultErrorHandler(errors);\n }\n return false;\n }\n\n return true;\n };\n}\n\nexport function generateValidateFunction(\n props: TPropsGenerateValidateFunction,\n errorHandler?: (errors: TErrorValidation[]) => void\n) {\n if (props.type === \"string\") {\n return generateStringValidateFunction(\n props.key,\n props.label,\n props.constraints,\n errorHandler\n );\n } else if (props.type === \"number\") {\n return generateNumberValidateFunction(\n props.key,\n props.label,\n props.constraints,\n errorHandler\n );\n } else if (props.type === \"select\") {\n return generatSelectValidateFunction(\n props.key,\n props.label,\n props.options,\n props.allowEmpty,\n errorHandler\n );\n } else {\n throw new Error(\"Invalid type\");\n }\n}\n"],"names":["defaultErrorHandler","errors","message","label","value","reduce","acc","error","type","concat","maxLength","currentLength","minLength","pattern","max","min","alert","props","errorHandler","key","constraints","length","push","RegExp","test","generateStringValidateFunction","Number","generateNumberValidateFunction","columnLabel","options","allowEmpty","labelSets","Set","map","option","has","Array","from","generatSelectValidateFunction","Error"],"mappings":"aAmEA,SAASA,EAAoBC,GAC3B,IAAIC,EAAU,iCACdA,GAAW,mBAAYD,EAAO,GAAGE,MAAK,MACtCD,GAAW,mBAAYD,EAAO,GAAGG,MAAK,QACtCF,GAAW,WAEXA,GAAWD,EAAOI,QAAO,SAACC,EAAKC,GAC7B,OAAQA,EAAMC,MACZ,IAAK,qBACH,OACEF,EACA,eAAeG,OAAAF,EAAMG,UAAS,iBAAAD,OAAgBF,EAAMI,cAAkB,OAE1E,IAAK,sBACH,OACEL,EACA,eAAeG,OAAAF,EAAMK,UAAS,iBAAAH,OAAgBF,EAAMI,cAAkB,OAE1E,IAAK,2BACH,OAAOL,EAAM,uBAAAG,OAAuBF,EAAMM,aAC5C,IAAK,sBACH,OACEP,EAAM,SAAAG,OAASF,EAAMO,IAAG,gBAAAL,OAAeF,EAAMH,MAAK,KAEtD,IAAK,sBACH,OACEE,EAAM,SAAAG,OAASF,EAAMQ,IAAG,iBAAAN,OAAgBF,EAAMH,MAAK,KAEvD,IAAK,aACH,OAAOE,EAAM,uBACf,IAAK,iBACH,OAAOA,EAAM,qBAElB,GAAE,IAEHU,MAAMd,EACR,kCAoKgB,SACde,EACAC,GAEA,GAAmB,WAAfD,EAAMT,KACR,OAvKJ,SACEW,EACAhB,EACAiB,EACAF,GAEA,OAAO,SAACd,GACN,IAAMH,EAA6B,GAqCnC,OAnCImB,aAAW,EAAXA,EAAaV,YACXN,EAAMiB,OAASD,EAAYV,WAC7BT,EAAOqB,KAAK,CACVd,KAAM,qBACNL,MAAKA,EACLO,UAAWU,EAAYV,UACvBC,cAAeP,EAAMiB,OACrBjB,MAAKA,KAKPgB,aAAW,EAAXA,EAAaR,YACXR,EAAMiB,OAASD,EAAYR,WAC7BX,EAAOqB,KAAK,CACVd,KAAM,sBACNL,MAAKA,EACLS,UAAWQ,EAAYR,UACvBD,cAAeP,EAAMiB,OACrBjB,MAAKA,KAKPgB,aAAW,EAAXA,EAAaP,WACV,IAAIU,OAAOH,EAAYP,SAASW,KAAKpB,IACxCH,EAAOqB,KAAK,CACVd,KAAM,2BACNL,MAAKA,EACLU,QAASO,EAAYP,QACrBT,MAAKA,OAKPH,EAAOoB,OAAS,IACdH,EACFA,EAAajB,GAEbD,EAAoBC,GAEf,GAIX,CACF,CAgHWwB,CACLR,EAAME,IACNF,EAAMd,MACNc,EAAMG,YACNF,GAEG,GAAmB,WAAfD,EAAMT,KACf,OAnHJ,SACEW,EACAhB,EACAiB,EACAF,GAEA,OAAO,SAACd,GACN,IAAMH,EAA6B,GAEnC,MAAqB,iBAAVG,GAEJ,wBAAwBoB,KAAKpB,IAgBpCA,EAAQsB,OAAOtB,GAEiB,iBAArBgB,aAAW,EAAXA,EAAaN,MAClBV,EAAQgB,EAAYN,KACtBb,EAAOqB,KAAK,CACVd,KAAM,sBACNL,MAAKA,EACLW,IAAKM,EAAYN,IACjBV,MAAKA,IAKqB,iBAArBgB,aAAW,EAAXA,EAAaL,MAClBX,EAAQgB,EAAYL,KACtBd,EAAOqB,KAAK,CACVd,KAAM,sBACNL,MAAKA,EACLY,IAAKK,EAAYL,IACjBX,MAAKA,MAKPH,EAAOoB,OAAS,IACdH,EACFA,EAAajB,GAEbD,EAAoBC,GAEf,MA7CLA,EAAOqB,KAAK,CACVd,KAAM,aACNL,MAAKA,EACLC,MAAKA,IAGHc,EACFA,EAAajB,GAEbD,EAAoBC,IAEf,EAsCb,CACF,CAqDW0B,CACLV,EAAME,IACNF,EAAMd,MACNc,EAAMG,YACNF,GAEG,GAAmB,WAAfD,EAAMT,KACf,OAxDJ,SACEW,EACAS,EACAC,EACAC,EACAZ,GAEA,IAAMa,EAAY,IAAIC,IAAIH,EAAQI,KAAI,SAACC,GAAW,OAAAA,EAAO/B,UACzD,OAAO,SAACA,GACN,GAAI2B,GAAwB,KAAV3B,EAChB,OAAO,EAGT,IAAMF,EAA6B,GAWnC,OATK8B,EAAUI,IAAIhC,IACjBF,EAAOqB,KAAK,CACVd,KAAM,iBACNL,MAAOyB,EACPxB,MAAOD,EACP0B,QAASO,MAAMC,KAAKN,OAIpB9B,EAAOoB,OAAS,IACdH,EACFA,EAAajB,GAEbD,EAAoBC,GAEf,GAIX,CACF,CAqBWqC,CACLrB,EAAME,IACNF,EAAMd,MACNc,EAAMY,QACNZ,EAAMa,WACNZ,GAGF,MAAM,IAAIqB,MAAM,eAEpB"}
1
+ {"version":3,"file":"generate-validate-function.js","sources":["../../../../../src/table/libs/generate-validate-function.ts"],"sourcesContent":["export type TStringValidateOption = {\n maxLength?: number;\n minLength?: number;\n pattern?: string;\n};\n\nexport type TNumberValidateOption = {\n max?: number;\n min?: number;\n};\n\ntype TPropsGenerateValidateFunction = {\n key: string;\n label: string;\n} & (\n | {\n type: \"string\";\n constraints?: TStringValidateOption;\n }\n | {\n type: \"number\";\n constraints?: TNumberValidateOption;\n }\n | {\n type: \"select\";\n options: { value: string; label: string }[];\n allowEmpty?: boolean;\n }\n | {\n type: \"date\";\n }\n | {\n type: \"datetime\";\n }\n);\n\ntype TStringValidateFunction = (value: string) => boolean;\n\nexport type TErrorValidation = {\n label: string;\n value: string | number;\n} & (\n | {\n type: \"STRING_IS_TOO_LONG\";\n maxLength: number;\n currentLength: number;\n }\n | {\n type: \"STRING_IS_TOO_SHORT\";\n minLength: number;\n currentLength: number;\n }\n | {\n type: \"STRING_PATTERN_NOT_MATCH\";\n pattern: string;\n }\n | {\n type: \"NUMBER_IS_TOO_LARGE\";\n max: number;\n }\n | {\n type: \"NUMBER_IS_TOO_SMALL\";\n min: number;\n }\n | {\n type: \"NOT_NUMBER\";\n }\n | {\n type: \"NOT_IN_OPTIONS\";\n options: string[];\n }\n | {\n type: \"NOT_DATE\";\n }\n | {\n type: \"NOT_DATETIME\";\n }\n);\n\nfunction defaultErrorHandler(errors: TErrorValidation[]) {\n let message = `入力値が不正のため、エラーを確認し修正してください。\\n\\n`;\n message += `[対象の列名]: ${errors[0].label}\\n`;\n message += `[入力値]  : ${errors[0].value}\\n\\n`;\n message += `[エラー内容]:`;\n\n message += errors.reduce((acc, error) => {\n switch (error.type) {\n case \"STRING_IS_TOO_LONG\":\n return (\n acc +\n `\\n・文字数が最大の長さ${error.maxLength}文字を超えています。(現在${error.currentLength}文字)`\n );\n case \"STRING_IS_TOO_SHORT\":\n return (\n acc +\n `\\n・文字数が最小の長さ${error.minLength}文字に満たないです。(現在${error.currentLength}文字)`\n );\n case \"STRING_PATTERN_NOT_MATCH\":\n return acc + `\\n・パターンに一致しません。(パターン${error.pattern})`;\n case \"NUMBER_IS_TOO_LARGE\":\n return (\n acc + `\\n・最大値${error.max}を超えています。(入力値${error.value})`\n );\n case \"NUMBER_IS_TOO_SMALL\":\n return (\n acc + `\\n・最小値${error.min}を下回っています。(入力値${error.value})`\n );\n case \"NOT_NUMBER\":\n return acc + `\\n・数値ではない値が入力されています。`;\n case \"NOT_IN_OPTIONS\":\n return acc + `\\n・選択肢に含まれていない値です。`;\n case \"NOT_DATE\":\n return acc + `\\n・日付の形式ではありません。`;\n case \"NOT_DATETIME\":\n return acc + `\\n・日時の形式ではありません。`;\n }\n }, \"\");\n\n alert(message);\n}\n\nfunction generateStringValidateFunction(\n key: string,\n label: string,\n constraints?: TStringValidateOption,\n errorHandler?: (errors: TErrorValidation[]) => void\n): TStringValidateFunction {\n return (value: string) => {\n const errors: TErrorValidation[] = [];\n\n if (constraints?.maxLength) {\n if (value.length > constraints.maxLength) {\n errors.push({\n type: \"STRING_IS_TOO_LONG\",\n label,\n maxLength: constraints.maxLength,\n currentLength: value.length,\n value,\n });\n }\n }\n\n if (constraints?.minLength) {\n if (value.length < constraints.minLength) {\n errors.push({\n type: \"STRING_IS_TOO_SHORT\",\n label,\n minLength: constraints.minLength,\n currentLength: value.length,\n value,\n });\n }\n }\n\n if (constraints?.pattern) {\n if (!new RegExp(constraints.pattern).test(value)) {\n errors.push({\n type: \"STRING_PATTERN_NOT_MATCH\",\n label,\n pattern: constraints.pattern,\n value,\n });\n }\n }\n\n if (errors.length > 0) {\n if (errorHandler) {\n errorHandler(errors);\n } else {\n defaultErrorHandler(errors);\n }\n return false;\n }\n\n return true;\n };\n}\n\ntype TNumberValidateFunction = (value: number) => boolean;\n\nfunction generateNumberValidateFunction(\n key: string,\n label: string,\n constraints?: TNumberValidateOption,\n errorHandler?: (errors: TErrorValidation[]) => void\n): TNumberValidateFunction {\n return (value: number | string) => {\n const errors: TErrorValidation[] = [];\n\n if (typeof value === \"string\") {\n // 小数も含めて数値に変換可能な値かを検査\n if (!/^-?[0-9]+(\\.[0-9]+)?$/.test(value)) {\n errors.push({\n type: \"NOT_NUMBER\",\n label,\n value,\n });\n\n if (errorHandler) {\n errorHandler(errors);\n } else {\n defaultErrorHandler(errors);\n }\n return false;\n }\n }\n\n value = Number(value);\n\n if (typeof constraints?.max === \"number\") {\n if (value > constraints.max) {\n errors.push({\n type: \"NUMBER_IS_TOO_LARGE\",\n label,\n max: constraints.max,\n value,\n });\n }\n }\n\n if (typeof constraints?.min === \"number\") {\n if (value < constraints.min) {\n errors.push({\n type: \"NUMBER_IS_TOO_SMALL\",\n label,\n min: constraints.min,\n value,\n });\n }\n }\n\n if (errors.length > 0) {\n if (errorHandler) {\n errorHandler(errors);\n } else {\n defaultErrorHandler(errors);\n }\n return false;\n }\n\n return true;\n };\n}\n\ntype TSelectValidateFunction = (label: string) => boolean;\n\nfunction generatSelectValidateFunction(\n key: string,\n columnLabel: string,\n options: { value: string; label: string }[],\n allowEmpty?: boolean,\n errorHandler?: (errors: TErrorValidation[]) => void\n): TSelectValidateFunction {\n const labelSets = new Set(options.map((option) => option.label));\n return (label: string) => {\n if (allowEmpty && label === \"\") {\n return true;\n }\n\n const errors: TErrorValidation[] = [];\n\n if (!labelSets.has(label)) {\n errors.push({\n type: \"NOT_IN_OPTIONS\",\n label: columnLabel,\n value: label,\n options: Array.from(labelSets),\n });\n }\n\n if (errors.length > 0) {\n if (errorHandler) {\n errorHandler(errors);\n } else {\n defaultErrorHandler(errors);\n }\n return false;\n }\n\n return true;\n };\n}\n\ntype TDateValidateFunction = (label: string) => boolean;\n\nfunction generatDateValidateFunction(\n key: string,\n columnLabel: string,\n errorHandler?: (errors: TErrorValidation[]) => void\n): TDateValidateFunction {\n return (value: string) => {\n const errors: TErrorValidation[] = [];\n\n if (isNaN(new Date(value).getTime())) {\n errors.push({\n type: \"NOT_DATE\",\n label: columnLabel,\n value,\n });\n }\n\n if (errors.length > 0) {\n if (errorHandler) {\n errorHandler(errors);\n } else {\n defaultErrorHandler(errors);\n }\n return false;\n }\n\n return true;\n };\n}\n\ntype TDatetimeValidateFunction = (label: string) => boolean;\n\nfunction generatDatetimeValidateFunction(\n key: string,\n columnLabel: string,\n errorHandler?: (errors: TErrorValidation[]) => void\n): TDatetimeValidateFunction {\n return (value: string) => {\n const errors: TErrorValidation[] = [];\n\n if (isNaN(new Date(value).getTime())) {\n errors.push({\n type: \"NOT_DATETIME\",\n label: columnLabel,\n value,\n });\n }\n\n if (errors.length > 0) {\n if (errorHandler) {\n errorHandler(errors);\n } else {\n defaultErrorHandler(errors);\n }\n return false;\n }\n\n return true;\n };\n}\n\nexport function generateValidateFunction(\n props: TPropsGenerateValidateFunction,\n errorHandler?: (errors: TErrorValidation[]) => void\n) {\n if (props.type === \"string\") {\n return generateStringValidateFunction(\n props.key,\n props.label,\n props.constraints,\n errorHandler\n );\n } else if (props.type === \"number\") {\n return generateNumberValidateFunction(\n props.key,\n props.label,\n props.constraints,\n errorHandler\n );\n } else if (props.type === \"select\") {\n return generatSelectValidateFunction(\n props.key,\n props.label,\n props.options,\n props.allowEmpty,\n errorHandler\n );\n } else if (props.type === \"date\") {\n return generatDateValidateFunction(props.key, props.label, errorHandler);\n } else if (props.type === \"datetime\") {\n return generatDatetimeValidateFunction(\n props.key,\n props.label,\n errorHandler\n );\n } else {\n throw new Error(\"Invalid type\");\n }\n}\n"],"names":["defaultErrorHandler","errors","message","label","value","reduce","acc","error","type","concat","maxLength","currentLength","minLength","pattern","max","min","alert","props","errorHandler","key","constraints","length","push","RegExp","test","generateStringValidateFunction","Number","generateNumberValidateFunction","columnLabel","options","allowEmpty","labelSets","Set","map","option","has","Array","from","generatSelectValidateFunction","isNaN","Date","getTime","generatDateValidateFunction","generatDatetimeValidateFunction","Error"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../../edit/provider.js"),r=require("../../sheet/providers.js"),i=require("../../range/provider.js"),o=require("../../copy/provider.js"),u=require("../../id/provider.js"),a=function(e,t){var n,r=document.getElementById(t);if(r){var i=null===(n=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))||void 0===n?void 0:n.set;i&&i.call(r,e);var o=new Event("input",{bubbles:!0});r.dispatchEvent(o)}};exports.KeyboardSetting=function(s){var d=u.useTableIdGenerator(),p=n.useEditContext(),v=i.useRangeContext(),c=o.useCopyActionContext().copy,l=r.useColumnsContext()[v.isSelecting?v.start.colIndex:0];return t.useEffect((function(){var e=function(e){p.isEditing?"Escape"===e.key&&(e.preventDefault(),p.endEditing()):v.isSelecting&&("Enter"===e.key?(e.preventDefault(),v.moveDown()):"Escape"===e.key?(e.preventDefault(),v.reset()):"ArrowRight"===e.key?(e.preventDefault(),e.shiftKey?v.extendRight():v.moveRight()):"ArrowLeft"===e.key?(e.preventDefault(),e.shiftKey?v.extendLeft():v.moveLeft()):"ArrowUp"===e.key?(e.preventDefault(),e.shiftKey?v.extendUp():v.moveUp()):"ArrowDown"===e.key?(e.preventDefault(),e.shiftKey?v.extendDown():v.moveDown()):"F2"===e.key?(e.preventDefault(),p.startEditing()):e.ctrlKey&&"c"===e.key?(e.preventDefault(),c({enableDeprecatedCopy:null==s?void 0:s.enableDeprecatedCopy})):e.altKey||e.ctrlKey||!/^[a-zA-Z0-9]$/.test(e.key)?"Backspace"!==e.key&&"Delete"!==e.key||(e.preventDefault(),e.stopPropagation(),p.startEditing(),setTimeout((function(){a("",d.getEditorId())}),10)):(e.preventDefault(),e.stopPropagation(),p.startEditing(),setTimeout((function(){a(e.key,d.getEditorId())}),10)))};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[v,p.isEditing]),t.useEffect((function(){p.isEditing&&!l.editable&&p.endEditing()}),[p,l]),e.jsx(e.Fragment,{})};
2
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../../edit/provider.js"),r=require("../../sheet/providers.js"),i=require("../../range/provider.js"),o=require("../../copy/provider.js"),d=require("../../id/provider.js"),s=function(e,t){var n,r=document.getElementById(t);if(r){var i=null===(n=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))||void 0===n?void 0:n.set;i&&i.call(r,e);var o=new Event("input",{bubbles:!0});r.dispatchEvent(o)}};exports.KeyboardSetting=function(a){var u=d.useTableIdGenerator(),c=n.useEditContext(),p=i.useRangeContext(),y=o.useCopyActionContext().copy,l=r.useColumnsContext()[p.isSelecting?p.start.colIndex:0];return t.useEffect((function(){var e=function(e){c.isEditing?"Escape"===e.key&&(e.preventDefault(),c.endEditing()):p.isSelecting&&("Enter"===e.key?(e.preventDefault(),p.moveDown()):"Escape"===e.key?(e.preventDefault(),p.reset()):"ArrowRight"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendRightEnd():e.ctrlKey?p.moveRightEnd():e.shiftKey?p.extendRight():p.moveRight()):"ArrowLeft"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendLeftEnd():e.ctrlKey?p.moveLeftEnd():e.shiftKey?p.extendLeft():p.moveLeft()):"ArrowUp"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendTop():e.ctrlKey?p.moveTop():e.shiftKey?p.extendUp():p.moveUp()):"ArrowDown"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendBottom():e.ctrlKey?p.moveBottom():e.shiftKey?p.extendDown():p.moveDown()):"F2"===e.key?(e.preventDefault(),c.startEditing()):e.ctrlKey&&"c"===e.key.toLowerCase()?(e.preventDefault(),y({enableDeprecatedCopy:null==a?void 0:a.enableDeprecatedCopy})):e.altKey||e.ctrlKey||!/^[a-zA-Z0-9]$/.test(e.key)?"Backspace"!==e.key&&"Delete"!==e.key||(e.preventDefault(),e.stopPropagation(),c.startEditing(),setTimeout((function(){s("",u.getEditorId())}),10)):(e.preventDefault(),e.stopPropagation(),c.startEditing(),setTimeout((function(){s(e.key,u.getEditorId())}),10)))};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[p,c.isEditing]),t.useEffect((function(){c.isEditing&&!l.editable&&c.endEditing()}),[c,l]),e.jsx(e.Fragment,{})};
3
3
  //# sourceMappingURL=keyboard-setting.js.map