Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
153 lines
5.2 KiB
Plaintext
153 lines
5.2 KiB
Plaintext
'use client';
|
|
|
|
import { c as _c } from "react/compiler-runtime";
|
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
import React, { useState } from 'react';
|
|
import { ChevronIcon } from '../../icons/Chevron/index.js';
|
|
import { DragHandleIcon } from '../../icons/DragHandle/index.js';
|
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
import './index.scss';
|
|
import { AnimateHeight } from '../AnimateHeight/index.js';
|
|
import { CollapsibleProvider, useCollapsible } from './provider.js';
|
|
const baseClass = 'collapsible';
|
|
export { CollapsibleProvider, useCollapsible };
|
|
export const Collapsible = t0 => {
|
|
const $ = _c(25);
|
|
const {
|
|
actions,
|
|
AfterCollapsible,
|
|
children,
|
|
className,
|
|
collapsibleStyle: t1,
|
|
disableHeaderToggle: t2,
|
|
disableToggleIndicator: t3,
|
|
dragHandleProps,
|
|
header,
|
|
initCollapsed,
|
|
isCollapsed: collapsedFromProps,
|
|
onToggle
|
|
} = t0;
|
|
const collapsibleStyle = t1 === undefined ? "default" : t1;
|
|
const disableHeaderToggle = t2 === undefined ? false : t2;
|
|
const disableToggleIndicator = t3 === undefined ? false : t3;
|
|
const [collapsedLocal, setCollapsedLocal] = useState(Boolean(initCollapsed));
|
|
const [hoveringToggle, setHoveringToggle] = useState(false);
|
|
const {
|
|
isWithinCollapsible
|
|
} = useCollapsible();
|
|
const {
|
|
t
|
|
} = useTranslation();
|
|
const isCollapsed = typeof collapsedFromProps === "boolean" ? collapsedFromProps : collapsedLocal;
|
|
let t4;
|
|
if ($[0] !== isCollapsed || $[1] !== onToggle) {
|
|
t4 = () => {
|
|
if (typeof onToggle === "function") {
|
|
onToggle(!isCollapsed);
|
|
}
|
|
setCollapsedLocal(!isCollapsed);
|
|
};
|
|
$[0] = isCollapsed;
|
|
$[1] = onToggle;
|
|
$[2] = t4;
|
|
} else {
|
|
t4 = $[2];
|
|
}
|
|
const toggleCollapsible = t4;
|
|
const t5 = dragHandleProps && `${baseClass}--has-drag-handle`;
|
|
const t6 = isCollapsed && `${baseClass}--collapsed`;
|
|
const t7 = isWithinCollapsible && `${baseClass}--nested`;
|
|
const t8 = hoveringToggle && !disableHeaderToggle && `${baseClass}--hovered`;
|
|
const t9 = `${baseClass}--style-${collapsibleStyle}`;
|
|
let t10;
|
|
if ($[3] !== className || $[4] !== t5 || $[5] !== t6 || $[6] !== t7 || $[7] !== t8 || $[8] !== t9) {
|
|
t10 = [baseClass, className, t5, t6, t7, t8, t9].filter(Boolean);
|
|
$[3] = className;
|
|
$[4] = t5;
|
|
$[5] = t6;
|
|
$[6] = t7;
|
|
$[7] = t8;
|
|
$[8] = t9;
|
|
$[9] = t10;
|
|
} else {
|
|
t10 = $[9];
|
|
}
|
|
const t11 = t10.join(" ");
|
|
const t12 = `${baseClass}__toggle-wrap${disableHeaderToggle ? " toggle-disabled" : ""}`;
|
|
let t13;
|
|
let t14;
|
|
if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
|
|
t13 = () => setHoveringToggle(true);
|
|
t14 = () => setHoveringToggle(false);
|
|
$[10] = t13;
|
|
$[11] = t14;
|
|
} else {
|
|
t13 = $[10];
|
|
t14 = $[11];
|
|
}
|
|
let t15;
|
|
if ($[12] !== AfterCollapsible || $[13] !== actions || $[14] !== children || $[15] !== disableHeaderToggle || $[16] !== disableToggleIndicator || $[17] !== dragHandleProps || $[18] !== header || $[19] !== isCollapsed || $[20] !== t || $[21] !== t11 || $[22] !== t12 || $[23] !== toggleCollapsible) {
|
|
t15 = _jsx("div", {
|
|
className: t11,
|
|
children: _jsxs(CollapsibleProvider, {
|
|
isCollapsed,
|
|
toggle: toggleCollapsible,
|
|
children: [_jsxs("div", {
|
|
className: t12,
|
|
onMouseEnter: t13,
|
|
onMouseLeave: t14,
|
|
children: [!disableHeaderToggle && _jsx("button", {
|
|
className: [`${baseClass}__toggle`, `${baseClass}__toggle--${isCollapsed ? "collapsed" : "open"}`].filter(Boolean).join(" "),
|
|
onClick: toggleCollapsible,
|
|
type: "button",
|
|
children: _jsx("span", {
|
|
children: t("fields:toggleBlock")
|
|
})
|
|
}), dragHandleProps && _jsx("div", {
|
|
className: `${baseClass}__drag`,
|
|
...dragHandleProps.attributes,
|
|
...dragHandleProps.listeners,
|
|
children: _jsx(DragHandleIcon, {})
|
|
}), header ? _jsx("div", {
|
|
className: [`${baseClass}__header-wrap`, dragHandleProps && `${baseClass}__header-wrap--has-drag-handle`].filter(Boolean).join(" "),
|
|
children: header
|
|
}) : null, _jsxs("div", {
|
|
className: `${baseClass}__actions-wrap`,
|
|
children: [actions ? _jsx("div", {
|
|
className: `${baseClass}__actions`,
|
|
children: actions
|
|
}) : null, !disableToggleIndicator && _jsx("div", {
|
|
className: `${baseClass}__indicator`,
|
|
children: _jsx(ChevronIcon, {
|
|
direction: !isCollapsed ? "up" : undefined
|
|
})
|
|
})]
|
|
})]
|
|
}), _jsx(AnimateHeight, {
|
|
height: isCollapsed ? 0 : "auto",
|
|
children: _jsx("div", {
|
|
className: `${baseClass}__content`,
|
|
children
|
|
})
|
|
}), AfterCollapsible]
|
|
})
|
|
});
|
|
$[12] = AfterCollapsible;
|
|
$[13] = actions;
|
|
$[14] = children;
|
|
$[15] = disableHeaderToggle;
|
|
$[16] = disableToggleIndicator;
|
|
$[17] = dragHandleProps;
|
|
$[18] = header;
|
|
$[19] = isCollapsed;
|
|
$[20] = t;
|
|
$[21] = t11;
|
|
$[22] = t12;
|
|
$[23] = toggleCollapsible;
|
|
$[24] = t15;
|
|
} else {
|
|
t15 = $[24];
|
|
}
|
|
return t15;
|
|
};
|
|
//# sourceMappingURL=index.js.map |