@payloadcms/ui 3.91.0-internal.6e3dc85 → 3.91.0-internal.c1569dc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -1
  2. package/dist/elements/FolderView/FolderFileTable/index.js +12 -2
  3. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  4. package/dist/elements/FolderView/FolderFileTable/index.scss +14 -0
  5. package/dist/elements/Thumbnail/index.d.ts +1 -0
  6. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  7. package/dist/elements/Thumbnail/index.js +2 -0
  8. package/dist/elements/Thumbnail/index.js.map +1 -1
  9. package/dist/exports/client/index.d.ts +2 -1
  10. package/dist/exports/client/index.d.ts.map +1 -1
  11. package/dist/exports/client/index.js +24 -24
  12. package/dist/exports/client/index.js.map +4 -4
  13. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  14. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +12 -4
  15. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  16. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  17. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  18. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  19. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  20. package/dist/providers/Auth/AuthSessionDebug/index.scss +49 -0
  21. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  22. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  23. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  24. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  25. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  26. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  27. package/dist/providers/Auth/authSessionRequests.js +119 -0
  28. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  29. package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
  30. package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
  31. package/dist/providers/Auth/index.d.ts +3 -57
  32. package/dist/providers/Auth/index.d.ts.map +1 -1
  33. package/dist/providers/Auth/index.js +290 -135
  34. package/dist/providers/Auth/index.js.map +1 -1
  35. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  36. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  37. package/dist/providers/Auth/sessionActivity.js +49 -0
  38. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  39. package/dist/providers/Auth/sessionActivity.spec.js +44 -0
  40. package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
  41. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  42. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  43. package/dist/providers/Auth/sessionTiming.js +18 -0
  44. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  45. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  46. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  47. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  48. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  49. package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
  50. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
  51. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  52. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  53. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  54. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  55. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  56. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  57. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  58. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  59. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  60. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  61. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  62. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  63. package/dist/providers/Auth/types.d.ts +70 -0
  64. package/dist/providers/Auth/types.d.ts.map +1 -0
  65. package/dist/providers/Auth/types.js +2 -0
  66. package/dist/providers/Auth/types.js.map +1 -0
  67. package/dist/providers/Auth/types.spec.js +8 -0
  68. package/dist/providers/Auth/types.spec.js.map +1 -0
  69. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  70. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  71. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  72. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  73. package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
  74. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
  75. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  76. package/dist/providers/UploadHandlers/index.js +24 -59
  77. package/dist/providers/UploadHandlers/index.js.map +1 -1
  78. package/dist/providers/UploadHandlers/index.spec.js +63 -0
  79. package/dist/providers/UploadHandlers/index.spec.js.map +1 -0
  80. package/dist/styles.css +1 -1
  81. package/package.json +5 -5
@@ -1,63 +1,31 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import React, { useState } from 'react';
4
+ import React, { useCallback, useMemo, useRef } from 'react';
6
5
  const Context = /*#__PURE__*/React.createContext(null);
