inconel 0.1.17 → 0.1.18

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.
@@ -0,0 +1,180 @@
1
+ import { jsx as M, jsxs as te } from "react/jsx-runtime";
2
+ import { useState as ne, useRef as m, useCallback as d, useEffect as y } from "react";
3
+ import { createPortal as re } from "react-dom";
4
+ import { classNames as oe } from "../shared/classNames.js";
5
+ /* empty css */
6
+ const a = 10, s = 5;
7
+ function k(p) {
8
+ return p != null && !Number.isNaN(p);
9
+ }
10
+ function ue({
11
+ id: p = null,
12
+ className: q,
13
+ target: u = null,
14
+ watchTarget: z = !0,
15
+ trianglePosition: g = "top-left",
16
+ triangleShow: G = !0,
17
+ windowCenterToPage: v = !1,
18
+ closeButtonShow: K = !0,
19
+ onClosed: f,
20
+ onOutsideClick: W,
21
+ closeOnScroll: S = !1,
22
+ transition: j = "slide",
23
+ draggable: w = !1,
24
+ defaultPositionX: L = null,
25
+ defaultPositionY: R = null,
26
+ onPositionChange: C,
27
+ render: N = !0,
28
+ children: U,
29
+ portalTarget: J
30
+ }) {
31
+ const [Q, O] = ne(!1), c = m(null), V = m(null), X = m(null), $ = m({ x: null, y: null }), E = m(
32
+ void 0
33
+ ), I = m(!1), _ = J ?? (typeof document < "u" ? document.body : null), B = N && _ !== null, Y = !w && z && B, D = d(() => {
34
+ const t = c.current;
35
+ if (!t) return;
36
+ const { width: i, height: l } = t.getBoundingClientRect(), n = window.innerWidth / 2, e = window.innerHeight / 2;
37
+ t.style.transform = `translate(${n - i / 2}px, ${e - l / 2}px)`;
38
+ }, []), F = d(() => {
39
+ const t = c.current;
40
+ if (!t || !u) return;
41
+ const i = window.innerWidth, l = window.innerHeight, n = t.getBoundingClientRect(), e = u.getBoundingClientRect(), h = a * 1.5;
42
+ let r = 0, o = 0;
43
+ switch (g) {
44
+ case "top-left":
45
+ r = e.left + e.width / 2 - h, o = e.top + e.height + s;
46
+ break;
47
+ case "top-center":
48
+ r = e.left + e.width / 2 - n.width / 2, o = e.top + e.height + s;
49
+ break;
50
+ case "top-right":
51
+ r = e.left + e.width / 2 - n.width + h, o = e.top + e.height + s;
52
+ break;
53
+ case "bottom-left":
54
+ r = e.left + e.width / 2 - h, o = e.top - n.height - s;
55
+ break;
56
+ case "bottom-center":
57
+ r = e.left + e.width / 2 - n.width / 2, o = e.top - n.height - s;
58
+ break;
59
+ case "bottom-right":
60
+ r = e.left + e.width / 2 - n.width + h, o = e.top - n.height - s;
61
+ break;
62
+ case "left-top":
63
+ r = e.left + e.width + s, o = e.top + e.height / 2 - h;
64
+ break;
65
+ case "left-center":
66
+ r = e.left + e.width + s, o = e.top + e.height / 2 - n.height / 2;
67
+ break;
68
+ case "left-bottom":
69
+ r = e.left + e.width + s, o = e.top + e.height / 2 - n.height + h;
70
+ break;
71
+ case "right-top":
72
+ r = e.left - n.width - s, o = e.top + e.height / 2 - h;
73
+ break;
74
+ case "right-center":
75
+ r = e.left - n.width - s, o = e.top + e.height / 2 - n.height / 2;
76
+ break;
77
+ case "right-bottom":
78
+ r = e.left - n.width - s, o = e.top + e.height / 2 - n.height + h;
79
+ break;
80
+ }
81
+ r = r < a ? a : r, r = r + n.width + a > i ? i - (n.width + a) : r, o = o < a ? a : o, o = o + n.height + a > l ? l - (n.height + a) : o, t.style.transform = `translate(${r}px, ${o}px)`;
82
+ }, [u, g]), T = d(
83
+ (t) => {
84
+ const i = c.current;
85
+ i && !i.contains(t.target) && f();
86
+ },
87
+ [f]
88
+ ), b = d(
89
+ (t) => {
90
+ const i = c.current;
91
+ i && !i.contains(t.target) && W?.(t);
92
+ },
93
+ [W]
94
+ ), Z = d(() => {
95
+ Y && (v ? D() : F()), u && !document.body.contains(u) && (clearInterval(E.current), f());
96
+ }, [f, D, F, u, Y, v]), x = d((t) => {
97
+ t.preventDefault();
98
+ const i = X.current, l = c.current;
99
+ if (!i || !l) return;
100
+ const n = t.pageX - i.x, e = t.pageY - i.y;
101
+ $.current = { x: n, y: e }, I.current && requestAnimationFrame(() => {
102
+ l.style.transform = `translate(${n}px, ${e}px)`;
103
+ }), O(!0);
104
+ }, []), H = d(() => {
105
+ document.removeEventListener("mouseup", H), document.removeEventListener("mousemove", x), I.current = !1, C?.({
106
+ x: $.current.x,
107
+ y: $.current.y
108
+ }), O(!1);
109
+ }, [x, C]), A = d(
110
+ (t) => {
111
+ t.preventDefault();
112
+ const i = c.current;
113
+ if (!i) return;
114
+ const { left: l, top: n } = i.getBoundingClientRect();
115
+ X.current = { x: t.clientX - l, y: t.clientY - n }, I.current = !0, document.addEventListener("mouseup", H), document.addEventListener("mousemove", x);
116
+ },
117
+ [x, H]
118
+ );
119
+ if (y(() => {
120
+ document.removeEventListener("mousedown", b), clearInterval(E.current), !k(L) && !k(R) && (v ? D() : F()), B && document.addEventListener("mousedown", b);
121
+ let t;
122
+ return u && (E.current = setInterval(Z, 100), t = setTimeout(() => {
123
+ c.current?.classList.add("inconel-is-watched");
124
+ }, 500)), () => {
125
+ document.removeEventListener("mousedown", b), clearInterval(E.current), clearTimeout(t);
126
+ };
127
+ }, [N, u, b, v, w]), y(() => {
128
+ if (S)
129
+ return window.addEventListener("scroll", T, !0), () => window.removeEventListener("scroll", T, !0);
130
+ }, [S, T]), y(() => {
131
+ const t = V.current;
132
+ if (!(!t || !w))
133
+ return t.addEventListener("mousedown", A), () => t.removeEventListener("mousedown", A);
134
+ }, [w, A, N]), y(() => {
135
+ k(L) && k(R) && c.current?.style.setProperty(
136
+ "transform",
137
+ `translate(${L}px, ${R}px)`
138
+ );
139
+ }, []), !B || !_) return null;
140
+ const P = G ? g : "inconel-triangle-off", ee = j === "slide" ? `inconel-is-animated-${g.split("-")[0]}` : j === "fade" ? "inconel-is-animation-fade" : void 0;
141
+ return re(
142
+ /* @__PURE__ */ M(
143
+ "div",
144
+ {
145
+ id: p ?? void 0,
146
+ className: oe(
147
+ "inconel-floating-panel",
148
+ P,
149
+ ee,
150
+ Q && "inconel-is-holding",
151
+ q
152
+ ),
153
+ ref: c,
154
+ style: { transform: "translate(-1000px, 0px)" },
155
+ children: /* @__PURE__ */ te("div", { className: "inconel-floating-panel__content", children: [
156
+ w && /* @__PURE__ */ M("div", { className: "inconel-floating-panel__drag-bg", ref: V }),
157
+ U,
158
+ K && /* @__PURE__ */ M(
159
+ "div",
160
+ {
161
+ className: "inconel-floating-panel__close",
162
+ role: "button",
163
+ tabIndex: 0,
164
+ onClick: () => f(),
165
+ onKeyDown: (t) => {
166
+ (t.key === "Enter" || t.key === " ") && f();
167
+ },
168
+ children: "×"
169
+ }
170
+ )
171
+ ] })
172
+ }
173
+ ),
174
+ _
175
+ );
176
+ }
177
+ export {
178
+ ue as FloatingPanel
179
+ };
180
+ //# sourceMappingURL=FloatingPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingPanel.js","sources":["../../../src/components/FloatingPanel/FloatingPanel.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState, type ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { classNames } from '../shared/classNames'\nimport './styles.css'\n\nexport type FloatingPanelTrianglePosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right'\n | 'left-top'\n | 'left-center'\n | 'left-bottom'\n | 'right-top'\n | 'right-center'\n | 'right-bottom'\n\nexport interface FloatingPanelPosition {\n x: number | null\n y: number | null\n}\n\nexport interface FloatingPanelProps {\n id?: string | null\n className?: string\n target?: HTMLElement | null\n watchTarget?: boolean\n trianglePosition?: FloatingPanelTrianglePosition\n triangleShow?: boolean\n windowCenterToPage?: boolean\n closeButtonShow?: boolean\n onClosed: () => void\n onOutsideClick?: (event: MouseEvent) => void\n closeOnScroll?: boolean\n transition?: 'slide' | 'fade' | 'off'\n draggable?: boolean\n defaultPositionX?: number | null\n defaultPositionY?: number | null\n onPositionChange?: (position: FloatingPanelPosition) => void\n render?: boolean\n children?: ReactNode\n portalTarget?: Element | null\n}\n\nconst TRIANGLE_OFFSET = 10\nconst VERTICAL_OFFSET = 5\n\nfunction isValidNumber(value: number | null | undefined): value is number {\n return value !== null && value !== undefined && !Number.isNaN(value)\n}\n\nexport function FloatingPanel({\n id = null,\n className,\n target = null,\n watchTarget = true,\n trianglePosition = 'top-left',\n triangleShow = true,\n windowCenterToPage = false,\n closeButtonShow = true,\n onClosed,\n onOutsideClick,\n closeOnScroll = false,\n transition = 'slide',\n draggable = false,\n defaultPositionX = null,\n defaultPositionY = null,\n onPositionChange,\n render = true,\n children,\n portalTarget,\n}: FloatingPanelProps) {\n const [holding, setHolding] = useState(false)\n const panelRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const referencePosition = useRef<{ x: number; y: number } | null>(null)\n const lastDragPosition = useRef<FloatingPanelPosition>({ x: null, y: null })\n const watchIntervalRef = useRef<ReturnType<typeof setInterval> | undefined>(\n undefined,\n )\n const isDraggingRef = useRef(false)\n\n const resolvedPortalTarget =\n portalTarget ?? (typeof document !== 'undefined' ? document.body : null)\n const show = render && resolvedPortalTarget !== null\n const watchTargetActive = !draggable && watchTarget && show\n\n const setCenter = useCallback(() => {\n const panelElement = panelRef.current\n if (!panelElement) return\n const { width, height } = panelElement.getBoundingClientRect()\n const halfBrowserWidth = window.innerWidth / 2\n const halfBrowserHeight = window.innerHeight / 2\n panelElement.style.transform = `translate(${halfBrowserWidth - width / 2}px, ${\n halfBrowserHeight - height / 2\n }px)`\n }, [])\n\n const setPosition = useCallback(() => {\n const panelElement = panelRef.current\n if (!panelElement || !target) return\n\n const winWidth = window.innerWidth\n const winHeight = window.innerHeight\n const panelRect = panelElement.getBoundingClientRect()\n const targetRect = target.getBoundingClientRect()\n const horizontalOffset = TRIANGLE_OFFSET * 1.5\n\n let posX = 0\n let posY = 0\n\n switch (trianglePosition) {\n case 'top-left':\n posX = targetRect.left + targetRect.width / 2 - horizontalOffset\n posY = targetRect.top + targetRect.height + VERTICAL_OFFSET\n break\n case 'top-center':\n posX = targetRect.left + targetRect.width / 2 - panelRect.width / 2\n posY = targetRect.top + targetRect.height + VERTICAL_OFFSET\n break\n case 'top-right':\n posX =\n targetRect.left + targetRect.width / 2 - panelRect.width + horizontalOffset\n posY = targetRect.top + targetRect.height + VERTICAL_OFFSET\n break\n case 'bottom-left':\n posX = targetRect.left + targetRect.width / 2 - horizontalOffset\n posY = targetRect.top - panelRect.height - VERTICAL_OFFSET\n break\n case 'bottom-center':\n posX = targetRect.left + targetRect.width / 2 - panelRect.width / 2\n posY = targetRect.top - panelRect.height - VERTICAL_OFFSET\n break\n case 'bottom-right':\n posX =\n targetRect.left + targetRect.width / 2 - panelRect.width + horizontalOffset\n posY = targetRect.top - panelRect.height - VERTICAL_OFFSET\n break\n case 'left-top':\n posX = targetRect.left + targetRect.width + VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - horizontalOffset\n break\n case 'left-center':\n posX = targetRect.left + targetRect.width + VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - panelRect.height / 2\n break\n case 'left-bottom':\n posX = targetRect.left + targetRect.width + VERTICAL_OFFSET\n posY =\n targetRect.top + targetRect.height / 2 - panelRect.height + horizontalOffset\n break\n case 'right-top':\n posX = targetRect.left - panelRect.width - VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - horizontalOffset\n break\n case 'right-center':\n posX = targetRect.left - panelRect.width - VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - panelRect.height / 2\n break\n case 'right-bottom':\n posX = targetRect.left - panelRect.width - VERTICAL_OFFSET\n posY =\n targetRect.top + targetRect.height / 2 - panelRect.height + horizontalOffset\n break\n default:\n break\n }\n\n posX = posX < TRIANGLE_OFFSET ? TRIANGLE_OFFSET : posX\n posX =\n posX + panelRect.width + TRIANGLE_OFFSET > winWidth\n ? winWidth - (panelRect.width + TRIANGLE_OFFSET)\n : posX\n\n posY = posY < TRIANGLE_OFFSET ? TRIANGLE_OFFSET : posY\n posY =\n posY + panelRect.height + TRIANGLE_OFFSET > winHeight\n ? winHeight - (panelRect.height + TRIANGLE_OFFSET)\n : posY\n\n panelElement.style.transform = `translate(${posX}px, ${posY}px)`\n }, [target, trianglePosition])\n\n const handleScroll = useCallback(\n (event: Event) => {\n const panelElement = panelRef.current\n if (panelElement && !panelElement.contains(event.target as Node)) {\n onClosed()\n }\n },\n [onClosed],\n )\n\n const handleOutsideClick = useCallback(\n (event: MouseEvent) => {\n const panelElement = panelRef.current\n if (panelElement && !panelElement.contains(event.target as Node)) {\n onOutsideClick?.(event)\n }\n },\n [onOutsideClick],\n )\n\n const watchComponent = useCallback(() => {\n if (watchTargetActive) {\n if (windowCenterToPage) setCenter()\n else setPosition()\n }\n\n if (target && !document.body.contains(target)) {\n clearInterval(watchIntervalRef.current)\n onClosed()\n }\n }, [onClosed, setCenter, setPosition, target, watchTargetActive, windowCenterToPage])\n\n const handleMouseMove = useCallback((event: MouseEvent) => {\n event.preventDefault()\n const reference = referencePosition.current\n const panelElement = panelRef.current\n if (!reference || !panelElement) return\n\n const posX = event.pageX - reference.x\n const posY = event.pageY - reference.y\n lastDragPosition.current = { x: posX, y: posY }\n\n if (isDraggingRef.current) {\n requestAnimationFrame(() => {\n panelElement.style.transform = `translate(${posX}px, ${posY}px)`\n })\n }\n setHolding(true)\n }, [])\n\n const handleMouseUp = useCallback(() => {\n document.removeEventListener('mouseup', handleMouseUp)\n document.removeEventListener('mousemove', handleMouseMove)\n isDraggingRef.current = false\n onPositionChange?.({\n x: lastDragPosition.current.x,\n y: lastDragPosition.current.y,\n })\n setHolding(false)\n }, [handleMouseMove, onPositionChange])\n\n const handlePanelMouseDown = useCallback(\n (event: MouseEvent) => {\n event.preventDefault()\n const panelElement = panelRef.current\n if (!panelElement) return\n const { left, top } = panelElement.getBoundingClientRect()\n referencePosition.current = { x: event.clientX - left, y: event.clientY - top }\n isDraggingRef.current = true\n document.addEventListener('mouseup', handleMouseUp)\n document.addEventListener('mousemove', handleMouseMove)\n },\n [handleMouseMove, handleMouseUp],\n )\n\n useEffect(() => {\n document.removeEventListener('mousedown', handleOutsideClick)\n clearInterval(watchIntervalRef.current)\n\n if (!isValidNumber(defaultPositionX) && !isValidNumber(defaultPositionY)) {\n if (windowCenterToPage) setCenter()\n else setPosition()\n }\n\n if (show) {\n document.addEventListener('mousedown', handleOutsideClick)\n }\n\n let watchedTimeout: ReturnType<typeof setTimeout> | undefined\n if (target) {\n watchIntervalRef.current = setInterval(watchComponent, 100)\n watchedTimeout = setTimeout(() => {\n panelRef.current?.classList.add('inconel-is-watched')\n }, 500)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick)\n clearInterval(watchIntervalRef.current)\n clearTimeout(watchedTimeout)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [render, target, handleOutsideClick, windowCenterToPage, draggable])\n\n useEffect(() => {\n if (!closeOnScroll) return undefined\n window.addEventListener('scroll', handleScroll, true)\n return () => window.removeEventListener('scroll', handleScroll, true)\n }, [closeOnScroll, handleScroll])\n\n useEffect(() => {\n const contentElement = contentRef.current\n if (!contentElement || !draggable) return undefined\n contentElement.addEventListener('mousedown', handlePanelMouseDown)\n return () =>\n contentElement.removeEventListener('mousedown', handlePanelMouseDown)\n }, [draggable, handlePanelMouseDown, render])\n\n useEffect(() => {\n if (isValidNumber(defaultPositionX) && isValidNumber(defaultPositionY)) {\n panelRef.current?.style.setProperty(\n 'transform',\n `translate(${defaultPositionX}px, ${defaultPositionY}px)`,\n )\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n if (!show || !resolvedPortalTarget) return null\n\n const triangleClass = triangleShow ? trianglePosition : 'inconel-triangle-off'\n const transitionClass =\n transition === 'slide'\n ? `inconel-is-animated-${trianglePosition.split('-')[0]}`\n : transition === 'fade'\n ? 'inconel-is-animation-fade'\n : undefined\n\n return createPortal(\n <div\n id={id ?? undefined}\n className={classNames(\n 'inconel-floating-panel',\n triangleClass,\n transitionClass,\n holding && 'inconel-is-holding',\n className,\n )}\n ref={panelRef}\n style={{ transform: 'translate(-1000px, 0px)' }}\n >\n <div className=\"inconel-floating-panel__content\">\n {draggable && (\n <div className=\"inconel-floating-panel__drag-bg\" ref={contentRef} />\n )}\n {children}\n {closeButtonShow && (\n <div\n className=\"inconel-floating-panel__close\"\n role=\"button\"\n tabIndex={0}\n onClick={() => onClosed()}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') onClosed()\n }}\n >\n ×\n </div>\n )}\n </div>\n </div>,\n resolvedPortalTarget,\n )\n}\n"],"names":["TRIANGLE_OFFSET","VERTICAL_OFFSET","isValidNumber","value","FloatingPanel","id","className","target","watchTarget","trianglePosition","triangleShow","windowCenterToPage","closeButtonShow","onClosed","onOutsideClick","closeOnScroll","transition","draggable","defaultPositionX","defaultPositionY","onPositionChange","render","children","portalTarget","holding","setHolding","useState","panelRef","useRef","contentRef","referencePosition","lastDragPosition","watchIntervalRef","isDraggingRef","resolvedPortalTarget","show","watchTargetActive","setCenter","useCallback","panelElement","width","height","halfBrowserWidth","halfBrowserHeight","setPosition","winWidth","winHeight","panelRect","targetRect","horizontalOffset","posX","posY","handleScroll","event","handleOutsideClick","watchComponent","handleMouseMove","reference","handleMouseUp","handlePanelMouseDown","left","top","useEffect","watchedTimeout","contentElement","triangleClass","transitionClass","createPortal","jsx","classNames","jsxs"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { FloatingPanel } from './FloatingPanel';
2
+ export type { FloatingPanelProps, FloatingPanelPosition, FloatingPanelTrianglePosition, } from './FloatingPanel';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { ReactNode } from 'react';
2
+ export interface MultiSelectCheckBoxOption {
3
+ [key: string]: unknown;
4
+ }
5
+ export interface MultiSelectCheckBoxProps<T extends MultiSelectCheckBoxOption = MultiSelectCheckBoxOption> {
6
+ id?: string | null;
7
+ label?: ReactNode;
8
+ className?: string | null;
9
+ labelClassName?: string | null;
10
+ inputClassName?: string | null;
11
+ optionsClassName?: string | null;
12
+ optionItemClassName?: string | null;
13
+ searchableInputClassName?: string | null;
14
+ options?: T[];
15
+ defaultSelectedOptions?: T[];
16
+ optionLabel?: string;
17
+ optionValue?: string;
18
+ onChange?: (selected: T[]) => void;
19
+ placeholder?: string;
20
+ selectedInputMessage?: string;
21
+ itemSelectedText?: string;
22
+ selectAllText?: string;
23
+ searchPlaceholder?: string;
24
+ noDataMessage?: string;
25
+ errorMessage?: string;
26
+ errorPlace?: 'in' | 'out';
27
+ isSearchable?: boolean;
28
+ isLoading?: boolean;
29
+ isDisabled?: boolean;
30
+ reactPortal?: boolean;
31
+ windowPosition?: boolean;
32
+ windowHeight?: number;
33
+ windowClose?: (closed: boolean) => void;
34
+ isScrollEnd?: (end: boolean) => void;
35
+ getOptionTooltip?: (option: T) => string | undefined;
36
+ limit?: number | null;
37
+ selectionLimit?: number | null;
38
+ }
39
+ export declare function MultiSelectCheckBox<T extends MultiSelectCheckBoxOption = MultiSelectCheckBoxOption>({ id, label, className, labelClassName, inputClassName, optionsClassName, optionItemClassName, searchableInputClassName, options, defaultSelectedOptions, optionLabel, optionValue, onChange, placeholder, selectedInputMessage, itemSelectedText, selectAllText, searchPlaceholder, noDataMessage, errorMessage, errorPlace, isSearchable, isLoading, isDisabled, reactPortal, windowPosition, windowHeight, windowClose, isScrollEnd, getOptionTooltip, limit, selectionLimit, }: MultiSelectCheckBoxProps<T>): import("react").JSX.Element;
40
+ //# sourceMappingURL=MultiSelectCheckBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectCheckBox.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelectCheckBox/MultiSelectCheckBox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAA;AAKd,OAAO,cAAc,CAAA;AAErB,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,wBAAwB,CACvC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB;IAE/D,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;IACb,sBAAsB,CAAC,EAAE,CAAC,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACvC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACpC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;IACpD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAcD,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,EAC/D,EACA,EAAS,EACT,KAAY,EACZ,SAAgB,EAChB,cAAqB,EACrB,cAAqB,EACrB,gBAAuB,EACvB,mBAA0B,EAC1B,wBAA+B,EAC/B,OAAuB,EACvB,sBAAsC,EACtC,WAAqB,EACrB,WAAqB,EACrB,QAAQ,EACR,WAAuB,EACvB,oBAAoB,EACpB,gBAA+B,EAC/B,aAA4B,EAC5B,iBAAyB,EACzB,aAAiC,EACjC,YAAiB,EACjB,UAAkB,EAClB,YAAoB,EACpB,SAAiB,EACjB,UAAkB,EAClB,WAAmB,EACnB,cAAsB,EACtB,YAAkB,EAClB,WAAW,EACX,WAAW,EACX,gBACkE,EAClE,KAAY,EACZ,cAAqB,GACtB,EAAE,wBAAwB,CAAC,CAAC,CAAC,+BAwX7B"}
@@ -0,0 +1,315 @@
1
+ import { jsx as t, jsxs as p } from "react/jsx-runtime";
2
+ import { useRef as F, useState as b, useCallback as v, useEffect as k, useLayoutEffect as Se, useMemo as I } from "react";
3
+ import { createPortal as Ee } from "react-dom";
4
+ import { classNames as u } from "../shared/classNames.js";
5
+ /* empty css */
6
+ import { DotLoader as Le } from "../DotLoader/DotLoader.js";
7
+ const te = [];
8
+ function C(y, N, w) {
9
+ return y.some(
10
+ (T) => T?.[w] === N?.[w]
11
+ );
12
+ }
13
+ function Ae({
14
+ id: y = null,
15
+ label: N = null,
16
+ className: w = null,
17
+ labelClassName: T = null,
18
+ inputClassName: le = null,
19
+ optionsClassName: ce = null,
20
+ optionItemClassName: j = null,
21
+ searchableInputClassName: ie = null,
22
+ options: S = te,
23
+ defaultSelectedOptions: E = te,
24
+ optionLabel: _ = "label",
25
+ optionValue: c = "value",
26
+ onChange: B,
27
+ placeholder: K = "Seçiniz",
28
+ selectedInputMessage: q,
29
+ itemSelectedText: H = "öğe seçili",
30
+ selectAllText: oe = "Tümünü Seç",
31
+ searchPlaceholder: se = "Ara",
32
+ noDataMessage: re = "Veri bulunamadı",
33
+ errorMessage: L = "",
34
+ errorPlace: W = "out",
35
+ isSearchable: ue = !1,
36
+ isLoading: ae = !1,
37
+ isDisabled: m = !1,
38
+ reactPortal: i = !1,
39
+ windowPosition: Y = !1,
40
+ windowHeight: G = 800,
41
+ windowClose: J,
42
+ isScrollEnd: M,
43
+ getOptionTooltip: de = (x) => typeof x?.tooltip == "string" ? x.tooltip : void 0,
44
+ limit: he = null,
45
+ selectionLimit: me = null
46
+ }) {
47
+ const x = F(null), $ = F(null), P = F(null), [o, Q] = b(!1), [n, U] = b(
48
+ E
49
+ ), [X, fe] = b(
50
+ null
51
+ ), [D, Z] = b(""), [pe, be] = b(null), [ve, V] = b(!1), s = Number(he ?? me), a = Number.isFinite(s) && s > 0, R = v(() => {
52
+ if (!i || !$.current) return;
53
+ const e = $.current.getBoundingClientRect();
54
+ be({
55
+ position: "fixed",
56
+ left: e.left,
57
+ top: e.bottom,
58
+ width: e.width,
59
+ zIndex: 9999
60
+ }), V(!0);
61
+ }, [i]);
62
+ k(() => {
63
+ const e = a ? E.slice(0, s) : E;
64
+ U(e);
65
+ }, [E, a, s]), k(() => {
66
+ o || (J?.(!0), Z(""));
67
+ }, [o, J]), k(() => {
68
+ if (!o) return;
69
+ const e = x.current, l = P.current, r = (h) => {
70
+ const g = h.target, O = e?.contains(g), we = l?.contains(g);
71
+ !O && !we && Q(!1);
72
+ };
73
+ return document.addEventListener("pointerdown", r, !0), () => document.removeEventListener("pointerdown", r, !0);
74
+ }, [o]), Se(() => {
75
+ if (!o) {
76
+ V(!1);
77
+ return;
78
+ }
79
+ i && R();
80
+ }, [o, i, R]), k(() => {
81
+ if (!o || !i) return;
82
+ const e = () => R();
83
+ return window.addEventListener("resize", e), window.addEventListener("scroll", e, !0), () => {
84
+ window.removeEventListener("resize", e), window.removeEventListener("scroll", e, !0);
85
+ };
86
+ }, [o, i, R]), k(() => {
87
+ Y && fe(Number(G) < 800 ? "top" : "bottom");
88
+ }, [G, Y]);
89
+ const f = v(
90
+ (e) => {
91
+ U(e), B?.(e);
92
+ },
93
+ [B]
94
+ ), _e = v(
95
+ (e) => {
96
+ const l = e.currentTarget;
97
+ l.scrollHeight - l.scrollTop <= l.clientHeight + 1 && M?.(!0);
98
+ },
99
+ [M]
100
+ ), xe = v(
101
+ (e) => {
102
+ if (C(n, e, c)) {
103
+ f(
104
+ n.filter(
105
+ (l) => l?.[c] !== e?.[c]
106
+ )
107
+ );
108
+ return;
109
+ }
110
+ a && n.length >= s || f([...n, e]);
111
+ },
112
+ [
113
+ a,
114
+ s,
115
+ c,
116
+ n,
117
+ f
118
+ ]
119
+ ), d = I(() => {
120
+ const e = D.trim().toLocaleLowerCase();
121
+ return e ? S.filter(
122
+ (l) => String(l?.[_] ?? "").toLocaleLowerCase().includes(e)
123
+ ) : S;
124
+ }, [S, _, D]), ge = I(() => n.length === 0 ? "" : n.length === 1 ? String(n[0]?.[_] ?? "") : `${n.length} ${q || H}`, [H, _, q, n]), ke = W === "in" && L || K, ee = v(() => {
125
+ m || Q((e) => !e);
126
+ }, [m]), ye = (e) => {
127
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), ee());
128
+ }, z = I(
129
+ () => d.length > 0 && d.every(
130
+ (e) => C(n, e, c)
131
+ ),
132
+ [d, c, n]
133
+ ), Ne = v(() => {
134
+ if (z) {
135
+ f(
136
+ n.filter(
137
+ (r) => !d.some(
138
+ (h) => r?.[c] === h?.[c]
139
+ )
140
+ )
141
+ );
142
+ return;
143
+ }
144
+ const e = d.filter(
145
+ (r) => !C(n, r, c)
146
+ ), l = a ? e.slice(0, Math.max(s - n.length, 0)) : e;
147
+ f([...n, ...l]);
148
+ }, [
149
+ z,
150
+ d,
151
+ a,
152
+ s,
153
+ c,
154
+ n,
155
+ f
156
+ ]), A = y || "inconel-multi-select-checkbox", ne = /* @__PURE__ */ t(
157
+ "div",
158
+ {
159
+ ref: i ? P : void 0,
160
+ className: u(
161
+ "inconel-multi-select-checkbox__panel-wrap",
162
+ i && "inconel-multi-select-checkbox__panel-wrap--portal",
163
+ X === "top" && "inconel-is-open-top"
164
+ ),
165
+ style: i ? { ...pe ?? {}, visibility: ve ? "visible" : "hidden" } : void 0,
166
+ onPointerDown: (e) => e.stopPropagation(),
167
+ children: /* @__PURE__ */ p(
168
+ "div",
169
+ {
170
+ className: u(
171
+ "inconel-multi-select-checkbox__options",
172
+ i && "inconel-multi-select-checkbox__options--portal",
173
+ ce
174
+ ),
175
+ onScroll: _e,
176
+ children: [
177
+ ue && /* @__PURE__ */ t("div", { className: "inconel-multi-select-checkbox__search", children: /* @__PURE__ */ t(
178
+ "input",
179
+ {
180
+ type: "text",
181
+ placeholder: se,
182
+ className: u(
183
+ "inconel-multi-select-checkbox__search-input",
184
+ ie
185
+ ),
186
+ value: D,
187
+ onChange: (e) => Z(e.target.value),
188
+ disabled: m
189
+ }
190
+ ) }),
191
+ /* @__PURE__ */ p(
192
+ "div",
193
+ {
194
+ className: u(
195
+ "inconel-multi-select-checkbox__option-item",
196
+ j
197
+ ),
198
+ children: [
199
+ /* @__PURE__ */ t(
200
+ "input",
201
+ {
202
+ id: `${A}-select-all`,
203
+ type: "checkbox",
204
+ checked: z,
205
+ onChange: Ne,
206
+ disabled: m
207
+ }
208
+ ),
209
+ /* @__PURE__ */ t("label", { htmlFor: `${A}-select-all`, children: oe })
210
+ ]
211
+ }
212
+ ),
213
+ d.map((e, l) => {
214
+ const r = e?.[c] ?? l, h = C(n, e, c), g = m || !h && a && n.length >= s, O = `${A}-${String(r)}`;
215
+ return /* @__PURE__ */ p(
216
+ "div",
217
+ {
218
+ className: u(
219
+ "inconel-multi-select-checkbox__option-item",
220
+ h && "inconel-is-selected",
221
+ g && "inconel-is-disabled",
222
+ j
223
+ ),
224
+ title: de(e),
225
+ children: [
226
+ /* @__PURE__ */ t(
227
+ "input",
228
+ {
229
+ id: O,
230
+ type: "checkbox",
231
+ checked: h,
232
+ onChange: () => xe(e),
233
+ disabled: g
234
+ }
235
+ ),
236
+ /* @__PURE__ */ t("label", { htmlFor: O, children: String(e?.[_] ?? "") })
237
+ ]
238
+ },
239
+ String(r)
240
+ );
241
+ })
242
+ ]
243
+ }
244
+ )
245
+ }
246
+ );
247
+ return /* @__PURE__ */ p(
248
+ "div",
249
+ {
250
+ ref: x,
251
+ id: y ?? void 0,
252
+ className: u(
253
+ "inconel-multi-select-checkbox",
254
+ L && "inconel-is-error",
255
+ m && "inconel-is-disabled",
256
+ X === "top" && !i && "inconel-is-open-top",
257
+ w
258
+ ),
259
+ children: [
260
+ N && /* @__PURE__ */ t(
261
+ "span",
262
+ {
263
+ className: u(
264
+ "inconel-multi-select-checkbox__label",
265
+ T
266
+ ),
267
+ children: N
268
+ }
269
+ ),
270
+ /* @__PURE__ */ p("div", { className: "inconel-multi-select-checkbox__input-wrap", children: [
271
+ ae && /* @__PURE__ */ t("div", { className: "inconel-multi-select-checkbox__loader-cover", children: /* @__PURE__ */ t(Le, {}) }),
272
+ /* @__PURE__ */ p(
273
+ "div",
274
+ {
275
+ ref: $,
276
+ role: "button",
277
+ tabIndex: 0,
278
+ className: "inconel-multi-select-checkbox__input-container",
279
+ onClick: ee,
280
+ onKeyDown: ye,
281
+ children: [
282
+ /* @__PURE__ */ t(
283
+ "input",
284
+ {
285
+ type: "text",
286
+ className: u(
287
+ "inconel-multi-select-checkbox__input",
288
+ le
289
+ ),
290
+ placeholder: ke,
291
+ readOnly: !0,
292
+ value: ge
293
+ }
294
+ ),
295
+ /* @__PURE__ */ t(
296
+ "span",
297
+ {
298
+ className: "inconel-multi-select-checkbox__indicator",
299
+ "aria-hidden": "true"
300
+ }
301
+ )
302
+ ]
303
+ }
304
+ )
305
+ ] }),
306
+ o && (S.length > 0 ? i ? Ee(ne, document.body) : ne : /* @__PURE__ */ t("div", { className: "inconel-multi-select-checkbox__nodata", children: /* @__PURE__ */ t("span", { children: re }) })),
307
+ W !== "in" && L && /* @__PURE__ */ t("span", { className: "inconel-multi-select-checkbox__error", children: L })
308
+ ]
309
+ }
310
+ );
311
+ }
312
+ export {
313
+ Ae as MultiSelectCheckBox
314
+ };
315
+ //# sourceMappingURL=MultiSelectCheckBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectCheckBox.js","sources":["../../../src/components/MultiSelectCheckBox/MultiSelectCheckBox.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type KeyboardEvent,\n type ReactNode,\n type UIEvent,\n} from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { DotLoader } from '../DotLoader'\nimport { classNames } from '../shared/classNames'\nimport './styles.css'\n\nexport interface MultiSelectCheckBoxOption {\n [key: string]: unknown\n}\n\nexport interface MultiSelectCheckBoxProps<\n T extends MultiSelectCheckBoxOption = MultiSelectCheckBoxOption,\n> {\n id?: string | null\n label?: ReactNode\n className?: string | null\n labelClassName?: string | null\n inputClassName?: string | null\n optionsClassName?: string | null\n optionItemClassName?: string | null\n searchableInputClassName?: string | null\n options?: T[]\n defaultSelectedOptions?: T[]\n optionLabel?: string\n optionValue?: string\n onChange?: (selected: T[]) => void\n placeholder?: string\n selectedInputMessage?: string\n itemSelectedText?: string\n selectAllText?: string\n searchPlaceholder?: string\n noDataMessage?: string\n errorMessage?: string\n errorPlace?: 'in' | 'out'\n isSearchable?: boolean\n isLoading?: boolean\n isDisabled?: boolean\n reactPortal?: boolean\n windowPosition?: boolean\n windowHeight?: number\n windowClose?: (closed: boolean) => void\n isScrollEnd?: (end: boolean) => void\n getOptionTooltip?: (option: T) => string | undefined\n limit?: number | null\n selectionLimit?: number | null\n}\n\nconst EMPTY_OPTIONS: never[] = []\n\nfunction isOptionSelected<T extends MultiSelectCheckBoxOption>(\n selected: T[],\n option: T,\n optionValue: string,\n) {\n return selected.some(\n (item) => item?.[optionValue] === option?.[optionValue],\n )\n}\n\nexport function MultiSelectCheckBox<\n T extends MultiSelectCheckBoxOption = MultiSelectCheckBoxOption,\n>({\n id = null,\n label = null,\n className = null,\n labelClassName = null,\n inputClassName = null,\n optionsClassName = null,\n optionItemClassName = null,\n searchableInputClassName = null,\n options = EMPTY_OPTIONS,\n defaultSelectedOptions = EMPTY_OPTIONS,\n optionLabel = 'label',\n optionValue = 'value',\n onChange,\n placeholder = 'Seçiniz',\n selectedInputMessage,\n itemSelectedText = 'öğe seçili',\n selectAllText = 'Tümünü Seç',\n searchPlaceholder = 'Ara',\n noDataMessage = 'Veri bulunamadı',\n errorMessage = '',\n errorPlace = 'out',\n isSearchable = false,\n isLoading = false,\n isDisabled = false,\n reactPortal = false,\n windowPosition = false,\n windowHeight = 800,\n windowClose,\n isScrollEnd,\n getOptionTooltip = (option: T) =>\n typeof option?.tooltip === 'string' ? option.tooltip : undefined,\n limit = null,\n selectionLimit = null,\n}: MultiSelectCheckBoxProps<T>) {\n const rootRef = useRef<HTMLDivElement>(null)\n const anchorRef = useRef<HTMLDivElement>(null)\n const portalWrapRef = useRef<HTMLDivElement>(null)\n\n const [showOptions, setShowOptions] = useState(false)\n const [selectedOptions, setSelectedOptions] = useState<T[]>(\n defaultSelectedOptions,\n )\n const [openDirection, setOpenDirection] = useState<'top' | 'bottom' | null>(\n null,\n )\n const [searchValue, setSearchValue] = useState('')\n const [portalStyle, setPortalStyle] = useState<CSSProperties | null>(null)\n const [portalReady, setPortalReady] = useState(false)\n\n const selectionLimitValue = limit ?? selectionLimit\n const maxSelectionCount = Number(selectionLimitValue)\n const hasSelectionLimit =\n Number.isFinite(maxSelectionCount) && maxSelectionCount > 0\n\n const recomputePortalPosition = useCallback(() => {\n if (!reactPortal || !anchorRef.current) return\n const rect = anchorRef.current.getBoundingClientRect()\n setPortalStyle({\n position: 'fixed',\n left: rect.left,\n top: rect.bottom,\n width: rect.width,\n zIndex: 9999,\n })\n setPortalReady(true)\n }, [reactPortal])\n\n useEffect(() => {\n const next = hasSelectionLimit\n ? defaultSelectedOptions.slice(0, maxSelectionCount)\n : defaultSelectedOptions\n setSelectedOptions(next)\n }, [defaultSelectedOptions, hasSelectionLimit, maxSelectionCount])\n\n useEffect(() => {\n if (!showOptions) {\n windowClose?.(true)\n setSearchValue('')\n }\n }, [showOptions, windowClose])\n\n useEffect(() => {\n if (!showOptions) return undefined\n\n const rootEl = rootRef.current\n const portalEl = portalWrapRef.current\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target as Node\n const inRoot = rootEl?.contains(target)\n const inPortal = portalEl?.contains(target)\n if (!inRoot && !inPortal) setShowOptions(false)\n }\n\n document.addEventListener('pointerdown', handlePointerDown, true)\n return () =>\n document.removeEventListener('pointerdown', handlePointerDown, true)\n }, [showOptions])\n\n useLayoutEffect(() => {\n if (!showOptions) {\n setPortalReady(false)\n return\n }\n if (!reactPortal) return\n recomputePortalPosition()\n }, [showOptions, reactPortal, recomputePortalPosition])\n\n useEffect(() => {\n if (!showOptions || !reactPortal) return undefined\n\n const handleReposition = () => recomputePortalPosition()\n window.addEventListener('resize', handleReposition)\n window.addEventListener('scroll', handleReposition, true)\n\n return () => {\n window.removeEventListener('resize', handleReposition)\n window.removeEventListener('scroll', handleReposition, true)\n }\n }, [showOptions, reactPortal, recomputePortalPosition])\n\n useEffect(() => {\n if (!windowPosition) return\n setOpenDirection(Number(windowHeight) < 800 ? 'top' : 'bottom')\n }, [windowHeight, windowPosition])\n\n const updateSelection = useCallback(\n (next: T[]) => {\n setSelectedOptions(next)\n onChange?.(next)\n },\n [onChange],\n )\n\n const handleScroll = useCallback(\n (event: UIEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n if (target.scrollHeight - target.scrollTop <= target.clientHeight + 1) {\n isScrollEnd?.(true)\n }\n },\n [isScrollEnd],\n )\n\n const toggleOption = useCallback(\n (option: T) => {\n if (isOptionSelected(selectedOptions, option, optionValue)) {\n updateSelection(\n selectedOptions.filter(\n (item) => item?.[optionValue] !== option?.[optionValue],\n ),\n )\n return\n }\n if (hasSelectionLimit && selectedOptions.length >= maxSelectionCount) {\n return\n }\n updateSelection([...selectedOptions, option])\n },\n [\n hasSelectionLimit,\n maxSelectionCount,\n optionValue,\n selectedOptions,\n updateSelection,\n ],\n )\n\n const filteredOptions = useMemo(() => {\n const query = searchValue.trim().toLocaleLowerCase()\n if (!query) return options\n return options.filter((option) =>\n String(option?.[optionLabel] ?? '')\n .toLocaleLowerCase()\n .includes(query),\n )\n }, [options, optionLabel, searchValue])\n\n const inputValue = useMemo(() => {\n if (selectedOptions.length === 0) return ''\n if (selectedOptions.length === 1) {\n return String(selectedOptions[0]?.[optionLabel] ?? '')\n }\n return `${selectedOptions.length} ${selectedInputMessage || itemSelectedText}`\n }, [itemSelectedText, optionLabel, selectedInputMessage, selectedOptions])\n\n const inputPlaceholder =\n errorPlace === 'in' ? errorMessage || placeholder : placeholder\n\n const toggleDropdown = useCallback(() => {\n if (isDisabled) return\n setShowOptions((prev) => !prev)\n }, [isDisabled])\n\n const handleTriggerKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n toggleDropdown()\n }\n }\n\n const allFilteredSelected = useMemo(\n () =>\n filteredOptions.length > 0 &&\n filteredOptions.every((option) =>\n isOptionSelected(selectedOptions, option, optionValue),\n ),\n [filteredOptions, optionValue, selectedOptions],\n )\n\n const handleSelectAll = useCallback(() => {\n if (allFilteredSelected) {\n updateSelection(\n selectedOptions.filter(\n (selected) =>\n !filteredOptions.some(\n (option) => selected?.[optionValue] === option?.[optionValue],\n ),\n ),\n )\n return\n }\n const toAdd = filteredOptions.filter(\n (option) => !isOptionSelected(selectedOptions, option, optionValue),\n )\n const limitedToAdd = hasSelectionLimit\n ? toAdd.slice(0, Math.max(maxSelectionCount - selectedOptions.length, 0))\n : toAdd\n updateSelection([...selectedOptions, ...limitedToAdd])\n }, [\n allFilteredSelected,\n filteredOptions,\n hasSelectionLimit,\n maxSelectionCount,\n optionValue,\n selectedOptions,\n updateSelection,\n ])\n\n const baseId = id || 'inconel-multi-select-checkbox'\n\n const optionsPanel = (\n <div\n ref={reactPortal ? portalWrapRef : undefined}\n className={classNames(\n 'inconel-multi-select-checkbox__panel-wrap',\n reactPortal && 'inconel-multi-select-checkbox__panel-wrap--portal',\n openDirection === 'top' && 'inconel-is-open-top',\n )}\n style={\n reactPortal\n ? { ...(portalStyle ?? {}), visibility: portalReady ? 'visible' : 'hidden' }\n : undefined\n }\n onPointerDown={(event) => event.stopPropagation()}\n >\n <div\n className={classNames(\n 'inconel-multi-select-checkbox__options',\n reactPortal && 'inconel-multi-select-checkbox__options--portal',\n optionsClassName,\n )}\n onScroll={handleScroll}\n >\n {isSearchable && (\n <div className=\"inconel-multi-select-checkbox__search\">\n <input\n type=\"text\"\n placeholder={searchPlaceholder}\n className={classNames(\n 'inconel-multi-select-checkbox__search-input',\n searchableInputClassName,\n )}\n value={searchValue}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setSearchValue(event.target.value)\n }\n disabled={isDisabled}\n />\n </div>\n )}\n\n <div\n className={classNames(\n 'inconel-multi-select-checkbox__option-item',\n optionItemClassName,\n )}\n >\n <input\n id={`${baseId}-select-all`}\n type=\"checkbox\"\n checked={allFilteredSelected}\n onChange={handleSelectAll}\n disabled={isDisabled}\n />\n <label htmlFor={`${baseId}-select-all`}>{selectAllText}</label>\n </div>\n\n {filteredOptions.map((option, index) => {\n const value = option?.[optionValue] ?? index\n const checked = isOptionSelected(selectedOptions, option, optionValue)\n const optionDisabled =\n isDisabled ||\n (!checked && hasSelectionLimit && selectedOptions.length >= maxSelectionCount)\n const inputId = `${baseId}-${String(value)}`\n\n return (\n <div\n key={String(value)}\n className={classNames(\n 'inconel-multi-select-checkbox__option-item',\n checked && 'inconel-is-selected',\n optionDisabled && 'inconel-is-disabled',\n optionItemClassName,\n )}\n title={getOptionTooltip(option)}\n >\n <input\n id={inputId}\n type=\"checkbox\"\n checked={checked}\n onChange={() => toggleOption(option)}\n disabled={optionDisabled}\n />\n <label htmlFor={inputId}>\n {String(option?.[optionLabel] ?? '')}\n </label>\n </div>\n )\n })}\n </div>\n </div>\n )\n\n return (\n <div\n ref={rootRef}\n id={id ?? undefined}\n className={classNames(\n 'inconel-multi-select-checkbox',\n errorMessage && 'inconel-is-error',\n isDisabled && 'inconel-is-disabled',\n openDirection === 'top' && !reactPortal && 'inconel-is-open-top',\n className,\n )}\n >\n {label && (\n <span\n className={classNames(\n 'inconel-multi-select-checkbox__label',\n labelClassName,\n )}\n >\n {label}\n </span>\n )}\n\n <div className=\"inconel-multi-select-checkbox__input-wrap\">\n {isLoading && (\n <div className=\"inconel-multi-select-checkbox__loader-cover\">\n <DotLoader />\n </div>\n )}\n\n <div\n ref={anchorRef}\n role=\"button\"\n tabIndex={0}\n className=\"inconel-multi-select-checkbox__input-container\"\n onClick={toggleDropdown}\n onKeyDown={handleTriggerKeyDown}\n >\n <input\n type=\"text\"\n className={classNames(\n 'inconel-multi-select-checkbox__input',\n inputClassName,\n )}\n placeholder={inputPlaceholder}\n readOnly\n value={inputValue}\n />\n <span\n className=\"inconel-multi-select-checkbox__indicator\"\n aria-hidden=\"true\"\n />\n </div>\n </div>\n\n {showOptions &&\n (options.length > 0 ? (\n reactPortal ? (\n createPortal(optionsPanel, document.body)\n ) : (\n optionsPanel\n )\n ) : (\n <div className=\"inconel-multi-select-checkbox__nodata\">\n <span>{noDataMessage}</span>\n </div>\n ))}\n\n {errorPlace !== 'in' && errorMessage && (\n <span className=\"inconel-multi-select-checkbox__error\">\n {errorMessage}\n </span>\n )}\n </div>\n )\n}\n"],"names":["EMPTY_OPTIONS","isOptionSelected","selected","option","optionValue","item","MultiSelectCheckBox","id","label","className","labelClassName","inputClassName","optionsClassName","optionItemClassName","searchableInputClassName","options","defaultSelectedOptions","optionLabel","onChange","placeholder","selectedInputMessage","itemSelectedText","selectAllText","searchPlaceholder","noDataMessage","errorMessage","errorPlace","isSearchable","isLoading","isDisabled","reactPortal","windowPosition","windowHeight","windowClose","isScrollEnd","getOptionTooltip","limit","selectionLimit","rootRef","useRef","anchorRef","portalWrapRef","showOptions","setShowOptions","useState","selectedOptions","setSelectedOptions","openDirection","setOpenDirection","searchValue","setSearchValue","portalStyle","setPortalStyle","portalReady","setPortalReady","maxSelectionCount","hasSelectionLimit","recomputePortalPosition","useCallback","rect","useEffect","next","rootEl","portalEl","handlePointerDown","event","target","inRoot","inPortal","useLayoutEffect","handleReposition","updateSelection","handleScroll","toggleOption","filteredOptions","useMemo","query","inputValue","inputPlaceholder","toggleDropdown","prev","handleTriggerKeyDown","allFilteredSelected","handleSelectAll","toAdd","limitedToAdd","baseId","optionsPanel","jsx","classNames","jsxs","index","value","checked","optionDisabled","inputId","DotLoader","createPortal"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { MultiSelectCheckBox } from './MultiSelectCheckBox';
2
+ export type { MultiSelectCheckBoxProps, MultiSelectCheckBoxOption, } from './MultiSelectCheckBox';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelectCheckBox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EACV,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAA"}