@pie-lib/editable-html-tip-tap 1.2.0-next.2 → 1.2.0-next.21

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 (126) hide show
  1. package/CHANGELOG.md +115 -21
  2. package/LICENSE.md +5 -0
  3. package/lib/components/CharacterPicker.js +2 -1
  4. package/lib/components/CharacterPicker.js.map +1 -1
  5. package/lib/components/EditableHtml.js +34 -17
  6. package/lib/components/EditableHtml.js.map +1 -1
  7. package/lib/components/MenuBar.js +77 -45
  8. package/lib/components/MenuBar.js.map +1 -1
  9. package/lib/components/TiptapContainer.js +15 -9
  10. package/lib/components/TiptapContainer.js.map +1 -1
  11. package/lib/components/characters/characterUtils.js +1 -1
  12. package/lib/components/characters/custom-popper.js +1 -1
  13. package/lib/components/common/done-button.js +1 -1
  14. package/lib/components/common/toolbar-buttons.js +1 -1
  15. package/lib/components/icons/CssIcon.js +1 -1
  16. package/lib/components/icons/RespArea.js +1 -1
  17. package/lib/components/icons/TableIcons.js +1 -1
  18. package/lib/components/icons/TextAlign.js +3 -3
  19. package/lib/components/icons/TextAlign.js.map +1 -1
  20. package/lib/components/image/AltDialog.js +1 -1
  21. package/lib/components/image/ImageToolbar.js +1 -1
  22. package/lib/components/image/InsertImageHandler.js +1 -1
  23. package/lib/components/media/MediaDialog.js +1 -1
  24. package/lib/components/media/MediaToolbar.js +1 -1
  25. package/lib/components/media/MediaWrapper.js +1 -1
  26. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +7 -2
  27. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -1
  28. package/lib/components/respArea/DragInTheBlank/choice.js +16 -8
  29. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
  30. package/lib/components/respArea/ExplicitConstructedResponse.js +2 -2
  31. package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -1
  32. package/lib/components/respArea/InlineDropdown.js +11 -4
  33. package/lib/components/respArea/InlineDropdown.js.map +1 -1
  34. package/lib/components/respArea/MathTemplated.js +130 -0
  35. package/lib/components/respArea/MathTemplated.js.map +1 -0
  36. package/lib/components/respArea/ToolbarIcon.js +1 -1
  37. package/lib/constants.js +1 -1
  38. package/lib/extensions/css.js +1 -1
  39. package/lib/extensions/custom-toolbar-wrapper.js +1 -1
  40. package/lib/extensions/div-node.js +39 -0
  41. package/lib/extensions/div-node.js.map +1 -0
  42. package/lib/extensions/extended-table.js +1 -1
  43. package/lib/extensions/image-component.js +1 -1
  44. package/lib/extensions/image-component.js.map +1 -1
  45. package/lib/extensions/image.js +1 -1
  46. package/lib/extensions/index.js +4 -2
  47. package/lib/extensions/index.js.map +1 -1
  48. package/lib/extensions/math.js +7 -4
  49. package/lib/extensions/math.js.map +1 -1
  50. package/lib/extensions/media.js +15 -12
  51. package/lib/extensions/media.js.map +1 -1
  52. package/lib/extensions/responseArea.js +13 -10
  53. package/lib/extensions/responseArea.js.map +1 -1
  54. package/lib/index.js +1 -1
  55. package/lib/styles/editorContainerStyles.js +6 -5
  56. package/lib/styles/editorContainerStyles.js.map +1 -1
  57. package/lib/theme.js +1 -1
  58. package/lib/utils/helper.js +17 -0
  59. package/lib/utils/helper.js.map +1 -0
  60. package/lib/utils/size.js +1 -1
  61. package/package.json +11 -11
  62. package/src/__tests__/EditableHtml.test.jsx +41 -1
  63. package/src/__tests__/index.test.jsx +4 -1
  64. package/src/components/CharacterPicker.jsx +1 -0
  65. package/src/components/EditableHtml.jsx +40 -16
  66. package/src/components/MenuBar.jsx +66 -25
  67. package/src/components/TiptapContainer.jsx +10 -7
  68. package/src/components/__tests__/CharacterPicker.test.jsx +22 -0
  69. package/src/components/__tests__/ExplicitConstructedResponse.test.jsx +1 -1
  70. package/src/components/__tests__/InlineDropdown.test.jsx +150 -1
  71. package/src/components/__tests__/MenuBar.test.jsx +32 -0
  72. package/src/components/icons/TextAlign.jsx +1 -1
  73. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +6 -1
  74. package/src/components/respArea/DragInTheBlank/choice.jsx +32 -4
  75. package/src/components/respArea/ExplicitConstructedResponse.jsx +1 -1
  76. package/src/components/respArea/InlineDropdown.jsx +12 -2
  77. package/src/components/respArea/MathTemplated.jsx +124 -0
  78. package/src/components/respArea/__tests__/MathTemplated.test.jsx +210 -0
  79. package/src/extensions/__tests__/divNode.test.js +87 -0
  80. package/src/extensions/__tests__/math.test.js +327 -0
  81. package/src/extensions/__tests__/media-node-view.test.jsx +296 -0
  82. package/src/extensions/__tests__/media.test.js +1 -0
  83. package/src/extensions/__tests__/responseArea.test.js +157 -0
  84. package/src/extensions/div-node.js +36 -0
  85. package/src/extensions/index.js +2 -0
  86. package/src/extensions/math.js +6 -3
  87. package/src/extensions/media.js +17 -14
  88. package/src/extensions/responseArea.js +4 -8
  89. package/src/styles/editorContainerStyles.js +5 -4
  90. package/src/utils/helper.js +17 -0
  91. package/lib/__tests__/EditableHtml.test.js +0 -377
  92. package/lib/__tests__/constants.test.js +0 -21
  93. package/lib/__tests__/extensions.test.js +0 -209
  94. package/lib/__tests__/index.test.js +0 -235
  95. package/lib/__tests__/size-utils.test.js +0 -57
  96. package/lib/__tests__/theme.test.js +0 -17
  97. package/lib/components/__tests__/AltDialog.test.js +0 -201
  98. package/lib/components/__tests__/CharacterPicker.test.js +0 -305
  99. package/lib/components/__tests__/CssIcon.test.js +0 -58
  100. package/lib/components/__tests__/DragInTheBlank.test.js +0 -295
  101. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -253
  102. package/lib/components/__tests__/ImageToolbar.test.js +0 -185
  103. package/lib/components/__tests__/InlineDropdown.test.js +0 -287
  104. package/lib/components/__tests__/InsertImageHandler.test.js +0 -162
  105. package/lib/components/__tests__/MediaDialog.test.js +0 -433
  106. package/lib/components/__tests__/MediaToolbar.test.js +0 -126
  107. package/lib/components/__tests__/MediaWrapper.test.js +0 -96
  108. package/lib/components/__tests__/MenuBar.test.js +0 -459
  109. package/lib/components/__tests__/RespArea.test.js +0 -171
  110. package/lib/components/__tests__/TableIcons.test.js +0 -153
  111. package/lib/components/__tests__/TextAlign.test.js +0 -209
  112. package/lib/components/__tests__/TiptapContainer.test.js +0 -196
  113. package/lib/components/__tests__/characterUtils.test.js +0 -178
  114. package/lib/components/__tests__/choice.test.js +0 -213
  115. package/lib/components/__tests__/custom-popper.test.js +0 -108
  116. package/lib/components/__tests__/done-button.test.js +0 -72
  117. package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
  118. package/lib/extensions/__tests__/component.test.js +0 -314
  119. package/lib/extensions/__tests__/css.test.js +0 -214
  120. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -175
  121. package/lib/extensions/__tests__/extended-table.test.js +0 -92
  122. package/lib/extensions/__tests__/image-component.test.js +0 -305
  123. package/lib/extensions/__tests__/image.test.js +0 -164
  124. package/lib/extensions/__tests__/media.test.js +0 -292
  125. package/lib/extensions/__tests__/responseArea.test.js +0 -330
  126. package/lib/extensions/component.js +0 -305