7
- export const UploadHandlersProvider = t0 => {
8
- const $ = _c(6);
9
- const {
10
- children
11
- } = t0;
12
- const [uploadHandlers, setUploadHandlers] = useState(_temp);
13
- let t1;
14
- if ($[0] !== uploadHandlers) {
15
- t1 = t2 => {
16
- const {
17
- collectionSlug
18
- } = t2;
19
- return uploadHandlers.get(collectionSlug);
20
- };
21
- $[0] = uploadHandlers;
22
- $[1] = t1;
23
- } else {
24
- t1 = $[1];
25
- }
26
- const getUploadHandler = t1;
27
- let t2;
28
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
29
- t2 = t3 => {
30
- const {
31
- collectionSlug: collectionSlug_0,
32
- handler
33
- } = t3;
34
- setUploadHandlers(uploadHandlers_0 => {
35
- const clone = new Map(uploadHandlers_0);
36
- clone.set(collectionSlug_0, handler);
37
- return clone;
38
- });
39
- };
40
- $[2] = t2;
41
- } else {
42
- t2 = $[2];
43
- }
44
- const setUploadHandler = t2;
45
- let t3;
46
- if ($[3] !== children || $[4] !== getUploadHandler) {
47
- t3 = _jsx(Context, {
48
- value: {
49
- getUploadHandler,
50
- setUploadHandler
51
- },
52
- children
53
- });
54
- $[3] = children;
55
- $[4] = getUploadHandler;
56
- $[5] = t3;
57
- } else {
58
- t3 = $[5];
59
- }
60
- return t3;
6
+ export const UploadHandlersProvider = ({
7
+ children
8
+ }) => {
9
+ const uploadHandlers = useRef(new Map());
10
+ const getUploadHandler = useCallback(({
11
+ collectionSlug
12
+ }) => {
13
+ return uploadHandlers.current.get(collectionSlug);
14
+ }, []);
15
+ const setUploadHandler = useCallback(({
16
+ collectionSlug: collectionSlug_0,
17
+ handler
18
+ }) => {
19
+ uploadHandlers.current.set(collectionSlug_0, handler);
20
+ }, []);
21
+ const value = useMemo(() => ({
22
+ getUploadHandler,
23
+ setUploadHandler
24
+ }), [getUploadHandler, setUploadHandler]);
25
+ return /*#__PURE__*/_jsx(Context, {
26
+ value: value,
27
+ children: children
28
+ });
61
29
  };
62
30
  export const useUploadHandlers = () => {
63
31
  const context = React.use(Context);
@@ -66,7 +34,4 @@ export const useUploadHandlers = () => {
66
34
  }
67
35
  return context;
68
36
  };
