@strapi/content-manager 5.53.0 → 5.55.0

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 (138) hide show
  1. package/dist/admin/components/ActionsDrawer.js +17 -6
  2. package/dist/admin/components/ActionsDrawer.js.map +1 -1
  3. package/dist/admin/components/ActionsDrawer.mjs +19 -8
  4. package/dist/admin/components/ActionsDrawer.mjs.map +1 -1
  5. package/dist/admin/components/LeftMenu.js +131 -52
  6. package/dist/admin/components/LeftMenu.js.map +1 -1
  7. package/dist/admin/components/LeftMenu.mjs +133 -54
  8. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  9. package/dist/admin/history/components/VersionsList.js +37 -43
  10. package/dist/admin/history/components/VersionsList.js.map +1 -1
  11. package/dist/admin/history/components/VersionsList.mjs +37 -43
  12. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  13. package/dist/admin/hooks/useContentManagerInitData.js +3 -2
  14. package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
  15. package/dist/admin/hooks/useContentManagerInitData.mjs +3 -2
  16. package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
  17. package/dist/admin/hooks/useDocumentActions.js +3 -1
  18. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  19. package/dist/admin/hooks/useDocumentActions.mjs +4 -2
  20. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  21. package/dist/admin/layout.js +2 -4
  22. package/dist/admin/layout.js.map +1 -1
  23. package/dist/admin/layout.mjs +2 -4
  24. package/dist/admin/layout.mjs.map +1 -1
  25. package/dist/admin/modules/app.js +3 -1
  26. package/dist/admin/modules/app.js.map +1 -1
  27. package/dist/admin/modules/app.mjs +3 -1
  28. package/dist/admin/modules/app.mjs.map +1 -1
  29. package/dist/admin/pages/EditView/EditViewPage.js +15 -20
  30. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  31. package/dist/admin/pages/EditView/EditViewPage.mjs +15 -20
  32. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  33. package/dist/admin/pages/EditView/components/DocumentActions.js +2 -0
  34. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  35. package/dist/admin/pages/EditView/components/DocumentActions.mjs +2 -0
  36. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  37. package/dist/admin/pages/EditView/components/EditorToolbarObserver.js +74 -7
  38. package/dist/admin/pages/EditView/components/EditorToolbarObserver.js.map +1 -1
  39. package/dist/admin/pages/EditView/components/EditorToolbarObserver.mjs +74 -7
  40. package/dist/admin/pages/EditView/components/EditorToolbarObserver.mjs.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +7 -2
  42. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +7 -2
  44. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +59 -2
  46. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +60 -3
  48. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js +4 -1
  50. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.mjs +4 -1
  52. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.mjs.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +4 -1
  54. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +4 -1
  56. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +2 -1
  58. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +2 -1
  60. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +58 -1
  62. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +58 -2
  64. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +25 -2
  66. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +5 -2
  68. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  69. package/dist/admin/pages/EditView/components/InputRenderer.js +5 -1
  70. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  71. package/dist/admin/pages/EditView/components/InputRenderer.mjs +6 -2
  72. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  73. package/dist/admin/pages/ListView/ListViewPage.js +1 -0
  74. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  75. package/dist/admin/pages/ListView/ListViewPage.mjs +1 -0
  76. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  77. package/dist/admin/preview/components/InputPopover.js +64 -46
  78. package/dist/admin/preview/components/InputPopover.js.map +1 -1
  79. package/dist/admin/preview/components/InputPopover.mjs +66 -49
  80. package/dist/admin/preview/components/InputPopover.mjs.map +1 -1
  81. package/dist/admin/preview/hooks/usePreviewInputManager.js +23 -7
  82. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -1
  83. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +25 -9
  84. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -1
  85. package/dist/admin/preview/pages/Preview.js +19 -0
  86. package/dist/admin/preview/pages/Preview.js.map +1 -1
  87. package/dist/admin/preview/pages/Preview.mjs +20 -1
  88. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  89. package/dist/admin/preview/utils/constants.js +9 -3
  90. package/dist/admin/preview/utils/constants.js.map +1 -1
  91. package/dist/admin/preview/utils/constants.mjs +9 -3
  92. package/dist/admin/preview/utils/constants.mjs.map +1 -1
  93. package/dist/admin/src/components/ActionsDrawer.d.ts +1 -0
  94. package/dist/admin/src/modules/app.d.ts +2 -0
  95. package/dist/admin/src/pages/EditView/components/EditorToolbarObserver.d.ts +2 -1
  96. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.d.ts +5 -1
  97. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +5 -0
  98. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.d.ts +5 -0
  99. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -1
  100. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +14 -1
  101. package/dist/admin/src/preview/components/InputPopover.d.ts +2 -1
  102. package/dist/admin/src/preview/pages/Preview.d.ts +1 -0
  103. package/dist/admin/src/preview/utils/constants.d.ts +8 -1
  104. package/dist/admin/src/services/init.d.ts +1 -0
  105. package/dist/admin/src/utils/contentStructure.d.ts +59 -0
  106. package/dist/admin/utils/contentStructure.js +136 -0
  107. package/dist/admin/utils/contentStructure.js.map +1 -0
  108. package/dist/admin/utils/contentStructure.mjs +130 -0
  109. package/dist/admin/utils/contentStructure.mjs.map +1 -0
  110. package/dist/server/controllers/init.js +7 -2
  111. package/dist/server/controllers/init.js.map +1 -1
  112. package/dist/server/controllers/init.mjs +7 -2
  113. package/dist/server/controllers/init.mjs.map +1 -1
  114. package/dist/server/preview/controllers/previewScript.js +548 -22
  115. package/dist/server/services/content-structure.js +53 -0
  116. package/dist/server/services/content-structure.js.map +1 -0
  117. package/dist/server/services/content-structure.mjs +51 -0
  118. package/dist/server/services/content-structure.mjs.map +1 -0
  119. package/dist/server/services/index.js +2 -0
  120. package/dist/server/services/index.js.map +1 -1
  121. package/dist/server/services/index.mjs +2 -0
  122. package/dist/server/services/index.mjs.map +1 -1
  123. package/dist/server/src/controllers/index.d.ts +1 -1
  124. package/dist/server/src/controllers/init.d.ts +1 -1
  125. package/dist/server/src/controllers/init.d.ts.map +1 -1
  126. package/dist/server/src/index.d.ts +6 -1
  127. package/dist/server/src/index.d.ts.map +1 -1
  128. package/dist/server/src/services/content-structure.d.ts +8 -0
  129. package/dist/server/src/services/content-structure.d.ts.map +1 -0
  130. package/dist/server/src/services/index.d.ts +5 -0
  131. package/dist/server/src/services/index.d.ts.map +1 -1
  132. package/dist/server/src/utils/index.d.ts +2 -0
  133. package/dist/server/src/utils/index.d.ts.map +1 -1
  134. package/dist/server/utils/index.js.map +1 -1
  135. package/dist/server/utils/index.mjs.map +1 -1
  136. package/dist/shared/contracts/init.d.ts +2 -0
  137. package/dist/shared/contracts/init.d.ts.map +1 -1
  138. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"WysiwygNav.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useIsMobile } from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n IconButton,\n IconButtonGroup,\n SingleSelectOption,\n SingleSelect,\n Field,\n Menu,\n} from '@strapi/design-system';\nimport {\n Bold,\n BulletList,\n Code,\n Italic,\n Link,\n NumberList,\n Image,\n Quotes,\n StrikeThrough,\n Underline,\n HeadingOne,\n HeadingTwo,\n HeadingThree,\n HeadingFour,\n HeadingFive,\n HeadingSix,\n} from '@strapi/icons';\nimport { EditorFromTextArea } from 'codemirror5';\nimport { useIntl } from 'react-intl';\n\nimport { EditorToolbarObserver, type ObservedComponent } from '../../EditorToolbarObserver';\n\nimport { listHandler, markdownHandler, quoteAndCodeHandler, titleHandler } from './utils/utils';\n\ninterface WysiwygNavProps {\n disabled?: boolean;\n editorRef: React.MutableRefObject<EditorFromTextArea>;\n isExpandMode?: boolean;\n isPreviewMode?: boolean;\n onToggleMediaLib: () => void;\n onTogglePreviewMode?: () => void;\n}\n\ninterface WysiwygPreviewToggleButtonProps {\n isPreviewMode?: boolean;\n onTogglePreviewMode: () => void;\n}\n\nconst WysiwygPreviewToggleButton = ({\n isPreviewMode,\n onTogglePreviewMode,\n}: WysiwygPreviewToggleButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onTogglePreviewMode} variant=\"tertiary\" minWidth=\"132px\">\n {isPreviewMode\n ? formatMessage({\n id: 'components.Wysiwyg.ToggleMode.markdown-mode',\n defaultMessage: 'Markdown mode',\n })\n : formatMessage({\n id: 'components.Wysiwyg.ToggleMode.preview-mode',\n defaultMessage: 'Preview mode',\n })}\n </Button>\n );\n};\n\n/**\n * TODO: refactor this mess.\n */\nconst WysiwygNav = ({\n disabled,\n editorRef,\n isPreviewMode,\n onToggleMediaLib,\n onTogglePreviewMode,\n}: WysiwygNavProps) => {\n const { formatMessage } = useIntl();\n const isMobile = useIsMobile();\n const isDisabled = disabled || isPreviewMode;\n\n const handleActionClick = (\n value: string,\n currentEditorRef: React.MutableRefObject<EditorFromTextArea>\n ) => {\n switch (value) {\n case 'Link': {\n markdownHandler(currentEditorRef, value);\n break;\n }\n case 'Code':\n case 'Quote': {\n quoteAndCodeHandler(currentEditorRef, value);\n break;\n }\n case 'Bold':\n case 'Italic':\n case 'Underline':\n case 'Strikethrough': {\n markdownHandler(currentEditorRef, value);\n break;\n }\n case 'BulletList':\n case 'NumberList': {\n listHandler(currentEditorRef, value);\n break;\n }\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6': {\n titleHandler(currentEditorRef, value);\n break;\n }\n default: {\n // Nothing\n }\n }\n };\n\n const observedComponents: ObservedComponent[] = [\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Bold', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n >\n <Bold />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Italic', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n >\n <Italic />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Underline', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n >\n <Underline />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Strikethrough', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n >\n <StrikeThrough />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<Bold fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Bold', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Italic fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Italic', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Underline fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Underline', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<StrikeThrough fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Strikethrough', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-1',\n },\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('BulletList', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.bulletList',\n defaultMessage: 'Bulleted list',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.bulletList',\n defaultMessage: 'Bulleted list',\n })}\n >\n <BulletList />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('NumberList', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.numberList',\n defaultMessage: 'Numbered list',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.numberList',\n defaultMessage: 'Numbered list',\n })}\n >\n <NumberList />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<BulletList fill=\"neutral500\" />}\n onSelect={() => handleActionClick('BulletList', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.unorderedList',\n defaultMessage: 'Bulleted list',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<NumberList fill=\"neutral500\" />}\n onSelect={() => handleActionClick('NumberList', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.orderedList',\n defaultMessage: 'Numbered list',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-2',\n },\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Code', editorRef)}\n label={formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n name={formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n >\n <Code />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => {\n onToggleMediaLib();\n }}\n label={formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n >\n <Image />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Link', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n name={formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n >\n <Link />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Quote', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n >\n <Quotes />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<Code fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Code', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Image fill=\"neutral500\" />}\n onSelect={() => {\n onToggleMediaLib();\n }}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Link fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Link', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Quotes fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Quote', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-3',\n },\n ];\n\n return (\n <Flex\n padding={2}\n background=\"neutral100\"\n justifyContent=\"space-between\"\n borderRadius=\"0.4rem 0.4rem 0 0\"\n width=\"100%\"\n gap={{ initial: 3, medium: 4 }}\n >\n <Field.Root>\n <SingleSelect\n disabled={isDisabled}\n placeholder={formatMessage({\n id: 'components.Wysiwyg.selectOptions.title',\n defaultMessage: 'Headings',\n })}\n aria-label={formatMessage({\n id: 'components.Wysiwyg.selectOptions.title',\n defaultMessage: 'Headings',\n })}\n // @ts-expect-error – DS v2 will only allow strings.\n onChange={(value) => handleActionClick(value, editorRef)}\n size=\"S\"\n >\n <SingleSelectOption value=\"h1\" startIcon={<HeadingOne fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H1',\n defaultMessage: 'Heading 1',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h2\" startIcon={<HeadingTwo fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H2',\n defaultMessage: 'Heading 2',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h3\" startIcon={<HeadingThree fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H3',\n defaultMessage: 'Heading 3',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h4\" startIcon={<HeadingFour fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H4',\n defaultMessage: 'Heading 4',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h5\" startIcon={<HeadingFive fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H5',\n defaultMessage: 'Heading 5',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h6\" startIcon={<HeadingSix fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H6',\n defaultMessage: 'Heading 6',\n })}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n <Flex width=\"100%\" justifyContent=\"space-between\" overflow=\"hidden\">\n <Flex\n gap={{ initial: 3, medium: 2 }}\n overflow=\"hidden\"\n width=\"100%\"\n data-hide-toolbar-separator=\"true\"\n >\n <EditorToolbarObserver\n menuTriggerVariant=\"tertiary\"\n observedComponents={observedComponents}\n />\n </Flex>\n\n {onTogglePreviewMode && !isMobile && (\n <WysiwygPreviewToggleButton\n isPreviewMode={isPreviewMode}\n onTogglePreviewMode={onTogglePreviewMode}\n />\n )}\n </Flex>\n </Flex>\n );\n};\n\nexport { WysiwygNav, WysiwygPreviewToggleButton };\nexport type { WysiwygNavProps, WysiwygPreviewToggleButtonProps };\n"],"names":["WysiwygPreviewToggleButton","isPreviewMode","onTogglePreviewMode","formatMessage","useIntl","_jsx","Button","onClick","variant","minWidth","id","defaultMessage","WysiwygNav","disabled","editorRef","onToggleMediaLib","isMobile","useIsMobile","isDisabled","handleActionClick","value","currentEditorRef","markdownHandler","quoteAndCodeHandler","listHandler","titleHandler","observedComponents","toolbar","_jsxs","IconButtonGroup","IconButton","label","name","Bold","Italic","Underline","StrikeThrough","menu","_Fragment","Menu","Separator","Item","startIcon","fill","onSelect","Flex","tag","gap","key","BulletList","NumberList","Code","Image","Link","Quotes","padding","background","justifyContent","borderRadius","width","initial","medium","Field","Root","SingleSelect","placeholder","aria-label","onChange","size","SingleSelectOption","HeadingOne","HeadingTwo","HeadingThree","HeadingFour","HeadingFive","HeadingSix","overflow","data-hide-toolbar-separator","EditorToolbarObserver","menuTriggerVariant"],"mappings":";;;;;;;;;AAoDA,MAAMA,6BAA6B,CAAC,EAClCC,aAAa,EACbC,mBAAmB,EACa,GAAA;IAChC,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,GAAA,CAACC,MAAAA,EAAAA;QAAOC,OAAAA,EAASL,mBAAAA;QAAqBM,OAAAA,EAAQ,UAAA;QAAWC,QAAAA,EAAS,OAAA;AAC/DR,QAAAA,QAAAA,EAAAA,aAAAA,GACGE,aAAAA,CAAc;YACZO,EAAAA,EAAI,6CAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA,CAAA,GACAR,aAAAA,CAAc;YACZO,EAAAA,EAAI,4CAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;;AAGV;AAEA;;AAEC,IACD,MAAMC,UAAAA,GAAa,CAAC,EAClBC,QAAQ,EACRC,SAAS,EACTb,aAAa,EACbc,gBAAgB,EAChBb,mBAAmB,EACH,GAAA;IAChB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMY,QAAAA,GAAWC,WAAAA,EAAAA;AACjB,IAAA,MAAMC,aAAaL,QAAAA,IAAYZ,aAAAA;IAE/B,MAAMkB,iBAAAA,GAAoB,CACxBC,KAAAA,EACAC,gBAAAA,GAAAA;QAEA,OAAQD,KAAAA;YACN,KAAK,MAAA;AAAQ,gBAAA;AACXE,oBAAAA,eAAAA,CAAgBD,gBAAAA,EAAkBD,KAAAA,CAAAA;AAClC,oBAAA;AACF,gBAAA;YACA,KAAK,MAAA;YACL,KAAK,OAAA;AAAS,gBAAA;AACZG,oBAAAA,mBAAAA,CAAoBF,gBAAAA,EAAkBD,KAAAA,CAAAA;AACtC,oBAAA;AACF,gBAAA;YACA,KAAK,MAAA;YACL,KAAK,QAAA;YACL,KAAK,WAAA;YACL,KAAK,eAAA;AAAiB,gBAAA;AACpBE,oBAAAA,eAAAA,CAAgBD,gBAAAA,EAAkBD,KAAAA,CAAAA;AAClC,oBAAA;AACF,gBAAA;YACA,KAAK,YAAA;YACL,KAAK,YAAA;AAAc,gBAAA;AACjBI,oBAAAA,WAAAA,CAAYH,gBAAAA,EAAkBD,KAAAA,CAAAA;AAC9B,oBAAA;AACF,gBAAA;YACA,KAAK,IAAA;YACL,KAAK,IAAA;YACL,KAAK,IAAA;YACL,KAAK,IAAA;YACL,KAAK,IAAA;YACL,KAAK,IAAA;AAAM,gBAAA;AACTK,oBAAAA,YAAAA,CAAaJ,gBAAAA,EAAkBD,KAAAA,CAAAA;AAC/B,oBAAA;AACF,gBAAA;AAIF;AACF,IAAA,CAAA;AAEA,IAAA,MAAMM,kBAAAA,GAA0C;AAC9C,QAAA;AACEC,YAAAA,OAAAA,gBACEC,IAAA,CAACC,eAAAA,EAAAA;;kCACCxB,GAAA,CAACyB,UAAAA,EAAAA;wBACCjB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMY,kBAAkB,MAAA,EAAQL,SAAAA,CAAAA;AACzCiB,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,kCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAqB,wBAAAA,IAAAA,EAAM7B,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,kCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAAC4B,IAAAA,EAAAA,EAAAA;;kCAEH5B,GAAA,CAACyB,UAAAA,EAAAA;wBACCjB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMY,kBAAkB,QAAA,EAAUL,SAAAA,CAAAA;AAC3CiB,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,oCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAqB,wBAAAA,IAAAA,EAAM7B,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,oCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAAC6B,MAAAA,EAAAA,EAAAA;;kCAEH7B,GAAA,CAACyB,UAAAA,EAAAA;wBACCjB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMY,kBAAkB,WAAA,EAAaL,SAAAA,CAAAA;AAC9CiB,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,uCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAqB,wBAAAA,IAAAA,EAAM7B,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,uCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAAC8B,SAAAA,EAAAA,EAAAA;;kCAEH9B,GAAA,CAACyB,UAAAA,EAAAA;wBACCjB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMY,kBAAkB,eAAA,EAAiBL,SAAAA,CAAAA;AAClDiB,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,2CAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAqB,wBAAAA,IAAAA,EAAM7B,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,2CAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAAC+B,aAAAA,EAAAA,EAAAA;;;;YAIPC,IAAAA,gBACET,IAAA,CAAAU,QAAA,EAAA;;AACE,kCAAAjC,GAAA,CAACkC,KAAKC,SAAS,EAAA,EAAA,CAAA;AACf,kCAAAnC,GAAA,CAACkC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWrC,GAAA,CAAC4B,IAAAA,EAAAA;4BAAKU,IAAAA,EAAK;;wBACtBC,QAAAA,EAAU,IAAMzB,kBAAkB,MAAA,EAAQL,SAAAA,CAAAA;wBAC1CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAACwC,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB5C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,kCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACkC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWrC,GAAA,CAAC6B,MAAAA,EAAAA;4BAAOS,IAAAA,EAAK;;wBACxBC,QAAAA,EAAU,IAAMzB,kBAAkB,QAAA,EAAUL,SAAAA,CAAAA;wBAC5CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAACwC,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB5C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,oCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACkC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWrC,GAAA,CAAC8B,SAAAA,EAAAA;4BAAUQ,IAAAA,EAAK;;wBAC3BC,QAAAA,EAAU,IAAMzB,kBAAkB,WAAA,EAAaL,SAAAA,CAAAA;wBAC/CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAACwC,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB5C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,uCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACkC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWrC,GAAA,CAAC+B,aAAAA,EAAAA;4BAAcO,IAAAA,EAAK;;wBAC/BC,QAAAA,EAAU,IAAMzB,kBAAkB,eAAA,EAAiBL,SAAAA,CAAAA;wBACnDD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAACwC,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB5C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,2CAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;;YAKRqC,GAAAA,EAAK;AACP,SAAA;AACA,QAAA;AACErB,YAAAA,OAAAA,gBACEC,IAAA,CAACC,eAAAA,EAAAA;;kCACCxB,GAAA,CAACyB,UAAAA,EAAAA;wBACCjB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMY,kBAAkB,YAAA,EAAcL,SAAAA,CAAAA;AAC/CiB,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,qCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAqB,wBAAAA,IAAAA,EAAM7B,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,qCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAAC4C,UAAAA,EAAAA,EAAAA;;kCAEH5C,GAAA,CAACyB,UAAAA,EAAAA;wBACCjB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMY,kBAAkB,YAAA,EAAcL,SAAAA,CAAAA;AAC/CiB,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,qCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAqB,wBAAAA,IAAAA,EAAM7B,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,qCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAAC6C,UAAAA,EAAAA,EAAAA;;;;YAIPb,IAAAA,gBACET,IAAA,CAAAU,QAAA,EAAA;;AACE,kCAAAjC,GAAA,CAACkC,KAAKC,SAAS,EAAA,EAAA,CAAA;AACf,kCAAAnC,GAAA,CAACkC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWrC,GAAA,CAAC4C,UAAAA,EAAAA;4BAAWN,IAAAA,EAAK;;wBAC5BC,QAAAA,EAAU,IAAMzB,kBAAkB,YAAA,EAAcL,SAAAA,CAAAA;wBAChDD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAACwC,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB5C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,wCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACkC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWrC,GAAA,CAAC6C,UAAAA,EAAAA;4BAAWP,IAAAA,EAAK;;wBAC5BC,QAAAA,EAAU,IAAMzB,kBAAkB,YAAA,EAAcL,SAAAA,CAAAA;wBAChDD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAACwC,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB5C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,sCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;;YAKRqC,GAAAA,EAAK;AACP,SAAA;AACA,QAAA;AACErB,YAAAA,OAAAA,gBACEC,IAAA,CAACC,eAAAA,EAAAA;;kCACCxB,GAAA,CAACyB,UAAAA,EAAAA;wBACCjB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMY,kBAAkB,MAAA,EAAQL,SAAAA,CAAAA;AACzCiB,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAqB,wBAAAA,IAAAA,EAAM7B,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAAC8C,IAAAA,EAAAA,EAAAA;;kCAEH9C,GAAA,CAACyB,UAAAA,EAAAA;wBACCjB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAA;AACPQ,4BAAAA,gBAAAA,EAAAA;AACF,wBAAA,CAAA;AACAgB,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAqB,wBAAAA,IAAAA,EAAM7B,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAAC+C,KAAAA,EAAAA,EAAAA;;kCAEH/C,GAAA,CAACyB,UAAAA,EAAAA;wBACCjB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMY,kBAAkB,MAAA,EAAQL,SAAAA,CAAAA;AACzCiB,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAqB,wBAAAA,IAAAA,EAAM7B,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAACgD,IAAAA,EAAAA,EAAAA;;kCAEHhD,GAAA,CAACyB,UAAAA,EAAAA;wBACCjB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMY,kBAAkB,OAAA,EAASL,SAAAA,CAAAA;AAC1CiB,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAqB,wBAAAA,IAAAA,EAAM7B,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAACiD,MAAAA,EAAAA,EAAAA;;;;YAIPjB,IAAAA,gBACET,IAAA,CAAAU,QAAA,EAAA;;AACE,kCAAAjC,GAAA,CAACkC,KAAKC,SAAS,EAAA,EAAA,CAAA;AACf,kCAAAnC,GAAA,CAACkC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWrC,GAAA,CAAC8C,IAAAA,EAAAA;4BAAKR,IAAAA,EAAK;;wBACtBC,QAAAA,EAAU,IAAMzB,kBAAkB,MAAA,EAAQL,SAAAA,CAAAA;wBAC1CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAACwC,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB5C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,gCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACkC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWrC,GAAA,CAAC+C,KAAAA,EAAAA;4BAAMT,IAAAA,EAAK;;wBACvBC,QAAAA,EAAU,IAAA;AACR7B,4BAAAA,gBAAAA,EAAAA;AACF,wBAAA,CAAA;wBACAF,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAACwC,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB5C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,gCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACkC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWrC,GAAA,CAACgD,IAAAA,EAAAA;4BAAKV,IAAAA,EAAK;;wBACtBC,QAAAA,EAAU,IAAMzB,kBAAkB,MAAA,EAAQL,SAAAA,CAAAA;wBAC1CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAACwC,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB5C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,gCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACkC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWrC,GAAA,CAACiD,MAAAA,EAAAA;4BAAOX,IAAAA,EAAK;;wBACxBC,QAAAA,EAAU,IAAMzB,kBAAkB,OAAA,EAASL,SAAAA,CAAAA;wBAC3CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAACwC,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB5C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,gCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;;YAKRqC,GAAAA,EAAK;AACP;AACD,KAAA;AAED,IAAA,qBACEpB,IAAA,CAACiB,IAAAA,EAAAA;QACCU,OAAAA,EAAS,CAAA;QACTC,UAAAA,EAAW,YAAA;QACXC,cAAAA,EAAe,eAAA;QACfC,YAAAA,EAAa,mBAAA;QACbC,KAAAA,EAAM,MAAA;QACNZ,GAAAA,EAAK;YAAEa,OAAAA,EAAS,CAAA;YAAGC,MAAAA,EAAQ;AAAE,SAAA;;AAE7B,0BAAAxD,GAAA,CAACyD,MAAMC,IAAI,EAAA;AACT,gBAAA,QAAA,gBAAAnC,IAAA,CAACoC,YAAAA,EAAAA;oBACCnD,QAAAA,EAAUK,UAAAA;AACV+C,oBAAAA,WAAAA,EAAa9D,aAAAA,CAAc;wBACzBO,EAAAA,EAAI,wCAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA,CAAA;AACAuD,oBAAAA,YAAAA,EAAY/D,aAAAA,CAAc;wBACxBO,EAAAA,EAAI,wCAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA,CAAA;;oBAEAwD,QAAAA,EAAU,CAAC/C,KAAAA,GAAUD,iBAAAA,CAAkBC,KAAAA,EAAON,SAAAA,CAAAA;oBAC9CsD,IAAAA,EAAK,GAAA;;sCAEL/D,GAAA,CAACgE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWrC,GAAA,CAACiE,UAAAA,EAAAA;gCAAW3B,IAAAA,EAAK;;sCACxDxC,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFN,GAAA,CAACgE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWrC,GAAA,CAACkE,UAAAA,EAAAA;gCAAW5B,IAAAA,EAAK;;sCACxDxC,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFN,GAAA,CAACgE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWrC,GAAA,CAACmE,YAAAA,EAAAA;gCAAa7B,IAAAA,EAAK;;sCAC1DxC,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFN,GAAA,CAACgE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWrC,GAAA,CAACoE,WAAAA,EAAAA;gCAAY9B,IAAAA,EAAK;;sCACzDxC,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFN,GAAA,CAACgE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWrC,GAAA,CAACqE,WAAAA,EAAAA;gCAAY/B,IAAAA,EAAK;;sCACzDxC,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFN,GAAA,CAACgE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWrC,GAAA,CAACsE,UAAAA,EAAAA;gCAAWhC,IAAAA,EAAK;;sCACxDxC,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;;0BAINiB,IAAA,CAACiB,IAAAA,EAAAA;gBAAKc,KAAAA,EAAM,MAAA;gBAAOF,cAAAA,EAAe,eAAA;gBAAgBmB,QAAAA,EAAS,QAAA;;kCACzDvE,GAAA,CAACwC,IAAAA,EAAAA;wBACCE,GAAAA,EAAK;4BAAEa,OAAAA,EAAS,CAAA;4BAAGC,MAAAA,EAAQ;AAAE,yBAAA;wBAC7Be,QAAAA,EAAS,QAAA;wBACTjB,KAAAA,EAAM,MAAA;wBACNkB,6BAAAA,EAA4B,MAAA;AAE5B,wBAAA,QAAA,gBAAAxE,GAAA,CAACyE,qBAAAA,EAAAA;4BACCC,kBAAAA,EAAmB,UAAA;4BACnBrD,kBAAAA,EAAoBA;;;oBAIvBxB,mBAAAA,IAAuB,CAACc,0BACvBX,GAAA,CAACL,0BAAAA,EAAAA;wBACCC,aAAAA,EAAeA,aAAAA;wBACfC,mBAAAA,EAAqBA;;;;;;AAMjC;;;;"}
