@payloadcms/ui 3.1.1 → 3.1.2-canary.eb1a61e
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/elements/AnimateHeight/index.d.ts +10 -0
- package/dist/elements/AnimateHeight/index.d.ts.map +1 -0
- package/dist/elements/AnimateHeight/index.js +75 -0
- package/dist/elements/AnimateHeight/index.js.map +1 -0
- package/dist/elements/AnimateHeight/index.scss +8 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts +8 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +49 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -0
- package/dist/elements/AppHeader/index.scss +7 -8
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +2 -4
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/elements/Collapsible/index.js +1 -3
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +2 -3
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/NavGroup/index.d.ts.map +1 -1
- package/dist/elements/NavGroup/index.js +1 -2
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +3 -4
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/exports/client/index.js +21 -21
- package/dist/exports/client/index.js.map +4 -4
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +10 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts +7 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +5 -0
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +3 -2
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +4 -3
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/providers/Locale/index.js +30 -29
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/index.d.ts +16 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.d.ts.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.js +70 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts +15 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +129 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -0
- package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/index.js +13 -14
- package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/buildFormState.d.ts +1 -8
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +19 -41
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/buildTableState.d.ts +1 -7
- package/dist/utilities/buildTableState.d.ts.map +1 -1
- package/dist/utilities/buildTableState.js +2 -21
- package/dist/utilities/buildTableState.js.map +1 -1
- package/dist/utilities/getClientConfig.d.ts +8 -0
- package/dist/utilities/getClientConfig.d.ts.map +1 -0
- package/dist/utilities/getClientConfig.js +25 -0
- package/dist/utilities/getClientConfig.js.map +1 -0
- package/dist/utilities/getClientSchemaMap.d.ts +11 -0
- package/dist/utilities/getClientSchemaMap.d.ts.map +1 -0
- package/dist/utilities/getClientSchemaMap.js +39 -0
- package/dist/utilities/getClientSchemaMap.js.map +1 -0
- package/dist/utilities/getSchemaMap.d.ts +9 -0
- package/dist/utilities/getSchemaMap.d.ts.map +1 -0
- package/dist/utilities/getSchemaMap.js +35 -0
- package/dist/utilities/getSchemaMap.js.map +1 -0
- package/dist/views/Edit/Auth/types.d.ts +2 -2
- package/dist/views/Edit/Auth/types.d.ts.map +1 -1
- package/dist/views/Edit/Auth/types.js.map +1 -1
- package/package.json +5 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AnimateHeight/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAGhD,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,CAqFA,CAAA"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React, { useEffect, useRef } from 'react';
|
|
3
|
+
import { usePatchAnimateHeight } from './usePatchAnimateHeight.js';
|
|
4
|
+
import './index.scss';
|
|
5
|
+
export const AnimateHeight = ({
|
|
6
|
+
id,
|
|
7
|
+
children,
|
|
8
|
+
className,
|
|
9
|
+
duration = 300,
|
|
10
|
+
height
|
|
11
|
+
}) => {
|
|
12
|
+
const [open, setOpen] = React.useState(() => Boolean(height));
|
|
13
|
+
const prevIsOpen = useRef(open);
|
|
14
|
+
const [childrenDisplay, setChildrenDisplay] = React.useState(() => open ? '' : 'none');
|
|
15
|
+
const [parentOverflow, setParentOverflow] = React.useState(() => open ? '' : 'hidden');
|
|
16
|
+
const [isAnimating, setIsAnimating] = React.useState(false);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
let displayTimer;
|
|
19
|
+
let overflowTimer;
|
|
20
|
+
const newIsOpen = Boolean(height);
|
|
21
|
+
const hasChanged = prevIsOpen.current !== newIsOpen;
|
|
22
|
+
prevIsOpen.current = newIsOpen;
|
|
23
|
+
if (hasChanged) {
|
|
24
|
+
setIsAnimating(true);
|
|
25
|
+
setParentOverflow('hidden');
|
|
26
|
+
if (newIsOpen) {
|
|
27
|
+
setChildrenDisplay('');
|
|
28
|
+
} else {
|
|
29
|
+
// `display: none` once closed
|
|
30
|
+
displayTimer = window.setTimeout(() => {
|
|
31
|
+
setChildrenDisplay('none');
|
|
32
|
+
}, duration);
|
|
33
|
+
}
|
|
34
|
+
setOpen(newIsOpen);
|
|
35
|
+
// reset overflow once open
|
|
36
|
+
overflowTimer = window.setTimeout(() => {
|
|
37
|
+
setParentOverflow('');
|
|
38
|
+
setIsAnimating(false);
|
|
39
|
+
}, duration);
|
|
40
|
+
}
|
|
41
|
+
return () => {
|
|
42
|
+
if (displayTimer) {
|
|
43
|
+
clearTimeout(displayTimer);
|
|
44
|
+
}
|
|
45
|
+
if (overflowTimer) {
|
|
46
|
+
clearTimeout(overflowTimer);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}, [height, duration]);
|
|
50
|
+
const containerRef = useRef(null);
|
|
51
|
+
usePatchAnimateHeight({
|
|
52
|
+
containerRef,
|
|
53
|
+
duration,
|
|
54
|
+
open
|
|
55
|
+
});
|
|
56
|
+
return /*#__PURE__*/_jsx("div", {
|
|
57
|
+
"aria-hidden": !open,
|
|
58
|
+
className: [className, 'rah-static', open && height === 'auto' && 'rah-static--height-auto', isAnimating && `rah-animating--${open ? 'down' : 'up'}`, isAnimating && height === 'auto' && `rah-animating--to-height-auto`].filter(Boolean).join(' '),
|
|
59
|
+
id: id,
|
|
60
|
+
ref: containerRef,
|
|
61
|
+
style: {
|
|
62
|
+
overflow: parentOverflow,
|
|
63
|
+
transition: `height ${duration}ms ease`
|
|
64
|
+
},
|
|
65
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
66
|
+
...(childrenDisplay ? {
|
|
67
|
+
style: {
|
|
68
|
+
display: childrenDisplay
|
|
69
|
+
}
|
|
70
|
+
} : {}),
|
|
71
|
+
children: children
|
|
72
|
+
})
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useEffect","useRef","usePatchAnimateHeight","AnimateHeight","id","children","className","duration","height","open","setOpen","useState","Boolean","prevIsOpen","childrenDisplay","setChildrenDisplay","parentOverflow","setParentOverflow","isAnimating","setIsAnimating","displayTimer","overflowTimer","newIsOpen","hasChanged","current","window","setTimeout","clearTimeout","containerRef","_jsx","filter","join","ref","style","overflow","transition","display"],"sources":["../../../src/elements/AnimateHeight/index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react'\n\nimport { usePatchAnimateHeight } from './usePatchAnimateHeight.js'\nimport './index.scss'\n\nexport const AnimateHeight: React.FC<{\n children: React.ReactNode\n className?: string\n duration?: number\n height?: 'auto' | number\n id?: string\n}> = ({ id, children, className, duration = 300, height }) => {\n const [open, setOpen] = React.useState(() => Boolean(height))\n const prevIsOpen = useRef(open)\n\n const [childrenDisplay, setChildrenDisplay] = React.useState<CSSStyleDeclaration['display']>(\n () => (open ? '' : 'none'),\n )\n\n const [parentOverflow, setParentOverflow] = React.useState<CSSStyleDeclaration['overflow']>(() =>\n open ? '' : 'hidden',\n )\n\n const [isAnimating, setIsAnimating] = React.useState(false)\n\n useEffect(() => {\n let displayTimer: number\n let overflowTimer: number\n\n const newIsOpen = Boolean(height)\n const hasChanged = prevIsOpen.current !== newIsOpen\n prevIsOpen.current = newIsOpen\n\n if (hasChanged) {\n setIsAnimating(true)\n setParentOverflow('hidden')\n\n if (newIsOpen) {\n setChildrenDisplay('')\n } else {\n // `display: none` once closed\n displayTimer = window.setTimeout(() => {\n setChildrenDisplay('none')\n }, duration)\n }\n\n setOpen(newIsOpen)\n\n // reset overflow once open\n overflowTimer = window.setTimeout(() => {\n setParentOverflow('')\n setIsAnimating(false)\n }, duration)\n }\n\n return () => {\n if (displayTimer) {\n clearTimeout(displayTimer)\n }\n\n if (overflowTimer) {\n clearTimeout(overflowTimer)\n }\n }\n }, [height, duration])\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n usePatchAnimateHeight({\n containerRef,\n duration,\n open,\n })\n\n return (\n <div\n aria-hidden={!open}\n className={[\n className,\n 'rah-static',\n open && height === 'auto' && 'rah-static--height-auto',\n isAnimating && `rah-animating--${open ? 'down' : 'up'}`,\n isAnimating && height === 'auto' && `rah-animating--to-height-auto`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={id}\n ref={containerRef}\n style={{\n overflow: parentOverflow,\n transition: `height ${duration}ms ease`,\n }}\n >\n <div {...(childrenDisplay ? { style: { display: childrenDisplay } } : {})}>{children}</div>\n </div>\n )\n}\n"],"mappings":";AAAA,OAAOA,KAAA,IAASC,SAAS,EAAEC,MAAM,QAAQ;AAEzC,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,OAAO,MAAMC,aAAA,GAMRA,CAAC;EAAEC,EAAE;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,QAAA,GAAW,GAAG;EAAEC;AAAM,CAAE;EACvD,MAAM,CAACC,IAAA,EAAMC,OAAA,CAAQ,GAAGX,KAAA,CAAMY,QAAQ,CAAC,MAAMC,OAAA,CAAQJ,MAAA;EACrD,MAAMK,UAAA,GAAaZ,MAAA,CAAOQ,IAAA;EAE1B,MAAM,CAACK,eAAA,EAAiBC,kBAAA,CAAmB,GAAGhB,KAAA,CAAMY,QAAQ,CAC1D,MAAOF,IAAA,GAAO,KAAK;EAGrB,MAAM,CAACO,cAAA,EAAgBC,iBAAA,CAAkB,GAAGlB,KAAA,CAAMY,QAAQ,CAAkC,MAC1FF,IAAA,GAAO,KAAK;EAGd,MAAM,CAACS,WAAA,EAAaC,cAAA,CAAe,GAAGpB,KAAA,CAAMY,QAAQ,CAAC;EAErDX,SAAA,CAAU;IACR,IAAIoB,YAAA;IACJ,IAAIC,aAAA;IAEJ,MAAMC,SAAA,GAAYV,OAAA,CAAQJ,MAAA;IAC1B,MAAMe,UAAA,GAAaV,UAAA,CAAWW,OAAO,KAAKF,SAAA;IAC1CT,UAAA,CAAWW,OAAO,GAAGF,SAAA;IAErB,IAAIC,UAAA,EAAY;MACdJ,cAAA,CAAe;MACfF,iBAAA,CAAkB;MAElB,IAAIK,SAAA,EAAW;QACbP,kBAAA,CAAmB;MACrB,OAAO;QACL;QACAK,YAAA,GAAeK,MAAA,CAAOC,UAAU,CAAC;UAC/BX,kBAAA,CAAmB;QACrB,GAAGR,QAAA;MACL;MAEAG,OAAA,CAAQY,SAAA;MAER;MACAD,aAAA,GAAgBI,MAAA,CAAOC,UAAU,CAAC;QAChCT,iBAAA,CAAkB;QAClBE,cAAA,CAAe;MACjB,GAAGZ,QAAA;IACL;IAEA,OAAO;MACL,IAAIa,YAAA,EAAc;QAChBO,YAAA,CAAaP,YAAA;MACf;MAEA,IAAIC,aAAA,EAAe;QACjBM,YAAA,CAAaN,aAAA;MACf;IACF;EACF,GAAG,CAACb,MAAA,EAAQD,QAAA,CAAS;EAErB,MAAMqB,YAAA,GAAe3B,MAAA,CAAuB;EAE5CC,qBAAA,CAAsB;IACpB0B,YAAA;IACArB,QAAA;IACAE;EACF;EAEA,oBACEoB,IAAA,CAAC;IACC,eAAa,CAACpB,IAAA;IACdH,SAAA,EAAW,CACTA,SAAA,EACA,cACAG,IAAA,IAAQD,MAAA,KAAW,UAAU,2BAC7BU,WAAA,IAAe,kBAAkBT,IAAA,GAAO,SAAS,MAAM,EACvDS,WAAA,IAAeV,MAAA,KAAW,UAAU,+BAA+B,CACpE,CACEsB,MAAM,CAAClB,OAAA,EACPmB,IAAI,CAAC;IACR3B,EAAA,EAAIA,EAAA;IACJ4B,GAAA,EAAKJ,YAAA;IACLK,KAAA,EAAO;MACLC,QAAA,EAAUlB,cAAA;MACVmB,UAAA,EAAY,UAAU5B,QAAA;IACxB;cAEA,aAAAsB,IAAA,CAAC;MAAK,IAAIf,eAAA,GAAkB;QAAEmB,KAAA,EAAO;UAAEG,OAAA,EAAStB;QAAgB;MAAE,IAAI,CAAC,CAAC;gBAAIT;;;AAGlF","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const usePatchAnimateHeight: ({ containerRef, duration, open, }: {
|
|
2
|
+
containerRef: React.RefObject<HTMLDivElement>;
|
|
3
|
+
duration: number;
|
|
4
|
+
open: boolean;
|
|
5
|
+
}) => {
|
|
6
|
+
browserSupportsKeywordAnimation: boolean;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=usePatchAnimateHeight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePatchAnimateHeight.d.ts","sourceRoot":"","sources":["../../../src/elements/AnimateHeight/usePatchAnimateHeight.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,sCAI/B;IACD,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;CACd,KAAG;IAAE,+BAA+B,EAAE,OAAO,CAAA;CAuD7C,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useEffect, useMemo, useRef } from 'react';
|
|
2
|
+
export const usePatchAnimateHeight = ({
|
|
3
|
+
containerRef,
|
|
4
|
+
duration,
|
|
5
|
+
open
|
|
6
|
+
}) => {
|
|
7
|
+
const browserSupportsKeywordAnimation = useMemo(() => CSS.supports ? Boolean(CSS.supports('interpolate-size', 'allow-keywords')) : false, []);
|
|
8
|
+
const previousOpenState = useRef(open);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (containerRef.current && !browserSupportsKeywordAnimation) {
|
|
11
|
+
const container = containerRef.current;
|
|
12
|
+
const getTotalHeight = el => {
|
|
13
|
+
const styles = window.getComputedStyle(el);
|
|
14
|
+
const marginTop = parseFloat(styles.marginTop);
|
|
15
|
+
const marginBottom = parseFloat(styles.marginBottom);
|
|
16
|
+
return el.scrollHeight + marginTop + marginBottom;
|
|
17
|
+
};
|
|
18
|
+
const animate = () => {
|
|
19
|
+
const maxContentHeight = getTotalHeight(container);
|
|
20
|
+
// Set initial state
|
|
21
|
+
if (previousOpenState.current !== open) {
|
|
22
|
+
container.style.height = open ? '0px' : `${maxContentHeight}px`;
|
|
23
|
+
}
|
|
24
|
+
// Trigger reflow
|
|
25
|
+
container.offsetHeight // eslint-disable-line @typescript-eslint/no-unused-expressions
|
|
26
|
+
;
|
|
27
|
+
// Start animation
|
|
28
|
+
container.style.transition = `height ${duration}ms ease`;
|
|
29
|
+
container.style.height = open ? `${maxContentHeight}px` : '0px';
|
|
30
|
+
const transitionEndHandler = () => {
|
|
31
|
+
container.style.transition = '';
|
|
32
|
+
container.style.height = !open ? '0px' : 'auto';
|
|
33
|
+
container.removeEventListener('transitionend', transitionEndHandler);
|
|
34
|
+
};
|
|
35
|
+
container.addEventListener('transitionend', transitionEndHandler);
|
|
36
|
+
};
|
|
37
|
+
animate();
|
|
38
|
+
previousOpenState.current = open;
|
|
39
|
+
return () => {
|
|
40
|
+
container.style.transition = '';
|
|
41
|
+
container.style.height = '';
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}, [open, duration, containerRef, browserSupportsKeywordAnimation]);
|
|
45
|
+
return {
|
|
46
|
+
browserSupportsKeywordAnimation
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=usePatchAnimateHeight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePatchAnimateHeight.js","names":["useEffect","useMemo","useRef","usePatchAnimateHeight","containerRef","duration","open","browserSupportsKeywordAnimation","CSS","supports","Boolean","previousOpenState","current","container","getTotalHeight","el","styles","window","getComputedStyle","marginTop","parseFloat","marginBottom","scrollHeight","animate","maxContentHeight","style","height","offsetHeight","transition","transitionEndHandler","removeEventListener","addEventListener"],"sources":["../../../src/elements/AnimateHeight/usePatchAnimateHeight.ts"],"sourcesContent":["import { useEffect, useMemo, useRef } from 'react'\n\nexport const usePatchAnimateHeight = ({\n containerRef,\n duration,\n open,\n}: {\n containerRef: React.RefObject<HTMLDivElement>\n duration: number\n open: boolean\n}): { browserSupportsKeywordAnimation: boolean } => {\n const browserSupportsKeywordAnimation = useMemo(\n () => (CSS.supports ? Boolean(CSS.supports('interpolate-size', 'allow-keywords')) : false),\n [],\n )\n\n const previousOpenState = useRef(open)\n\n useEffect(() => {\n if (containerRef.current && !browserSupportsKeywordAnimation) {\n const container = containerRef.current\n\n const getTotalHeight = (el: HTMLDivElement) => {\n const styles = window.getComputedStyle(el)\n const marginTop = parseFloat(styles.marginTop)\n const marginBottom = parseFloat(styles.marginBottom)\n return el.scrollHeight + marginTop + marginBottom\n }\n\n const animate = () => {\n const maxContentHeight = getTotalHeight(container)\n\n // Set initial state\n if (previousOpenState.current !== open) {\n container.style.height = open ? '0px' : `${maxContentHeight}px`\n }\n\n // Trigger reflow\n container.offsetHeight // eslint-disable-line @typescript-eslint/no-unused-expressions\n\n // Start animation\n container.style.transition = `height ${duration}ms ease`\n container.style.height = open ? `${maxContentHeight}px` : '0px'\n\n const transitionEndHandler = () => {\n container.style.transition = ''\n container.style.height = !open ? '0px' : 'auto'\n container.removeEventListener('transitionend', transitionEndHandler)\n }\n\n container.addEventListener('transitionend', transitionEndHandler)\n }\n\n animate()\n\n previousOpenState.current = open\n\n return () => {\n container.style.transition = ''\n container.style.height = ''\n }\n }\n }, [open, duration, containerRef, browserSupportsKeywordAnimation])\n\n return { browserSupportsKeywordAnimation }\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ;AAE3C,OAAO,MAAMC,qBAAA,GAAwBA,CAAC;EACpCC,YAAY;EACZC,QAAQ;EACRC;AAAI,CAKL;EACC,MAAMC,+BAAA,GAAkCN,OAAA,CACtC,MAAOO,GAAA,CAAIC,QAAQ,GAAGC,OAAA,CAAQF,GAAA,CAAIC,QAAQ,CAAC,oBAAoB,qBAAqB,OACpF,EAAE;EAGJ,MAAME,iBAAA,GAAoBT,MAAA,CAAOI,IAAA;EAEjCN,SAAA,CAAU;IACR,IAAII,YAAA,CAAaQ,OAAO,IAAI,CAACL,+BAAA,EAAiC;MAC5D,MAAMM,SAAA,GAAYT,YAAA,CAAaQ,OAAO;MAEtC,MAAME,cAAA,GAAkBC,EAAA;QACtB,MAAMC,MAAA,GAASC,MAAA,CAAOC,gBAAgB,CAACH,EAAA;QACvC,MAAMI,SAAA,GAAYC,UAAA,CAAWJ,MAAA,CAAOG,SAAS;QAC7C,MAAME,YAAA,GAAeD,UAAA,CAAWJ,MAAA,CAAOK,YAAY;QACnD,OAAON,EAAA,CAAGO,YAAY,GAAGH,SAAA,GAAYE,YAAA;MACvC;MAEA,MAAME,OAAA,GAAUA,CAAA;QACd,MAAMC,gBAAA,GAAmBV,cAAA,CAAeD,SAAA;QAExC;QACA,IAAIF,iBAAA,CAAkBC,OAAO,KAAKN,IAAA,EAAM;UACtCO,SAAA,CAAUY,KAAK,CAACC,MAAM,GAAGpB,IAAA,GAAO,QAAQ,GAAGkB,gBAAA,IAAoB;QACjE;QAEA;QACAX,SAAA,CAAUc,YAAY,CAAC;QAAA;QAEvB;QACAd,SAAA,CAAUY,KAAK,CAACG,UAAU,GAAG,UAAUvB,QAAA,SAAiB;QACxDQ,SAAA,CAAUY,KAAK,CAACC,MAAM,GAAGpB,IAAA,GAAO,GAAGkB,gBAAA,IAAoB,GAAG;QAE1D,MAAMK,oBAAA,GAAuBA,CAAA;UAC3BhB,SAAA,CAAUY,KAAK,CAACG,UAAU,GAAG;UAC7Bf,SAAA,CAAUY,KAAK,CAACC,MAAM,GAAG,CAACpB,IAAA,GAAO,QAAQ;UACzCO,SAAA,CAAUiB,mBAAmB,CAAC,iBAAiBD,oBAAA;QACjD;QAEAhB,SAAA,CAAUkB,gBAAgB,CAAC,iBAAiBF,oBAAA;MAC9C;MAEAN,OAAA;MAEAZ,iBAAA,CAAkBC,OAAO,GAAGN,IAAA;MAE5B,OAAO;QACLO,SAAA,CAAUY,KAAK,CAACG,UAAU,GAAG;QAC7Bf,SAAA,CAAUY,KAAK,CAACC,MAAM,GAAG;MAC3B;IACF;EACF,GAAG,CAACpB,IAAA,EAAMD,QAAA,EAAUD,YAAA,EAAcG,+BAAA,CAAgC;EAElE,OAAO;IAAEA;EAAgC;AAC3C","ignoreList":[]}
|
|
@@ -11,12 +11,6 @@
|
|
|
11
11
|
display: none;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
// place the localizer outside the `overflow: hidden` container so that the popup is visible
|
|
15
|
-
// this means we need to use a placeholder div so that the space is retained in the DOM
|
|
16
|
-
[dir='rtl'] &__localizer {
|
|
17
|
-
right: unset;
|
|
18
|
-
left: base(4.5);
|
|
19
|
-
}
|
|
20
14
|
&__localizer.localizer {
|
|
21
15
|
position: absolute;
|
|
22
16
|
top: 50%;
|
|
@@ -24,6 +18,13 @@
|
|
|
24
18
|
transform: translate3d(0, -50%, 0);
|
|
25
19
|
}
|
|
26
20
|
|
|
21
|
+
// place the localizer outside the `overflow: hidden` container so that the popup is visible
|
|
22
|
+
// this means we need to use a placeholder div so that the space is retained in the DOM
|
|
23
|
+
[dir='rtl'] &__localizer {
|
|
24
|
+
right: unset;
|
|
25
|
+
left: base(4.5);
|
|
26
|
+
}
|
|
27
|
+
|
|
27
28
|
&__localizer-spacing {
|
|
28
29
|
visibility: hidden;
|
|
29
30
|
}
|
|
@@ -90,7 +91,6 @@
|
|
|
90
91
|
display: flex;
|
|
91
92
|
align-items: center;
|
|
92
93
|
flex-grow: 1;
|
|
93
|
-
overflow: hidden;
|
|
94
94
|
width: 100%;
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -128,7 +128,6 @@
|
|
|
128
128
|
gap: calc(var(--base) / 2);
|
|
129
129
|
flex-shrink: 0;
|
|
130
130
|
max-width: 600px;
|
|
131
|
-
overflow: auto;
|
|
132
131
|
white-space: nowrap;
|
|
133
132
|
|
|
134
133
|
&::-webkit-scrollbar {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FileSidebar/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FileSidebar/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,cAAc,CAAA;AAOrB,wBAAgB,WAAW,sBAsK1B"}
|
|
@@ -6,10 +6,10 @@ import { useModal } from '@faceless-ui/modal';
|
|
|
6
6
|
import { useWindowInfo } from '@faceless-ui/window-info';
|
|
7
7
|
import { isImage } from 'payload/shared';
|
|
8
8
|
import React from 'react';
|
|
9
|
-
import AnimateHeightImport from 'react-animate-height';
|
|
10
9
|
import { ChevronIcon } from '../../../icons/Chevron/index.js';
|
|
11
10
|
import { XIcon } from '../../../icons/X/index.js';
|
|
12
11
|
import { useTranslation } from '../../../providers/Translation/index.js';
|
|
12
|
+
import { AnimateHeight } from '../../AnimateHeight/index.js';
|
|
13
13
|
import { Button } from '../../Button/index.js';
|
|
14
14
|
import { Drawer } from '../../Drawer/index.js';
|
|
15
15
|
import { ErrorPill } from '../../ErrorPill/index.js';
|
|
@@ -19,9 +19,8 @@ import { Thumbnail } from '../../Thumbnail/index.js';
|
|
|
19
19
|
import { Actions } from '../ActionsBar/index.js';
|
|
20
20
|
import { AddFilesView } from '../AddFilesView/index.js';
|
|
21
21
|
import { useFormsManager } from '../FormsManager/index.js';
|
|
22
|
-
import { useBulkUpload } from '../index.js';
|
|
23
22
|
import './index.scss';
|
|
24
|
-
|
|
23
|
+
import { useBulkUpload } from '../index.js';
|
|
25
24
|
const addMoreFilesDrawerSlug = 'bulk-upload-drawer--add-more-files';
|
|
26
25
|
const baseClass = 'file-selections';
|
|
27
26
|
export function FileSidebar() {
|
|
@@ -214,7 +213,6 @@ export function FileSidebar() {
|
|
|
214
213
|
}), _jsx("div", {
|
|
215
214
|
className: `${baseClass}__animateWrapper`,
|
|
216
215
|
children: _jsx(AnimateHeight, {
|
|
217
|
-
duration: 200,
|
|
218
216
|
height: !breakpoints.m || showFiles ? "auto" : 0,
|
|
219
217
|
children: _jsxs("div", {
|
|
220
218
|
className: `${baseClass}__filesContainer`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","useWindowInfo","isImage","React","AnimateHeightImport","ChevronIcon","XIcon","useTranslation","Button","Drawer","ErrorPill","Pill","ShimmerEffect","Thumbnail","Actions","AddFilesView","useFormsManager","useBulkUpload","AnimateHeight","default","addMoreFilesDrawerSlug","baseClass","FileSidebar","$","activeIndex","addFiles","forms","isInitializing","removeFile","setActiveIndex","thumbnailUrls","totalErrorCount","initialFiles","maxFiles","i18n","t","closeModal","openModal","showFiles","setShowFiles","useState","breakpoints","t0","indexToRemove","handleRemoveFile","t1","filelist","handleAddFiles","getFileSize","_temp","totalFileCount","length","t2","t3","filter","Boolean","t4","join","t5","m","t6","Symbol","for","prev","t7","t8","t9","index_0","errorCount","formState","currentFile","file","value","_jsxs","className","index","children","onClick","type","_jsx","fileSrc","undefined","title","name","count","withMessage","buttonStyle","direction","gutter","Header","slug","onCancel","onDrop","duration","height","Array","from","map","_temp2","file_0","animationDelay","size","i","Math","floor","log","decimals","formattedSize","pow","toFixed"],"sources":["../../../../src/elements/BulkUpload/FileSidebar/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { isImage } from 'payload/shared'\nimport React from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { ErrorPill } from '../../ErrorPill/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport { Actions } from '../ActionsBar/index.js'\nimport { AddFilesView } from '../AddFilesView/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { useBulkUpload } from '../index.js'\nimport './index.scss'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nconst addMoreFilesDrawerSlug = 'bulk-upload-drawer--add-more-files'\n\nconst baseClass = 'file-selections'\n\nexport function FileSidebar() {\n const {\n activeIndex,\n addFiles,\n forms,\n isInitializing,\n removeFile,\n setActiveIndex,\n thumbnailUrls,\n totalErrorCount,\n } = useFormsManager()\n const { initialFiles, maxFiles } = useBulkUpload()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const [showFiles, setShowFiles] = React.useState(false)\n const { breakpoints } = useWindowInfo()\n\n const handleRemoveFile = React.useCallback(\n (indexToRemove: number) => {\n removeFile(indexToRemove)\n },\n [removeFile],\n )\n\n const handleAddFiles = React.useCallback(\n (filelist: FileList) => {\n void addFiles(filelist)\n closeModal(addMoreFilesDrawerSlug)\n },\n [addFiles, closeModal],\n )\n\n const getFileSize = React.useCallback((file: File) => {\n const size = file.size\n const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024))\n const decimals = i > 1 ? 1 : 0\n const formattedSize =\n (size / Math.pow(1024, i)).toFixed(decimals) + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i]\n return formattedSize\n }, [])\n\n const totalFileCount = isInitializing ? initialFiles.length : forms.length\n\n return (\n <div\n className={[baseClass, showFiles && `${baseClass}__showingFiles`].filter(Boolean).join(' ')}\n >\n {breakpoints.m && showFiles ? <div className={`${baseClass}__mobileBlur`} /> : null}\n <div className={`${baseClass}__header`}>\n <div className={`${baseClass}__headerTopRow`}>\n <div className={`${baseClass}__header__text`}>\n <ErrorPill count={totalErrorCount} i18n={i18n} withMessage />\n <p>\n <strong\n title={`${totalFileCount} ${t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}`}\n >\n {totalFileCount}{' '}\n {t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}\n </strong>\n </p>\n </div>\n\n <div className={`${baseClass}__header__actions`}>\n {typeof maxFiles === 'number' && totalFileCount < maxFiles ? (\n <Pill onClick={() => openModal(addMoreFilesDrawerSlug)}>{t('upload:addFile')}</Pill>\n ) : null}\n <Button\n buttonStyle=\"transparent\"\n className={`${baseClass}__toggler`}\n onClick={() => setShowFiles((prev) => !prev)}\n >\n <span className={`${baseClass}__toggler__label`}>\n <strong\n title={`${totalFileCount} ${t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}`}\n >\n {totalFileCount}{' '}\n {t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}\n </strong>\n </span>\n <ChevronIcon direction={showFiles ? 'down' : 'up'} />\n </Button>\n\n <Drawer gutter={false} Header={null} slug={addMoreFilesDrawerSlug}>\n <AddFilesView\n onCancel={() => closeModal(addMoreFilesDrawerSlug)}\n onDrop={handleAddFiles}\n />\n </Drawer>\n </div>\n </div>\n\n <div className={`${baseClass}__header__mobileDocActions`}>\n <Actions />\n </div>\n </div>\n\n <div className={`${baseClass}__animateWrapper`}>\n <AnimateHeight duration={200} height={!breakpoints.m || showFiles ? 'auto' : 0}>\n <div className={`${baseClass}__filesContainer`}>\n {isInitializing && forms.length === 0 && initialFiles.length > 0\n ? Array.from(initialFiles).map((file, index) => (\n <ShimmerEffect\n animationDelay={`calc(${index} * ${60}ms)`}\n height=\"35px\"\n key={index}\n />\n ))\n : null}\n {forms.map(({ errorCount, formState }, index) => {\n const currentFile = formState.file.value as File\n\n return (\n <div\n className={[\n `${baseClass}__fileRowContainer`,\n index === activeIndex && `${baseClass}__fileRowContainer--active`,\n errorCount && errorCount > 0 && `${baseClass}__fileRowContainer--error`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={index}\n >\n <button\n className={`${baseClass}__fileRow`}\n onClick={() => setActiveIndex(index)}\n type=\"button\"\n >\n <Thumbnail\n className={`${baseClass}__thumbnail`}\n fileSrc={isImage(currentFile.type) ? thumbnailUrls[index] : undefined}\n />\n <div className={`${baseClass}__fileDetails`}>\n <p className={`${baseClass}__fileName`} title={currentFile.name}>\n {currentFile.name}\n </p>\n </div>\n <p className={`${baseClass}__fileSize`}>{getFileSize(currentFile)}</p>\n <div className={`${baseClass}__remove ${baseClass}__remove--underlay`}>\n <XIcon />\n </div>\n\n {errorCount ? (\n <ErrorPill\n className={`${baseClass}__errorCount`}\n count={errorCount}\n i18n={i18n}\n />\n ) : null}\n </button>\n\n <button\n aria-label={t('general:remove')}\n className={`${baseClass}__remove ${baseClass}__remove--overlay`}\n onClick={() => handleRemoveFile(index)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )\n })}\n </div>\n </AnimateHeight>\n </div>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,OAAO,QAAQ;AACxB,OAAOC,KAAA,MAAW;AAClB,OAAOC,mBAAA,MAAyB;AAEhC,SAASC,WAAW,QAAQ;AAC5B,SAASC,KAAK,QAAQ;AACtB,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,QAAQ;AAC1B,SAASC,IAAI,QAAQ;AACrB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,OAAO,QAAQ;AACxB,SAASC,YAAY,QAAQ;AAC7B,SAASC,eAAe,QAAQ;AAChC,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,aAAA,GAAiBd,mBAAA,CAAoBe,OAAO,IAChDf,mBAAA;AAEF,MAAMgB,sBAAA,GAAyB;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,SAAAC,YAAA;EAAA,MAAAC,CAAA,GAAAxB,EAAA;EACL;IAAAyB,WAAA;IAAAC,QAAA;IAAAC,KAAA;IAAAC,cAAA;IAAAC,UAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC;EAAA,IASIf,eAAA;EACJ;IAAAgB,YAAA;IAAAC;EAAA,IAAmChB,aAAA;EACnC;IAAAiB,IAAA;IAAAC;EAAA,IAAoB5B,cAAA;EACpB;IAAA6B,UAAA;IAAAC;EAAA,IAAkCrC,QAAA;EAClC,OAAAsC,SAAA,EAAAC,YAAA,IAAkCpC,KAAA,CAAAqC,QAAA,MAAe;EACjD;IAAAC;EAAA,IAAwBxC,aAAA;EAAA,IAAAyC,EAAA;EAAA,IAAAnB,CAAA,QAAAK,UAAA;IAGtBc,EAAA,GAAAC,aAAA;MACEf,UAAA,CAAWe,aAAA;IAAA;IACbpB,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EAHF,MAAAqB,gBAAA,GAAyBF,EAIX;EAAA,IAAAG,EAAA;EAAA,IAAAtB,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAa,UAAA;IAIZS,EAAA,GAAAC,QAAA;MACOrB,QAAA,CAASqB,QAAA;MACdV,UAAA,CAAAhB,sBAAW;IAAA;IACbG,CAAA,MAAAE,QAAA;IAAAF,CAAA,MAAAa,UAAA;IAAAb,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAJF,MAAAwB,cAAA,GAAuBF,EAKC;EAGxB,MAAAG,WAAA,GAAAC,KAAA;EASA,MAAAC,cAAA,GAAuBvB,cAAA,GAAiBK,YAAA,CAAAmB,MAAA,GAAsBzB,KAAA,CAAAyB,MAAY;EAI/C,MAAAC,EAAA,GAAAd,SAAA,IAAa,GAAAjB,SAAA,gBAA4B;EAAA,IAAAgC,EAAA;EAAA,IAAA9B,CAAA,QAAA6B,EAAA;IAArDC,EAAA,IAAAhC,SAAA,EAAY+B,EAAyC,EAAAE,MAAA,CAAAC,OAAS;IAAAhC,CAAA,MAAA6B,EAAA;IAAA7B,CAAA,MAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAA9D,MAAAiC,EAAA,GAAAH,EAA8D,CAAAI,IAAA,CAAc;EAAA,IAAAC,EAAA;EAAA,IAAAnC,CAAA,QAAAkB,WAAA,CAAAkB,CAAA,IAAApC,CAAA,QAAAe,SAAA,IAAAf,CAAA,QAAAQ,eAAA,IAAAR,CAAA,SAAAW,IAAA,IAAAX,CAAA,SAAA2B,cAAA,IAAA3B,CAAA,SAAAY,CAAA,IAAAZ,CAAA,SAAAU,QAAA,IAAAV,CAAA,SAAAc,SAAA,IAAAd,CAAA,SAAAa,UAAA,IAAAb,CAAA,SAAAwB,cAAA,IAAAxB,CAAA,SAAAI,cAAA,IAAAJ,CAAA,SAAAG,KAAA,IAAAH,CAAA,SAAAS,YAAA,IAAAT,CAAA,SAAAC,WAAA,IAAAD,CAAA,SAAAM,cAAA,IAAAN,CAAA,SAAAO,aAAA,IAAAP,CAAA,SAAAqB,gBAAA,IAAArB,CAAA,SAAAiC,EAAA;IAAA,IAAAI,EAAA;IAAA,IAAArC,CAAA,SAAAsC,MAAA,CAAAC,GAAA;MAwBtEF,EAAA,GAAAA,CAAA,KAAMrB,YAAA,CAAAwB,IAAA,KAAwBA,IAAA;MAAAxC,CAAA,OAAAqC,EAAA;IAAA;MAAAA,EAAA,GAAArC,CAAA;IAAA;IAAA,IAAAyC,EAAA;IAAA,IAAAzC,CAAA,SAAAa,UAAA;MAe3B4B,EAAA,GAAAA,CAAA,KAAM5B,UAAA,CAAAhB,sBAAW;MAAAG,CAAA,OAAAa,UAAA;MAAAb,CAAA,OAAAyC,EAAA;IAAA;MAAAA,EAAA,GAAAzC,CAAA;IAAA;IAAA,IAAA0C,EAAA;IAAA,IAAA1C,CAAA,SAAAC,WAAA,IAAAD,CAAA,SAAAM,cAAA,IAAAN,CAAA,SAAAO,aAAA,IAAAP,CAAA,SAAAW,IAAA,IAAAX,CAAA,SAAAY,CAAA,IAAAZ,CAAA,SAAAqB,gBAAA;MAwBpBqB,EAAA,GAAAA,CAAAC,EAAA,EAAAC,OAAA;QAAC;UAAAC,UAAA;UAAAC;QAAA,IAAAH,EAAyB;QACnC,MAAAI,WAAA,GAAoBD,SAAA,CAAAE,IAAA,CAAAC,KAAA;QAAoB,OAGtCC,KAAA,CAAC;UAAAC,SAAA,EACY,CACT,GAAArD,SAAA,oBAAgC,EAChCsD,OAAA,KAAUnD,WAAA,IAAe,GAAAH,SAAA,4BAAwC,EACjE+C,UAAA,IAAcA,UAAA,IAAa,IAAK,GAAA/C,SAAA,2BAAuC,EAAAiC,MAAA,CAAAC,OAE/D,EAAAE,IAAA,CACF;UAAAmB,QAAA,GAGRH,KAAA,CAAC;YAAAC,SAAA,EACY,GAAArD,SAAA,WAAuB;YAAAwD,OAAA,EAAAA,CAAA,KACnBhD,cAAA,CAAe8C,OAAA;YAAAG,IAAA,EACzB;YAAAF,QAAA,GAELG,IAAA,CAAAlE,SAAA;cAAA6D,SAAA,EACa,GAAArD,SAAA,aAAyB;cAAA2D,OAAA,EAC3B9E,OAAA,CAAQoE,WAAA,CAAAQ,IAAgB,IAAIhD,aAAa,CAAC6C,OAAA,IAAAM;YAAS,C,GAE9DF,IAAA,CAAC;cAAAL,SAAA,EAAe,GAAArD,SAAA,eAA2B;cAAAuD,QAAA,EACzCG,IAAA,CAAC;gBAAAL,SAAA,EAAa,GAAArD,SAAA,YAAwB;gBAAA6D,KAAA,EAASZ,WAAA,CAAAa,IAAA;gBAAAP,QAAA,EAC5CN,WAAA,CAAAa;cAAA,C;gBAGLJ,IAAA,CAAC;cAAAL,SAAA,EAAa,GAAArD,SAAA,YAAwB;cAAAuD,QAAA,EAAG5B,WAAA,CAAYsB,WAAA;YAAA,C,GACrDS,IAAA,CAAC;cAAAL,SAAA,EAAe,GAAArD,SAAA,YAAAA,SAAA,oBAAqD;cAAAuD,QAAA,EACnEG,IAAA,CAAAzE,KAAA,IAAC;YAAA,C,GAGF8D,UAAA,GACCW,IAAA,CAAArE,SAAA;cAAAgE,SAAA,EACa,GAAArD,SAAA,cAA0B;cAAA+D,KAAA,EAC9BhB,UAAA;cAAAlC;YAAA,C,QAGP;UAAA,C,GAGN6C,IAAA,CAAC;YAAA,cACa5C,CAAA,CAAE;YAAAuC,SAAA,EACH,GAAArD,SAAA,YAAAA,SAAA,mBAAoD;YAAAwD,OAAA,EAAAA,CAAA,KAChDjC,gBAAA,CAAiB+B,OAAA;YAAAG,IAAA,EAC3B;YAAAF,QAAA,EAELG,IAAA,CAAAzE,KAAA,IAAC;UAAA,C;WApCEqE,OAAA;MAAA;MAwCXpD,CAAA,OAAAC,WAAA;MAAAD,CAAA,OAAAM,cAAA;MAAAN,CAAA,OAAAO,aAAA;MAAAP,CAAA,OAAAW,IAAA;MAAAX,CAAA,OAAAY,CAAA;MAAAZ,CAAA,OAAAqB,gBAAA;MAAArB,CAAA,OAAA0C,EAAA;IAAA;MAAAA,EAAA,GAAA1C,CAAA;IAAA;IApHRmC,EAAA,GAAAe,KAAA,CAAC;MAAAC,SAAA,EACYlB,EAA4E;MAAAoB,QAAA,GAEtFnC,WAAA,CAAAkB,CAAA,IAAiBrB,SAAA,GAAYyC,IAAA,CAAC;QAAAL,SAAA,EAAe,GAAArD,SAAA;MAA0B,C,QAAO,EAC/EoD,KAAA,CAAC;QAAAC,SAAA,EAAe,GAAArD,SAAA,UAAsB;QAAAuD,QAAA,GACpCH,KAAA,CAAC;UAAAC,SAAA,EAAe,GAAArD,SAAA,gBAA4B;UAAAuD,QAAA,GAC1CH,KAAA,CAAC;YAAAC,SAAA,EAAe,GAAArD,SAAA,gBAA4B;YAAAuD,QAAA,GAC1CG,IAAA,CAAArE,SAAA;cAAA0E,KAAA,EAAkBrD,eAAA;cAAAG,IAAA;cAAAmD,WAAA;YAAA,C,GAClBN,IAAA,CAAC;cAAAH,QAAA,EACCH,KAAA,CAAC;gBAAAS,KAAA,EACQ,GAAGhC,cAAA,IAAkBf,CAAA,CAAEe,cAAA,IAAiB,GAAI,yBAAyB,wBAAwB;gBAAA0B,QAAA,GAEnG1B,cAAA,EAAgB,KAChBf,CAAA,CAAEe,cAAA,IAAiB,GAAI,yBAAyB;cAAA,C;;cAKvDuB,KAAA,CAAC;YAAAC,SAAA,EAAe,GAAArD,SAAA,mBAA+B;YAAAuD,QAAA,GAC5C,OAAO3C,QAAA,KAAa,YAAYiB,cAAA,GAAiBjB,QAAA,GAChD8C,IAAA,CAAApE,IAAA;cAAAkE,OAAA,EAAAA,CAAA,KAAqBxC,SAAA,CAAAjB,sBAAU;cAAAwD,QAAA,EAA0BzC,CAAA,CAAE;YAAA,C,QACzD,EACJsC,KAAA,CAAAjE,MAAA;cAAA8E,WAAA,EACc;cAAAZ,SAAA,EACD,GAAArD,SAAA,WAAuB;cAAAwD,OAAA,EACzBjB,EAA8B;cAAAgB,QAAA,GAEvCG,IAAA,CAAC;gBAAAL,SAAA,EAAgB,GAAArD,SAAA,kBAA8B;gBAAAuD,QAAA,EAC7CH,KAAA,CAAC;kBAAAS,KAAA,EACQ,GAAGhC,cAAA,IAAkBf,CAAA,CAAEe,cAAA,IAAiB,GAAI,yBAAyB,wBAAwB;kBAAA0B,QAAA,GAEnG1B,cAAA,EAAgB,KAChBf,CAAA,CAAEe,cAAA,IAAiB,GAAI,yBAAyB;gBAAA,C;kBAGrD6B,IAAA,CAAA1E,WAAA;gBAAAkF,SAAA,EAAwBjD,SAAA,GAAY,SAAS;cAAA,C;gBAG/CyC,IAAA,CAAAtE,MAAA;cAAA+E,MAAA;cAAAC,MAAA;cAAAC,IAAA,EAAAtE,sBAAA;cAAAwD,QAAA,EACEG,IAAA,CAAAhE,YAAA;gBAAA4E,QAAA,EACY3B,EAAiB;gBAAA4B,MAAA,EACnB7C;cAAA,C;;;YAMhBgC,IAAA,CAAC;UAAAL,SAAA,EAAe,GAAArD,SAAA,4BAAwC;UAAAuD,QAAA,EACtDG,IAAA,CAAAjE,OAAA,IAAC;QAAA,C;UAILiE,IAAA,CAAC;QAAAL,SAAA,EAAe,GAAArD,SAAA,kBAA8B;QAAAuD,QAAA,EAC5CG,IAAA,CAAA7D,aAAA;UAAA2E,QAAA;UAAAC,MAAA,EAAsC,CAACrD,WAAA,CAAAkB,CAAA,IAAiBrB,SAAA,GAAY,UAAS;UAAAsC,QAAA,EAC3EH,KAAA,CAAC;YAAAC,SAAA,EAAe,GAAArD,SAAA,kBAA8B;YAAAuD,QAAA,GAC3CjD,cAAA,IAAkBD,KAAA,CAAAyB,MAAA,MAAiB,IAAKnB,YAAA,CAAAmB,MAAA,IAAsB,GAC3D4C,KAAA,CAAAC,IAAA,CAAWhE,YAAA,EAAAiE,GAAA,CAAAC,MAIF,QAGT,EACHxE,KAAA,CAAAuE,GAAA,CAAUhC,EAoDX;UAAA,C;;;;;;;;;;;;;;;;;;;;;;;;;;SApHRP,E;;AA5CG,SAAAwC,OAAAC,MAAA,EAAAxB,KAAA;EAAA,OAqGWI,IAAA,CAAAnE,aAAA;IAAAwF,cAAA,EACkB,QAAQzB,KAAA,aAAkB;IAAAmB,MAAA,EACnC;EAAA,GACFnB,KAAA;AAAA;AAxGlB,SAAA1B,MAAAsB,IAAA;EAiCH,MAAA8B,IAAA,GAAa9B,IAAA,CAAA8B,IAAA;EACb,MAAAC,CAAA,GAAUD,IAAA,MAAS,OAAQE,IAAA,CAAAC,KAAA,CAAWD,IAAA,CAAAE,GAAA,CAASJ,IAAA,IAAQE,IAAA,CAAAE,GAAA,KAAS;EAChE,MAAAC,QAAA,GAAiBJ,CAAA,IAAI,QAAQ;EAC7B,MAAAK,aAAA,GACE,CAACN,IAAA,GAAOE,IAAA,CAAAK,GAAA,OAAeN,CAAA,CAAC,EAAAO,OAAA,CAAWH,QAAA,IAAY,OAAO,KAAK,MAAM,MAAM,MAAM,MAAMJ,CAAA,CAAE;EAAA,OAChFK,aAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","useWindowInfo","isImage","React","ChevronIcon","XIcon","useTranslation","AnimateHeight","Button","Drawer","ErrorPill","Pill","ShimmerEffect","Thumbnail","Actions","AddFilesView","useFormsManager","useBulkUpload","addMoreFilesDrawerSlug","baseClass","FileSidebar","$","activeIndex","addFiles","forms","isInitializing","removeFile","setActiveIndex","thumbnailUrls","totalErrorCount","initialFiles","maxFiles","i18n","t","closeModal","openModal","showFiles","setShowFiles","useState","breakpoints","t0","indexToRemove","handleRemoveFile","t1","filelist","handleAddFiles","getFileSize","_temp","totalFileCount","length","t2","t3","filter","Boolean","t4","join","t5","m","t6","Symbol","for","prev","t7","t8","t9","index_0","errorCount","formState","currentFile","file","value","_jsxs","className","index","children","onClick","type","_jsx","fileSrc","undefined","title","name","count","withMessage","buttonStyle","direction","gutter","Header","slug","onCancel","onDrop","height","Array","from","map","_temp2","file_0","animationDelay","size","i","Math","floor","log","decimals","formattedSize","pow","toFixed"],"sources":["../../../../src/elements/BulkUpload/FileSidebar/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { isImage } from 'payload/shared'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { AnimateHeight } from '../../AnimateHeight/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { ErrorPill } from '../../ErrorPill/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport { Actions } from '../ActionsBar/index.js'\nimport { AddFilesView } from '../AddFilesView/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport './index.scss'\nimport { useBulkUpload } from '../index.js'\n\nconst addMoreFilesDrawerSlug = 'bulk-upload-drawer--add-more-files'\n\nconst baseClass = 'file-selections'\n\nexport function FileSidebar() {\n const {\n activeIndex,\n addFiles,\n forms,\n isInitializing,\n removeFile,\n setActiveIndex,\n thumbnailUrls,\n totalErrorCount,\n } = useFormsManager()\n const { initialFiles, maxFiles } = useBulkUpload()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const [showFiles, setShowFiles] = React.useState(false)\n const { breakpoints } = useWindowInfo()\n\n const handleRemoveFile = React.useCallback(\n (indexToRemove: number) => {\n removeFile(indexToRemove)\n },\n [removeFile],\n )\n\n const handleAddFiles = React.useCallback(\n (filelist: FileList) => {\n void addFiles(filelist)\n closeModal(addMoreFilesDrawerSlug)\n },\n [addFiles, closeModal],\n )\n\n const getFileSize = React.useCallback((file: File) => {\n const size = file.size\n const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024))\n const decimals = i > 1 ? 1 : 0\n const formattedSize =\n (size / Math.pow(1024, i)).toFixed(decimals) + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i]\n return formattedSize\n }, [])\n\n const totalFileCount = isInitializing ? initialFiles.length : forms.length\n\n return (\n <div\n className={[baseClass, showFiles && `${baseClass}__showingFiles`].filter(Boolean).join(' ')}\n >\n {breakpoints.m && showFiles ? <div className={`${baseClass}__mobileBlur`} /> : null}\n <div className={`${baseClass}__header`}>\n <div className={`${baseClass}__headerTopRow`}>\n <div className={`${baseClass}__header__text`}>\n <ErrorPill count={totalErrorCount} i18n={i18n} withMessage />\n <p>\n <strong\n title={`${totalFileCount} ${t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}`}\n >\n {totalFileCount}{' '}\n {t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}\n </strong>\n </p>\n </div>\n\n <div className={`${baseClass}__header__actions`}>\n {typeof maxFiles === 'number' && totalFileCount < maxFiles ? (\n <Pill onClick={() => openModal(addMoreFilesDrawerSlug)}>{t('upload:addFile')}</Pill>\n ) : null}\n <Button\n buttonStyle=\"transparent\"\n className={`${baseClass}__toggler`}\n onClick={() => setShowFiles((prev) => !prev)}\n >\n <span className={`${baseClass}__toggler__label`}>\n <strong\n title={`${totalFileCount} ${t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}`}\n >\n {totalFileCount}{' '}\n {t(totalFileCount > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}\n </strong>\n </span>\n <ChevronIcon direction={showFiles ? 'down' : 'up'} />\n </Button>\n\n <Drawer gutter={false} Header={null} slug={addMoreFilesDrawerSlug}>\n <AddFilesView\n onCancel={() => closeModal(addMoreFilesDrawerSlug)}\n onDrop={handleAddFiles}\n />\n </Drawer>\n </div>\n </div>\n\n <div className={`${baseClass}__header__mobileDocActions`}>\n <Actions />\n </div>\n </div>\n\n <div className={`${baseClass}__animateWrapper`}>\n <AnimateHeight height={!breakpoints.m || showFiles ? 'auto' : 0}>\n <div className={`${baseClass}__filesContainer`}>\n {isInitializing && forms.length === 0 && initialFiles.length > 0\n ? Array.from(initialFiles).map((file, index) => (\n <ShimmerEffect\n animationDelay={`calc(${index} * ${60}ms)`}\n height=\"35px\"\n key={index}\n />\n ))\n : null}\n {forms.map(({ errorCount, formState }, index) => {\n const currentFile = formState.file.value as File\n\n return (\n <div\n className={[\n `${baseClass}__fileRowContainer`,\n index === activeIndex && `${baseClass}__fileRowContainer--active`,\n errorCount && errorCount > 0 && `${baseClass}__fileRowContainer--error`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={index}\n >\n <button\n className={`${baseClass}__fileRow`}\n onClick={() => setActiveIndex(index)}\n type=\"button\"\n >\n <Thumbnail\n className={`${baseClass}__thumbnail`}\n fileSrc={isImage(currentFile.type) ? thumbnailUrls[index] : undefined}\n />\n <div className={`${baseClass}__fileDetails`}>\n <p className={`${baseClass}__fileName`} title={currentFile.name}>\n {currentFile.name}\n </p>\n </div>\n <p className={`${baseClass}__fileSize`}>{getFileSize(currentFile)}</p>\n <div className={`${baseClass}__remove ${baseClass}__remove--underlay`}>\n <XIcon />\n </div>\n\n {errorCount ? (\n <ErrorPill\n className={`${baseClass}__errorCount`}\n count={errorCount}\n i18n={i18n}\n />\n ) : null}\n </button>\n\n <button\n aria-label={t('general:remove')}\n className={`${baseClass}__remove ${baseClass}__remove--overlay`}\n onClick={() => handleRemoveFile(index)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )\n })}\n </div>\n </AnimateHeight>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Collapsible/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Collapsible/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAA;AAK1F,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAInE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAA;AAE9C,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IACtC,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACxD,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2FvC,CAAA"}
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import React, { useState } from 'react';
|
|
6
|
-
import AnimateHeightImport from 'react-animate-height';
|
|
7
|
-
const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
|
|
8
6
|
import { ChevronIcon } from '../../icons/Chevron/index.js';
|
|
9
7
|
import { DragHandleIcon } from '../../icons/DragHandle/index.js';
|
|
10
8
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
11
9
|
import './index.scss';
|
|
10
|
+
import { AnimateHeight } from '../AnimateHeight/index.js';
|
|
12
11
|
import { CollapsibleProvider, useCollapsible } from './provider.js';
|
|
13
12
|
const baseClass = 'collapsible';
|
|
14
13
|
export { CollapsibleProvider, useCollapsible };
|
|
@@ -137,7 +136,6 @@ export const Collapsible = t0 => {
|
|
|
137
136
|
})]
|
|
138
137
|
})]
|
|
139
138
|
}), _jsx(AnimateHeight, {
|
|
140
|
-
duration: 200,
|
|
141
139
|
height: isCollapsed ? 0 : "auto",
|
|
142
140
|
children: _jsx("div", {
|
|
143
141
|
className: `${baseClass}__content`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useState","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useState","ChevronIcon","DragHandleIcon","useTranslation","AnimateHeight","CollapsibleProvider","useCollapsible","baseClass","Collapsible","t0","$","actions","children","className","collapsibleStyle","t1","dragHandleProps","header","initCollapsed","isCollapsed","collapsedFromProps","onToggle","undefined","collapsedLocal","setCollapsedLocal","Boolean","hoveringToggle","setHoveringToggle","isWithinCollapsible","t","t2","toggleCollapsible","t3","t4","t5","t6","t7","t8","filter","t9","join","t10","t11","Symbol","for","t12","t13","t14","t15","t16","_jsx","attributes","listeners","_jsxs","toggle","onMouseEnter","onMouseLeave","onClick","type","direction","height"],"sources":["../../../src/elements/Collapsible/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\n\nimport type { DragHandleProps } from '../DraggableSortable/DraggableSortableItem/types.js'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { DragHandleIcon } from '../../icons/DragHandle/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { CollapsibleProvider, useCollapsible } from './provider.js'\n\nconst baseClass = 'collapsible'\n\nexport { CollapsibleProvider, useCollapsible }\n\nexport type Props = {\n actions?: React.ReactNode\n children: React.ReactNode\n className?: string\n collapsibleStyle?: 'default' | 'error'\n dragHandleProps?: DragHandleProps\n header?: React.ReactNode\n initCollapsed?: boolean\n isCollapsed?: boolean\n onToggle?: (collapsed: boolean) => Promise<void> | void\n}\n\nexport const Collapsible: React.FC<Props> = ({\n actions,\n children,\n className,\n collapsibleStyle = 'default',\n dragHandleProps,\n header,\n initCollapsed,\n isCollapsed: collapsedFromProps,\n onToggle,\n}) => {\n const [collapsedLocal, setCollapsedLocal] = useState(Boolean(initCollapsed))\n const [hoveringToggle, setHoveringToggle] = useState(false)\n const { isWithinCollapsible } = useCollapsible()\n const { t } = useTranslation()\n\n const isCollapsed = typeof collapsedFromProps === 'boolean' ? collapsedFromProps : collapsedLocal\n\n const toggleCollapsible = React.useCallback(() => {\n if (typeof onToggle === 'function') {\n void onToggle(!isCollapsed)\n }\n setCollapsedLocal(!isCollapsed)\n }, [onToggle, isCollapsed])\n\n return (\n <div\n className={[\n baseClass,\n className,\n dragHandleProps && `${baseClass}--has-drag-handle`,\n isCollapsed && `${baseClass}--collapsed`,\n isWithinCollapsible && `${baseClass}--nested`,\n hoveringToggle && `${baseClass}--hovered`,\n `${baseClass}--style-${collapsibleStyle}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <CollapsibleProvider isCollapsed={isCollapsed} toggle={toggleCollapsible}>\n <div\n className={`${baseClass}__toggle-wrap`}\n onMouseEnter={() => setHoveringToggle(true)}\n onMouseLeave={() => setHoveringToggle(false)}\n >\n <button\n className={[\n `${baseClass}__toggle`,\n `${baseClass}__toggle--${isCollapsed ? 'collapsed' : 'open'}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={toggleCollapsible}\n type=\"button\"\n >\n <span>{t('fields:toggleBlock')}</span>\n </button>\n {dragHandleProps && (\n <div\n className={`${baseClass}__drag`}\n {...dragHandleProps.attributes}\n {...dragHandleProps.listeners}\n >\n <DragHandleIcon />\n </div>\n )}\n {header ? (\n <div\n className={[\n `${baseClass}__header-wrap`,\n dragHandleProps && `${baseClass}__header-wrap--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {header}\n </div>\n ) : null}\n <div className={`${baseClass}__actions-wrap`}>\n {actions ? <div className={`${baseClass}__actions`}>{actions}</div> : null}\n <div className={`${baseClass}__indicator`}>\n <ChevronIcon direction={!isCollapsed ? 'up' : undefined} />\n </div>\n </div>\n </div>\n <AnimateHeight height={isCollapsed ? 0 : 'auto'}>\n <div className={`${baseClass}__content`}>{children}</div>\n </AnimateHeight>\n </CollapsibleProvider>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI5D,OAAO,KAAgD,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI5D,OAAO,KAAgD,MAAM,OAAO,CAAA;AAiBpE,OAAO,cAAc,CAAA;AAKrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;CACxD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA8LpD,CAAA"}
|
|
@@ -4,13 +4,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
import { useWindowInfo } from '@faceless-ui/window-info';
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import React, { Fragment, useEffect, useRef, useState } from 'react';
|
|
7
|
-
import AnimateHeightImport from 'react-animate-height';
|
|
8
|
-
const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
|
|
9
7
|
import { useUseTitleField } from '../../hooks/useUseAsTitle.js';
|
|
10
8
|
import { ChevronIcon } from '../../icons/Chevron/index.js';
|
|
11
9
|
import { SearchIcon } from '../../icons/Search/index.js';
|
|
12
10
|
import { useListQuery } from '../../providers/ListQuery/index.js';
|
|
13
11
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
12
|
+
import { AnimateHeight } from '../AnimateHeight/index.js';
|
|
14
13
|
import { ColumnSelector } from '../ColumnSelector/index.js';
|
|
15
14
|
import { DeleteMany } from '../DeleteMany/index.js';
|
|
16
15
|
import { EditMany } from '../EditMany/index.js';
|
|
@@ -20,8 +19,8 @@ import { SearchFilter } from '../SearchFilter/index.js';
|
|
|
20
19
|
import { UnpublishMany } from '../UnpublishMany/index.js';
|
|
21
20
|
import { WhereBuilder } from '../WhereBuilder/index.js';
|
|
22
21
|
import validateWhereQuery from '../WhereBuilder/validateWhereQuery.js';
|
|
23
|
-
import { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js';
|
|
24
22
|
import './index.scss';
|
|
23
|
+
import { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js';
|
|
25
24
|
const baseClass = 'list-controls';
|
|
26
25
|
/**
|
|
27
26
|
* The ListControls component is used to render the controls (search, filter, where)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","React","Fragment","useEffect","useRef","useState","AnimateHeightImport","AnimateHeight","default","useUseTitleField","ChevronIcon","SearchIcon","useListQuery","useTranslation","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableBulkDelete","disableBulkEdit","enableColumns","enableSort","renderedFilters","handleSearchChange","query","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","_jsxs","className","_jsx","fieldName","handleChange","search","initialParams","collection","icon","direction","onClick","pillStyle","height","id","slug","collectionPluralLabel","labels","plural","String"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n readonly disableBulkDelete?: boolean\n readonly disableBulkEdit?: boolean\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly renderedFilters?: Map<string, React.ReactNode>\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableColumns = true,\n enableSort = false,\n renderedFilters,\n } = props\n\n const { handleSearchChange, query } = useListQuery()\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField && typeof titleField.label === 'string'\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n setVisibleDrawer(undefined)\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n key={String(hasWhereParam.current && !query?.where)}\n renderedFilters={renderedFilters}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useWindowInfo","getTranslation","React","Fragment","useEffect","useRef","useState","useUseTitleField","ChevronIcon","SearchIcon","useListQuery","useTranslation","AnimateHeight","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","beforeActions","collectionConfig","collectionSlug","disableBulkDelete","disableBulkEdit","enableColumns","enableSort","renderedFilters","handleSearchChange","query","titleField","i18n","t","breakpoints","s","smallBreak","searchLabel","label","name","listSearchableFields","admin","fields","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","_jsxs","className","_jsx","fieldName","handleChange","search","initialParams","collection","icon","direction","onClick","pillStyle","height","id","slug","collectionPluralLabel","labels","plural","String"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport './index.scss'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n readonly disableBulkDelete?: boolean\n readonly disableBulkEdit?: boolean\n readonly enableColumns?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly renderedFilters?: Map<string, React.ReactNode>\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableColumns = true,\n enableSort = false,\n renderedFilters,\n } = props\n\n const { handleSearchChange, query } = useListQuery()\n const titleField = useUseTitleField(collectionConfig)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField && typeof titleField.label === 'string'\n ? titleField.label\n : 'name' in titleField\n ? titleField.name\n : null,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n collectionConfig.fields,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(query?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n setVisibleDrawer(undefined)\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'label' in field && field.label ? field.label : 'name' in field ? field.name : null\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchIcon />\n <SearchFilter\n fieldName={titleField && 'name' in titleField ? titleField?.name : null}\n handleChange={(search) => {\n return void handleSearchChange(search)\n }}\n // @ts-expect-error @todo: fix types\n initialParams={query}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n {beforeActions && beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns`}\n icon={<ChevronIcon direction={visibleDrawer === 'columns' ? 'up' : 'down'} />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where`}\n icon={<ChevronIcon direction={visibleDrawer === 'where' ? 'up' : 'down'} />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n key={String(hasWhereParam.current && !query?.where)}\n renderedFilters={renderedFilters}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAE7D,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,UAAU,QAAQ;AAC3B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,QAAQ,QAAQ;AACzB,SAASC,IAAI,QAAQ;AACrB,SAASC,WAAW,QAAQ;AAC5B,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAQ;AAC9B,SAASC,YAAY,QAAQ;AAC7B,OAAOC,kBAAA,MAAwB;AAC/B,OAAO;AACP,SAASC,yBAAyB,QAAQ;AAE1C,MAAMC,SAAA,GAAY;AAgBlB;;;;;AAKA,OAAO,MAAMC,YAAA,GAA6CC,KAAA;EACxD,MAAM;IACJC,aAAa;IACbC,gBAAgB;IAChBC,cAAc;IACdC,iBAAiB;IACjBC,eAAe;IACfC,aAAA,GAAgB,IAAI;IACpBC,UAAA,GAAa,KAAK;IAClBC;EAAe,CAChB,GAAGR,KAAA;EAEJ,MAAM;IAAES,kBAAkB;IAAEC;EAAK,CAAE,GAAGzB,YAAA;EACtC,MAAM0B,UAAA,GAAa7B,gBAAA,CAAiBoB,gBAAA;EACpC,MAAM;IAAEU,IAAI;IAAEC;EAAC,CAAE,GAAG3B,cAAA;EACpB,MAAM;IACJ4B,WAAA,EAAa;MAAEC,CAAA,EAAGC;IAAU;EAAE,CAC/B,GAAGzC,aAAA;EAEJ,MAAM0C,WAAA,GACJ,CAACN,UAAA,IACCnC,cAAA,CACE,WAAWmC,UAAA,IAAc,OAAOA,UAAA,CAAWO,KAAK,KAAK,WACjDP,UAAA,CAAWO,KAAK,GAChB,UAAUP,UAAA,GACRA,UAAA,CAAWQ,IAAI,GACf,MACNP,IAAA,CACF,KACF;EAEF,MAAMQ,oBAAA,GAAuBvB,yBAAA,CAC3BK,gBAAA,CAAiBmB,KAAK,CAACD,oBAAoB,EAC3ClB,gBAAA,CAAiBoB,MAAM;EAGzB,MAAMC,qBAAA,GAAwB3C,MAAA,CAC5BiC,CAAA,CAAE,oBAAoB;IAAEK,KAAA,EAAO1C,cAAA,CAAeyC,WAAA,EAAaL,IAAA;EAAM;EAGnE,MAAMY,aAAA,GAAgB5C,MAAA,CAAO6C,OAAA,CAAQf,KAAA,EAAOgB,KAAA;EAE5C,MAAMC,2BAAA,GAA8B/B,kBAAA,CAAmBc,KAAA,EAAOgB,KAAA;EAC9D,MAAM,CAACE,aAAA,EAAeC,gBAAA,CAAiB,GAAGhD,QAAA,CACxC8C,2BAAA,GAA8B,UAAUG,SAAA;EAG1CnD,SAAA,CAAU;IACR,IAAI6C,aAAA,CAAcO,OAAO,IAAI,CAACrB,KAAA,EAAOgB,KAAA,EAAO;MAC1CG,gBAAA,CAAiBC,SAAA;MACjBN,aAAA,CAAcO,OAAO,GAAG;IAC1B,OAAO,IAAIrB,KAAA,EAAOgB,KAAA,EAAO;MACvBF,aAAA,CAAcO,OAAO,GAAG;IAC1B;EACF,GAAG,CAACF,gBAAA,EAAkBnB,KAAA,EAAOgB,KAAA,CAAM;EAEnC/C,SAAA,CAAU;IACR,IAAIyC,oBAAA,EAAsBY,MAAA,GAAS,GAAG;MACpCT,qBAAA,CAAsBQ,OAAO,GAAGX,oBAAA,CAAqBa,MAAM,CACzD,CAACC,eAAA,EAAyBC,KAAA,EAAOC,CAAA;QAC/B,MAAMlB,KAAA,GACJ,WAAWiB,KAAA,IAASA,KAAA,CAAMjB,KAAK,GAAGiB,KAAA,CAAMjB,KAAK,GAAG,UAAUiB,KAAA,GAAQA,KAAA,CAAMhB,IAAI,GAAG;QAEjF,IAAIiB,CAAA,KAAM,GAAG;UACX,OAAO,GAAGvB,CAAA,CAAE,oBAAoB;YAC9BK,KAAA,EAAO1C,cAAA,CAAe0C,KAAA,EAAON,IAAA;UAC/B,IAAI;QACN;QAEA,IAAIwB,CAAA,KAAMhB,oBAAA,CAAqBY,MAAM,GAAG,GAAG;UACzC,OAAO,GAAGE,eAAA,IAAmBrB,CAAA,CAAE,iBAAiBrC,cAAA,CAAe0C,KAAA,EAAON,IAAA,GAAO;QAC/E;QAEA,OAAO,GAAGsB,eAAA,KAAoB1D,cAAA,CAAe0C,KAAA,EAAON,IAAA,GAAO;MAC7D,GACA;IAEJ,OAAO;MACLW,qBAAA,CAAsBQ,OAAO,GAAGlB,CAAA,CAAE,oBAAoB;QACpDK,KAAA,EAAO1C,cAAA,CAAeyC,WAAA,EAAaL,IAAA;MACrC;IACF;EACF,GAAG,CAACC,CAAA,EAAGO,oBAAA,EAAsBR,IAAA,EAAMK,WAAA,CAAY;EAE/C,oBACEoB,KAAA,CAAC;IAAIC,SAAA,EAAWxC,SAAA;4BACduC,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGxC,SAAA,QAAiB;8BAClCyC,IAAA,CAACvD,UAAA,O,aACDuD,IAAA,CAAC9C,YAAA;QACC+C,SAAA,EAAW7B,UAAA,IAAc,UAAUA,UAAA,GAAaA,UAAA,EAAYQ,IAAA,GAAO;QACnEsB,YAAA,EAAeC,MAAA;UACb,OAAO,KAAKjC,kBAAA,CAAmBiC,MAAA;QACjC;QACA;QACAC,aAAA,EAAejC,KAAA;QAEfQ,KAAA,EAAOK,qBAAA,CAAsBQ;SADxB5B,cAAA,G,aAGPoC,IAAA,CAAC;QAAID,SAAA,EAAW,GAAGxC,SAAA,WAAoB;kBACrC,aAAAuC,KAAA,CAAC;UAAIC,SAAA,EAAW,GAAGxC,SAAA,gBAAyB;qBACzC,CAACkB,UAAA,iBACAqB,KAAA,CAAC5D,KAAA,CAAMC,QAAQ;uBACZuB,aAAA,IAAiBA,aAAA,EACjB,CAACI,eAAA,iBACAgC,KAAA,CAAC3D,QAAA;sCACC6D,IAAA,CAACjD,QAAA;gBAASsD,UAAA,EAAY1C;+BACtBqC,IAAA,CAAC/C,WAAA;gBAAYoD,UAAA,EAAY1C;+BACzBqC,IAAA,CAAC7C,aAAA;gBAAckD,UAAA,EAAY1C;;gBAG9B,CAACE,iBAAA,iBAAqBmC,IAAA,CAAClD,UAAA;cAAWuD,UAAA,EAAY1C;;cAGlDI,aAAA,iBACCiC,IAAA,CAAChD,IAAA;YACC,iBAAe,GAAGO,SAAA,UAAmB;YACrC,iBAAe8B,aAAA,KAAkB;YACjCU,SAAA,EAAW,GAAGxC,SAAA,kBAA2B;YACzC+C,IAAA,eAAMN,IAAA,CAACxD,WAAA;cAAY+D,SAAA,EAAWlB,aAAA,KAAkB,YAAY,OAAO;;YACnEmB,OAAA,EAASA,CAAA,KACPlB,gBAAA,CAAiBD,aAAA,KAAkB,YAAY,YAAYE,SAAA;YAE7DkB,SAAA,EAAU;sBAETnC,CAAA,CAAE;2BAGP0B,IAAA,CAAChD,IAAA;YACC,iBAAe,GAAGO,SAAA,QAAiB;YACnC,iBAAe8B,aAAA,KAAkB;YACjCU,SAAA,EAAW,GAAGxC,SAAA,gBAAyB;YACvC+C,IAAA,eAAMN,IAAA,CAACxD,WAAA;cAAY+D,SAAA,EAAWlB,aAAA,KAAkB,UAAU,OAAO;;YACjEmB,OAAA,EAASA,CAAA,KAAMlB,gBAAA,CAAiBD,aAAA,KAAkB,UAAU,UAAUE,SAAA;YACtEkB,SAAA,EAAU;sBAETnC,CAAA,CAAE;cAEJN,UAAA,iBACCgC,IAAA,CAAChD,IAAA;YACC,iBAAe,GAAGO,SAAA,OAAgB;YAClC,iBAAe8B,aAAA,KAAkB;YACjCU,SAAA,EAAW,GAAGxC,SAAA,eAAwB;YACtC+C,IAAA,eAAMN,IAAA,CAACxD,WAAA;YACPgE,OAAA,EAASA,CAAA,KAAMlB,gBAAA,CAAiBD,aAAA,KAAkB,SAAS,SAASE,SAAA;YACpEkB,SAAA,EAAU;sBAETnC,CAAA,CAAE;;;;QAMZP,aAAA,iBACCiC,IAAA,CAACpD,aAAA;MACCmD,SAAA,EAAW,GAAGxC,SAAA,WAAoB;MAClCmD,MAAA,EAAQrB,aAAA,KAAkB,YAAY,SAAS;MAC/CsB,EAAA,EAAI,GAAGpD,SAAA,UAAmB;gBAE1B,aAAAyC,IAAA,CAACnD,cAAA;QAAee,cAAA,EAAgBD,gBAAA,CAAiBiD;;qBAGrDZ,IAAA,CAACpD,aAAA;MACCmD,SAAA,EAAW,GAAGxC,SAAA,SAAkB;MAChCmD,MAAA,EAAQrB,aAAA,KAAkB,UAAU,SAAS;MAC7CsB,EAAA,EAAI,GAAGpD,SAAA,QAAiB;gBAExB,aAAAyC,IAAA,CAAC5C,YAAA;QACCyD,qBAAA,EAAuBlD,gBAAA,EAAkBmD,MAAA,EAAQC,MAAA;QACjDnD,cAAA,EAAgBD,gBAAA,CAAiBiD,IAAI;QACrC7B,MAAA,EAAQpB,gBAAA,EAAkBoB,MAAA;QAE1Bd,eAAA,EAAiBA;SADZ+C,MAAA,CAAO/B,aAAA,CAAcO,OAAO,IAAI,CAACrB,KAAA,EAAOgB,KAAA;QAIhDnB,UAAA,iBACCgC,IAAA,CAACpD,aAAA;MACCmD,SAAA,EAAW,GAAGxC,SAAA,QAAiB;MAC/BmD,MAAA,EAAQrB,aAAA,KAAkB,SAAS,SAAS;MAC5CsB,EAAA,EAAI,GAAGpD,SAAA,OAAgB;gBAEvB,aAAAyC,IAAA,CAAC;kBAAE;;;;AAUb","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/NavGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/NavGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,cAAc,CAAA;AAMrB,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAID,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0DpC,CAAA"}
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import React, { useState } from 'react';
|
|
6
|
-
import AnimateHeightImport from 'react-animate-height';
|
|
7
6
|
import { ChevronIcon } from '../../icons/Chevron/index.js';
|
|
8
7
|
import { usePreferences } from '../../providers/Preferences/index.js';
|
|
9
8
|
import './index.scss';
|
|
9
|
+
import { AnimateHeight } from '../AnimateHeight/index.js';
|
|
10
10
|
import { useNav } from '../Nav/context.js';
|
|
11
|
-
const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
|
|
12
11
|
const baseClass = 'nav-group';
|
|
13
12
|
const preferencesKey = 'nav';
|
|
14
13
|
export const NavGroup = t0 => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useState","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useState","ChevronIcon","usePreferences","AnimateHeight","useNav","baseClass","preferencesKey","NavGroup","t0","$","children","isOpen","isOpenFromProps","label","collapsed","setCollapsed","animate","setAnimate","setPreference","navOpen","t1","newGroupPrefs","open","Boolean","groups","toggleCollapsed","t2","t3","t4","filter","t5","join","t6","t7","t8","t9","t10","t11","_jsxs","className","id","onClick","tabIndex","type","_jsx","direction","undefined","duration","height","Fragment"],"sources":["../../../src/elements/NavGroup/index.tsx"],"sourcesContent":["'use client'\nimport type { NavPreferences } from 'payload'\n\nimport React, { useState } from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport './index.scss'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { useNav } from '../Nav/context.js'\n\nconst baseClass = 'nav-group'\n\ntype Props = {\n children: React.ReactNode\n isOpen?: boolean\n label: string\n}\n\nconst preferencesKey = 'nav'\n\nexport const NavGroup: React.FC<Props> = ({ children, isOpen: isOpenFromProps, label }) => {\n const [collapsed, setCollapsed] = useState(\n typeof isOpenFromProps !== 'undefined' ? !isOpenFromProps : false,\n )\n\n const [animate, setAnimate] = useState(false)\n const { setPreference } = usePreferences()\n const { navOpen } = useNav()\n\n if (label) {\n const toggleCollapsed = () => {\n setAnimate(true)\n const newGroupPrefs: NavPreferences['groups'] = {}\n\n if (!newGroupPrefs?.[label]) {\n newGroupPrefs[label] = { open: Boolean(collapsed) }\n } else {\n newGroupPrefs[label].open = Boolean(collapsed)\n }\n\n void setPreference(preferencesKey, { groups: newGroupPrefs }, true)\n setCollapsed(!collapsed)\n }\n\n return (\n <div\n className={[`${baseClass}`, `${label}`, collapsed && `${baseClass}--collapsed`]\n .filter(Boolean)\n .join(' ')}\n id={`nav-group-${label}`}\n >\n <button\n className={[\n `${baseClass}__toggle`,\n `${baseClass}__toggle--${collapsed ? 'collapsed' : 'open'}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={toggleCollapsed}\n tabIndex={!navOpen ? -1 : 0}\n type=\"button\"\n >\n <div className={`${baseClass}__label`}>{label}</div>\n <div className={`${baseClass}__indicator`}>\n <ChevronIcon\n className={`${baseClass}__indicator`}\n direction={!collapsed ? 'up' : undefined}\n />\n </div>\n </button>\n <AnimateHeight duration={animate ? 200 : 0} height={collapsed ? 0 : 'auto'}>\n <div className={`${baseClass}__content`}>{children}</div>\n </AnimateHeight>\n </div>\n )\n }\n\n return <React.Fragment>{children}</React.Fragment>\n}\n"],"mappings":"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","ignoreList":[]}
|