@@ -1 +1 @@
1
- {"version":3,"file":"EditableHtml.js","names":["_react","_interopRequireWildcard","require","_react2","_starterKit","_interopRequireDefault","_extensionTextStyle","_extensionCharacterCount","_extensionSuperscript","_extensionSubscript","_extensionTextAlign","_extensionImage","_styles","_extendedTable","_extensionTableRow","_extensionTableCell","_extensionTableHeader","_responseArea","_math","_image","_media","_css","_TiptapContainer","_size","_extensions","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defaultToolbarOpts","position","alignment","alwaysVisible","showDone","doneOn","defaultResponseAreaProps","options","respAreaToolbar","onHandleAreaChange","DEFAULT_ACTIVE_PLUGINS","cssVariables","EditableHtml","exports","props","_ref","pluginProps","showParagraphs","separateParagraphs","_useState","useState","_useState2","_slicedToArray2","pendingImages","setPendingImages","_useState3","_useState4","scheduled","setScheduled","toolbarOpts","toolbarOptsToUse","activePluginsToUse","useMemo","_ref3","_props$responseAreaPr","_ref2","customPlugins","otherPluginProps","_objectWithoutProperties2","filteredActivePlugins","activePlugins","pluginName","nameToUse","PLUGINS_MAP","pluginInfo","disabled","buildExtensions","math","textAlign","html","extraCSSRules","image","imageSupport","toolbar","table","responseArea","type","responseAreaProps","languageCharacters","languageCharactersProps","keyPadCharacterRef","setKeypadInteraction","media","extensions","TextStyleKit","CharacterCount","configure","limit","charactersLimit","StarterKit","ExtendedTable","TableRow","TableHeader","TableCell","ResponseAreaExtension","ExplicitConstructedResponseNode","DragInTheBlankNode","InlineDropdownNode","MathNode","SubScript","SuperScript","TextAlign","types","alignments","Image","ImageUploadNode","imageHandling","disableImageAlignmentButtons","onDone","_props$onDone","editor","getHTML","onDelete","node","src","attrs","newPendingImages","img","key","newState","insertImageRequested","addedImage","getHandler","onFinish","result","_cb","cb","onChange","callback","handler","add","concat","_toConsumableArray2","maxImageWidth","maxImageHeight","Media","uploadSoundSupport","CSSMark","useEditor","immediatelyRender","editorProps","handleKeyDown","view","event","onKeyDown","editable","content","markup","onUpdate","_ref4","transaction","isDone","_props$onChange","onBlur","_ref5","respAreaToolbarActive","isActive","_props$onChange2","_props$onDone2","useEffect","setEditable","commands","setContent","entries","_ref6","_ref7","value","document","documentElement","style","setProperty","editorState","useEditorState","selector","ctx","_ctx$editor","isFocused","sizeStyle","minWidth","width","maxWidth","minHeight","height","maxHeight","valueToSize","createElement","_extends2","StyledEditorContent","showParagraph","separateParagraph","styled","EditorContent","shouldForwardProp","prop","includes","_ref8","outline","padding","margin","display","fontSize","color","marginBottom","_default"],"sources":["../../src/components/EditableHtml.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { EditorContent, useEditor, useEditorState } from '@tiptap/react';\nimport StarterKit from '@tiptap/starter-kit';\nimport { TextStyleKit } from '@tiptap/extension-text-style';\nimport { CharacterCount } from '@tiptap/extension-character-count';\nimport SuperScript from '@tiptap/extension-superscript';\nimport SubScript from '@tiptap/extension-subscript';\nimport TextAlign from '@tiptap/extension-text-align';\nimport Image from '@tiptap/extension-image';\nimport { styled } from '@mui/material/styles';\n\nimport ExtendedTable from '../extensions/extended-table';\nimport { TableRow } from '@tiptap/extension-table-row';\nimport { TableCell } from '@tiptap/extension-table-cell';\nimport { TableHeader } from '@tiptap/extension-table-header';\nimport {\n DragInTheBlankNode,\n ExplicitConstructedResponseNode,\n InlineDropdownNode,\n ResponseAreaExtension,\n} from '../extensions/responseArea';\nimport { MathNode } from '../extensions/math';\nimport { ImageUploadNode } from '../extensions/image';\nimport { Media } from '../extensions/media';\nimport { CSSMark } from '../extensions/css';\n\nimport EditorContainer from './TiptapContainer';\nimport { valueToSize } from '../utils/size';\nimport { buildExtensions, PLUGINS_MAP } from '../extensions';\n\nconst defaultToolbarOpts = {\n position: 'bottom',\n alignment: 'left',\n alwaysVisible: false,\n showDone: true,\n doneOn: 'blur',\n};\n\nconst defaultResponseAreaProps = {\n options: {},\n respAreaToolbar: () => {},\n onHandleAreaChange: () => {},\n};\n\nconst DEFAULT_ACTIVE_PLUGINS = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'code',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'text-align',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n 'superscript',\n 'subscript',\n 'css',\n 'h3',\n 'undo',\n 'redo',\n];\n\nconst cssVariables = {\n '--white': '#fff',\n '--black': '#2e2b29',\n '--black-contrast': '#110f0e',\n '--gray-1': 'rgba(61, 37, 20, .05)',\n '--gray-2': 'rgba(61, 37, 20, .08)',\n '--gray-3': 'rgba(61, 37, 20, .12)',\n '--gray-4': 'rgba(53, 38, 28, .3)',\n '--gray-5': 'rgba(28, 25, 23, .6)',\n '--green': '#22c55e',\n '--purple': '#6a00f5',\n '--purple-contrast': '#5800cc',\n '--purple-light': 'rgba(88, 5, 255, .05)',\n '--yellow-contrast': '#facc15',\n '--yellow': 'rgba(250, 204, 21, .4)',\n '--yellow-light': '#fffae5',\n '--red': '#ff5c33',\n '--red-light': '#ffebe5',\n '--shadow': `0px 12px 33px 0px rgba(0, 0, 0, .06),\n 0px 3.618px 9.949px 0px rgba(0, 0, 0, .04)`,\n};\n\nexport const EditableHtml = (props) => {\n const { showParagraphs, separateParagraphs } = props.pluginProps || {};\n const [pendingImages, setPendingImages] = useState([]);\n const [scheduled, setScheduled] = useState(false);\n const { toolbarOpts } = props;\n\n const toolbarOptsToUse = {\n ...defaultToolbarOpts,\n ...toolbarOpts,\n };\n\n const activePluginsToUse = useMemo(() => {\n let { customPlugins, ...otherPluginProps } = props.pluginProps || {};\n\n customPlugins = customPlugins || [];\n\n const filteredActivePlugins = (props.activePlugins || DEFAULT_ACTIVE_PLUGINS)?.filter((pluginName) => {\n const nameToUse = PLUGINS_MAP[pluginName] || pluginName;\n const pluginInfo = otherPluginProps[nameToUse] || {};\n\n return !pluginInfo || !pluginInfo.disabled;\n });\n\n return buildExtensions(filteredActivePlugins, customPlugins, {\n math: {},\n textAlign: props.textAlign,\n html: {},\n extraCSSRules: props.extraCSSRules || {},\n image: {\n ...props.imageSupport,\n },\n toolbar: {},\n table: {},\n responseArea: {\n type: props.responseAreaProps?.type,\n },\n languageCharacters: props.languageCharactersProps,\n keyPadCharacterRef: {},\n setKeypadInteraction: {},\n media: {},\n });\n }, [props]);\n\n const extensions = [\n TextStyleKit,\n CharacterCount.configure({\n limit: props.charactersLimit || 1000000,\n }),\n StarterKit,\n ExtendedTable,\n TableRow,\n TableHeader,\n TableCell,\n ResponseAreaExtension.configure(props.responseAreaProps),\n ExplicitConstructedResponseNode.configure(props.responseAreaProps),\n DragInTheBlankNode.configure(props.responseAreaProps),\n InlineDropdownNode.configure(props.responseAreaProps),\n MathNode.configure({\n toolbarOpts: toolbarOptsToUse,\n }),\n SubScript,\n SuperScript,\n TextAlign.configure({\n types: ['heading', 'paragraph'],\n alignments: ['left', 'right', 'center'],\n }),\n Image,\n ImageUploadNode.configure({\n toolbarOpts: toolbarOptsToUse,\n imageHandling: {\n disableImageAlignmentButtons: props.disableImageAlignmentButtons,\n onDone: () => props.onDone?.(editor.getHTML()),\n onDelete:\n props.imageSupport &&\n props.imageSupport.delete &&\n ((node) => {\n const { src } = node.attrs;\n\n props.imageSupport.delete(src, (e) => {\n const newPendingImages = pendingImages.filter((img) => img.key !== node.key);\n const newState = {\n pendingImages: newPendingImages,\n scheduled: scheduled && newPendingImages.length === 0 ? false : scheduled,\n };\n\n setPendingImages(newState.pendingImages);\n setScheduled(newState.scheduled);\n });\n }),\n insertImageRequested:\n props.imageSupport &&\n ((addedImage, getHandler) => {\n const onFinish = (result) => {\n let cb;\n\n if (scheduled && result) {\n // finish editing only on success\n cb = props.onChange;\n }\n\n const newPendingImages = pendingImages.filter((img) => img.key !== addedImage.key);\n const newState = {\n pendingImages: newPendingImages,\n };\n\n if (newPendingImages.length === 0) {\n newState.scheduled = false;\n }\n\n setPendingImages(newState.pendingImages);\n setScheduled(newState.scheduled);\n cb?.(editor.getHTML());\n };\n const callback = () => {\n /**\n * The handler is the object through which the outer context\n * communicates file upload events like: fileChosen, cancel, progress\n */\n const handler = getHandler(onFinish);\n props.imageSupport.add(handler);\n };\n\n setPendingImages([...pendingImages, addedImage]);\n callback();\n }),\n maxImageWidth: props.maxImageWidth,\n maxImageHeight: props.maxImageHeight,\n },\n limit: 3,\n }),\n Media.configure({\n uploadSoundSupport: props.uploadSoundSupport,\n }),\n CSSMark.configure({\n extraCSSRules: props.extraCSSRules,\n }),\n ];\n\n const editor = useEditor(\n {\n extensions,\n immediatelyRender: false,\n editorProps: {\n handleKeyDown(view, event) {\n if (props.onKeyDown) {\n return props.onKeyDown(event);\n }\n\n // Return false to let default behavior continue\n return false;\n },\n },\n editable: !props.disabled,\n content: props.markup,\n onUpdate: ({ editor, transaction }) => {\n if (transaction.isDone) {\n props.onChange?.(editor.getHTML());\n }\n },\n onBlur: ({ editor }) => {\n const respAreaToolbarActive =\n editor.isActive('inline_dropdown') || editor.isActive('explicit_constructed_response');\n\n if (respAreaToolbarActive) {\n return;\n }\n\n if (props.markup !== editor.getHTML()) {\n props.onChange?.(editor.getHTML());\n }\n\n if (toolbarOptsToUse.doneOn === 'blur') {\n props.onDone?.(editor.getHTML());\n }\n },\n },\n [props.charactersLimit],\n );\n\n useEffect(() => {\n editor?.setEditable(!props.disabled);\n }, [props.disabled, editor]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (props.markup !== editor.getHTML()) {\n editor.commands.setContent(props.markup, false); // false = don’t emit update\n }\n }, [props.markup, editor]);\n\n useEffect(() => {\n Object.entries(cssVariables).forEach(([key, value]) => {\n document.documentElement.style.setProperty(key, value);\n });\n }, []);\n\n const editorState = useEditorState({\n editor,\n selector: (ctx) => ({\n isFocused: ctx.editor?.isFocused,\n }),\n });\n\n const sizeStyle = useMemo(() => {\n const { minWidth, width, maxWidth, minHeight, height, maxHeight } = props;\n\n return {\n width: valueToSize(width),\n minWidth: valueToSize(minWidth),\n maxWidth: valueToSize(maxWidth),\n height: valueToSize(height),\n minHeight: valueToSize(minHeight),\n maxHeight: valueToSize(maxHeight),\n };\n }, [props]);\n\n return (\n <EditorContainer\n {...{\n ...props,\n activePlugins: activePluginsToUse,\n toolbarOpts: toolbarOptsToUse,\n }}\n editorState={editorState}\n editor={editor}\n >\n {editor && (\n <StyledEditorContent\n style={{\n minHeight: sizeStyle.minHeight,\n height: sizeStyle.height,\n maxHeight: sizeStyle.maxHeight,\n }}\n showParagraph={showParagraphs && !showParagraphs.disabled}\n separateParagraph={separateParagraphs && !separateParagraphs.disabled}\n editor={editor}\n />\n )}\n </EditorContainer>\n );\n};\n\nconst StyledEditorContent = styled(EditorContent, {\n shouldForwardProp: (prop) => !['showParagraph', 'separateParagraph'].includes(prop),\n})(({ showParagraph, separateParagraph }) => ({\n outline: 'none !important',\n '& .ProseMirror': {\n padding: '5px',\n maxHeight: '500px',\n outline: 'none !important',\n position: 'initial',\n '& > p': {\n margin: '0',\n },\n ...(showParagraph && {\n '& > p:has(+ p)::after': {\n display: 'block',\n content: '\"¶\"',\n fontSize: '1em',\n color: '#146EB3',\n },\n }),\n ...(separateParagraph && {\n '& > div:has(+ div)': {\n marginBottom: '1em',\n },\n }),\n },\n}));\n\nexport default EditableHtml;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EditableHtml.js","names":["_react","_interopRequireWildcard","require","_debounce","_interopRequireDefault","_react2","_styles","_starterKit","_extensionTextStyle","_extensionCharacterCount","_extensionSuperscript","_extensionSubscript","_extensionTextAlign","_extensionImage","_extensionPlaceholder","_helper","_extendedTable","_divNode","_extensionTableRow","_extensionTableCell","_extensionTableHeader","_responseArea","_math","_image","_media","_css","_TiptapContainer","_size","_extensions","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defaultToolbarOpts","position","alignment","alwaysVisible","showDone","doneOn","defaultResponseAreaProps","options","respAreaToolbar","onHandleAreaChange","DEFAULT_ACTIVE_PLUGINS","cssVariables","EditableHtml","exports","props","_ref","pluginProps","showParagraphs","separateParagraphs","_useState","useState","_useState2","_slicedToArray2","pendingImages","setPendingImages","_useState3","_useState4","scheduled","setScheduled","toolbarOpts","toolbarOptsToUse","activePluginsToUse","useMemo","_ref3","_props$responseAreaPr","_ref2","customPlugins","otherPluginProps","_objectWithoutProperties2","filteredActivePlugins","activePlugins","pluginName","nameToUse","PLUGINS_MAP","pluginInfo","disabled","buildExtensions","math","textAlign","html","extraCSSRules","image","imageSupport","toolbar","table","responseArea","type","responseAreaProps","languageCharacters","languageCharactersProps","keyPadCharacterRef","setKeypadInteraction","media","extensions","TextAlign","configure","types","alignments","TextStyleKit","CharacterCount","limit","charactersLimit","StarterKit","trailingNode","node","notAfter","DivNode","Placeholder","placeholder","showOnlyWhenEditable","showOnlyCurrent","includeChildren","ExtendedTable","TableRow","TableHeader","TableCell","ResponseAreaExtension","ExplicitConstructedResponseNode","DragInTheBlankNode","InlineDropdownNode","MathTemplatedNode","MathNode","SubScript","SuperScript","Image","ImageUploadNode","imageHandling","disableImageAlignmentButtons","onDone","_props$onDone","editor","getHTML","onDelete","src","attrs","newPendingImages","img","key","newState","insertImageRequested","addedImage","getHandler","onFinish","result","_cb","cb","onChange","callback","handler","add","concat","_toConsumableArray2","maxImageWidth","maxImageHeight","Media","uploadSoundSupport","CSSMark","useEditor","immediatelyRender","editorProps","handleKeyDown","view","event","onKeyDown","editable","content","normalizeInitialMarkup","markup","onUpdate","_ref4","transaction","isDone","_props$onChange","onBlur","debounce","_ref5","otherToolbarOpened","_toolbarOpened","isActive","_props$onChange2","_props$onDone2","useEffect","editorRef","setEditable","nextMarkup","commands","setContent","entries","_ref6","_ref7","value","document","documentElement","style","setProperty","editorState","useEditorState","selector","ctx","_ctx$editor","isFocused","sizeStyle","minWidth","width","maxWidth","minHeight","height","maxHeight","valueToSize","createElement","_extends2","StyledEditorContent","showParagraph","separateParagraph","styled","EditorContent","shouldForwardProp","prop","includes","_ref8","display","outline","flex","padding","margin","color","pointerEvents","whiteSpace","fontSize","marginBottom","_default"],"sources":["../../src/components/EditableHtml.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport debounce from 'lodash-es/debounce';\nimport { EditorContent, useEditor, useEditorState } from '@tiptap/react';\nimport { styled } from '@mui/material/styles';\nimport StarterKit from '@tiptap/starter-kit';\nimport { TextStyleKit } from '@tiptap/extension-text-style';\nimport { CharacterCount } from '@tiptap/extension-character-count';\nimport SuperScript from '@tiptap/extension-superscript';\nimport SubScript from '@tiptap/extension-subscript';\nimport TextAlign from '@tiptap/extension-text-align';\nimport Image from '@tiptap/extension-image';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport { normalizeInitialMarkup } from '../utils/helper';\n\nimport ExtendedTable from '../extensions/extended-table';\nimport { DivNode } from '../extensions/div-node';\nimport { TableRow } from '@tiptap/extension-table-row';\nimport { TableCell } from '@tiptap/extension-table-cell';\nimport { TableHeader } from '@tiptap/extension-table-header';\nimport {\n DragInTheBlankNode,\n ExplicitConstructedResponseNode,\n InlineDropdownNode,\n MathTemplatedNode,\n ResponseAreaExtension,\n} from '../extensions/responseArea';\nimport { MathNode } from '../extensions/math';\nimport { ImageUploadNode } from '../extensions/image';\nimport { Media } from '../extensions/media';\nimport { CSSMark } from '../extensions/css';\n\nimport EditorContainer from './TiptapContainer';\nimport { valueToSize } from '../utils/size';\nimport { buildExtensions, PLUGINS_MAP } from '../extensions';\n\nconst defaultToolbarOpts = {\n position: 'bottom',\n alignment: 'left',\n alwaysVisible: false,\n showDone: true,\n doneOn: 'blur',\n};\n\nconst defaultResponseAreaProps = {\n options: {},\n respAreaToolbar: () => {},\n onHandleAreaChange: () => {},\n};\n\nconst DEFAULT_ACTIVE_PLUGINS = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'code',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'text-align',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n 'superscript',\n 'subscript',\n 'css',\n 'h3',\n 'undo',\n 'redo',\n];\n\nconst cssVariables = {\n '--white': '#fff',\n '--black': '#2e2b29',\n '--black-contrast': '#110f0e',\n '--gray-1': 'rgba(61, 37, 20, .05)',\n '--gray-2': 'rgba(61, 37, 20, .08)',\n '--gray-3': 'rgba(61, 37, 20, .12)',\n '--gray-4': 'rgba(53, 38, 28, .3)',\n '--gray-5': 'rgba(28, 25, 23, .6)',\n '--green': '#22c55e',\n '--purple': '#6a00f5',\n '--purple-contrast': '#5800cc',\n '--purple-light': 'rgba(88, 5, 255, .05)',\n '--yellow-contrast': '#facc15',\n '--yellow': 'rgba(250, 204, 21, .4)',\n '--yellow-light': '#fffae5',\n '--red': '#ff5c33',\n '--red-light': '#ffebe5',\n '--shadow': `0px 12px 33px 0px rgba(0, 0, 0, .06),\n 0px 3.618px 9.949px 0px rgba(0, 0, 0, .04)`,\n};\n\nexport const EditableHtml = (props) => {\n const { showParagraphs, separateParagraphs } = props.pluginProps || {};\n const [pendingImages, setPendingImages] = useState([]);\n const [scheduled, setScheduled] = useState(false);\n const { toolbarOpts } = props;\n\n const toolbarOptsToUse = {\n ...defaultToolbarOpts,\n ...toolbarOpts,\n };\n\n const activePluginsToUse = useMemo(() => {\n let { customPlugins, ...otherPluginProps } = props.pluginProps || {};\n\n customPlugins = customPlugins || [];\n\n const filteredActivePlugins = (props.activePlugins || DEFAULT_ACTIVE_PLUGINS)?.filter((pluginName) => {\n const nameToUse = PLUGINS_MAP[pluginName] || pluginName;\n const pluginInfo = otherPluginProps[nameToUse] || {};\n\n return !pluginInfo || !pluginInfo.disabled;\n });\n\n return buildExtensions(filteredActivePlugins, customPlugins, {\n math: {},\n textAlign: props.textAlign,\n html: {},\n extraCSSRules: props.extraCSSRules || {},\n image: {\n ...props.imageSupport,\n },\n toolbar: {},\n table: {},\n responseArea: {\n type: props.responseAreaProps?.type,\n },\n languageCharacters: props.languageCharactersProps,\n keyPadCharacterRef: {},\n setKeypadInteraction: {},\n media: {},\n });\n }, [props]);\n\n const extensions = [\n TextAlign.configure({\n types: ['heading', 'paragraph', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'td', 'th'],\n alignments: ['left', 'right', 'center', 'justify'],\n }),\n TextStyleKit,\n CharacterCount.configure({\n limit: props.charactersLimit || 1000000,\n }),\n StarterKit.configure({\n trailingNode: {\n node: 'paragraph',\n notAfter: ['paragraph', 'div'],\n },\n }),\n DivNode,\n Placeholder.configure({\n placeholder: props.placeholder,\n // show placeholder even when editor is focused\n showOnlyWhenEditable: true,\n showOnlyCurrent: false, // show on all empty nodes, not only the current one\n includeChildren: true,\n }),\n ExtendedTable,\n TableRow,\n TableHeader,\n TableCell,\n ResponseAreaExtension.configure(props.responseAreaProps),\n ExplicitConstructedResponseNode.configure(props.responseAreaProps),\n DragInTheBlankNode.configure(props.responseAreaProps),\n InlineDropdownNode.configure(props.responseAreaProps),\n MathTemplatedNode.configure(props.responseAreaProps),\n MathNode.configure({\n toolbarOpts: toolbarOptsToUse,\n }),\n SubScript,\n SuperScript,\n Image,\n ImageUploadNode.configure({\n toolbarOpts: toolbarOptsToUse,\n imageHandling: {\n disableImageAlignmentButtons: props.disableImageAlignmentButtons,\n onDone: () => props.onDone?.(editor.getHTML()),\n onDelete:\n props.imageSupport &&\n props.imageSupport.delete &&\n ((node) => {\n const { src } = node.attrs;\n\n props.imageSupport.delete(src, (e) => {\n const newPendingImages = pendingImages.filter((img) => img.key !== node.key);\n const newState = {\n pendingImages: newPendingImages,\n scheduled: scheduled && newPendingImages.length === 0 ? false : scheduled,\n };\n\n setPendingImages(newState.pendingImages);\n setScheduled(newState.scheduled);\n });\n }),\n insertImageRequested:\n props.imageSupport &&\n ((addedImage, getHandler) => {\n const onFinish = (result) => {\n let cb;\n\n if (scheduled && result) {\n // finish editing only on success\n cb = props.onChange;\n }\n\n const newPendingImages = pendingImages.filter((img) => img.key !== addedImage.key);\n const newState = {\n pendingImages: newPendingImages,\n };\n\n if (newPendingImages.length === 0) {\n newState.scheduled = false;\n }\n\n setPendingImages(newState.pendingImages);\n setScheduled(newState.scheduled);\n cb?.(editor.getHTML());\n };\n const callback = () => {\n /**\n * The handler is the object through which the outer context\n * communicates file upload events like: fileChosen, cancel, progress\n */\n const handler = getHandler(onFinish);\n props.imageSupport.add(handler);\n };\n\n setPendingImages([...pendingImages, addedImage]);\n callback();\n }),\n maxImageWidth: props.maxImageWidth,\n maxImageHeight: props.maxImageHeight,\n },\n limit: 3,\n }),\n Media.configure({\n uploadSoundSupport: props.uploadSoundSupport,\n }),\n CSSMark.configure({\n extraCSSRules: props.extraCSSRules,\n }),\n ];\n\n const editor = useEditor(\n {\n extensions,\n immediatelyRender: false,\n editorProps: {\n handleKeyDown(view, event) {\n if (props.onKeyDown) {\n return props.onKeyDown(event);\n }\n\n // Return false to let default behavior continue\n return false;\n },\n },\n editable: !props.disabled,\n content: normalizeInitialMarkup(props.markup),\n onUpdate: ({ editor, transaction }) => {\n if (transaction.isDone) {\n props.onChange?.(editor.getHTML());\n }\n },\n onBlur: debounce(({ editor }) => {\n const otherToolbarOpened =\n editor._toolbarOpened ||\n editor.isActive('inline_dropdown') ||\n editor.isActive('explicit_constructed_response');\n\n if (otherToolbarOpened) {\n return;\n }\n\n if (props.markup !== editor.getHTML()) {\n props.onChange?.(editor.getHTML());\n }\n\n if (toolbarOptsToUse.doneOn === 'blur') {\n props.onDone?.(editor.getHTML());\n }\n }, 200),\n },\n [props.charactersLimit],\n );\n\n useEffect(() => {\n if (props.editorRef) {\n props.editorRef(editor);\n }\n }, [props.editorRef, editor]);\n\n useEffect(() => {\n editor?.setEditable(!props.disabled);\n }, [props.disabled, editor]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n const nextMarkup = normalizeInitialMarkup(props.markup);\n\n if (nextMarkup !== editor.getHTML()) {\n editor.commands.setContent(nextMarkup, false);\n }\n }, [props.markup, editor]);\n\n useEffect(() => {\n Object.entries(cssVariables).forEach(([key, value]) => {\n document.documentElement.style.setProperty(key, value);\n });\n }, []);\n\n const editorState = useEditorState({\n editor,\n selector: (ctx) => ({\n isFocused: ctx.editor?.isFocused,\n }),\n });\n\n const sizeStyle = useMemo(() => {\n const { minWidth, width, maxWidth, minHeight, height, maxHeight } = props;\n\n return {\n width: valueToSize(width),\n minWidth: valueToSize(minWidth),\n maxWidth: valueToSize(maxWidth),\n height: valueToSize(height),\n minHeight: valueToSize(minHeight),\n maxHeight: valueToSize(maxHeight),\n };\n }, [props]);\n\n return (\n <EditorContainer\n {...{\n ...props,\n activePlugins: activePluginsToUse,\n toolbarOpts: toolbarOptsToUse,\n }}\n editorState={editorState}\n editor={editor}\n >\n {editor && (\n <StyledEditorContent\n style={{\n minHeight: sizeStyle.minHeight,\n height: sizeStyle.height,\n maxHeight: sizeStyle.maxHeight,\n }}\n showParagraph={showParagraphs && !showParagraphs.disabled}\n separateParagraph={separateParagraphs && !separateParagraphs.disabled}\n editor={editor}\n />\n )}\n </EditorContainer>\n );\n};\n\nconst StyledEditorContent = styled(EditorContent, {\n shouldForwardProp: (prop) => !['showParagraph', 'separateParagraph'].includes(prop),\n})(({ showParagraph, separateParagraph }) => ({\n display: 'flex',\n outline: 'none !important',\n '& .ProseMirror': {\n flex: 1,\n padding: '5px',\n maxHeight: '500px',\n outline: 'none !important',\n position: 'initial',\n\n // reset default margins for all block paragraphs/divs in the editor\n '& > p, & > div': {\n margin: '0',\n },\n\n '& p.is-editor-empty:first-child::before, & div.is-editor-empty:first-child::before': {\n content: 'attr(data-placeholder)',\n float: 'left',\n height: 0,\n color: '#9CA3AF',\n pointerEvents: 'none',\n whiteSpace: 'pre-wrap',\n },\n\n ...(showParagraph && {\n '& > p:has(+ p)::after, & > div:has(+ div)::after': {\n display: 'block',\n content: '\"¶\"',\n fontSize: '1em',\n color: '#146EB3',\n },\n }),\n ...(separateParagraph && {\n '& > div:has(+ div)': {\n marginBottom: '1em',\n },\n }),\n },\n}));\n\nexport default EditableHtml;\n"],"mappings":"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","ignoreList":[]}
@@ -25,9 +25,11 @@ var _Functions = _interopRequireDefault(require("@mui/icons-material/Functions")
25
25
  var _Image = _interopRequireDefault(require("@mui/icons-material/Image"));
26
26
  var _Redo = _interopRequireDefault(require("@mui/icons-material/Redo"));
27
27
  var _Undo = _interopRequireDefault(require("@mui/icons-material/Undo"));
28
+ var _FormatQuote = _interopRequireDefault(require("@mui/icons-material/FormatQuote"));
28
29
  var _Theaters = _interopRequireDefault(require("@mui/icons-material/Theaters"));
29
30
  var _VolumeUp = _interopRequireDefault(require("@mui/icons-material/VolumeUp"));
30
31
  var _BorderAll = _interopRequireDefault(require("@mui/icons-material/BorderAll"));
32
+ var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
31
33
  var _react2 = require("@tiptap/react");
32
34
  var _constants = require("../constants");
33
35
  var _ToolbarIcon = require("./respArea/ToolbarIcon");
@@ -81,12 +83,14 @@ var HeadingIcon = function HeadingIcon() {
81
83
  }));