1
+ {"version":3,"file":"WysiwygNav.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useIsMobile } from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n IconButton,\n IconButtonGroup,\n SingleSelectOption,\n SingleSelect,\n Field,\n Menu,\n} from '@strapi/design-system';\nimport {\n Bold,\n BulletList,\n Code,\n Italic,\n Link,\n NumberList,\n Image,\n Quotes,\n StrikeThrough,\n Underline,\n HeadingOne,\n HeadingTwo,\n HeadingThree,\n HeadingFour,\n HeadingFive,\n HeadingSix,\n} from '@strapi/icons';\nimport { EditorFromTextArea } from 'codemirror5';\nimport { useIntl } from 'react-intl';\n\nimport { EditorToolbarObserver, type ObservedComponent } from '../../EditorToolbarObserver';\n\nimport { listHandler, markdownHandler, quoteAndCodeHandler, titleHandler } from './utils/utils';\n\ninterface WysiwygNavProps {\n disabled?: boolean;\n editorRef: React.MutableRefObject<EditorFromTextArea>;\n isExpandMode?: boolean;\n isPreviewMode?: boolean;\n onToggleMediaLib: () => void;\n onTogglePreviewMode?: () => void;\n}\n\ninterface WysiwygPreviewToggleButtonProps {\n isPreviewMode?: boolean;\n onTogglePreviewMode: () => void;\n}\n\nconst WysiwygPreviewToggleButton = ({\n isPreviewMode,\n onTogglePreviewMode,\n}: WysiwygPreviewToggleButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onTogglePreviewMode} variant=\"tertiary\" minWidth=\"132px\">\n {isPreviewMode\n ? formatMessage({\n id: 'components.Wysiwyg.ToggleMode.markdown-mode',\n defaultMessage: 'Markdown mode',\n })\n : formatMessage({\n id: 'components.Wysiwyg.ToggleMode.preview-mode',\n defaultMessage: 'Preview mode',\n })}\n </Button>\n );\n};\n\n/**\n * TODO: refactor this mess.\n */\nconst WysiwygNav = ({\n disabled,\n editorRef,\n isPreviewMode,\n onToggleMediaLib,\n onTogglePreviewMode,\n}: WysiwygNavProps) => {\n const { formatMessage } = useIntl();\n const isMobile = useIsMobile();\n const isDisabled = disabled || isPreviewMode;\n const toolbarContainerRef = React.useRef<HTMLElement>(null);\n\n const handleActionClick = (\n value: string,\n currentEditorRef: React.MutableRefObject<EditorFromTextArea>\n ) => {\n switch (value) {\n case 'Link': {\n markdownHandler(currentEditorRef, value);\n break;\n }\n case 'Code':\n case 'Quote': {\n quoteAndCodeHandler(currentEditorRef, value);\n break;\n }\n case 'Bold':\n case 'Italic':\n case 'Underline':\n case 'Strikethrough': {\n markdownHandler(currentEditorRef, value);\n break;\n }\n case 'BulletList':\n case 'NumberList': {\n listHandler(currentEditorRef, value);\n break;\n }\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6': {\n titleHandler(currentEditorRef, value);\n break;\n }\n default: {\n // Nothing\n }\n }\n };\n\n const observedComponents: ObservedComponent[] = [\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Bold', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n >\n <Bold />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Italic', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n >\n <Italic />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Underline', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n >\n <Underline />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Strikethrough', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n >\n <StrikeThrough />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<Bold fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Bold', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Italic fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Italic', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Underline fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Underline', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<StrikeThrough fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Strikethrough', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-1',\n },\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('BulletList', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.bulletList',\n defaultMessage: 'Bulleted list',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.bulletList',\n defaultMessage: 'Bulleted list',\n })}\n >\n <BulletList />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('NumberList', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.numberList',\n defaultMessage: 'Numbered list',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.numberList',\n defaultMessage: 'Numbered list',\n })}\n >\n <NumberList />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<BulletList fill=\"neutral500\" />}\n onSelect={() => handleActionClick('BulletList', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.unorderedList',\n defaultMessage: 'Bulleted list',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<NumberList fill=\"neutral500\" />}\n onSelect={() => handleActionClick('NumberList', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.orderedList',\n defaultMessage: 'Numbered list',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-2',\n },\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Code', editorRef)}\n label={formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n name={formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n >\n <Code />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => {\n onToggleMediaLib();\n }}\n label={formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n >\n <Image />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Link', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n name={formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n >\n <Link />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Quote', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n >\n <Quotes />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<Code fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Code', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Image fill=\"neutral500\" />}\n onSelect={() => {\n onToggleMediaLib();\n }}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Link fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Link', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Quotes fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Quote', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-3',\n },\n ];\n\n return (\n <Flex\n padding={2}\n background=\"neutral100\"\n justifyContent=\"space-between\"\n borderRadius=\"0.4rem 0.4rem 0 0\"\n width=\"100%\"\n gap={{ initial: 3, medium: 4 }}\n >\n <Field.Root>\n <SingleSelect\n disabled={isDisabled}\n placeholder={formatMessage({\n id: 'components.Wysiwyg.selectOptions.title',\n defaultMessage: 'Headings',\n })}\n aria-label={formatMessage({\n id: 'components.Wysiwyg.selectOptions.title',\n defaultMessage: 'Headings',\n })}\n // @ts-expect-error – DS v2 will only allow strings.\n onChange={(value) => handleActionClick(value, editorRef)}\n size=\"S\"\n >\n <SingleSelectOption value=\"h1\" startIcon={<HeadingOne fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H1',\n defaultMessage: 'Heading 1',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h2\" startIcon={<HeadingTwo fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H2',\n defaultMessage: 'Heading 2',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h3\" startIcon={<HeadingThree fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H3',\n defaultMessage: 'Heading 3',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h4\" startIcon={<HeadingFour fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H4',\n defaultMessage: 'Heading 4',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h5\" startIcon={<HeadingFive fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H5',\n defaultMessage: 'Heading 5',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h6\" startIcon={<HeadingSix fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H6',\n defaultMessage: 'Heading 6',\n })}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n <Flex width=\"100%\" justifyContent=\"space-between\" overflow=\"hidden\">\n <Flex\n ref={toolbarContainerRef}\n gap={{ initial: 3, medium: 2 }}\n overflow=\"hidden\"\n width=\"100%\"\n data-hide-toolbar-separator=\"true\"\n >\n <EditorToolbarObserver\n menuTriggerVariant=\"tertiary\"\n observedComponents={observedComponents}\n containerRef={toolbarContainerRef}\n />\n </Flex>\n\n {onTogglePreviewMode && !isMobile && (\n <WysiwygPreviewToggleButton\n isPreviewMode={isPreviewMode}\n onTogglePreviewMode={onTogglePreviewMode}\n />\n )}\n </Flex>\n </Flex>\n );\n};\n\nexport { WysiwygNav, WysiwygPreviewToggleButton };\nexport type { WysiwygNavProps, WysiwygPreviewToggleButtonProps };\n"],"names":["WysiwygPreviewToggleButton","isPreviewMode","onTogglePreviewMode","formatMessage","useIntl","_jsx","Button","onClick","variant","minWidth","id","defaultMessage","WysiwygNav","disabled","editorRef","onToggleMediaLib","isMobile","useIsMobile","isDisabled","toolbarContainerRef","React","useRef","handleActionClick","value","currentEditorRef","markdownHandler","quoteAndCodeHandler","listHandler","titleHandler","observedComponents","toolbar","_jsxs","IconButtonGroup","IconButton","label","name","Bold","Italic","Underline","StrikeThrough","menu","_Fragment","Menu","Separator","Item","startIcon","fill","onSelect","Flex","tag","gap","key","BulletList","NumberList","Code","Image","Link","Quotes","padding","background","justifyContent","borderRadius","width","initial","medium","Field","Root","SingleSelect","placeholder","aria-label","onChange","size","SingleSelectOption","HeadingOne","HeadingTwo","HeadingThree","HeadingFour","HeadingFive","HeadingSix","overflow","ref","data-hide-toolbar-separator","EditorToolbarObserver","menuTriggerVariant","containerRef"],"mappings":";;;;;;;;;AAoDA,MAAMA,6BAA6B,CAAC,EAClCC,aAAa,EACbC,mBAAmB,EACa,GAAA;IAChC,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,GAAA,CAACC,MAAAA,EAAAA;QAAOC,OAAAA,EAASL,mBAAAA;QAAqBM,OAAAA,EAAQ,UAAA;QAAWC,QAAAA,EAAS,OAAA;AAC/DR,QAAAA,QAAAA,EAAAA,aAAAA,GACGE,aAAAA,CAAc;YACZO,EAAAA,EAAI,6CAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA,CAAA,GACAR,aAAAA,CAAc;YACZO,EAAAA,EAAI,4CAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;;AAGV;AAEA;;AAEC,IACD,MAAMC,UAAAA,GAAa,CAAC,EAClBC,QAAQ,EACRC,SAAS,EACTb,aAAa,EACbc,gBAAgB,EAChBb,mBAAmB,EACH,GAAA;IAChB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMY,QAAAA,GAAWC,WAAAA,EAAAA;AACjB,IAAA,MAAMC,aAAaL,QAAAA,IAAYZ,aAAAA;IAC/B,MAAMkB,mBAAAA,GAAsBC,KAAAA,CAAMC,MAAM,CAAc,IAAA,CAAA;IAEtD,MAAMC,iBAAAA,GAAoB,CACxBC,KAAAA,EACAC,gBAAAA,GAAAA;QAEA,OAAQD,KAAAA;YACN,KAAK,MAAA;AAAQ,gBAAA;AACXE,oBAAAA,eAAAA,CAAgBD,gBAAAA,EAAkBD,KAAAA,CAAAA;AAClC,oBAAA;AACF,gBAAA;YACA,KAAK,MAAA;YACL,KAAK,OAAA;AAAS,gBAAA;AACZG,oBAAAA,mBAAAA,CAAoBF,gBAAAA,EAAkBD,KAAAA,CAAAA;AACtC,oBAAA;AACF,gBAAA;YACA,KAAK,MAAA;YACL,KAAK,QAAA;YACL,KAAK,WAAA;YACL,KAAK,eAAA;AAAiB,gBAAA;AACpBE,oBAAAA,eAAAA,CAAgBD,gBAAAA,EAAkBD,KAAAA,CAAAA;AAClC,oBAAA;AACF,gBAAA;YACA,KAAK,YAAA;YACL,KAAK,YAAA;AAAc,gBAAA;AACjBI,oBAAAA,WAAAA,CAAYH,gBAAAA,EAAkBD,KAAAA,CAAAA;AAC9B,oBAAA;AACF,gBAAA;YACA,KAAK,IAAA;YACL,KAAK,IAAA;YACL,KAAK,IAAA;YACL,KAAK,IAAA;YACL,KAAK,IAAA;YACL,KAAK,IAAA;AAAM,gBAAA;AACTK,oBAAAA,YAAAA,CAAaJ,gBAAAA,EAAkBD,KAAAA,CAAAA;AAC/B,oBAAA;AACF,gBAAA;AAIF;AACF,IAAA,CAAA;AAEA,IAAA,MAAMM,kBAAAA,GAA0C;AAC9C,QAAA;AACEC,YAAAA,OAAAA,gBACEC,IAAA,CAACC,eAAAA,EAAAA;;kCACC3B,GAAA,CAAC4B,UAAAA,EAAAA;wBACCpB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMe,kBAAkB,MAAA,EAAQR,SAAAA,CAAAA;AACzCoB,wBAAAA,KAAAA,EAAO/B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,kCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAwB,wBAAAA,IAAAA,EAAMhC,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,kCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAAC+B,IAAAA,EAAAA,EAAAA;;kCAEH/B,GAAA,CAAC4B,UAAAA,EAAAA;wBACCpB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMe,kBAAkB,QAAA,EAAUR,SAAAA,CAAAA;AAC3CoB,wBAAAA,KAAAA,EAAO/B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,oCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAwB,wBAAAA,IAAAA,EAAMhC,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,oCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAACgC,MAAAA,EAAAA,EAAAA;;kCAEHhC,GAAA,CAAC4B,UAAAA,EAAAA;wBACCpB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMe,kBAAkB,WAAA,EAAaR,SAAAA,CAAAA;AAC9CoB,wBAAAA,KAAAA,EAAO/B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,uCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAwB,wBAAAA,IAAAA,EAAMhC,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,uCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAACiC,SAAAA,EAAAA,EAAAA;;kCAEHjC,GAAA,CAAC4B,UAAAA,EAAAA;wBACCpB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMe,kBAAkB,eAAA,EAAiBR,SAAAA,CAAAA;AAClDoB,wBAAAA,KAAAA,EAAO/B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,2CAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAwB,wBAAAA,IAAAA,EAAMhC,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,2CAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAACkC,aAAAA,EAAAA,EAAAA;;;;YAIPC,IAAAA,gBACET,IAAA,CAAAU,QAAA,EAAA;;AACE,kCAAApC,GAAA,CAACqC,KAAKC,SAAS,EAAA,EAAA,CAAA;AACf,kCAAAtC,GAAA,CAACqC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWxC,GAAA,CAAC+B,IAAAA,EAAAA;4BAAKU,IAAAA,EAAK;;wBACtBC,QAAAA,EAAU,IAAMzB,kBAAkB,MAAA,EAAQR,SAAAA,CAAAA;wBAC1CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAAC2C,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB/C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,kCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACqC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWxC,GAAA,CAACgC,MAAAA,EAAAA;4BAAOS,IAAAA,EAAK;;wBACxBC,QAAAA,EAAU,IAAMzB,kBAAkB,QAAA,EAAUR,SAAAA,CAAAA;wBAC5CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAAC2C,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB/C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,oCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACqC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWxC,GAAA,CAACiC,SAAAA,EAAAA;4BAAUQ,IAAAA,EAAK;;wBAC3BC,QAAAA,EAAU,IAAMzB,kBAAkB,WAAA,EAAaR,SAAAA,CAAAA;wBAC/CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAAC2C,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB/C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,uCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACqC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWxC,GAAA,CAACkC,aAAAA,EAAAA;4BAAcO,IAAAA,EAAK;;wBAC/BC,QAAAA,EAAU,IAAMzB,kBAAkB,eAAA,EAAiBR,SAAAA,CAAAA;wBACnDD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAAC2C,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB/C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,2CAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;;YAKRwC,GAAAA,EAAK;AACP,SAAA;AACA,QAAA;AACErB,YAAAA,OAAAA,gBACEC,IAAA,CAACC,eAAAA,EAAAA;;kCACC3B,GAAA,CAAC4B,UAAAA,EAAAA;wBACCpB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMe,kBAAkB,YAAA,EAAcR,SAAAA,CAAAA;AAC/CoB,wBAAAA,KAAAA,EAAO/B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,qCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAwB,wBAAAA,IAAAA,EAAMhC,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,qCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAAC+C,UAAAA,EAAAA,EAAAA;;kCAEH/C,GAAA,CAAC4B,UAAAA,EAAAA;wBACCpB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMe,kBAAkB,YAAA,EAAcR,SAAAA,CAAAA;AAC/CoB,wBAAAA,KAAAA,EAAO/B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,qCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAwB,wBAAAA,IAAAA,EAAMhC,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,qCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAACgD,UAAAA,EAAAA,EAAAA;;;;YAIPb,IAAAA,gBACET,IAAA,CAAAU,QAAA,EAAA;;AACE,kCAAApC,GAAA,CAACqC,KAAKC,SAAS,EAAA,EAAA,CAAA;AACf,kCAAAtC,GAAA,CAACqC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWxC,GAAA,CAAC+C,UAAAA,EAAAA;4BAAWN,IAAAA,EAAK;;wBAC5BC,QAAAA,EAAU,IAAMzB,kBAAkB,YAAA,EAAcR,SAAAA,CAAAA;wBAChDD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAAC2C,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB/C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,wCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACqC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWxC,GAAA,CAACgD,UAAAA,EAAAA;4BAAWP,IAAAA,EAAK;;wBAC5BC,QAAAA,EAAU,IAAMzB,kBAAkB,YAAA,EAAcR,SAAAA,CAAAA;wBAChDD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAAC2C,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB/C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,sCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;;YAKRwC,GAAAA,EAAK;AACP,SAAA;AACA,QAAA;AACErB,YAAAA,OAAAA,gBACEC,IAAA,CAACC,eAAAA,EAAAA;;kCACC3B,GAAA,CAAC4B,UAAAA,EAAAA;wBACCpB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMe,kBAAkB,MAAA,EAAQR,SAAAA,CAAAA;AACzCoB,wBAAAA,KAAAA,EAAO/B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAwB,wBAAAA,IAAAA,EAAMhC,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAACiD,IAAAA,EAAAA,EAAAA;;kCAEHjD,GAAA,CAAC4B,UAAAA,EAAAA;wBACCpB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAA;AACPQ,4BAAAA,gBAAAA,EAAAA;AACF,wBAAA,CAAA;AACAmB,wBAAAA,KAAAA,EAAO/B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAwB,wBAAAA,IAAAA,EAAMhC,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAACkD,KAAAA,EAAAA,EAAAA;;kCAEHlD,GAAA,CAAC4B,UAAAA,EAAAA;wBACCpB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMe,kBAAkB,MAAA,EAAQR,SAAAA,CAAAA;AACzCoB,wBAAAA,KAAAA,EAAO/B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAwB,wBAAAA,IAAAA,EAAMhC,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAACmD,IAAAA,EAAAA,EAAAA;;kCAEHnD,GAAA,CAAC4B,UAAAA,EAAAA;wBACCpB,QAAAA,EAAUK,UAAAA;wBACVX,OAAAA,EAAS,IAAMe,kBAAkB,OAAA,EAASR,SAAAA,CAAAA;AAC1CoB,wBAAAA,KAAAA,EAAO/B,aAAAA,CAAc;4BACnBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAwB,wBAAAA,IAAAA,EAAMhC,aAAAA,CAAc;4BAClBO,EAAAA,EAAI,gCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAN,GAAA,CAACoD,MAAAA,EAAAA,EAAAA;;;;YAIPjB,IAAAA,gBACET,IAAA,CAAAU,QAAA,EAAA;;AACE,kCAAApC,GAAA,CAACqC,KAAKC,SAAS,EAAA,EAAA,CAAA;AACf,kCAAAtC,GAAA,CAACqC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWxC,GAAA,CAACiD,IAAAA,EAAAA;4BAAKR,IAAAA,EAAK;;wBACtBC,QAAAA,EAAU,IAAMzB,kBAAkB,MAAA,EAAQR,SAAAA,CAAAA;wBAC1CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAAC2C,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB/C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,gCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACqC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWxC,GAAA,CAACkD,KAAAA,EAAAA;4BAAMT,IAAAA,EAAK;;wBACvBC,QAAAA,EAAU,IAAA;AACRhC,4BAAAA,gBAAAA,EAAAA;AACF,wBAAA,CAAA;wBACAF,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAAC2C,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB/C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,gCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACqC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWxC,GAAA,CAACmD,IAAAA,EAAAA;4BAAKV,IAAAA,EAAK;;wBACtBC,QAAAA,EAAU,IAAMzB,kBAAkB,MAAA,EAAQR,SAAAA,CAAAA;wBAC1CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAAC2C,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB/C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,gCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;AAGJ,kCAAAN,GAAA,CAACqC,KAAKE,IAAI,EAAA;AACRC,wBAAAA,SAAAA,gBAAWxC,GAAA,CAACoD,MAAAA,EAAAA;4BAAOX,IAAAA,EAAK;;wBACxBC,QAAAA,EAAU,IAAMzB,kBAAkB,OAAA,EAASR,SAAAA,CAAAA;wBAC3CD,QAAAA,EAAUK,UAAAA;AAEV,wBAAA,QAAA,gBAAAb,GAAA,CAAC2C,IAAAA,EAAAA;4BAAKC,GAAAA,EAAI,MAAA;4BAAOC,GAAAA,EAAK,CAAA;sCACnB/C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,gCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;;YAKRwC,GAAAA,EAAK;AACP;AACD,KAAA;AAED,IAAA,qBACEpB,IAAA,CAACiB,IAAAA,EAAAA;QACCU,OAAAA,EAAS,CAAA;QACTC,UAAAA,EAAW,YAAA;QACXC,cAAAA,EAAe,eAAA;QACfC,YAAAA,EAAa,mBAAA;QACbC,KAAAA,EAAM,MAAA;QACNZ,GAAAA,EAAK;YAAEa,OAAAA,EAAS,CAAA;YAAGC,MAAAA,EAAQ;AAAE,SAAA;;AAE7B,0BAAA3D,GAAA,CAAC4D,MAAMC,IAAI,EAAA;AACT,gBAAA,QAAA,gBAAAnC,IAAA,CAACoC,YAAAA,EAAAA;oBACCtD,QAAAA,EAAUK,UAAAA;AACVkD,oBAAAA,WAAAA,EAAajE,aAAAA,CAAc;wBACzBO,EAAAA,EAAI,wCAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA,CAAA;AACA0D,oBAAAA,YAAAA,EAAYlE,aAAAA,CAAc;wBACxBO,EAAAA,EAAI,wCAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA,CAAA;;oBAEA2D,QAAAA,EAAU,CAAC/C,KAAAA,GAAUD,iBAAAA,CAAkBC,KAAAA,EAAOT,SAAAA,CAAAA;oBAC9CyD,IAAAA,EAAK,GAAA;;sCAELlE,GAAA,CAACmE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWxC,GAAA,CAACoE,UAAAA,EAAAA;gCAAW3B,IAAAA,EAAK;;sCACxD3C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFN,GAAA,CAACmE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWxC,GAAA,CAACqE,UAAAA,EAAAA;gCAAW5B,IAAAA,EAAK;;sCACxD3C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFN,GAAA,CAACmE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWxC,GAAA,CAACsE,YAAAA,EAAAA;gCAAa7B,IAAAA,EAAK;;sCAC1D3C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFN,GAAA,CAACmE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWxC,GAAA,CAACuE,WAAAA,EAAAA;gCAAY9B,IAAAA,EAAK;;sCACzD3C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFN,GAAA,CAACmE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWxC,GAAA,CAACwE,WAAAA,EAAAA;gCAAY/B,IAAAA,EAAK;;sCACzD3C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFN,GAAA,CAACmE,kBAAAA,EAAAA;4BAAmBjD,KAAAA,EAAM,IAAA;AAAKsB,4BAAAA,SAAAA,gBAAWxC,GAAA,CAACyE,UAAAA,EAAAA;gCAAWhC,IAAAA,EAAK;;sCACxD3C,aAAAA,CAAc;gCACbO,EAAAA,EAAI,qCAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;;0BAINoB,IAAA,CAACiB,IAAAA,EAAAA;gBAAKc,KAAAA,EAAM,MAAA;gBAAOF,cAAAA,EAAe,eAAA;gBAAgBmB,QAAAA,EAAS,QAAA;;kCACzD1E,GAAA,CAAC2C,IAAAA,EAAAA;wBACCgC,GAAAA,EAAK7D,mBAAAA;wBACL+B,GAAAA,EAAK;4BAAEa,OAAAA,EAAS,CAAA;4BAAGC,MAAAA,EAAQ;AAAE,yBAAA;wBAC7Be,QAAAA,EAAS,QAAA;wBACTjB,KAAAA,EAAM,MAAA;wBACNmB,6BAAAA,EAA4B,MAAA;AAE5B,wBAAA,QAAA,gBAAA5E,GAAA,CAAC6E,qBAAAA,EAAAA;4BACCC,kBAAAA,EAAmB,UAAA;4BACnBtD,kBAAAA,EAAoBA,kBAAAA;4BACpBuD,YAAAA,EAAcjE;;;oBAIjBjB,mBAAAA,IAAuB,CAACc,0BACvBX,GAAA,CAACL,0BAAAA,EAAAA;wBACCC,aAAAA,EAAeA,aAAAA;wBACfC,mBAAAA,EAAqBA;;;;;;AAMjC;;;;"}
@@ -59,6 +59,7 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
59
59
  const collectionType = document.schema?.kind === 'collectionType' ? 'collection-types' : 'single-types';
