@payloadcms/richtext-lexical 3.2.2 → 3.2.3-canary.3e78927

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 (103) hide show
  1. package/dist/exports/client/{Field-JP7H7AZE.js → Field-KHGUSLMB.js} +2 -2
  2. package/dist/exports/client/{Field-JP7H7AZE.js.map → Field-KHGUSLMB.js.map} +2 -2
  3. package/dist/exports/client/{RelationshipComponent-XOQBVKA3.js → RelationshipComponent-F77EQHRG.js} +2 -2
  4. package/dist/exports/client/bundled.css +1 -1
  5. package/dist/exports/client/chunk-4J2ONJMB.js +2 -0
  6. package/dist/exports/client/chunk-4J2ONJMB.js.map +7 -0
  7. package/dist/exports/client/{chunk-XCEM47RI.js → chunk-AXXPUMFU.js} +2 -2
  8. package/dist/exports/client/{chunk-5PBXL4HT.js → chunk-F26IQ5RE.js} +2 -2
  9. package/dist/exports/client/{chunk-5PBXL4HT.js.map → chunk-F26IQ5RE.js.map} +1 -1
  10. package/dist/exports/client/chunk-H3D3IU3G.js +2 -0
  11. package/dist/exports/client/{chunk-DOK5S7LE.js.map → chunk-H3D3IU3G.js.map} +2 -2
  12. package/dist/exports/client/{chunk-2CYU43GM.js → chunk-INBEEENE.js} +2 -2
  13. package/dist/exports/client/{chunk-2CYU43GM.js.map → chunk-INBEEENE.js.map} +1 -1
  14. package/dist/exports/client/{chunk-ZTAS32RX.js → chunk-PGMIO4IN.js} +2 -2
  15. package/dist/exports/client/{chunk-2L2Z4JHF.js → chunk-XOABLBHB.js} +2 -2
  16. package/dist/exports/client/{chunk-2L2Z4JHF.js.map → chunk-XOABLBHB.js.map} +1 -1
  17. package/dist/exports/client/{component-D6PKVJ2K.js → component-NSAU5Y76.js} +2 -2
  18. package/dist/exports/client/component-SX36AJXS.js +2 -0
  19. package/dist/exports/client/{component-ANB7VZLA.js.map → component-SX36AJXS.js.map} +2 -2
  20. package/dist/exports/client/componentInline-B5YNOX32.js +2 -0
  21. package/dist/exports/client/index.js +17 -17
  22. package/dist/exports/client/index.js.map +2 -2
  23. package/dist/features/blocks/client/component/BlockContent.js +8 -8
  24. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  25. package/dist/features/blocks/client/component/components/BlockCollapsible.js +5 -5
  26. package/dist/features/blocks/client/component/components/BlockCollapsible.js.map +1 -1
  27. package/dist/features/blocks/client/componentInline/index.js +1 -1
  28. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  29. package/dist/features/blocks/client/plugin/index.js +7 -4
  30. package/dist/features/blocks/client/plugin/index.js.map +1 -1
  31. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js +3 -3
  32. package/dist/features/experimental_table/client/plugins/TableActionMenuPlugin/index.js.map +1 -1
  33. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js +3 -3
  34. package/dist/features/experimental_table/client/plugins/TableCellResizerPlugin/index.js.map +1 -1
  35. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +6 -6
  36. package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
  37. package/dist/features/experimental_table/client/utils/useDebounce.js +3 -3
  38. package/dist/features/experimental_table/client/utils/useDebounce.js.map +1 -1
  39. package/dist/features/horizontalRule/client/component/index.js +19 -18
  40. package/dist/features/horizontalRule/client/component/index.js.map +1 -1
  41. package/dist/features/horizontalRule/client/plugin/index.js +13 -12
  42. package/dist/features/horizontalRule/client/plugin/index.js.map +1 -1
  43. package/dist/features/indent/client/plugins/index.js +3 -3
  44. package/dist/features/indent/client/plugins/index.js.map +1 -1
  45. package/dist/features/link/client/plugins/autoLink/index.js +3 -3
  46. package/dist/features/link/client/plugins/autoLink/index.js.map +1 -1
  47. package/dist/features/link/client/plugins/link/index.js +9 -5
  48. package/dist/features/link/client/plugins/link/index.js.map +1 -1
  49. package/dist/features/relationship/client/drawer/index.js +13 -13
  50. package/dist/features/relationship/client/drawer/index.js.map +1 -1
  51. package/dist/features/relationship/client/plugins/index.js +23 -19
  52. package/dist/features/relationship/client/plugins/index.js.map +1 -1
  53. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js +19 -18
  54. package/dist/features/relationship/client/utils/EnabledRelationshipsCondition.js.map +1 -1
  55. package/dist/features/toolbars/fixed/client/Toolbar/index.js +39 -31
  56. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  57. package/dist/features/toolbars/inline/client/Toolbar/index.js +31 -23
  58. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  59. package/dist/features/toolbars/shared/ToolbarButton/index.js +27 -26
  60. package/dist/features/toolbars/shared/ToolbarButton/index.js.map +1 -1
  61. package/dist/features/toolbars/shared/ToolbarDropdown/index.js +36 -36
  62. package/dist/features/toolbars/shared/ToolbarDropdown/index.js.map +1 -1
  63. package/dist/features/upload/client/drawer/index.js +3 -3
  64. package/dist/features/upload/client/drawer/index.js.map +1 -1
  65. package/dist/features/upload/client/plugin/index.js +6 -3
  66. package/dist/features/upload/client/plugin/index.js.map +1 -1
  67. package/dist/field/bundled.css +1 -1
  68. package/dist/field/index.js +7 -7
  69. package/dist/field/index.js.map +1 -1
  70. package/dist/getDefaultSanitizedEditorConfig.d.ts.map +1 -1
  71. package/dist/getDefaultSanitizedEditorConfig.js +2 -3
  72. package/dist/getDefaultSanitizedEditorConfig.js.map +1 -1
  73. package/dist/lexical/LexicalEditor.js +15 -15
  74. package/dist/lexical/LexicalEditor.js.map +1 -1
  75. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +17 -17
  76. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js.map +1 -1
  77. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +17 -17
  78. package/dist/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js.map +1 -1
  79. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +4 -4
  80. package/dist/lexical/plugins/SlashMenu/useMenuTriggerMatch.js.map +1 -1
  81. package/dist/lexical/plugins/TextPlugin/index.js +3 -3
  82. package/dist/lexical/plugins/TextPlugin/index.js.map +1 -1
  83. package/dist/lexical/ui/ContentEditable.js +3 -3
  84. package/dist/lexical/ui/ContentEditable.js.map +1 -1
  85. package/dist/utilities/fieldsDrawer/Drawer.js +11 -11
  86. package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
  87. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +10 -10
  88. package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -1
  89. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +14 -14
  90. package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -1
  91. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +11 -11
  92. package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -1
  93. package/package.json +15 -15
  94. package/dist/exports/client/chunk-DOK5S7LE.js +0 -2
  95. package/dist/exports/client/chunk-WHL7AV5U.js +0 -2
  96. package/dist/exports/client/chunk-WHL7AV5U.js.map +0 -7
  97. package/dist/exports/client/component-ANB7VZLA.js +0 -2
  98. package/dist/exports/client/componentInline-GXYBWVCR.js +0 -2
  99. /package/dist/exports/client/{RelationshipComponent-XOQBVKA3.js.map → RelationshipComponent-F77EQHRG.js.map} +0 -0
  100. /package/dist/exports/client/{chunk-XCEM47RI.js.map → chunk-AXXPUMFU.js.map} +0 -0
  101. /package/dist/exports/client/{chunk-ZTAS32RX.js.map → chunk-PGMIO4IN.js.map} +0 -0
  102. /package/dist/exports/client/{component-D6PKVJ2K.js.map → component-NSAU5Y76.js.map} +0 -0
  103. /package/dist/exports/client/{componentInline-GXYBWVCR.js.map → componentInline-B5YNOX32.js.map} +0 -0
