@teppen/react-ui 1.7.7 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/node_modules/react-icons/bi/index.js +2 -0
- package/dist/cjs/node_modules/react-icons/bi/index.js.map +1 -0
- package/dist/cjs/node_modules/react-icons/ti/index.js +2 -0
- package/dist/cjs/node_modules/react-icons/ti/index.js.map +1 -0
- package/dist/cjs/src/search-bar/condition-search-bar/base.js +3 -0
- package/dist/cjs/src/search-bar/condition-search-bar/base.js.map +1 -0
- package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/context.js +2 -0
- package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/context.js.map +1 -0
- package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/hook.js +2 -0
- package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/hook.js.map +1 -0
- package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/provider.js +2 -0
- package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/provider.js.map +1 -0
- package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/reducer.js +2 -0
- package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/reducer.js.map +1 -0
- package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js +3 -0
- package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js.map +1 -0
- package/dist/cjs/src/search-bar/condition-search-bar/input-form.js +3 -0
- package/dist/cjs/src/search-bar/condition-search-bar/input-form.js.map +1 -0
- package/dist/cjs/src/search-bar/id-generator/context.js +2 -0
- package/dist/cjs/src/search-bar/id-generator/context.js.map +1 -0
- package/dist/cjs/src/search-bar/id-generator/provider.js +3 -0
- package/dist/cjs/src/select-box/index.js +2 -1
- package/dist/cjs/src/select-box/index.js.map +1 -1
- package/dist/cjs/src/select-box/options-window/component.js +2 -0
- package/dist/cjs/src/select-box/options-window/component.js.map +1 -0
- package/dist/cjs/src/select-box/options-window/context.js +2 -0
- package/dist/cjs/src/select-box/options-window/context.js.map +1 -0
- package/dist/cjs/src/select-box/options-window/hook.js +2 -0
- package/dist/cjs/src/select-box/options-window/hook.js.map +1 -0
- package/dist/cjs/src/select-box/options-window/provider.js +2 -0
- package/dist/cjs/src/select-box/options-window/provider.js.map +1 -0
- package/dist/cjs/src/select-box/options-window/reducer.js +2 -0
- package/dist/cjs/src/select-box/options-window/reducer.js.map +1 -0
- package/dist/cjs/src/select-box/parts/frame.js +1 -1
- package/dist/cjs/src/select-box/parts/frame.js.map +1 -1
- package/dist/cjs/src/select-box/parts/input-area.js +1 -1
- package/dist/cjs/src/select-box/provider.js +3 -0
- package/dist/cjs/src/share/search-operator/constant.js +2 -0
- package/dist/cjs/src/share/search-operator/constant.js.map +1 -0
- package/dist/cjs/src/table/cell/hooks.js +1 -1
- package/dist/cjs/src/table/cell/hooks.js.map +1 -1
- package/dist/cjs/src/table/checkbox/components.js +1 -1
- package/dist/cjs/src/table/filter-v2/context.js +2 -0
- package/dist/cjs/src/table/filter-v2/context.js.map +1 -0
- package/dist/cjs/src/table/filter-v2/hook.js +2 -0
- package/dist/cjs/src/table/filter-v2/hook.js.map +1 -0
- package/dist/cjs/src/table/filter-v2/provider.js +2 -0
- package/dist/cjs/src/table/filter-v2/provider.js.map +1 -0
- package/dist/cjs/src/table/filter-v2/reducer.js +2 -0
- package/dist/cjs/src/table/filter-v2/reducer.js.map +1 -0
- package/dist/cjs/src/table/frame/frame.js +3 -0
- package/dist/cjs/src/table/frame/frame.js.map +1 -0
- package/dist/cjs/src/table/header/columns-width/context.js +2 -0
- package/dist/cjs/src/table/header/columns-width/context.js.map +1 -0
- package/dist/cjs/src/table/header/columns-width/provider.js +3 -0
- package/dist/cjs/src/table/header/columns-width/provider.js.map +1 -0
- package/dist/cjs/src/table/header/columns-width/reducer.js +2 -0
- package/dist/cjs/src/table/header/columns-width/reducer.js.map +1 -0
- package/dist/cjs/src/table/header/header-v2-hook.js +2 -0
- package/dist/cjs/src/table/header/header-v2-hook.js.map +1 -0
- package/dist/cjs/src/table/header/header-v2.js +2 -0
- package/dist/cjs/src/table/header/header-v2.js.map +1 -0
- package/dist/cjs/src/table/header/header.js +1 -1
- package/dist/cjs/src/table/header/x-scroll-position/context.js +2 -0
- package/dist/cjs/src/table/header/x-scroll-position/context.js.map +1 -0
- package/dist/cjs/src/table/header/x-scroll-position/provider.js +2 -0
- package/dist/cjs/src/table/header/x-scroll-position/provider.js.map +1 -0
- package/dist/cjs/src/table/header/x-scroll-position/reducer.js +2 -0
- package/dist/cjs/src/table/header/x-scroll-position/reducer.js.map +1 -0
- package/dist/cjs/src/table/id/id-generator.js +1 -1
- package/dist/cjs/src/table/id/id-generator.js.map +1 -1
- package/dist/cjs/src/table/range/provider.js +1 -1
- package/dist/cjs/src/table/range/provider.js.map +1 -1
- package/dist/cjs/src/table/sheet/components.js +1 -1
- package/dist/cjs/src/table/sheet/components.js.map +1 -1
- package/dist/cjs/src/table/table/base.js +1 -1
- package/dist/cjs/src/table/table/component-provider/provider.js +3 -0
- package/dist/cjs/src/table/table/component-provider/provider.js.map +1 -0
- package/dist/cjs/src/table/table/hook.js +1 -1
- package/dist/cjs/src/table/table/hook.js.map +1 -1
- package/dist/esm/node_modules/react-icons/bi/index.js +2 -0
- package/dist/esm/node_modules/react-icons/bi/index.js.map +1 -0
- package/dist/esm/node_modules/react-icons/ti/index.js +2 -0
- package/dist/esm/node_modules/react-icons/ti/index.js.map +1 -0
- package/dist/esm/src/search-bar/condition-search-bar/base.js +3 -0
- package/dist/esm/src/search-bar/condition-search-bar/base.js.map +1 -0
- package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/context.js +2 -0
- package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/context.js.map +1 -0
- package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/hook.js +2 -0
- package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/hook.js.map +1 -0
- package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/provider.js +2 -0
- package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/provider.js.map +1 -0
- package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/reducer.js +2 -0
- package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/reducer.js.map +1 -0
- package/dist/esm/src/search-bar/condition-search-bar/condition-list.js +3 -0
- package/dist/esm/src/search-bar/condition-search-bar/condition-list.js.map +1 -0
- package/dist/esm/src/search-bar/condition-search-bar/input-form.js +3 -0
- package/dist/esm/src/search-bar/condition-search-bar/input-form.js.map +1 -0
- package/dist/esm/src/search-bar/id-generator/context.js +2 -0
- package/dist/esm/src/search-bar/id-generator/context.js.map +1 -0
- package/dist/esm/src/search-bar/id-generator/provider.js +3 -0
- package/dist/esm/src/search-bar/id-generator/provider.js.map +1 -0
- package/dist/esm/src/select-box/index.js +2 -1
- package/dist/esm/src/select-box/index.js.map +1 -1
- package/dist/esm/src/select-box/options-window/component.js +2 -0
- package/dist/esm/src/select-box/options-window/component.js.map +1 -0
- package/dist/esm/src/select-box/options-window/context.js +2 -0
- package/dist/esm/src/select-box/options-window/context.js.map +1 -0
- package/dist/esm/src/select-box/options-window/hook.js +2 -0
- package/dist/esm/src/select-box/options-window/hook.js.map +1 -0
- package/dist/esm/src/select-box/options-window/provider.js +2 -0
- package/dist/esm/src/select-box/options-window/provider.js.map +1 -0
- package/dist/esm/src/select-box/options-window/reducer.js +2 -0
- package/dist/esm/src/select-box/options-window/reducer.js.map +1 -0
- package/dist/esm/src/select-box/parts/frame.js +1 -1
- package/dist/esm/src/select-box/parts/frame.js.map +1 -1
- package/dist/esm/src/select-box/parts/input-area.js +1 -1
- package/dist/esm/src/select-box/provider.js +3 -0
- package/dist/esm/src/select-box/provider.js.map +1 -0
- package/dist/esm/src/share/search-operator/constant.js +2 -0
- package/dist/esm/src/share/search-operator/constant.js.map +1 -0
- package/dist/esm/src/table/cell/hooks.js +1 -1
- package/dist/esm/src/table/cell/hooks.js.map +1 -1
- package/dist/esm/src/table/checkbox/components.js +1 -1
- package/dist/esm/src/table/filter-v2/context.js +2 -0
- package/dist/esm/src/table/filter-v2/context.js.map +1 -0
- package/dist/esm/src/table/filter-v2/hook.js +2 -0
- package/dist/esm/src/table/filter-v2/hook.js.map +1 -0
- package/dist/esm/src/table/filter-v2/provider.js +2 -0
- package/dist/esm/src/table/filter-v2/provider.js.map +1 -0
- package/dist/esm/src/table/filter-v2/reducer.js +2 -0
- package/dist/esm/src/table/filter-v2/reducer.js.map +1 -0
- package/dist/esm/src/table/frame/frame.js +3 -0
- package/dist/esm/src/table/frame/frame.js.map +1 -0
- package/dist/esm/src/table/header/columns-width/context.js +2 -0
- package/dist/esm/src/table/header/columns-width/context.js.map +1 -0
- package/dist/esm/src/table/header/columns-width/provider.js +3 -0
- package/dist/esm/src/table/header/columns-width/provider.js.map +1 -0
- package/dist/esm/src/table/header/columns-width/reducer.js +2 -0
- package/dist/esm/src/table/header/columns-width/reducer.js.map +1 -0
- package/dist/esm/src/table/header/header-v2-hook.js +2 -0
- package/dist/esm/src/table/header/header-v2-hook.js.map +1 -0
- package/dist/esm/src/table/header/header-v2.js +2 -0
- package/dist/esm/src/table/header/header-v2.js.map +1 -0
- package/dist/esm/src/table/header/header.js +1 -1
- package/dist/esm/src/table/header/x-scroll-position/context.js +2 -0
- package/dist/esm/src/table/header/x-scroll-position/context.js.map +1 -0
- package/dist/esm/src/table/header/x-scroll-position/provider.js +2 -0
- package/dist/esm/src/table/header/x-scroll-position/provider.js.map +1 -0
- package/dist/esm/src/table/header/x-scroll-position/reducer.js +2 -0
- package/dist/esm/src/table/header/x-scroll-position/reducer.js.map +1 -0
- package/dist/esm/src/table/id/id-generator.js +1 -1
- package/dist/esm/src/table/id/id-generator.js.map +1 -1
- package/dist/esm/src/table/range/provider.js +1 -1
- package/dist/esm/src/table/range/provider.js.map +1 -1
- package/dist/esm/src/table/sheet/components.js +1 -1
- package/dist/esm/src/table/sheet/components.js.map +1 -1
- package/dist/esm/src/table/table/base.js +1 -1
- package/dist/esm/src/table/table/component-provider/provider.js +3 -0
- package/dist/esm/src/table/table/component-provider/provider.js.map +1 -0
- package/dist/esm/src/table/table/hook.js +1 -1
- package/dist/esm/src/table/table/hook.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/package.json +1 -1
- package/dist/cjs/src/select-box/parts/options-area.js +0 -2
- package/dist/cjs/src/select-box/parts/options-area.js.map +0 -1
- package/dist/cjs/src/table/filter/components.js +0 -3
- package/dist/cjs/src/table/filter/components.js.map +0 -1
- package/dist/cjs/src/table/filter/constants.js +0 -2
- package/dist/cjs/src/table/filter/constants.js.map +0 -1
- package/dist/cjs/src/table/filter/filter-icon.js +0 -2
- package/dist/cjs/src/table/filter/filter-icon.js.map +0 -1
- package/dist/cjs/src/table/filter/hooks/selectedFilteringColumn/hooks.js +0 -2
- package/dist/cjs/src/table/filter/hooks/selectedFilteringColumn/hooks.js.map +0 -1
- package/dist/cjs/src/table/filter/hooks/selectedFilteringColumn/provider.js +0 -2
- package/dist/cjs/src/table/filter/hooks/selectedFilteringColumn/provider.js.map +0 -1
- package/dist/cjs/src/table/filter/hooks.js +0 -2
- package/dist/cjs/src/table/filter/hooks.js.map +0 -1
- package/dist/cjs/src/table/filter/provider.js +0 -3
- package/dist/cjs/src/table/header/resize-col-width-hook.js +0 -2
- package/dist/cjs/src/table/header/resize-col-width-hook.js.map +0 -1
- package/dist/esm/src/select-box/parts/options-area.js +0 -2
- package/dist/esm/src/select-box/parts/options-area.js.map +0 -1
- package/dist/esm/src/table/filter/components.js +0 -3
- package/dist/esm/src/table/filter/components.js.map +0 -1
- package/dist/esm/src/table/filter/constants.js +0 -2
- package/dist/esm/src/table/filter/constants.js.map +0 -1
- package/dist/esm/src/table/filter/filter-icon.js +0 -2
- package/dist/esm/src/table/filter/filter-icon.js.map +0 -1
- package/dist/esm/src/table/filter/hooks/selectedFilteringColumn/hooks.js +0 -2
- package/dist/esm/src/table/filter/hooks/selectedFilteringColumn/hooks.js.map +0 -1
- package/dist/esm/src/table/filter/hooks/selectedFilteringColumn/provider.js +0 -2
- package/dist/esm/src/table/filter/hooks/selectedFilteringColumn/provider.js.map +0 -1
- package/dist/esm/src/table/filter/hooks.js +0 -2
- package/dist/esm/src/table/filter/hooks.js.map +0 -1
- package/dist/esm/src/table/filter/provider.js +0 -3
- package/dist/esm/src/table/header/resize-col-width-hook.js +0 -2
- package/dist/esm/src/table/header/resize-col-width-hook.js.map +0 -1
- /package/dist/cjs/src/{table/filter → search-bar/id-generator}/provider.js.map +0 -0
- /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 t}from"react/jsx-runtime";import{memo as r,useRef as i,useEffect as n}from"react";import{SelectBoxProvider as o}from"../../select-box/provider.js";import"../id-generator/context.js";import{IdGeneratorProvider as s}from"../id-generator/provider.js";import{ConditionInputProvider as l}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=r((function(t){return e(o,{children:e(s,{id:t.id,children:e(l,{targets:t.targets,onChangeCondition:t.onChangeCondition,children:e(f,{size:t.size,conditions:t.conditions})})})})}));function f(r){var o=i(null);return n((function(){if(o.current){var e=o.current,t=function(t){0!==t.deltaY&&(t.preventDefault(),e.scrollLeft+=t.deltaY)};return e.addEventListener("wheel",t),function(){e.removeEventListener("wheel",t)}}}),[o]),t("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"===r.size?"text-sm":"large"===r.size?"text-lg":""),children:[e("div",{className:"px-2",children:e(d,{className:"text-slate-600"})}),t("div",{ref:o,className:"relative flex w-full items-center gap-1 overflow-x-auto no_scrollbar",children:[e(a,{conditions:r.conditions}),e("div",{className:"flex items-center min-w-64 w-full",children:e(c,{size:r.size})})]})]})}export{m as ConditionSearchBar,f 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
|
package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/context.js.map
ADDED
|
@@ -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,useMemo as e}from"react";import{conditionInputReducer as n}from"./reducer.js";var r=function(r,o){var a=t(n,{targets:r,onChangeCondition:o,status:"waiting for input"}),p=a[0],i=a[1],u=e((function(){return{inputTarget:function(t){i({type:"inputTarget",payload:{targetKey:t}})},inputOperator:function(t){i({type:"inputOperator",payload:{operatorKey:t}})},inputValue:function(t){i({type:"inputValue",payload:t})},deleteCondition:function(t){i({type:"deleteCondition",payload:{index:t}})},reset:function(){i({type:"reset"})},updateTargets:function(t){i({type:"updateTargets",payload:{targets:t}})},removeInputedTarget:function(){i({type:"removeInputedTarget"})},removeInputedOperator:function(){i({type:"removeInputedOperator"})}}}),[]);return{state:p,actions:u}};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 { 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 onChangeCondition,\n status: \"waiting for input\",\n });\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","actions","useMemo","inputTarget","targetKey","type","payload","inputOperator","operatorKey","inputValue","value","deleteCondition","index","reset","updateTargets","removeInputedTarget","removeInputedOperator"],"mappings":"qGAIa,IAAAA,EAA6C,SACxDC,EACAC,GAEM,IAAAC,EAAoBC,EAAWC,EAAuB,CAC1DJ,QAAOA,EACPC,kBAAiBA,EACjBI,OAAQ,sBAHHC,EAAKJ,EAAA,GAAEK,OAMRC,EAAUC,GACd,WAAM,MAAC,CACLC,YAAa,SAACC,GACZJ,EAAS,CAAEK,KAAM,cAAeC,QAAS,CAAEF,UAASA,IACrD,EACDG,cAAe,SAACC,GACdR,EAAS,CAAEK,KAAM,gBAAiBC,QAAS,CAAEE,YAAWA,IACzD,EACDC,WAAY,SAACC,GACXV,EAAS,CAAEK,KAAM,aAAcC,QAASI,GACzC,EACDC,gBAAiB,SAACC,GAChBZ,EAAS,CAAEK,KAAM,kBAAmBC,QAAS,CAAEM,MAAKA,IACrD,EACDC,MAAO,WACLb,EAAS,CAAEK,KAAM,SAClB,EACDS,cAAe,SAACrB,GACdO,EAAS,CAAEK,KAAM,gBAAiBC,QAAS,CAAEb,QAAOA,IACrD,EACDsB,oBAAqB,WACnBf,EAAS,CAAEK,KAAM,uBAClB,EACDW,sBAAuB,WACrBhB,EAAS,CAAEK,KAAM,yBAClB,EAxBG,GA0BN,IAGF,MAAO,CACLN,MAAKA,EACLE,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
|
package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/provider.js.map
ADDED
|
@@ -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{DEFAULT_SEARCH_OPERATOR as t}from"../../../share/search-operator/constant.js";var n=function(n,e){switch(e.type){case"inputTarget":if("waiting for input"!==n.status)return n;var i=n.targets.find((function(t){return t.key===e.payload.targetKey}));return i?{targets:n.targets,onChangeCondition:n.onChangeCondition,status:"inputted target",inputtingCondition:{type:i.type,target:i},useableOperators:t.filter((function(t){return t.type===i.type}))}:n;case"inputOperator":if("inputted target"!==n.status)return n;var o=t.find((function(t){return t.key===e.payload.operatorKey}));return o?o.type!==n.inputtingCondition.target.type?n:"none"===o.inputType?(n.onChangeCondition({type:"add",payload:{condition:{target:n.inputtingCondition.target,operator:o,input:{type:"none"}}}}),{targets:n.targets,onChangeCondition:n.onChangeCondition,status:"waiting for input"}):{targets:n.targets,onChangeCondition:n.onChangeCondition,status:"inputted operator",inputtingCondition:{type:n.inputtingCondition.target.type,target:n.inputtingCondition.target,operator:o}}:n;case"inputValue":return"inputted operator"!==n.status?n:(n.onChangeCondition({type:"add",payload:{condition:{target:n.inputtingCondition.target,operator:n.inputtingCondition.operator,input:e.payload}}}),{targets:n.targets,onChangeCondition:n.onChangeCondition,status:"waiting for input"});case"deleteCondition":return n.onChangeCondition({type:"remove",payload:{index:e.payload.index}}),n;case"reset":return{targets:n.targets,onChangeCondition:n.onChangeCondition,status:"waiting for input"};case"updateTargets":return{targets:e.payload.targets,onChangeCondition:n.onChangeCondition,status:"waiting for input"};case"removeInputedTarget":return"inputted target"!=n.status&&"inputted operator"!=n.status?n:{targets:n.targets,onChangeCondition:n.onChangeCondition,status:"waiting for input"};case"removeInputedOperator":return"inputted operator"!==n.status?n:{targets:n.targets,onChangeCondition:n.onChangeCondition,status:"inputted target",inputtingCondition:{type:n.inputtingCondition.target.type,target:n.inputtingCondition.target},useableOperators:t.filter((function(t){return t.type===n.inputtingCondition.target.type}))}}};export{n as conditionInputReducer};
|
|
2
|
+
//# sourceMappingURL=reducer.js.map
|
package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/reducer.js.map
ADDED
|
@@ -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 onChangeCondition: state.onChangeCondition,\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 state.onChangeCondition({\n type: \"add\",\n payload: {\n condition: {\n target: state.inputtingCondition.target,\n operator,\n input: {\n type: \"none\",\n },\n },\n },\n });\n\n return {\n targets: state.targets,\n onChangeCondition: state.onChangeCondition,\n status: \"waiting for input\",\n };\n }\n\n return {\n targets: state.targets,\n onChangeCondition: state.onChangeCondition,\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 state.onChangeCondition({\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\n return {\n targets: state.targets,\n onChangeCondition: state.onChangeCondition,\n status: \"waiting for input\",\n };\n }\n\n case \"deleteCondition\": {\n state.onChangeCondition({\n type: \"remove\",\n payload: {\n index: action.payload.index,\n },\n });\n\n return state;\n }\n\n case \"reset\": {\n return {\n targets: state.targets,\n onChangeCondition: state.onChangeCondition,\n status: \"waiting for input\",\n };\n }\n\n case \"updateTargets\": {\n return {\n targets: action.payload.targets,\n onChangeCondition: state.onChangeCondition,\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 onChangeCondition: state.onChangeCondition,\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 onChangeCondition: state.onChangeCondition,\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};\n"],"names":["conditionInputReducer","state","action","type","status","target_1","targets","find","t","key","payload","targetKey","onChangeCondition","inputtingCondition","target","useableOperators","DEFAULT_SEARCH_OPERATOR","filter","o","operator","operatorKey","inputType","condition","input","index"],"mappings":"qFAGa,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,QACfM,kBAAmBX,EAAMW,kBACzBR,OAAQ,kBACRS,mBAAoB,CAClBV,KAAME,EAAOF,KACbW,OAAMT,GAERU,iBAAkBC,EAAwBC,QACxC,SAACC,GAAM,OAAAA,EAAEf,OAASE,EAAOF,SAZpBF,EAiBX,IAAK,gBACH,GAAqB,oBAAjBA,EAAMG,OACR,OAAOH,EAGT,IAAMkB,EAAWH,EAAwBT,MACvC,SAACW,GAAM,OAAAA,EAAET,MAAQP,EAAOQ,QAAQU,WAAW,IAG7C,OAAKD,EAIDA,EAAShB,OAASF,EAAMY,mBAAmBC,OAAOX,KAC7CF,EAGkB,SAAvBkB,EAASE,WACXpB,EAAMW,kBAAkB,CACtBT,KAAM,MACNO,QAAS,CACPY,UAAW,CACTR,OAAQb,EAAMY,mBAAmBC,OACjCK,SAAQA,EACRI,MAAO,CACLpB,KAAM,YAMP,CACLG,QAASL,EAAMK,QACfM,kBAAmBX,EAAMW,kBACzBR,OAAQ,sBAIL,CACLE,QAASL,EAAMK,QACfM,kBAAmBX,EAAMW,kBACzBR,OAAQ,oBACRS,mBAAoB,CAClBV,KAAMF,EAAMY,mBAAmBC,OAAOX,KACtCW,OAAQb,EAAMY,mBAAmBC,OACjCK,SAAQA,IAnCHlB,EAwCX,IAAK,aACH,MAAqB,sBAAjBA,EAAMG,OACDH,GAGTA,EAAMW,kBAAkB,CACtBT,KAAM,MACNO,QAAS,CACPY,UAAW,CACTR,OAAQb,EAAMY,mBAAmBC,OACjCK,SAAUlB,EAAMY,mBAAmBM,SACnCI,MAAOrB,EAAOQ,YAKb,CACLJ,QAASL,EAAMK,QACfM,kBAAmBX,EAAMW,kBACzBR,OAAQ,sBAIZ,IAAK,kBAQH,OAPAH,EAAMW,kBAAkB,CACtBT,KAAM,SACNO,QAAS,CACPc,MAAOtB,EAAOQ,QAAQc,SAInBvB,EAGT,IAAK,QACH,MAAO,CACLK,QAASL,EAAMK,QACfM,kBAAmBX,EAAMW,kBACzBR,OAAQ,qBAIZ,IAAK,gBACH,MAAO,CACLE,QAASJ,EAAOQ,QAAQJ,QACxBM,kBAAmBX,EAAMW,kBACzBR,OAAQ,qBAIZ,IAAK,sBACH,MAEoB,mBAAhBH,EAAMG,QACU,qBAAhBH,EAAMG,OAGDH,EAGF,CACLK,QAASL,EAAMK,QACfM,kBAAmBX,EAAMW,kBACzBR,OAAQ,qBAIZ,IAAK,wBACH,MAAqB,sBAAjBH,EAAMG,OACDH,EAGF,CACLK,QAASL,EAAMK,QACfM,kBAAmBX,EAAMW,kBACzBR,OAAQ,kBACRS,mBAAoB,CAClBV,KAAMF,EAAMY,mBAAmBC,OAAOX,KACtCW,OAAQb,EAAMY,mBAAmBC,QAEnCC,iBAAkBC,EAAwBC,QACxC,SAACC,GAAM,OAAAA,EAAEf,OAASF,EAAMY,mBAAmBC,OAAOX,IAA3C,KAKjB"}
|
|
@@ -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{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{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:"no_appearance 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:"no_appearance 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 @@
|
|
|
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
|
-
|
|
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":[
|
|
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 r}from"./context.js";import{useIdContext as i}from"../id/provider.js";import{IdGenerator as l}from"../lib/id-generator.js";function a(){var a=i(),u=r(),s=u.state,c=u.actions,p=n(""),d=p[0],f=p[1],v=n(void 0),m=v[0],g=v[1],h=s.isOpen?0===s.options.length?void 0:"number"==typeof m&&m<s.options.length&&m>=0?s.options[m].value:void 0:void 0;if(o((function(){if(s.isOpen){var e=document.getElementById(l.generateIdSelectBoxOption(a,null!=h?h:""));if(!e)return;e.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}else g(void 0)}),[s]),o((function(){if(s.isOpen){var e=function(e){if("ArrowDown"===e.key)e.preventDefault(),g((function(e){return"number"==typeof e?Math.min(e+1,s.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 m)){if(0===s.options.length||s.options.length<=m)return;var t=s.options[m].value;if(!t)return;f(t),s.onSelect(t),c.closeOptionsWindow()}};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}}),[s,m,g]),!s.isOpen)return e(t,{});var y=document.getElementById(s.selectBoxId);if(!y)return e(t,{});var b=y.getBoundingClientRect(),w=window.scrollY+b.top+b.height,x=window.scrollX+b.left;return e("div",{id:"ReactUI:SelectBox:OptionsArea",className:"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10",style:{top:w,left:x},children:s.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 h?h===t.value?"bg-gray-100":"bg-white":d===t.value?"bg-gray-100":"bg-white"),onClick:function(){s.onSelect(t.value),c.closeOptionsWindow()},children:null!==(o=t.searchLabel)&&void 0!==o?o:t.label},t.value)}))})}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, 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\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\n optionElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n } else {\n setSelectingIndex(undefined);\n }\n }, [state]);\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 if (!state.isOpen) return <></>;\n\n // state.selectBoxIdのElementの直下に表示する\n const selectBoxElement = document.getElementById(state.selectBoxId);\n\n if (!selectBoxElement) return <></>;\n\n const rect = selectBoxElement.getBoundingClientRect();\n let top = window.scrollY + rect.top + rect.height;\n let left = window.scrollX + rect.left;\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={{ top, left }}\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","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","_jsx","selectBoxElement","selectBoxId","rect","getBoundingClientRect","top","window","scrollY","height","left","scrollX","className","style","children","map","option","concat","onClick","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,GAIlCI,EAAiBV,EAAMW,OACA,IAAzBX,EAAMY,QAAQC,YACZN,EAC0B,iBAAnBC,GACPA,EAAiBR,EAAMY,QAAQC,QAC/BL,GAAkB,EAClBR,EAAMY,QAAQJ,GAAgBJ,WAC9BG,OACFA,EA+DJ,GA7DAO,GAAU,WACR,GAAId,EAAMW,OAAQ,CAChB,IAAMI,EAAgBC,SAASC,eAC7BC,EAAYC,0BAA0BvB,EAAIc,QAAAA,EAAkB,KAG9D,IAAKK,EAAe,OAEpBA,EAAcK,eAAe,CAC3BC,SAAU,SACVC,MAAO,UACPC,OAAQ,WAEX,MACCd,OAAkBF,EAEtB,GAAG,CAACP,IAEJc,GAAU,WACR,GAAId,EAAMW,OAAQ,CAChB,IAAMa,EAAgB,SAACC,GACrB,GAAc,cAAVA,EAAEC,IACJD,EAAEE,iBACFlB,GAAkB,SAACmB,GACjB,MAAgB,iBAATA,EACHC,KAAKC,IAAIF,EAAO,EAAG5B,EAAMY,QAAQC,OAAS,GAC1C,CAFJ,SAIG,GAAc,YAAVY,EAAEC,IACXD,EAAEE,iBACFlB,GAAkB,SAACmB,GACjB,MAAgB,iBAATA,EAAoBC,KAAKE,IAAIH,EAAO,EAAG,GAAK,CAAnD,SAEG,GAAc,UAAVH,EAAEC,MACXD,EAAEE,iBAC4B,iBAAnBnB,GAA6B,CACtC,GAC2B,IAAzBR,EAAMY,QAAQC,QACdb,EAAMY,QAAQC,QAAUL,EAExB,OAEF,IAAMwB,EAAQhC,EAAMY,QAAQJ,GAAgBJ,MAE5C,IAAK4B,EAAO,OAEZ3B,EAAS2B,GACThC,EAAMiC,SAASD,GACf/B,EAAQiC,oBACT,CAEL,EAIA,OAFAlB,SAASmB,iBAAiB,UAAWX,GAE9B,WACLR,SAASoB,oBAAoB,UAAWZ,EAC1C,CACD,CACF,GAAE,CAACxB,EAAOQ,EAAgBC,KAEtBT,EAAMW,OAAQ,OAAO0B,QAG1B,IAAMC,EAAmBtB,SAASC,eAAejB,EAAMuC,aAEvD,IAAKD,EAAkB,OAAOD,QAE9B,IAAMG,EAAOF,EAAiBG,wBAC1BC,EAAMC,OAAOC,QAAUJ,EAAKE,IAAMF,EAAKK,OACvCC,EAAOH,OAAOI,QAAUP,EAAKM,KAEjC,OACET,EACE,MAAA,CAAAzC,GAAI,gCACJoD,UAAU,4EACVC,MAAO,CAAEP,IAAGA,EAAEI,KAAIA,GAEjBI,SAAAlD,EAAMY,QAAQuC,KAAI,SAACC,WAAW,OAC7Bf,EACE,MAAA,CAAAzC,GAAIsB,EAAYC,0BAA0BvB,EAAgB,QAAZE,EAAAsD,EAAOhD,aAAK,IAAAN,EAAAA,EAAI,IAC9DkD,UAAW,+BACTK,OAA0B,iBAAnB3C,EACHA,IAAmB0C,EAAOhD,MACxB,cACA,WACFA,IAAUgD,EAAOhD,MACjB,cACA,YAGNkD,QAAS,WACPtD,EAAMiC,SAASmB,EAAOhD,OACtBH,EAAQiC,oBACV,EAECgB,SAAsB,QAAtBhD,EAAAkD,EAAOG,mBAAe,IAAArD,EAAAA,EAAAkD,EAAOI,OANzBJ,EAAOhD,MAQf,KAGP"}
|
|
@@ -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
|
|
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
|
|
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
|
|
2
|
+
import{jsx as e}from"react/jsx-runtime";import{useState as n,useMemo as t,useEffect as o}from"react";import{useIdContext as r}from"../id/provider.js";import{IdGenerator as a}from"../lib/id-generator.js";import{useOptionsWindow as i}from"../options-window/context.js";function c(c){var u,s,l,d=r(),p=i(),f=p.state,v=p.actions,m=n(""),w=m[0],x=m[1],g=t((function(){return c.options.filter((function(e){return e.searchText?e.searchText.toLowerCase().includes(w.toLowerCase()):e.searchLabel?e.searchLabel.toLowerCase().includes(w.toLowerCase()):e.label.toLowerCase().includes(w.toLowerCase())}))}),[c.options,w]);o((function(){f.isOpen&&v.setSearchText(f.searchText)}),[f]),o((function(){var e=function(e){if(f.isOpen){var n=document.getElementById(a.generateIdSelectBoxFrame(c.id)),t=document.getElementById("ReactUI:SelectBox:OptionsArea"),o=e.target;o instanceof Node&&(null==n?void 0:n.contains(o))||o instanceof Node&&(null==t?void 0:t.contains(o))||(x(""),c.close())}};return document.addEventListener("mousedown",e),function(){document.removeEventListener("mousedown",e)}}),[f]),o((function(){if(!f.isOpen){var e=document.getElementById(a.generateIdSelectBoxInputArea(c.id));if(e){var n=function(e){"ArrowDown"===e.key&&(e.preventDefault(),c.open())};return e.addEventListener("keydown",n),function(){e.removeEventListener("keydown",n)}}}}),[f,g]);var L=null!==(s=null===(u=c.options.find((function(e){return e.value===c.value})))||void 0===u?void 0:u.label)&&void 0!==s?s:"";return e("input",{id:a.generateIdSelectBoxInputArea(d),ref:c.inputRef,className:"px-2 py-1 ".concat(c.no_appearance?"no_appearance border-none focus:outline-none focus-visible:outline-none bg-transparent w-full":"border border-gray-300 w-full"),type:"text",placeholder:""===L?null!==(l=c.placeholder)&&void 0!==l?l:"選択してください":L,value:f.isOpen?f.searchText:L,onChange:function(e){e.preventDefault(),v.setSearchText(e.target.value)}})}export{c 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,
|
|
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","
|
|
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
|
|
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 o,useState as n,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 u=i(),a=u.x,d=u.setScrollX,m=o(null),v=n({scrollX:0,scrollY:0,barYHeight:0,barXWidth:0}),h=v[0],f=v[1],b=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,o=m.current.clientWidth/m.current.scrollWidth*100;f({scrollX:e>100?100:e,scrollY:t>100?100:t,barYHeight:r>100?100:r,barXWidth:o>100?100:o})}};return e(),m.current&&m.current.addEventListener("scroll",e),function(){m.current&&m.current.removeEventListener("scroll",e)}}),[d,b]),l((function(){m.current&&(m.current.scrollLeft=a)}),[a]),e("div",{className:"relative",style:{maxHeight:s.maxHeight,maxWidth:s.maxWidth},children:[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?"":"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,o=(null===(t=m.current)||void 0===t?void 0:t.scrollTop)||0,n=function(e){if(m.current){var t=(e.clientY-r)/h.barYHeight*100;m.current.scrollTop=o+t}},l=function(){document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",n),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,o=(null===(t=m.current)||void 0===t?void 0:t.scrollLeft)||0,n=function(t){if(m.current){e.preventDefault(),e.stopPropagation();var n=(t.clientX-r)/h.barXWidth*100;m.current.scrollLeft=o+n}},l=function(){document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",n),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 i,useEffect as o,useCallback as l,useMemo as n}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 u}from"../filter-v2/context.js";function p(r){var i=h(),s=a().getColumnWidth,p=u(),b=p.conditions,y=p.addFilter,v=p.removeFilter,x=c();o((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=l((function(e){switch(e.type){case"add":y(e.payload.condition);break;case"remove":v(e.payload.index)}}),[]),w=n((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:i.getTableHeaderId(),targets:w,conditions:b,onChangeCondition:g,size:"small"})}),t("div",{ref:x,className:"relative max-w-full overflow-x-auto 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 o=i(null),l=s(r.keyName).onMouseDownResizeWidth,n=o.current?r.colWidth-o.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:n},children:r.label&&t("p",{className:"text-left font-bold text-nowrap overflow-hidden text-ellipsis",children:r.label})}),t("div",{ref:o,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:l,children:t("div",{className:"w-[1px] h-full bg-white"})})]})}));export{p as TableHeader};
|
|
2
|
+
//# sourceMappingURL=header-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-v2.js","sources":["../../../../../src/table/header/header-v2.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { DataObject, DataRecord, TTableColumn } from \"../table/type\";\nimport { useColumnsWidthState } from \"./columns-width\";\nimport { useResizeColWidthHook, useScrollXRef } from \"./header-v2-hook\";\nimport { AllCheckbox } from \"../checkbox/components\";\nimport { ConditionSearchBar } from \"../../search-bar\";\nimport { useTableIdGenerator } from \"../id\";\nimport { useFilter } from \"../filter-v2\";\nimport { TConditionChangeAction } from \"../../search-bar/condition-search-bar/condition-input-management/type\";\n\ninterface IPropsTableHeader<T extends DataRecord> {\n cols: TTableColumn<T>[];\n checkbox?: boolean;\n rows: DataObject<T>[];\n maxWidth?: string;\n generateSortButton?: (columnKey: string) => React.ReactNode;\n}\n\nexport function TableHeader<T extends DataRecord>(props: IPropsTableHeader<T>) {\n const idGenerator = useTableIdGenerator();\n const { getColumnWidth } = useColumnsWidthState();\n const { conditions, addFilter, removeFilter } = useFilter();\n const ref = useScrollXRef();\n\n useEffect(() => {\n if (ref.current) {\n const element = ref.current;\n\n const scrollX = (e: WheelEvent) => {\n if (e.deltaY === 0) return;\n\n e.preventDefault();\n element.scrollLeft += e.deltaY;\n };\n\n element.addEventListener(\"wheel\", scrollX);\n\n return () => {\n element.removeEventListener(\"wheel\", scrollX);\n };\n }\n }, [ref]);\n\n const onChangeCondition = useCallback((action: TConditionChangeAction) => {\n switch (action.type) {\n case \"add\":\n addFilter(action.payload.condition);\n break;\n case \"remove\":\n removeFilter(action.payload.index);\n break;\n }\n }, []);\n\n const targets = useMemo(() => {\n return props.cols\n .filter(\n (col) => !!col.label && (col.editable || (!col.editable && !col.render))\n )\n .map((col) => {\n switch (col.type) {\n case \"string\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"number\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"select\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n options: col.options,\n };\n }\n });\n }, [props.cols]);\n\n return (\n <div\n className=\"border-gray-200 bg-gray-200 text-gray-600 rounded-t-md\"\n style={{ maxWidth: props.maxWidth }}\n >\n <div className=\"py-2 px-2\">\n <ConditionSearchBar\n id={idGenerator.getTableHeaderId()}\n targets={targets}\n conditions={conditions}\n onChangeCondition={onChangeCondition}\n size=\"small\"\n />\n </div>\n\n <div\n ref={ref}\n className=\"relative max-w-full overflow-x-auto no_scrollbar\"\n >\n <div className=\"flex h-[32px]\">\n {props.checkbox && (\n <th className=\"w-8 h-full\">\n <AllCheckbox rows={props.rows} />\n </th>\n )}\n {props.cols.map((col) => {\n return (\n <HeaderElement\n key={col.key.toString()}\n keyName={col.key.toString()}\n label={col.label}\n colWidth={getColumnWidth(col.key as string)}\n disableSort={col.disableSort || (!col.editable && !!col.render)}\n generateSortButton={props.generateSortButton}\n />\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n\ninterface IPropsHeaderElement {\n keyName: string;\n label?: string;\n colWidth: number;\n disableSort?: boolean;\n generateSortButton?: (columnKey: string) => React.ReactNode;\n}\n\nconst HeaderElement = memo(function HE(props: IPropsHeaderElement) {\n const ref = useRef<HTMLDivElement>(null);\n const { onMouseDownResizeWidth } = useResizeColWidthHook(props.keyName);\n\n const maxWidthLabel = ref.current\n ? props.colWidth - ref.current.clientWidth\n : props.colWidth;\n\n return (\n <div\n className=\"relative\"\n style={{\n width: props.colWidth,\n maxWidth: props.colWidth,\n minWidth: props.colWidth,\n }}\n >\n <div\n className={`flex justify-between items-center bg-gray-200 text-gray-600 h-[32px]`}\n >\n <div className=\"px-2\" style={{ maxWidth: maxWidthLabel }}>\n {props.label && (\n <p\n className={`text-left font-bold text-nowrap overflow-hidden text-ellipsis`}\n >\n {props.label}\n </p>\n )}\n </div>\n\n <div ref={ref} className=\"flex items-center w-fit shrink-0 gap-1 px-1\">\n {!props.disableSort &&\n props.generateSortButton &&\n props.generateSortButton(props.keyName)}\n </div>\n </div>\n <div\n className=\"absolute top-0 right-0 grid place-items-end py-1 w-[4px] h-full cursor-col-resize\"\n onMouseDown={onMouseDownResizeWidth}\n >\n <div className={`w-[1px] h-full bg-white`} />\n </div>\n </div>\n );\n});\n"],"names":["TableHeader","props","idGenerator","useTableIdGenerator","getColumnWidth","useColumnsWidthState","_a","useFilter","conditions","addFilter","removeFilter","ref","useScrollXRef","useEffect","current","element_1","scrollX_1","e","deltaY","preventDefault","scrollLeft","addEventListener","removeEventListener","onChangeCondition","useCallback","action","type","payload","condition","index","targets","useMemo","cols","filter","col","label","editable","render","map","key","toString","options","_jsxs","className","style","maxWidth","children","_jsx","ConditionSearchBar","id","getTableHeaderId","size","checkbox","AllCheckbox","rows","HeaderElement","keyName","colWidth","disableSort","generateSortButton","memo","useRef","onMouseDownResizeWidth","useResizeColWidthHook","maxWidthLabel","clientWidth","width","minWidth","onMouseDown"],"mappings":"ikBAkBM,SAAUA,EAAkCC,GAChD,IAAMC,EAAcC,IACZC,EAAmBC,mBACrBC,EAA0CC,IAAxCC,EAAUF,EAAAE,WAAEC,EAASH,EAAAG,UAAEC,EAAYJ,EAAAI,aACrCC,EAAMC,IAEZC,GAAU,WACR,GAAIF,EAAIG,QAAS,CACf,IAAMC,EAAUJ,EAAIG,QAEdE,EAAU,SAACC,GACE,IAAbA,EAAEC,SAEND,EAAEE,iBACFJ,EAAQK,YAAcH,EAAEC,OAC1B,EAIA,OAFAH,EAAQM,iBAAiB,QAASL,GAE3B,WACLD,EAAQO,oBAAoB,QAASN,EACvC,CACD,CACH,GAAG,CAACL,IAEJ,IAAMY,EAAoBC,GAAY,SAACC,GACrC,OAAQA,EAAOC,MACb,IAAK,MACHjB,EAAUgB,EAAOE,QAAQC,WACzB,MACF,IAAK,SACHlB,EAAae,EAAOE,QAAQE,OAGjC,GAAE,IAEGC,EAAUC,GAAQ,WACtB,OAAO9B,EAAM+B,KACVC,QACC,SAACC,GAAQ,QAAEA,EAAIC,QAAUD,EAAIE,WAAcF,EAAIE,WAAaF,EAAIG,WAEjEC,KAAI,SAACJ,GACJ,OAAQA,EAAIR,MACV,IAAK,SAML,IAAK,SACH,MAAO,CACLa,IAAKL,EAAIK,IAAIC,WACbL,MAAOD,EAAIC,MACXT,KAAMQ,EAAIR,MAEd,IAAK,SACH,MAAO,CACLa,IAAKL,EAAIK,IAAIC,WACbL,MAAOD,EAAIC,MACXT,KAAMQ,EAAIR,KACVe,QAASP,EAAIO,SAGrB,GACJ,GAAG,CAACxC,EAAM+B,OAEV,OACEU,SACEC,UAAU,yDACVC,MAAO,CAAEC,SAAU5C,EAAM4C,UAAUC,SAAA,CAEnCC,SAAKJ,UAAU,YACbG,SAAAC,EAACC,EACC,CAAAC,GAAI/C,EAAYgD,mBAChBpB,QAASA,EACTtB,WAAYA,EACZe,kBAAmBA,EACnB4B,KAAK,YAITJ,SACEpC,IAAKA,EACLgC,UAAU,mDAAkDG,SAE5DJ,SAAKC,UAAU,gBACZG,SAAA,CAAA7C,EAAMmD,UACLL,EAAI,KAAA,CAAAJ,UAAU,aAAYG,SACxBC,EAACM,EAAW,CAACC,KAAMrD,EAAMqD,SAG5BrD,EAAM+B,KAAKM,KAAI,SAACJ,GACf,OACEa,EAACQ,EAAa,CAEZC,QAAStB,EAAIK,IAAIC,WACjBL,MAAOD,EAAIC,MACXsB,SAAUrD,EAAe8B,EAAIK,KAC7BmB,YAAaxB,EAAIwB,cAAiBxB,EAAIE,YAAcF,EAAIG,OACxDsB,mBAAoB1D,EAAM0D,oBALrBzB,EAAIK,IAAIC,WAQlB,WAKX,CAUA,IAAMe,EAAgBK,GAAK,SAAY3D,GACrC,IAAMU,EAAMkD,EAAuB,MAC3BC,EAA2BC,EAAsB9D,EAAMuD,SAAQM,uBAEjEE,EAAgBrD,EAAIG,QACtBb,EAAMwD,SAAW9C,EAAIG,QAAQmD,YAC7BhE,EAAMwD,SAEV,OACEf,EACE,MAAA,CAAAC,UAAU,WACVC,MAAO,CACLsB,MAAOjE,EAAMwD,SACbZ,SAAU5C,EAAMwD,SAChBU,SAAUlE,EAAMwD,UAGlBX,SAAA,CAAAJ,EAAA,MAAA,CACEC,UAAW,iFAEXI,EAAK,MAAA,CAAAJ,UAAU,OAAOC,MAAO,CAAEC,SAAUmB,GACtClB,SAAA7C,EAAMkC,OACLY,OACEJ,UAAW,gEAEVG,SAAA7C,EAAMkC,UAKbY,EAAA,MAAA,CAAKpC,IAAKA,EAAKgC,UAAU,8CACtBG,UAAC7C,EAAMyD,aACNzD,EAAM0D,oBACN1D,EAAM0D,mBAAmB1D,EAAMuD,cAGrCT,EAAA,MAAA,CACEJ,UAAU,oFACVyB,YAAaN,EAAsBhB,SAEnCC,EAAK,MAAA,CAAAJ,UAAW,gCAIxB"}
|