60
60
  const isInDynamicZone = Field.useDynamicZone('isInDynamicZone', (state)=>state.isInDynamicZone);
61
61
  const isInPreviewPopover = InputPopover.useHasInputPopoverParent();
62
+ const blockIndex = InputPopover.usePreviewPopoverBlockIndex();
62
63
  const shouldIgnorePermissions = isInDynamicZone || isInPreviewPopover;
63
64
  const isFormDisabled = strapiAdmin.useForm('InputRenderer', (state)=>state.disabled);
64
65
  const canCreateFields = DocumentRBAC.useDocumentRBAC('InputRenderer', (rbac)=>rbac.canCreateFields);
@@ -150,7 +151,10 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
150
151
  ...props,
151
152
  hint: hint,
152
153
  type: props.type,
153
- disabled: fieldIsDisabled
154
+ disabled: fieldIsDisabled,
155
+ autoFocus: isInPreviewPopover && blockIndex == null,
156
+ livePreviewSync: isInPreviewPopover,
157
+ blockIndex: blockIndex
154
158
  }, `input-${props.name}-${localeKey}`);
155
159
  case 'component':
156
160
  // Preview focus/blur handlers are not used for data-structure roots (component/dynamic zone).
@@ -1 +1 @@
1
- {"version":3,"file":"InputRenderer.js","sources":["../../../../../admin/src/pages/EditView/components/InputRenderer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n useForm,\n InputRenderer as FormInputRenderer,\n useField,\n createRulesEngine,\n type JsonLogicCondition,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { SINGLE_TYPES } from '../../../constants/collections';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { type UseDocument } from '../../../hooks/useDocument';\nimport { useDocumentContext } from '../../../hooks/useDocumentContext';\nimport { useDocumentLayout } from '../../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../../hooks/useLazyComponents';\nimport { useHasInputPopoverParent } from '../../../preview/components/InputPopover';\nimport { usePreviewInputManager } from '../../../preview/hooks/usePreviewInputManager';\nimport {\n getConditionDependencyPaths,\n getConditionDependencySubscriptionValue,\n} from '../../../utils/conditionalFields';\nimport { getDirectParent } from '../utils/data';\n\nimport { BlocksInput } from './FormInputs/BlocksInput/BlocksInput';\nimport { ComponentInput } from './FormInputs/Component/Input';\nimport { DynamicZone, useDynamicZone } from './FormInputs/DynamicZone/Field';\nimport { NotAllowedInput } from './FormInputs/NotAllowed';\nimport { RelationsInput } from './FormInputs/Relations/Relations';\nimport { UIDInput } from './FormInputs/UID';\nimport { Wysiwyg } from './FormInputs/Wysiwyg/Field';\n\nimport type { EditFieldLayout } from '../../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\nimport type { DistributiveOmit } from 'react-redux';\n\ntype InputRendererProps = DistributiveOmit<EditFieldLayout, 'size'> & {\n document?: ReturnType<UseDocument>;\n};\n\n/**\n * @internal\n *\n * @description An abstraction around the regular form input renderer designed\n * specifically to be used in the EditView of the content-manager this understands\n * the complete EditFieldLayout and will handle RBAC conditions and rendering CM specific\n * components such as Blocks / Relations.\n */\nconst BaseInputRenderer = ({\n visible,\n hint: providedHint,\n document: providedDocument,\n ...inputProps\n}: InputRendererProps) => {\n const { currentDocument, currentDocumentMeta } = useDocumentContext('DynamicComponent');\n // Most edit-view fields can read the document from context, which avoids threading a\n // frequently-changing `document` prop through nested component/DZ trees and reduces churn.\n // Keep `providedDocument` as an explicit override for callers outside that default flow.\n const document = providedDocument ?? currentDocument;\n const localeKey = document?.document?.locale || 'default';\n const {\n edit: { components },\n } = useDocumentLayout(currentDocumentMeta.model);\n\n const collectionType =\n document.schema?.kind === 'collectionType' ? 'collection-types' : 'single-types';\n\n const isInDynamicZone = useDynamicZone('isInDynamicZone', (state) => state.isInDynamicZone);\n const isInPreviewPopover = useHasInputPopoverParent();\n const shouldIgnorePermissions = isInDynamicZone || isInPreviewPopover;\n\n const isFormDisabled = useForm('InputRenderer', (state) => state.disabled);\n const canCreateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canCreateFields);\n const canReadFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canReadFields);\n const canUpdateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUpdateFields);\n const canUserAction = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUserAction);\n\n let idToCheck = document.document?.documentId;\n if (collectionType === SINGLE_TYPES) {\n idToCheck = document?.document?.documentId;\n }\n\n const editableFields = idToCheck ? canUpdateFields : canCreateFields;\n const readableFields = idToCheck ? canReadFields : canCreateFields;\n\n // Everything preview related\n const previewProps = usePreviewInputManager(inputProps.name, inputProps.attribute);\n const props = { ...inputProps, ...previewProps };\n\n /**\n * Component fields are always readable and editable,\n * however the fields within them may not be.\n */\n const canUserReadField = canUserAction(props.name, readableFields, props.type);\n const canUserEditField = canUserAction(props.name, editableFields, props.type);\n\n const fields = useStrapiApp('InputRenderer', (app) => app.fields);\n const { lazyComponentStore } = useLazyComponents(\n attributeHasCustomFieldProperty(props.attribute) ? [props.attribute.customField] : undefined\n );\n\n const hint = useFieldHint(providedHint, props.attribute);\n const renderComponentInput = React.useCallback(\n (componentInputProps: InputRendererProps) => (\n <MemoizedInputRenderer\n key={`input-${componentInputProps.name}-${localeKey}`}\n {...componentInputProps}\n />\n ),\n [localeKey]\n );\n\n // We pass field in case of Custom Fields to keep backward compatibility\n const field = useField(props.name);\n\n if (!visible) {\n return null;\n }\n\n /**\n * If the user can't read the field then we don't want to ever render it.\n */\n if (!canUserReadField && !shouldIgnorePermissions) {\n return <NotAllowedInput hint={hint} {...props} />;\n }\n\n const fieldIsDisabled =\n (!canUserEditField && !shouldIgnorePermissions) || props.disabled || isFormDisabled;\n\n /**\n * Because a custom field has a unique prop but the type could be confused with either\n * the useField hook or the type of the field we need to handle it separately and first.\n */\n if (attributeHasCustomFieldProperty(props.attribute)) {\n const CustomInput = lazyComponentStore[props.attribute.customField];\n\n if (CustomInput) {\n return (\n <CustomInput\n {...props}\n {...field}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – this workaround lets us display that the custom field is missing.\n type={props.attribute.customField}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * This is where we handle ONLY the fields from the `useLibrary` hook.\n */\n const addedInputTypes = Object.keys(fields);\n if (!attributeHasCustomFieldProperty(props.attribute) && addedInputTypes.includes(props.type)) {\n const CustomInput = fields[props.type];\n return (\n <CustomInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * These include the content-manager specific fields, failing that we fall back\n * to the more generic form input renderer.\n */\n switch (props.type) {\n case 'blocks':\n return (\n <BlocksInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n case 'component':\n // Preview focus/blur handlers are not used for data-structure roots (component/dynamic zone).\n // Dropping them avoids unstable function props cascading through memoized component trees.\n const { onBlur: _onComponentBlur, onFocus: _onComponentFocus, ...componentProps } = props;\n\n return (\n <ComponentInput\n key={`input-${props.name}-${localeKey}`}\n {...componentProps}\n hint={hint}\n layout={components[props.attribute.component].layout}\n disabled={fieldIsDisabled}\n >\n {renderComponentInput}\n </ComponentInput>\n );\n case 'dynamiczone':\n // Same rationale as `component` above: keep data-structure root props stable.\n const { onBlur: _onDzBlur, onFocus: _onDzFocus, ...dynamicZoneProps } = props;\n\n return (\n <DynamicZone\n key={`input-${props.name}-${localeKey}`}\n {...dynamicZoneProps}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'relation':\n return (\n <RelationsInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'richtext':\n return (\n <Wysiwyg\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n case 'uid':\n // These props are not needed for the generic form input renderer.\n const { unique: _uniqueUID, ...restUIDProps } = props;\n return (\n <UIDInput\n key={`input-${props.name}-${localeKey}`}\n {...restUIDProps}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n /**\n * Enumerations are a special case because they require options.\n */\n case 'enumeration':\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n options={props.attribute.enum.map((value) => ({ value }))}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n default:\n // These props are not needed for the generic form input renderer.\n const { unique: _unique, mainField: _mainField, ...restProps } = props;\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...restProps}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n }\n};\n\n// Reuse one rules engine instance instead of recreating it for every field render.\nconst rulesEngine = createRulesEngine();\n\n/**\n * A wrapper around BaseInputRenderer that conditionally renders it depending on the attribute's condition.\n */\nconst ConditionAwareInputRenderer = ({\n condition,\n ...props\n}: InputRendererProps & { condition: JsonLogicCondition }) => {\n // Extract only the field paths the visibility rule depends on so unrelated form changes\n // do not force this conditional field to re-render.\n const conditionDependencyPaths = React.useMemo(\n () => getConditionDependencyPaths(condition),\n [condition]\n );\n const getValues = useForm(\n 'ConditionalInputRenderer',\n (state) => (state as typeof state & { getValues: () => unknown }).getValues\n );\n const conditionSubscriptionValue = useForm('ConditionalInputRenderer', (state) => {\n // Subscribe to a small, comparable snapshot of the parent scope instead of all form values.\n return getConditionDependencySubscriptionValue(\n getDirectParent(state.values, props.name),\n conditionDependencyPaths\n );\n });\n\n // When dependencies are known, read the latest parent scope lazily via getValues() so the\n // rule still evaluates against fresh data without subscribing to every form change.\n const targetValues =\n conditionDependencyPaths === null\n ? conditionSubscriptionValue\n : getDirectParent(getValues(), props.name);\n\n const isVisible = rulesEngine.evaluate(condition, targetValues);\n\n if (!isVisible) {\n return null;\n }\n\n return <BaseInputRenderer {...props} />;\n};\n\nconst attributeHasCustomFieldProperty = (\n attribute: Schema.Attribute.AnyAttribute\n): attribute is Schema.Attribute.AnyAttribute & Schema.Attribute.CustomField<string> =>\n 'customField' in attribute && typeof attribute.customField === 'string';\n\nconst useFieldHint = (\n hint: React.ReactNode = undefined,\n attribute: Schema.Attribute.AnyAttribute\n) => {\n const { formatMessage } = useIntl();\n\n const { maximum, minimum } = getMinMax(attribute);\n\n if (!maximum && !minimum) {\n return hint;\n }\n\n const units = ['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(attribute.type)\n ? formatMessage(\n {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n {\n maxValue: Math.max(minimum || 0, maximum || 0),\n }\n )\n : null;\n\n const hasMinAndMax = typeof minimum === 'number' && typeof maximum === 'number';\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: hint,\n unit: units,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: <br />,\n }\n );\n};\n\nconst getMinMax = (attribute: Schema.Attribute.AnyAttribute) => {\n if ('min' in attribute || 'max' in attribute) {\n return {\n maximum: !Number.isNaN(Number(attribute.max)) ? Number(attribute.max) : undefined,\n minimum: !Number.isNaN(Number(attribute.min)) ? Number(attribute.min) : undefined,\n };\n } else if ('maxLength' in attribute || 'minLength' in attribute) {\n return { maximum: attribute.maxLength, minimum: attribute.minLength };\n } else {\n return { maximum: undefined, minimum: undefined };\n }\n};\n\n/**\n * Conditionally routes the exported InputRender component towards ConditionalInputRenderer\n * (when there's a JSON logic condition on the attribute, or BaseInputRenderer otherwise.\n * We do this because rendering a conditional field requires access to the values of\n * other form fields, which causes many re-renders and performance issues on complex content\n * types. By splitting the component into two, we isolate the performance issue to\n * conditional fields only, not all edit view fields.\n */\nconst MemoizedInputRenderer = React.memo((props: InputRendererProps) => {\n const condition = props.attribute.conditions?.visible;\n if (condition) {\n return <ConditionAwareInputRenderer {...props} condition={condition} />;\n }\n\n return <BaseInputRenderer {...props} />;\n});\n\nexport type { InputRendererProps };\nexport { MemoizedInputRenderer as InputRenderer, useFieldHint };\n"],"names":["BaseInputRenderer","visible","hint","providedHint","document","providedDocument","inputProps","currentDocument","currentDocumentMeta","useDocumentContext","localeKey","locale","edit","components","useDocumentLayout","model","collectionType","schema","kind","isInDynamicZone","useDynamicZone","state","isInPreviewPopover","useHasInputPopoverParent","shouldIgnorePermissions","isFormDisabled","useForm","disabled","canCreateFields","useDocumentRBAC","rbac","canReadFields","canUpdateFields","canUserAction","idToCheck","documentId","SINGLE_TYPES","editableFields","readableFields","previewProps","usePreviewInputManager","name","attribute","props","canUserReadField","type","canUserEditField","fields","useStrapiApp","app","lazyComponentStore","useLazyComponents","attributeHasCustomFieldProperty","customField","undefined","useFieldHint","renderComponentInput","React","useCallback","componentInputProps","_jsx","MemoizedInputRenderer","field","useField","NotAllowedInput","fieldIsDisabled","CustomInput","FormInputRenderer","addedInputTypes","Object","keys","includes","BlocksInput","onBlur","_onComponentBlur","onFocus","_onComponentFocus","componentProps","ComponentInput","layout","component","_onDzBlur","_onDzFocus","dynamicZoneProps","DynamicZone","RelationsInput","Wysiwyg","unique","_uniqueUID","restUIDProps","UIDInput","options","enum","map","value","_unique","mainField","_mainField","restProps","rulesEngine","createRulesEngine","ConditionAwareInputRenderer","condition","conditionDependencyPaths","useMemo","getConditionDependencyPaths","getValues","conditionSubscriptionValue","getConditionDependencySubscriptionValue","getDirectParent","values","targetValues","isVisible","evaluate","formatMessage","useIntl","maximum","minimum","getMinMax","units","id","defaultMessage","maxValue","Math","max","hasMinAndMax","min","description","unit","divider","br","Number","isNaN","maxLength","minLength","memo","conditions"],"mappings":"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"}
1
+ {"version":3,"file":"InputRenderer.js","sources":["../../../../../admin/src/pages/EditView/components/InputRenderer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n useForm,\n InputRenderer as FormInputRenderer,\n useField,\n createRulesEngine,\n type JsonLogicCondition,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { SINGLE_TYPES } from '../../../constants/collections';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { type UseDocument } from '../../../hooks/useDocument';\nimport { useDocumentContext } from '../../../hooks/useDocumentContext';\nimport { useDocumentLayout } from '../../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../../hooks/useLazyComponents';\nimport {\n useHasInputPopoverParent,\n usePreviewPopoverBlockIndex,\n} from '../../../preview/components/InputPopover';\nimport { usePreviewInputManager } from '../../../preview/hooks/usePreviewInputManager';\nimport {\n getConditionDependencyPaths,\n getConditionDependencySubscriptionValue,\n} from '../../../utils/conditionalFields';\nimport { getDirectParent } from '../utils/data';\n\nimport { BlocksInput } from './FormInputs/BlocksInput/BlocksInput';\nimport { ComponentInput } from './FormInputs/Component/Input';\nimport { DynamicZone, useDynamicZone } from './FormInputs/DynamicZone/Field';\nimport { NotAllowedInput } from './FormInputs/NotAllowed';\nimport { RelationsInput } from './FormInputs/Relations/Relations';\nimport { UIDInput } from './FormInputs/UID';\nimport { Wysiwyg } from './FormInputs/Wysiwyg/Field';\n\nimport type { EditFieldLayout } from '../../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\nimport type { DistributiveOmit } from 'react-redux';\n\ntype InputRendererProps = DistributiveOmit<EditFieldLayout, 'size'> & {\n document?: ReturnType<UseDocument>;\n};\n\n/**\n * @internal\n *\n * @description An abstraction around the regular form input renderer designed\n * specifically to be used in the EditView of the content-manager this understands\n * the complete EditFieldLayout and will handle RBAC conditions and rendering CM specific\n * components such as Blocks / Relations.\n */\nconst BaseInputRenderer = ({\n visible,\n hint: providedHint,\n document: providedDocument,\n ...inputProps\n}: InputRendererProps) => {\n const { currentDocument, currentDocumentMeta } = useDocumentContext('DynamicComponent');\n // Most edit-view fields can read the document from context, which avoids threading a\n // frequently-changing `document` prop through nested component/DZ trees and reduces churn.\n // Keep `providedDocument` as an explicit override for callers outside that default flow.\n const document = providedDocument ?? currentDocument;\n const localeKey = document?.document?.locale || 'default';\n const {\n edit: { components },\n } = useDocumentLayout(currentDocumentMeta.model);\n\n const collectionType =\n document.schema?.kind === 'collectionType' ? 'collection-types' : 'single-types';\n\n const isInDynamicZone = useDynamicZone('isInDynamicZone', (state) => state.isInDynamicZone);\n const isInPreviewPopover = useHasInputPopoverParent();\n const blockIndex = usePreviewPopoverBlockIndex();\n const shouldIgnorePermissions = isInDynamicZone || isInPreviewPopover;\n\n const isFormDisabled = useForm('InputRenderer', (state) => state.disabled);\n const canCreateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canCreateFields);\n const canReadFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canReadFields);\n const canUpdateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUpdateFields);\n const canUserAction = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUserAction);\n\n let idToCheck = document.document?.documentId;\n if (collectionType === SINGLE_TYPES) {\n idToCheck = document?.document?.documentId;\n }\n\n const editableFields = idToCheck ? canUpdateFields : canCreateFields;\n const readableFields = idToCheck ? canReadFields : canCreateFields;\n\n // Everything preview related\n const previewProps = usePreviewInputManager(inputProps.name, inputProps.attribute);\n const props = { ...inputProps, ...previewProps };\n\n /**\n * Component fields are always readable and editable,\n * however the fields within them may not be.\n */\n const canUserReadField = canUserAction(props.name, readableFields, props.type);\n const canUserEditField = canUserAction(props.name, editableFields, props.type);\n\n const fields = useStrapiApp('InputRenderer', (app) => app.fields);\n const { lazyComponentStore } = useLazyComponents(\n attributeHasCustomFieldProperty(props.attribute) ? [props.attribute.customField] : undefined\n );\n\n const hint = useFieldHint(providedHint, props.attribute);\n const renderComponentInput = React.useCallback(\n (componentInputProps: InputRendererProps) => (\n <MemoizedInputRenderer\n key={`input-${componentInputProps.name}-${localeKey}`}\n {...componentInputProps}\n />\n ),\n [localeKey]\n );\n\n // We pass field in case of Custom Fields to keep backward compatibility\n const field = useField(props.name);\n\n if (!visible) {\n return null;\n }\n\n /**\n * If the user can't read the field then we don't want to ever render it.\n */\n if (!canUserReadField && !shouldIgnorePermissions) {\n return <NotAllowedInput hint={hint} {...props} />;\n }\n\n const fieldIsDisabled =\n (!canUserEditField && !shouldIgnorePermissions) || props.disabled || isFormDisabled;\n\n /**\n * Because a custom field has a unique prop but the type could be confused with either\n * the useField hook or the type of the field we need to handle it separately and first.\n */\n if (attributeHasCustomFieldProperty(props.attribute)) {\n const CustomInput = lazyComponentStore[props.attribute.customField];\n\n if (CustomInput) {\n return (\n <CustomInput\n {...props}\n {...field}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – this workaround lets us display that the custom field is missing.\n type={props.attribute.customField}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * This is where we handle ONLY the fields from the `useLibrary` hook.\n */\n const addedInputTypes = Object.keys(fields);\n if (!attributeHasCustomFieldProperty(props.attribute) && addedInputTypes.includes(props.type)) {\n const CustomInput = fields[props.type];\n return (\n <CustomInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * These include the content-manager specific fields, failing that we fall back\n * to the more generic form input renderer.\n */\n switch (props.type) {\n case 'blocks':\n return (\n <BlocksInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n autoFocus={isInPreviewPopover && blockIndex == null}\n livePreviewSync={isInPreviewPopover}\n blockIndex={blockIndex}\n />\n );\n case 'component':\n // Preview focus/blur handlers are not used for data-structure roots (component/dynamic zone).\n // Dropping them avoids unstable function props cascading through memoized component trees.\n const { onBlur: _onComponentBlur, onFocus: _onComponentFocus, ...componentProps } = props;\n\n return (\n <ComponentInput\n key={`input-${props.name}-${localeKey}`}\n {...componentProps}\n hint={hint}\n layout={components[props.attribute.component].layout}\n disabled={fieldIsDisabled}\n >\n {renderComponentInput}\n </ComponentInput>\n );\n case 'dynamiczone':\n // Same rationale as `component` above: keep data-structure root props stable.\n const { onBlur: _onDzBlur, onFocus: _onDzFocus, ...dynamicZoneProps } = props;\n\n return (\n <DynamicZone\n key={`input-${props.name}-${localeKey}`}\n {...dynamicZoneProps}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'relation':\n return (\n <RelationsInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'richtext':\n return (\n <Wysiwyg\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n case 'uid':\n // These props are not needed for the generic form input renderer.\n const { unique: _uniqueUID, ...restUIDProps } = props;\n return (\n <UIDInput\n key={`input-${props.name}-${localeKey}`}\n {...restUIDProps}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n /**\n * Enumerations are a special case because they require options.\n */\n case 'enumeration':\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n options={props.attribute.enum.map((value) => ({ value }))}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n default:\n // These props are not needed for the generic form input renderer.\n const { unique: _unique, mainField: _mainField, ...restProps } = props;\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...restProps}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n }\n};\n\n// Reuse one rules engine instance instead of recreating it for every field render.\nconst rulesEngine = createRulesEngine();\n\n/**\n * A wrapper around BaseInputRenderer that conditionally renders it depending on the attribute's condition.\n */\nconst ConditionAwareInputRenderer = ({\n condition,\n ...props\n}: InputRendererProps & { condition: JsonLogicCondition }) => {\n // Extract only the field paths the visibility rule depends on so unrelated form changes\n // do not force this conditional field to re-render.\n const conditionDependencyPaths = React.useMemo(\n () => getConditionDependencyPaths(condition),\n [condition]\n );\n const getValues = useForm(\n 'ConditionalInputRenderer',\n (state) => (state as typeof state & { getValues: () => unknown }).getValues\n );\n const conditionSubscriptionValue = useForm('ConditionalInputRenderer', (state) => {\n // Subscribe to a small, comparable snapshot of the parent scope instead of all form values.\n return getConditionDependencySubscriptionValue(\n getDirectParent(state.values, props.name),\n conditionDependencyPaths\n );\n });\n\n // When dependencies are known, read the latest parent scope lazily via getValues() so the\n // rule still evaluates against fresh data without subscribing to every form change.\n const targetValues =\n conditionDependencyPaths === null\n ? conditionSubscriptionValue\n : getDirectParent(getValues(), props.name);\n\n const isVisible = rulesEngine.evaluate(condition, targetValues);\n\n if (!isVisible) {\n return null;\n }\n\n return <BaseInputRenderer {...props} />;\n};\n\nconst attributeHasCustomFieldProperty = (\n attribute: Schema.Attribute.AnyAttribute\n): attribute is Schema.Attribute.AnyAttribute & Schema.Attribute.CustomField<string> =>\n 'customField' in attribute && typeof attribute.customField === 'string';\n\nconst useFieldHint = (\n hint: React.ReactNode = undefined,\n attribute: Schema.Attribute.AnyAttribute\n) => {\n const { formatMessage } = useIntl();\n\n const { maximum, minimum } = getMinMax(attribute);\n\n if (!maximum && !minimum) {\n return hint;\n }\n\n const units = ['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(attribute.type)\n ? formatMessage(\n {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n {\n maxValue: Math.max(minimum || 0, maximum || 0),\n }\n )\n : null;\n\n const hasMinAndMax = typeof minimum === 'number' && typeof maximum === 'number';\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: hint,\n unit: units,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: <br />,\n }\n );\n};\n\nconst getMinMax = (attribute: Schema.Attribute.AnyAttribute) => {\n if ('min' in attribute || 'max' in attribute) {\n return {\n maximum: !Number.isNaN(Number(attribute.max)) ? Number(attribute.max) : undefined,\n minimum: !Number.isNaN(Number(attribute.min)) ? Number(attribute.min) : undefined,\n };\n } else if ('maxLength' in attribute || 'minLength' in attribute) {\n return { maximum: attribute.maxLength, minimum: attribute.minLength };\n } else {\n return { maximum: undefined, minimum: undefined };\n }\n};\n\n/**\n * Conditionally routes the exported InputRender component towards ConditionalInputRenderer\n * (when there's a JSON logic condition on the attribute, or BaseInputRenderer otherwise.\n * We do this because rendering a conditional field requires access to the values of\n * other form fields, which causes many re-renders and performance issues on complex content\n * types. By splitting the component into two, we isolate the performance issue to\n * conditional fields only, not all edit view fields.\n */\nconst MemoizedInputRenderer = React.memo((props: InputRendererProps) => {\n const condition = props.attribute.conditions?.visible;\n if (condition) {\n return <ConditionAwareInputRenderer {...props} condition={condition} />;\n }\n\n return <BaseInputRenderer {...props} />;\n});\n\nexport type { InputRendererProps };\nexport { MemoizedInputRenderer as InputRenderer, useFieldHint };\n"],"names":["BaseInputRenderer","visible","hint","providedHint","document","providedDocument","inputProps","currentDocument","currentDocumentMeta","useDocumentContext","localeKey","locale","edit","components","useDocumentLayout","model","collectionType","schema","kind","isInDynamicZone","useDynamicZone","state","isInPreviewPopover","useHasInputPopoverParent","blockIndex","usePreviewPopoverBlockIndex","shouldIgnorePermissions","isFormDisabled","useForm","disabled","canCreateFields","useDocumentRBAC","rbac","canReadFields","canUpdateFields","canUserAction","idToCheck","documentId","SINGLE_TYPES","editableFields","readableFields","previewProps","usePreviewInputManager","name","attribute","props","canUserReadField","type","canUserEditField","fields","useStrapiApp","app","lazyComponentStore","useLazyComponents","attributeHasCustomFieldProperty","customField","undefined","useFieldHint","renderComponentInput","React","useCallback","componentInputProps","_jsx","MemoizedInputRenderer","field","useField","NotAllowedInput","fieldIsDisabled","CustomInput","FormInputRenderer","addedInputTypes","Object","keys","includes","BlocksInput","autoFocus","livePreviewSync","onBlur","_onComponentBlur","onFocus","_onComponentFocus","componentProps","ComponentInput","layout","component","_onDzBlur","_onDzFocus","dynamicZoneProps","DynamicZone","RelationsInput","Wysiwyg","unique","_uniqueUID","restUIDProps","UIDInput","options","enum","map","value","_unique","mainField","_mainField","restProps","rulesEngine","createRulesEngine","ConditionAwareInputRenderer","condition","conditionDependencyPaths","useMemo","getConditionDependencyPaths","getValues","conditionSubscriptionValue","getConditionDependencySubscriptionValue","getDirectParent","values","targetValues","isVisible","evaluate","formatMessage","useIntl","maximum","minimum","getMinMax","units","id","defaultMessage","maxValue","Math","max","hasMinAndMax","min","description","unit","divider","br","Number","isNaN","maxLength","minLength","memo","conditions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA;;;;;;;AAOC,IACD,MAAMA,iBAAAA,GAAoB,CAAC,EACzBC,OAAO,EACPC,IAAAA,EAAMC,YAAY,EAClBC,QAAAA,EAAUC,gBAAgB,EAC1B,GAAGC,UAAAA,EACgB,GAAA;AACnB,IAAA,MAAM,EAAEC,eAAe,EAAEC,mBAAmB,EAAE,GAAGC,qCAAAA,CAAmB,kBAAA,CAAA;;;;AAIpE,IAAA,MAAML,WAAWC,gBAAAA,IAAoBE,eAAAA;IACrC,MAAMG,SAAAA,GAAYN,QAAAA,EAAUA,QAAAA,EAAUO,MAAAA,IAAU,SAAA;IAChD,MAAM,EACJC,MAAM,EAAEC,UAAU,EAAE,EACrB,GAAGC,mCAAAA,CAAkBN,mBAAAA,CAAoBO,KAAK,CAAA;AAE/C,IAAA,MAAMC,iBACJZ,QAAAA,CAASa,MAAM,EAAEC,IAAAA,KAAS,mBAAmB,kBAAA,GAAqB,cAAA;AAEpE,IAAA,MAAMC,kBAAkBC,oBAAAA,CAAe,iBAAA,EAAmB,CAACC,KAAAA,GAAUA,MAAMF,eAAe,CAAA;AAC1F,IAAA,MAAMG,kBAAAA,GAAqBC,qCAAAA,EAAAA;AAC3B,IAAA,MAAMC,UAAAA,GAAaC,wCAAAA,EAAAA;AACnB,IAAA,MAAMC,0BAA0BP,eAAAA,IAAmBG,kBAAAA;AAEnD,IAAA,MAAMK,iBAAiBC,mBAAAA,CAAQ,eAAA,EAAiB,CAACP,KAAAA,GAAUA,MAAMQ,QAAQ,CAAA;AACzE,IAAA,MAAMC,kBAAkBC,4BAAAA,CAAgB,eAAA,EAAiB,CAACC,IAAAA,GAASA,KAAKF,eAAe,CAAA;AACvF,IAAA,MAAMG,gBAAgBF,4BAAAA,CAAgB,eAAA,EAAiB,CAACC,IAAAA,GAASA,KAAKC,aAAa,CAAA;AACnF,IAAA,MAAMC,kBAAkBH,4BAAAA,CAAgB,eAAA,EAAiB,CAACC,IAAAA,GAASA,KAAKE,eAAe,CAAA;AACvF,IAAA,MAAMC,gBAAgBJ,4BAAAA,CAAgB,eAAA,EAAiB,CAACC,IAAAA,GAASA,KAAKG,aAAa,CAAA;IAEnF,IAAIC,SAAAA,GAAYhC,QAAAA,CAASA,QAAQ,EAAEiC,UAAAA;AACnC,IAAA,IAAIrB,mBAAmBsB,wBAAAA,EAAc;AACnCF,QAAAA,SAAAA,GAAYhC,UAAUA,QAAAA,EAAUiC,UAAAA;AAClC,IAAA;IAEA,MAAME,cAAAA,GAAiBH,YAAYF,eAAAA,GAAkBJ,eAAAA;IACrD,MAAMU,cAAAA,GAAiBJ,YAAYH,aAAAA,GAAgBH,eAAAA;;AAGnD,IAAA,MAAMW,eAAeC,6CAAAA,CAAuBpC,UAAAA,CAAWqC,IAAI,EAAErC,WAAWsC,SAAS,CAAA;AACjF,IAAA,MAAMC,KAAAA,GAAQ;AAAE,QAAA,GAAGvC,UAAU;AAAE,QAAA,GAAGmC;AAAa,KAAA;AAE/C;;;MAIA,MAAMK,mBAAmBX,aAAAA,CAAcU,KAAAA,CAAMF,IAAI,EAAEH,cAAAA,EAAgBK,MAAME,IAAI,CAAA;AAC7E,IAAA,MAAMC,mBAAmBb,aAAAA,CAAcU,KAAAA,CAAMF,IAAI,EAAEJ,cAAAA,EAAgBM,MAAME,IAAI,CAAA;AAE7E,IAAA,MAAME,SAASC,wBAAAA,CAAa,eAAA,EAAiB,CAACC,GAAAA,GAAQA,IAAIF,MAAM,CAAA;IAChE,MAAM,EAAEG,kBAAkB,EAAE,GAAGC,oCAC7BC,+BAAAA,CAAgCT,KAAAA,CAAMD,SAAS,CAAA,GAAI;QAACC,KAAAA,CAAMD,SAAS,CAACW;KAAY,GAAGC,SAAAA,CAAAA;AAGrF,IAAA,MAAMtD,IAAAA,GAAOuD,YAAAA,CAAatD,YAAAA,EAAc0C,KAAAA,CAAMD,SAAS,CAAA;AACvD,IAAA,MAAMc,uBAAuBC,gBAAAA,CAAMC,WAAW,CAC5C,CAACC,oCACCC,cAAA,CAACC,qBAAAA,EAAAA;AAEE,YAAA,GAAGF;WADC,CAAC,MAAM,EAAEA,mBAAAA,CAAoBlB,IAAI,CAAC,CAAC,EAAEjC,WAAW,CAAA,EAIzD;AAACA,QAAAA;AAAU,KAAA,CAAA;;IAIb,MAAMsD,KAAAA,GAAQC,oBAAAA,CAASpB,KAAAA,CAAMF,IAAI,CAAA;AAEjC,IAAA,IAAI,CAAC1C,OAAAA,EAAS;QACZ,OAAO,IAAA;AACT,IAAA;AAEA;;AAEC,MACD,IAAI,CAAC6C,gBAAAA,IAAoB,CAACpB,uBAAAA,EAAyB;AACjD,QAAA,qBAAOoC,cAAA,CAACI,0BAAAA,EAAAA;YAAgBhE,IAAAA,EAAMA,IAAAA;AAAO,YAAA,GAAG2C;;AAC1C,IAAA;IAEA,MAAMsB,eAAAA,GACJ,CAAEnB,gBAAAA,IAAoB,CAACtB,uBAAAA,IAA4BmB,KAAAA,CAAMhB,QAAQ,IAAIF,cAAAA;AAEvE;;;AAGC,MACD,IAAI2B,+BAAAA,CAAgCT,KAAAA,CAAMD,SAAS,CAAA,EAAG;AACpD,QAAA,MAAMwB,cAAchB,kBAAkB,CAACP,MAAMD,SAAS,CAACW,WAAW,CAAC;AAEnE,QAAA,IAAIa,WAAAA,EAAa;AACf,YAAA,qBACEN,cAAA,CAACM,WAAAA,EAAAA;AACE,gBAAA,GAAGvB,KAAK;AACR,gBAAA,GAAGmB,KAAK;;gBAET9D,IAAAA,EAAMA,IAAAA;gBACN2B,QAAAA,EAAUsC;;AAGhB,QAAA;AAEA,QAAA,qBACEL,cAAA,CAACO,yBAAAA,EAAAA;AAEE,YAAA,GAAGxB,KAAK;AACR,YAAA,GAAGJ,YAAY;YAChBvC,IAAAA,EAAMA,IAAAA;;YAEN6C,IAAAA,EAAMF,KAAAA,CAAMD,SAAS,CAACW,WAAW;YACjC1B,QAAAA,EAAUsC;AANL,SAAA,EAAA,CAAC,MAAM,EAAEtB,KAAAA,CAAMF,IAAI,CAAC,CAAC,EAAEjC,SAAAA,CAAAA,CAAW,CAAA;AAS7C,IAAA;AAEA;;AAEC,MACD,MAAM4D,eAAAA,GAAkBC,MAAAA,CAAOC,IAAI,CAACvB,MAAAA,CAAAA;IACpC,IAAI,CAACK,+BAAAA,CAAgCT,KAAAA,CAAMD,SAAS,CAAA,IAAK0B,gBAAgBG,QAAQ,CAAC5B,KAAAA,CAAME,IAAI,CAAA,EAAG;AAC7F,QAAA,MAAMqB,WAAAA,GAAcnB,MAAM,CAACJ,KAAAA,CAAME,IAAI,CAAC;AACtC,QAAA,qBACEe,cAAA,CAACM,WAAAA,EAAAA;AAEE,YAAA,GAAGvB,KAAK;;YAET3C,IAAAA,EAAMA,IAAAA;YACN2B,QAAAA,EAAUsC;AAJL,SAAA,EAAA,CAAC,MAAM,EAAEtB,KAAAA,CAAMF,IAAI,CAAC,CAAC,EAAEjC,SAAAA,CAAAA,CAAW,CAAA;AAO7C,IAAA;AAEA;;;MAIA,OAAQmC,MAAME,IAAI;QAChB,KAAK,QAAA;AACH,YAAA,qBACEe,cAAA,CAACY,uBAAAA,EAAAA;AAEE,gBAAA,GAAG7B,KAAK;gBACT3C,IAAAA,EAAMA,IAAAA;AACN6C,gBAAAA,IAAAA,EAAMF,MAAME,IAAI;gBAChBlB,QAAAA,EAAUsC,eAAAA;AACVQ,gBAAAA,SAAAA,EAAWrD,sBAAsBE,UAAAA,IAAc,IAAA;gBAC/CoD,eAAAA,EAAiBtD,kBAAAA;gBACjBE,UAAAA,EAAYA;AAPP,aAAA,EAAA,CAAC,MAAM,EAAEqB,KAAAA,CAAMF,IAAI,CAAC,CAAC,EAAEjC,SAAAA,CAAAA,CAAW,CAAA;QAU7C,KAAK,WAAA;;;YAGH,MAAM,EAAEmE,QAAQC,gBAAgB,EAAEC,SAASC,iBAAiB,EAAE,GAAGC,cAAAA,EAAgB,GAAGpC,KAAAA;AAEpF,YAAA,qBACEiB,cAAA,CAACoB,oBAAAA,EAAAA;AAEE,gBAAA,GAAGD,cAAc;gBAClB/E,IAAAA,EAAMA,IAAAA;gBACNiF,MAAAA,EAAQtE,UAAU,CAACgC,KAAAA,CAAMD,SAAS,CAACwC,SAAS,CAAC,CAACD,MAAM;gBACpDtD,QAAAA,EAAUsC,eAAAA;AAETT,gBAAAA,QAAAA,EAAAA;AANI,aAAA,EAAA,CAAC,MAAM,EAAEb,KAAAA,CAAMF,IAAI,CAAC,CAAC,EAAEjC,SAAAA,CAAAA,CAAW,CAAA;QAS7C,KAAK,aAAA;;YAEH,MAAM,EAAEmE,QAAQQ,SAAS,EAAEN,SAASO,UAAU,EAAE,GAAGC,gBAAAA,EAAkB,GAAG1C,KAAAA;AAExE,YAAA,qBACEiB,cAAA,CAAC0B,iBAAAA,EAAAA;AAEE,gBAAA,GAAGD,gBAAgB;gBACpBrF,IAAAA,EAAMA,IAAAA;gBACN2B,QAAAA,EAAUsC;AAHL,aAAA,EAAA,CAAC,MAAM,EAAEtB,KAAAA,CAAMF,IAAI,CAAC,CAAC,EAAEjC,SAAAA,CAAAA,CAAW,CAAA;QAM7C,KAAK,UAAA;AACH,YAAA,qBACEoD,cAAA,CAAC2B,wBAAAA,EAAAA;AAEE,gBAAA,GAAG5C,KAAK;gBACT3C,IAAAA,EAAMA,IAAAA;gBACN2B,QAAAA,EAAUsC;AAHL,aAAA,EAAA,CAAC,MAAM,EAAEtB,KAAAA,CAAMF,IAAI,CAAC,CAAC,EAAEjC,SAAAA,CAAAA,CAAW,CAAA;QAM7C,KAAK,UAAA;AACH,YAAA,qBACEoD,cAAA,CAAC4B,eAAAA,EAAAA;AAEE,gBAAA,GAAG7C,KAAK;gBACT3C,IAAAA,EAAMA,IAAAA;AACN6C,gBAAAA,IAAAA,EAAMF,MAAME,IAAI;gBAChBlB,QAAAA,EAAUsC;AAJL,aAAA,EAAA,CAAC,MAAM,EAAEtB,KAAAA,CAAMF,IAAI,CAAC,CAAC,EAAEjC,SAAAA,CAAAA,CAAW,CAAA;QAO7C,KAAK,KAAA;;AAEH,YAAA,MAAM,EAAEiF,MAAAA,EAAQC,UAAU,EAAE,GAAGC,cAAc,GAAGhD,KAAAA;AAChD,YAAA,qBACEiB,cAAA,CAACgC,YAAAA,EAAAA;AAEE,gBAAA,GAAGD,YAAY;gBAChB3F,IAAAA,EAAMA,IAAAA;AACN6C,gBAAAA,IAAAA,EAAMF,MAAME,IAAI;gBAChBlB,QAAAA,EAAUsC;AAJL,aAAA,EAAA,CAAC,MAAM,EAAEtB,KAAAA,CAAMF,IAAI,CAAC,CAAC,EAAEjC,SAAAA,CAAAA,CAAW,CAAA;AAO7C;;AAEC,QACD,KAAK,aAAA;AACH,YAAA,qBACEoD,cAAA,CAACO,yBAAAA,EAAAA;AAEE,gBAAA,GAAGxB,KAAK;AACR,gBAAA,GAAGJ,YAAY;gBAChBvC,IAAAA,EAAMA,IAAAA;gBACN6F,OAAAA,EAASlD,KAAAA,CAAMD,SAAS,CAACoD,IAAI,CAACC,GAAG,CAAC,CAACC,KAAAA,IAAW;AAAEA,wBAAAA;qBAAM,CAAA,CAAA;;AAEtDnD,gBAAAA,IAAAA,EAAMF,KAAAA,CAAMU,WAAW,GAAG,cAAA,GAAiBV,MAAME,IAAI;gBACrDlB,QAAAA,EAAUsC;AAPL,aAAA,EAAA,CAAC,MAAM,EAAEtB,KAAAA,CAAMF,IAAI,CAAC,CAAC,EAAEjC,SAAAA,CAAAA,CAAW,CAAA;AAU7C,QAAA;;YAEE,MAAM,EAAEiF,QAAQQ,OAAO,EAAEC,WAAWC,UAAU,EAAE,GAAGC,SAAAA,EAAW,GAAGzD,KAAAA;AACjE,YAAA,qBACEiB,cAAA,CAACO,yBAAAA,EAAAA;AAEE,gBAAA,GAAGiC,SAAS;AACZ,gBAAA,GAAG7D,YAAY;gBAChBvC,IAAAA,EAAMA,IAAAA;;AAEN6C,gBAAAA,IAAAA,EAAMF,KAAAA,CAAMU,WAAW,GAAG,cAAA,GAAiBV,MAAME,IAAI;gBACrDlB,QAAAA,EAAUsC;AANL,aAAA,EAAA,CAAC,MAAM,EAAEtB,KAAAA,CAAMF,IAAI,CAAC,CAAC,EAAEjC,SAAAA,CAAAA,CAAW,CAAA;AAS/C;AACF,CAAA;AAEA;AACA,MAAM6F,WAAAA,GAAcC,6BAAAA,EAAAA;AAEpB;;AAEC,IACD,MAAMC,2BAAAA,GAA8B,CAAC,EACnCC,SAAS,EACT,GAAG7D,KAAAA,EACoD,GAAA;;;AAGvD,IAAA,MAAM8D,2BAA2BhD,gBAAAA,CAAMiD,OAAO,CAC5C,IAAMC,8CAA4BH,SAAAA,CAAAA,EAClC;AAACA,QAAAA;AAAU,KAAA,CAAA;AAEb,IAAA,MAAMI,YAAYlF,mBAAAA,CAChB,0BAAA,EACA,CAACP,KAAAA,GAAWA,MAAsDyF,SAAS,CAAA;IAE7E,MAAMC,0BAAAA,GAA6BnF,mBAAAA,CAAQ,0BAAA,EAA4B,CAACP,KAAAA,GAAAA;;AAEtE,QAAA,OAAO2F,0DACLC,oBAAAA,CAAgB5F,KAAAA,CAAM6F,MAAM,EAAErE,KAAAA,CAAMF,IAAI,CAAA,EACxCgE,wBAAAA,CAAAA;AAEJ,IAAA,CAAA,CAAA;;;AAIA,IAAA,MAAMQ,eACJR,wBAAAA,KAA6B,IAAA,GACzBI,6BACAE,oBAAAA,CAAgBH,SAAAA,EAAAA,EAAajE,MAAMF,IAAI,CAAA;AAE7C,IAAA,MAAMyE,SAAAA,GAAYb,WAAAA,CAAYc,QAAQ,CAACX,SAAAA,EAAWS,YAAAA,CAAAA;AAElD,IAAA,IAAI,CAACC,SAAAA,EAAW;QACd,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,qBAAOtD,cAAA,CAAC9D,iBAAAA,EAAAA;AAAmB,QAAA,GAAG6C;;AAChC,CAAA;AAEA,MAAMS,+BAAAA,GAAkC,CACtCV,SAAAA,GAEA,aAAA,IAAiBA,aAAa,OAAOA,SAAAA,CAAUW,WAAW,KAAK,QAAA;AAEjE,MAAME,YAAAA,GAAe,CACnBvD,IAAAA,GAAwBsD,SAAS,EACjCZ,SAAAA,GAAAA;IAEA,MAAM,EAAE0E,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAM,EAAEC,OAAO,EAAEC,OAAO,EAAE,GAAGC,SAAAA,CAAU9E,SAAAA,CAAAA;IAEvC,IAAI,CAAC4E,OAAAA,IAAW,CAACC,OAAAA,EAAS;QACxB,OAAOvH,IAAAA;AACT,IAAA;AAEA,IAAA,MAAMyH,KAAAA,GAAQ;AAAC,QAAA,QAAA;AAAU,QAAA,KAAA;AAAO,QAAA,UAAA;AAAY,QAAA,OAAA;AAAS,QAAA,UAAA;AAAY,QAAA;AAAO,KAAA,CAAClD,QAAQ,CAAC7B,SAAAA,CAAUG,IAAI,IAC5FuE,aAAAA,CACE;QACEM,EAAAA,EAAI,gDAAA;QACJC,cAAAA,EAAgB;KAClB,EACA;AACEC,QAAAA,QAAAA,EAAUC,IAAAA,CAAKC,GAAG,CAACP,OAAAA,IAAW,GAAGD,OAAAA,IAAW,CAAA;KAC9C,CAAA,GAEF,IAAA;AAEJ,IAAA,MAAMS,YAAAA,GAAe,OAAOR,OAAAA,KAAY,QAAA,IAAY,OAAOD,OAAAA,KAAY,QAAA;AAEvE,IAAA,OAAOF,aAAAA,CACL;QACEM,EAAAA,EAAI,sCAAA;QACJC,cAAAA,EACE;KACJ,EACA;QACEK,GAAAA,EAAKT,OAAAA;QACLO,GAAAA,EAAKR,OAAAA;QACLW,WAAAA,EAAajI,IAAAA;QACbkI,IAAAA,EAAMT,KAAAA;AACNU,QAAAA,OAAAA,EAASJ,eACLX,aAAAA,CAAc;YACZM,EAAAA,EAAI,+CAAA;YACJC,cAAAA,EAAgB;SAClB,CAAA,GACA,IAAA;AACJS,QAAAA,EAAAA,gBAAIxE,cAAA,CAACwE,IAAAA,EAAAA,EAAAA;AACP,KAAA,CAAA;AAEJ;AAEA,MAAMZ,YAAY,CAAC9E,SAAAA,GAAAA;IACjB,IAAI,KAAA,IAASA,SAAAA,IAAa,KAAA,IAASA,SAAAA,EAAW;QAC5C,OAAO;YACL4E,OAAAA,EAAS,CAACe,MAAAA,CAAOC,KAAK,CAACD,MAAAA,CAAO3F,SAAAA,CAAUoF,GAAG,CAAA,CAAA,GAAKO,MAAAA,CAAO3F,SAAAA,CAAUoF,GAAG,CAAA,GAAIxE,SAAAA;YACxEiE,OAAAA,EAAS,CAACc,MAAAA,CAAOC,KAAK,CAACD,MAAAA,CAAO3F,SAAAA,CAAUsF,GAAG,CAAA,CAAA,GAAKK,MAAAA,CAAO3F,SAAAA,CAAUsF,GAAG,CAAA,GAAI1E;AAC1E,SAAA;AACF,IAAA,CAAA,MAAO,IAAI,WAAA,IAAeZ,SAAAA,IAAa,WAAA,IAAeA,SAAAA,EAAW;QAC/D,OAAO;AAAE4E,YAAAA,OAAAA,EAAS5E,UAAU6F,SAAS;AAAEhB,YAAAA,OAAAA,EAAS7E,UAAU8F;AAAU,SAAA;IACtE,CAAA,MAAO;QACL,OAAO;YAAElB,OAAAA,EAAShE,SAAAA;YAAWiE,OAAAA,EAASjE;AAAU,SAAA;AAClD,IAAA;AACF,CAAA;AAEA;;;;;;;AAOC,IACD,MAAMO,qBAAAA,iBAAwBJ,gBAAAA,CAAMgF,IAAI,CAAC,CAAC9F,KAAAA,GAAAA;AACxC,IAAA,MAAM6D,SAAAA,GAAY7D,KAAAA,CAAMD,SAAS,CAACgG,UAAU,EAAE3I,OAAAA;AAC9C,IAAA,IAAIyG,SAAAA,EAAW;AACb,QAAA,qBAAO5C,cAAA,CAAC2C,2BAAAA,EAAAA;AAA6B,YAAA,GAAG5D,KAAK;YAAE6D,SAAAA,EAAWA;;AAC5D,IAAA;AAEA,IAAA,qBAAO5C,cAAA,CAAC9D,iBAAAA,EAAAA;AAAmB,QAAA,GAAG6C;;AAChC,CAAA;;;;;"}
@@ -7,7 +7,7 @@ import { useDocumentRBAC } from '../../../features/DocumentRBAC.mjs';
7
7
  import { useDocumentContext } from '../../../hooks/useDocumentContext.mjs';
8
8
  import { useDocumentLayout } from '../../../hooks/useDocumentLayout.mjs';
9
9
  import { useLazyComponents } from '../../../hooks/useLazyComponents.mjs';
10
- import { useHasInputPopoverParent } from '../../../preview/components/InputPopover.mjs';
10
+ import { useHasInputPopoverParent, usePreviewPopoverBlockIndex } from '../../../preview/components/InputPopover.mjs';
11
11
  import { usePreviewInputManager } from '../../../preview/hooks/usePreviewInputManager.mjs';
12
12
  import { getConditionDependencyPaths, getConditionDependencySubscriptionValue } from '../../../utils/conditionalFields.mjs';
13
13
  import { getDirectParent } from '../utils/data.mjs';
@@ -37,6 +37,7 @@ import { Wysiwyg as MemoizedWysiwyg } from './FormInputs/Wysiwyg/Field.mjs';
37
37
  const collectionType = document.schema?.kind === 'collectionType' ? 'collection-types' : 'single-types';
38
38
  const isInDynamicZone = useDynamicZone('isInDynamicZone', (state)=>state.isInDynamicZone);
39
39
  const isInPreviewPopover = useHasInputPopoverParent();
40
+ const blockIndex = usePreviewPopoverBlockIndex();
40
41
  const shouldIgnorePermissions = isInDynamicZone || isInPreviewPopover;
41
42
  const isFormDisabled = useForm('InputRenderer', (state)=>state.disabled);
42
43
  const canCreateFields = useDocumentRBAC('InputRenderer', (rbac)=>rbac.canCreateFields);
@@ -128,7 +129,10 @@ import { Wysiwyg as MemoizedWysiwyg } from './FormInputs/Wysiwyg/Field.mjs';
128
129
  ...props,
129
130
  hint: hint,
130
131
  type: props.type,
131
- disabled: fieldIsDisabled
132
+ disabled: fieldIsDisabled,
133
+ autoFocus: isInPreviewPopover && blockIndex == null,
134
+ livePreviewSync: isInPreviewPopover,
135
+ blockIndex: blockIndex
132
136
  }, `input-${props.name}-${localeKey}`);