82
84
  };
83
85
  function MenuBar(_ref) {
86
+ var _editorState$currentN;
84
87
  var editor = _ref.editor,
85
88
  classes = _ref.classes,
86
89
  activePlugins = _ref.activePlugins,
87
90
  toolOpts = _ref.toolbarOpts,
88
91
  responseAreaProps = _ref.responseAreaProps,
89
- onChange = _ref.onChange;
92
+ onChange = _ref.onChange,
93
+ autoWidthToolbar = _ref.autoWidthToolbar;
90
94
  var _useState = (0, _react.useState)(false),
91
95
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
92
96
  showPicker = _useState2[0],
@@ -95,18 +99,20 @@ function MenuBar(_ref) {
95
99
  var editorState = (0, _react2.useEditorState)({
96
100
  editor: editor,
97
101
  selector: function selector(ctx) {
98
- var _ctx$editor, _ctx$editor2, _ctx$editor3, _ctx$editor4, _ctx$editor5, _ctx$editor$isActive, _ctx$editor$can$chain, _ctx$editor$isActive2, _ref3, _ctx$editor$getAttrib, _ctx$editor$can$chain2, _ctx$editor$isActive3, _ctx$editor$can$chain3, _ctx$editor$isActive4, _ctx$editor$can$chain4, _ctx$editor$isActive5, _ctx$editor$can$chain5, _ctx$editor$can$chain6, _ctx$editor$isActive6, _ctx$editor$isActive7, _ctx$editor$isActive8, _ctx$editor$isActive9, _ctx$editor$isActive0, _ctx$editor$isActive1, _ctx$editor$isActive10, _ctx$editor$isActive11, _ctx$editor$isActive12, _ctx$editor$isActive13, _ctx$editor$isActive14, _ctx$editor$isActive15, _ctx$editor$isActive16, _ctx$editor$isActive17, _ctx$editor$can$chain7, _ctx$editor$can$chain8;
102
+ var _ctx$editor, _ctx$editor2, _ctx$editor3, _ctx$editor4, _ctx$editor5, _ctx$editor6, _ctx$editor$isActive, _ctx$editor$can$chain, _ctx$editor$isActive2, _ref3, _ctx$editor$getAttrib, _ctx$editor$can$chain2, _ctx$editor$isActive3, _ctx$editor$can$chain3, _ctx$editor$isActive4, _ctx$editor$can$chain4, _ctx$editor$isActive5, _ctx$editor$can$chain5, _ctx$editor$can$chain6, _ctx$editor$isActive6, _ctx$editor$isActive7, _ctx$editor$isActive8, _ctx$editor$isActive9, _ctx$editor$isActive0, _ctx$editor$isActive1, _ctx$editor$isActive10, _ctx$editor$isActive11, _ctx$editor$isActive12, _ctx$editor$isActive13, _ctx$editor$isActive14, _ctx$editor$isActive15, _ctx$editor$isActive16, _ctx$editor$isActive17, _ctx$editor$can$chain7, _ctx$editor$can$chain8;
99
103
  var _ref2 = ((_ctx$editor = ctx.editor) === null || _ctx$editor === void 0 ? void 0 : _ctx$editor.state) || {},
100
104
  selection = _ref2.selection;
101
105
  var currentNode;
102
106
  if (selection instanceof _prosemirrorState.NodeSelection) {
103
107
  currentNode = selection.node; // the selected node
104
108
  }
105
- var hideDefaultToolbar = ((_ctx$editor2 = ctx.editor) === null || _ctx$editor2 === void 0 ? void 0 : _ctx$editor2.isActive('math')) || ((_ctx$editor3 = ctx.editor) === null || _ctx$editor3 === void 0 ? void 0 : _ctx$editor3.isActive('explicit_constructed_response')) || ((_ctx$editor4 = ctx.editor) === null || _ctx$editor4 === void 0 ? void 0 : _ctx$editor4.isActive('imageUploadNode'));
109
+ var hideDefaultToolbar = ((_ctx$editor2 = ctx.editor) === null || _ctx$editor2 === void 0 ? void 0 : _ctx$editor2.isActive('math')) || ((_ctx$editor3 = ctx.editor) === null || _ctx$editor3 === void 0 ? void 0 : _ctx$editor3.isActive('explicit_constructed_response')) || ((_ctx$editor4 = ctx.editor) === null || _ctx$editor4 === void 0 ? void 0 : _ctx$editor4.isActive('imageUploadNode')) || ((_ctx$editor5 = ctx.editor) === null || _ctx$editor5 === void 0 ? void 0 : _ctx$editor5.isActive('drag_in_the_blank'));
110
+ var hasTextSelectionInTable = selection && selection.empty === false && ctx.editor.isActive('table');
106
111
  return {
107
112
  currentNode: currentNode,
108
113
  hideDefaultToolbar: hideDefaultToolbar,
109
- isFocused: (_ctx$editor5 = ctx.editor) === null || _ctx$editor5 === void 0 ? void 0 : _ctx$editor5.isFocused,
114
+ hasTextSelectionInTable: hasTextSelectionInTable,
115
+ isFocused: (_ctx$editor6 = ctx.editor) === null || _ctx$editor6 === void 0 ? void 0 : _ctx$editor6.isFocused,
110
116
  isBold: (_ctx$editor$isActive = ctx.editor.isActive('bold')) !== null && _ctx$editor$isActive !== void 0 ? _ctx$editor$isActive : false,
111
117
  canBold: (_ctx$editor$can$chain = ctx.editor.can().chain().toggleBold().run()) !== null && _ctx$editor$can$chain !== void 0 ? _ctx$editor$can$chain : false,
112
118
  isTable: (_ctx$editor$isActive2 = ctx.editor.isActive('table')) !== null && _ctx$editor$isActive2 !== void 0 ? _ctx$editor$isActive2 : false,
@@ -151,7 +157,7 @@ function MenuBar(_ref) {
151
157
  }
152
158
  });
153
159
  var hasDoneButton = false;
154
- var autoWidth = false;
160
+ var autoWidth = !!autoWidthToolbar;
155
161
  var names = (0, _classnames["default"])(classes.toolbar, _constants.PIE_TOOLBAR__CLASS, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, classes.toolbarWithNoDone, !hasDoneButton), classes.toolbarTop, toolbarOpts.position === 'top'), classes.toolbarRight, toolbarOpts.alignment === 'right'), classes.focused, toolbarOpts.alwaysVisible || editorState.isFocused && !editor._toolbarOpened), classes.autoWidth, autoWidth), classes.fullWidth, !autoWidth), classes.hidden, toolbarOpts.isHidden === true));