@@ -33,7 +33,7 @@ export const RichTextField = props => {
33
33
  const [finalSanitizedEditorConfig, setFinalSanitizedEditorConfig] = useState(null);
34
34
  let t3;
35
35
  let t4;
36
- if ($[2] !== finalSanitizedEditorConfig || $[3] !== clientFeatures || $[4] !== lexicalEditorConfig || $[5] !== featureClientSchemaMap || $[6] !== field || $[7] !== schemaPath || $[8] !== admin) {
36
+ if ($[2] !== admin || $[3] !== clientFeatures || $[4] !== featureClientSchemaMap || $[5] !== field || $[6] !== finalSanitizedEditorConfig || $[7] !== lexicalEditorConfig || $[8] !== schemaPath) {
37
37
  t3 = () => {
38
38
  if (finalSanitizedEditorConfig) {
39
39
  return;
@@ -58,13 +58,13 @@ export const RichTextField = props => {
58
58
  setFinalSanitizedEditorConfig(sanitizeClientEditorConfig(resolvedClientFeatures, finalLexicalEditorConfig, admin));
59
59
  };
60
60
  t4 = [lexicalEditorConfig, admin, finalSanitizedEditorConfig, clientFeatures, featureClientSchemaMap, field, schemaPath];
61
- $[2] = finalSanitizedEditorConfig;
61
+ $[2] = admin;
62
62
  $[3] = clientFeatures;
63
- $[4] = lexicalEditorConfig;
64
- $[5] = featureClientSchemaMap;
65
- $[6] = field;
66
- $[7] = schemaPath;
67
- $[8] = admin;
63
+ $[4] = featureClientSchemaMap;
64
+ $[5] = field;
65
+ $[6] = finalSanitizedEditorConfig;
66
+ $[7] = lexicalEditorConfig;
67
+ $[8] = schemaPath;
68
68
  $[9] = t3;
69
69
  $[10] = t4;
70
70
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","ShimmerEffect","React","lazy","Suspense","useEffect","useState","defaultEditorLexicalConfig","loadClientFeatures","sanitizeClientEditorConfig","RichTextEditor","then","module","default","RichText","RichTextField","props","$","admin","t0","clientFeatures","featureClientSchemaMap","field","lexicalEditorConfig","t1","schemaPath","t2","undefined","finalSanitizedEditorConfig","setFinalSanitizedEditorConfig","t3","t4","featureProvidersLocal","_featureKey","clientFeature","Object","entries","clientFeatureProvider","push","clientFeatureProps","finalLexicalEditorConfig","resolvedClientFeatures","name","unSanitizedEditorConfig","features","lexical","t5","_jsx","fallback","height","editorConfig"],"sources":["../../src/field/index.tsx"],"sourcesContent":["'use client'\n\nimport type { RichTextFieldClient } from 'payload'\n\nimport { ShimmerEffect } from '@payloadcms/ui'\nimport React, { lazy, Suspense, useEffect, useState } from 'react'\n\nimport type { FeatureProviderClient } from '../features/typesClient.js'\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\nimport type { LexicalRichTextFieldProps } from '../types.js'\n\nimport { defaultEditorLexicalConfig } from '../lexical/config/client/default.js'\nimport { loadClientFeatures } from '../lexical/config/client/loader.js'\nimport { sanitizeClientEditorConfig } from '../lexical/config/client/sanitize.js'\n\nconst RichTextEditor = lazy(() =>\n import('./Field.js').then((module) => ({ default: module.RichText })),\n)\n\nexport const RichTextField: React.FC<LexicalRichTextFieldProps> = (props) => {\n const {\n admin = {},\n clientFeatures,\n featureClientSchemaMap,\n field,\n lexicalEditorConfig = defaultEditorLexicalConfig,\n schemaPath,\n } = props\n\n const [finalSanitizedEditorConfig, setFinalSanitizedEditorConfig] =\n useState<null | SanitizedClientEditorConfig>(null)\n\n useEffect(() => {\n if (finalSanitizedEditorConfig) {\n return\n }\n\n const featureProvidersLocal: FeatureProviderClient<any, any>[] = []\n for (const [_featureKey, clientFeature] of Object.entries(clientFeatures)) {\n if (!clientFeature.clientFeatureProvider) {\n continue\n }\n featureProvidersLocal.push(\n clientFeature.clientFeatureProvider(clientFeature.clientFeatureProps),\n ) // Execute the clientFeatureProvider function here, as the server cannot execute functions imported from use client files\n }\n\n const finalLexicalEditorConfig = lexicalEditorConfig\n ? lexicalEditorConfig\n : defaultEditorLexicalConfig\n\n const resolvedClientFeatures = loadClientFeatures({\n featureClientSchemaMap,\n field: field as RichTextFieldClient,\n schemaPath: schemaPath ?? field.name,\n unSanitizedEditorConfig: {\n features: featureProvidersLocal,\n lexical: finalLexicalEditorConfig,\n },\n })\n\n setFinalSanitizedEditorConfig(\n sanitizeClientEditorConfig(resolvedClientFeatures, finalLexicalEditorConfig, admin),\n )\n }, [\n lexicalEditorConfig,\n admin,\n finalSanitizedEditorConfig,\n clientFeatures,\n featureClientSchemaMap,\n field,\n schemaPath,\n ]) // TODO: Optimize this and use useMemo for this in the future. This might break sub-richtext-blocks from the blocks feature. Need to investigate\n\n return (\n <Suspense fallback={<ShimmerEffect height=\"35vh\" />}>\n {finalSanitizedEditorConfig && (\n <RichTextEditor {...props} editorConfig={finalSanitizedEditorConfig} />\n )}\n </Suspense>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","ShimmerEffect","React","lazy","Suspense","useEffect","useState","defaultEditorLexicalConfig","loadClientFeatures","sanitizeClientEditorConfig","RichTextEditor","then","module","default","RichText","RichTextField","props","$","admin","t0","clientFeatures","featureClientSchemaMap","field","lexicalEditorConfig","t1","schemaPath","t2","undefined","finalSanitizedEditorConfig","setFinalSanitizedEditorConfig","t3","t4","featureProvidersLocal","_featureKey","clientFeature","Object","entries","clientFeatureProvider","push","clientFeatureProps","finalLexicalEditorConfig","resolvedClientFeatures","name","unSanitizedEditorConfig","features","lexical","t5","_jsx","fallback","height","editorConfig"],"sources":["../../src/field/index.tsx"],"sourcesContent":["'use client'\n\nimport type { RichTextFieldClient } from 'payload'\n\nimport { ShimmerEffect } from '@payloadcms/ui'\nimport React, { lazy, Suspense, useEffect, useState } from 'react'\n\nimport type { FeatureProviderClient } from '../features/typesClient.js'\nimport type { SanitizedClientEditorConfig } from '../lexical/config/types.js'\nimport type { LexicalRichTextFieldProps } from '../types.js'\n\nimport { defaultEditorLexicalConfig } from '../lexical/config/client/default.js'\nimport { loadClientFeatures } from '../lexical/config/client/loader.js'\nimport { sanitizeClientEditorConfig } from '../lexical/config/client/sanitize.js'\n\nconst RichTextEditor = lazy(() =>\n import('./Field.js').then((module) => ({ default: module.RichText })),\n)\n\nexport const RichTextField: React.FC<LexicalRichTextFieldProps> = (props) => {\n const {\n admin = {},\n clientFeatures,\n featureClientSchemaMap,\n field,\n lexicalEditorConfig = defaultEditorLexicalConfig,\n schemaPath,\n } = props\n\n const [finalSanitizedEditorConfig, setFinalSanitizedEditorConfig] =\n useState<null | SanitizedClientEditorConfig>(null)\n\n useEffect(() => {\n if (finalSanitizedEditorConfig) {\n return\n }\n\n const featureProvidersLocal: FeatureProviderClient<any, any>[] = []\n for (const [_featureKey, clientFeature] of Object.entries(clientFeatures)) {\n if (!clientFeature.clientFeatureProvider) {\n continue\n }\n featureProvidersLocal.push(\n clientFeature.clientFeatureProvider(clientFeature.clientFeatureProps),\n ) // Execute the clientFeatureProvider function here, as the server cannot execute functions imported from use client files\n }\n\n const finalLexicalEditorConfig = lexicalEditorConfig\n ? lexicalEditorConfig\n : defaultEditorLexicalConfig\n\n const resolvedClientFeatures = loadClientFeatures({\n featureClientSchemaMap,\n field: field as RichTextFieldClient,\n schemaPath: schemaPath ?? field.name,\n unSanitizedEditorConfig: {\n features: featureProvidersLocal,\n lexical: finalLexicalEditorConfig,\n },\n })\n\n setFinalSanitizedEditorConfig(\n sanitizeClientEditorConfig(resolvedClientFeatures, finalLexicalEditorConfig, admin),\n )\n }, [\n lexicalEditorConfig,\n admin,\n finalSanitizedEditorConfig,\n clientFeatures,\n featureClientSchemaMap,\n field,\n schemaPath,\n ]) // TODO: Optimize this and use useMemo for this in the future. This might break sub-richtext-blocks from the blocks feature. Need to investigate\n\n return (\n <Suspense fallback={<ShimmerEffect height=\"35vh\" />}>\n {finalSanitizedEditorConfig && (\n <RichTextEditor {...props} editorConfig={finalSanitizedEditorConfig} />\n )}\n </Suspense>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultSanitizedEditorConfig.d.ts","sourceRoot":"","sources":["../src/getDefaultSanitizedEditorConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9C,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAgB7D,eAAO,MAAM,+BAA+B,SAC7B;IACX,MAAM,EAAE,eAAe,CAAA;IACvB,iBAAiB,EAAE,OAAO,CAAA;CAC3B,KAAG,OAAO,CAAC,2BAA2B,CAqBxC,CAAA"}
1
+ {"version":3,"file":"getDefaultSanitizedEditorConfig.d.ts","sourceRoot":"","sources":["../src/getDefaultSanitizedEditorConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAgB7D,eAAO,MAAM,+BAA+B,SAAgB;IAC1D,MAAM,EAAE,eAAe,CAAA;IACvB,iBAAiB,EAAE,OAAO,CAAA;CAC3B,KAAG,OAAO,CAAC,2BAA2B,CAoBtC,CAAA"}
@@ -1,11 +1,10 @@
1
- import { cache } from 'react';
2
1
  import { defaultEditorConfig } from './lexical/config/server/default.js';
3
2
  import { sanitizeServerEditorConfig } from './lexical/config/server/sanitize.js';
4
3
  let cachedDefaultSanitizedServerEditorConfig = global._payload_lexical_defaultSanitizedServerEditorConfig;
5
4
  if (!cachedDefaultSanitizedServerEditorConfig) {
6
5
  cachedDefaultSanitizedServerEditorConfig = global._payload_lexical_defaultSanitizedServerEditorConfig = null;
7
6
  }
8
- export const getDefaultSanitizedEditorConfig = cache(async args => {
7
+ export const getDefaultSanitizedEditorConfig = async args => {
9
8
  const {
10
9
  config,
11
10
  parentIsLocalized
@@ -18,5 +17,5 @@ export const getDefaultSanitizedEditorConfig = cache(async args => {
18
17
  cachedDefaultSanitizedServerEditorConfig = await cachedDefaultSanitizedServerEditorConfig;
19
18
  global.payload_lexical_defaultSanitizedServerEditorConfig = cachedDefaultSanitizedServerEditorConfig;
20
19
  return cachedDefaultSanitizedServerEditorConfig;
21
- });
20
+ };
22
21
  //# sourceMappingURL=getDefaultSanitizedEditorConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultSanitizedEditorConfig.js","names":["cache","defaultEditorConfig","sanitizeServerEditorConfig","cachedDefaultSanitizedServerEditorConfig","global","_payload_lexical_defaultSanitizedServerEditorConfig","getDefaultSanitizedEditorConfig","args","config","parentIsLocalized","payload_lexical_defaultSanitizedServerEditorConfig"],"sources":["../src/getDefaultSanitizedEditorConfig.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport { cache } from 'react'\n\nimport { type SanitizedServerEditorConfig } from './index.js'\nimport { defaultEditorConfig } from './lexical/config/server/default.js'\nimport { sanitizeServerEditorConfig } from './lexical/config/server/sanitize.js'\n\nlet cachedDefaultSanitizedServerEditorConfig:\n | null\n | Promise<SanitizedServerEditorConfig>\n | SanitizedServerEditorConfig = (global as any)\n ._payload_lexical_defaultSanitizedServerEditorConfig\n\nif (!cachedDefaultSanitizedServerEditorConfig) {\n cachedDefaultSanitizedServerEditorConfig = (\n global as any\n )._payload_lexical_defaultSanitizedServerEditorConfig = null\n}\n\nexport const getDefaultSanitizedEditorConfig = cache(\n async (args: {\n config: SanitizedConfig\n parentIsLocalized: boolean\n }): Promise<SanitizedServerEditorConfig> => {\n const { config, parentIsLocalized } = args\n\n if (cachedDefaultSanitizedServerEditorConfig) {\n return await cachedDefaultSanitizedServerEditorConfig\n }\n\n cachedDefaultSanitizedServerEditorConfig = sanitizeServerEditorConfig(\n defaultEditorConfig,\n config,\n parentIsLocalized,\n )\n ;(global as any).payload_lexical_defaultSanitizedServerEditorConfig =\n cachedDefaultSanitizedServerEditorConfig\n\n cachedDefaultSanitizedServerEditorConfig = await cachedDefaultSanitizedServerEditorConfig\n ;(global as any).payload_lexical_defaultSanitizedServerEditorConfig =\n cachedDefaultSanitizedServerEditorConfig\n\n return cachedDefaultSanitizedServerEditorConfig\n },\n)\n"],"mappings":"AAEA,SAASA,KAAK,QAAQ;AAGtB,SAASC,mBAAmB,QAAQ;AACpC,SAASC,0BAA0B,QAAQ;AAE3C,IAAIC,wCAAA,GAG8BC,MAAC,CAChCC,mDAAmD;AAEtD,IAAI,CAACF,wCAAA,EAA0C;EAC7CA,wCAAA,GAA2CC,MACzC,CACAC,mDAAmD,GAAG;AAC1D;AAEA,OAAO,MAAMC,+BAAA,GAAkCN,KAAA,CAC7C,MAAOO,IAAA;EAIL,MAAM;IAAEC,MAAM;IAAEC;EAAiB,CAAE,GAAGF,IAAA;EAEtC,IAAIJ,wCAAA,EAA0C;IAC5C,OAAO,MAAMA,wCAAA;EACf;EAEAA,wCAAA,GAA2CD,0BAAA,CACzCD,mBAAA,EACAO,MAAA,EACAC,iBAAA;EAEAL,MAAA,CAAeM,kDAAkD,GACjEP,wCAAA;EAEFA,wCAAA,GAA2C,MAAMA,wCAAA;EAC/CC,MAAA,CAAeM,kDAAkD,GACjEP,wCAAA;EAEF,OAAOA,wCAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"getDefaultSanitizedEditorConfig.js","names":["defaultEditorConfig","sanitizeServerEditorConfig","cachedDefaultSanitizedServerEditorConfig","global","_payload_lexical_defaultSanitizedServerEditorConfig","getDefaultSanitizedEditorConfig","args","config","parentIsLocalized","payload_lexical_defaultSanitizedServerEditorConfig"],"sources":["../src/getDefaultSanitizedEditorConfig.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport { type SanitizedServerEditorConfig } from './index.js'\nimport { defaultEditorConfig } from './lexical/config/server/default.js'\nimport { sanitizeServerEditorConfig } from './lexical/config/server/sanitize.js'\n\nlet cachedDefaultSanitizedServerEditorConfig:\n | null\n | Promise<SanitizedServerEditorConfig>\n | SanitizedServerEditorConfig = (global as any)\n ._payload_lexical_defaultSanitizedServerEditorConfig\n\nif (!cachedDefaultSanitizedServerEditorConfig) {\n cachedDefaultSanitizedServerEditorConfig = (\n global as any\n )._payload_lexical_defaultSanitizedServerEditorConfig = null\n}\n\nexport const getDefaultSanitizedEditorConfig = async (args: {\n config: SanitizedConfig\n parentIsLocalized: boolean\n}): Promise<SanitizedServerEditorConfig> => {\n const { config, parentIsLocalized } = args\n\n if (cachedDefaultSanitizedServerEditorConfig) {\n return await cachedDefaultSanitizedServerEditorConfig\n }\n\n cachedDefaultSanitizedServerEditorConfig = sanitizeServerEditorConfig(\n defaultEditorConfig,\n config,\n parentIsLocalized,\n )\n ;(global as any).payload_lexical_defaultSanitizedServerEditorConfig =\n cachedDefaultSanitizedServerEditorConfig\n\n cachedDefaultSanitizedServerEditorConfig = await cachedDefaultSanitizedServerEditorConfig\n ;(global as any).payload_lexical_defaultSanitizedServerEditorConfig =\n cachedDefaultSanitizedServerEditorConfig\n\n return cachedDefaultSanitizedServerEditorConfig\n}\n"],"mappings":"AAGA,SAASA,mBAAmB,QAAQ;AACpC,SAASC,0BAA0B,QAAQ;AAE3C,IAAIC,wCAAA,GAG8BC,MAAC,CAChCC,mDAAmD;AAEtD,IAAI,CAACF,wCAAA,EAA0C;EAC7CA,wCAAA,GAA2CC,MACzC,CACAC,mDAAmD,GAAG;AAC1D;AAEA,OAAO,MAAMC,+BAAA,GAAkC,MAAOC,IAAA;EAIpD,MAAM;IAAEC,MAAM;IAAEC;EAAiB,CAAE,GAAGF,IAAA;EAEtC,IAAIJ,wCAAA,EAA0C;IAC5C,OAAO,MAAMA,wCAAA;EACf;EAEAA,wCAAA,GAA2CD,0BAAA,CACzCD,mBAAA,EACAO,MAAA,EACAC,iBAAA;EAEAL,MAAA,CAAeM,kDAAkD,GACjEP,wCAAA;EAEFA,wCAAA,GAA2C,MAAMA,wCAAA;EAC/CC,MAAA,CAAeM,kDAAkD,GACjEP,wCAAA;EAEF,OAAOA,wCAAA;AACT","ignoreList":[]}
@@ -42,7 +42,7 @@ export const LexicalEditor = props => {
42
42
  const onRef = t0;
43
43
  let t1;
44
44
  let t2;
45
- if ($[1] !== editorConfigContext || $[2] !== editor) {
45
+ if ($[1] !== editor || $[2] !== editorConfigContext) {
46
46
  t1 = () => {
47
47
  if (!editorConfigContext?.uuid) {
48
48
  console.error("Lexical Editor must be used within an EditorConfigProvider");
@@ -72,8 +72,8 @@ export const LexicalEditor = props => {
72
72
  };
73
73
  };
74
74
  t2 = [editor, editorConfigContext];
75
- $[1] = editorConfigContext;
76
- $[2] = editor;
75
+ $[1] = editor;
76
+ $[2] = editorConfigContext;
77
77
  $[3] = t1;
78
78
  $[4] = t2;
79
79
  } else {
@@ -108,7 +108,7 @@ export const LexicalEditor = props => {
108
108
  }
109
109
  useEffect(t3, t4);
110
110
  let t5;
111
- if ($[8] !== editorConfig.features || $[9] !== onChange || $[10] !== floatingAnchorElem || $[11] !== isSmallWidthViewport || $[12] !== editor || $[13] !== editorContainerRef) {
111
+ if ($[8] !== editor || $[9] !== editorConfig.features || $[10] !== editorContainerRef || $[11] !== floatingAnchorElem || $[12] !== isSmallWidthViewport || $[13] !== onChange) {
112
112
  let t6;
113
113
  if ($[15] !== onChange) {
114
114
  t6 = (editorState, editor_0, tags) => {
@@ -124,7 +124,7 @@ export const LexicalEditor = props => {
124
124
  t6 = $[16];
125
125
  }
126
126
  let t7;
127
- if ($[17] !== floatingAnchorElem || $[18] !== isSmallWidthViewport || $[19] !== editor || $[20] !== editorConfig) {
127
+ if ($[17] !== editor || $[18] !== editorConfig.features.plugins || $[19] !== floatingAnchorElem || $[20] !== isSmallWidthViewport) {
128
128
  t7 = floatingAnchorElem && _jsxs(React.Fragment, {
129
129
  children: [!isSmallWidthViewport && editor.isEditable() && _jsxs(React.Fragment, {
130
130
  children: [_jsx(DraggableBlockPlugin, {
@@ -146,10 +146,10 @@ export const LexicalEditor = props => {
146
146
  })
147
147
  })]
148
148
  });
149
- $[17] = floatingAnchorElem;
150
- $[18] = isSmallWidthViewport;
151
- $[19] = editor;
152
- $[20] = editorConfig;
149
+ $[17] = editor;
150
+ $[18] = editorConfig.features.plugins;
151
+ $[19] = floatingAnchorElem;
152
+ $[20] = isSmallWidthViewport;
153
153
  $[21] = t7;
154
154
  } else {
155
155
  t7 = $[21];
@@ -179,12 +179,12 @@ export const LexicalEditor = props => {
179
179
  }), editorConfig.features.plugins?.map(_temp3), editorConfig.features.plugins?.map(_temp4)]
180
180
  }), editorConfig.features.plugins?.map(_temp5)]
181
181
  });
182
- $[8] = editorConfig.features;
183
- $[9] = onChange;
184
- $[10] = floatingAnchorElem;
185
- $[11] = isSmallWidthViewport;
186
- $[12] = editor;
187
- $[13] = editorContainerRef;
182
+ $[8] = editor;
183
+ $[9] = editorConfig.features;
184
+ $[10] = editorContainerRef;
185
+ $[11] = floatingAnchorElem;
186
+ $[12] = isSmallWidthViewport;
187
+ $[13] = onChange;
188
188
  $[14] = t5;
189
189
  } else {
190
190
  t5 = $[14];
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalEditor.js","names":["c","_c","useLexicalComposerContext","LexicalErrorBoundary","HistoryPlugin","OnChangePlugin","RichTextPlugin","BLUR_COMMAND","COMMAND_PRIORITY_LOW","FOCUS_COMMAND","React","useEffect","useState","useEditorConfigContext","EditorPlugin","AddBlockHandlePlugin","DraggableBlockPlugin","MarkdownShortcutPlugin","SlashMenuPlugin","TextPlugin","LexicalContentEditable","LexicalEditor","props","$","editorConfig","editorContainerRef","onChange","editorConfigContext","editor","floatingAnchorElem","setFloatingAnchorElem","t0","Symbol","for","_floatingAnchorElem","onRef","t1","t2","uuid","console","error","parentEditor","registerChild","handleFocus","focusEditor","handleBlur","blurEditor","unregisterFocus","registerCommand","unregisterBlur","unregisterChild","isSmallWidthViewport","setIsSmallWidthViewport","t3","t4","updateViewPortWidth","isNextSmallWidthViewport","window","matchMedia","matches","addEventListener","removeEventListener","t5","features","t6","editorState","editor_0","tags","has","size","t7","_jsxs","Fragment","children","isEditable","_jsx","anchorElem","plugins","map","plugin_1","plugin","position","desktopOnly","clientProps","key","_temp","className","ref","_temp2","contentEditable","tabIndex","ignoreSelectionChange","markdownTransformers","length","_temp3","_temp4","_temp5","plugin_0","plugin_2","plugin_3","plugin_4"],"sources":["../../src/lexical/LexicalEditor.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary.js'\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin.js'\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin.js'\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin.js'\nimport { BLUR_COMMAND, COMMAND_PRIORITY_LOW, FOCUS_COMMAND } from 'lexical'\nimport * as React from 'react'\nimport { useEffect, useState } from 'react'\n\nimport type { LexicalProviderProps } from './LexicalProvider.js'\n\nimport { useEditorConfigContext } from './config/client/EditorConfigProvider.js'\nimport { EditorPlugin } from './EditorPlugin.js'\nimport './LexicalEditor.scss'\nimport { AddBlockHandlePlugin } from './plugins/handles/AddBlockHandlePlugin/index.js'\nimport { DraggableBlockPlugin } from './plugins/handles/DraggableBlockPlugin/index.js'\nimport { MarkdownShortcutPlugin } from './plugins/MarkdownShortcut/index.js'\nimport { SlashMenuPlugin } from './plugins/SlashMenu/index.js'\nimport { TextPlugin } from './plugins/TextPlugin/index.js'\nimport { LexicalContentEditable } from './ui/ContentEditable.js'\n\nexport const LexicalEditor: React.FC<\n {\n editorContainerRef: React.RefObject<HTMLDivElement | null>\n } & Pick<LexicalProviderProps, 'editorConfig' | 'onChange'>\n> = (props) => {\n const { editorConfig, editorContainerRef, onChange } = props\n const editorConfigContext = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLDivElement | null>(null)\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem)\n }\n }\n\n useEffect(() => {\n if (!editorConfigContext?.uuid) {\n console.error('Lexical Editor must be used within an EditorConfigProvider')\n return\n }\n if (editorConfigContext?.parentEditor?.uuid) {\n editorConfigContext.parentEditor?.registerChild(editorConfigContext.uuid, editorConfigContext)\n }\n\n const handleFocus = () => {\n editorConfigContext.focusEditor(editorConfigContext)\n }\n\n const handleBlur = () => {\n editorConfigContext.blurEditor(editorConfigContext)\n }\n\n const unregisterFocus = editor.registerCommand<MouseEvent>(\n FOCUS_COMMAND,\n () => {\n handleFocus()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n const unregisterBlur = editor.registerCommand<MouseEvent>(\n BLUR_COMMAND,\n () => {\n handleBlur()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n return () => {\n unregisterFocus()\n unregisterBlur()\n editorConfigContext.parentEditor?.unregisterChild?.(editorConfigContext.uuid)\n }\n }, [editor, editorConfigContext])\n\n const [isSmallWidthViewport, setIsSmallWidthViewport] = useState<boolean>(false)\n\n useEffect(() => {\n const updateViewPortWidth = () => {\n const isNextSmallWidthViewport = window.matchMedia('(max-width: 768px)').matches\n\n if (isNextSmallWidthViewport !== isSmallWidthViewport) {\n setIsSmallWidthViewport(isNextSmallWidthViewport)\n }\n }\n updateViewPortWidth()\n window.addEventListener('resize', updateViewPortWidth)\n\n return () => {\n window.removeEventListener('resize', updateViewPortWidth)\n }\n }, [isSmallWidthViewport])\n\n return (\n <React.Fragment>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'aboveContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n <div className=\"editor-container\" ref={editorContainerRef}>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'top') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\">\n <div className=\"editor\" ref={onRef} tabIndex={-1}>\n <LexicalContentEditable />\n </div>\n </div>\n }\n ErrorBoundary={LexicalErrorBoundary}\n />\n <TextPlugin features={editorConfig.features} />\n <OnChangePlugin\n // Selection changes can be ignored here, reducing the\n // frequency that the FieldComponent and Payload receive updates.\n // Selection changes are only needed if you are saving selection state\n ignoreSelectionChange\n onChange={(editorState, editor, tags) => {\n // Ignore any onChange event triggered by focus only\n if (!tags.has('focus') || tags.size > 1) {\n if (onChange != null) {\n onChange(editorState, editor, tags)\n }\n }\n }}\n />\n {floatingAnchorElem && (\n <React.Fragment>\n {!isSmallWidthViewport && editor.isEditable() && (\n <React.Fragment>\n <DraggableBlockPlugin anchorElem={floatingAnchorElem} />\n <AddBlockHandlePlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (\n plugin.position === 'floatingAnchorElem' &&\n !(plugin.desktopOnly === true && isSmallWidthViewport)\n ) {\n return (\n <EditorPlugin\n anchorElem={floatingAnchorElem}\n clientProps={plugin.clientProps}\n key={plugin.key}\n plugin={plugin}\n />\n )\n }\n })}\n {editor.isEditable() && (\n <React.Fragment>\n <SlashMenuPlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n </React.Fragment>\n )}\n {editor.isEditable() && (\n <React.Fragment>\n <HistoryPlugin />\n {editorConfig?.features?.markdownTransformers?.length > 0 && <MarkdownShortcutPlugin />}\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'normal') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'bottom') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n </div>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'belowContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LexicalEditor.js","names":["c","_c","useLexicalComposerContext","LexicalErrorBoundary","HistoryPlugin","OnChangePlugin","RichTextPlugin","BLUR_COMMAND","COMMAND_PRIORITY_LOW","FOCUS_COMMAND","React","useEffect","useState","useEditorConfigContext","EditorPlugin","AddBlockHandlePlugin","DraggableBlockPlugin","MarkdownShortcutPlugin","SlashMenuPlugin","TextPlugin","LexicalContentEditable","LexicalEditor","props","$","editorConfig","editorContainerRef","onChange","editorConfigContext","editor","floatingAnchorElem","setFloatingAnchorElem","t0","Symbol","for","_floatingAnchorElem","onRef","t1","t2","uuid","console","error","parentEditor","registerChild","handleFocus","focusEditor","handleBlur","blurEditor","unregisterFocus","registerCommand","unregisterBlur","unregisterChild","isSmallWidthViewport","setIsSmallWidthViewport","t3","t4","updateViewPortWidth","isNextSmallWidthViewport","window","matchMedia","matches","addEventListener","removeEventListener","t5","features","t6","editorState","editor_0","tags","has","size","t7","plugins","_jsxs","Fragment","children","isEditable","_jsx","anchorElem","map","plugin_1","plugin","position","desktopOnly","clientProps","key","_temp","className","ref","_temp2","contentEditable","tabIndex","ignoreSelectionChange","markdownTransformers","length","_temp3","_temp4","_temp5","plugin_0","plugin_2","plugin_3","plugin_4"],"sources":["../../src/lexical/LexicalEditor.tsx"],"sourcesContent":["'use client'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary.js'\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin.js'\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin.js'\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin.js'\nimport { BLUR_COMMAND, COMMAND_PRIORITY_LOW, FOCUS_COMMAND } from 'lexical'\nimport * as React from 'react'\nimport { useEffect, useState } from 'react'\n\nimport type { LexicalProviderProps } from './LexicalProvider.js'\n\nimport { useEditorConfigContext } from './config/client/EditorConfigProvider.js'\nimport { EditorPlugin } from './EditorPlugin.js'\nimport './LexicalEditor.scss'\nimport { AddBlockHandlePlugin } from './plugins/handles/AddBlockHandlePlugin/index.js'\nimport { DraggableBlockPlugin } from './plugins/handles/DraggableBlockPlugin/index.js'\nimport { MarkdownShortcutPlugin } from './plugins/MarkdownShortcut/index.js'\nimport { SlashMenuPlugin } from './plugins/SlashMenu/index.js'\nimport { TextPlugin } from './plugins/TextPlugin/index.js'\nimport { LexicalContentEditable } from './ui/ContentEditable.js'\n\nexport const LexicalEditor: React.FC<\n {\n editorContainerRef: React.RefObject<HTMLDivElement | null>\n } & Pick<LexicalProviderProps, 'editorConfig' | 'onChange'>\n> = (props) => {\n const { editorConfig, editorContainerRef, onChange } = props\n const editorConfigContext = useEditorConfigContext()\n const [editor] = useLexicalComposerContext()\n\n const [floatingAnchorElem, setFloatingAnchorElem] = useState<HTMLDivElement | null>(null)\n const onRef = (_floatingAnchorElem: HTMLDivElement) => {\n if (_floatingAnchorElem !== null) {\n setFloatingAnchorElem(_floatingAnchorElem)\n }\n }\n\n useEffect(() => {\n if (!editorConfigContext?.uuid) {\n console.error('Lexical Editor must be used within an EditorConfigProvider')\n return\n }\n if (editorConfigContext?.parentEditor?.uuid) {\n editorConfigContext.parentEditor?.registerChild(editorConfigContext.uuid, editorConfigContext)\n }\n\n const handleFocus = () => {\n editorConfigContext.focusEditor(editorConfigContext)\n }\n\n const handleBlur = () => {\n editorConfigContext.blurEditor(editorConfigContext)\n }\n\n const unregisterFocus = editor.registerCommand<MouseEvent>(\n FOCUS_COMMAND,\n () => {\n handleFocus()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n const unregisterBlur = editor.registerCommand<MouseEvent>(\n BLUR_COMMAND,\n () => {\n handleBlur()\n return true\n },\n COMMAND_PRIORITY_LOW,\n )\n\n return () => {\n unregisterFocus()\n unregisterBlur()\n editorConfigContext.parentEditor?.unregisterChild?.(editorConfigContext.uuid)\n }\n }, [editor, editorConfigContext])\n\n const [isSmallWidthViewport, setIsSmallWidthViewport] = useState<boolean>(false)\n\n useEffect(() => {\n const updateViewPortWidth = () => {\n const isNextSmallWidthViewport = window.matchMedia('(max-width: 768px)').matches\n\n if (isNextSmallWidthViewport !== isSmallWidthViewport) {\n setIsSmallWidthViewport(isNextSmallWidthViewport)\n }\n }\n updateViewPortWidth()\n window.addEventListener('resize', updateViewPortWidth)\n\n return () => {\n window.removeEventListener('resize', updateViewPortWidth)\n }\n }, [isSmallWidthViewport])\n\n return (\n <React.Fragment>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'aboveContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n <div className=\"editor-container\" ref={editorContainerRef}>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'top') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n <RichTextPlugin\n contentEditable={\n <div className=\"editor-scroller\">\n <div className=\"editor\" ref={onRef} tabIndex={-1}>\n <LexicalContentEditable />\n </div>\n </div>\n }\n ErrorBoundary={LexicalErrorBoundary}\n />\n <TextPlugin features={editorConfig.features} />\n <OnChangePlugin\n // Selection changes can be ignored here, reducing the\n // frequency that the FieldComponent and Payload receive updates.\n // Selection changes are only needed if you are saving selection state\n ignoreSelectionChange\n onChange={(editorState, editor, tags) => {\n // Ignore any onChange event triggered by focus only\n if (!tags.has('focus') || tags.size > 1) {\n if (onChange != null) {\n onChange(editorState, editor, tags)\n }\n }\n }}\n />\n {floatingAnchorElem && (\n <React.Fragment>\n {!isSmallWidthViewport && editor.isEditable() && (\n <React.Fragment>\n <DraggableBlockPlugin anchorElem={floatingAnchorElem} />\n <AddBlockHandlePlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (\n plugin.position === 'floatingAnchorElem' &&\n !(plugin.desktopOnly === true && isSmallWidthViewport)\n ) {\n return (\n <EditorPlugin\n anchorElem={floatingAnchorElem}\n clientProps={plugin.clientProps}\n key={plugin.key}\n plugin={plugin}\n />\n )\n }\n })}\n {editor.isEditable() && (\n <React.Fragment>\n <SlashMenuPlugin anchorElem={floatingAnchorElem} />\n </React.Fragment>\n )}\n </React.Fragment>\n )}\n {editor.isEditable() && (\n <React.Fragment>\n <HistoryPlugin />\n {editorConfig?.features?.markdownTransformers?.length > 0 && <MarkdownShortcutPlugin />}\n </React.Fragment>\n )}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'normal') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'bottom') {\n return (\n <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n )\n }\n })}\n </div>\n {editorConfig.features.plugins?.map((plugin) => {\n if (plugin.position === 'belowContainer') {\n return <EditorPlugin clientProps={plugin.clientProps} key={plugin.key} plugin={plugin} />\n }\n })}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -102,7 +102,7 @@ export function useDynamicPositioning(resolution, targetElementRef, onReposition
102
102
  const $ = _c(12);
103
103
  const [editor] = useLexicalComposerContext();
104
104
  let t0;
105
- if ($[0] !== targetElementRef.current || $[1] !== resolution || $[2] !== editor || $[3] !== onReposition || $[4] !== onVisibilityChange) {
105
+ if ($[0] !== editor || $[1] !== onReposition || $[2] !== onVisibilityChange || $[3] !== resolution || $[4] !== targetElementRef.current) {
106
106
  t0 = () => {
107
107
  const targetElement = targetElementRef.current;
108
108
  if (targetElement != null && resolution != null) {
@@ -142,21 +142,21 @@ export function useDynamicPositioning(resolution, targetElementRef, onReposition
142
142
  };
143
143
  }
144
144
  };
145
- $[0] = targetElementRef.current;
146
- $[1] = resolution;
147
- $[2] = editor;
148
- $[3] = onReposition;
149
- $[4] = onVisibilityChange;
145
+ $[0] = editor;
146
+ $[1] = onReposition;
147
+ $[2] = onVisibilityChange;
148
+ $[3] = resolution;
149
+ $[4] = targetElementRef.current;
150
150
  $[5] = t0;
151
151
  } else {
152
152
  t0 = $[5];
153
153
  }
154
154
  let t1;
155
- if ($[6] !== editor || $[7] !== onVisibilityChange || $[8] !== onReposition || $[9] !== resolution || $[10] !== targetElementRef) {
155
+ if ($[6] !== editor || $[7] !== onReposition || $[8] !== onVisibilityChange || $[9] !== resolution || $[10] !== targetElementRef) {
156
156
  t1 = [editor, onVisibilityChange, onReposition, resolution, targetElementRef];
157
157
  $[6] = editor;
158
- $[7] = onVisibilityChange;
159
- $[8] = onReposition;
158
+ $[7] = onReposition;
159
+ $[8] = onVisibilityChange;
160
160
  $[9] = resolution;
161
161
  $[10] = targetElementRef;
162
162
  $[11] = t1;
@@ -331,7 +331,7 @@ export function useMenuAnchorRef(anchorElem, resolution, setResolution, classNam
331
331
  }
332
332
  const anchorElementRef = useRef(t0);
333
333
  let t1;
334
- if ($[1] !== editor || $[2] !== resolution || $[3] !== anchorElem || $[4] !== className) {
334
+ if ($[1] !== anchorElem || $[2] !== className || $[3] !== editor || $[4] !== resolution) {
335
335
  t1 = () => {
336
336
  if (anchorElementRef.current === null || parent === undefined) {
337
337
  return;
@@ -385,10 +385,10 @@ export function useMenuAnchorRef(anchorElem, resolution, setResolution, classNam
385
385
  rootElement.setAttribute("aria-controls", "slash-menu");
386
386
  }
387
387
  };
388
- $[1] = editor;
389
- $[2] = resolution;
390
- $[3] = anchorElem;
391
- $[4] = className;
388
+ $[1] = anchorElem;
389
+ $[2] = className;
390
+ $[3] = editor;
391
+ $[4] = resolution;
392
392
  $[5] = t1;
393
393
  } else {
394
394
  t1 = $[5];
@@ -396,7 +396,7 @@ export function useMenuAnchorRef(anchorElem, resolution, setResolution, classNam
396
396
  const positionMenu = t1;
397
397
  let t2;
398
398
  let t3;
399
- if ($[6] !== editor || $[7] !== resolution || $[8] !== positionMenu) {
399
+ if ($[6] !== editor || $[7] !== positionMenu || $[8] !== resolution) {
400
400
  t2 = () => {
401
401
  const rootElement_0 = editor.getRootElement();
402
402
  if (resolution !== null) {
@@ -414,8 +414,8 @@ export function useMenuAnchorRef(anchorElem, resolution, setResolution, classNam
414
414
  };
415
415
  t3 = [editor, positionMenu, resolution];
416
416
  $[6] = editor;
417
- $[7] = resolution;
418
- $[8] = positionMenu;
417
+ $[7] = positionMenu;
418
+ $[8] = resolution;
419
419
  $[9] = t2;
420
420
  $[10] = t3;
421
421
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalMenu.js","names":["c","_c","useLexicalComposerContext","mergeRegister","$getSelection","$isRangeSelection","COMMAND_PRIORITY_LOW","createCommand","KEY_ARROW_DOWN_COMMAND","KEY_ARROW_UP_COMMAND","KEY_ENTER_COMMAND","KEY_ESCAPE_COMMAND","KEY_TAB_COMMAND","useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","CAN_USE_DOM","baseClass","scrollIntoViewIfNeeded","target","typeaheadContainerNode","document","getElementById","typeaheadRect","getBoundingClientRect","top","height","window","innerHeight","scrollIntoView","block","getFullMatchOffset","documentText","entryText","offset","triggerOffset","i","length","substring","$splitNodeContainingQuery","match","selection","isCollapsed","anchor","type","anchorNode","getNode","isSimpleText","selectionOffset","textContent","getTextContent","slice","characterOffset","replaceableString","queryOffset","matchingString","startOffset","newNode","splitText","getScrollParent","element","includeHidden","style","getComputedStyle","excludeStaticParent","position","overflowRegex","body","parent1","parentElement","test","overflow","overflowY","overflowX","isTriggerVisibleInNearestScrollContainer","targetElement","containerElement","tRect","cRect","bottom","useDynamicPositioning","resolution","targetElementRef","onReposition","onVisibilityChange","$","editor","t0","current","rootElement","getRootElement","rootScrollParent","ticking","previousIsInView","handleScroll","requestAnimationFrame","isInView","resizeObserver","ResizeObserver","addEventListener","capture","passive","observe","disconnect","removeEventListener","t1","SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND","LexicalMenu","anchorElementRef","close","groups","menuRenderFn","shouldSplitNodeWithQuery","selectedItemKey","setSelectedItemKey","updateSelectedItem","item","rootElem","setAttribute","key","setSelectedItemKeyToFirstMatchingItem","allItems","flatMap","group","items","firstMatchingItem","selectItemAndCleanUp","selectedItem","update","textNodeContainingQuery","remove","setTimeout","onSelect","queryString","removeAttribute","registerCommand","ref","payload","event","selectedIndex","findIndex","newSelectedIndex","newSelectedItem","dispatchCommand","index","preventDefault","stopImmediatePropagation","find","listItemProps","useMenuAnchorRef","anchorElem","setResolution","className","Symbol","for","createElement","parent","undefined","containerDiv","menuEle","firstChild","width","getRect","left","rawTop","scrollY","scrollX","menuRect","menuHeight","menuWidth","rootElementRect","right","wouldGoOffBottomOfScreen","wouldGoOffTopOfScreen","isConnected","display","append","positionMenu","t2","t3","rootElement_0","containerDiv_0","t4"],"sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx"],"sourcesContent":["'use client'\nimport type { LexicalCommand, LexicalEditor, TextNode } from 'lexical'\nimport type { JSX, ReactPortal, RefObject } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n createCommand,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n KEY_TAB_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport type { MenuTextMatch } from '../useMenuTriggerMatch.js'\nimport type { SlashMenuGroupInternal, SlashMenuItem, SlashMenuItemInternal } from './types.js'\n\nimport { CAN_USE_DOM } from '../../../utils/canUseDOM.js'\n\nexport type MenuResolution = {\n getRect: () => DOMRect\n match?: MenuTextMatch\n}\n\nconst baseClass = 'slash-menu-popup'\n\nexport type MenuRenderFn = (\n anchorElementRef: RefObject<HTMLElement | null>,\n itemProps: {\n groups: Array<SlashMenuGroupInternal>\n selectedItemKey: null | string\n selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void\n setSelectedItemKey: (itemKey: string) => void\n },\n matchingString: null | string,\n) => JSX.Element | null | ReactPortal\n\nconst scrollIntoViewIfNeeded = (target: HTMLElement) => {\n const typeaheadContainerNode = document.getElementById('slash-menu')\n if (!typeaheadContainerNode) {\n return\n }\n\n const typeaheadRect = typeaheadContainerNode.getBoundingClientRect()\n\n if (typeaheadRect.top + typeaheadRect.height > window.innerHeight) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n if (typeaheadRect.top < 0) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n target.scrollIntoView({ block: 'nearest' })\n}\n\n/**\n * Walk backwards along user input and forward through entity title to try\n * and replace more of the user's text with entity.\n */\nfunction getFullMatchOffset(documentText: string, entryText: string, offset: number) {\n let triggerOffset = offset\n for (let i = triggerOffset; i <= entryText.length; i++) {\n if (documentText.substring(documentText.length - i) === entryText.substring(0, i)) {\n triggerOffset = i\n }\n }\n return triggerOffset\n}\n\n/**\n * Split Lexical TextNode and return a new TextNode only containing matched text.\n * Common use cases include: removing the node, replacing with a new node.\n */\nfunction $splitNodeContainingQuery(match: MenuTextMatch): null | TextNode {\n const selection = $getSelection()\n if (!$isRangeSelection(selection) || !selection.isCollapsed()) {\n return null\n }\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return null\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return null\n }\n const selectionOffset = anchor.offset\n const textContent = anchorNode.getTextContent().slice(0, selectionOffset)\n const characterOffset = match.replaceableString.length\n const queryOffset = getFullMatchOffset(textContent, match.matchingString, characterOffset)\n const startOffset = selectionOffset - queryOffset\n if (startOffset < 0) {\n return null\n }\n let newNode\n if (startOffset === 0) {\n ;[newNode] = anchorNode.splitText(selectionOffset)\n } else {\n ;[, newNode] = anchorNode.splitText(startOffset, selectionOffset)\n }\n\n return newNode\n}\n\n// Got from https://stackoverflow.com/a/42543908/2013580\nexport function getScrollParent(\n element: HTMLElement,\n includeHidden: boolean,\n): HTMLBodyElement | HTMLElement {\n let style = getComputedStyle(element)\n const excludeStaticParent = style.position === 'absolute'\n const overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/\n if (style.position === 'fixed') {\n return document.body\n }\n for (let parent: HTMLElement | null = element; (parent = parent.parentElement); ) {\n style = getComputedStyle(parent)\n if (excludeStaticParent && style.position === 'static') {\n continue\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent\n }\n }\n return document.body\n}\n\nfunction isTriggerVisibleInNearestScrollContainer(\n targetElement: HTMLElement,\n containerElement: HTMLElement,\n): boolean {\n const tRect = targetElement.getBoundingClientRect()\n const cRect = containerElement.getBoundingClientRect()\n return tRect.top > cRect.top && tRect.top < cRect.bottom\n}\n\n// Reposition the menu on scroll, window resize, and element resize.\nexport function useDynamicPositioning(\n resolution: MenuResolution | null,\n targetElementRef: RefObject<HTMLElement | null>,\n onReposition: () => void,\n onVisibilityChange?: (isInView: boolean) => void,\n) {\n const [editor] = useLexicalComposerContext()\n useEffect(() => {\n const targetElement = targetElementRef.current\n if (targetElement != null && resolution != null) {\n const rootElement = editor.getRootElement()\n const rootScrollParent =\n rootElement != null ? getScrollParent(rootElement, false) : document.body\n let ticking = false\n let previousIsInView = isTriggerVisibleInNearestScrollContainer(\n targetElement,\n rootScrollParent,\n )\n const handleScroll = function () {\n if (!ticking) {\n window.requestAnimationFrame(function () {\n onReposition()\n ticking = false\n })\n ticking = true\n }\n const isInView = isTriggerVisibleInNearestScrollContainer(targetElement, rootScrollParent)\n if (isInView !== previousIsInView) {\n previousIsInView = isInView\n if (onVisibilityChange != null) {\n onVisibilityChange(isInView)\n }\n }\n }\n const resizeObserver = new ResizeObserver(onReposition)\n window.addEventListener('resize', onReposition)\n document.addEventListener('scroll', handleScroll, {\n capture: true,\n passive: true,\n })\n resizeObserver.observe(targetElement)\n return () => {\n resizeObserver.disconnect()\n window.removeEventListener('resize', onReposition)\n document.removeEventListener('scroll', handleScroll, true)\n }\n }\n }, [editor, onVisibilityChange, onReposition, resolution, targetElementRef])\n}\n\nexport const SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: LexicalCommand<{\n index: number\n item: SlashMenuItemInternal\n}> = createCommand('SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND')\n\nexport function LexicalMenu({\n anchorElementRef,\n close,\n editor,\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n groups,\n menuRenderFn,\n resolution,\n shouldSplitNodeWithQuery = false,\n}: {\n anchorElementRef: RefObject<HTMLElement | null>\n close: () => void\n editor: LexicalEditor\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n resolution: MenuResolution\n shouldSplitNodeWithQuery?: boolean\n}): JSX.Element | null {\n const [selectedItemKey, setSelectedItemKey] = useState<null | string>(null)\n\n const matchingString = (resolution.match && resolution.match.matchingString) || ''\n\n const updateSelectedItem = useCallback(\n (item: SlashMenuItem) => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.setAttribute('aria-activedescendant', `${baseClass}__item-${item.key}`)\n setSelectedItemKey(item.key)\n }\n },\n [editor],\n )\n\n const setSelectedItemKeyToFirstMatchingItem = useCallback(() => {\n // set selected item to the first of the matching ones\n if (groups !== null && matchingString != null) {\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n const allItems = groups.flatMap((group) => group.items)\n\n if (allItems.length) {\n const firstMatchingItem = allItems[0]\n updateSelectedItem(firstMatchingItem)\n }\n }\n }, [groups, updateSelectedItem, matchingString])\n\n useEffect(() => {\n setSelectedItemKeyToFirstMatchingItem()\n }, [matchingString, setSelectedItemKeyToFirstMatchingItem])\n\n const selectItemAndCleanUp = useCallback(\n (selectedItem: SlashMenuItem) => {\n close()\n\n editor.update(() => {\n const textNodeContainingQuery =\n resolution.match != null && shouldSplitNodeWithQuery\n ? $splitNodeContainingQuery(resolution.match)\n : null\n\n if (textNodeContainingQuery) {\n textNodeContainingQuery.remove()\n }\n })\n\n setTimeout(() => {\n selectedItem.onSelect({\n editor,\n queryString: resolution.match ? resolution.match.matchingString : '',\n })\n }, 0)\n },\n [editor, shouldSplitNodeWithQuery, resolution.match, close],\n )\n\n useEffect(() => {\n return () => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.removeAttribute('aria-activedescendant')\n }\n }\n }, [editor])\n\n useLayoutEffect(() => {\n if (groups === null) {\n setSelectedItemKey(null)\n } else if (selectedItemKey === null) {\n setSelectedItemKeyToFirstMatchingItem()\n }\n }, [groups, selectedItemKey, updateSelectedItem, setSelectedItemKeyToFirstMatchingItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND,\n ({ item }) => {\n if (item.ref && item.ref.current != null) {\n scrollIntoViewIfNeeded(item.ref.current)\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, updateSelectedItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_DOWN_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== allItems.length - 1 ? selectedIndex + 1 : 0\n\n const newSelectedItem = allItems[newSelectedIndex]\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n editor.dispatchCommand(SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND, {\n index: newSelectedIndex,\n item: newSelectedItem,\n })\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_UP_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== 0 ? selectedIndex - 1 : allItems.length - 1\n\n const newSelectedItem = allItems[newSelectedIndex]\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n scrollIntoViewIfNeeded(newSelectedItem.ref.current)\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ESCAPE_COMMAND,\n (payload) => {\n const event = payload\n event.preventDefault()\n event.stopImmediatePropagation()\n close()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_TAB_COMMAND,\n (payload) => {\n const event = payload\n\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n event.preventDefault()\n event.stopImmediatePropagation()\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ENTER_COMMAND,\n (event: KeyboardEvent | null) => {\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n if (event !== null) {\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [selectItemAndCleanUp, close, editor, groups, selectedItemKey, updateSelectedItem])\n\n const listItemProps = useMemo(\n () => ({\n groups,\n selectedItemKey,\n selectItemAndCleanUp,\n setSelectedItemKey,\n }),\n [selectItemAndCleanUp, selectedItemKey, groups],\n )\n\n return menuRenderFn(\n anchorElementRef,\n listItemProps,\n resolution.match ? resolution.match.matchingString : '',\n )\n}\n\nexport function useMenuAnchorRef(\n anchorElem: HTMLElement,\n resolution: MenuResolution | null,\n setResolution: (r: MenuResolution | null) => void,\n className?: string,\n): RefObject<HTMLElement | null> {\n const [editor] = useLexicalComposerContext()\n const anchorElementRef = useRef<HTMLElement | null>(\n CAN_USE_DOM ? document.createElement('div') : null,\n )\n const positionMenu = useCallback(() => {\n if (anchorElementRef.current === null || parent === undefined) {\n return\n }\n const rootElement = editor.getRootElement()\n const containerDiv = anchorElementRef.current\n\n const VERTICAL_OFFSET = 32\n\n const menuEle = containerDiv.firstChild as Element\n if (rootElement !== null && resolution !== null) {\n const { height, width } = resolution.getRect()\n let { left, top } = resolution.getRect()\n\n const rawTop = top\n top -= anchorElem.getBoundingClientRect().top + window.scrollY\n left -= anchorElem.getBoundingClientRect().left + window.scrollX\n containerDiv.style.left = `${left + window.scrollX}px`\n containerDiv.style.height = `${height}px`\n containerDiv.style.width = `${width}px`\n if (menuEle !== null) {\n const menuRect = menuEle.getBoundingClientRect()\n const menuHeight = menuRect.height\n const menuWidth = menuRect.width\n\n const rootElementRect = rootElement.getBoundingClientRect()\n\n if (left + menuWidth > rootElementRect.right) {\n containerDiv.style.left = `${rootElementRect.right - menuWidth + window.scrollX}px`\n }\n\n const wouldGoOffBottomOfScreen = rawTop + menuHeight + VERTICAL_OFFSET > window.innerHeight\n //const wouldGoOffBottomOfContainer = top + menuHeight > rootElementRect.bottom\n const wouldGoOffTopOfScreen = rawTop < 0\n\n // Position slash menu above the cursor instead of below (default) if it would otherwise go off the bottom of the screen.\n if (wouldGoOffBottomOfScreen && !wouldGoOffTopOfScreen) {\n const margin = 24\n containerDiv.style.top = `${\n top + VERTICAL_OFFSET - menuHeight + window.scrollY - (height + margin)\n }px`\n } else {\n containerDiv.style.top = `${top + window.scrollY + VERTICAL_OFFSET}px`\n }\n }\n\n if (!containerDiv.isConnected) {\n if (className != null) {\n containerDiv.className = className\n }\n containerDiv.setAttribute('aria-label', 'Slash menu')\n containerDiv.setAttribute('id', 'slash-menu')\n containerDiv.setAttribute('role', 'listbox')\n containerDiv.style.display = 'block'\n containerDiv.style.position = 'absolute'\n anchorElem.append(containerDiv)\n }\n anchorElementRef.current = containerDiv\n rootElement.setAttribute('aria-controls', 'slash-menu')\n }\n }, [editor, resolution, className, anchorElem])\n\n useEffect(() => {\n const rootElement = editor.getRootElement()\n if (resolution !== null) {\n positionMenu()\n return () => {\n if (rootElement !== null) {\n rootElement.removeAttribute('aria-controls')\n }\n\n const containerDiv = anchorElementRef.current\n if (containerDiv !== null && containerDiv.isConnected) {\n containerDiv.remove()\n }\n }\n }\n }, [editor, positionMenu, resolution])\n\n const onVisibilityChange = useCallback(\n (isInView: boolean) => {\n if (resolution !== null) {\n if (!isInView) {\n setResolution(null)\n }\n }\n },\n [resolution, setResolution],\n )\n\n useDynamicPositioning(resolution, anchorElementRef, positionMenu, onVisibilityChange)\n\n return anchorElementRef\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LexicalMenu.js","names":["c","_c","useLexicalComposerContext","mergeRegister","$getSelection","$isRangeSelection","COMMAND_PRIORITY_LOW","createCommand","KEY_ARROW_DOWN_COMMAND","KEY_ARROW_UP_COMMAND","KEY_ENTER_COMMAND","KEY_ESCAPE_COMMAND","KEY_TAB_COMMAND","useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","CAN_USE_DOM","baseClass","scrollIntoViewIfNeeded","target","typeaheadContainerNode","document","getElementById","typeaheadRect","getBoundingClientRect","top","height","window","innerHeight","scrollIntoView","block","getFullMatchOffset","documentText","entryText","offset","triggerOffset","i","length","substring","$splitNodeContainingQuery","match","selection","isCollapsed","anchor","type","anchorNode","getNode","isSimpleText","selectionOffset","textContent","getTextContent","slice","characterOffset","replaceableString","queryOffset","matchingString","startOffset","newNode","splitText","getScrollParent","element","includeHidden","style","getComputedStyle","excludeStaticParent","position","overflowRegex","body","parent1","parentElement","test","overflow","overflowY","overflowX","isTriggerVisibleInNearestScrollContainer","targetElement","containerElement","tRect","cRect","bottom","useDynamicPositioning","resolution","targetElementRef","onReposition","onVisibilityChange","$","editor","t0","current","rootElement","getRootElement","rootScrollParent","ticking","previousIsInView","handleScroll","requestAnimationFrame","isInView","resizeObserver","ResizeObserver","addEventListener","capture","passive","observe","disconnect","removeEventListener","t1","SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND","LexicalMenu","anchorElementRef","close","groups","menuRenderFn","shouldSplitNodeWithQuery","selectedItemKey","setSelectedItemKey","updateSelectedItem","item","rootElem","setAttribute","key","setSelectedItemKeyToFirstMatchingItem","allItems","flatMap","group","items","firstMatchingItem","selectItemAndCleanUp","selectedItem","update","textNodeContainingQuery","remove","setTimeout","onSelect","queryString","removeAttribute","registerCommand","ref","payload","event","selectedIndex","findIndex","newSelectedIndex","newSelectedItem","dispatchCommand","index","preventDefault","stopImmediatePropagation","find","listItemProps","useMenuAnchorRef","anchorElem","setResolution","className","Symbol","for","createElement","parent","undefined","containerDiv","menuEle","firstChild","width","getRect","left","rawTop","scrollY","scrollX","menuRect","menuHeight","menuWidth","rootElementRect","right","wouldGoOffBottomOfScreen","wouldGoOffTopOfScreen","isConnected","display","append","positionMenu","t2","t3","rootElement_0","containerDiv_0","t4"],"sources":["../../../../../src/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.tsx"],"sourcesContent":["'use client'\nimport type { LexicalCommand, LexicalEditor, TextNode } from 'lexical'\nimport type { JSX, ReactPortal, RefObject } from 'react'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { mergeRegister } from '@lexical/utils'\nimport {\n $getSelection,\n $isRangeSelection,\n COMMAND_PRIORITY_LOW,\n createCommand,\n KEY_ARROW_DOWN_COMMAND,\n KEY_ARROW_UP_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n KEY_TAB_COMMAND,\n} from 'lexical'\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport type { MenuTextMatch } from '../useMenuTriggerMatch.js'\nimport type { SlashMenuGroupInternal, SlashMenuItem, SlashMenuItemInternal } from './types.js'\n\nimport { CAN_USE_DOM } from '../../../utils/canUseDOM.js'\n\nexport type MenuResolution = {\n getRect: () => DOMRect\n match?: MenuTextMatch\n}\n\nconst baseClass = 'slash-menu-popup'\n\nexport type MenuRenderFn = (\n anchorElementRef: RefObject<HTMLElement | null>,\n itemProps: {\n groups: Array<SlashMenuGroupInternal>\n selectedItemKey: null | string\n selectItemAndCleanUp: (selectedItem: SlashMenuItem) => void\n setSelectedItemKey: (itemKey: string) => void\n },\n matchingString: null | string,\n) => JSX.Element | null | ReactPortal\n\nconst scrollIntoViewIfNeeded = (target: HTMLElement) => {\n const typeaheadContainerNode = document.getElementById('slash-menu')\n if (!typeaheadContainerNode) {\n return\n }\n\n const typeaheadRect = typeaheadContainerNode.getBoundingClientRect()\n\n if (typeaheadRect.top + typeaheadRect.height > window.innerHeight) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n if (typeaheadRect.top < 0) {\n typeaheadContainerNode.scrollIntoView({\n block: 'center',\n })\n }\n\n target.scrollIntoView({ block: 'nearest' })\n}\n\n/**\n * Walk backwards along user input and forward through entity title to try\n * and replace more of the user's text with entity.\n */\nfunction getFullMatchOffset(documentText: string, entryText: string, offset: number) {\n let triggerOffset = offset\n for (let i = triggerOffset; i <= entryText.length; i++) {\n if (documentText.substring(documentText.length - i) === entryText.substring(0, i)) {\n triggerOffset = i\n }\n }\n return triggerOffset\n}\n\n/**\n * Split Lexical TextNode and return a new TextNode only containing matched text.\n * Common use cases include: removing the node, replacing with a new node.\n */\nfunction $splitNodeContainingQuery(match: MenuTextMatch): null | TextNode {\n const selection = $getSelection()\n if (!$isRangeSelection(selection) || !selection.isCollapsed()) {\n return null\n }\n const anchor = selection.anchor\n if (anchor.type !== 'text') {\n return null\n }\n const anchorNode = anchor.getNode()\n if (!anchorNode.isSimpleText()) {\n return null\n }\n const selectionOffset = anchor.offset\n const textContent = anchorNode.getTextContent().slice(0, selectionOffset)\n const characterOffset = match.replaceableString.length\n const queryOffset = getFullMatchOffset(textContent, match.matchingString, characterOffset)\n const startOffset = selectionOffset - queryOffset\n if (startOffset < 0) {\n return null\n }\n let newNode\n if (startOffset === 0) {\n ;[newNode] = anchorNode.splitText(selectionOffset)\n } else {\n ;[, newNode] = anchorNode.splitText(startOffset, selectionOffset)\n }\n\n return newNode\n}\n\n// Got from https://stackoverflow.com/a/42543908/2013580\nexport function getScrollParent(\n element: HTMLElement,\n includeHidden: boolean,\n): HTMLBodyElement | HTMLElement {\n let style = getComputedStyle(element)\n const excludeStaticParent = style.position === 'absolute'\n const overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/\n if (style.position === 'fixed') {\n return document.body\n }\n for (let parent: HTMLElement | null = element; (parent = parent.parentElement); ) {\n style = getComputedStyle(parent)\n if (excludeStaticParent && style.position === 'static') {\n continue\n }\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent\n }\n }\n return document.body\n}\n\nfunction isTriggerVisibleInNearestScrollContainer(\n targetElement: HTMLElement,\n containerElement: HTMLElement,\n): boolean {\n const tRect = targetElement.getBoundingClientRect()\n const cRect = containerElement.getBoundingClientRect()\n return tRect.top > cRect.top && tRect.top < cRect.bottom\n}\n\n// Reposition the menu on scroll, window resize, and element resize.\nexport function useDynamicPositioning(\n resolution: MenuResolution | null,\n targetElementRef: RefObject<HTMLElement | null>,\n onReposition: () => void,\n onVisibilityChange?: (isInView: boolean) => void,\n) {\n const [editor] = useLexicalComposerContext()\n useEffect(() => {\n const targetElement = targetElementRef.current\n if (targetElement != null && resolution != null) {\n const rootElement = editor.getRootElement()\n const rootScrollParent =\n rootElement != null ? getScrollParent(rootElement, false) : document.body\n let ticking = false\n let previousIsInView = isTriggerVisibleInNearestScrollContainer(\n targetElement,\n rootScrollParent,\n )\n const handleScroll = function () {\n if (!ticking) {\n window.requestAnimationFrame(function () {\n onReposition()\n ticking = false\n })\n ticking = true\n }\n const isInView = isTriggerVisibleInNearestScrollContainer(targetElement, rootScrollParent)\n if (isInView !== previousIsInView) {\n previousIsInView = isInView\n if (onVisibilityChange != null) {\n onVisibilityChange(isInView)\n }\n }\n }\n const resizeObserver = new ResizeObserver(onReposition)\n window.addEventListener('resize', onReposition)\n document.addEventListener('scroll', handleScroll, {\n capture: true,\n passive: true,\n })\n resizeObserver.observe(targetElement)\n return () => {\n resizeObserver.disconnect()\n window.removeEventListener('resize', onReposition)\n document.removeEventListener('scroll', handleScroll, true)\n }\n }\n }, [editor, onVisibilityChange, onReposition, resolution, targetElementRef])\n}\n\nexport const SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND: LexicalCommand<{\n index: number\n item: SlashMenuItemInternal\n}> = createCommand('SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND')\n\nexport function LexicalMenu({\n anchorElementRef,\n close,\n editor,\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n groups,\n menuRenderFn,\n resolution,\n shouldSplitNodeWithQuery = false,\n}: {\n anchorElementRef: RefObject<HTMLElement | null>\n close: () => void\n editor: LexicalEditor\n groups: Array<SlashMenuGroupInternal>\n menuRenderFn: MenuRenderFn\n resolution: MenuResolution\n shouldSplitNodeWithQuery?: boolean\n}): JSX.Element | null {\n const [selectedItemKey, setSelectedItemKey] = useState<null | string>(null)\n\n const matchingString = (resolution.match && resolution.match.matchingString) || ''\n\n const updateSelectedItem = useCallback(\n (item: SlashMenuItem) => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.setAttribute('aria-activedescendant', `${baseClass}__item-${item.key}`)\n setSelectedItemKey(item.key)\n }\n },\n [editor],\n )\n\n const setSelectedItemKeyToFirstMatchingItem = useCallback(() => {\n // set selected item to the first of the matching ones\n if (groups !== null && matchingString != null) {\n // groups filtering is already handled in SlashMenu/index.tsx. Thus, groups always contains the matching items.\n const allItems = groups.flatMap((group) => group.items)\n\n if (allItems.length) {\n const firstMatchingItem = allItems[0]\n updateSelectedItem(firstMatchingItem)\n }\n }\n }, [groups, updateSelectedItem, matchingString])\n\n useEffect(() => {\n setSelectedItemKeyToFirstMatchingItem()\n }, [matchingString, setSelectedItemKeyToFirstMatchingItem])\n\n const selectItemAndCleanUp = useCallback(\n (selectedItem: SlashMenuItem) => {\n close()\n\n editor.update(() => {\n const textNodeContainingQuery =\n resolution.match != null && shouldSplitNodeWithQuery\n ? $splitNodeContainingQuery(resolution.match)\n : null\n\n if (textNodeContainingQuery) {\n textNodeContainingQuery.remove()\n }\n })\n\n setTimeout(() => {\n selectedItem.onSelect({\n editor,\n queryString: resolution.match ? resolution.match.matchingString : '',\n })\n }, 0)\n },\n [editor, shouldSplitNodeWithQuery, resolution.match, close],\n )\n\n useEffect(() => {\n return () => {\n const rootElem = editor.getRootElement()\n if (rootElem !== null) {\n rootElem.removeAttribute('aria-activedescendant')\n }\n }\n }, [editor])\n\n useLayoutEffect(() => {\n if (groups === null) {\n setSelectedItemKey(null)\n } else if (selectedItemKey === null) {\n setSelectedItemKeyToFirstMatchingItem()\n }\n }, [groups, selectedItemKey, updateSelectedItem, setSelectedItemKeyToFirstMatchingItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand(\n SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND,\n ({ item }) => {\n if (item.ref && item.ref.current != null) {\n scrollIntoViewIfNeeded(item.ref.current)\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, updateSelectedItem])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_DOWN_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== allItems.length - 1 ? selectedIndex + 1 : 0\n\n const newSelectedItem = allItems[newSelectedIndex]\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n editor.dispatchCommand(SCROLL_TYPEAHEAD_OPTION_INTO_VIEW_COMMAND, {\n index: newSelectedIndex,\n item: newSelectedItem,\n })\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ARROW_UP_COMMAND,\n (payload) => {\n const event = payload\n if (groups !== null && groups.length && selectedItemKey !== null) {\n const allItems = groups.flatMap((group) => group.items)\n const selectedIndex = allItems.findIndex((item) => item.key === selectedItemKey)\n\n const newSelectedIndex = selectedIndex !== 0 ? selectedIndex - 1 : allItems.length - 1\n\n const newSelectedItem = allItems[newSelectedIndex]\n\n updateSelectedItem(newSelectedItem)\n if (newSelectedItem.ref != null && newSelectedItem.ref.current) {\n scrollIntoViewIfNeeded(newSelectedItem.ref.current)\n }\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_ESCAPE_COMMAND,\n (payload) => {\n const event = payload\n event.preventDefault()\n event.stopImmediatePropagation()\n close()\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand<KeyboardEvent>(\n KEY_TAB_COMMAND,\n (payload) => {\n const event = payload\n\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n event.preventDefault()\n event.stopImmediatePropagation()\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n KEY_ENTER_COMMAND,\n (event: KeyboardEvent | null) => {\n if (groups === null || selectedItemKey === null) {\n return false\n }\n const allItems = groups.flatMap((group) => group.items)\n const selectedItem = allItems.find((item) => item.key === selectedItemKey)\n if (!selectedItem) {\n return false\n }\n\n if (event !== null) {\n event.preventDefault()\n event.stopImmediatePropagation()\n }\n selectItemAndCleanUp(selectedItem)\n return true\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [selectItemAndCleanUp, close, editor, groups, selectedItemKey, updateSelectedItem])\n\n const listItemProps = useMemo(\n () => ({\n groups,\n selectedItemKey,\n selectItemAndCleanUp,\n setSelectedItemKey,\n }),\n [selectItemAndCleanUp, selectedItemKey, groups],\n )\n\n return menuRenderFn(\n anchorElementRef,\n listItemProps,\n resolution.match ? resolution.match.matchingString : '',\n )\n}\n\nexport function useMenuAnchorRef(\n anchorElem: HTMLElement,\n resolution: MenuResolution | null,\n setResolution: (r: MenuResolution | null) => void,\n className?: string,\n): RefObject<HTMLElement | null> {\n const [editor] = useLexicalComposerContext()\n const anchorElementRef = useRef<HTMLElement | null>(\n CAN_USE_DOM ? document.createElement('div') : null,\n )\n const positionMenu = useCallback(() => {\n if (anchorElementRef.current === null || parent === undefined) {\n return\n }\n const rootElement = editor.getRootElement()\n const containerDiv = anchorElementRef.current\n\n const VERTICAL_OFFSET = 32\n\n const menuEle = containerDiv.firstChild as Element\n if (rootElement !== null && resolution !== null) {\n const { height, width } = resolution.getRect()\n let { left, top } = resolution.getRect()\n\n const rawTop = top\n top -= anchorElem.getBoundingClientRect().top + window.scrollY\n left -= anchorElem.getBoundingClientRect().left + window.scrollX\n containerDiv.style.left = `${left + window.scrollX}px`\n containerDiv.style.height = `${height}px`\n containerDiv.style.width = `${width}px`\n if (menuEle !== null) {\n const menuRect = menuEle.getBoundingClientRect()\n const menuHeight = menuRect.height\n const menuWidth = menuRect.width\n\n const rootElementRect = rootElement.getBoundingClientRect()\n\n if (left + menuWidth > rootElementRect.right) {\n containerDiv.style.left = `${rootElementRect.right - menuWidth + window.scrollX}px`\n }\n\n const wouldGoOffBottomOfScreen = rawTop + menuHeight + VERTICAL_OFFSET > window.innerHeight\n //const wouldGoOffBottomOfContainer = top + menuHeight > rootElementRect.bottom\n const wouldGoOffTopOfScreen = rawTop < 0\n\n // Position slash menu above the cursor instead of below (default) if it would otherwise go off the bottom of the screen.\n if (wouldGoOffBottomOfScreen && !wouldGoOffTopOfScreen) {\n const margin = 24\n containerDiv.style.top = `${\n top + VERTICAL_OFFSET - menuHeight + window.scrollY - (height + margin)\n }px`\n } else {\n containerDiv.style.top = `${top + window.scrollY + VERTICAL_OFFSET}px`\n }\n }\n\n if (!containerDiv.isConnected) {\n if (className != null) {\n containerDiv.className = className\n }\n containerDiv.setAttribute('aria-label', 'Slash menu')\n containerDiv.setAttribute('id', 'slash-menu')\n containerDiv.setAttribute('role', 'listbox')\n containerDiv.style.display = 'block'\n containerDiv.style.position = 'absolute'\n anchorElem.append(containerDiv)\n }\n anchorElementRef.current = containerDiv\n rootElement.setAttribute('aria-controls', 'slash-menu')\n }\n }, [editor, resolution, className, anchorElem])\n\n useEffect(() => {\n const rootElement = editor.getRootElement()\n if (resolution !== null) {\n positionMenu()\n return () => {\n if (rootElement !== null) {\n rootElement.removeAttribute('aria-controls')\n }\n\n const containerDiv = anchorElementRef.current\n if (containerDiv !== null && containerDiv.isConnected) {\n containerDiv.remove()\n }\n }\n }\n }, [editor, positionMenu, resolution])\n\n const onVisibilityChange = useCallback(\n (isInView: boolean) => {\n if (resolution !== null) {\n if (!isInView) {\n setResolution(null)\n }\n }\n },\n [resolution, setResolution],\n )\n\n useDynamicPositioning(resolution, anchorElementRef, positionMenu, onVisibilityChange)\n\n return anchorElementRef\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,aAAa,QAAQ;AAC9B,SACEC,aAAa,EACbC,iBAAiB,EACjBC,oBAAoB,EACpBC,aAAa,EACbC,sBAAsB,EACtBC,oBAAoB,EACpBC,iBAAiB,EACjBC,kBAAkB,EAClBC,eAAe,QACV;AACP,SAASC,WAAW,EAAEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAKnF,SAASC,WAAW,QAAQ;AAO5B,MAAMC,SAAA,GAAY;AAalB,MAAMC,sBAAA,GAA0BC,MAAA;EAC9B,MAAMC,sBAAA,GAAyBC,QAAA,CAASC,cAAc,CAAC;EACvD,IAAI,CAACF,sBAAA,EAAwB;IAC3B;EACF;EAEA,MAAMG,aAAA,GAAgBH,sBAAA,CAAuBI,qBAAqB;EAElE,IAAID,aAAA,CAAcE,GAAG,GAAGF,aAAA,CAAcG,MAAM,GAAGC,MAAA,CAAOC,WAAW,EAAE;IACjER,sBAAA,CAAuBS,cAAc,CAAC;MACpCC,KAAA,EAAO;IACT;EACF;EAEA,IAAIP,aAAA,CAAcE,GAAG,GAAG,GAAG;IACzBL,sBAAA,CAAuBS,cAAc,CAAC;MACpCC,KAAA,EAAO;IACT;EACF;EAEAX,MAAA,CAAOU,cAAc,CAAC;IAAEC,KAAA,EAAO;EAAU;AAC3C;AAEA;;;;AAIA,SAASC,mBAAmBC,YAAoB,EAAEC,SAAiB,EAAEC,MAAc;EACjF,IAAIC,aAAA,GAAgBD,MAAA;EACpB,KAAK,IAAIE,CAAA,GAAID,aAAA,EAAeC,CAAA,IAAKH,SAAA,CAAUI,MAAM,EAAED,CAAA,IAAK;IACtD,IAAIJ,YAAA,CAAaM,SAAS,CAACN,YAAA,CAAaK,MAAM,GAAGD,CAAA,MAAOH,SAAA,CAAUK,SAAS,CAAC,GAAGF,CAAA,GAAI;MACjFD,aAAA,GAAgBC,CAAA;IAClB;EACF;EACA,OAAOD,aAAA;AACT;AAEA;;;;AAIA,SAASI,0BAA0BC,KAAoB;EACrD,MAAMC,SAAA,GAAYxC,aAAA;EAClB,IAAI,CAACC,iBAAA,CAAkBuC,SAAA,KAAc,CAACA,SAAA,CAAUC,WAAW,IAAI;IAC7D,OAAO;EACT;EACA,MAAMC,MAAA,GAASF,SAAA,CAAUE,MAAM;EAC/B,IAAIA,MAAA,CAAOC,IAAI,KAAK,QAAQ;IAC1B,OAAO;EACT;EACA,MAAMC,UAAA,GAAaF,MAAA,CAAOG,OAAO;EACjC,IAAI,CAACD,UAAA,CAAWE,YAAY,IAAI;IAC9B,OAAO;EACT;EACA,MAAMC,eAAA,GAAkBL,MAAA,CAAOT,MAAM;EACrC,MAAMe,WAAA,GAAcJ,UAAA,CAAWK,cAAc,GAAGC,KAAK,CAAC,GAAGH,eAAA;EACzD,MAAMI,eAAA,GAAkBZ,KAAA,CAAMa,iBAAiB,CAAChB,MAAM;EACtD,MAAMiB,WAAA,GAAcvB,kBAAA,CAAmBkB,WAAA,EAAaT,KAAA,CAAMe,cAAc,EAAEH,eAAA;EAC1E,MAAMI,WAAA,GAAcR,eAAA,GAAkBM,WAAA;EACtC,IAAIE,WAAA,GAAc,GAAG;IACnB,OAAO;EACT;EACA,IAAIC,OAAA;EACJ,IAAID,WAAA,KAAgB,GAAG;IACpB,CAACC,OAAA,CAAQ,GAAGZ,UAAA,CAAWa,SAAS,CAACV,eAAA;EACpC,OAAO;IACJ,GAAGS,OAAA,CAAQ,GAAGZ,UAAA,CAAWa,SAAS,CAACF,WAAA,EAAaR,eAAA;EACnD;EAEA,OAAOS,OAAA;AACT;AAEA;AACA,OAAO,SAASE,gBACdC,OAAoB,EACpBC,aAAsB;EAEtB,IAAIC,KAAA,GAAQC,gBAAA,CAAiBH,OAAA;EAC7B,MAAMI,mBAAA,GAAsBF,KAAA,CAAMG,QAAQ,KAAK;EAC/C,MAAMC,aAAA,GAAgBL,aAAA,GAAgB,yBAAyB;EAC/D,IAAIC,KAAA,CAAMG,QAAQ,KAAK,SAAS;IAC9B,OAAO5C,QAAA,CAAS8C,IAAI;EACtB;EACA,KAAK,IAAIC,OAAA,GAA6BR,OAAA,EAAUQ,OAAA,GAASA,OAAA,CAAOC,aAAa,GAAK;IAChFP,KAAA,GAAQC,gBAAA,CAAiBK,OAAA;IACzB,IAAIJ,mBAAA,IAAuBF,KAAA,CAAMG,QAAQ,KAAK,UAAU;MACtD;IACF;IACA,IAAIC,aAAA,CAAcI,IAAI,CAACR,KAAA,CAAMS,QAAQ,GAAGT,KAAA,CAAMU,SAAS,GAAGV,KAAA,CAAMW,SAAS,GAAG;MAC1E,OAAOL,OAAA;IACT;EACF;EACA,OAAO/C,QAAA,CAAS8C,IAAI;AACtB;AAEA,SAASO,yCACPC,aAA0B,EAC1BC,gBAA6B;EAE7B,MAAMC,KAAA,GAAQF,aAAA,CAAcnD,qBAAqB;EACjD,MAAMsD,KAAA,GAAQF,gBAAA,CAAiBpD,qBAAqB;EACpD,OAAOqD,KAAA,CAAMpD,GAAG,GAAGqD,KAAA,CAAMrD,GAAG,IAAIoD,KAAA,CAAMpD,GAAG,GAAGqD,KAAA,CAAMC,MAAM;AAC1D;AAEA;AACA,OAAO,SAAAC,sBAAAC,UAAA,EAAAC,gBAAA,EAAAC,YAAA,EAAAC,kBAAA;EAAA,MAAAC,CAAA,GAAAvF,EAAA;EAML,OAAAwF,MAAA,IAAiBvF,yBAAA;EAAA,IAAAwF,EAAA;EAAA,IAAAF,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAF,YAAA,IAAAE,CAAA,QAAAD,kBAAA,IAAAC,CAAA,QAAAJ,UAAA,IAAAI,CAAA,QAAAH,gBAAA,CAAAM,OAAA;IACPD,EAAA,GAAAA,CAAA;MACR,MAAAZ,aAAA,GAAsBO,gBAAA,CAAAM,OAAA;MAAwB,IAC1Cb,aAAA,QAAiB,IAAQM,UAAA,QAAc;QACzC,MAAAQ,WAAA,GAAoBH,MAAA,CAAAI,cAAA,CAAqB;QACzC,MAAAC,gBAAA,GACEF,WAAA,QAAe,GAAO9B,eAAA,CAAgB8B,WAAA,OAAa,IAAApE,QAAA,CAAA8C,IAAsB;QAC3E,IAAAyB,OAAA;QAAAA,OAAA;QACA,IAAAC,gBAAA;QAAAA,gBAAA,GAAuBnB,wCAAA,CACrBC,aAAA,EACAgB,gBAAA;QAEF,MAAAG,YAAA,YAAAA,CAAA;UAAA,KACOF,OAAA;YACHjE,MAAA,CAAAoE,qBAAA;cACEZ,YAAA;cACAS,OAAA,CAAAA,CAAA,CAAAA,KAAA;YAAA,CACF;YACAA,OAAA,CAAAA,CAAA,CAAAA,IAAA;UAAA;UAEF,MAAAI,QAAA,GAAiBtB,wCAAA,CAAyCC,aAAA,EAAegB,gBAAA;UAAA,IACrEK,QAAA,KAAaH,gBAAA;YACfA,gBAAA,CAAAA,CAAA,CAAmBG,QAAA;YAAnB,IACIZ,kBAAA,QAAsB;cACxBA,kBAAA,CAAmBY,QAAA;YAAA;UAAA;QAAA;QAIzB,MAAAC,cAAA,OAAAC,cAAA,CAA0Cf,YAAA;QAC1CxD,MAAA,CAAAwE,gBAAA,CAAwB,UAAUhB,YAAA;QAClC9D,QAAA,CAAA8E,gBAAA,CAA0B,UAAUL,YAAA;UAAAM,OAAA;UAAAC,OAAA;QAAA,CAGpC;QACAJ,cAAA,CAAAK,OAAA,CAAuB3B,aAAA;QAAA;UAErBsB,cAAA,CAAAM,UAAA,CAAyB;UACzB5E,MAAA,CAAA6E,mBAAA,CAA2B,UAAUrB,YAAA;UACrC9D,QAAA,CAAAmF,mBAAA,CAA6B,UAAUV,YAAA,MAAc;QAAA;MAAA;IAAA;IAG3DT,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAF,YAAA;IAAAE,CAAA,MAAAD,kBAAA;IAAAC,CAAA,MAAAJ,UAAA;IAAAI,CAAA,MAAAH,gBAAA,CAAAM,OAAA;IAAAH,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAAA,IAAAoB,EAAA;EAAA,IAAApB,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAF,YAAA,IAAAE,CAAA,QAAAD,kBAAA,IAAAC,CAAA,QAAAJ,UAAA,IAAAI,CAAA,SAAAH,gBAAA;IAAGuB,EAAA,IAACnB,MAAA,EAAQF,kBAAA,EAAoBD,YAAA,EAAcF,UAAA,EAAYC,gBAAA;IAAiBG,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAF,YAAA;IAAAE,CAAA,MAAAD,kBAAA;IAAAC,CAAA,MAAAJ,UAAA;IAAAI,CAAA,OAAAH,gBAAA;IAAAG,CAAA,OAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAxC3E1E,SAAA,CAAU4E,EAwCV,EAAGkB,EAAwE;AAAA;AAG7E,OAAO,MAAMC,yCAAA,GAGRtG,aAAA,CAAc;AAEnB,OAAO,SAASuG,YAAY;EAC1BC,gBAAgB;EAChBC,KAAK;EACLvB,MAAM;EACN;EACAwB,MAAM;EACNC,YAAY;EACZ9B,UAAU;EACV+B,wBAAA,GAA2B;AAAK,CASjC;EACC,MAAM,CAACC,eAAA,EAAiBC,kBAAA,CAAmB,GAAGnG,QAAA,CAAwB;EAEtE,MAAMwC,cAAA,GAAiB0B,UAAC,CAAWzC,KAAK,IAAIyC,UAAA,CAAWzC,KAAK,CAACe,cAAc,IAAK;EAEhF,MAAM4D,kBAAA,GAAqBzG,WAAA,CACxB0G,IAAA;IACC,MAAMC,QAAA,GAAW/B,MAAA,CAAOI,cAAc;IACtC,IAAI2B,QAAA,KAAa,MAAM;MACrBA,QAAA,CAASC,YAAY,CAAC,yBAAyB,GAAGrG,SAAA,UAAmBmG,IAAA,CAAKG,GAAG,EAAE;MAC/EL,kBAAA,CAAmBE,IAAA,CAAKG,GAAG;IAC7B;EACF,GACA,CAACjC,MAAA,CAAO;EAGV,MAAMkC,qCAAA,GAAwC9G,WAAA,CAAY;IACxD;IACA,IAAIoG,MAAA,KAAW,QAAQvD,cAAA,IAAkB,MAAM;MAC7C;MACA,MAAMkE,QAAA,GAAWX,MAAA,CAAOY,OAAO,CAAEC,KAAA,IAAUA,KAAA,CAAMC,KAAK;MAEtD,IAAIH,QAAA,CAASpF,MAAM,EAAE;QACnB,MAAMwF,iBAAA,GAAoBJ,QAAQ,CAAC,EAAE;QACrCN,kBAAA,CAAmBU,iBAAA;MACrB;IACF;EACF,GAAG,CAACf,MAAA,EAAQK,kBAAA,EAAoB5D,cAAA,CAAe;EAE/C5C,SAAA,CAAU;IACR6G,qCAAA;EACF,GAAG,CAACjE,cAAA,EAAgBiE,qCAAA,CAAsC;EAE1D,MAAMM,oBAAA,GAAuBpH,WAAA,CAC1BqH,YAAA;IACClB,KAAA;IAEAvB,MAAA,CAAO0C,MAAM,CAAC;MACZ,MAAMC,uBAAA,GACJhD,UAAA,CAAWzC,KAAK,IAAI,QAAQwE,wBAAA,GACxBzE,yBAAA,CAA0B0C,UAAA,CAAWzC,KAAK,IAC1C;MAEN,IAAIyF,uBAAA,EAAyB;QAC3BA,uBAAA,CAAwBC,MAAM;MAChC;IACF;IAEAC,UAAA,CAAW;MACTJ,YAAA,CAAaK,QAAQ,CAAC;QACpB9C,MAAA;QACA+C,WAAA,EAAapD,UAAA,CAAWzC,KAAK,GAAGyC,UAAA,CAAWzC,KAAK,CAACe,cAAc,GAAG;MACpE;IACF,GAAG;EACL,GACA,CAAC+B,MAAA,EAAQ0B,wBAAA,EAA0B/B,UAAA,CAAWzC,KAAK,EAAEqE,KAAA,CAAM;EAG7DlG,SAAA,CAAU;IACR,OAAO;MACL,MAAM0G,UAAA,GAAW/B,MAAA,CAAOI,cAAc;MACtC,IAAI2B,UAAA,KAAa,MAAM;QACrBA,UAAA,CAASiB,eAAe,CAAC;MAC3B;IACF;EACF,GAAG,CAAChD,MAAA,CAAO;EAEX1E,eAAA,CAAgB;IACd,IAAIkG,MAAA,KAAW,MAAM;MACnBI,kBAAA,CAAmB;IACrB,OAAO,IAAID,eAAA,KAAoB,MAAM;MACnCO,qCAAA;IACF;EACF,GAAG,CAACV,MAAA,EAAQG,eAAA,EAAiBE,kBAAA,EAAoBK,qCAAA,CAAsC;EAEvF7G,SAAA,CAAU;IACR,OAAOX,aAAA,CACLsF,MAAA,CAAOiD,eAAe,CACpB7B,yCAAA,EACA,CAAC;MAAEU,IAAI,EAAJA;IAAI,CAAE;MACP,IAAIA,MAAA,CAAKoB,GAAG,IAAIpB,MAAA,CAAKoB,GAAG,CAAChD,OAAO,IAAI,MAAM;QACxCtE,sBAAA,CAAuBkG,MAAA,CAAKoB,GAAG,CAAChD,OAAO;QACvC,OAAO;MACT;MAEA,OAAO;IACT,GACArF,oBAAA;EAGN,GAAG,CAACmF,MAAA,EAAQ6B,kBAAA,CAAmB;EAE/BxG,SAAA,CAAU;IACR,OAAOX,aAAA,CACLsF,MAAA,CAAOiD,eAAe,CACpBlI,sBAAA,EACCoI,OAAA;MACC,MAAMC,KAAA,GAAQD,OAAA;MACd,IAAI3B,MAAA,KAAW,QAAQA,MAAA,CAAOzE,MAAM,IAAI4E,eAAA,KAAoB,MAAM;QAChE,MAAMQ,UAAA,GAAWX,MAAA,CAAOY,OAAO,CAAEC,OAAA,IAAUA,OAAA,CAAMC,KAAK;QACtD,MAAMe,aAAA,GAAgBlB,UAAA,CAASmB,SAAS,CAAExB,MAAA,IAASA,MAAA,CAAKG,GAAG,KAAKN,eAAA;QAEhE,MAAM4B,gBAAA,GAAmBF,aAAA,KAAkBlB,UAAA,CAASpF,MAAM,GAAG,IAAIsG,aAAA,GAAgB,IAAI;QAErF,MAAMG,eAAA,GAAkBrB,UAAQ,CAACoB,gBAAA,CAAiB;QAElD1B,kBAAA,CAAmB2B,eAAA;QACnB,IAAIA,eAAA,CAAgBN,GAAG,IAAI,QAAQM,eAAA,CAAgBN,GAAG,CAAChD,OAAO,EAAE;UAC9DF,MAAA,CAAOyD,eAAe,CAACrC,yCAAA,EAA2C;YAChEsC,KAAA,EAAOH,gBAAA;YACPzB,IAAA,EAAM0B;UACR;QACF;QACAJ,KAAA,CAAMO,cAAc;QACpBP,KAAA,CAAMQ,wBAAwB;MAChC;MACA,OAAO;IACT,GACA/I,oBAAA,GAEFmF,MAAA,CAAOiD,eAAe,CACpBjI,oBAAA,EACCmI,SAAA;MACC,MAAMC,OAAA,GAAQD,SAAA;MACd,IAAI3B,MAAA,KAAW,QAAQA,MAAA,CAAOzE,MAAM,IAAI4E,eAAA,KAAoB,MAAM;QAChE,MAAMQ,UAAA,GAAWX,MAAA,CAAOY,OAAO,CAAEC,OAAA,IAAUA,OAAA,CAAMC,KAAK;QACtD,MAAMe,eAAA,GAAgBlB,UAAA,CAASmB,SAAS,CAAExB,MAAA,IAASA,MAAA,CAAKG,GAAG,KAAKN,eAAA;QAEhE,MAAM4B,kBAAA,GAAmBF,eAAA,KAAkB,IAAIA,eAAA,GAAgB,IAAIlB,UAAA,CAASpF,MAAM,GAAG;QAErF,MAAMyG,iBAAA,GAAkBrB,UAAQ,CAACoB,kBAAA,CAAiB;QAElD1B,kBAAA,CAAmB2B,iBAAA;QACnB,IAAIA,iBAAA,CAAgBN,GAAG,IAAI,QAAQM,iBAAA,CAAgBN,GAAG,CAAChD,OAAO,EAAE;UAC9DtE,sBAAA,CAAuB4H,iBAAA,CAAgBN,GAAG,CAAChD,OAAO;QACpD;QACAkD,OAAA,CAAMO,cAAc;QACpBP,OAAA,CAAMQ,wBAAwB;MAChC;MACA,OAAO;IACT,GACA/I,oBAAA,GAEFmF,MAAA,CAAOiD,eAAe,CACpB/H,kBAAA,EACCiI,SAAA;MACC,MAAMC,OAAA,GAAQD,SAAA;MACdC,OAAA,CAAMO,cAAc;MACpBP,OAAA,CAAMQ,wBAAwB;MAC9BrC,KAAA;MACA,OAAO;IACT,GACA1G,oBAAA,GAEFmF,MAAA,CAAOiD,eAAe,CACpB9H,eAAA,EACCgI,SAAA;MACC,MAAMC,OAAA,GAAQD,SAAA;MAEd,IAAI3B,MAAA,KAAW,QAAQG,eAAA,KAAoB,MAAM;QAC/C,OAAO;MACT;MACA,MAAMQ,UAAA,GAAWX,MAAA,CAAOY,OAAO,CAAEC,OAAA,IAAUA,OAAA,CAAMC,KAAK;MACtD,MAAMG,cAAA,GAAeN,UAAA,CAAS0B,IAAI,CAAE/B,MAAA,IAASA,MAAA,CAAKG,GAAG,KAAKN,eAAA;MAC1D,IAAI,CAACc,cAAA,EAAc;QACjB,OAAO;MACT;MAEAW,OAAA,CAAMO,cAAc;MACpBP,OAAA,CAAMQ,wBAAwB;MAC9BpB,oBAAA,CAAqBC,cAAA;MACrB,OAAO;IACT,GACA5H,oBAAA,GAEFmF,MAAA,CAAOiD,eAAe,CACpBhI,iBAAA,EACCmI,OAAA;MACC,IAAI5B,MAAA,KAAW,QAAQG,eAAA,KAAoB,MAAM;QAC/C,OAAO;MACT;MACA,MAAMQ,UAAA,GAAWX,MAAA,CAAOY,OAAO,CAAEC,OAAA,IAAUA,OAAA,CAAMC,KAAK;MACtD,MAAMG,cAAA,GAAeN,UAAA,CAAS0B,IAAI,CAAE/B,MAAA,IAASA,MAAA,CAAKG,GAAG,KAAKN,eAAA;MAC1D,IAAI,CAACc,cAAA,EAAc;QACjB,OAAO;MACT;MAEA,IAAIW,OAAA,KAAU,MAAM;QAClBA,OAAA,CAAMO,cAAc;QACpBP,OAAA,CAAMQ,wBAAwB;MAChC;MACApB,oBAAA,CAAqBC,cAAA;MACrB,OAAO;IACT,GACA5H,oBAAA;EAGN,GAAG,CAAC2H,oBAAA,EAAsBjB,KAAA,EAAOvB,MAAA,EAAQwB,MAAA,EAAQG,eAAA,EAAiBE,kBAAA,CAAmB;EAErF,MAAMiC,aAAA,GAAgBvI,OAAA,CACpB,OAAO;IACLiG,MAAA;IACAG,eAAA;IACAa,oBAAA;IACAZ;EACF,IACA,CAACY,oBAAA,EAAsBb,eAAA,EAAiBH,MAAA,CAAO;EAGjD,OAAOC,YAAA,CACLH,gBAAA,EACAwC,aAAA,EACAnE,UAAA,CAAWzC,KAAK,GAAGyC,UAAA,CAAWzC,KAAK,CAACe,cAAc,GAAG;AAEzD;AAEA,OAAO,SAAA8F,iBAAAC,UAAA,EAAArE,UAAA,EAAAsE,aAAA,EAAAC,SAAA;EAAA,MAAAnE,CAAA,GAAAvF,EAAA;EAML,OAAAwF,MAAA,IAAiBvF,yBAAA;EAAA,IAAAwF,EAAA;EAAA,IAAAF,CAAA,QAAAoE,MAAA,CAAAC,GAAA;IAEfnE,EAAA,GAAAvE,WAAA,GAAcK,QAAA,CAAAsI,aAAA,CAAuB,aAAS;IAAAtE,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EADhD,MAAAuB,gBAAA,GAAyB9F,MAAA,CACvByE,EAA8C;EAAA,IAAAkB,EAAA;EAAA,IAAApB,CAAA,QAAAiE,UAAA,IAAAjE,CAAA,QAAAmE,SAAA,IAAAnE,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAJ,UAAA;IAEfwB,EAAA,GAAAA,CAAA;MAAA,IAC3BG,gBAAA,CAAApB,OAAA,SAA6B,IAAQoE,MAAA,KAAAC,SAAW;QAAA;MAAA;MAGpD,MAAApE,WAAA,GAAoBH,MAAA,CAAAI,cAAA,CAAqB;MACzC,MAAAoE,YAAA,GAAqBlD,gBAAA,CAAApB,OAAA;MAIrB,MAAAuE,OAAA,GAAgBD,YAAA,CAAAE,UAAA;MAAuB,IACnCvE,WAAA,SAAgB,IAAQR,UAAA,SAAe;QACzC;UAAAvD,MAAA;UAAAuI;QAAA,IAA0BhF,UAAA,CAAAiF,OAAA,CAAkB;QAC5C;UAAAC,IAAA;UAAA1I;QAAA,IAAoBwD,UAAA,CAAAiF,OAAA,CAAkB;QAEtC,MAAAE,MAAA,GAAe3I,GAAA;QACfA,GAAA,GAAAA,GAAA,IAAO6H,UAAA,CAAA9H,qBAAA,CAAgC,EAAAC,GAAA,GAAAE,MAAA,CAAA0I,OAAuB;QAC9DF,IAAA,GAAAA,IAAA,IAAQb,UAAA,CAAA9H,qBAAA,CAAgC,EAAA2I,IAAA,GAAAxI,MAAA,CAAA2I,OAAwB;QAChER,YAAA,CAAAhG,KAAA,CAAAqG,IAAA,GAA0B,GAAGA,IAAA,GAAAxI,MAAA,CAAA2I,OAAqB,IAAI;QACtDR,YAAA,CAAAhG,KAAA,CAAApC,MAAA,GAA4B,GAAGA,MAAA,IAAU;QACzCoI,YAAA,CAAAhG,KAAA,CAAAmG,KAAA,GAA2B,GAAGA,KAAA,IAAS;QAAA,IACnCF,OAAA,SAAY;UACd,MAAAQ,QAAA,GAAiBR,OAAA,CAAAvI,qBAAA,CAA6B;UAC9C,MAAAgJ,UAAA,GAAmBD,QAAA,CAAA7I,MAAA;UACnB,MAAA+I,SAAA,GAAkBF,QAAA,CAAAN,KAAA;UAElB,MAAAS,eAAA,GAAwBjF,WAAA,CAAAjE,qBAAA,CAAiC;UAAA,IAErD2I,IAAA,GAAOM,SAAA,GAAYC,eAAA,CAAAC,KAAqB;YAC1Cb,YAAA,CAAAhG,KAAA,CAAAqG,IAAA,GAA0B,GAAGO,eAAA,CAAAC,KAAA,GAAwBF,SAAA,GAAA9I,MAAA,CAAA2I,OAA0B,IAAI;UAAA;UAGrF,MAAAM,wBAAA,GAAiCR,MAAA,GAASI,UAAA,KAAa,GAAA7I,MAAA,CAAAC,WAAoC;UAE3F,MAAAiJ,qBAAA,GAA8BT,MAAA,IAAS;UAAA,IAGnCQ,wBAAA,KAA6BC,qBAAA;YAE/Bf,YAAA,CAAAhG,KAAA,CAAArC,GAAA,GAAyB,GACvBA,GAAA,KAAM,GAAkB+I,UAAA,GAAA7I,MAAA,CAAA0I,OAA2B,IAAI3I,MAAA,KAAc,KACnE;UAAA;YAEJoI,YAAA,CAAAhG,KAAA,CAAArC,GAAA,GAAyB,GAAGA,GAAA,GAAAE,MAAA,CAAA0I,OAAoB,KAAG,IAAmB;UAAA;QAAA;QAAA,KAIrEP,YAAA,CAAAgB,WAAA;UAAA,IACCtB,SAAA,QAAa;YACfM,YAAA,CAAAN,SAAA,GAAyBA,SAAA;UAAA;UAE3BM,YAAA,CAAAxC,YAAA,CAA0B,cAAc;UACxCwC,YAAA,CAAAxC,YAAA,CAA0B,MAAM;UAChCwC,YAAA,CAAAxC,YAAA,CAA0B,QAAQ;UAClCwC,YAAA,CAAAhG,KAAA,CAAAiH,OAAA,GAA6B;UAC7BjB,YAAA,CAAAhG,KAAA,CAAAG,QAAA,GAA8B;UAC9BqF,UAAA,CAAA0B,MAAA,CAAkBlB,YAAA;QAAA;QAEpBlD,gBAAA,CAAApB,OAAA,GAA2BsE,YAAA;QAC3BrE,WAAA,CAAA6B,YAAA,CAAyB,iBAAiB;MAAA;IAAA;IAE9CjC,CAAA,MAAAiE,UAAA;IAAAjE,CAAA,MAAAmE,SAAA;IAAAnE,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAJ,UAAA;IAAAI,CAAA,MAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EA5DA,MAAA4F,YAAA,GAAqBxE,EA4DyB;EAAA,IAAAyE,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA9F,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAA4F,YAAA,IAAA5F,CAAA,QAAAJ,UAAA;IAEpCiG,EAAA,GAAAA,CAAA;MACR,MAAAE,aAAA,GAAoB9F,MAAA,CAAAI,cAAA,CAAqB;MAAA,IACrCT,UAAA,SAAe;QACjBgG,YAAA;QAAA;UAAA,IAEMxF,aAAA,SAAgB;YAClBA,aAAA,CAAA6C,eAAA,CAA4B;UAAA;UAG9B,MAAA+C,cAAA,GAAqBzE,gBAAA,CAAApB,OAAA;UAAwB,IACzCsE,cAAA,SAAiB,IAAQA,cAAA,CAAAgB,WAAwB;YACnDhB,cAAA,CAAA5B,MAAA,CAAmB;UAAA;QAAA;MAAA;IAAA;IAIxBiD,EAAA,IAAC7F,MAAA,EAAQ2F,YAAA,EAAchG,UAAA;IAAWI,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAA4F,YAAA;IAAA5F,CAAA,MAAAJ,UAAA;IAAAI,CAAA,MAAA6F,EAAA;IAAA7F,CAAA,OAAA8F,EAAA;EAAA;IAAAD,EAAA,GAAA7F,CAAA;IAAA8F,EAAA,GAAA9F,CAAA;EAAA;EAfrC1E,SAAA,CAAUuK,EAeV,EAAGC,EAAkC;EAAA,IAAAG,EAAA;EAAA,IAAAjG,CAAA,SAAAJ,UAAA,IAAAI,CAAA,SAAAkE,aAAA;IAGnC+B,EAAA,GAAAtF,QAAA;MAAA,IACMf,UAAA,SAAe;QAAA,KACZe,QAAA;UACHuD,aAAA,KAAc;QAAA;MAAA;IAAA;IAGpBlE,CAAA,OAAAJ,UAAA;IAAAI,CAAA,OAAAkE,aAAA;IAAAlE,CAAA,OAAAiG,EAAA;EAAA;IAAAA,EAAA,GAAAjG,CAAA;EAAA;EAPF,MAAAD,kBAAA,GAA2BkG,EAQE;EAG7BtG,qBAAA,CAAsBC,UAAA,EAAY2B,gBAAA,EAAkBqE,YAAA,EAAc7F,kBAAA;EAAA,OAE3DwB,gBAAA;AAAA","ignoreList":[]}
@@ -162,7 +162,7 @@ export function LexicalTypeaheadMenuPlugin(t0) {
162
162
  }
163
163
  useEffect(t3, t4);
164
164
  let t5;
165
- if ($[10] !== editor || $[11] !== closeTypeahead || $[12] !== triggerFn || $[13] !== onQueryChange || $[14] !== openTypeahead) {
165
+ if ($[10] !== closeTypeahead || $[11] !== editor || $[12] !== onQueryChange || $[13] !== openTypeahead || $[14] !== triggerFn) {
166
166
  t5 = () => {
167
167
  const updateListener = () => {
168
168
  editor.getEditorState().read(() => {
@@ -197,31 +197,31 @@ export function LexicalTypeaheadMenuPlugin(t0) {
197
197
  removeUpdateListener();
198
198
  };
199
199
  };
200
- $[10] = editor;
201
- $[11] = closeTypeahead;
202
- $[12] = triggerFn;
203
- $[13] = onQueryChange;
204
- $[14] = openTypeahead;
200
+ $[10] = closeTypeahead;
201
+ $[11] = editor;
202
+ $[12] = onQueryChange;
203
+ $[13] = openTypeahead;
204
+ $[14] = triggerFn;
205
205
  $[15] = t5;
206
206
  } else {
207
207
  t5 = $[15];
208
208
  }
209
209
  let t6;
210
- if ($[16] !== editor || $[17] !== triggerFn || $[18] !== onQueryChange || $[19] !== resolution || $[20] !== closeTypeahead || $[21] !== openTypeahead) {
210
+ if ($[16] !== closeTypeahead || $[17] !== editor || $[18] !== onQueryChange || $[19] !== openTypeahead || $[20] !== resolution || $[21] !== triggerFn) {
211
211
  t6 = [editor, triggerFn, onQueryChange, resolution, closeTypeahead, openTypeahead];
212
- $[16] = editor;
213
- $[17] = triggerFn;
212
+ $[16] = closeTypeahead;
213
+ $[17] = editor;
214
214
  $[18] = onQueryChange;
215
- $[19] = resolution;
216
- $[20] = closeTypeahead;
217
- $[21] = openTypeahead;
215
+ $[19] = openTypeahead;
216
+ $[20] = resolution;
217
+ $[21] = triggerFn;
218
218
  $[22] = t6;
219
219
  } else {
220
220
  t6 = $[22];
221
221
  }
222
222
  useEffect(t5, t6);
223
223
  let t7;
224
- if ($[23] !== anchorElementRef || $[24] !== resolution || $[25] !== editor || $[26] !== closeTypeahead || $[27] !== groups || $[28] !== menuRenderFn) {
224
+ if ($[23] !== anchorElementRef || $[24] !== closeTypeahead || $[25] !== editor || $[26] !== groups || $[27] !== menuRenderFn || $[28] !== resolution) {
225
225
  t7 = anchorElementRef.current === null || resolution === null || editor === null ? null : _jsx(LexicalMenu, {
226
226
  anchorElementRef,
227
227
  close: closeTypeahead,
@@ -232,11 +232,11 @@ export function LexicalTypeaheadMenuPlugin(t0) {
232
232
  shouldSplitNodeWithQuery: true
233
233
  });
234
234
  $[23] = anchorElementRef;
235
- $[24] = resolution;
235
+ $[24] = closeTypeahead;
236
236
  $[25] = editor;
237
- $[26] = closeTypeahead;
238
- $[27] = groups;
239
- $[28] = menuRenderFn;
237
+ $[26] = groups;
238
+ $[27] = menuRenderFn;
239
+ $[28] = resolution;
240
240
  $[29] = t7;
241
241
  } else {
242
242
  t7 = $[29];