@teppen/react-ui 1.7.7 → 1.8.1

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 (200) hide show
  1. package/dist/cjs/node_modules/react-icons/bi/index.js +2 -0
  2. package/dist/cjs/node_modules/react-icons/bi/index.js.map +1 -0
  3. package/dist/cjs/node_modules/react-icons/ti/index.js +2 -0
  4. package/dist/cjs/node_modules/react-icons/ti/index.js.map +1 -0
  5. package/dist/cjs/src/search-bar/condition-search-bar/base.js +3 -0
  6. package/dist/cjs/src/search-bar/condition-search-bar/base.js.map +1 -0
  7. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/context.js +2 -0
  8. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/context.js.map +1 -0
  9. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/hook.js +2 -0
  10. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/hook.js.map +1 -0
  11. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/provider.js +2 -0
  12. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/provider.js.map +1 -0
  13. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/reducer.js +2 -0
  14. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/reducer.js.map +1 -0
  15. package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js +3 -0
  16. package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js.map +1 -0
  17. package/dist/cjs/src/search-bar/condition-search-bar/input-form.js +3 -0
  18. package/dist/cjs/src/search-bar/condition-search-bar/input-form.js.map +1 -0
  19. package/dist/cjs/src/search-bar/id-generator/context.js +2 -0
  20. package/dist/cjs/src/search-bar/id-generator/context.js.map +1 -0
  21. package/dist/cjs/src/search-bar/id-generator/provider.js +3 -0
  22. package/dist/cjs/src/select-box/index.js +2 -1
  23. package/dist/cjs/src/select-box/index.js.map +1 -1
  24. package/dist/cjs/src/select-box/options-window/component.js +2 -0
  25. package/dist/cjs/src/select-box/options-window/component.js.map +1 -0
  26. package/dist/cjs/src/select-box/options-window/context.js +2 -0
  27. package/dist/cjs/src/select-box/options-window/context.js.map +1 -0
  28. package/dist/cjs/src/select-box/options-window/hook.js +2 -0
  29. package/dist/cjs/src/select-box/options-window/hook.js.map +1 -0
  30. package/dist/cjs/src/select-box/options-window/provider.js +2 -0
  31. package/dist/cjs/src/select-box/options-window/provider.js.map +1 -0
  32. package/dist/cjs/src/select-box/options-window/reducer.js +2 -0
  33. package/dist/cjs/src/select-box/options-window/reducer.js.map +1 -0
  34. package/dist/cjs/src/select-box/parts/frame.js +1 -1
  35. package/dist/cjs/src/select-box/parts/frame.js.map +1 -1
  36. package/dist/cjs/src/select-box/parts/input-area.js +1 -1
  37. package/dist/cjs/src/select-box/provider.js +3 -0
  38. package/dist/cjs/src/share/search-operator/constant.js +2 -0
  39. package/dist/cjs/src/share/search-operator/constant.js.map +1 -0
  40. package/dist/cjs/src/table/cell/hooks.js +1 -1
  41. package/dist/cjs/src/table/cell/hooks.js.map +1 -1
  42. package/dist/cjs/src/table/checkbox/components.js +1 -1
  43. package/dist/cjs/src/table/filter-v2/context.js +2 -0
  44. package/dist/cjs/src/table/filter-v2/context.js.map +1 -0
  45. package/dist/cjs/src/table/filter-v2/hook.js +2 -0
  46. package/dist/cjs/src/table/filter-v2/hook.js.map +1 -0
  47. package/dist/cjs/src/table/filter-v2/provider.js +2 -0
  48. package/dist/cjs/src/table/filter-v2/provider.js.map +1 -0
  49. package/dist/cjs/src/table/filter-v2/reducer.js +2 -0
  50. package/dist/cjs/src/table/filter-v2/reducer.js.map +1 -0
  51. package/dist/cjs/src/table/frame/frame.js +3 -0
  52. package/dist/cjs/src/table/frame/frame.js.map +1 -0
  53. package/dist/cjs/src/table/header/columns-width/context.js +2 -0
  54. package/dist/cjs/src/table/header/columns-width/context.js.map +1 -0
  55. package/dist/cjs/src/table/header/columns-width/provider.js +3 -0
  56. package/dist/cjs/src/table/header/columns-width/provider.js.map +1 -0
  57. package/dist/cjs/src/table/header/columns-width/reducer.js +2 -0
  58. package/dist/cjs/src/table/header/columns-width/reducer.js.map +1 -0
  59. package/dist/cjs/src/table/header/header-v2-hook.js +2 -0
  60. package/dist/cjs/src/table/header/header-v2-hook.js.map +1 -0
  61. package/dist/cjs/src/table/header/header-v2.js +2 -0
  62. package/dist/cjs/src/table/header/header-v2.js.map +1 -0
  63. package/dist/cjs/src/table/header/header.js +1 -1
  64. package/dist/cjs/src/table/header/x-scroll-position/context.js +2 -0
  65. package/dist/cjs/src/table/header/x-scroll-position/context.js.map +1 -0
  66. package/dist/cjs/src/table/header/x-scroll-position/provider.js +2 -0
  67. package/dist/cjs/src/table/header/x-scroll-position/provider.js.map +1 -0
  68. package/dist/cjs/src/table/header/x-scroll-position/reducer.js +2 -0
  69. package/dist/cjs/src/table/header/x-scroll-position/reducer.js.map +1 -0
  70. package/dist/cjs/src/table/id/id-generator.js +1 -1
  71. package/dist/cjs/src/table/id/id-generator.js.map +1 -1
  72. package/dist/cjs/src/table/range/provider.js +1 -1
  73. package/dist/cjs/src/table/range/provider.js.map +1 -1
  74. package/dist/cjs/src/table/sheet/components.js +1 -1
  75. package/dist/cjs/src/table/sheet/components.js.map +1 -1
  76. package/dist/cjs/src/table/table/base.js +1 -1
  77. package/dist/cjs/src/table/table/component-provider/provider.js +3 -0
  78. package/dist/cjs/src/table/table/component-provider/provider.js.map +1 -0
  79. package/dist/cjs/src/table/table/hook.js +1 -1
  80. package/dist/cjs/src/table/table/hook.js.map +1 -1
  81. package/dist/esm/node_modules/react-icons/bi/index.js +2 -0
  82. package/dist/esm/node_modules/react-icons/bi/index.js.map +1 -0
  83. package/dist/esm/node_modules/react-icons/ti/index.js +2 -0
  84. package/dist/esm/node_modules/react-icons/ti/index.js.map +1 -0
  85. package/dist/esm/src/search-bar/condition-search-bar/base.js +3 -0
  86. package/dist/esm/src/search-bar/condition-search-bar/base.js.map +1 -0
  87. package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/context.js +2 -0
  88. package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/context.js.map +1 -0
  89. package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/hook.js +2 -0
  90. package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/hook.js.map +1 -0
  91. package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/provider.js +2 -0
  92. package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/provider.js.map +1 -0
  93. package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/reducer.js +2 -0
  94. package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/reducer.js.map +1 -0
  95. package/dist/esm/src/search-bar/condition-search-bar/condition-list.js +3 -0
  96. package/dist/esm/src/search-bar/condition-search-bar/condition-list.js.map +1 -0
  97. package/dist/esm/src/search-bar/condition-search-bar/input-form.js +3 -0
  98. package/dist/esm/src/search-bar/condition-search-bar/input-form.js.map +1 -0
  99. package/dist/esm/src/search-bar/id-generator/context.js +2 -0
  100. package/dist/esm/src/search-bar/id-generator/context.js.map +1 -0
  101. package/dist/esm/src/search-bar/id-generator/provider.js +3 -0
  102. package/dist/esm/src/search-bar/id-generator/provider.js.map +1 -0
  103. package/dist/esm/src/select-box/index.js +2 -1
  104. package/dist/esm/src/select-box/index.js.map +1 -1
  105. package/dist/esm/src/select-box/options-window/component.js +2 -0
  106. package/dist/esm/src/select-box/options-window/component.js.map +1 -0
  107. package/dist/esm/src/select-box/options-window/context.js +2 -0
  108. package/dist/esm/src/select-box/options-window/context.js.map +1 -0
  109. package/dist/esm/src/select-box/options-window/hook.js +2 -0
  110. package/dist/esm/src/select-box/options-window/hook.js.map +1 -0
  111. package/dist/esm/src/select-box/options-window/provider.js +2 -0
  112. package/dist/esm/src/select-box/options-window/provider.js.map +1 -0
  113. package/dist/esm/src/select-box/options-window/reducer.js +2 -0
  114. package/dist/esm/src/select-box/options-window/reducer.js.map +1 -0
  115. package/dist/esm/src/select-box/parts/frame.js +1 -1
  116. package/dist/esm/src/select-box/parts/frame.js.map +1 -1
  117. package/dist/esm/src/select-box/parts/input-area.js +1 -1
  118. package/dist/esm/src/select-box/provider.js +3 -0
  119. package/dist/esm/src/select-box/provider.js.map +1 -0
  120. package/dist/esm/src/share/search-operator/constant.js +2 -0
  121. package/dist/esm/src/share/search-operator/constant.js.map +1 -0
  122. package/dist/esm/src/table/cell/hooks.js +1 -1
  123. package/dist/esm/src/table/cell/hooks.js.map +1 -1
  124. package/dist/esm/src/table/checkbox/components.js +1 -1
  125. package/dist/esm/src/table/filter-v2/context.js +2 -0
  126. package/dist/esm/src/table/filter-v2/context.js.map +1 -0
  127. package/dist/esm/src/table/filter-v2/hook.js +2 -0
  128. package/dist/esm/src/table/filter-v2/hook.js.map +1 -0
  129. package/dist/esm/src/table/filter-v2/provider.js +2 -0
  130. package/dist/esm/src/table/filter-v2/provider.js.map +1 -0
  131. package/dist/esm/src/table/filter-v2/reducer.js +2 -0
  132. package/dist/esm/src/table/filter-v2/reducer.js.map +1 -0
  133. package/dist/esm/src/table/frame/frame.js +3 -0
  134. package/dist/esm/src/table/frame/frame.js.map +1 -0
  135. package/dist/esm/src/table/header/columns-width/context.js +2 -0
  136. package/dist/esm/src/table/header/columns-width/context.js.map +1 -0
  137. package/dist/esm/src/table/header/columns-width/provider.js +3 -0
  138. package/dist/esm/src/table/header/columns-width/provider.js.map +1 -0
  139. package/dist/esm/src/table/header/columns-width/reducer.js +2 -0
  140. package/dist/esm/src/table/header/columns-width/reducer.js.map +1 -0
  141. package/dist/esm/src/table/header/header-v2-hook.js +2 -0
  142. package/dist/esm/src/table/header/header-v2-hook.js.map +1 -0
  143. package/dist/esm/src/table/header/header-v2.js +2 -0
  144. package/dist/esm/src/table/header/header-v2.js.map +1 -0
  145. package/dist/esm/src/table/header/header.js +1 -1
  146. package/dist/esm/src/table/header/x-scroll-position/context.js +2 -0
  147. package/dist/esm/src/table/header/x-scroll-position/context.js.map +1 -0
  148. package/dist/esm/src/table/header/x-scroll-position/provider.js +2 -0
  149. package/dist/esm/src/table/header/x-scroll-position/provider.js.map +1 -0
  150. package/dist/esm/src/table/header/x-scroll-position/reducer.js +2 -0
  151. package/dist/esm/src/table/header/x-scroll-position/reducer.js.map +1 -0
  152. package/dist/esm/src/table/id/id-generator.js +1 -1
  153. package/dist/esm/src/table/id/id-generator.js.map +1 -1
  154. package/dist/esm/src/table/range/provider.js +1 -1
  155. package/dist/esm/src/table/range/provider.js.map +1 -1
  156. package/dist/esm/src/table/sheet/components.js +1 -1
  157. package/dist/esm/src/table/sheet/components.js.map +1 -1
  158. package/dist/esm/src/table/table/base.js +1 -1
  159. package/dist/esm/src/table/table/component-provider/provider.js +3 -0
  160. package/dist/esm/src/table/table/component-provider/provider.js.map +1 -0
  161. package/dist/esm/src/table/table/hook.js +1 -1
  162. package/dist/esm/src/table/table/hook.js.map +1 -1
  163. package/dist/index.d.ts +2 -0
  164. package/package.json +1 -1
  165. package/dist/cjs/src/select-box/parts/options-area.js +0 -2
  166. package/dist/cjs/src/select-box/parts/options-area.js.map +0 -1
  167. package/dist/cjs/src/table/filter/components.js +0 -3
  168. package/dist/cjs/src/table/filter/components.js.map +0 -1
  169. package/dist/cjs/src/table/filter/constants.js +0 -2
  170. package/dist/cjs/src/table/filter/constants.js.map +0 -1
  171. package/dist/cjs/src/table/filter/filter-icon.js +0 -2
  172. package/dist/cjs/src/table/filter/filter-icon.js.map +0 -1
  173. package/dist/cjs/src/table/filter/hooks/selectedFilteringColumn/hooks.js +0 -2
  174. package/dist/cjs/src/table/filter/hooks/selectedFilteringColumn/hooks.js.map +0 -1
  175. package/dist/cjs/src/table/filter/hooks/selectedFilteringColumn/provider.js +0 -2
  176. package/dist/cjs/src/table/filter/hooks/selectedFilteringColumn/provider.js.map +0 -1
  177. package/dist/cjs/src/table/filter/hooks.js +0 -2
  178. package/dist/cjs/src/table/filter/hooks.js.map +0 -1
  179. package/dist/cjs/src/table/filter/provider.js +0 -3
  180. package/dist/cjs/src/table/header/resize-col-width-hook.js +0 -2
  181. package/dist/cjs/src/table/header/resize-col-width-hook.js.map +0 -1
  182. package/dist/esm/src/select-box/parts/options-area.js +0 -2
  183. package/dist/esm/src/select-box/parts/options-area.js.map +0 -1
  184. package/dist/esm/src/table/filter/components.js +0 -3
  185. package/dist/esm/src/table/filter/components.js.map +0 -1
  186. package/dist/esm/src/table/filter/constants.js +0 -2
  187. package/dist/esm/src/table/filter/constants.js.map +0 -1
  188. package/dist/esm/src/table/filter/filter-icon.js +0 -2
  189. package/dist/esm/src/table/filter/filter-icon.js.map +0 -1
  190. package/dist/esm/src/table/filter/hooks/selectedFilteringColumn/hooks.js +0 -2
  191. package/dist/esm/src/table/filter/hooks/selectedFilteringColumn/hooks.js.map +0 -1
  192. package/dist/esm/src/table/filter/hooks/selectedFilteringColumn/provider.js +0 -2
  193. package/dist/esm/src/table/filter/hooks/selectedFilteringColumn/provider.js.map +0 -1
  194. package/dist/esm/src/table/filter/hooks.js +0 -2
  195. package/dist/esm/src/table/filter/hooks.js.map +0 -1
  196. package/dist/esm/src/table/filter/provider.js +0 -3
  197. package/dist/esm/src/table/header/resize-col-width-hook.js +0 -2
  198. package/dist/esm/src/table/header/resize-col-width-hook.js.map +0 -1
  199. /package/dist/cjs/src/{table/filter → search-bar/id-generator}/provider.js.map +0 -0
  200. /package/dist/{esm/src/table/filter → cjs/src/select-box}/provider.js.map +0 -0
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{jsx as e,jsxs as n}from"react/jsx-runtime";import{memo as t,useRef as r,useEffect as i}from"react";import{SelectBoxProvider as o}from"../../select-box/provider.js";import"../id-generator/context.js";import{IdGeneratorProvider as l}from"../id-generator/provider.js";import{ConditionInputProvider as s}from"./condition-input-management/provider.js";import"./condition-input-management/context.js";import{ConditionList as a}from"./condition-list.js";import{SearchBarInputForm as c}from"./input-form.js";import{BiSearchAlt as d}from"../../../node_modules/react-icons/bi/index.js";var m=t((function(n){return e(o,{children:e(l,{id:n.id,children:e(s,{targets:n.targets,onChangeCondition:n.onChangeCondition,children:e(p,{size:n.size,conditions:n.conditions})})})})}));function p(t){var o=r(null);return i((function(){if(o.current){var e=o.current,n=function(n){0!==n.deltaY&&(n.preventDefault(),e.scrollLeft+=n.deltaY)};return e.addEventListener("wheel",n),function(){e.removeEventListener("wheel",n)}}}),[o]),n("div",{className:"flex items-center gap-1 w-full px-2 py-1 bg-white border border-slate-700 rounded-md text-gray-800 ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),children:[e("div",{className:"px-2",children:e(d,{className:"text-slate-600"})}),n("div",{ref:o,className:"relative flex w-full items-center gap-1 overflow-x-auto teppen-no-scrollbar",children:[e("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(a,{conditions:t.conditions}),e("div",{className:"flex items-center min-w-64 w-full",children:e(c,{size:t.size})})]})]})}export{m as ConditionSearchBar,p as SearchBar};
3
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ import{createContext as n,useContext as t}from"react";var r=n(null),i=n(null);function o(){var n=t(r);if(!n)throw new Error("useConditionInputState must be used within a ConditionInputProvider");return n}function u(){var n=t(i);if(!n)throw new Error("useConditionInputAction must be used within a ConditionInputProvider");return n}export{i as ConditionInputActionContext,r as ConditionInputStateContext,u as useConditionInputAction,o as useConditionInputState};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../../../../../src/search-bar/condition-search-bar/condition-input-management/context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport {\n TConditionInputActionContext,\n TConditionInputStateContext,\n} from \"./type\";\n\nexport const ConditionInputStateContext =\n createContext<TConditionInputStateContext | null>(null);\n\nexport const ConditionInputActionContext =\n createContext<TConditionInputActionContext | null>(null);\n\nexport function useConditionInputState() {\n const context = useContext(ConditionInputStateContext);\n\n if (!context) {\n throw new Error(\n \"useConditionInputState must be used within a ConditionInputProvider\"\n );\n }\n\n return context;\n}\n\nexport function useConditionInputAction() {\n const context = useContext(ConditionInputActionContext);\n\n if (!context) {\n throw new Error(\n \"useConditionInputAction must be used within a ConditionInputProvider\"\n );\n }\n\n return context;\n}\n\nexport function useConditionInput() {\n return {\n state: useConditionInputState(),\n actions: useConditionInputAction(),\n };\n}\n"],"names":["ConditionInputStateContext","createContext","ConditionInputActionContext","useConditionInputState","context","useContext","Error","useConditionInputAction"],"mappings":"0DAMaA,EACXC,EAAkD,MAEvCC,EACXD,EAAmD,eAErCE,IACd,IAAMC,EAAUC,EAAWL,GAE3B,IAAKI,EACH,MAAM,IAAIE,MACR,uEAIJ,OAAOF,CACT,UAEgBG,IACd,IAAMH,EAAUC,EAAWH,GAE3B,IAAKE,EACH,MAAM,IAAIE,MACR,wEAIJ,OAAOF,CACT"}
@@ -0,0 +1,2 @@
1
+ import{useReducer as t,useEffect as e,useMemo as n}from"react";import{conditionInputReducer as o}from"./reducer.js";var r=function(r,a){var p=t(o,{targets:r,status:"waiting for input"}),i=p[0],u=p[1];e((function(){i.changeAction&&(a(i.changeAction),u({type:"executedChangeAction"}))}),[i.changeAction]);var c=n((function(){return{inputTarget:function(t){u({type:"inputTarget",payload:{targetKey:t}})},inputOperator:function(t){u({type:"inputOperator",payload:{operatorKey:t}})},inputValue:function(t){u({type:"inputValue",payload:t})},deleteCondition:function(t){u({type:"deleteCondition",payload:{index:t}})},reset:function(){u({type:"reset"})},updateTargets:function(t){u({type:"updateTargets",payload:{targets:t}})},removeInputedTarget:function(){u({type:"removeInputedTarget"})},removeInputedOperator:function(){u({type:"removeInputedOperator"})}}}),[]);return{state:i,actions:c}};export{r as useConditionInputHook};
2
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.js","sources":["../../../../../../src/search-bar/condition-search-bar/condition-input-management/hook.ts"],"sourcesContent":["import { useEffect, useMemo, useReducer } from \"react\";\nimport { SearchInput, Target, TConditionInputHook } from \"./type\";\nimport { conditionInputReducer } from \"./reducer\";\n\nexport const useConditionInputHook: TConditionInputHook = (\n targets,\n onChangeCondition\n) => {\n const [state, dispatch] = useReducer(conditionInputReducer, {\n targets,\n status: \"waiting for input\",\n });\n\n useEffect(() => {\n if (state.changeAction) {\n onChangeCondition(state.changeAction);\n dispatch({ type: \"executedChangeAction\" });\n }\n }, [state.changeAction]);\n\n const actions = useMemo(\n () => ({\n inputTarget: (targetKey: string) => {\n dispatch({ type: \"inputTarget\", payload: { targetKey } });\n },\n inputOperator: (operatorKey: string) => {\n dispatch({ type: \"inputOperator\", payload: { operatorKey } });\n },\n inputValue: (value: SearchInput) => {\n dispatch({ type: \"inputValue\", payload: value });\n },\n deleteCondition: (index: number) => {\n dispatch({ type: \"deleteCondition\", payload: { index } });\n },\n reset: () => {\n dispatch({ type: \"reset\" });\n },\n updateTargets: (targets: Target[]) => {\n dispatch({ type: \"updateTargets\", payload: { targets } });\n },\n removeInputedTarget: () => {\n dispatch({ type: \"removeInputedTarget\" });\n },\n removeInputedOperator: () => {\n dispatch({ type: \"removeInputedOperator\" });\n },\n }),\n []\n );\n\n return {\n state,\n actions,\n };\n};\n"],"names":["useConditionInputHook","targets","onChangeCondition","_a","useReducer","conditionInputReducer","status","state","dispatch","useEffect","changeAction","type","actions","useMemo","inputTarget","targetKey","payload","inputOperator","operatorKey","inputValue","value","deleteCondition","index","reset","updateTargets","removeInputedTarget","removeInputedOperator"],"mappings":"oHAIa,IAAAA,EAA6C,SACxDC,EACAC,GAEM,IAAAC,EAAoBC,EAAWC,EAAuB,CAC1DJ,QAAOA,EACPK,OAAQ,sBAFHC,EAAKJ,EAAA,GAAEK,OAKdC,GAAU,WACJF,EAAMG,eACRR,EAAkBK,EAAMG,cACxBF,EAAS,CAAEG,KAAM,yBAErB,GAAG,CAACJ,EAAMG,eAEV,IAAME,EAAUC,GACd,WAAM,MAAC,CACLC,YAAa,SAACC,GACZP,EAAS,CAAEG,KAAM,cAAeK,QAAS,CAAED,UAASA,IACrD,EACDE,cAAe,SAACC,GACdV,EAAS,CAAEG,KAAM,gBAAiBK,QAAS,CAAEE,YAAWA,IACzD,EACDC,WAAY,SAACC,GACXZ,EAAS,CAAEG,KAAM,aAAcK,QAASI,GACzC,EACDC,gBAAiB,SAACC,GAChBd,EAAS,CAAEG,KAAM,kBAAmBK,QAAS,CAAEM,MAAKA,IACrD,EACDC,MAAO,WACLf,EAAS,CAAEG,KAAM,SAClB,EACDa,cAAe,SAACvB,GACdO,EAAS,CAAEG,KAAM,gBAAiBK,QAAS,CAAEf,QAAOA,IACrD,EACDwB,oBAAqB,WACnBjB,EAAS,CAAEG,KAAM,uBAClB,EACDe,sBAAuB,WACrBlB,EAAS,CAAEG,KAAM,yBAClB,EAxBG,GA0BN,IAGF,MAAO,CACLJ,MAAKA,EACLK,QAAOA,EAEX"}
@@ -0,0 +1,2 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{ConditionInputStateContext as o,ConditionInputActionContext as t}from"./context.js";import{useConditionInputHook as e}from"./hook.js";function i(i){var n=e(i.targets,i.onChangeCondition),a=n.state,c=n.actions;return r(o.Provider,{value:a,children:r(t.Provider,{value:c,children:i.children})})}export{i as ConditionInputProvider};
2
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sources":["../../../../../../src/search-bar/condition-search-bar/condition-input-management/provider.tsx"],"sourcesContent":["import {\n ConditionInputActionContext,\n ConditionInputStateContext,\n} from \"./context\";\nimport { useConditionInputHook } from \"./hook\";\nimport { Target, TConditionChangeAction } from \"./type\";\n\nexport function ConditionInputProvider(props: {\n children: React.ReactNode;\n targets: Target[];\n onChangeCondition: (action: TConditionChangeAction) => void;\n}) {\n const { state, actions } = useConditionInputHook(\n props.targets,\n props.onChangeCondition\n );\n\n return (\n <ConditionInputStateContext.Provider value={state}>\n <ConditionInputActionContext.Provider value={actions}>\n {props.children}\n </ConditionInputActionContext.Provider>\n </ConditionInputStateContext.Provider>\n );\n}\n"],"names":["ConditionInputProvider","props","_a","useConditionInputHook","targets","onChangeCondition","state","actions","_jsx","ConditionInputStateContext","Provider","value","children","ConditionInputActionContext"],"mappings":"qLAOM,SAAUA,EAAuBC,GAK/B,IAAAC,EAAqBC,EACzBF,EAAMG,QACNH,EAAMI,mBAFAC,UAAOC,YAKf,OACEC,EAACC,EAA2BC,UAASC,MAAOL,EAAKM,SAC/CJ,EAACK,EAA4BH,SAAQ,CAACC,MAAOJ,EAAOK,SACjDX,EAAMW,YAIf"}
@@ -0,0 +1,2 @@
1
+ import{__assign as t}from"../../../../node_modules/tslib/tslib.es6.js";import{DEFAULT_SEARCH_OPERATOR as e}from"../../../share/search-operator/constant.js";var n=function(n,r){switch(r.type){case"inputTarget":if("waiting for input"!==n.status)return n;var a=n.targets.find((function(t){return t.key===r.payload.targetKey}));return a?{targets:n.targets,status:"inputted target",inputtingCondition:{type:a.type,target:a},useableOperators:e.filter((function(t){return t.type===a.type}))}:n;case"inputOperator":if("inputted target"!==n.status)return n;var i=e.find((function(t){return t.key===r.payload.operatorKey}));return i?i.type!==n.inputtingCondition.target.type?n:"none"===i.inputType?{targets:n.targets,changeAction:{type:"add",payload:{condition:{target:n.inputtingCondition.target,operator:i,input:{type:"none"}}}},status:"waiting for input"}:{targets:n.targets,status:"inputted operator",inputtingCondition:{type:n.inputtingCondition.target.type,target:n.inputtingCondition.target,operator:i}}:n;case"inputValue":return"inputted operator"!==n.status?n:{targets:n.targets,changeAction:{type:"add",payload:{condition:{target:n.inputtingCondition.target,operator:n.inputtingCondition.operator,input:r.payload}}},status:"waiting for input"};case"deleteCondition":return t(t({},n),{changeAction:{type:"remove",payload:{index:r.payload.index}}});case"reset":return{targets:n.targets,status:"waiting for input"};case"updateTargets":return{targets:r.payload.targets,status:"waiting for input"};case"removeInputedTarget":return"inputted target"!=n.status&&"inputted operator"!=n.status?n:{targets:n.targets,status:"waiting for input"};case"removeInputedOperator":return"inputted operator"!==n.status?n:{targets:n.targets,status:"inputted target",inputtingCondition:{type:n.inputtingCondition.target.type,target:n.inputtingCondition.target},useableOperators:e.filter((function(t){return t.type===n.inputtingCondition.target.type}))};case"executedChangeAction":return t(t({},n),{changeAction:void 0})}};export{n as conditionInputReducer};
2
+ //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sources":["../../../../../../src/search-bar/condition-search-bar/condition-input-management/reducer.ts"],"sourcesContent":["import { DEFAULT_SEARCH_OPERATOR } from \"../../../share/search-operator\";\nimport { TConditionInputReducer } from \"./type\";\n\nexport const conditionInputReducer: TConditionInputReducer = (\n state,\n action\n) => {\n switch (action.type) {\n case \"inputTarget\": {\n if (state.status !== \"waiting for input\") {\n return state;\n }\n\n const target = state.targets.find(\n (t) => t.key === action.payload.targetKey\n );\n\n if (!target) {\n return state;\n }\n\n return {\n targets: state.targets,\n status: \"inputted target\",\n inputtingCondition: {\n type: target.type,\n target,\n },\n useableOperators: DEFAULT_SEARCH_OPERATOR.filter(\n (o) => o.type === target.type\n ),\n };\n }\n\n case \"inputOperator\": {\n if (state.status !== \"inputted target\") {\n return state;\n }\n\n const operator = DEFAULT_SEARCH_OPERATOR.find(\n (o) => o.key === action.payload.operatorKey\n );\n\n if (!operator) {\n return state;\n }\n\n if (operator.type !== state.inputtingCondition.target.type) {\n return state;\n }\n\n if (operator.inputType === \"none\") {\n return {\n targets: state.targets,\n changeAction: {\n type: \"add\",\n payload: {\n condition: {\n target: state.inputtingCondition.target,\n operator,\n input: {\n type: \"none\",\n },\n },\n },\n },\n status: \"waiting for input\",\n };\n }\n\n return {\n targets: state.targets,\n status: \"inputted operator\",\n inputtingCondition: {\n type: state.inputtingCondition.target.type,\n target: state.inputtingCondition.target,\n operator,\n },\n };\n }\n\n case \"inputValue\": {\n if (state.status !== \"inputted operator\") {\n return state;\n }\n\n return {\n targets: state.targets,\n changeAction: {\n type: \"add\",\n payload: {\n condition: {\n target: state.inputtingCondition.target,\n operator: state.inputtingCondition.operator,\n input: action.payload,\n },\n },\n },\n status: \"waiting for input\",\n };\n }\n\n case \"deleteCondition\": {\n return {\n ...state,\n changeAction: {\n type: \"remove\",\n payload: {\n index: action.payload.index,\n },\n },\n };\n }\n\n case \"reset\": {\n return {\n targets: state.targets,\n status: \"waiting for input\",\n };\n }\n\n case \"updateTargets\": {\n return {\n targets: action.payload.targets,\n status: \"waiting for input\",\n };\n }\n\n case \"removeInputedTarget\": {\n if (\n !(\n state.status == \"inputted target\" ||\n state.status == \"inputted operator\"\n )\n ) {\n return state;\n }\n\n return {\n targets: state.targets,\n status: \"waiting for input\",\n };\n }\n\n case \"removeInputedOperator\": {\n if (state.status !== \"inputted operator\") {\n return state;\n }\n\n return {\n targets: state.targets,\n status: \"inputted target\",\n inputtingCondition: {\n type: state.inputtingCondition.target.type,\n target: state.inputtingCondition.target,\n },\n useableOperators: DEFAULT_SEARCH_OPERATOR.filter(\n (o) => o.type === state.inputtingCondition.target.type\n ),\n };\n }\n\n case \"executedChangeAction\": {\n return {\n ...state,\n changeAction: undefined,\n };\n }\n }\n};\n"],"names":["conditionInputReducer","state","action","type","status","target_1","targets","find","t","key","payload","targetKey","inputtingCondition","target","useableOperators","DEFAULT_SEARCH_OPERATOR","filter","o","operator","operatorKey","inputType","changeAction","condition","input","__assign","index","undefined"],"mappings":"4JAGa,IAAAA,EAAgD,SAC3DC,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,cACH,GAAqB,sBAAjBF,EAAMG,OACR,OAAOH,EAGT,IAAMI,EAASJ,EAAMK,QAAQC,MAC3B,SAACC,GAAM,OAAAA,EAAEC,MAAQP,EAAOQ,QAAQC,SAAS,IAG3C,OAAKN,EAIE,CACLC,QAASL,EAAMK,QACfF,OAAQ,kBACRQ,mBAAoB,CAClBT,KAAME,EAAOF,KACbU,OAAMR,GAERS,iBAAkBC,EAAwBC,QACxC,SAACC,GAAM,OAAAA,EAAEd,OAASE,EAAOF,SAXpBF,EAgBX,IAAK,gBACH,GAAqB,oBAAjBA,EAAMG,OACR,OAAOH,EAGT,IAAMiB,EAAWH,EAAwBR,MACvC,SAACU,GAAM,OAAAA,EAAER,MAAQP,EAAOQ,QAAQS,WAAW,IAG7C,OAAKD,EAIDA,EAASf,OAASF,EAAMW,mBAAmBC,OAAOV,KAC7CF,EAGkB,SAAvBiB,EAASE,UACJ,CACLd,QAASL,EAAMK,QACfe,aAAc,CACZlB,KAAM,MACNO,QAAS,CACPY,UAAW,CACTT,OAAQZ,EAAMW,mBAAmBC,OACjCK,SAAQA,EACRK,MAAO,CACLpB,KAAM,WAKdC,OAAQ,qBAIL,CACLE,QAASL,EAAMK,QACfF,OAAQ,oBACRQ,mBAAoB,CAClBT,KAAMF,EAAMW,mBAAmBC,OAAOV,KACtCU,OAAQZ,EAAMW,mBAAmBC,OACjCK,SAAQA,IAhCHjB,EAqCX,IAAK,aACH,MAAqB,sBAAjBA,EAAMG,OACDH,EAGF,CACLK,QAASL,EAAMK,QACfe,aAAc,CACZlB,KAAM,MACNO,QAAS,CACPY,UAAW,CACTT,OAAQZ,EAAMW,mBAAmBC,OACjCK,SAAUjB,EAAMW,mBAAmBM,SACnCK,MAAOrB,EAAOQ,WAIpBN,OAAQ,qBAIZ,IAAK,kBACH,OACKoB,EAAAA,EAAA,CAAA,EAAAvB,GACH,CAAAoB,aAAc,CACZlB,KAAM,SACNO,QAAS,CACPe,MAAOvB,EAAOQ,QAAQe,UAM9B,IAAK,QACH,MAAO,CACLnB,QAASL,EAAMK,QACfF,OAAQ,qBAIZ,IAAK,gBACH,MAAO,CACLE,QAASJ,EAAOQ,QAAQJ,QACxBF,OAAQ,qBAIZ,IAAK,sBACH,MAEoB,mBAAhBH,EAAMG,QACU,qBAAhBH,EAAMG,OAGDH,EAGF,CACLK,QAASL,EAAMK,QACfF,OAAQ,qBAIZ,IAAK,wBACH,MAAqB,sBAAjBH,EAAMG,OACDH,EAGF,CACLK,QAASL,EAAMK,QACfF,OAAQ,kBACRQ,mBAAoB,CAClBT,KAAMF,EAAMW,mBAAmBC,OAAOV,KACtCU,OAAQZ,EAAMW,mBAAmBC,QAEnCC,iBAAkBC,EAAwBC,QACxC,SAACC,GAAM,OAAAA,EAAEd,OAASF,EAAMW,mBAAmBC,OAAOV,IAA3C,KAKb,IAAK,uBACH,OAAAqB,EAAAA,EAAA,GACKvB,GAAK,CACRoB,kBAAcK,IAItB"}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useConditionInputAction as n}from"./condition-input-management/context.js";import"react";import"../../../node_modules/tslib/tslib.es6.js";import{TiDeleteOutline as a}from"../../../node_modules/react-icons/ti/index.js";function r(t){return e("div",{className:"flex gap-1",children:t.conditions.map((function(t,n){return e(o,{index:n,condition:t},n)}))})}function o(r){var o=n().deleteCondition;return t("div",{className:"flex items-center gap-2 w-fit px-2 border-2 border-sky-600 rounded shadow",children:[e("p",{className:"whitespace-nowrap",children:c(r.condition)}),e("div",{children:e(a,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:function(){return o(r.index)}})})]})}function c(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(", "))}}export{r as ConditionList};
3
+ //# sourceMappingURL=condition-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition-list.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import{useState as i}from"react";import{SelectBox as o}from"../../select-box/index.js";import{useConditionInputState as r,useConditionInputAction as a}from"./condition-input-management/context.js";import"../../../node_modules/tslib/tslib.es6.js";import{useIdGenerator as l}from"../id-generator/context.js";import{TiDeleteOutline as u}from"../../../node_modules/react-icons/ti/index.js";function p(t){switch(r().status){case"waiting for input":return e(c,{});case"inputted target":return e(s,{});case"inputted operator":return e(d,{size:t.size})}}function c(){var t=l().generateId,n=r().targets,i=a().inputTarget;return e(o,{id:t("TargetInput"),onSelect:function(e){i(e)},options:n.map((function(e){return{value:e.key,label:e.label}})),placeholder:"Select target",no_appearance:!0,no_icon:!0})}function s(){var i=l().generateId,u=r(),p=a(),c=p.inputOperator,s=p.removeInputedTarget;if("inputted target"!==u.status)return null;var d=u.inputtingCondition.target,g=u.useableOperators;return t(n,{children:[e(v,{label:d.label,onClickDelete:function(){s()}}),e("div",{className:"w-full min-w-64",children:e(o,{id:i("OperatorInput"),onSelect:function(e){c(e),setTimeout((function(){var e=document.getElementById(i("ValueInput"));e&&e.focus()}),10)},options:g.map((function(e){return{value:e.key,label:e.label}})),defaultIsOpen:!0,placeholder:"Select operator",no_appearance:!0,no_icon:!0})})]})}function d(i){var o=r(),l=a(),u=l.removeInputedOperator,p=l.removeInputedTarget;if("inputted operator"!==o.status)return null;var c=o.inputtingCondition.target,s=o.inputtingCondition.operator;return t(n,{children:[e(v,{label:c.label,onClickDelete:function(){p()}}),e(v,{label:s.label,onClickDelete:function(){u()}}),"single string"===o.inputtingCondition.operator.inputType?e(g,{inputType:"single string",size:i.size}):"single number"===o.inputtingCondition.operator.inputType?e(m,{inputType:"single number",size:i.size}):"select"===o.inputtingCondition.operator.inputType?e(f,{inputType:"select",options:"select"===o.inputtingCondition.target.type?o.inputtingCondition.target.options:[]}):console.error("Not implemented")]})}function g(t){var n=l().generateId,o=i(""),r=o[0],u=o[1],p=a().inputValue;return e("input",{id:n("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:r,onChange:function(e){u(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(p({type:t.inputType,payload:{value:r}}),u(""))}})}function m(t){var n=l().generateId,o=i(""),r=o[0],u=o[1],p=a().inputValue;return e("input",{id:n("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:r,onChange:function(e){u(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(p({type:t.inputType,payload:{value:Number(r)}}),u(""))}})}function f(t){var n=a().inputValue,i=l().generateId;return e("div",{className:"w-full min-w-64",children:e(o,{id:i("ValueInput"),onSelect:function(e){n({type:t.inputType,payload:{value:e}})},options:t.options,defaultIsOpen:!0,placeholder:"Select value",no_appearance:!0,no_icon:!0})})}function v(n){return t("div",{className:"flex items-center gap-2 w-fit px-2 border rounded bg-slate-100",children:[e("p",{className:"whitespace-nowrap",children:n.label}),n.onClickDelete&&e("div",{children:e(u,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:n.onClickDelete})})]})}export{p as SearchBarInputForm};
3
+ //# sourceMappingURL=input-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-form.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ import{createContext as r,useContext as e}from"react";var t=r(null);function o(){var r=e(t);if(!r)throw new Error("useIdGenerator must be used within a IdGeneratorProvider");return r}export{t as IdGeneratorContext,o as useIdGenerator};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../../../../src/search-bar/id-generator/context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TIdGeneratorContext } from \"./type\";\n\nexport const IdGeneratorContext = createContext<TIdGeneratorContext | null>(\n null\n);\n\nexport function useIdGenerator() {\n const context = useContext(IdGeneratorContext);\n\n if (!context) {\n throw new Error(\"useIdGenerator must be used within a IdGeneratorProvider\");\n }\n\n return context;\n}\n"],"names":["IdGeneratorContext","createContext","useIdGenerator","context","useContext","Error"],"mappings":"0DAGaA,EAAqBC,EAChC,eAGcC,IACd,IAAMC,EAAUC,EAAWJ,GAE3B,IAAKG,EACH,MAAM,IAAIE,MAAM,4DAGlB,OAAOF,CACT"}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{jsx as r}from"react/jsx-runtime";import{useMemo as t}from"react";import{IdGeneratorContext as n}from"./context.js";function e(e){var o=t((function(){return{generateId:function(r){return"".concat(e.id,":").concat(r)}}}),[]);return r(n.Provider,{value:o,children:e.children})}export{e as IdGeneratorProvider};
3
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,2 +1,3 @@
1
- import{jsx as e,jsxs as n}from"react/jsx-runtime";import{useState as t,useMemo as o,useEffect as r}from"react";import{InputArea as i}from"./parts/input-area.js";import{OptionsArea as u}from"./parts/options-area.js";import{SelectBoxFrame as a}from"./parts/frame.js";import{IdProvider as d}from"./id/provider.js";import{IdGenerator as l}from"./lib/id-generator.js";function c(c){var s,f,m,v,p=t(null!==(s=c.value)&&void 0!==s?s:""),w=p[0],g=p[1],y=t(null!==(f=c.defaultIsOpen)&&void 0!==f&&f),h=y[0],L=y[1],x=t(""),E=x[0],b=x[1],k=t(void 0),I=k[0],C=k[1],S=function(e){g(e),c.onSelect(e),b(""),L(!1)},j=null!==(v=null===(m=c.options.find((function(e){return e.value===w})))||void 0===m?void 0:m.label)&&void 0!==v?v:"",B=o((function(){return c.options.filter((function(e){return e.searchText?e.searchText.toLowerCase().includes(E.toLowerCase()):e.searchLabel?e.searchLabel.toLowerCase().includes(E.toLowerCase()):void e.label.toLowerCase().includes(E.toLowerCase())}))}),[c.options,E]);r((function(){var e=function(e){var n=document.getElementById(l.generateIdSelectBoxFrame(c.id)),t=document.getElementById(l.generateIdSelectBoxOptionsArea(c.id)),o=e.target;o instanceof Node&&(null==n?void 0:n.contains(o))||o instanceof Node&&(null==t?void 0:t.contains(o))||(b(""),L(!1))};return document.addEventListener("mousedown",e),function(){document.removeEventListener("mousedown",e)}}),[]),r((function(){if(h){var e=function(e){"ArrowDown"===e.key?(e.preventDefault(),C((function(e){return"number"==typeof e?Math.min(e+1,B.length-1):0}))):"ArrowUp"===e.key?(e.preventDefault(),C((function(e){return"number"==typeof e?Math.max(e-1,0):0}))):"Enter"===e.key&&(e.preventDefault(),"number"==typeof I&&S(B[I].value))};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}C(void 0);var n=document.getElementById(l.generateIdSelectBoxInputArea(c.id));if(n){var t=function(e){"ArrowDown"===e.key&&(e.preventDefault(),L(!0))};return n.addEventListener("keydown",t),function(){n.removeEventListener("keydown",t)}}}),[h,B,I,C]);var D=0===B.length?void 0:"number"==typeof I&&I<B.length?B[I].value:void 0;return e(d,{id:c.id,children:n(a,{isOpen:h,onToggle:function(){return L((function(e){return!e}))},children:[e(i,{inputRef:c.inputRef,isSelecting:h,selectedValue:j,searchText:E,onChangeSearchText:b}),h&&e(u,{options:B,value:w,onSelect:S,selectingValue:D})]})})}export{c as SelectBox};
1
+ "use client";
2
+ import{__assign as o}from"../../node_modules/tslib/tslib.es6.js";import{jsx as e}from"react/jsx-runtime";import{InputArea as n}from"./parts/input-area.js";import{useCallback as i,useEffect as r}from"react";import{IdProvider as t}from"./id/provider.js";import{IdGenerator as p}from"./lib/id-generator.js";import{SelectBoxFrame as s}from"./parts/frame.js";import{useOptionsWindowActions as a}from"./options-window/context.js";import{SelectBoxProvider as c}from"./provider.js";function d(n){return e(c,{children:e(l,o({},n))})}function l(o){var c=a(),d=c.openOptionsWindow,l=c.closeOptionsWindow,m=i((function(){d(p.generateIdSelectBoxInputArea(o.id),o.options,o.onSelect)}),[o.id,o.options,o.onSelect]),f=i((function(){l()}),[]);return r((function(){o.defaultIsOpen&&m()}),[o.defaultIsOpen]),e(t,{id:o.id,children:e(s,{open:m,close:f,no_icon:o.no_icon,children:e(n,{id:o.id,value:o.value,open:m,close:f,inputRef:o.inputRef,options:o.options,no_appearance:o.no_appearance,placeholder:o.placeholder})})})}export{d as SelectBox};
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/select-box/index.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from \"react\";\nimport { InputArea, OptionsArea, SelectBoxFrame } from \"./parts\";\nimport { Options } from \"./types\";\nimport { IdProvider } from \"./id/provider\";\nimport { IdGenerator } from \"./lib\";\n\ninterface IPropsSelectBox {\n id: string;\n inputRef?: React.RefObject<HTMLInputElement>;\n defaultIsOpen?: boolean;\n options: Options[];\n value?: string;\n onSelect: (value: string) => void;\n}\n\nexport function SelectBox(props: IPropsSelectBox) {\n const [value, setValue] = useState(props.value ?? \"\");\n const [isOpen, setIsOpen] = useState(props.defaultIsOpen ?? false);\n const [searchText, setSearchText] = useState(\"\");\n const [selectingIndex, setSelectingIndex] = useState<number | undefined>(\n undefined\n );\n\n const handleSelect = (value: string) => {\n setValue(value);\n props.onSelect(value);\n setSearchText(\"\");\n setIsOpen(false);\n };\n\n const label =\n props.options.find((option) => option.value === value)?.label ?? \"\";\n\n const searchedOptions = useMemo(\n () =>\n props.options.filter((option) => {\n if (option.searchText) {\n return option.searchText\n .toLowerCase()\n .includes(searchText.toLowerCase());\n } else if (option.searchLabel) {\n return option.searchLabel\n .toLowerCase()\n .includes(searchText.toLowerCase());\n } else {\n option.label.toLowerCase().includes(searchText.toLowerCase());\n }\n }),\n [props.options, searchText]\n );\n\n useEffect(() => {\n const onClickOutOfSelectBox = (e: MouseEvent) => {\n // SelectBox関連の要素を取得\n const frameElement = document.getElementById(\n IdGenerator.generateIdSelectBoxFrame(props.id)\n );\n const optionsElement = document.getElementById(\n IdGenerator.generateIdSelectBoxOptionsArea(props.id)\n );\n\n // クリックされた要素を取得\n const ele = e.target;\n\n if (ele instanceof Node && frameElement?.contains(ele)) return;\n if (ele instanceof Node && optionsElement?.contains(ele)) return;\n\n setSearchText(\"\");\n setIsOpen(false);\n };\n\n document.addEventListener(\"mousedown\", onClickOutOfSelectBox);\n\n return () => {\n document.removeEventListener(\"mousedown\", onClickOutOfSelectBox);\n };\n }, []);\n\n useEffect(() => {\n if (!isOpen) {\n setSelectingIndex(undefined);\n\n const inputElement = document.getElementById(\n IdGenerator.generateIdSelectBoxInputArea(props.id)\n );\n\n if (inputElement) {\n // inputElementにフォーカスされている場合、ArrowDownを押すとOptionsAreaが開く\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setIsOpen(true);\n }\n };\n inputElement.addEventListener(\"keydown\", handleKeydown);\n\n return () => {\n inputElement.removeEventListener(\"keydown\", handleKeydown);\n };\n }\n } else {\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, searchedOptions.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 handleSelect(searchedOptions[selectingIndex].value);\n }\n }\n };\n document.addEventListener(\"keydown\", handleKeydown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown);\n };\n }\n }, [isOpen, searchedOptions, selectingIndex, setSelectingIndex]);\n\n const selectingValue =\n searchedOptions.length === 0\n ? undefined\n : typeof selectingIndex === \"number\" &&\n selectingIndex < searchedOptions.length\n ? searchedOptions[selectingIndex].value\n : undefined;\n\n return (\n <IdProvider id={props.id}>\n <SelectBoxFrame\n isOpen={isOpen}\n onToggle={() => setIsOpen((prev) => !prev)}\n >\n <InputArea\n inputRef={props.inputRef}\n isSelecting={isOpen}\n selectedValue={label}\n searchText={searchText}\n onChangeSearchText={setSearchText}\n />\n {isOpen && (\n <OptionsArea\n options={searchedOptions}\n value={value}\n onSelect={handleSelect}\n selectingValue={selectingValue}\n />\n )}\n </SelectBoxFrame>\n </IdProvider>\n );\n}\n"],"names":["SelectBox","props","_e","useState","_a","value","setValue","_f","_b","defaultIsOpen","isOpen","setIsOpen","_g","searchText","setSearchText","_h","undefined","selectingIndex","setSelectingIndex","handleSelect","onSelect","label","_d","_c","options","find","option","searchedOptions","useMemo","filter","toLowerCase","includes","searchLabel","useEffect","onClickOutOfSelectBox","e","frameElement","document","getElementById","IdGenerator","generateIdSelectBoxFrame","id","optionsElement","generateIdSelectBoxOptionsArea","ele","target","Node","contains","addEventListener","removeEventListener","handleKeydown_2","key","preventDefault","prev","Math","min","length","max","inputElement_1","generateIdSelectBoxInputArea","handleKeydown_1","selectingValue","_jsx","IdProvider","children","_jsxs","SelectBoxFrame","onToggle","InputArea","inputRef","isSelecting","selectedValue","onChangeSearchText","OptionsArea"],"mappings":"2WAeM,SAAUA,EAAUC,eAClBC,EAAoBC,EAAoB,QAAXC,EAAAH,EAAMI,aAAK,IAAAD,EAAAA,EAAI,IAA3CC,EAAKH,EAAA,GAAEI,OACRC,EAAsBJ,EAA4B,QAAnBK,EAAAP,EAAMQ,qBAAa,IAAAD,GAAAA,GAAjDE,EAAMH,EAAA,GAAEI,OACTC,EAA8BT,EAAS,IAAtCU,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAC1BG,EAAsCZ,OAC1Ca,GADKC,EAAcF,EAAA,GAAEG,EAAiBH,EAAA,GAIlCI,EAAe,SAACd,GACpBC,EAASD,GACTJ,EAAMmB,SAASf,GACfS,EAAc,IACdH,GAAU,EACZ,EAEMU,EAC6D,QAAjEC,EAAwD,QAAxDC,EAAAtB,EAAMuB,QAAQC,MAAK,SAACC,GAAW,OAAAA,EAAOrB,QAAUA,YAAQ,IAAAkB,OAAA,EAAAA,EAAAF,aAAS,IAAAC,EAAAA,EAAA,GAE7DK,EAAkBC,GACtB,WACE,OAAA3B,EAAMuB,QAAQK,QAAO,SAACH,GACpB,OAAIA,EAAOb,WACFa,EAAOb,WACXiB,cACAC,SAASlB,EAAWiB,eACdJ,EAAOM,YACTN,EAAOM,YACXF,cACAC,SAASlB,EAAWiB,oBAEvBJ,EAAOL,MAAMS,cAAcC,SAASlB,EAAWiB,cAEnD,GAAE,GACJ,CAAC7B,EAAMuB,QAASX,IAGlBoB,GAAU,WACR,IAAMC,EAAwB,SAACC,GAE7B,IAAMC,EAAeC,SAASC,eAC5BC,EAAYC,yBAAyBvC,EAAMwC,KAEvCC,EAAiBL,SAASC,eAC9BC,EAAYI,+BAA+B1C,EAAMwC,KAI7CG,EAAMT,EAAEU,OAEVD,aAAeE,OAAQV,aAAA,EAAAA,EAAcW,SAASH,KAC9CA,aAAeE,OAAQJ,aAAA,EAAAA,EAAgBK,SAASH,MAEpD9B,EAAc,IACdH,GAAU,GACZ,EAIA,OAFA0B,SAASW,iBAAiB,YAAad,GAEhC,WACLG,SAASY,oBAAoB,YAAaf,EAC5C,CACD,GAAE,IAEHD,GAAU,WACR,GAAKvB,EAqBE,CACL,IAAMwC,EAAgB,SAACf,GACP,cAAVA,EAAEgB,KACJhB,EAAEiB,iBACFlC,GAAkB,SAACmC,GACjB,MAAgB,iBAATA,EACHC,KAAKC,IAAIF,EAAO,EAAG1B,EAAgB6B,OAAS,GAC5C,CAFJ,KAIiB,YAAVrB,EAAEgB,KACXhB,EAAEiB,iBACFlC,GAAkB,SAACmC,GACjB,MAAgB,iBAATA,EAAoBC,KAAKG,IAAIJ,EAAO,EAAG,GAAK,CAAnD,KAEiB,UAAVlB,EAAEgB,MACXhB,EAAEiB,iBAC4B,iBAAnBnC,GACTE,EAAaQ,EAAgBV,GAAgBZ,OAGnD,EAGA,OAFAgC,SAASW,iBAAiB,UAAWE,GAE9B,WACLb,SAASY,oBAAoB,UAAWC,EAC1C,CACD,CA9CChC,OAAkBF,GAElB,IAAM0C,EAAerB,SAASC,eAC5BC,EAAYoB,6BAA6B1D,EAAMwC,KAGjD,GAAIiB,EAAc,CAEhB,IAAME,EAAgB,SAACzB,GACP,cAAVA,EAAEgB,MACJhB,EAAEiB,iBACFzC,GAAU,GAEd,EAGA,OAFA+C,EAAaV,iBAAiB,UAAWY,GAElC,WACLF,EAAaT,oBAAoB,UAAWW,EAC9C,CACD,CA4BJ,GAAE,CAAClD,EAAQiB,EAAiBV,EAAgBC,IAE7C,IAAM2C,EACuB,IAA3BlC,EAAgB6B,YACZxC,EAC0B,iBAAnBC,GACPA,EAAiBU,EAAgB6B,OACjC7B,EAAgBV,GAAgBZ,WAChCW,EAEN,OACE8C,EAACC,GAAWtB,GAAIxC,EAAMwC,GACpBuB,SAAAC,EAACC,EACC,CAAAxD,OAAQA,EACRyD,SAAU,WAAM,OAAAxD,GAAU,SAAC0C,GAAS,OAACA,IAAK,YAE1CS,EAACM,GACCC,SAAUpE,EAAMoE,SAChBC,YAAa5D,EACb6D,cAAelD,EACfR,WAAYA,EACZ2D,mBAAoB1D,IAErBJ,GACCoD,EAACW,EACC,CAAAjD,QAASG,EACTtB,MAAOA,EACPe,SAAUD,EACV0C,eAAgBA,QAM5B"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as o}from"react";import{useOptionsWindow as i}from"./context.js";import{useIdContext as r}from"../id/provider.js";import{IdGenerator as l}from"../lib/id-generator.js";function a(){var a=r(),s=i(),c=s.state,u=s.actions,d=n(""),f=d[0],p=d[1],m=n(void 0),v=m[0],g=m[1],y=n({top:0,left:0}),h=y[0],w=y[1],b=c.isOpen?0===c.options.length?void 0:"number"==typeof v&&v<c.options.length&&v>=0?c.options[v].value:void 0:void 0;return o((function(){if(c.isOpen){var e=document.getElementById(l.generateIdSelectBoxOption(a,null!=b?b:""));if(!e)return;if(0===h.top&&0===h.left)return;e.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}else g(void 0)}),[c,h,b]),o((function(){if(c.isOpen){var e=function(e){if("ArrowDown"===e.key)e.preventDefault(),g((function(e){return"number"==typeof e?Math.min(e+1,c.options.length-1):0}));else if("ArrowUp"===e.key)e.preventDefault(),g((function(e){return"number"==typeof e?Math.max(e-1,0):0}));else if("Enter"===e.key&&(e.preventDefault(),"number"==typeof v)){if(0===c.options.length||c.options.length<=v)return;var t=c.options[v].value;if(!t)return;p(t),c.onSelect(t),u.closeOptionsWindow()}};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}}),[c,v,g]),o((function(){var e=setTimeout((function(){if(c.isOpen){for(var e=document.getElementById("ReactUI:SelectBox:OptionsArea");e&&!e.className.includes("relative");)e=e.parentElement;var t=document.getElementById(c.selectBoxId);if(t){var n=t.getBoundingClientRect(),o=n.top+n.height,i=n.left;if(e){var r=e.getBoundingClientRect();w({top:o-r.top,left:i-r.left})}else w({top:o+window.scrollY,left:i+window.scrollX})}}}),0);return function(){clearTimeout(e)}}),[c.isOpen]),o((function(){var e=function(e){if(c.isOpen){var t=document.getElementById(c.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)}}),[c.isOpen]),c.isOpen?e("div",{id:"ReactUI:SelectBox:OptionsArea",className:"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10",style:h,children:c.options.map((function(t){var n,o;return e("div",{id:l.generateIdSelectBoxOption(a,null!==(n=t.value)&&void 0!==n?n:""),className:"hover:bg-gray-200 px-2 py-1 ".concat("string"==typeof b?b===t.value?"bg-gray-100":"bg-white":f===t.value?"bg-gray-100":"bg-white"),onClick:function(){c.onSelect(t.value),u.closeOptionsWindow()},children:null!==(o=t.searchLabel)&&void 0!==o?o:t.label},t.value)}))}):e(t,{})}export{a as OptionsArea};
2
+ //# sourceMappingURL=component.js.map
@@ -0,0 +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 }\n };\n\n document.addEventListener(\"keydown\", handleKeydown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown);\n };\n }\n }, [state, selectingIndex, setSelectingIndex]);\n\n useEffect(() => {\n const searchParentElement = () => {\n if (state.isOpen) {\n let parentElement = document.getElementById(\n \"ReactUI:SelectBox:OptionsArea\"\n );\n\n while (parentElement) {\n if (parentElement.className.includes(\"relative\")) {\n break;\n }\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,\n left: left - parentRect.left,\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":["OptionsArea","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","className","includes","selectBoxElement","selectBoxId","rect","getBoundingClientRect","top_1","height","parentRect","window","scrollY","scrollX","clearTimeout","onClickOutOfSelectBox","frameElement","optionsElement","ele","target","Node","contains","setSearchText","_jsx","style","map","option","concat","onClick","children","searchLabel","label"],"mappings":"qQAKgBA,IACd,IAAMC,EAAKC,IACLC,EAAqBC,IAAnBC,EAAKF,EAAAE,MAAEC,EAAOH,EAAAG,QAChBC,EAAoBC,EAAS,IAA5BC,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAChBI,EAAsCH,OAC1CI,GADKC,EAAcF,EAAA,GAAEG,EAAiBH,EAAA,GAGlCI,EAA0BP,EAAS,CAAEQ,IAAK,EAAGC,KAAM,IAAlDC,OAAUC,OAEXC,EAAiBf,EAAMgB,OACA,IAAzBhB,EAAMiB,QAAQC,YACZX,EAC0B,iBAAnBC,GACPA,EAAiBR,EAAMiB,QAAQC,QAC/BV,GAAkB,EAClBR,EAAMiB,QAAQT,GAAgBJ,WAC9BG,OACFA,EAyIJ,OAvIAY,GAAU,WACR,GAAInB,EAAMgB,OAAQ,CAChB,IAAMI,EAAgBC,SAASC,eAC7BC,EAAYC,0BAA0B5B,EAAImB,QAAAA,EAAkB,KAG9D,IAAKK,EAAe,OACpB,GAAqB,IAAjBP,EAASF,KAA+B,IAAlBE,EAASD,KAAY,OAE/CQ,EAAcK,eAAe,CAC3BC,SAAU,SACVC,MAAO,UACPC,OAAQ,WAEX,MACCnB,OAAkBF,EAErB,GAAE,CAACP,EAAOa,EAAUE,IAErBI,GAAU,WACR,GAAInB,EAAMgB,OAAQ,CAChB,IAAMa,EAAgB,SAACC,GACrB,GAAc,cAAVA,EAAEC,IACJD,EAAEE,iBACFvB,GAAkB,SAACwB,GACjB,MAAgB,iBAATA,EACHC,KAAKC,IAAIF,EAAO,EAAGjC,EAAMiB,QAAQC,OAAS,GAC1C,CAFJ,SAIG,GAAc,YAAVY,EAAEC,IACXD,EAAEE,iBACFvB,GAAkB,SAACwB,GACjB,MAAgB,iBAATA,EAAoBC,KAAKE,IAAIH,EAAO,EAAG,GAAK,CAAnD,SAEG,GAAc,UAAVH,EAAEC,MACXD,EAAEE,iBAC4B,iBAAnBxB,GAA6B,CACtC,GAC2B,IAAzBR,EAAMiB,QAAQC,QACdlB,EAAMiB,QAAQC,QAAUV,EAExB,OAEF,IAAM6B,EAAQrC,EAAMiB,QAAQT,GAAgBJ,MAE5C,IAAKiC,EAAO,OAEZhC,EAASgC,GACTrC,EAAMsC,SAASD,GACfpC,EAAQsC,oBACT,CAEL,EAIA,OAFAlB,SAASmB,iBAAiB,UAAWX,GAE9B,WACLR,SAASoB,oBAAoB,UAAWZ,EAC1C,CACD,CACF,GAAE,CAAC7B,EAAOQ,EAAgBC,IAE3BU,GAAU,WACR,IAqCMuB,EAAQC,YArCc,WAC1B,GAAI3C,EAAMgB,OAAQ,CAKhB,IAJA,IAAI4B,EAAgBvB,SAASC,eAC3B,iCAGKsB,IACDA,EAAcC,UAAUC,SAAS,aAIrCF,EAAgBA,EAAcA,cAGhC,IAAMG,EAAmB1B,SAASC,eAAetB,EAAMgD,aAEvD,GAAID,EAAkB,CACpB,IAAME,EAAOF,EAAiBG,wBAC1BC,EAAMF,EAAKtC,IAAMsC,EAAKG,OACtBxC,EAAOqC,EAAKrC,KAEhB,GAAIgC,EAAe,CACjB,IAAMS,EAAaT,EAAcM,wBACjCpC,EAAY,CACVH,IAAKwC,EAAME,EAAW1C,IACtBC,KAAMA,EAAOyC,EAAWzC,MAE3B,MACCE,EAAY,CACVH,IAAKwC,EAAMG,OAAOC,QAClB3C,KAAMA,EAAO0C,OAAOE,SAGzB,CACF,CACH,GAE8C,GAE9C,OAAO,WACLC,aAAaf,EACf,CACF,GAAG,CAAC1C,EAAMgB,SAEVG,GAAU,WACR,IAAMuC,EAAwB,SAAC5B,GAC7B,GAAK9B,EAAMgB,OAAX,CAGA,IAAM2C,EAAetC,SAASC,eAAetB,EAAMgD,aAC7CY,EAAiBvC,SAASC,eAC9B,iCAIIuC,EAAM/B,EAAEgC,OAEVD,aAAeE,OAAQJ,aAAA,EAAAA,EAAcK,SAASH,KAE9CA,aAAeE,OAAQH,aAAA,EAAAA,EAAgBI,SAASH,MAEpD5D,EAAQgE,cAAc,IACtBhE,EAAQsC,qBAhBkB,CAiB5B,EAIA,OAFAlB,SAASmB,iBAAiB,YAAakB,GAEhC,WACLrC,SAASoB,oBAAoB,YAAaiB,EAC5C,CACF,GAAG,CAAC1D,EAAMgB,SAELhB,EAAMgB,OAGTkD,SACEtE,GAAI,gCACJiD,UAAU,4EACVsB,MAAOtD,WAENb,EAAMiB,QAAQmD,KAAI,SAACC,WAAW,OAC7BH,EACE,MAAA,CAAAtE,GAAI2B,EAAYC,0BAA0B5B,EAAgB,QAAZE,EAAAuE,EAAOjE,aAAK,IAAAN,EAAAA,EAAI,IAC9D+C,UAAW,+BACTyB,OAA0B,iBAAnBvD,EACHA,IAAmBsD,EAAOjE,MACxB,cACA,WACFA,IAAUiE,EAAOjE,MACjB,cACA,YAGNmE,QAAS,WACPvE,EAAMsC,SAAS+B,EAAOjE,OACtBH,EAAQsC,oBACV,EAECiC,SAAsB,QAAtBtE,EAAAmE,EAAOI,mBAAe,IAAAvE,EAAAA,EAAAmE,EAAOK,OANzBL,EAAOjE,MAQf,MA5BqB8D,OA+B5B"}
@@ -0,0 +1,2 @@
1
+ import{createContext as n,useContext as t}from"react";var r=n(null),i=n(null),o=function(){var n=t(r);if(null===n)throw new Error("useOptionsWindowState must be used within a SelectOptionsWindowProvider");return n},e=function(){var n=t(i);if(null===n)throw new Error("useOptionsWindowActions must be used within a SelectOptionsWindowProvider");return n},u=function(){return{state:o(),actions:e()}};export{i as OptionsWindowActionContext,r as OptionsWindowStateContext,u as useOptionsWindow,e as useOptionsWindowActions,o as useOptionsWindowState};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../../../../src/select-box/options-window/context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport {\n TOptionsWindowActionContext,\n TOptionsWindowStateContext,\n} from \"./type\";\n\nexport const OptionsWindowStateContext =\n createContext<TOptionsWindowStateContext | null>(null);\n\nexport const OptionsWindowActionContext =\n createContext<TOptionsWindowActionContext | null>(null);\n\nexport const useOptionsWindowState = () => {\n const optionsState = useContext(OptionsWindowStateContext);\n\n if (optionsState === null) {\n throw new Error(\n \"useOptionsWindowState must be used within a SelectOptionsWindowProvider\"\n );\n }\n return optionsState;\n};\n\nexport const useOptionsWindowActions = () => {\n const optionsActions = useContext(OptionsWindowActionContext);\n\n if (optionsActions === null) {\n throw new Error(\n \"useOptionsWindowActions must be used within a SelectOptionsWindowProvider\"\n );\n }\n\n return optionsActions;\n};\n\nexport const useOptionsWindow = () => {\n return {\n state: useOptionsWindowState(),\n actions: useOptionsWindowActions(),\n };\n};\n"],"names":["OptionsWindowStateContext","createContext","OptionsWindowActionContext","useOptionsWindowState","optionsState","useContext","Error","useOptionsWindowActions","optionsActions","useOptionsWindow","state","actions"],"mappings":"0DAMaA,EACXC,EAAiD,MAEtCC,EACXD,EAAkD,MAEvCE,EAAwB,WACnC,IAAMC,EAAeC,EAAWL,GAEhC,GAAqB,OAAjBI,EACF,MAAM,IAAIE,MACR,2EAGJ,OAAOF,CACT,EAEaG,EAA0B,WACrC,IAAMC,EAAiBH,EAAWH,GAElC,GAAuB,OAAnBM,EACF,MAAM,IAAIF,MACR,6EAIJ,OAAOE,CACT,EAEaC,EAAmB,WAC9B,MAAO,CACLC,MAAOP,IACPQ,QAASJ,IAEb"}
@@ -0,0 +1,2 @@
1
+ import{__assign as e}from"../../../node_modules/tslib/tslib.es6.js";import{useReducer as t,useMemo as o}from"react";import{optionsWindowReducer as r}from"./reducer.js";var s=function(){var s=t(r,{isOpen:!1}),n=s[0],a=s[1];return{state:o((function(){return n.isOpen?e(e({},n),{options:n.options.filter((function(e){return e.searchText?e.searchText.toLowerCase().includes(n.searchText.toLowerCase()):e.searchLabel?e.searchLabel.toLowerCase().includes(n.searchText.toLowerCase()):e.label.toLowerCase().includes(n.searchText.toLowerCase())}))}):n}),[n]),actions:o((function(){return{openOptionsWindow:function(e,t,o,r){a({type:"open",payload:{selectBoxId:e,options:t,onSelect:o,searchText:null==r?void 0:r.searchText,defaultValue:null==r?void 0:r.defaultValue}})},setSearchText:function(e){a({type:"setSearchText",payload:{searchText:e}})},closeOptionsWindow:function(){a({type:"close"})}}}),[])}};export{s as useOptionsWindowHook};
2
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.js","sources":["../../../../../src/select-box/options-window/hook.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { Options, TOptionsWindowHook } from \"./type\";\nimport { optionsWindowReducer } from \"./reducer\";\n\nexport const useOptionsWindowHook: TOptionsWindowHook = () => {\n const [state, dispatch] = useReducer(optionsWindowReducer, {\n isOpen: false,\n });\n\n const retrunState = useMemo(() => {\n if (!state.isOpen) {\n return state;\n } else {\n return {\n ...state,\n options: state.options.filter((option) => {\n if (option.searchText) {\n return option.searchText\n .toLowerCase()\n .includes(state.searchText.toLowerCase());\n } else if (option.searchLabel) {\n return option.searchLabel\n .toLowerCase()\n .includes(state.searchText.toLowerCase());\n } else {\n return option.label\n .toLowerCase()\n .includes(state.searchText.toLowerCase());\n }\n }),\n };\n }\n }, [state]);\n\n const returnActions = useMemo(\n () => ({\n openOptionsWindow: (\n selectBoxId: string,\n options: Options[],\n onSelect: (value: string) => void,\n option?: { defaultValue?: string; searchText?: string }\n ) => {\n dispatch({\n type: \"open\",\n payload: {\n selectBoxId,\n options,\n onSelect,\n searchText: option?.searchText,\n defaultValue: option?.defaultValue,\n },\n });\n },\n setSearchText: (searchText: string) => {\n dispatch({\n type: \"setSearchText\",\n payload: {\n searchText,\n },\n });\n },\n closeOptionsWindow: () => {\n dispatch({\n type: \"close\",\n });\n },\n }),\n []\n );\n\n return {\n state: retrunState,\n actions: returnActions,\n };\n};\n"],"names":["useOptionsWindowHook","_a","useReducer","optionsWindowReducer","isOpen","state","dispatch","useMemo","__assign","options","filter","option","searchText","toLowerCase","includes","searchLabel","label","actions","openOptionsWindow","selectBoxId","onSelect","type","payload","defaultValue","setSearchText","closeOptionsWindow"],"mappings":"wKAIa,IAAAA,EAA2C,WAChD,IAAAC,EAAoBC,EAAWC,EAAsB,CACzDC,QAAQ,IADHC,EAAKJ,EAAA,GAAEK,OAiEd,MAAO,CACLD,MA9DkBE,GAAQ,WAC1B,OAAKF,EAAMD,OAIJI,EAAAA,EAAA,CAAA,EAAAH,GACH,CAAAI,QAASJ,EAAMI,QAAQC,QAAO,SAACC,GAC7B,OAAIA,EAAOC,WACFD,EAAOC,WACXC,cACAC,SAAST,EAAMO,WAAWC,eACpBF,EAAOI,YACTJ,EAAOI,YACXF,cACAC,SAAST,EAAMO,WAAWC,eAEtBF,EAAOK,MACXH,cACAC,SAAST,EAAMO,WAAWC,cAEhC,MAlBIR,CAqBX,GAAG,CAACA,IAwCFY,QAtCoBV,GACpB,WAAM,MAAC,CACLW,kBAAmB,SACjBC,EACAV,EACAW,EACAT,GAEAL,EAAS,CACPe,KAAM,OACNC,QAAS,CACPH,YAAWA,EACXV,QAAOA,EACPW,SAAQA,EACRR,WAAYD,aAAA,EAAAA,EAAQC,WACpBW,aAAcZ,aAAA,EAAAA,EAAQY,eAG3B,EACDC,cAAe,SAACZ,GACdN,EAAS,CACPe,KAAM,gBACNC,QAAS,CACPV,WAAUA,IAGf,EACDa,mBAAoB,WAClBnB,EAAS,CACPe,KAAM,SAET,EA9BG,GAgCN,IAOJ"}
@@ -0,0 +1,2 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{OptionsWindowStateContext as o,OptionsWindowActionContext as e}from"./context.js";import{useOptionsWindowHook as t}from"./hook.js";function i(i){var n=t(),c=n.state,m=n.actions;return r(o.Provider,{value:c,children:r(e.Provider,{value:m,children:i.children})})}export{i as SelectOptionsWindowProvider};
2
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/select-box/options-window/provider.tsx"],"sourcesContent":["import {\n OptionsWindowActionContext,\n OptionsWindowStateContext,\n} from \"./context\";\nimport { useOptionsWindowHook } from \"./hook\";\n\nexport function SelectOptionsWindowProvider(props: {\n children: React.ReactNode;\n}) {\n const { state, actions } = useOptionsWindowHook();\n\n return (\n <OptionsWindowStateContext.Provider value={state}>\n <OptionsWindowActionContext.Provider value={actions}>\n {props.children}\n </OptionsWindowActionContext.Provider>\n </OptionsWindowStateContext.Provider>\n );\n}\n"],"names":["SelectOptionsWindowProvider","props","_a","useOptionsWindowHook","state","actions","_jsx","OptionsWindowStateContext","Provider","value","children","OptionsWindowActionContext"],"mappings":"kLAMM,SAAUA,EAA4BC,GAGpC,IAAAC,EAAqBC,IAAnBC,EAAKF,EAAAE,MAAEC,EAAOH,EAAAG,QAEtB,OACEC,EAACC,EAA0BC,UAASC,MAAOL,EAAKM,SAC9CJ,EAACK,EAA2BH,SAAQ,CAACC,MAAOJ,EAAOK,SAChDT,EAAMS,YAIf"}
@@ -0,0 +1,2 @@
1
+ import{__assign as e}from"../../../node_modules/tslib/tslib.es6.js";var a=function(a,s){switch(s.type){case"open":return{isOpen:!0,selectBoxId:s.payload.selectBoxId,options:s.payload.options,searchText:s.payload.searchText||"",onSelect:s.payload.onSelect,selectingValue:s.payload.defaultValue};case"setSearchText":return a.isOpen?a.searchText===s.payload.searchText?a:e(e({},a),{searchText:s.payload.searchText}):a;case"close":return a.isOpen?{isOpen:!1}:a}};export{a as optionsWindowReducer};
2
+ //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sources":["../../../../../src/select-box/options-window/reducer.ts"],"sourcesContent":["import { TOptionsWindowReducer } from \"./type\";\n\nexport const optionsWindowReducer: TOptionsWindowReducer = (state, action) => {\n switch (action.type) {\n case \"open\":\n return {\n isOpen: true,\n selectBoxId: action.payload.selectBoxId,\n options: action.payload.options,\n searchText: action.payload.searchText || \"\",\n onSelect: action.payload.onSelect,\n selectingValue: action.payload.defaultValue,\n };\n case \"setSearchText\":\n if (!state.isOpen) return state;\n\n if (state.searchText === action.payload.searchText) return state;\n\n return {\n ...state,\n searchText: action.payload.searchText,\n };\n case \"close\":\n if (!state.isOpen) return state;\n\n return {\n isOpen: false,\n };\n }\n};\n"],"names":["optionsWindowReducer","state","action","type","isOpen","selectBoxId","payload","options","searchText","onSelect","selectingValue","defaultValue","__assign"],"mappings":"oEAEa,IAAAA,EAA8C,SAACC,EAAOC,GACjE,OAAQA,EAAOC,MACb,IAAK,OACH,MAAO,CACLC,QAAQ,EACRC,YAAaH,EAAOI,QAAQD,YAC5BE,QAASL,EAAOI,QAAQC,QACxBC,WAAYN,EAAOI,QAAQE,YAAc,GACzCC,SAAUP,EAAOI,QAAQG,SACzBC,eAAgBR,EAAOI,QAAQK,cAEnC,IAAK,gBACH,OAAKV,EAAMG,OAEPH,EAAMO,aAAeN,EAAOI,QAAQE,WAAmBP,EAGtDW,EAAAA,EAAA,CAAA,EAAAX,IACHO,WAAYN,EAAOI,QAAQE,aANHP,EAQ5B,IAAK,QACH,OAAKA,EAAMG,OAEJ,CACLA,QAAQ,GAHgBH,EAMhC"}
@@ -1,2 +1,2 @@
1
- import{jsxs as e,jsx as i}from"react/jsx-runtime";import{useIdContext as o}from"../id/provider.js";import{IdGenerator as r}from"../lib/id-generator.js";import{MdOutlineKeyboardArrowLeft as n}from"../../../node_modules/react-icons/md/index.js";function t(t){var l=o();return e("div",{id:r.generateIdSelectBoxFrame(l),className:"relative w-full",children:[i("div",{onClick:function(e){t.isOpen||t.onToggle()},children:t.children}),i("div",{className:"absolute grid place-items-center h-full right-1 top-0",onClick:function(e){e.stopPropagation(),t.onToggle()},children:i(n,{className:"duration-300 ".concat(t.isOpen?"-rotate-90":"")})})]})}export{t as SelectBoxFrame};
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useIdContext as i}from"../id/provider.js";import{IdGenerator as r}from"../lib/id-generator.js";import{MdOutlineKeyboardArrowLeft as t}from"../../../node_modules/react-icons/md/index.js";import{useOptionsWindow as n}from"../options-window/context.js";import"react";function c(c){var a=i(),s=n().state;return e("div",{id:r.generateIdSelectBoxFrame(a),className:"relative w-full",children:[o("div",{onClick:function(e){s.isOpen||c.open()},children:c.children}),!c.no_icon&&o("div",{className:"absolute grid place-items-center h-full right-1 top-0",onClick:function(e){e.stopPropagation(),s.isOpen?c.close():c.open()},children:o(t,{className:"duration-300 ".concat(s.isOpen?"-rotate-90":"")})})]})}export{c as SelectBoxFrame};
2
2
  //# sourceMappingURL=frame.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frame.js","sources":["../../../../../src/select-box/parts/frame.tsx"],"sourcesContent":["import { useIdContext } from \"../id/provider\";\nimport { IdGenerator } from \"../lib\";\nimport { MdOutlineKeyboardArrowLeft } from \"react-icons/md\";\n\ninterface IPropsSelectBoxFrame {\n onToggle: () => void;\n isOpen: boolean;\n children: React.ReactNode;\n}\n\nexport function SelectBoxFrame(props: IPropsSelectBoxFrame) {\n const id = useIdContext();\n\n return (\n <div\n id={IdGenerator.generateIdSelectBoxFrame(id)}\n className=\"relative w-full\"\n >\n <div\n onClick={(e) => {\n if (!props.isOpen) {\n props.onToggle();\n }\n }}\n >\n {props.children}\n </div>\n <div\n className=\"absolute grid place-items-center h-full right-1 top-0\"\n onClick={(e) => {\n e.stopPropagation();\n props.onToggle();\n }}\n >\n <MdOutlineKeyboardArrowLeft\n className={`duration-300 ${props.isOpen ? \"-rotate-90\" : \"\"}`}\n />\n </div>\n </div>\n );\n}\n"],"names":["SelectBoxFrame","props","id","useIdContext","_jsxs","IdGenerator","generateIdSelectBoxFrame","className","children","_jsx","onClick","e","isOpen","onToggle","stopPropagation","MdOutlineKeyboardArrowLeft","concat"],"mappings":"mPAUM,SAAUA,EAAeC,GAC7B,IAAMC,EAAKC,IAEX,OACEC,EACE,MAAA,CAAAF,GAAIG,EAAYC,yBAAyBJ,GACzCK,UAAU,kBAAiBC,SAAA,CAE3BC,SACEC,QAAS,SAACC,GACHV,EAAMW,QACTX,EAAMY,UAET,EAEAL,SAAAP,EAAMO,WAETC,EAAA,MAAA,CACEF,UAAU,wDACVG,QAAS,SAACC,GACRA,EAAEG,kBACFb,EAAMY,YACPL,SAEDC,EAACM,EAA0B,CACzBR,UAAW,gBAAAS,OAAgBf,EAAMW,OAAS,aAAe,UAKnE"}