156
162
  var customStyles = toolbarOpts.minWidth !== undefined ? {
157
163
  minWidth: toolbarOpts.minWidth
@@ -184,7 +190,7 @@ function MenuBar(_ref) {
184
190
  return editor.chain().focus().addRowAfter().run();
185
191
  },
186
192
  hidden: function hidden(state) {
187
- return !state.isTable;
193
+ return !(state.isTable && !state.hasTextSelectionInTable);
188
194
  },
189
195
  isActive: function isActive(state) {
190
196
  return state.isTable;
@@ -198,7 +204,7 @@ function MenuBar(_ref) {
198
204
  return editor.chain().focus().deleteRow().run();
199
205
  },
200
206
  hidden: function hidden(state) {
201
- return !state.isTable;
207
+ return !(state.isTable && !state.hasTextSelectionInTable);
202
208
  },
203
209
  isActive: function isActive(state) {
204
210
  return state.isTable;
@@ -212,7 +218,7 @@ function MenuBar(_ref) {
212
218
  return editor.chain().focus().addColumnAfter().run();
213
219
  },
214
220
  hidden: function hidden(state) {
215
- return !state.isTable;
221
+ return !(state.isTable && !state.hasTextSelectionInTable);
216
222
  },
217
223
  isActive: function isActive(state) {
218
224
  return state.isTable;
@@ -226,7 +232,7 @@ function MenuBar(_ref) {
226
232
  return editor.chain().focus().deleteColumn().run();
227
233
  },
228
234
  hidden: function hidden(state) {
229
- return !state.isTable;
235
+ return !(state.isTable && !state.hasTextSelectionInTable);
230
236
  },
231
237
  isActive: function isActive(state) {
232
238
  return state.isTable;
@@ -240,7 +246,7 @@ function MenuBar(_ref) {
240
246
  return editor.chain().focus().deleteTable().run();
241
247
  },
242
248
  hidden: function hidden(state) {
243
- return !state.isTable;
249
+ return !(state.isTable && !state.hasTextSelectionInTable);
244
250
  },
245
251
  isActive: function isActive(state) {
246
252
  return state.isTable;
@@ -258,7 +264,7 @@ function MenuBar(_ref) {
258
264
  editor.commands.updateAttributes('table', update);
259
265
  },
260
266
  hidden: function hidden(state) {
261
- return !state.isTable;
267
+ return !(state.isTable && !state.hasTextSelectionInTable);
262
268
  },
263
269
  isActive: function isActive(state) {
264
270
  return state.tableHasBorder;
@@ -271,8 +277,8 @@ function MenuBar(_ref) {
271
277
  onClick: function onClick(editor) {
272
278
  return editor.chain().focus().toggleBold().run();
273
279
  },
274
- hidden: function hidden(state) {
275
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('bold')) || state.isTable;
280
+ hidden: function hidden() {
281
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('bold'));
276
282
  },
277
283
  isActive: function isActive(state) {
278
284
  return state.isBold;
@@ -285,8 +291,8 @@ function MenuBar(_ref) {
285
291
  onClick: function onClick(editor) {
286
292
  return editor.chain().focus().toggleItalic().run();
287
293
  },
288
- hidden: function hidden(state) {
289
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('italic')) || state.isTable;
294
+ hidden: function hidden() {
295
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('italic'));
290
296
  },
291
297
  isActive: function isActive(state) {
292
298
  return state.isItalic;
@@ -299,8 +305,8 @@ function MenuBar(_ref) {
299
305
  onClick: function onClick(editor) {
300
306
  return editor.chain().focus().toggleStrike().run();
301
307
  },
302
- hidden: function hidden(state) {
303
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('strikethrough')) || state.isTable;
308
+ hidden: function hidden() {
309
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('strikethrough'));
304
310
  },
305
311
  isActive: function isActive(state) {
306
312
  return state.isStrike;
@@ -313,8 +319,8 @@ function MenuBar(_ref) {
313
319
  onClick: function onClick(editor) {
314
320
  return editor.chain().focus().toggleCode().run();
315
321
  },
316
- hidden: function hidden(state) {
317
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('code')) || state.isTable;
322
+ hidden: function hidden() {
323
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('code'));
318
324
  },
319
325
  isActive: function isActive(state) {
320
326
  return state.isCode;
@@ -327,8 +333,8 @@ function MenuBar(_ref) {
327
333
  onClick: function onClick(editor) {
328
334
  return editor.chain().focus().toggleUnderline().run();
329
335
  },
330
- hidden: function hidden(state) {
331
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('underline')) || state.isTable;
336
+ hidden: function hidden() {
337
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('underline'));
332
338
  },
333
339
  isActive: function isActive(state) {
334
340
  return state.isUnderline;
@@ -338,8 +344,8 @@ function MenuBar(_ref) {
338
344
  onClick: function onClick(editor) {
339
345
  return editor.chain().focus().toggleSubscript().run();
340
346
  },
341
- hidden: function hidden(state) {
342
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('subscript')) || state.isTable;
347
+ hidden: function hidden() {
348
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('subscript'));
343
349
  },
344
350
  isActive: function isActive(state) {
345
351
  return state.isSubScript;
@@ -349,8 +355,8 @@ function MenuBar(_ref) {
349
355
  onClick: function onClick(editor) {
350
356
  return editor.chain().focus().toggleSuperscript().run();
351
357
  },
352
- hidden: function hidden(state) {
353
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('superscript')) || state.isTable;
358
+ hidden: function hidden() {
359
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('superscript'));
354
360
  },
355
361
  isActive: function isActive(state) {
356
362
  return state.isSuperScript;
@@ -365,8 +371,8 @@ function MenuBar(_ref) {
365
371
  }
366
372
  }, {
367
373
  icon: /*#__PURE__*/_react["default"].createElement(_Theaters["default"], null),
368
- hidden: function hidden(state) {
369
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('video')) || state.isTable;
374
+ hidden: function hidden() {
375
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('video'));
370
376
  },
371
377
  onClick: function onClick(editor) {
372
378
  return editor.chain().focus().insertMedia({
@@ -375,8 +381,8 @@ function MenuBar(_ref) {
375
381
  }
376
382
  }, {
377
383
  icon: /*#__PURE__*/_react["default"].createElement(_VolumeUp["default"], null),
378
- hidden: function hidden(state) {
379
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('audio')) || state.isTable;
384
+ hidden: function hidden() {
385
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('audio'));
380
386
  },
381
387
  onClick: function onClick(editor) {
382
388
  return editor.chain().focus().insertMedia({
@@ -386,16 +392,27 @@ function MenuBar(_ref) {
386
392
  }
387
393
  }, {
388
394
  icon: /*#__PURE__*/_react["default"].createElement(_CssIcon["default"], null),
389
- hidden: function hidden(state) {
390
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('css')) || state.isTable;
395
+ hidden: function hidden() {
396
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('css'));
391
397
  },
392
398
  onClick: function onClick(editor) {
393
399
  return editor.commands.openCSSClassDialog();
394
400
  }
401
+ }, {
402
+ icon: /*#__PURE__*/_react["default"].createElement(_FormatQuote["default"], null),
403
+ hidden: function hidden() {
404
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('blockquote'));
405
+ },
406
+ onClick: function onClick(editor) {
407
+ return editor.chain().focus().toggleBlockquote().run();
408
+ },
409
+ isActive: function isActive(state) {
410
+ return state.isBlockquote;
411
+ }
395
412
  }, {
396
413
  icon: /*#__PURE__*/_react["default"].createElement(HeadingIcon, null),
397
- hidden: function hidden(state) {
398
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('h3')) || state.isTable;
414
+ hidden: function hidden() {
415
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('h3'));
399
416
  },
400
417
  onClick: function onClick(editor) {
401
418
  return editor.chain().focus().toggleHeading({
@@ -439,14 +456,14 @@ function MenuBar(_ref) {
439
456
  icon: /*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
440
457
  editor: editor
441
458
  }),
442
- hidden: function hidden(state) {
443
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('text-align')) || state.isTable;
459
+ hidden: function hidden() {
460
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('text-align'));
444
461
  },
445
462
  onClick: function onClick() {}
446
463
  }, {
447
464
  icon: /*#__PURE__*/_react["default"].createElement(_FormatListBulleted["default"], null),
448
- hidden: function hidden(state) {
449
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('bulleted-list')) || state.isTable;
465
+ hidden: function hidden() {
466
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('bulleted-list'));
450
467
  },
451
468
  onClick: function onClick(editor) {
452
469
  return editor.chain().focus().toggleBulletList().run();
@@ -456,8 +473,8 @@ function MenuBar(_ref) {
456
473
  }
457
474
  }, {
458
475
  icon: /*#__PURE__*/_react["default"].createElement(_FormatListNumbered["default"], null),
459
- hidden: function hidden(state) {
460
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('numbered-list')) || state.isTable;
476
+ hidden: function hidden() {
477
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('numbered-list'));
461
478
  },
462
479
  onClick: function onClick(editor) {
463
480
  return editor.chain().focus().toggleOrderedList().run();
@@ -467,8 +484,8 @@ function MenuBar(_ref) {
467
484
  }
468
485
  }, {
469
486
  icon: /*#__PURE__*/_react["default"].createElement(_Undo["default"], null),
470
- hidden: function hidden(state) {
471
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('undo')) || state.isTable;
487
+ hidden: function hidden() {
488
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('undo'));
472
489
  },
473
490
  onClick: function onClick(editor) {
474
491
  return editor.chain().focus().undo().run();
@@ -478,8 +495,8 @@ function MenuBar(_ref) {
478
495
  }
479
496
  }, {
480
497
  icon: /*#__PURE__*/_react["default"].createElement(_Redo["default"], null),
481
- hidden: function hidden(state) {
482
- return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('redo')) || state.isTable;
498
+ hidden: function hidden() {
499
+ return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('redo'));
483
500
  },
484
501
  onClick: function onClick(editor) {
485
502
  return editor.chain().focus().redo().run();
@@ -489,11 +506,26 @@ function MenuBar(_ref) {
489
506
  }
490
507
  }];
491
508
  }, [activePlugins, editor]);
509
+ var isDragInTheBlankSelected = editorState.hideDefaultToolbar && ((_editorState$currentN = editorState.currentNode) === null || _editorState$currentN === void 0 || (_editorState$currentN = _editorState$currentN.type) === null || _editorState$currentN === void 0 ? void 0 : _editorState$currentN.name) === 'drag_in_the_blank';
492
510
  return /*#__PURE__*/_react["default"].createElement("div", {
493
511
  className: names,
494
512
  style: _objectSpread({}, customStyles),
495
513
  onMouseDown: handleMouseDown
496
- }, !editorState.hideDefaultToolbar && /*#__PURE__*/_react["default"].createElement("div", {
514
+ }, isDragInTheBlankSelected && /*#__PURE__*/_react["default"].createElement("div", {
515
+ className: classes.defaultToolbar,
516
+ tabIndex: "1"
517
+ }, /*#__PURE__*/_react["default"].createElement("div", {
518
+ className: classes.buttonsContainer
519
+ }, /*#__PURE__*/_react["default"].createElement("button", {
520
+ type: "button",
521
+ className: classes.button,
522
+ onClick: function onClick(e) {
523
+ e.preventDefault();
524
+ editor.chain().focus().deleteSelection().run();
525
+ onChange === null || onChange === void 0 || onChange(editor.getHTML());
526
+ },
527
+ "aria-label": "Delete response area"
528
+ }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)))), !editorState.hideDefaultToolbar && /*#__PURE__*/_react["default"].createElement("div", {
497
529
  className: classes.defaultToolbar,
498
530
  tabIndex: "1"
499
531
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -659,4 +691,4 @@ var StyledMenuBarRoot = (0, _styles.styled)('div')(function (_ref4) {
659
691
  };
660
692
  });
661
693
  var _default = exports["default"] = StyledMenuBar;
662
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVzIiwiX3Byb3NlbWlycm9yU3RhdGUiLCJfRm9ybWF0Qm9sZCIsIl9Gb3JtYXRJdGFsaWMiLCJfRm9ybWF0U3RyaWtldGhyb3VnaCIsIl9Db2RlIiwiX0dyaWRPbiIsIl9Gb3JtYXRMaXN0QnVsbGV0ZWQiLCJfRm9ybWF0TGlzdE51bWJlcmVkIiwiX0Zvcm1hdFVuZGVybGluZWQiLCJfRnVuY3Rpb25zIiwiX0ltYWdlIiwiX1JlZG8iLCJfVW5kbyIsIl9UaGVhdGVycyIsIl9Wb2x1bWVVcCIsIl9Cb3JkZXJBbGwiLCJfcmVhY3QyIiwiX2NvbnN0YW50cyIsIl9Ub29sYmFySWNvbiIsIl9jaGFyYWN0ZXJVdGlscyIsIl9UZXh0QWxpZ24iLCJfQ3NzSWNvbiIsIl9UYWJsZUljb25zIiwiX0NoYXJhY3RlclBpY2tlciIsIl9kb25lQnV0dG9uIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN1cGVyc2NyaXB0SWNvbiIsImNyZWF0ZUVsZW1lbnQiLCJ4bWxucyIsImhlaWdodCIsInZpZXdCb3giLCJ3aWR0aCIsImZpbGwiLCJkIiwiU3Vic2NyaXB0SWNvbiIsIkhlYWRpbmdJY29uIiwic3R5bGUiLCJNZW51QmFyIiwiX3JlZiIsImVkaXRvciIsImNsYXNzZXMiLCJhY3RpdmVQbHVnaW5zIiwidG9vbE9wdHMiLCJ0b29sYmFyT3B0cyIsInJlc3BvbnNlQXJlYVByb3BzIiwib25DaGFuZ2UiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzaG93UGlja2VyIiwic2V0U2hvd1BpY2tlciIsImVkaXRvclN0YXRlIiwidXNlRWRpdG9yU3RhdGUiLCJzZWxlY3RvciIsImN0eCIsIl9jdHgkZWRpdG9yIiwiX2N0eCRlZGl0b3IyIiwiX2N0eCRlZGl0b3IzIiwiX2N0eCRlZGl0b3I0IiwiX2N0eCRlZGl0b3I1IiwiX2N0eCRlZGl0b3IkaXNBY3RpdmUiLCJfY3R4JGVkaXRvciRjYW4kY2hhaW4iLCJfY3R4JGVkaXRvciRpc0FjdGl2ZTIiLCJfcmVmMyIsIl9jdHgkZWRpdG9yJGdldEF0dHJpYiIsIl9jdHgkZWRpdG9yJGNhbiRjaGFpbjIiLCJfY3R4JGVkaXRvciRpc0FjdGl2ZTMiLCJfY3R4JGVkaXRvciRjYW4kY2hhaW4zIiwiX2N0eCRlZGl0b3IkaXNBY3RpdmU0IiwiX2N0eCRlZGl0b3IkY2FuJGNoYWluNCIsIl9jdHgkZWRpdG9yJGlzQWN0aXZlNSIsIl9jdHgkZWRpdG9yJGNhbiRjaGFpbjUiLCJfY3R4JGVkaXRvciRjYW4kY2hhaW42IiwiX2N0eCRlZGl0b3IkaXNBY3RpdmU2IiwiX2N0eCRlZGl0b3IkaXNBY3RpdmU3IiwiX2N0eCRlZGl0b3IkaXNBY3RpdmU4IiwiX2N0eCRlZGl0b3IkaXNBY3RpdmU5IiwiX2N0eCRlZGl0b3IkaXNBY3RpdmUwIiwiX2N0eCRlZGl0b3IkaXNBY3RpdmUxIiwiX2N0eCRlZGl0b3IkaXNBY3RpdmUxMCIsIl9jdHgkZWRpdG9yJGlzQWN0aXZlMTEiLCJfY3R4JGVkaXRvciRpc0FjdGl2ZTEyIiwiX2N0eCRlZGl0b3IkaXNBY3RpdmUxMyIsIl9jdHgkZWRpdG9yJGlzQWN0aXZlMTQiLCJfY3R4JGVkaXRvciRpc0FjdGl2ZTE1IiwiX2N0eCRlZGl0b3IkaXNBY3RpdmUxNiIsIl9jdHgkZWRpdG9yJGlzQWN0aXZlMTciLCJfY3R4JGVkaXRvciRjYW4kY2hhaW43IiwiX2N0eCRlZGl0b3IkY2FuJGNoYWluOCIsIl9yZWYyIiwic3RhdGUiLCJzZWxlY3Rpb24iLCJjdXJyZW50Tm9kZSIsIk5vZGVTZWxlY3Rpb24iLCJub2RlIiwiaGlkZURlZmF1bHRUb29sYmFyIiwiaXNBY3RpdmUiLCJpc0ZvY3VzZWQiLCJpc0JvbGQiLCJjYW5Cb2xkIiwiY2FuIiwiY2hhaW4iLCJ0b2dnbGVCb2xkIiwicnVuIiwiaXNUYWJsZSIsInRhYmxlSGFzQm9yZGVyIiwiZ2V0QXR0cmlidXRlcyIsImJvcmRlciIsImNhblRhYmxlIiwiaW5zZXJ0VGFibGUiLCJpc0l0YWxpYyIsImNhbkl0YWxpYyIsInRvZ2dsZUl0YWxpYyIsImlzU3RyaWtlIiwiY2FuU3RyaWtlIiwidG9nZ2xlU3RyaWtlIiwiaXNDb2RlIiwiY2FuQ29kZSIsInRvZ2dsZUNvZGUiLCJjYW5DbGVhck1hcmtzIiwidW5zZXRBbGxNYXJrcyIsImlzVW5kZXJsaW5lIiwiaXNTdWJTY3JpcHQiLCJpc1N1cGVyU2NyaXB0IiwiaXNQYXJhZ3JhcGgiLCJpc0hlYWRpbmcxIiwibGV2ZWwiLCJpc0hlYWRpbmcyIiwiaXNIZWFkaW5nMyIsImlzSGVhZGluZzQiLCJpc0hlYWRpbmc1IiwiaXNIZWFkaW5nNiIsImlzQnVsbGV0TGlzdCIsImlzT3JkZXJlZExpc3QiLCJpc0NvZGVCbG9jayIsImlzQmxvY2txdW90ZSIsImNhblVuZG8iLCJ1bmRvIiwiY2FuUmVkbyIsInJlZG8iLCJoYXNEb25lQnV0dG9uIiwiYXV0b1dpZHRoIiwibmFtZXMiLCJjbGFzc05hbWVzIiwidG9vbGJhciIsIlBJRV9UT09MQkFSX19DTEFTUyIsInRvb2xiYXJXaXRoTm9Eb25lIiwidG9vbGJhclRvcCIsInBvc2l0aW9uIiwidG9vbGJhclJpZ2h0IiwiYWxpZ25tZW50IiwiZm9jdXNlZCIsImFsd2F5c1Zpc2libGUiLCJfdG9vbGJhck9wZW5lZCIsImZ1bGxXaWR0aCIsImhpZGRlbiIsImlzSGlkZGVuIiwiY3VzdG9tU3R5bGVzIiwibWluV2lkdGgiLCJ1bmRlZmluZWQiLCJoYW5kbGVNb3VzZURvd24iLCJwcmV2ZW50RGVmYXVsdCIsInRvb2xiYXJCdXR0b25zIiwidXNlTWVtbyIsImljb24iLCJvbkNsaWNrIiwiZm9jdXMiLCJyb3dzIiwiY29scyIsIndpdGhIZWFkZXJSb3ciLCJpbmNsdWRlcyIsImlzRGlzYWJsZWQiLCJBZGRSb3ciLCJhZGRSb3dBZnRlciIsIlJlbW92ZVJvdyIsImRlbGV0ZVJvdyIsIkFkZENvbHVtbiIsImFkZENvbHVtbkFmdGVyIiwiUmVtb3ZlQ29sdW1uIiwiZGVsZXRlQ29sdW1uIiwiUmVtb3ZlVGFibGUiLCJkZWxldGVUYWJsZSIsInRhYmxlQXR0cnMiLCJ1cGRhdGUiLCJjb21tYW5kcyIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJ0b2dnbGVVbmRlcmxpbmUiLCJ0b2dnbGVTdWJzY3JpcHQiLCJ0b2dnbGVTdXBlcnNjcmlwdCIsInNldEltYWdlVXBsb2FkTm9kZSIsImluc2VydE1lZGlhIiwidHlwZSIsInRhZyIsIm9wZW5DU1NDbGFzc0RpYWxvZyIsInRvZ2dsZUhlYWRpbmciLCJpbnNlcnRNYXRoIiwiQ2hhcmFjdGVySWNvbiIsImxldHRlciIsInNwYW5pc2hDb25maWciLCJwIiwic3BlY2lhbENvbmZpZyIsInRvZ2dsZUJ1bGxldExpc3QiLCJ0b2dnbGVPcmRlcmVkTGlzdCIsImNsYXNzTmFtZSIsIm9uTW91c2VEb3duIiwiZGVmYXVsdFRvb2xiYXIiLCJ0YWJJbmRleCIsImJ1dHRvbnNDb250YWluZXIiLCJidG4iLCJfYnRuJGhpZGRlbiIsIm1hcCIsImluZGV4IiwiX2J0biRpc0Rpc2FibGVkIiwiX2J0biRpc0FjdGl2ZSIsImRpc2FibGVkIiwiYWN0aXZlIiwia2V5IiwiYnV0dG9uIiwiaW5zZXJ0UmVzcG9uc2VBcmVhIiwiVG9vbGJhckljb24iLCJzaG93RG9uZSIsIkRvbmVCdXR0b24iLCJnZXRIVE1MIiwiYmx1ciIsIkNoYXJhY3RlclBpY2tlciIsIm9wdHMiLCJyZW5kZXJQb3BPdmVyIiwiZXYiLCJjaCIsImNvbnNvbGUiLCJsb2ciLCJjbG9zZVBvcE92ZXIiLCJvbkNsb3NlIiwiU3R5bGVkTWVudUJhciIsInByb3BzIiwidGhlbWUiLCJ1c2VUaGVtZSIsImljb25Sb290IiwibGFiZWwiLCJzaGFyZWQiLCJTdHlsZWRNZW51QmFyUm9vdCIsIl9leHRlbmRzMiIsInN0eWxlZCIsIl9yZWY0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImNvbG9yIiwicGFkZGluZyIsImJhY2tncm91bmQiLCJjdXJzb3IiLCJvdXRsaW5lIiwiY29uY2F0IiwicGFsZXR0ZSIsImdyZXkiLCJvcGFjaXR5IiwiekluZGV4IiwibWFyZ2luIiwiYm94U2hhZG93IiwiYm94U2l6aW5nIiwicG9pbnRlckV2ZW50cyIsInRvcCIsInJpZ2h0IiwidmlzaWJpbGl0eSIsInZlcnRpY2FsQWxpZ24iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9NZW51QmFyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IHN0eWxlZCwgdXNlVGhlbWUgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgeyBOb2RlU2VsZWN0aW9uIH0gZnJvbSAncHJvc2VtaXJyb3Itc3RhdGUnO1xuXG5pbXBvcnQgQm9sZCBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Zvcm1hdEJvbGQnO1xuaW1wb3J0IEl0YWxpYyBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Zvcm1hdEl0YWxpYyc7XG5pbXBvcnQgU3RyaWtldGhyb3VnaCBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Zvcm1hdFN0cmlrZXRocm91Z2gnO1xuaW1wb3J0IENvZGUgZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Db2RlJztcbmltcG9ydCBHcmlkT24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9HcmlkT24nO1xuaW1wb3J0IEJ1bGxldGVkTGlzdEljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Gb3JtYXRMaXN0QnVsbGV0ZWQnO1xuaW1wb3J0IE51bWJlcmVkTGlzdEljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Gb3JtYXRMaXN0TnVtYmVyZWQnO1xuaW1wb3J0IFVuZGVybGluZSBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Zvcm1hdFVuZGVybGluZWQnO1xuaW1wb3J0IEZ1bmN0aW9ucyBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Z1bmN0aW9ucyc7XG5pbXBvcnQgSW1hZ2VJY29uIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvSW1hZ2UnO1xuaW1wb3J0IFJlZG8gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9SZWRvJztcbmltcG9ydCBVbmRvIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvVW5kbyc7XG5pbXBvcnQgVGhlYXRlcnNJY29uIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvVGhlYXRlcnMnO1xuaW1wb3J0IFZvbHVtZVVwSWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL1ZvbHVtZVVwJztcbmltcG9ydCBCb3JkZXJBbGwgZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9Cb3JkZXJBbGwnO1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JTdGF0ZSB9IGZyb20gJ0B0aXB0YXAvcmVhY3QnO1xuXG5pbXBvcnQgeyBQSUVfVE9PTEJBUl9fQ0xBU1MgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVG9vbGJhckljb24gfSBmcm9tICcuL3Jlc3BBcmVhL1Rvb2xiYXJJY29uJztcbmltcG9ydCB7IHNwYW5pc2hDb25maWcsIHNwZWNpYWxDb25maWcgfSBmcm9tICcuL2NoYXJhY3RlcnMvY2hhcmFjdGVyVXRpbHMnO1xuaW1wb3J0IFRleHRBbGlnbkljb24gZnJvbSAnLi9pY29ucy9UZXh0QWxpZ24nO1xuaW1wb3J0IENTU0ljb24gZnJvbSAnLi9pY29ucy9Dc3NJY29uJztcbmltcG9ydCB7IEFkZENvbHVtbiwgQWRkUm93LCBSZW1vdmVDb2x1bW4sIFJlbW92ZVJvdywgUmVtb3ZlVGFibGUgfSBmcm9tICcuL2ljb25zL1RhYmxlSWNvbnMnO1xuXG5pbXBvcnQgeyBDaGFyYWN0ZXJJY29uLCBDaGFyYWN0ZXJQaWNrZXIgfSBmcm9tICcuL0NoYXJhY3RlclBpY2tlcic7XG5pbXBvcnQgeyBEb25lQnV0dG9uIH0gZnJvbSAnLi9jb21tb24vZG9uZS1idXR0b24nO1xuXG5jb25zdCBTdXBlcnNjcmlwdEljb24gPSAoKSA9PiAoXG4gIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNHB4XCIgZmlsbD1cIm5vbmVcIj5cbiAgICA8cGF0aFxuICAgICAgZD1cIk0yMiw3aC0ydjFoM3YxaC00VjdjMC0wLjU1LDAuNDUtMSwxLTFoMlY1aC0zVjRoM2MwLjU1LDAsMSwwLjQ1LDEsMXYxQzIzLDYuNTUsMjIuNTUsNywyMiw3eiBNNS44OCwyMGgyLjY2bDMuNC01LjQyaDAuMTIgbDMuNCw1LjQyaDIuNjZsLTQuNjUtNy4yN0wxNy44MSw2aC0yLjY4bC0zLjA3LDQuOTloLTAuMTJMOC44NSw2SDYuMTlsNC4zMiw2LjczTDUuODgsMjB6XCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgU3Vic2NyaXB0SWNvbiA9ICgpID0+IChcbiAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRweFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0cHhcIiBmaWxsPVwibm9uZVwiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTIyLDE4aC0ydjFoM3YxaC00di0yYzAtMC41NSwwLjQ1LTEsMS0xaDJ2LTFoLTN2LTFoM2MwLjU1LDAsMSwwLjQ1LDEsMXYxQzIzLDE3LjU1LDIyLjU1LDE4LDIyLDE4eiBNNS44OCwxOGgyLjY2IGwzLjQtNS40MmgwLjEybDMuNCw1LjQyaDIuNjZsLTQuNjUtNy4yN0wxNy44MSw0aC0yLjY4bC0zLjA3LDQuOTloLTAuMTJMOC44NSw0SDYuMTlsNC4zMiw2LjczTDUuODgsMTh6XCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgSGVhZGluZ0ljb24gPSAoKSA9PiAoXG4gIDxzdmdcbiAgICB3aWR0aD1cIjMwXCJcbiAgICBoZWlnaHQ9XCIyOFwiXG4gICAgdmlld0JveD1cIjAgMCAzMCAyOFwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgIHN0eWxlPXt7IHdpZHRoOiAnMjBweCcsIGhlaWdodDogJzE4cHgnIH19XG4gID5cbiAgICA8cGF0aFxuICAgICAgZD1cIk0yNyA0VjI0SDI5QzI5LjUgMjQgMzAgMjQuNSAzMCAyNVYyN0MzMCAyNy41NjI1IDI5LjUgMjggMjkgMjhIMTlDMTguNDM3NSAyOCAxOCAyNy41NjI1IDE4IDI3VjI1QzE4IDI0LjUgMTguNDM3NSAyNCAxOSAyNEgyMVYxNkg5VjI0SDExQzExLjUgMjQgMTIgMjQuNSAxMiAyNVYyN0MxMiAyNy41NjI1IDExLjUgMjggMTEgMjhIMUMwLjQzNzUgMjggMCAyNy41NjI1IDAgMjdWMjVDMCAyNC41IDAuNDM3NSAyNCAxIDI0SDNWNEgxQzAuNDM3NSA0IDAgMy41NjI1IDAgM1YxQzAgMC41IDAuNDM3NSAwIDEgMEgxMUMxMS41IDAgMTIgMC41IDEyIDFWM0MxMiAzLjU2MjUgMTEuNSA0IDExIDRIOVYxMkgyMVY0SDE5QzE4LjQzNzUgNCAxOCAzLjU2MjUgMTggM1YxQzE4IDAuNSAxOC40Mzc1IDAgMTkgMEgyOUMyOS41IDAgMzAgMC41IDMwIDFWM0MzMCAzLjU2MjUgMjkuNSA0IDI5IDRIMjdaXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgIC8+XG4gIDwvc3ZnPlxuKTtcblxuZnVuY3Rpb24gTWVudUJhcih7IGVkaXRvciwgY2xhc3NlcywgYWN0aXZlUGx1Z2lucywgdG9vbGJhck9wdHM6IHRvb2xPcHRzLCByZXNwb25zZUFyZWFQcm9wcywgb25DaGFuZ2UgfSkge1xuICBjb25zdCBbc2hvd1BpY2tlciwgc2V0U2hvd1BpY2tlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHRvb2xiYXJPcHRzID0gdG9vbE9wdHMgPz8ge307XG5cbiAgY29uc3QgZWRpdG9yU3RhdGUgPSB1c2VFZGl0b3JTdGF0ZSh7XG4gICAgZWRpdG9yLFxuICAgIHNlbGVjdG9yOiAoY3R4KSA9PiB7XG4gICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gY3R4LmVkaXRvcj8uc3RhdGUgfHwge307XG5cbiAgICAgIGxldCBjdXJyZW50Tm9kZTtcblxuICAgICAgaWYgKHNlbGVjdGlvbiBpbnN0YW5jZW9mIE5vZGVTZWxlY3Rpb24pIHtcbiAgICAgICAgY3VycmVudE5vZGUgPSBzZWxlY3Rpb24ubm9kZTsgLy8gdGhlIHNlbGVjdGVkIG5vZGVcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGlkZURlZmF1bHRUb29sYmFyID1cbiAgICAgICAgY3R4LmVkaXRvcj8uaXNBY3RpdmUoJ21hdGgnKSB8fFxuICAgICAgICBjdHguZWRpdG9yPy5pc0FjdGl2ZSgnZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2UnKSB8fFxuICAgICAgICBjdHguZWRpdG9yPy5pc0FjdGl2ZSgnaW1hZ2VVcGxvYWROb2RlJyk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGN1cnJlbnROb2RlLFxuICAgICAgICBoaWRlRGVmYXVsdFRvb2xiYXIsXG4gICAgICAgIGlzRm9jdXNlZDogY3R4LmVkaXRvcj8uaXNGb2N1c2VkLFxuICAgICAgICBpc0JvbGQ6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ2JvbGQnKSA/PyBmYWxzZSxcbiAgICAgICAgY2FuQm9sZDogY3R4LmVkaXRvci5jYW4oKS5jaGFpbigpLnRvZ2dsZUJvbGQoKS5ydW4oKSA/PyBmYWxzZSxcbiAgICAgICAgaXNUYWJsZTogY3R4LmVkaXRvci5pc0FjdGl2ZSgndGFibGUnKSA/PyBmYWxzZSxcbiAgICAgICAgdGFibGVIYXNCb3JkZXI6IGN0eC5lZGl0b3IuZ2V0QXR0cmlidXRlcygndGFibGUnKT8uYm9yZGVyID09PSAnMScgPz8gZmFsc2UsXG4gICAgICAgIGNhblRhYmxlOiBjdHguZWRpdG9yLmNhbigpLmNoYWluKCkuaW5zZXJ0VGFibGUoKS5ydW4oKSA/PyBmYWxzZSxcbiAgICAgICAgaXNJdGFsaWM6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ2l0YWxpYycpID8/IGZhbHNlLFxuICAgICAgICBjYW5JdGFsaWM6IGN0eC5lZGl0b3IuY2FuKCkuY2hhaW4oKS50b2dnbGVJdGFsaWMoKS5ydW4oKSA/PyBmYWxzZSxcbiAgICAgICAgaXNTdHJpa2U6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ3N0cmlrZScpID8/IGZhbHNlLFxuICAgICAgICBjYW5TdHJpa2U6IGN0eC5lZGl0b3IuY2FuKCkuY2hhaW4oKS50b2dnbGVTdHJpa2UoKS5ydW4oKSA/PyBmYWxzZSxcbiAgICAgICAgaXNDb2RlOiBjdHguZWRpdG9yLmlzQWN0aXZlKCdjb2RlJykgPz8gZmFsc2UsXG4gICAgICAgIGNhbkNvZGU6IGN0eC5lZGl0b3IuY2FuKCkuY2hhaW4oKS50b2dnbGVDb2RlKCkucnVuKCkgPz8gZmFsc2UsXG4gICAgICAgIGNhbkNsZWFyTWFya3M6IGN0eC5lZGl0b3IuY2FuKCkuY2hhaW4oKS51bnNldEFsbE1hcmtzKCkucnVuKCkgPz8gZmFsc2UsXG4gICAgICAgIGlzVW5kZXJsaW5lOiBjdHguZWRpdG9yLmlzQWN0aXZlKCd1bmRlcmxpbmUnKSA/PyBmYWxzZSxcbiAgICAgICAgaXNTdWJTY3JpcHQ6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ3N1YnNjcmlwdCcpID8/IGZhbHNlLFxuICAgICAgICBpc1N1cGVyU2NyaXB0OiBjdHguZWRpdG9yLmlzQWN0aXZlKCdzdXBlcnNjcmlwdCcpID8/IGZhbHNlLFxuICAgICAgICBpc1BhcmFncmFwaDogY3R4LmVkaXRvci5pc0FjdGl2ZSgncGFyYWdyYXBoJykgPz8gZmFsc2UsXG4gICAgICAgIGlzSGVhZGluZzE6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ2hlYWRpbmcnLCB7IGxldmVsOiAxIH0pID8/IGZhbHNlLFxuICAgICAgICBpc0hlYWRpbmcyOiBjdHguZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogMiB9KSA/PyBmYWxzZSxcbiAgICAgICAgaXNIZWFkaW5nMzogY3R4LmVkaXRvci5pc0FjdGl2ZSgnaGVhZGluZycsIHsgbGV2ZWw6IDMgfSkgPz8gZmFsc2UsXG4gICAgICAgIGlzSGVhZGluZzQ6IGN0eC5lZGl0b3IuaXNBY3RpdmUoJ2hlYWRpbmcnLCB7IGxldmVsOiA0IH0pID8/IGZhbHNlLFxuICAgICAgICBpc0hlYWRpbmc1OiBjdHguZWRpdG9yLmlzQWN0aXZlKCdoZWFkaW5nJywgeyBsZXZlbDogNSB9KSA/PyBmYWxzZSxcbiAgICAgICAgaXNIZWFkaW5nNjogY3R4LmVkaXRvci5pc0FjdGl2ZSgnaGVhZGluZycsIHsgbGV2ZWw6IDYgfSkgPz8gZmFsc2UsXG4gICAgICAgIGlzQnVsbGV0TGlzdDogY3R4LmVkaXRvci5pc0FjdGl2ZSgnYnVsbGV0TGlzdCcpID8/IGZhbHNlLFxuICAgICAgICBpc09yZGVyZWRMaXN0OiBjdHguZWRpdG9yLmlzQWN0aXZlKCdvcmRlcmVkTGlzdCcpID8/IGZhbHNlLFxuICAgICAgICBpc0NvZGVCbG9jazogY3R4LmVkaXRvci5pc0FjdGl2ZSgnY29kZUJsb2NrJykgPz8gZmFsc2UsXG4gICAgICAgIGlzQmxvY2txdW90ZTogY3R4LmVkaXRvci5pc0FjdGl2ZSgnYmxvY2txdW90ZScpID8/IGZhbHNlLFxuICAgICAgICBjYW5VbmRvOiBjdHguZWRpdG9yLmNhbigpLmNoYWluKCkudW5kbygpLnJ1bigpID8/IGZhbHNlLFxuICAgICAgICBjYW5SZWRvOiBjdHguZWRpdG9yLmNhbigpLmNoYWluKCkucmVkbygpLnJ1bigpID8/IGZhbHNlLFxuICAgICAgfTtcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBoYXNEb25lQnV0dG9uID0gZmFsc2U7XG4gIGNvbnN0IGF1dG9XaWR0aCA9IGZhbHNlO1xuXG4gIGNvbnN0IG5hbWVzID0gY2xhc3NOYW1lcyhjbGFzc2VzLnRvb2xiYXIsIFBJRV9UT09MQkFSX19DTEFTUywge1xuICAgIFtjbGFzc2VzLnRvb2xiYXJXaXRoTm9Eb25lXTogIWhhc0RvbmVCdXR0b24sXG4gICAgW2NsYXNzZXMudG9vbGJhclRvcF06IHRvb2xiYXJPcHRzLnBvc2l0aW9uID09PSAndG9wJyxcbiAgICBbY2xhc3Nlcy50b29sYmFyUmlnaHRdOiB0b29sYmFyT3B0cy5hbGlnbm1lbnQgPT09ICdyaWdodCcsXG4gICAgW2NsYXNzZXMuZm9jdXNlZF06IHRvb2xiYXJPcHRzLmFsd2F5c1Zpc2libGUgfHwgKGVkaXRvclN0YXRlLmlzRm9jdXNlZCAmJiAhZWRpdG9yLl90b29sYmFyT3BlbmVkKSxcbiAgICBbY2xhc3Nlcy5hdXRvV2lkdGhdOiBhdXRvV2lkdGgsXG4gICAgW2NsYXNzZXMuZnVsbFdpZHRoXTogIWF1dG9XaWR0aCxcbiAgICBbY2xhc3Nlcy5oaWRkZW5dOiB0b29sYmFyT3B0cy5pc0hpZGRlbiA9PT0gdHJ1ZSxcbiAgfSk7XG5cbiAgY29uc3QgY3VzdG9tU3R5bGVzID0gdG9vbGJhck9wdHMubWluV2lkdGggIT09IHVuZGVmaW5lZCA/IHsgbWluV2lkdGg6IHRvb2xiYXJPcHRzLm1pbldpZHRoIH0gOiB7fTtcblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfTtcblxuICBjb25zdCB0b29sYmFyQnV0dG9ucyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gW1xuICAgICAge1xuICAgICAgICBpY29uOiA8R3JpZE9uIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PiBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLmluc2VydFRhYmxlKHsgcm93czogMiwgY29sczogMiwgd2l0aEhlYWRlclJvdzogZmFsc2UgfSkucnVuKCksXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ3RhYmxlJykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNEaXNhYmxlZDogKHN0YXRlKSA9PiAhc3RhdGUuY2FuVGFibGUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8QWRkUm93IC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PiBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLmFkZFJvd0FmdGVyKCkucnVuKCksXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNEaXNhYmxlZDogKHN0YXRlKSA9PiAhc3RhdGUuY2FuVGFibGUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8UmVtb3ZlUm93IC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PiBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLmRlbGV0ZVJvdygpLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIXN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEFkZENvbHVtbiAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4gZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5hZGRDb2x1bW5BZnRlcigpLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIXN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFJlbW92ZUNvbHVtbiAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4gZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5kZWxldGVDb2x1bW4oKS5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5UYWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxSZW1vdmVUYWJsZSAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4gZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5kZWxldGVUYWJsZSgpLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIXN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEJvcmRlckFsbCAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhYmxlQXR0cnMgPSBlZGl0b3IuZ2V0QXR0cmlidXRlcygndGFibGUnKTtcblxuICAgICAgICAgIGNvbnN0IHVwZGF0ZSA9IHtcbiAgICAgICAgICAgIC4uLnRhYmxlQXR0cnMsXG4gICAgICAgICAgICBib3JkZXI6IHRhYmxlQXR0cnMuYm9yZGVyICE9PSAnMCcgPyAnMCcgOiAnMScsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGVkaXRvci5jb21tYW5kcy51cGRhdGVBdHRyaWJ1dGVzKCd0YWJsZScsIHVwZGF0ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUudGFibGVIYXNCb3JkZXIsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEJvbGQgLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+IGVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlQm9sZCgpLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdib2xkJykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNCb2xkLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5Cb2xkLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEl0YWxpYyAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4gZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVJdGFsaWMoKS5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygnaXRhbGljJykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNJdGFsaWMsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhbkl0YWxpYyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxTdHJpa2V0aHJvdWdoIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PiBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZVN0cmlrZSgpLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdzdHJpa2V0aHJvdWdoJykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNTdHJpa2UsXG4gICAgICAgIGlzRGlzYWJsZWQ6IChzdGF0ZSkgPT4gIXN0YXRlLmNhblN0cmlrZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxDb2RlIC8+LFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PiBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUNvZGUoKS5ydW4oKSxcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygnY29kZScpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzQ29kZSxcbiAgICAgICAgaXNEaXNhYmxlZDogKHN0YXRlKSA9PiAhc3RhdGUuY2FuQ29kZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxVbmRlcmxpbmUgLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+IGVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlVW5kZXJsaW5lKCkucnVuKCksXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ3VuZGVybGluZScpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzVW5kZXJsaW5lLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFN1YnNjcmlwdEljb24gLz4sXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+IGVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlU3Vic2NyaXB0KCkucnVuKCksXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ3N1YnNjcmlwdCcpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzU3ViU2NyaXB0LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFN1cGVyc2NyaXB0SWNvbiAvPixcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4gZWRpdG9yLmNoYWluKCkuZm9jdXMoKS50b2dnbGVTdXBlcnNjcmlwdCgpLnJ1bigpLFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdzdXBlcnNjcmlwdCcpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzU3VwZXJTY3JpcHQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8SW1hZ2VJY29uIC8+LFxuICAgICAgICBoaWRkZW46ICgpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygnaW1hZ2UnKSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4gZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5zZXRJbWFnZVVwbG9hZE5vZGUoKS5ydW4oKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxUaGVhdGVyc0ljb24gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ3ZpZGVvJykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4gZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5pbnNlcnRNZWRpYSh7IHR5cGU6ICd2aWRlbycgfSkucnVuKCksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8Vm9sdW1lVXBJY29uIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdhdWRpbycpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+IGVkaXRvci5jaGFpbigpLmZvY3VzKCkuaW5zZXJ0TWVkaWEoeyB0eXBlOiAnYXVkaW8nLCB0YWc6ICdhdWRpbycgfSkucnVuKCksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8Q1NTSWNvbiAvPixcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygnY3NzJykgfHwgc3RhdGUuaXNUYWJsZSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4gZWRpdG9yLmNvbW1hbmRzLm9wZW5DU1NDbGFzc0RpYWxvZygpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEhlYWRpbmdJY29uIC8+LFxuICAgICAgICBoaWRkZW46IChzdGF0ZSkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdoMycpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+IGVkaXRvci5jaGFpbigpLmZvY3VzKCkudG9nZ2xlSGVhZGluZyh7IGxldmVsOiAzIH0pLnJ1bigpLFxuICAgICAgICBpc0FjdGl2ZTogKHN0YXRlKSA9PiBzdGF0ZS5pc0hlYWRpbmczLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEZ1bmN0aW9ucyAvPixcbiAgICAgICAgaGlkZGVuOiAoKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ21hdGgnKSxcbiAgICAgICAgb25DbGljazogKGVkaXRvcikgPT4gZWRpdG9yLmNoYWluKCkuZm9jdXMoKS5pbnNlcnRNYXRoKCcnKS5ydW4oKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxDaGFyYWN0ZXJJY29uIGxldHRlcj1cIsOxXCIgLz4sXG4gICAgICAgIGhpZGRlbjogKCkgPT4gIWFjdGl2ZVBsdWdpbnM/LmluY2x1ZGVzKCdsYW5ndWFnZUNoYXJhY3RlcnMnKSxcbiAgICAgICAgb25DbGljazogKCkgPT4gc2V0U2hvd1BpY2tlcihzcGFuaXNoQ29uZmlnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxDaGFyYWN0ZXJJY29uIGxldHRlcj1cIuKCrFwiIC8+LFxuICAgICAgICBoaWRkZW46ICgpID0+IGFjdGl2ZVBsdWdpbnM/LmZpbHRlcigocCkgPT4gcCA9PT0gJ2xhbmd1YWdlQ2hhcmFjdGVycycpLmxlbmd0aCAhPT0gMixcbiAgICAgICAgb25DbGljazogKCkgPT4gc2V0U2hvd1BpY2tlcihzcGVjaWFsQ29uZmlnKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246IDxUZXh0QWxpZ25JY29uIGVkaXRvcj17ZWRpdG9yfSAvPixcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygndGV4dC1hbGlnbicpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHt9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPEJ1bGxldGVkTGlzdEljb24gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ2J1bGxldGVkLWxpc3QnKSB8fCBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PiBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZUJ1bGxldExpc3QoKS5ydW4oKSxcbiAgICAgICAgaXNBY3RpdmU6IChzdGF0ZSkgPT4gc3RhdGUuaXNCdWxsZXRMaXN0LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPE51bWJlcmVkTGlzdEljb24gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ251bWJlcmVkLWxpc3QnKSB8fCBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PiBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnRvZ2dsZU9yZGVyZWRMaXN0KCkucnVuKCksXG4gICAgICAgIGlzQWN0aXZlOiAoc3RhdGUpID0+IHN0YXRlLmlzT3JkZXJlZExpc3QsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpY29uOiA8VW5kbyAvPixcbiAgICAgICAgaGlkZGVuOiAoc3RhdGUpID0+ICFhY3RpdmVQbHVnaW5zPy5pbmNsdWRlcygndW5kbycpIHx8IHN0YXRlLmlzVGFibGUsXG4gICAgICAgIG9uQ2xpY2s6IChlZGl0b3IpID0+IGVkaXRvci5jaGFpbigpLmZvY3VzKCkudW5kbygpLnJ1bigpLFxuICAgICAgICBpc0Rpc2FibGVkOiAoc3RhdGUpID0+ICFzdGF0ZS5jYW5VbmRvLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWNvbjogPFJlZG8gLz4sXG4gICAgICAgIGhpZGRlbjogKHN0YXRlKSA9PiAhYWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ3JlZG8nKSB8fCBzdGF0ZS5pc1RhYmxlLFxuICAgICAgICBvbkNsaWNrOiAoZWRpdG9yKSA9PiBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnJlZG8oKS5ydW4oKSxcbiAgICAgICAgaXNEaXNhYmxlZDogKHN0YXRlKSA9PiAhc3RhdGUuY2FuUmVkbyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbYWN0aXZlUGx1Z2lucywgZWRpdG9yXSxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtuYW1lc30gc3R5bGU9e3sgLi4uY3VzdG9tU3R5bGVzIH19IG9uTW91c2VEb3duPXtoYW5kbGVNb3VzZURvd259PlxuICAgICAgeyFlZGl0b3JTdGF0ZS5oaWRlRGVmYXVsdFRvb2xiYXIgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5kZWZhdWx0VG9vbGJhcn0gdGFiSW5kZXg9XCIxXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuYnV0dG9uc0NvbnRhaW5lcn0+XG4gICAgICAgICAgICB7dG9vbGJhckJ1dHRvbnNcbiAgICAgICAgICAgICAgLmZpbHRlcigoYnRuKSA9PiAhYnRuLmhpZGRlbj8uKGVkaXRvclN0YXRlKSlcbiAgICAgICAgICAgICAgLm1hcCgoYnRuLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gYnRuLmlzRGlzYWJsZWQ/LihlZGl0b3JTdGF0ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYnRuLmlzQWN0aXZlPy4oZWRpdG9yU3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICBidG4ub25DbGljayhlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5idXR0b24sIHsgW2NsYXNzZXMuYWN0aXZlXTogYWN0aXZlIH0pfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YnRuLmljb259XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7YWN0aXZlUGx1Z2lucz8uaW5jbHVkZXMoJ3Jlc3BvbnNlQXJlYScpICYmIChcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgIGVkaXRvci5jaGFpbigpLmZvY3VzKCkuaW5zZXJ0UmVzcG9uc2VBcmVhKHJlc3BvbnNlQXJlYVByb3BzLnR5cGUpLnJ1bigpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuYnV0dG9ufVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8VG9vbGJhckljb24gLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7dG9vbGJhck9wdHMuc2hvd0RvbmUgJiYgKFxuICAgICAgICAgICAgPERvbmVCdXR0b25cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPy4oZWRpdG9yLmdldEhUTUwoKSk7XG4gICAgICAgICAgICAgICAgZWRpdG9yLmNvbW1hbmRzLmJsdXIoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAge3Nob3dQaWNrZXIgJiYgKFxuICAgICAgICA8Q2hhcmFjdGVyUGlja2VyXG4gICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgb3B0cz17e1xuICAgICAgICAgICAgLi4uc2hvd1BpY2tlcixcbiAgICAgICAgICAgIHJlbmRlclBvcE92ZXI6IChldiwgY2gpID0+IGNvbnNvbGUubG9nKCdTaG93IHBvcG92ZXInLCBjaCksXG4gICAgICAgICAgICBjbG9zZVBvcE92ZXI6ICgpID0+IGNvbnNvbGUubG9nKCdDbG9zZSBwb3BvdmVyJyksXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRTaG93UGlja2VyKGZhbHNlKX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbi8vIFdyYXBwZXIgY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgY2xhc3NlcyBvYmplY3QgdXNpbmcgc3R5bGVkIEFQSVxuY29uc3QgU3R5bGVkTWVudUJhciA9IChwcm9wcykgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG5cbiAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICBkZWZhdWx0VG9vbGJhcjogJ2RlZmF1bHRUb29sYmFyJyxcbiAgICBidXR0b25zQ29udGFpbmVyOiAnYnV0dG9uc0NvbnRhaW5lcicsXG4gICAgYnV0dG9uOiAnYnV0dG9uJyxcbiAgICBhY3RpdmU6ICdhY3RpdmUnLFxuICAgIGRpc2FibGVkOiAnZGlzYWJsZWQnLFxuICAgIGlzQWN0aXZlOiAnaXNBY3RpdmUnLFxuICAgIHRvb2xiYXI6ICd0b29sYmFyJyxcbiAgICB0b29sYmFyV2l0aE5vRG9uZTogJ3Rvb2xiYXJXaXRoTm9Eb25lJyxcbiAgICB0b29sYmFyVG9wOiAndG9vbGJhclRvcCcsXG4gICAgdG9vbGJhclJpZ2h0OiAndG9vbGJhclJpZ2h0JyxcbiAgICBmdWxsV2lkdGg6ICdmdWxsV2lkdGgnLFxuICAgIGhpZGRlbjogJ2hpZGRlbicsXG4gICAgYXV0b1dpZHRoOiAnYXV0b1dpZHRoJyxcbiAgICBmb2N1c2VkOiAnZm9jdXNlZCcsXG4gICAgaWNvblJvb3Q6ICdpY29uUm9vdCcsXG4gICAgbGFiZWw6ICdsYWJlbCcsXG4gICAgc2hhcmVkOiAnc2hhcmVkJyxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRNZW51QmFyUm9vdD5cbiAgICAgIDxNZW51QmFyIHsuLi5wcm9wc30gY2xhc3Nlcz17Y2xhc3Nlc30gLz5cbiAgICA8L1N0eWxlZE1lbnVCYXJSb290PlxuICApO1xufTtcblxuY29uc3QgU3R5bGVkTWVudUJhclJvb3QgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7XG4gICcmIC5kZWZhdWx0VG9vbGJhcic6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICB9LFxuICAnJiAuYnV0dG9uc0NvbnRhaW5lcic6IHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgfSxcbiAgJyYgLmJ1dHRvbic6IHtcbiAgICBjb2xvcjogJ2dyZXknLFxuICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgcGFkZGluZzogJzJweCcsXG4gICAgYmFja2dyb3VuZDogJ25vbmUnLFxuICAgIGJvcmRlcjogJ25vbmUnLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICcmOmhvdmVyJzoge1xuICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgfSxcbiAgICAnJjpmb2N1cyc6IHtcbiAgICAgIG91dGxpbmU6IGAycHggc29saWQgJHt0aGVtZS5wYWxldHRlLmdyZXlbNzAwXX1gLFxuICAgIH0sXG4gIH0sXG4gICcmIC5hY3RpdmUnOiB7XG4gICAgY29sb3I6ICdibGFjaycsXG4gIH0sXG4gICcmIC5kaXNhYmxlZCc6IHtcbiAgICBvcGFjaXR5OiAwLjcsXG4gICAgY3Vyc29yOiAnbm90LWFsbG93ZWQnLFxuICAgICcmIDpob3Zlcic6IHtcbiAgICAgIGNvbG9yOiAnZ3JleScsXG4gICAgfSxcbiAgfSxcbiAgJyYgLmlzQWN0aXZlJzoge1xuICAgIGJhY2tncm91bmQ6ICd2YXIoLS1wdXJwbGUpJyxcbiAgICBjb2xvcjogJ3ZhcigtLXdoaXRlKScsXG4gIH0sXG4gICcmIC50b29sYmFyJzoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHpJbmRleDogMjAsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICBiYWNrZ3JvdW5kOiAndmFyKC0tZWRpdGFibGUtaHRtbC10b29sYmFyLWJnLCAjZWZlZmVmKScsXG4gICAgbWluV2lkdGg6ICcyODBweCcsXG4gICAgbWFyZ2luOiAnNXB4IDAgMCAwJyxcbiAgICBwYWRkaW5nOiAnMnB4JyxcbiAgICBib3hTaGFkb3c6XG4gICAgICAnMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjEyKScsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIG9wYWNpdHk6IDAsXG4gICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICB9LFxuICAnJiAudG9vbGJhcldpdGhOb0RvbmUnOiB7XG4gICAgbWluV2lkdGg6ICcyNjVweCcsXG4gIH0sXG4gICcmIC50b29sYmFyVG9wJzoge1xuICAgIHRvcDogJy00NXB4JyxcbiAgfSxcbiAgJyYgLnRvb2xiYXJSaWdodCc6IHtcbiAgICByaWdodDogMCxcbiAgfSxcbiAgJyYgLmZ1bGxXaWR0aCc6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICB9LFxuICAnJiAuaGlkZGVuJzoge1xuICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxuICB9LFxuICAnJiAuYXV0b1dpZHRoJzoge1xuICAgIHdpZHRoOiAnYXV0bycsXG4gIH0sXG4gICcmIC5mb2N1c2VkJzoge1xuICAgIG9wYWNpdHk6IDEsXG4gICAgcG9pbnRlckV2ZW50czogJ2F1dG8nLFxuICB9LFxuICAnJiAuaWNvblJvb3QnOiB7XG4gICAgd2lkdGg6ICcyOHB4JyxcbiAgICBoZWlnaHQ6ICcyOHB4JyxcbiAgICBwYWRkaW5nOiAnNHB4JyxcbiAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbiAgfSxcbiAgJyYgLmxhYmVsJzoge1xuICAgIGNvbG9yOiAndmFyKC0tZWRpdGFibGUtaHRtbC10b29sYmFyLWNoZWNrLCAjMDBiYjAwKScsXG4gIH0sXG4gICcmIC5zaGFyZWQnOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICB9LFxufSkpO1xuXG5leHBvcnQgZGVmYXVsdCBTdHlsZWRNZW51QmFyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxXQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxvQkFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsS0FBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsT0FBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVUsbUJBQUEsR0FBQVIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFXLG1CQUFBLEdBQUFULHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBWSxpQkFBQSxHQUFBVixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWEsVUFBQSxHQUFBWCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWMsTUFBQSxHQUFBWixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWUsS0FBQSxHQUFBYixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWdCLEtBQUEsR0FBQWQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFpQixTQUFBLEdBQUFmLHNCQUFBLENBQUFG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
694
+ //# sourceMappingURL=MenuBar.js.map