69
- function _temp() {
70
- return new Map();
71
- }
72
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useState","Context","createContext","UploadHandlersProvider","t0","$","children","uploadHandlers","setUploadHandlers","_temp","t1","t2","collectionSlug","get","getUploadHandler","Symbol","for","t3","collectionSlug_0","handler","uploadHandlers_0","clone","Map","set","setUploadHandler","_jsx","value","useUploadHandlers","context","use","Error"],"sources":["../../../src/providers/UploadHandlers/index.tsx"],"sourcesContent":["'use client'\nimport type { UploadCollectionSlug } from 'payload'\n\nimport React, { useState } from 'react'\n\ntype UploadHandler = (args: {\n docPrefix?: string\n file: File\n updateFilename: (filename: string) => void\n}) => Promise<unknown>\n\nexport type UploadHandlersContext = {\n getUploadHandler: (args: { collectionSlug: UploadCollectionSlug }) => null | UploadHandler\n setUploadHandler: (args: {\n collectionSlug: UploadCollectionSlug\n handler: UploadHandler\n }) => unknown\n}\n\nconst Context = React.createContext<null | UploadHandlersContext>(null)\n\nexport const UploadHandlersProvider = ({ children }) => {\n const [uploadHandlers, setUploadHandlers] = useState<Map<UploadCollectionSlug, UploadHandler>>(\n () => new Map(),\n )\n\n const getUploadHandler: UploadHandlersContext['getUploadHandler'] = ({ collectionSlug }) => {\n return uploadHandlers.get(collectionSlug)\n }\n\n const setUploadHandler: UploadHandlersContext['setUploadHandler'] = ({\n collectionSlug,\n handler,\n }) => {\n setUploadHandlers((uploadHandlers) => {\n const clone = new Map(uploadHandlers)\n clone.set(collectionSlug, handler)\n return clone\n })\n }\n\n return <Context value={{ getUploadHandler, setUploadHandler }}>{children}</Context>\n}\n\nexport const useUploadHandlers = (): UploadHandlersContext => {\n const context = React.use(Context)\n\n if (context === null) {\n throw new Error('useUploadHandlers must be used within UploadHandlersProvider')\n }\n\n return context\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAgBhC,MAAMC,OAAA,gBAAUF,KAAA,CAAMG,aAAa,CAA+B;AAElE,OAAO,MAAMC,sBAAA,GAAyBC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ;EAAA,IAAAF,EAAY;EACjD,OAAAG,cAAA,EAAAC,iBAAA,IAA4CR,QAAA,CAAAS,KAChC;EAAA,IAAAC,EAAA;EAAA,IAAAL,CAAA,QAAAE,cAAA;IAGwDG,EAAA,GAAAC,EAAA;MAAC;QAAAC;MAAA,IAAAD,EAAkB;MAAA,OAC9EJ,cAAA,CAAAM,GAAA,CAAmBD,cAAA;IAAA;IAC5BP,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAFA,MAAAS,gBAAA,GAAoEJ,EAEpE;EAAA,IAAAC,EAAA;EAAA,IAAAN,CAAA,QAAAU,MAAA,CAAAC,GAAA;IAEoEL,EAAA,GAAAM,EAAA;MAAC;QAAAL,cAAA,EAAAM,gBAAA;QAAAC;MAAA,IAAAF,EAGpE;MACCT,iBAAA,CAAAY,gBAAA;QACE,MAAAC,KAAA,OAAAC,GAAA,CAAsBf,gBAAA;QACtBc,KAAA,CAAAE,GAAA,CAAUX,gBAAA,EAAgBO,OAAA;QAAA,OACnBE,KAAA;MAAA,CACT;IAAA;IACFhB,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EATA,MAAAmB,gBAAA,GAAoEb,EASpE;EAAA,IAAAM,EAAA;EAAA,IAAAZ,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAS,gBAAA;IAEOG,EAAA,GAAAQ,IAAA,CAAAxB,OAAA;MAAAyB,KAAA;QAAAZ,gBAAA;QAAAU;MAAA;MAAAlB;IAAA,C;;;;;;;SAAAW,E;CACT;AAEA,OAAO,MAAMU,iBAAA,GAAoBA,CAAA;EAC/B,MAAMC,OAAA,GAAU7B,KAAA,CAAM8B,GAAG,CAAC5B,OAAA;EAE1B,IAAI2B,OAAA,KAAY,MAAM;IACpB,MAAM,IAAIE,KAAA,CAAM;EAClB;EAEA,OAAOF,OAAA;AACT;AA/BsC,SAAAnB,MAAA;EAAA,WAAAa,GAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useMemo","useRef","Context","createContext","UploadHandlersProvider","children","uploadHandlers","Map","getUploadHandler","collectionSlug","current","get","setUploadHandler","handler","set","value","_jsx","useUploadHandlers","context","use","Error"],"sources":["../../../src/providers/UploadHandlers/index.tsx"],"sourcesContent":["'use client'\nimport type { UploadCollectionSlug } from 'payload'\n\nimport React, { useCallback, useMemo, useRef } from 'react'\n\ntype UploadHandler = (args: {\n docPrefix?: string\n file: File\n updateFilename: (filename: string) => void\n}) => Promise<unknown>\n\nexport type UploadHandlersContext = {\n getUploadHandler: (args: { collectionSlug: UploadCollectionSlug }) => null | UploadHandler\n setUploadHandler: (args: {\n collectionSlug: UploadCollectionSlug\n handler: UploadHandler\n }) => unknown\n}\n\nconst Context = React.createContext<null | UploadHandlersContext>(null)\n\nexport const UploadHandlersProvider = ({ children }) => {\n const uploadHandlers = useRef<Map<UploadCollectionSlug, UploadHandler>>(new Map())\n\n const getUploadHandler = useCallback<UploadHandlersContext['getUploadHandler']>(\n ({ collectionSlug }) => {\n return uploadHandlers.current.get(collectionSlug)\n },\n [],\n )\n\n const setUploadHandler = useCallback<UploadHandlersContext['setUploadHandler']>(\n ({ collectionSlug, handler }) => {\n uploadHandlers.current.set(collectionSlug, handler)\n },\n [],\n )\n\n const value = useMemo<UploadHandlersContext>(\n () => ({ getUploadHandler, setUploadHandler }),\n [getUploadHandler, setUploadHandler],\n )\n\n return <Context value={value}>{children}</Context>\n}\n\nexport const useUploadHandlers = (): UploadHandlersContext => {\n const context = React.use(Context)\n\n if (context === null) {\n throw new Error('useUploadHandlers must be used within UploadHandlersProvider')\n }\n\n return context\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,IAASC,WAAW,EAAEC,OAAO,EAAEC,MAAM,QAAQ;AAgBpD,MAAMC,OAAA,gBAAUJ,KAAA,CAAMK,aAAa,CAA+B;AAElE,OAAO,MAAMC,sBAAA,GAAyBA,CAAC;EAAEC;AAAQ,CAAE;EACjD,MAAMC,cAAA,GAAiBL,MAAA,CAAiD,IAAIM,GAAA;EAE5E,MAAMC,gBAAA,GAAmBT,WAAA,CACvB,CAAC;IAAEU;EAAc,CAAE;IACjB,OAAOH,cAAA,CAAeI,OAAO,CAACC,GAAG,CAACF,cAAA;EACpC,GACA,EAAE;EAGJ,MAAMG,gBAAA,GAAmBb,WAAA,CACvB,CAAC;IAAEU,cAAc,EAAdA,gBAAc;IAAEI;EAAO,CAAE;IAC1BP,cAAA,CAAeI,OAAO,CAACI,GAAG,CAACL,gBAAA,EAAgBI,OAAA;EAC7C,GACA,EAAE;EAGJ,MAAME,KAAA,GAAQf,OAAA,CACZ,OAAO;IAAEQ,gBAAA;IAAkBI;EAAiB,IAC5C,CAACJ,gBAAA,EAAkBI,gBAAA,CAAiB;EAGtC,oBAAOI,IAAA,CAACd,OAAA;IAAQa,KAAA,EAAOA,KAAA;cAAQV;;AACjC;AAEA,OAAO,MAAMY,iBAAA,GAAoBA,CAAA;EAC/B,MAAMC,OAAA,GAAUpB,KAAA,CAAMqB,GAAG,CAACjB,OAAA;EAE1B,IAAIgB,OAAA,KAAY,MAAM;IACpB,MAAM,IAAIE,KAAA,CAAM;EAClB;EAEA,OAAOF,OAAA;AACT","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ // @vitest-environment jsdom
2
+ import React, { act, useEffect, useEffectEvent } from 'react';
3
+ import { createRoot } from 'react-dom/client';
4
+ import { describe, expect, it, vi } from 'vitest';
5
+ import { UploadHandlersProvider, useUploadHandlers } from './index.js';
6
+ const reactActEnvironment = globalThis;
7
+ reactActEnvironment.IS_REACT_ACT_ENVIRONMENT = true;
8
+ describe('UploadHandlersProvider', () => {
9
+ it('registers many upload handlers without rerendering context consumers', async () => {
10
+ const collectionSlugs = Array.from({
11
+ length: 50
12
+ }, (_, index) => `upload-${index}`);
13
+ const container = document.createElement('div');
14
+ const handler = vi.fn(async () => undefined);
15
+ const root = createRoot(container);
16
+ let context;
17
+ let contextConsumerRenderCount = 0;
18
+ document.body.appendChild(container);
19
+ const RegisterUploadHandler = ({
20
+ collectionSlug
21
+ }) => {
22
+ const {
23
+ setUploadHandler
24
+ } = useUploadHandlers();
25
+ const registerUploadHandler = useEffectEvent(() => {
26
+ setUploadHandler({
27
+ collectionSlug,
28
+ handler
29
+ });
30
+ });
31
+ useEffect(() => {
32
+ registerUploadHandler();
33
+ }, []);
34
+ return null;
35
+ };
36
+ const ContextConsumer = () => {
37
+ context = useUploadHandlers();
38
+ contextConsumerRenderCount++;
39
+ return null;
40
+ };
41
+ try {
42
+ await act(async () => {
43
+ root.render(React.createElement(UploadHandlersProvider, null, ...collectionSlugs.map(collectionSlug => React.createElement(RegisterUploadHandler, {
44
+ collectionSlug,
45
+ key: collectionSlug
46
+ })), React.createElement(ContextConsumer)));
47
+ });
48
+ expect(contextConsumerRenderCount).toBe(1);
49
+ expect(context).toBeDefined();
50
+ for (const collectionSlug of collectionSlugs) {
51
+ expect(context?.getUploadHandler({
52
+ collectionSlug
53
+ })).toBe(handler);
54
+ }
55
+ } finally {
56
+ await act(async () => {
57
+ root.unmount();
58
+ });
59
+ container.remove();
60
+ }
61
+ });
62
+ });
63
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","names":["React","act","useEffect","useEffectEvent","createRoot","describe","expect","it","vi","UploadHandlersProvider","useUploadHandlers","reactActEnvironment","globalThis","IS_REACT_ACT_ENVIRONMENT","collectionSlugs","Array","from","length","_","index","container","document","createElement","handler","fn","undefined","root","context","contextConsumerRenderCount","body","appendChild","RegisterUploadHandler","collectionSlug","setUploadHandler","registerUploadHandler","ContextConsumer","render","map","key","toBe","toBeDefined","getUploadHandler","unmount","remove"],"sources":["../../../src/providers/UploadHandlers/index.spec.ts"],"sourcesContent":["// @vitest-environment jsdom\n\nimport type { UploadCollectionSlug } from 'payload'\n\nimport React, { act, useEffect, useEffectEvent } from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { describe, expect, it, vi } from 'vitest'\n\nimport type { UploadHandlersContext } from './index.js'\n\nimport { UploadHandlersProvider, useUploadHandlers } from './index.js'\n\nconst reactActEnvironment = globalThis as typeof globalThis & {\n IS_REACT_ACT_ENVIRONMENT: boolean\n}\n\nreactActEnvironment.IS_REACT_ACT_ENVIRONMENT = true\n\ndescribe('UploadHandlersProvider', () => {\n it('registers many upload handlers without rerendering context consumers', async () => {\n const collectionSlugs = Array.from(\n { length: 50 },\n (_, index) => `upload-${index}` as UploadCollectionSlug,\n )\n const container = document.createElement('div')\n const handler = vi.fn(async () => undefined)\n const root = createRoot(container)\n let context: undefined | UploadHandlersContext\n let contextConsumerRenderCount = 0\n\n document.body.appendChild(container)\n\n const RegisterUploadHandler = ({\n collectionSlug,\n }: {\n collectionSlug: UploadCollectionSlug\n }) => {\n const { setUploadHandler } = useUploadHandlers()\n const registerUploadHandler = useEffectEvent(() => {\n setUploadHandler({ collectionSlug, handler })\n })\n\n useEffect(() => {\n registerUploadHandler()\n }, [])\n\n return null\n }\n\n const ContextConsumer = () => {\n context = useUploadHandlers()\n contextConsumerRenderCount++\n\n return null\n }\n\n try {\n await act(async () => {\n root.render(\n React.createElement(\n UploadHandlersProvider,\n null,\n ...collectionSlugs.map((collectionSlug) =>\n React.createElement(RegisterUploadHandler, {\n collectionSlug,\n key: collectionSlug,\n }),\n ),\n React.createElement(ContextConsumer),\n ),\n )\n })\n\n expect(contextConsumerRenderCount).toBe(1)\n expect(context).toBeDefined()\n\n for (const collectionSlug of collectionSlugs) {\n expect(context?.getUploadHandler({ collectionSlug })).toBe(handler)\n }\n } finally {\n await act(async () => {\n root.unmount()\n })\n container.remove()\n }\n })\n})\n"],"mappings":"AAAA;AAIA,OAAOA,KAAA,IAASC,GAAG,EAAEC,SAAS,EAAEC,cAAc,QAAQ;AACtD,SAASC,UAAU,QAAQ;AAC3B,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ;AAIzC,SAASC,sBAAsB,EAAEC,iBAAiB,QAAQ;AAE1D,MAAMC,mBAAA,GAAsBC,UAAA;AAI5BD,mBAAA,CAAoBE,wBAAwB,GAAG;AAE/CR,QAAA,CAAS,0BAA0B;EACjCE,EAAA,CAAG,wEAAwE;IACzE,MAAMO,eAAA,GAAkBC,KAAA,CAAMC,IAAI,CAChC;MAAEC,MAAA,EAAQ;IAAG,GACb,CAACC,CAAA,EAAGC,KAAA,KAAU,UAAUA,KAAA,EAAO;IAEjC,MAAMC,SAAA,GAAYC,QAAA,CAASC,aAAa,CAAC;IACzC,MAAMC,OAAA,GAAUf,EAAA,CAAGgB,EAAE,CAAC,YAAYC,SAAA;IAClC,MAAMC,IAAA,GAAOtB,UAAA,CAAWgB,SAAA;IACxB,IAAIO,OAAA;IACJ,IAAIC,0BAAA,GAA6B;IAEjCP,QAAA,CAASQ,IAAI,CAACC,WAAW,CAACV,SAAA;IAE1B,MAAMW,qBAAA,GAAwBA,CAAC;MAC7BC;IAAc,CAGf;MACC,MAAM;QAAEC;MAAgB,CAAE,GAAGvB,iBAAA;MAC7B,MAAMwB,qBAAA,GAAwB/B,cAAA,CAAe;QAC3C8B,gBAAA,CAAiB;UAAED,cAAA;UAAgBT;QAAQ;MAC7C;MAEArB,SAAA,CAAU;QACRgC,qBAAA;MACF,GAAG,EAAE;MAEL,OAAO;IACT;IAEA,MAAMC,eAAA,GAAkBA,CAAA;MACtBR,OAAA,GAAUjB,iBAAA;MACVkB,0BAAA;MAEA,OAAO;IACT;IAEA,IAAI;MACF,MAAM3B,GAAA,CAAI;QACRyB,IAAA,CAAKU,MAAM,CACTpC,KAAA,CAAMsB,aAAa,CACjBb,sBAAA,EACA,SACGK,eAAA,CAAgBuB,GAAG,CAAEL,cAAA,IACtBhC,KAAA,CAAMsB,aAAa,CAACS,qBAAA,EAAuB;UACzCC,cAAA;UACAM,GAAA,EAAKN;QACP,KAEFhC,KAAA,CAAMsB,aAAa,CAACa,eAAA;MAG1B;MAEA7B,MAAA,CAAOsB,0BAAA,EAA4BW,IAAI,CAAC;MACxCjC,MAAA,CAAOqB,OAAA,EAASa,WAAW;MAE3B,KAAK,MAAMR,cAAA,IAAkBlB,eAAA,EAAiB;QAC5CR,MAAA,CAAOqB,OAAA,EAASc,gBAAA,CAAiB;UAAET;QAAe,IAAIO,IAAI,CAAChB,OAAA;MAC7D;IACF,UAAU;MACR,MAAMtB,GAAA,CAAI;QACRyB,IAAA,CAAKgB,OAAO;MACd;MACAtB,SAAA,CAAUuB,MAAM;IAClB;EACF;AACF","ignoreList":[]}