1
+ {"version":3,"file":"frame.js","sources":["../../../../../src/select-box/parts/frame.tsx"],"sourcesContent":["import { useIdContext } from \"../id/provider\";\nimport { IdGenerator } from \"../lib\";\nimport { MdOutlineKeyboardArrowLeft } from \"react-icons/md\";\nimport { useOptionsWindow } from \"../options-window\";\n\ninterface IPropsSelectBoxFrame {\n open: () => void;\n close: () => void;\n children: React.ReactNode;\n no_icon?: boolean;\n}\n\nexport function SelectBoxFrame(props: IPropsSelectBoxFrame) {\n const id = useIdContext();\n const { state } = useOptionsWindow();\n\n return (\n <div\n id={IdGenerator.generateIdSelectBoxFrame(id)}\n className=\"relative w-full\"\n >\n <div\n onClick={(e) => {\n if (!state.isOpen) {\n props.open();\n }\n }}\n >\n {props.children}\n </div>\n {!props.no_icon && (\n <div\n className=\"absolute grid place-items-center h-full right-1 top-0\"\n onClick={(e) => {\n e.stopPropagation();\n if (state.isOpen) {\n props.close();\n } else {\n props.open();\n }\n }}\n >\n <MdOutlineKeyboardArrowLeft\n className={`duration-300 ${state.isOpen ? \"-rotate-90\" : \"\"}`}\n />\n </div>\n )}\n </div>\n );\n}\n"],"names":["SelectBoxFrame","props","id","useIdContext","state","useOptionsWindow","_jsxs","IdGenerator","generateIdSelectBoxFrame","className","children","_jsx","onClick","e","isOpen","open","no_icon","stopPropagation","close","MdOutlineKeyboardArrowLeft","concat"],"mappings":"iUAYM,SAAUA,EAAeC,GAC7B,IAAMC,EAAKC,IACHC,EAAUC,UAElB,OACEC,EACE,MAAA,CAAAJ,GAAIK,EAAYC,yBAAyBN,GACzCO,UAAU,kBAAiBC,SAAA,CAE3BC,SACEC,QAAS,SAACC,GACHT,EAAMU,QACTb,EAAMc,MAET,EAAAL,SAEAT,EAAMS,YAEPT,EAAMe,SACNL,EAAA,MAAA,CACEF,UAAU,wDACVG,QAAS,SAACC,GACRA,EAAEI,kBACEb,EAAMU,OACRb,EAAMiB,QAENjB,EAAMc,QAETL,SAEDC,EAACQ,EACC,CAAAV,UAAW,gBAAgBW,OAAAhB,EAAMU,OAAS,aAAe,UAMrE"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as e}from"react/jsx-runtime";import{useIdContext as r}from"../id/provider.js";import{IdGenerator as t}from"../lib/id-generator.js";function a(a){var l=r();return e("input",{id:t.generateIdSelectBoxInputArea(l),ref:a.inputRef,className:"border border-gray-300 px-2 py-1 w-full",type:"text",placeholder:""===a.selectedValue?"選択してください":a.selectedValue,value:a.isSelecting?a.searchText:a.selectedValue,onChange:function(e){e.preventDefault(),a.onChangeSearchText(e.target.value)}})}export{a as InputArea};
2
+ import{jsx as e}from"react/jsx-runtime";import{useMemo as t,useEffect as n}from"react";import{useIdContext as r}from"../id/provider.js";import{IdGenerator as o}from"../lib/id-generator.js";import{useOptionsWindow as a}from"../options-window/context.js";function i(i){var s,c,l,u=r(),p=a(),d=p.state,f=p.actions,v=t((function(){return d.isOpen?i.options.filter((function(e){return e.searchText?e.searchText.toLowerCase().includes(d.searchText.toLowerCase()):e.searchLabel?e.searchLabel.toLowerCase().includes(d.searchText.toLowerCase()):e.label.toLowerCase().includes(d.searchText.toLowerCase())})):[]}),[i.options,d]);n((function(){d.isOpen&&f.setSearchText(d.searchText)}),[d]),n((function(){if(!d.isOpen){var e=document.getElementById(o.generateIdSelectBoxInputArea(i.id));if(e){var t=function(e){"ArrowDown"===e.key&&(e.preventDefault(),i.open())};return e.addEventListener("keydown",t),function(){e.removeEventListener("keydown",t)}}}}),[d,v]);var x=null!==(c=null===(s=i.options.find((function(e){return e.value===i.value})))||void 0===s?void 0:s.label)&&void 0!==c?c:"";return e("input",{id:o.generateIdSelectBoxInputArea(u),ref:i.inputRef,className:"px-2 py-1 ".concat(i.no_appearance?"appearance-none border-none focus:outline-none focus-visible:outline-none bg-transparent w-full":"border border-gray-300 w-full"),type:"text",placeholder:""===x?null!==(l=i.placeholder)&&void 0!==l?l:"選択してください":x,value:d.isOpen?d.searchText:x,onChange:function(e){e.preventDefault(),f.setSearchText(e.target.value)}})}export{i as InputArea};
3
3
  //# sourceMappingURL=input-area.js.map
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{jsx as r,Fragment as o,jsxs as i}from"react/jsx-runtime";import{createContext as n,useContext as t}from"react";import"./options-window/context.js";import{OptionsArea as e}from"./options-window/component.js";import{SelectOptionsWindowProvider as c}from"./options-window/provider.js";var m=n(!1),p=function(n){return d()?r(o,{children:n.children}):r(m.Provider,{value:!0,children:i(c,{children:[n.children,r(e,{})]})})},d=function(){return t(m)};export{p as SelectBoxProvider};
3
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ 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}];export{p as DEFAULT_SEARCH_OPERATOR,e as NONE,l as SELECT,n as SINGLE_NUMBER,t as SINGLE_STRING};
2
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +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,2 +1,2 @@
1
- import{useMemo as e}from"react";import{useEditActionContext as t}from"../edit/provider.js";import{useColumnsContext as o}from"../sheet/providers.js";import{useRangeActionContext as n}from"../range/provider.js";import{useTableIdGenerator as r}from"../id/provider.js";function i(i,d){var u,p,a=r(),l=n(),c=l.startSelectRange,m=l.moveSelectRange,s=l.endSelectRange,v=t().startEditing,f=a.extractCellIndexFromId(i),g=f[0],x=f[1],I=o()[x],b=d[I.key],D="select"===I.type?null===(p=null===(u=I.options)||void 0===u?void 0:u.find((function(e){return e.value===b})))||void 0===p?void 0:p.label:b,j=e((function(){return I.editable?D:I.render?I.render(b,d):D}),[I.editable,D,b,d]);return{type:!I.editable&&I.render?"component":I.type,component:j,onDoubleClick:function(e){e.preventDefault(),v()},onMouseDown:function(e){setTimeout((function(){c({rowIndex:g,colIndex:x});var e=function(t){t.preventDefault(),t.stopPropagation(),s(),document.removeEventListener("mouseup",e)};document.addEventListener("mouseup",e)}),0)},onMouseEnter:function(e){e.preventDefault(),e.stopPropagation(),m({rowIndex:g,colIndex:x})}}}export{i as useCell};
1
+ import{useMemo as e}from"react";import{useEditActionContext as t}from"../edit/provider.js";import{useColumnsContext as o}from"../sheet/providers.js";import{useRangeActionContext as n}from"../range/provider.js";import{useTableIdGenerator as r}from"../id/provider.js";function i(i,d){var u,p,l=r(),a=n(),c=a.startSelectRange,m=a.moveSelectRange,s=a.endSelectRange,v=t().startEditing,f=l.extractCellIndexFromId(i),g=f[0],I=f[1],x=o()[I],E=d[x.key],b="select"===x.type?null===(p=null===(u=x.options)||void 0===u?void 0:u.find((function(e){return e.value===E})))||void 0===p?void 0:p.label:E,y=e((function(){return x.editable?b:x.render?x.render(E,d):b}),[x.editable,b,E,d]);return{type:!x.editable&&x.render?"component":x.type,component:y,onDoubleClick:function(e){e.preventDefault(),v()},onMouseDown:function(e){document.getElementById(l.getEditorId())||setTimeout((function(){c({rowIndex:g,colIndex:I});var e=function(t){t.preventDefault(),t.stopPropagation(),s(),document.removeEventListener("mouseup",e)};document.addEventListener("mouseup",e)}),0)},onMouseEnter:function(e){e.preventDefault(),e.stopPropagation(),m({rowIndex:g,colIndex:I})}}}export{i as useCell};
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 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":["useCell","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","setTimeout","onMouseUp","stopPropagation","document","removeEventListener","addEventListener","onMouseEnter"],"mappings":"0QAOgB,SAAAA,EAAQC,EAAYC,WAC5BC,EAAcC,IACdC,EACJC,IADMC,EAAgBF,EAAAE,iBAAEC,EAAeH,EAAAG,gBAAEC,EAAcJ,EAAAI,eAEjDC,EAAiBC,iBACnBC,EAAuBT,EAAYU,uBAAuBZ,GAAzDa,EAAQF,EAAA,GAAEG,OACXC,EAAMC,IAAoBF,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,GAAQ,WACxB,OAAIZ,EAAIa,SACCT,EAEAJ,EAAIc,OAASd,EAAIc,OAAOZ,EAAgBhB,GAAOkB,CAE1D,GAAG,CAACJ,EAAIa,SAAUT,EAAOF,EAAOhB,IAoChC,MAAO,CACLmB,MAlCCL,EAAIa,UAAYb,EAAIc,OAAS,YAAcd,EAAIK,KAmChDM,UAASA,EACTI,cAlC6D,SAACC,GAC9DA,EAAEC,iBACFvB,GACF,EAgCEwB,YAzB2D,SAACF,GAC5DG,YAAW,WACT5B,EAAiB,CAAEO,SAAQA,EAAEC,SAAQA,IAErC,IAAMqB,EAAY,SAACJ,GACjBA,EAAEC,iBACFD,EAAEK,kBACF5B,IACA6B,SAASC,oBAAoB,UAAWH,EAC1C,EAEAE,SAASE,iBAAiB,UAAWJ,EACtC,GAAE,EACL,EAaEK,aAX4D,SAACT,GAC7DA,EAAEC,iBACFD,EAAEK,kBACF7B,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 : 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":["useCell","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":"0QAOgB,SAAAA,EAAQC,EAAYC,WAC5BC,EAAcC,IACdC,EACJC,IADMC,EAAgBF,EAAAE,iBAAEC,EAAeH,EAAAG,gBAAEC,EAAcJ,EAAAI,eAEjDC,EAAiBC,iBACnBC,EAAuBT,EAAYU,uBAAuBZ,GAAzDa,EAAQF,EAAA,GAAEG,OACXC,EAAMC,IAAoBF,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,GAAQ,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,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as e,Fragment as n}from"react/jsx-runtime";import{memo as t,useMemo as c,useRef as r,useEffect as o}from"react";import{useCheckboxContext as i,useCheckboxStatusContext as u}from"./provider.js";var a=t((function(t){var r=i(),o=u().checkboxStatusState,a=t.row,d=c((function(){return o.checkedRecords.map((function(e){return e.id}))}),[o.checkedRecords]);return r?e("div",{className:"flex justify-center gap-1 w-full items-center",children:e("input",{type:"checkbox",checked:d.includes(a.id),onChange:function(e){e.preventDefault(),e.target.checked?r.onChecked(a):r.onUnchecked(a)},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e(n,{})})),d=t((function(t){var a=r(null),d=i(),f=u(),h=f.checkboxStatusState,l=f.existChecked,s=f.indeterminate,p=c((function(){return h.checkedRecords.map((function(e){return e.id}))}),[h.checkedRecords]),k=c((function(){return t.rows.filter((function(e){return!p.includes(e.id)}))}),[t.rows,p]);return o((function(){null!=a.current&&(a.current.indeterminate=!0===s)}),[s]),d?e("div",{className:"grid place-items-center w-full px-1",children:e("input",{ref:a,type:"checkbox",checked:l,onChange:function(e){e.preventDefault(),e.target.checked?k.forEach((function(e){d.onChecked(e)})):h.checkedRecords.forEach((function(e){d.onUnchecked(e)}))},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e(n,{})}));export{d as AllCheckbox,a as Checkbox};
2
+ import{jsx as e,Fragment as n}from"react/jsx-runtime";import{memo as c,useMemo as t,useRef as r,useEffect as o}from"react";import{useCheckboxContext as i,useCheckboxStatusContext as u}from"./provider.js";var d=c((function(c){var r=i(),o=u().checkboxStatusState,d=c.row,a=t((function(){return o.checkedRecords.map((function(e){return e.id}))}),[o.checkedRecords]);return r?e("div",{className:"grid place-items-center w-full h-full px-1",children:e("input",{type:"checkbox",checked:a.includes(d.id),onChange:function(e){e.preventDefault(),e.target.checked?r.onChecked(d):r.onUnchecked(d)},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e(n,{})})),a=c((function(c){var d=r(null),a=i(),f=u(),l=f.checkboxStatusState,h=f.existChecked,p=f.indeterminate,s=t((function(){return l.checkedRecords.map((function(e){return e.id}))}),[l.checkedRecords]),k=t((function(){return c.rows.filter((function(e){return!s.includes(e.id)}))}),[c.rows,s]);return o((function(){null!=d.current&&(d.current.indeterminate=!0===p)}),[p]),a?e("div",{className:"grid place-items-center w-full h-full px-1",children:e("input",{ref:d,type:"checkbox",checked:h,onChange:function(e){e.preventDefault(),e.target.checked?k.forEach((function(e){a.onChecked(e)})):l.checkedRecords.forEach((function(e){a.onUnchecked(e)}))},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e(n,{})}));export{a as AllCheckbox,d as Checkbox};
3
3
  //# sourceMappingURL=components.js.map
@@ -0,0 +1,2 @@
1
+ import{__assign as r}from"../../../node_modules/tslib/tslib.es6.js";import{createContext as t,useContext as e}from"react";var i=t(null),n=t(null),o=t(null);function u(){var r=e(i);if(!r)throw new Error("useFilterState must be used within a FilterProvider");return r}function l(){var r=e(n);if(!r)throw new Error("useFilterAction must be used within a FilterProvider");return r}function s(){var r=e(o);if(!r)throw new Error("useFilterFunctions must be used within a FilterProvider");return r}function a(){return r(r(r({},u()),l()),s())}export{n as FilterActionContext,o as FilterFunctionContext,i as FilterStateContext,a as useFilter,l as useFilterAction,s as useFilterFunctions,u as useFilterState};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../../../../src/table/filter-v2/context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport {\n TFilterActionContext,\n TFilterFunctionContext,\n TFilterStateContext,\n} from \"./type\";\n\nexport const FilterStateContext = createContext<TFilterStateContext | null>(\n null\n);\nexport const FilterActionContext = createContext<TFilterActionContext | null>(\n null\n);\nexport const FilterFunctionContext =\n createContext<TFilterFunctionContext | null>(null);\n\nexport function useFilterState() {\n const context = useContext(FilterStateContext);\n\n if (!context) {\n throw new Error(\"useFilterState must be used within a FilterProvider\");\n }\n\n return context;\n}\n\nexport function useFilterAction() {\n const context = useContext(FilterActionContext);\n\n if (!context) {\n throw new Error(\"useFilterAction must be used within a FilterProvider\");\n }\n\n return context;\n}\n\nexport function useFilterFunctions() {\n const context = useContext(FilterFunctionContext);\n\n if (!context) {\n throw new Error(\"useFilterFunctions must be used within a FilterProvider\");\n }\n\n return context;\n}\n\nexport function useFilter() {\n return { ...useFilterState(), ...useFilterAction(), ...useFilterFunctions() };\n}\n"],"names":["FilterStateContext","createContext","FilterActionContext","FilterFunctionContext","useFilterState","context","useContext","Error","useFilterAction","useFilterFunctions","useFilter","__assign"],"mappings":"8HAOaA,EAAqBC,EAChC,MAEWC,EAAsBD,EACjC,MAEWE,EACXF,EAA6C,eAE/BG,IACd,IAAMC,EAAUC,EAAWN,GAE3B,IAAKK,EACH,MAAM,IAAIE,MAAM,uDAGlB,OAAOF,CACT,UAEgBG,IACd,IAAMH,EAAUC,EAAWJ,GAE3B,IAAKG,EACH,MAAM,IAAIE,MAAM,wDAGlB,OAAOF,CACT,UAEgBI,IACd,IAAMJ,EAAUC,EAAWH,GAE3B,IAAKE,EACH,MAAM,IAAIE,MAAM,2DAGlB,OAAOF,CACT,UAEgBK,IACd,OAAYC,EAAAA,EAAAA,EAAA,GAAAP,KAAqBI,KAAsBC,IACzD"}
@@ -0,0 +1,2 @@
1
+ import{useReducer as e,useMemo as t}from"react";import{filterReducer as r}from"./reducer.js";var n=function(n){var o=e(r,{conditions:n}),i=o[0],u=o[1],a=t((function(){return{addFilter:function(e){u({type:"add",payload:{condition:e}})},removeFilter:function(e){u({type:"remove",payload:{index:e}})},clearFilter:function(){u({type:"clear"})}}}),[i.conditions]),s=t((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 o=r.payload.value;switch(e.operator.key){case"string:eq":return t===o;case"string:like":return t.includes(o);case"string:neq":return t!==o;case"string:not_like":return!t.includes(o)}}case"select":switch(e.operator.inputType){case"select":if(r.type!==e.operator.inputType)throw new Error("input type is not match");o=r.payload.value;switch(e.operator.key){case"select:eq":return t===o;case"select:neq":return t!==o}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:a,functions:s}};export{n as useFilterHook};
2
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +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 && targetValue !== undefined) ||\n targetValue !== \"\"\n );\n }\n }\n }\n}\n"],"names":["useFilterHook","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":"6FAOO,IAAMA,EAA6B,SAACC,GACnC,IAAAC,EAAoBC,EAAWC,EAAe,CAClDC,WAAYJ,IADPK,EAAKJ,EAAA,GAAEK,OAIRC,EAAUC,GACd,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,GAChB,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,OACE,MAACA,GACe,KAAhBA,IAKhB,CA5ImBS,CAAiBpB,EADVS,EAAIT,EAAUqB,OAAOH,KACOlB,EAAUY,MACtD,GACF,GACD,KAEH,CAACjB,EAAMD,aAGT,MAAO,CACLC,MAAKA,EACLE,QAAOA,EACPS,UAASA,EAEb"}
@@ -0,0 +1,2 @@
1
+ import{jsx as r}from"react/jsx-runtime";import{FilterStateContext as i,FilterActionContext as o,FilterFunctionContext as e}from"./context.js";import{useFilterHook as t}from"./hook.js";function n(n){var c=t(n.initialConditions),a=c.state,d=c.actions,l=c.functions;return r(i.Provider,{value:a,children:r(o.Provider,{value:d,children:r(e.Provider,{value:l,children:n.children})})})}export{n as FilterProvider};
2
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/filter-v2/provider.tsx"],"sourcesContent":["import { Condition } from \"../../search-bar\";\nimport {\n FilterActionContext,\n FilterFunctionContext,\n FilterStateContext,\n} from \"./context\";\nimport { useFilterHook } from \"./hook\";\n\nexport function FilterProvider(props: {\n children: React.ReactNode;\n initialConditions: Condition[];\n}) {\n const { state, actions, functions } = useFilterHook(props.initialConditions);\n\n return (\n <FilterStateContext.Provider value={state}>\n <FilterActionContext.Provider value={actions}>\n <FilterFunctionContext.Provider value={functions}>\n {props.children}\n </FilterFunctionContext.Provider>\n </FilterActionContext.Provider>\n </FilterStateContext.Provider>\n );\n}\n"],"names":["FilterProvider","props","_a","useFilterHook","initialConditions","state","actions","functions","_jsx","FilterStateContext","Provider","value","FilterActionContext","children","FilterFunctionContext"],"mappings":"wLAQM,SAAUA,EAAeC,GAIvB,IAAAC,EAAgCC,EAAcF,EAAMG,mBAAlDC,EAAKH,EAAAG,MAAEC,EAAOJ,EAAAI,QAAEC,cAExB,OACEC,EAACC,EAAmBC,SAAS,CAAAC,MAAON,WAClCG,EAACI,EAAoBF,UAASC,MAAOL,EAAOO,SAC1CL,EAACM,EAAsBJ,SAAQ,CAACC,MAAOJ,EACpCM,SAAAZ,EAAMY,cAKjB"}
@@ -0,0 +1,2 @@
1
+ import{__spreadArray as n}from"../../../node_modules/tslib/tslib.es6.js";var o=function(o,i){switch(i.type){case"add":return{conditions:n(n([],o.conditions,!0),[i.payload.condition],!1)};case"remove":return{conditions:o.conditions.filter((function(n,o){return o!==i.payload.index}))};case"clear":return{conditions:[]}}};export{o as filterReducer};
2
+ //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sources":["../../../../../src/table/filter-v2/reducer.ts"],"sourcesContent":["import { TFilterReducer } from \"./type\";\n\nexport const filterReducer: TFilterReducer = (state, action) => {\n switch (action.type) {\n case \"add\":\n return {\n conditions: [...state.conditions, action.payload.condition],\n };\n case \"remove\":\n return {\n conditions: state.conditions.filter(\n (_, index) => index !== action.payload.index\n ),\n };\n case \"clear\":\n return {\n conditions: [],\n };\n }\n};\n"],"names":["filterReducer","state","action","type","conditions","__spreadArray","payload","condition","filter","_","index"],"mappings":"yEAEa,IAAAA,EAAgC,SAACC,EAAOC,GACnD,OAAQA,EAAOC,MACb,IAAK,MACH,MAAO,CACLC,WAAUC,EAAAA,EAAA,GAAMJ,EAAMG,YAAU,GAAA,CAAEF,EAAOI,QAAQC,YAAU,IAE/D,IAAK,SACH,MAAO,CACLH,WAAYH,EAAMG,WAAWI,QAC3B,SAACC,EAAGC,GAAU,OAAAA,IAAUR,EAAOI,QAAQI,KAAzB,KAGpB,IAAK,QACH,MAAO,CACLN,WAAY,IAGpB"}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{useRef as n,useState as o,useEffect as l}from"react";import{useColumnsWidthState as c}from"../header/columns-width/context.js";import"../../../node_modules/tslib/tslib.es6.js";import{useScrollXPosition as i}from"../header/x-scroll-position/context.js";function s(s){var a=i(),u=a.x,d=a.setScrollX,m=n(null),v=o({scrollX:0,scrollY:0,barYHeight:0,barXWidth:0}),h=v[0],b=v[1],f=c();return l((function(){var e=function(){if(m.current){d(m.current.scrollLeft);var e=m.current.scrollLeft/m.current.scrollWidth*100,t=m.current.scrollTop/m.current.scrollHeight*100,r=m.current.clientHeight/m.current.scrollHeight*100,n=m.current.clientWidth/m.current.scrollWidth*100;b({scrollX:e>100?100:e,scrollY:t>100?100:t,barYHeight:r>100?100:r,barXWidth:n>100?100:n})}};return e(),m.current&&m.current.addEventListener("scroll",e),function(){m.current&&m.current.removeEventListener("scroll",e)}}),[d,f]),l((function(){m.current&&(m.current.scrollLeft=u)}),[u]),e("div",{className:"relative",style:{maxHeight:s.maxHeight,maxWidth:s.maxWidth},children:[t("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 "}),t("div",{ref:m,id:s.id,className:"relative w-full h-full border border-gray-200 bg-white rounded-b-md overflow-auto ".concat(s.displayScroll?"":"teppen-no-scrollbar"),style:{maxHeight:s.maxHeight,maxWidth:s.maxWidth},children:s.children}),h.barYHeight<100&&e(r,{children:[t("div",{className:"absolute top-0 right-0 h-full w-2 bg-slate-200 opacity-30 pointer-events-none"}),t("div",{className:"absolute right-0 w-2 bg-slate-500 rounded-full cursor-grab active:cursor-grabbing",style:{top:"".concat(h.scrollY,"%"),height:"".concat(h.barYHeight,"%")},onMouseDown:function(e){var t,r=e.clientY,n=(null===(t=m.current)||void 0===t?void 0:t.scrollTop)||0,o=function(e){if(m.current){var t=(e.clientY-r)/h.barYHeight*100;m.current.scrollTop=n+t}},l=function(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",l)}})]}),h.barXWidth<100&&e(r,{children:[t("div",{className:"absolute bottom-0 left-0 w-full h-2 bg-slate-200 opacity-30 pointer-events-none"}),t("div",{className:"absolute bottom-0 h-2 bg-slate-500 rounded-full cursor-grab active:cursor-grabbing",style:{left:"".concat(h.scrollX,"%"),width:"".concat(h.barXWidth,"%")},onMouseDown:function(e){var t;e.preventDefault(),e.stopPropagation();var r=e.clientX,n=(null===(t=m.current)||void 0===t?void 0:t.scrollLeft)||0,o=function(t){if(m.current){e.preventDefault(),e.stopPropagation();var o=(t.clientX-r)/h.barXWidth*100;m.current.scrollLeft=n+o}},l=function(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",l)}})]})]})}export{s as Frame};
3
+ //# sourceMappingURL=frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ import{__assign as r}from"../../../../node_modules/tslib/tslib.es6.js";import{createContext as t,useContext as n}from"react";var o=t(null),u=t(null);function i(){var r=n(o);if(null===r)throw new Error("useColumnsWidthState must be used within a ColumnsWidthProvider");return r}function e(){var r=n(u);if(null===r)throw new Error("useColumnsWidthAction must be used within a ColumnsWidthProvider");return r}function l(){return r(r({},i()),e())}export{u as ColumnsWidthActionContext,o as ColumnsWidthStateContext,l as useColumnsWidth,e as useColumnsWidthAction,i as useColumnsWidthState};
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../../../../../src/table/header/columns-width/context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TColumnsWidthActionContext, TColumnsWidthStateContext } from \"./type\";\n\nexport const ColumnsWidthStateContext =\n createContext<TColumnsWidthStateContext | null>(null);\n\nexport const ColumnsWidthActionContext =\n createContext<TColumnsWidthActionContext | null>(null);\n\nexport function useColumnsWidthState() {\n const context = useContext(ColumnsWidthStateContext);\n\n if (context === null) {\n throw new Error(\n \"useColumnsWidthState must be used within a ColumnsWidthProvider\"\n );\n }\n\n return context;\n}\n\nexport function useColumnsWidthAction() {\n const context = useContext(ColumnsWidthActionContext);\n\n if (context === null) {\n throw new Error(\n \"useColumnsWidthAction must be used within a ColumnsWidthProvider\"\n );\n }\n\n return context;\n}\n\nexport function useColumnsWidth() {\n return { ...useColumnsWidthState(), ...useColumnsWidthAction() };\n}\n"],"names":["ColumnsWidthStateContext","createContext","ColumnsWidthActionContext","useColumnsWidthState","context","useContext","Error","useColumnsWidthAction","useColumnsWidth","__assign"],"mappings":"iIAGaA,EACXC,EAAgD,MAErCC,EACXD,EAAiD,eAEnCE,IACd,IAAMC,EAAUC,EAAWL,GAE3B,GAAgB,OAAZI,EACF,MAAM,IAAIE,MACR,mEAIJ,OAAOF,CACT,UAEgBG,IACd,IAAMH,EAAUC,EAAWH,GAE3B,GAAgB,OAAZE,EACF,MAAM,IAAIE,MACR,oEAIJ,OAAOF,CACT,UAEgBI,IACd,OAAAC,EAAAA,EAAA,CAAA,EAAYN,KAA2BI,IACzC"}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{jsx as r}from"react/jsx-runtime";import{DEFAULT_COL_WIDTH as t,DEFAULT_MIN_COL_WIDTH as i}from"../../constant.js";import{ColumnsWidthStateContext as e,ColumnsWidthActionContext as n}from"./context.js";import{useColumnsWidthReducer as o}from"./reducer.js";function c(t){var i=o(a(t.initialState)),c=i.state,d=i.action;return r(e.Provider,{value:c,children:r(n.Provider,{value:d,children:t.children})})}var a=function(r){return r.reduce((function(r,e){return r[e.key]={colWidth:e.initialWidth||t,minWidth:e.minWidth||i},r}),{})};export{c as ColumnsWidthProvider};
3
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ import{__assign as t}from"../../../../node_modules/tslib/tslib.es6.js";import{useReducer as n,useMemo as o}from"react";import{DEFAULT_COL_WIDTH as e,DEFAULT_MIN_COL_WIDTH as a}from"../../constant.js";var i=function(n,o){var e,a;switch(o.type){case"init":return o.payload.columnsWidth;case"setMinWidth":return t(t({},n),((e={})[o.payload.key]=t(t({},n[o.payload.key]),{minWidth:o.payload.minWidth}),e));case"set":return t(t({},n),((a={})[o.payload.key]=t(t({},n[o.payload.key]),{colWidth:o.payload.colWidth}),a));default:return n}},r=function(t){var r=n(i,t),d=r[0],c=r[1];return{state:o((function(){return{getColumnWidth:function(t){var n=d[t];return n?n.colWidth:(console.warn("Column width state not found: ".concat(t)),e)},getColumnMinWidth:function(t){var n=d[t];return n?n.minWidth:(console.warn("Column width state not found: ".concat(t)),a)}}}),[d]),action:o((function(){return{setColWidth:function(t,n){c({type:"set",payload:{key:t,colWidth:n}})}}}),[])}};export{i as columnsWidthReducer,r as useColumnsWidthReducer};
2
+ //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sources":["../../../../../../src/table/header/columns-width/reducer.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { TColumnsWidthHook, TColumnsWidthReducer } from \"./type\";\nimport { DEFAULT_COL_WIDTH, DEFAULT_MIN_COL_WIDTH } from \"../../constant\";\n\nexport const columnsWidthReducer: TColumnsWidthReducer = (state, action) => {\n switch (action.type) {\n case \"init\":\n return action.payload.columnsWidth;\n case \"setMinWidth\":\n return {\n ...state,\n [action.payload.key]: {\n ...state[action.payload.key],\n minWidth: action.payload.minWidth,\n },\n };\n case \"set\":\n return {\n ...state,\n [action.payload.key]: {\n ...state[action.payload.key],\n colWidth: action.payload.colWidth,\n },\n };\n default:\n return state;\n }\n};\n\nexport const useColumnsWidthReducer: TColumnsWidthHook = (initialState) => {\n const [state, dispatch] = useReducer(columnsWidthReducer, initialState);\n\n const stateActions = useMemo(\n () => ({\n getColumnWidth: (key: string) => {\n const s = state[key];\n\n if (!s) {\n console.warn(`Column width state not found: ${key}`);\n return DEFAULT_COL_WIDTH;\n }\n\n return s.colWidth;\n },\n getColumnMinWidth: (key: string) => {\n const s = state[key];\n\n if (!s) {\n console.warn(`Column width state not found: ${key}`);\n return DEFAULT_MIN_COL_WIDTH;\n }\n\n return s.minWidth;\n },\n }),\n [state]\n );\n\n const action = useMemo(\n () => ({\n setColWidth: (key: string, colWidth: number) => {\n dispatch({ type: \"set\", payload: { key, colWidth } });\n },\n }),\n []\n );\n\n return { state: stateActions, action };\n};\n"],"names":["columnsWidthReducer","state","action","type","payload","columnsWidth","__assign","_a","key","minWidth","_b","colWidth","useColumnsWidthReducer","initialState","useReducer","dispatch","useMemo","getColumnWidth","s","console","warn","DEFAULT_COL_WIDTH","getColumnMinWidth","DEFAULT_MIN_COL_WIDTH","setColWidth"],"mappings":"wMAIa,IAAAA,EAA4C,SAACC,EAAOC,WAC/D,OAAQA,EAAOC,MACb,IAAK,OACH,OAAOD,EAAOE,QAAQC,aACxB,IAAK,cACH,OACKC,EAAAA,EAAA,GAAAL,KACFM,EAAA,IAAAL,EAAOE,QAAQI,KAAGF,EAAAA,EAAA,CAAA,EACdL,EAAMC,EAAOE,QAAQI,MAAI,CAC5BC,SAAUP,EAAOE,QAAQK,WAE3BF,IACJ,IAAK,MACH,OACKD,EAAAA,EAAA,GAAAL,KACFS,EAAA,IAAAR,EAAOE,QAAQI,KAAGF,EAAAA,EAAA,CAAA,EACdL,EAAMC,EAAOE,QAAQI,MAAI,CAC5BG,SAAUT,EAAOE,QAAQO,WAE3BD,IACJ,QACE,OAAOT,EAEb,EAEaW,EAA4C,SAACC,GAClD,IAAAN,EAAoBO,EAAWd,EAAqBa,GAAnDZ,EAAKM,EAAA,GAAEQ,OAqCd,MAAO,CAAEd,MAnCYe,GACnB,WAAM,MAAC,CACLC,eAAgB,SAACT,GACf,IAAMU,EAAIjB,EAAMO,GAEhB,OAAKU,EAKEA,EAAEP,UAJPQ,QAAQC,KAAK,wCAAiCZ,IACvCa,EAIV,EACDC,kBAAmB,SAACd,GAClB,IAAMU,EAAIjB,EAAMO,GAEhB,OAAKU,EAKEA,EAAET,UAJPU,QAAQC,KAAK,wCAAiCZ,IACvCe,EAIV,EACD,GACF,CAACtB,IAY2BC,OATfc,GACb,WAAM,MAAC,CACLQ,YAAa,SAAChB,EAAaG,GACzBI,EAAS,CAAEZ,KAAM,MAAOC,QAAS,CAAEI,MAAKG,aACzC,EAHG,GAKN,IAIJ"}
@@ -0,0 +1,2 @@
1
+ import{useState as e,useCallback as t,useRef as n,useEffect as o}from"react";import{useColumnsWidth as r}from"./columns-width/context.js";import"react/jsx-runtime";import"../../../node_modules/tslib/tslib.es6.js";import{useScrollXPosition as u}from"./x-scroll-position/context.js";function c(n){var o=r(),u=o.getColumnWidth,c=o.getColumnMinWidth,s=o.setColWidth,i=e(!1),l=i[0],m=i[1],d=u(n),v=c(n);return{onMouseDownResizeWidth:t((function(e){if(!l){var t=e.clientX,o=d;document.body.style.cursor="col-resize",document.body.style.userSelect="none";var r=function(e){m(!0);var r=o+(e.clientX-t);s(n,r>v?r:v)},u=function(){m(!1),document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",u),document.body.style.cursor="default",document.body.style.userSelect="auto"};document.addEventListener("mousemove",r),document.addEventListener("mouseup",u)}}),[l,v])}}function s(){var e=u(),t=e.x,r=e.setScrollX,c=n(null);return o((function(){var e=function(){c.current&&r(c.current.scrollLeft)};return c.current&&c.current.addEventListener("scroll",e),function(){c.current&&c.current.removeEventListener("scroll",e)}}),[]),o((function(){c.current&&(c.current.scrollLeft=t)}),[t]),c}export{c as useResizeColWidthHook,s as useScrollXRef};
2
+ //# sourceMappingURL=header-v2-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-v2-hook.js","sources":["../../../../../src/table/header/header-v2-hook.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useColumnsWidth } from \"./columns-width\";\nimport { useScrollXPosition } from \"./x-scroll-position\";\n\nexport function useResizeColWidthHook(keyName: string) {\n const { getColumnWidth, getColumnMinWidth, setColWidth } = useColumnsWidth();\n const [isDragging, setIsDragging] = useState(false);\n\n const colWidth = getColumnWidth(keyName);\n const minWidth = getColumnMinWidth(keyName);\n\n const cursorStyle = \"col-resize\";\n\n const onMouseDownResizeWidth: React.MouseEventHandler<HTMLDivElement> =\n useCallback(\n (e) => {\n if (isDragging) return;\n\n const startX = e.clientX;\n const startWidth = colWidth;\n\n document.body.style.cursor = cursorStyle;\n document.body.style.userSelect = \"none\";\n\n const onMouseMove = (moveEvent: MouseEvent) => {\n setIsDragging(true);\n const newWidth = startWidth + (moveEvent.clientX - startX);\n setColWidth(keyName, newWidth > minWidth ? newWidth : minWidth);\n };\n\n const onMouseUp = () => {\n setIsDragging(false);\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n document.body.style.cursor = \"default\";\n document.body.style.userSelect = \"auto\";\n };\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n },\n [isDragging, minWidth]\n );\n\n return {\n onMouseDownResizeWidth,\n };\n}\n\nexport function useScrollXRef() {\n const { x, setScrollX } = useScrollXPosition();\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleHeaderScroll = () => {\n if (ref.current) {\n setScrollX(ref.current.scrollLeft);\n }\n };\n\n if (ref.current) {\n ref.current.addEventListener(\"scroll\", handleHeaderScroll);\n }\n\n return () => {\n if (ref.current) {\n ref.current.removeEventListener(\"scroll\", handleHeaderScroll);\n }\n };\n }, []);\n\n useEffect(() => {\n if (ref.current) {\n ref.current.scrollLeft = x;\n }\n }, [x]);\n\n return ref;\n}\n"],"names":["useResizeColWidthHook","keyName","_a","useColumnsWidth","getColumnWidth","getColumnMinWidth","setColWidth","_b","useState","isDragging","setIsDragging","colWidth","minWidth","onMouseDownResizeWidth","useCallback","e","startX","clientX","startWidth","document","body","style","cursor","userSelect","onMouseMove","moveEvent","newWidth","onMouseUp","removeEventListener","addEventListener","useScrollXRef","useScrollXPosition","x","setScrollX","ref","useRef","useEffect","handleHeaderScroll","current","scrollLeft"],"mappings":"yRAIM,SAAUA,EAAsBC,GAC9B,IAAAC,EAAqDC,IAAnDC,EAAcF,EAAAE,eAAEC,EAAiBH,EAAAG,kBAAEC,EAAWJ,EAAAI,YAChDC,EAA8BC,GAAS,GAAtCC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAE1BI,EAAWP,EAAeH,GAC1BW,EAAWP,EAAkBJ,GAmCnC,MAAO,CACLY,uBA/BAC,GACE,SAACC,GACC,IAAIN,EAAJ,CAEA,IAAMO,EAASD,EAAEE,QACXC,EAAaP,EAEnBQ,SAASC,KAAKC,MAAMC,OAVN,aAWdH,SAASC,KAAKC,MAAME,WAAa,OAEjC,IAAMC,EAAc,SAACC,GACnBf,GAAc,GACd,IAAMgB,EAAWR,GAAcO,EAAUR,QAAUD,GACnDV,EAAYL,EAASyB,EAAWd,EAAWc,EAAWd,EACxD,EAEMe,EAAY,WAChBjB,GAAc,GACdS,SAASS,oBAAoB,YAAaJ,GAC1CL,SAASS,oBAAoB,UAAWD,GACxCR,SAASC,KAAKC,MAAMC,OAAS,UAC7BH,SAASC,KAAKC,MAAME,WAAa,MACnC,EAEAJ,SAASU,iBAAiB,YAAaL,GACvCL,SAASU,iBAAiB,UAAWF,EAvBd,CAwBzB,GACA,CAAClB,EAAYG,IAMnB,UAEgBkB,IACR,IAAA5B,EAAoB6B,IAAlBC,EAAC9B,EAAA8B,EAAEC,EAAU/B,EAAA+B,WACfC,EAAMC,EAAuB,MA0BnC,OAxBAC,GAAU,WACR,IAAMC,EAAqB,WACrBH,EAAII,SACNL,EAAWC,EAAII,QAAQC,WAE3B,EAMA,OAJIL,EAAII,SACNJ,EAAII,QAAQT,iBAAiB,SAAUQ,GAGlC,WACDH,EAAII,SACNJ,EAAII,QAAQV,oBAAoB,SAAUS,EAE9C,CACD,GAAE,IAEHD,GAAU,WACJF,EAAII,UACNJ,EAAII,QAAQC,WAAaP,EAE7B,GAAG,CAACA,IAEGE,CACT"}
@@ -0,0 +1,2 @@
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{memo as r,useRef as n,useEffect as l,useCallback as o,useMemo as i}from"react";import{useColumnsWidthState as a}from"./columns-width/context.js";import"../../../node_modules/tslib/tslib.es6.js";import{useResizeColWidthHook as s,useScrollXRef as c}from"./header-v2-hook.js";import{AllCheckbox as d}from"../checkbox/components.js";import{ConditionSearchBar as m}from"../../search-bar/condition-search-bar/base.js";import{useTableIdGenerator as h}from"../id/provider.js";import{useFilter as p}from"../filter-v2/context.js";function u(r){var n=h(),s=a().getColumnWidth,u=p(),b=u.conditions,y=u.addFilter,v=u.removeFilter,x=c();l((function(){if(x.current){var e=x.current,t=function(t){0!==t.deltaY&&(t.preventDefault(),e.scrollLeft+=t.deltaY)};return e.addEventListener("wheel",t),function(){e.removeEventListener("wheel",t)}}}),[x]);var g=o((function(e){switch(e.type){case"add":y(e.payload.condition);break;case"remove":v(e.payload.index)}}),[]),w=i((function(){return r.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}}}))}),[r.cols]);return e("div",{className:"border-gray-200 bg-gray-200 text-gray-600 rounded-t-md",style:{maxWidth:r.maxWidth},children:[t("div",{className:"py-2 px-2",children:t(m,{id:n.getTableHeaderId(),targets:w,conditions:b,onChangeCondition:g,size:"small"})}),t("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 "}),t("div",{ref:x,className:"relative max-w-full overflow-x-auto teppen-no-scrollbar",children:e("div",{className:"flex h-[32px]",children:[r.checkbox&&t("th",{className:"w-8 h-full",children:t(d,{rows:r.rows})}),r.cols.map((function(e){return t(f,{keyName:e.key.toString(),label:e.label,colWidth:s(e.key),disableSort:e.disableSort||!e.editable&&!!e.render,generateSortButton:r.generateSortButton},e.key.toString())}))]})})]})}var f=r((function(r){var l=n(null),o=s(r.keyName).onMouseDownResizeWidth,i=l.current?r.colWidth-l.current.clientWidth:r.colWidth;return e("div",{className:"relative",style:{width:r.colWidth,maxWidth:r.colWidth,minWidth:r.colWidth},children:[e("div",{className:"flex justify-between items-center bg-gray-200 text-gray-600 h-[32px]",children:[t("div",{className:"px-2",style:{maxWidth:i},children:r.label&&t("p",{className:"text-left font-bold text-nowrap overflow-hidden text-ellipsis",children:r.label})}),t("div",{ref:l,className:"flex items-center w-fit shrink-0 gap-1 px-1",children:!r.disableSort&&r.generateSortButton&&r.generateSortButton(r.keyName)})]}),t("div",{className:"absolute top-0 right-0 grid place-items-end py-1 w-[4px] h-full cursor-col-resize",onMouseDown:o,children:t("div",{className:"w-[1px] h-full bg-white"})})]})}));export{u as TableHeader};
2
+ //# sourceMappingURL=header-v2.js.map