133
137
  case 'component':
134
138
  // Preview focus/blur handlers are not used for data-structure roots (component/dynamic zone).
@@ -1 +1 @@
1
- {"version":3,"file":"InputRenderer.mjs","sources":["../../../../../admin/src/pages/EditView/components/InputRenderer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n useForm,\n InputRenderer as FormInputRenderer,\n useField,\n createRulesEngine,\n type JsonLogicCondition,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { SINGLE_TYPES } from '../../../constants/collections';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { type UseDocument } from '../../../hooks/useDocument';\nimport { useDocumentContext } from '../../../hooks/useDocumentContext';\nimport { useDocumentLayout } from '../../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../../hooks/useLazyComponents';\nimport { useHasInputPopoverParent } from '../../../preview/components/InputPopover';\nimport { usePreviewInputManager } from '../../../preview/hooks/usePreviewInputManager';\nimport {\n getConditionDependencyPaths,\n getConditionDependencySubscriptionValue,\n} from '../../../utils/conditionalFields';\nimport { getDirectParent } from '../utils/data';\n\nimport { BlocksInput } from './FormInputs/BlocksInput/BlocksInput';\nimport { ComponentInput } from './FormInputs/Component/Input';\nimport { DynamicZone, useDynamicZone } from './FormInputs/DynamicZone/Field';\nimport { NotAllowedInput } from './FormInputs/NotAllowed';\nimport { RelationsInput } from './FormInputs/Relations/Relations';\nimport { UIDInput } from './FormInputs/UID';\nimport { Wysiwyg } from './FormInputs/Wysiwyg/Field';\n\nimport type { EditFieldLayout } from '../../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\nimport type { DistributiveOmit } from 'react-redux';\n\ntype InputRendererProps = DistributiveOmit<EditFieldLayout, 'size'> & {\n document?: ReturnType<UseDocument>;\n};\n\n/**\n * @internal\n *\n * @description An abstraction around the regular form input renderer designed\n * specifically to be used in the EditView of the content-manager this understands\n * the complete EditFieldLayout and will handle RBAC conditions and rendering CM specific\n * components such as Blocks / Relations.\n */\nconst BaseInputRenderer = ({\n visible,\n hint: providedHint,\n document: providedDocument,\n ...inputProps\n}: InputRendererProps) => {\n const { currentDocument, currentDocumentMeta } = useDocumentContext('DynamicComponent');\n // Most edit-view fields can read the document from context, which avoids threading a\n // frequently-changing `document` prop through nested component/DZ trees and reduces churn.\n // Keep `providedDocument` as an explicit override for callers outside that default flow.\n const document = providedDocument ?? currentDocument;\n const localeKey = document?.document?.locale || 'default';\n const {\n edit: { components },\n } = useDocumentLayout(currentDocumentMeta.model);\n\n const collectionType =\n document.schema?.kind === 'collectionType' ? 'collection-types' : 'single-types';\n\n const isInDynamicZone = useDynamicZone('isInDynamicZone', (state) => state.isInDynamicZone);\n const isInPreviewPopover = useHasInputPopoverParent();\n const shouldIgnorePermissions = isInDynamicZone || isInPreviewPopover;\n\n const isFormDisabled = useForm('InputRenderer', (state) => state.disabled);\n const canCreateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canCreateFields);\n const canReadFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canReadFields);\n const canUpdateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUpdateFields);\n const canUserAction = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUserAction);\n\n let idToCheck = document.document?.documentId;\n if (collectionType === SINGLE_TYPES) {\n idToCheck = document?.document?.documentId;\n }\n\n const editableFields = idToCheck ? canUpdateFields : canCreateFields;\n const readableFields = idToCheck ? canReadFields : canCreateFields;\n\n // Everything preview related\n const previewProps = usePreviewInputManager(inputProps.name, inputProps.attribute);\n const props = { ...inputProps, ...previewProps };\n\n /**\n * Component fields are always readable and editable,\n * however the fields within them may not be.\n */\n const canUserReadField = canUserAction(props.name, readableFields, props.type);\n const canUserEditField = canUserAction(props.name, editableFields, props.type);\n\n const fields = useStrapiApp('InputRenderer', (app) => app.fields);\n const { lazyComponentStore } = useLazyComponents(\n attributeHasCustomFieldProperty(props.attribute) ? [props.attribute.customField] : undefined\n );\n\n const hint = useFieldHint(providedHint, props.attribute);\n const renderComponentInput = React.useCallback(\n (componentInputProps: InputRendererProps) => (\n <MemoizedInputRenderer\n key={`input-${componentInputProps.name}-${localeKey}`}\n {...componentInputProps}\n />\n ),\n [localeKey]\n );\n\n // We pass field in case of Custom Fields to keep backward compatibility\n const field = useField(props.name);\n\n if (!visible) {\n return null;\n }\n\n /**\n * If the user can't read the field then we don't want to ever render it.\n */\n if (!canUserReadField && !shouldIgnorePermissions) {\n return <NotAllowedInput hint={hint} {...props} />;\n }\n\n const fieldIsDisabled =\n (!canUserEditField && !shouldIgnorePermissions) || props.disabled || isFormDisabled;\n\n /**\n * Because a custom field has a unique prop but the type could be confused with either\n * the useField hook or the type of the field we need to handle it separately and first.\n */\n if (attributeHasCustomFieldProperty(props.attribute)) {\n const CustomInput = lazyComponentStore[props.attribute.customField];\n\n if (CustomInput) {\n return (\n <CustomInput\n {...props}\n {...field}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – this workaround lets us display that the custom field is missing.\n type={props.attribute.customField}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * This is where we handle ONLY the fields from the `useLibrary` hook.\n */\n const addedInputTypes = Object.keys(fields);\n if (!attributeHasCustomFieldProperty(props.attribute) && addedInputTypes.includes(props.type)) {\n const CustomInput = fields[props.type];\n return (\n <CustomInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * These include the content-manager specific fields, failing that we fall back\n * to the more generic form input renderer.\n */\n switch (props.type) {\n case 'blocks':\n return (\n <BlocksInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n case 'component':\n // Preview focus/blur handlers are not used for data-structure roots (component/dynamic zone).\n // Dropping them avoids unstable function props cascading through memoized component trees.\n const { onBlur: _onComponentBlur, onFocus: _onComponentFocus, ...componentProps } = props;\n\n return (\n <ComponentInput\n key={`input-${props.name}-${localeKey}`}\n {...componentProps}\n hint={hint}\n layout={components[props.attribute.component].layout}\n disabled={fieldIsDisabled}\n >\n {renderComponentInput}\n </ComponentInput>\n );\n case 'dynamiczone':\n // Same rationale as `component` above: keep data-structure root props stable.\n const { onBlur: _onDzBlur, onFocus: _onDzFocus, ...dynamicZoneProps } = props;\n\n return (\n <DynamicZone\n key={`input-${props.name}-${localeKey}`}\n {...dynamicZoneProps}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'relation':\n return (\n <RelationsInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'richtext':\n return (\n <Wysiwyg\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n case 'uid':\n // These props are not needed for the generic form input renderer.\n const { unique: _uniqueUID, ...restUIDProps } = props;\n return (\n <UIDInput\n key={`input-${props.name}-${localeKey}`}\n {...restUIDProps}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n /**\n * Enumerations are a special case because they require options.\n */\n case 'enumeration':\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n options={props.attribute.enum.map((value) => ({ value }))}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n default:\n // These props are not needed for the generic form input renderer.\n const { unique: _unique, mainField: _mainField, ...restProps } = props;\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...restProps}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n }\n};\n\n// Reuse one rules engine instance instead of recreating it for every field render.\nconst rulesEngine = createRulesEngine();\n\n/**\n * A wrapper around BaseInputRenderer that conditionally renders it depending on the attribute's condition.\n */\nconst ConditionAwareInputRenderer = ({\n condition,\n ...props\n}: InputRendererProps & { condition: JsonLogicCondition }) => {\n // Extract only the field paths the visibility rule depends on so unrelated form changes\n // do not force this conditional field to re-render.\n const conditionDependencyPaths = React.useMemo(\n () => getConditionDependencyPaths(condition),\n [condition]\n );\n const getValues = useForm(\n 'ConditionalInputRenderer',\n (state) => (state as typeof state & { getValues: () => unknown }).getValues\n );\n const conditionSubscriptionValue = useForm('ConditionalInputRenderer', (state) => {\n // Subscribe to a small, comparable snapshot of the parent scope instead of all form values.\n return getConditionDependencySubscriptionValue(\n getDirectParent(state.values, props.name),\n conditionDependencyPaths\n );\n });\n\n // When dependencies are known, read the latest parent scope lazily via getValues() so the\n // rule still evaluates against fresh data without subscribing to every form change.\n const targetValues =\n conditionDependencyPaths === null\n ? conditionSubscriptionValue\n : getDirectParent(getValues(), props.name);\n\n const isVisible = rulesEngine.evaluate(condition, targetValues);\n\n if (!isVisible) {\n return null;\n }\n\n return <BaseInputRenderer {...props} />;\n};\n\nconst attributeHasCustomFieldProperty = (\n attribute: Schema.Attribute.AnyAttribute\n): attribute is Schema.Attribute.AnyAttribute & Schema.Attribute.CustomField<string> =>\n 'customField' in attribute && typeof attribute.customField === 'string';\n\nconst useFieldHint = (\n hint: React.ReactNode = undefined,\n attribute: Schema.Attribute.AnyAttribute\n) => {\n const { formatMessage } = useIntl();\n\n const { maximum, minimum } = getMinMax(attribute);\n\n if (!maximum && !minimum) {\n return hint;\n }\n\n const units = ['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(attribute.type)\n ? formatMessage(\n {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n {\n maxValue: Math.max(minimum || 0, maximum || 0),\n }\n )\n : null;\n\n const hasMinAndMax = typeof minimum === 'number' && typeof maximum === 'number';\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: hint,\n unit: units,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: <br />,\n }\n );\n};\n\nconst getMinMax = (attribute: Schema.Attribute.AnyAttribute) => {\n if ('min' in attribute || 'max' in attribute) {\n return {\n maximum: !Number.isNaN(Number(attribute.max)) ? Number(attribute.max) : undefined,\n minimum: !Number.isNaN(Number(attribute.min)) ? Number(attribute.min) : undefined,\n };\n } else if ('maxLength' in attribute || 'minLength' in attribute) {\n return { maximum: attribute.maxLength, minimum: attribute.minLength };\n } else {\n return { maximum: undefined, minimum: undefined };\n }\n};\n\n/**\n * Conditionally routes the exported InputRender component towards ConditionalInputRenderer\n * (when there's a JSON logic condition on the attribute, or BaseInputRenderer otherwise.\n * We do this because rendering a conditional field requires access to the values of\n * other form fields, which causes many re-renders and performance issues on complex content\n * types. By splitting the component into two, we isolate the performance issue to\n * conditional fields only, not all edit view fields.\n */\nconst MemoizedInputRenderer = React.memo((props: InputRendererProps) => {\n const condition = props.attribute.conditions?.visible;\n if (condition) {\n return <ConditionAwareInputRenderer {...props} condition={condition} />;\n }\n\n return <BaseInputRenderer {...props} />;\n});\n\nexport type { InputRendererProps };\nexport { MemoizedInputRenderer as InputRenderer, useFieldHint };\n"],"names":["BaseInputRenderer","visible","hint","providedHint","document","providedDocument","inputProps","currentDocument","currentDocumentMeta","useDocumentContext","localeKey","locale","edit","components","useDocumentLayout","model","collectionType","schema","kind","isInDynamicZone","useDynamicZone","state","isInPreviewPopover","useHasInputPopoverParent","shouldIgnorePermissions","isFormDisabled","useForm","disabled","canCreateFields","useDocumentRBAC","rbac","canReadFields","canUpdateFields","canUserAction","idToCheck","documentId","SINGLE_TYPES","editableFields","readableFields","previewProps","usePreviewInputManager","name","attribute","props","canUserReadField","type","canUserEditField","fields","useStrapiApp","app","lazyComponentStore","useLazyComponents","attributeHasCustomFieldProperty","customField","undefined","useFieldHint","renderComponentInput","React","useCallback","componentInputProps","_jsx","MemoizedInputRenderer","field","useField","NotAllowedInput","fieldIsDisabled","CustomInput","FormInputRenderer","addedInputTypes","Object","keys","includes","BlocksInput","onBlur","_onComponentBlur","onFocus","_onComponentFocus","componentProps","ComponentInput","layout","component","_onDzBlur","_onDzFocus","dynamicZoneProps","DynamicZone","RelationsInput","Wysiwyg","unique","_uniqueUID","restUIDProps","UIDInput","options","enum","map","value","_unique","mainField","_mainField","restProps","rulesEngine","createRulesEngine","ConditionAwareInputRenderer","condition","conditionDependencyPaths","useMemo","getConditionDependencyPaths","getValues","conditionSubscriptionValue","getConditionDependencySubscriptionValue","getDirectParent","values","targetValues","isVisible","evaluate","formatMessage","useIntl","maximum","minimum","getMinMax","units","id","defaultMessage","maxValue","Math","max","hasMinAndMax","min","description","unit","divider","br","Number","isNaN","maxLength","minLength","memo","conditions"],"mappings":"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"}
1
+ {"version":3,"file":"InputRenderer.mjs","sources":["../../../../../admin/src/pages/EditView/components/InputRenderer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n useForm,\n InputRenderer as FormInputRenderer,\n useField,\n createRulesEngine,\n type JsonLogicCondition,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { SINGLE_TYPES } from '../../../constants/collections';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { type UseDocument } from '../../../hooks/useDocument';\nimport { useDocumentContext } from '../../../hooks/useDocumentContext';\nimport { useDocumentLayout } from '../../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../../hooks/useLazyComponents';\nimport {\n useHasInputPopoverParent,\n usePreviewPopoverBlockIndex,\n} from '../../../preview/components/InputPopover';\nimport { usePreviewInputManager } from '../../../preview/hooks/usePreviewInputManager';\nimport {\n getConditionDependencyPaths,\n getConditionDependencySubscriptionValue,\n} from '../../../utils/conditionalFields';\nimport { getDirectParent } from '../utils/data';\n\nimport { BlocksInput } from './FormInputs/BlocksInput/BlocksInput';\nimport { ComponentInput } from './FormInputs/Component/Input';\nimport { DynamicZone, useDynamicZone } from './FormInputs/DynamicZone/Field';\nimport { NotAllowedInput } from './FormInputs/NotAllowed';\nimport { RelationsInput } from './FormInputs/Relations/Relations';\nimport { UIDInput } from './FormInputs/UID';\nimport { Wysiwyg } from './FormInputs/Wysiwyg/Field';\n\nimport type { EditFieldLayout } from '../../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\nimport type { DistributiveOmit } from 'react-redux';\n\ntype InputRendererProps = DistributiveOmit<EditFieldLayout, 'size'> & {\n document?: ReturnType<UseDocument>;\n};\n\n/**\n * @internal\n *\n * @description An abstraction around the regular form input renderer designed\n * specifically to be used in the EditView of the content-manager this understands\n * the complete EditFieldLayout and will handle RBAC conditions and rendering CM specific\n * components such as Blocks / Relations.\n */\nconst BaseInputRenderer = ({\n visible,\n hint: providedHint,\n document: providedDocument,\n ...inputProps\n}: InputRendererProps) => {\n const { currentDocument, currentDocumentMeta } = useDocumentContext('DynamicComponent');\n // Most edit-view fields can read the document from context, which avoids threading a\n // frequently-changing `document` prop through nested component/DZ trees and reduces churn.\n // Keep `providedDocument` as an explicit override for callers outside that default flow.\n const document = providedDocument ?? currentDocument;\n const localeKey = document?.document?.locale || 'default';\n const {\n edit: { components },\n } = useDocumentLayout(currentDocumentMeta.model);\n\n const collectionType =\n document.schema?.kind === 'collectionType' ? 'collection-types' : 'single-types';\n\n const isInDynamicZone = useDynamicZone('isInDynamicZone', (state) => state.isInDynamicZone);\n const isInPreviewPopover = useHasInputPopoverParent();\n const blockIndex = usePreviewPopoverBlockIndex();\n const shouldIgnorePermissions = isInDynamicZone || isInPreviewPopover;\n\n const isFormDisabled = useForm('InputRenderer', (state) => state.disabled);\n const canCreateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canCreateFields);\n const canReadFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canReadFields);\n const canUpdateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUpdateFields);\n const canUserAction = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUserAction);\n\n let idToCheck = document.document?.documentId;\n if (collectionType === SINGLE_TYPES) {\n idToCheck = document?.document?.documentId;\n }\n\n const editableFields = idToCheck ? canUpdateFields : canCreateFields;\n const readableFields = idToCheck ? canReadFields : canCreateFields;\n\n // Everything preview related\n const previewProps = usePreviewInputManager(inputProps.name, inputProps.attribute);\n const props = { ...inputProps, ...previewProps };\n\n /**\n * Component fields are always readable and editable,\n * however the fields within them may not be.\n */\n const canUserReadField = canUserAction(props.name, readableFields, props.type);\n const canUserEditField = canUserAction(props.name, editableFields, props.type);\n\n const fields = useStrapiApp('InputRenderer', (app) => app.fields);\n const { lazyComponentStore } = useLazyComponents(\n attributeHasCustomFieldProperty(props.attribute) ? [props.attribute.customField] : undefined\n );\n\n const hint = useFieldHint(providedHint, props.attribute);\n const renderComponentInput = React.useCallback(\n (componentInputProps: InputRendererProps) => (\n <MemoizedInputRenderer\n key={`input-${componentInputProps.name}-${localeKey}`}\n {...componentInputProps}\n />\n ),\n [localeKey]\n );\n\n // We pass field in case of Custom Fields to keep backward compatibility\n const field = useField(props.name);\n\n if (!visible) {\n return null;\n }\n\n /**\n * If the user can't read the field then we don't want to ever render it.\n */\n if (!canUserReadField && !shouldIgnorePermissions) {\n return <NotAllowedInput hint={hint} {...props} />;\n }\n\n const fieldIsDisabled =\n (!canUserEditField && !shouldIgnorePermissions) || props.disabled || isFormDisabled;\n\n /**\n * Because a custom field has a unique prop but the type could be confused with either\n * the useField hook or the type of the field we need to handle it separately and first.\n */\n if (attributeHasCustomFieldProperty(props.attribute)) {\n const CustomInput = lazyComponentStore[props.attribute.customField];\n\n if (CustomInput) {\n return (\n <CustomInput\n {...props}\n {...field}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – this workaround lets us display that the custom field is missing.\n type={props.attribute.customField}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * This is where we handle ONLY the fields from the `useLibrary` hook.\n */\n const addedInputTypes = Object.keys(fields);\n if (!attributeHasCustomFieldProperty(props.attribute) && addedInputTypes.includes(props.type)) {\n const CustomInput = fields[props.type];\n return (\n <CustomInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * These include the content-manager specific fields, failing that we fall back\n * to the more generic form input renderer.\n */\n switch (props.type) {\n case 'blocks':\n return (\n <BlocksInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n autoFocus={isInPreviewPopover && blockIndex == null}\n livePreviewSync={isInPreviewPopover}\n blockIndex={blockIndex}\n />\n );\n case 'component':\n // Preview focus/blur handlers are not used for data-structure roots (component/dynamic zone).\n // Dropping them avoids unstable function props cascading through memoized component trees.\n const { onBlur: _onComponentBlur, onFocus: _onComponentFocus, ...componentProps } = props;\n\n return (\n <ComponentInput\n key={`input-${props.name}-${localeKey}`}\n {...componentProps}\n hint={hint}\n layout={components[props.attribute.component].layout}\n disabled={fieldIsDisabled}\n >\n {renderComponentInput}\n </ComponentInput>\n );\n case 'dynamiczone':\n // Same rationale as `component` above: keep data-structure root props stable.\n const { onBlur: _onDzBlur, onFocus: _onDzFocus, ...dynamicZoneProps } = props;\n\n return (\n <DynamicZone\n key={`input-${props.name}-${localeKey}`}\n {...dynamicZoneProps}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'relation':\n return (\n <RelationsInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'richtext':\n return (\n <Wysiwyg\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n case 'uid':\n // These props are not needed for the generic form input renderer.\n const { unique: _uniqueUID, ...restUIDProps } = props;\n return (\n <UIDInput\n key={`input-${props.name}-${localeKey}`}\n {...restUIDProps}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n /**\n * Enumerations are a special case because they require options.\n */\n case 'enumeration':\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n options={props.attribute.enum.map((value) => ({ value }))}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n default:\n // These props are not needed for the generic form input renderer.\n const { unique: _unique, mainField: _mainField, ...restProps } = props;\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...restProps}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n }\n};\n\n// Reuse one rules engine instance instead of recreating it for every field render.\nconst rulesEngine = createRulesEngine();\n\n/**\n * A wrapper around BaseInputRenderer that conditionally renders it depending on the attribute's condition.\n */\nconst ConditionAwareInputRenderer = ({\n condition,\n ...props\n}: InputRendererProps & { condition: JsonLogicCondition }) => {\n // Extract only the field paths the visibility rule depends on so unrelated form changes\n // do not force this conditional field to re-render.\n const conditionDependencyPaths = React.useMemo(\n () => getConditionDependencyPaths(condition),\n [condition]\n );\n const getValues = useForm(\n 'ConditionalInputRenderer',\n (state) => (state as typeof state & { getValues: () => unknown }).getValues\n );\n const conditionSubscriptionValue = useForm('ConditionalInputRenderer', (state) => {\n // Subscribe to a small, comparable snapshot of the parent scope instead of all form values.\n return getConditionDependencySubscriptionValue(\n getDirectParent(state.values, props.name),\n conditionDependencyPaths\n );\n });\n\n // When dependencies are known, read the latest parent scope lazily via getValues() so the\n // rule still evaluates against fresh data without subscribing to every form change.\n const targetValues =\n conditionDependencyPaths === null\n ? conditionSubscriptionValue\n : getDirectParent(getValues(), props.name);\n\n const isVisible = rulesEngine.evaluate(condition, targetValues);\n\n if (!isVisible) {\n return null;\n }\n\n return <BaseInputRenderer {...props} />;\n};\n\nconst attributeHasCustomFieldProperty = (\n attribute: Schema.Attribute.AnyAttribute\n): attribute is Schema.Attribute.AnyAttribute & Schema.Attribute.CustomField<string> =>\n 'customField' in attribute && typeof attribute.customField === 'string';\n\nconst useFieldHint = (\n hint: React.ReactNode = undefined,\n attribute: Schema.Attribute.AnyAttribute\n) => {\n const { formatMessage } = useIntl();\n\n const { maximum, minimum } = getMinMax(attribute);\n\n if (!maximum && !minimum) {\n return hint;\n }\n\n const units = ['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(attribute.type)\n ? formatMessage(\n {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n {\n maxValue: Math.max(minimum || 0, maximum || 0),\n }\n )\n : null;\n\n const hasMinAndMax = typeof minimum === 'number' && typeof maximum === 'number';\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: hint,\n unit: units,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: <br />,\n }\n );\n};\n\nconst getMinMax = (attribute: Schema.Attribute.AnyAttribute) => {\n if ('min' in attribute || 'max' in attribute) {\n return {\n maximum: !Number.isNaN(Number(attribute.max)) ? Number(attribute.max) : undefined,\n minimum: !Number.isNaN(Number(attribute.min)) ? Number(attribute.min) : undefined,\n };\n } else if ('maxLength' in attribute || 'minLength' in attribute) {\n return { maximum: attribute.maxLength, minimum: attribute.minLength };\n } else {\n return { maximum: undefined, minimum: undefined };\n }\n};\n\n/**\n * Conditionally routes the exported InputRender component towards ConditionalInputRenderer\n * (when there's a JSON logic condition on the attribute, or BaseInputRenderer otherwise.\n * We do this because rendering a conditional field requires access to the values of\n * other form fields, which causes many re-renders and performance issues on complex content\n * types. By splitting the component into two, we isolate the performance issue to\n * conditional fields only, not all edit view fields.\n */\nconst MemoizedInputRenderer = React.memo((props: InputRendererProps) => {\n const condition = props.attribute.conditions?.visible;\n if (condition) {\n return <ConditionAwareInputRenderer {...props} condition={condition} />;\n }\n\n return <BaseInputRenderer {...props} />;\n});\n\nexport type { InputRendererProps };\nexport { MemoizedInputRenderer as InputRenderer, useFieldHint };\n"],"names":["BaseInputRenderer","visible","hint","providedHint","document","providedDocument","inputProps","currentDocument","currentDocumentMeta","useDocumentContext","localeKey","locale","edit","components","useDocumentLayout","model","collectionType","schema","kind","isInDynamicZone","useDynamicZone","state","isInPreviewPopover","useHasInputPopoverParent","blockIndex","usePreviewPopoverBlockIndex","shouldIgnorePermissions","isFormDisabled","useForm","disabled","canCreateFields","useDocumentRBAC","rbac","canReadFields","canUpdateFields","canUserAction","idToCheck","documentId","SINGLE_TYPES","editableFields","readableFields","previewProps","usePreviewInputManager","name","attribute","props","canUserReadField","type","canUserEditField","fields","useStrapiApp","app","lazyComponentStore","useLazyComponents","attributeHasCustomFieldProperty","customField","undefined","useFieldHint","renderComponentInput","React","useCallback","componentInputProps","_jsx","MemoizedInputRenderer","field","useField","NotAllowedInput","fieldIsDisabled","CustomInput","FormInputRenderer","addedInputTypes","Object","keys","includes","BlocksInput","autoFocus","livePreviewSync","onBlur","_onComponentBlur","onFocus","_onComponentFocus","componentProps","ComponentInput","layout","component","_onDzBlur","_onDzFocus","dynamicZoneProps","DynamicZone","RelationsInput","Wysiwyg","unique","_uniqueUID","restUIDProps","UIDInput","options","enum","map","value","_unique","mainField","_mainField","restProps","rulesEngine","createRulesEngine","ConditionAwareInputRenderer","condition","conditionDependencyPaths","useMemo","getConditionDependencyPaths","getValues","conditionSubscriptionValue","getConditionDependencySubscriptionValue","getDirectParent","values","targetValues","isVisible","evaluate","formatMessage","useIntl","maximum","minimum","getMinMax","units","id","defaultMessage","maxValue","Math","max","hasMinAndMax","min","description","unit","divider","br","Number","isNaN","maxLength","minLength","memo","conditions"],"mappings":"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"}
@@ -560,6 +560,7 @@ const ListViewPage = ()=>{
560
560
  }),
561
561
  /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Pagination.Root, {
562
562
  ...pagination,
563
+ defaultPageSize: list.settings.pageSize,
563
564
  onPageSizeChange: ()=>trackUsage('willChangeNumberOfEntriesPerPage'),
564
565
  children: [
565
566
  /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Pagination.PageSize, {}),