@editora/core 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/A11yCheckerPlugin.native-CZKpi3uF.mjs +475 -0
- package/dist/A11yCheckerPlugin.native-CZKpi3uF.mjs.map +1 -0
- package/dist/AnchorPlugin.native-7es9PVZ9.mjs +340 -0
- package/dist/AnchorPlugin.native-7es9PVZ9.mjs.map +1 -0
- package/dist/BackgroundColorPlugin.native-Dip5uqTg.mjs +449 -0
- package/dist/BackgroundColorPlugin.native-Dip5uqTg.mjs.map +1 -0
- package/dist/BlockquotePlugin.native-JFmOLsxN.mjs +48 -0
- package/dist/BlockquotePlugin.native-JFmOLsxN.mjs.map +1 -0
- package/dist/BoldPlugin.native-BAzzoqU5.mjs +45 -0
- package/dist/BoldPlugin.native-BAzzoqU5.mjs.map +1 -0
- package/dist/CapitalizationPlugin.native-DOMsh5R7.mjs +79 -0
- package/dist/CapitalizationPlugin.native-DOMsh5R7.mjs.map +1 -0
- package/dist/ChecklistPlugin.native-Dccs3nLe.mjs +153 -0
- package/dist/ChecklistPlugin.native-Dccs3nLe.mjs.map +1 -0
- package/dist/ClearFormattingPlugin.native-BZPDHswo.mjs +27 -0
- package/dist/ClearFormattingPlugin.native-BZPDHswo.mjs.map +1 -0
- package/dist/CodePlugin.native-DD9xFIid.mjs +1679 -0
- package/dist/CodePlugin.native-DD9xFIid.mjs.map +1 -0
- package/dist/CodeSamplePlugin.native-DMbEdO9j.mjs +326 -0
- package/dist/CodeSamplePlugin.native-DMbEdO9j.mjs.map +1 -0
- package/dist/CommentsPlugin.native-2zQV8Ia4.mjs +473 -0
- package/dist/CommentsPlugin.native-2zQV8Ia4.mjs.map +1 -0
- package/dist/DirectionPlugin.native-Be7wCzkI.mjs +59 -0
- package/dist/DirectionPlugin.native-Be7wCzkI.mjs.map +1 -0
- package/dist/DocumentManagerPlugin.native-BvZL5CSG.mjs +116 -0
- package/dist/DocumentManagerPlugin.native-BvZL5CSG.mjs.map +1 -0
- package/dist/EmbedIframePlugin.native-ifr9KLdN.mjs +461 -0
- package/dist/EmbedIframePlugin.native-ifr9KLdN.mjs.map +1 -0
- package/dist/EmojisPlugin.native-D6mJSnSR.mjs +1033 -0
- package/dist/EmojisPlugin.native-D6mJSnSR.mjs.map +1 -0
- package/dist/FontFamilyPlugin.native-BzS_9qbM.mjs +106 -0
- package/dist/FontFamilyPlugin.native-BzS_9qbM.mjs.map +1 -0
- package/dist/FontSizePlugin.native-DkLMLPue.mjs +186 -0
- package/dist/FontSizePlugin.native-DkLMLPue.mjs.map +1 -0
- package/dist/FootnotePlugin.native-BciVc9W6.mjs +128 -0
- package/dist/FootnotePlugin.native-BciVc9W6.mjs.map +1 -0
- package/dist/FullscreenPlugin.native-ChXyxeNw.mjs +77 -0
- package/dist/FullscreenPlugin.native-ChXyxeNw.mjs.map +1 -0
- package/dist/HeadingPlugin.native-DrLYwQnQ.mjs +64 -0
- package/dist/HeadingPlugin.native-DrLYwQnQ.mjs.map +1 -0
- package/dist/HistoryPlugin.native-DoDRifCf.mjs +89 -0
- package/dist/HistoryPlugin.native-DoDRifCf.mjs.map +1 -0
- package/dist/IndentPlugin.native-CbFugPoi.mjs +133 -0
- package/dist/IndentPlugin.native-CbFugPoi.mjs.map +1 -0
- package/dist/ItalicPlugin.native-CQjjDyUL.mjs +43 -0
- package/dist/ItalicPlugin.native-CQjjDyUL.mjs.map +1 -0
- package/dist/LineHeightPlugin.native-CWQT2FIa.mjs +73 -0
- package/dist/LineHeightPlugin.native-CWQT2FIa.mjs.map +1 -0
- package/dist/LinkPlugin.native-BdAOV-iu.mjs +206 -0
- package/dist/LinkPlugin.native-BdAOV-iu.mjs.map +1 -0
- package/dist/ListPlugin.native-CLFU5AUQ.mjs +59 -0
- package/dist/ListPlugin.native-CLFU5AUQ.mjs.map +1 -0
- package/dist/MathPlugin.native-DE_ii-LA.mjs +182 -0
- package/dist/MathPlugin.native-DE_ii-LA.mjs.map +1 -0
- package/dist/MediaManagerPlugin.native-DaYFDzNM.mjs +533 -0
- package/dist/MediaManagerPlugin.native-DaYFDzNM.mjs.map +1 -0
- package/dist/MergeTagPlugin.native-CrxyThyn.mjs +178 -0
- package/dist/MergeTagPlugin.native-CrxyThyn.mjs.map +1 -0
- package/dist/PageBreakPlugin.native-DDjcDyRW.mjs +172 -0
- package/dist/PageBreakPlugin.native-DDjcDyRW.mjs.map +1 -0
- package/dist/PreviewPlugin.native-DBvfpmIv.mjs +322 -0
- package/dist/PreviewPlugin.native-DBvfpmIv.mjs.map +1 -0
- package/dist/PrintPlugin.native-BUpm52VJ.mjs +311 -0
- package/dist/PrintPlugin.native-BUpm52VJ.mjs.map +1 -0
- package/dist/SpecialCharactersPlugin.native-x7a2SWXc.mjs +731 -0
- package/dist/SpecialCharactersPlugin.native-x7a2SWXc.mjs.map +1 -0
- package/dist/SpellCheckPlugin.native-B7yTh0iE.mjs +465 -0
- package/dist/SpellCheckPlugin.native-B7yTh0iE.mjs.map +1 -0
- package/dist/StrikethroughPlugin.native-ChaZLaXw.mjs +43 -0
- package/dist/StrikethroughPlugin.native-ChaZLaXw.mjs.map +1 -0
- package/dist/TablePlugin.native-EEWXn1-s.mjs +491 -0
- package/dist/TablePlugin.native-EEWXn1-s.mjs.map +1 -0
- package/dist/TemplatePlugin.native-BlSn1c9h.mjs +564 -0
- package/dist/TemplatePlugin.native-BlSn1c9h.mjs.map +1 -0
- package/dist/TextAlignmentPlugin.native-CQIs1m7R.mjs +97 -0
- package/dist/TextAlignmentPlugin.native-CQIs1m7R.mjs.map +1 -0
- package/dist/TextColorPlugin.native-D6SmTglm.mjs +432 -0
- package/dist/TextColorPlugin.native-D6SmTglm.mjs.map +1 -0
- package/dist/UnderlinePlugin.native-QpIcK4L2.mjs +35 -0
- package/dist/UnderlinePlugin.native-QpIcK4L2.mjs.map +1 -0
- package/dist/core.css +1 -0
- package/dist/documentManager-irzj9n3V.mjs +37627 -0
- package/dist/documentManager-irzj9n3V.mjs.map +1 -0
- package/dist/editorContainerHelpers-C7kdWnS0.mjs +27 -0
- package/dist/editorContainerHelpers-C7kdWnS0.mjs.map +1 -0
- package/dist/editora.min.js +519 -4
- package/dist/editora.min.js.map +1 -0
- package/dist/editora.umd.js +519 -4
- package/dist/editora.umd.js.map +1 -0
- package/dist/index-BF5RBhL9.js +4 -0
- package/dist/index-BF5RBhL9.js.map +1 -0
- package/dist/index-BPsf460l.mjs +1243 -0
- package/dist/index-BPsf460l.mjs.map +1 -0
- package/dist/index.cjs.js +517 -4
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.es-CuicffkQ.mjs +6665 -0
- package/dist/index.es-CuicffkQ.mjs.map +1 -0
- package/dist/index.esm.js +1403 -122
- package/dist/index.esm.js.map +1 -0
- package/dist/plugin-loader.js +55 -0
- package/dist/plugin-loader.js.map +1 -0
- package/dist/purify.es-CKpwg8Tk.mjs +471 -0
- package/dist/purify.es-CKpwg8Tk.mjs.map +1 -0
- package/dist/webcomponent-core.js +1243 -0
- package/dist/webcomponent-core.js.map +1 -0
- package/dist/webcomponent-core.min.css +1 -0
- package/dist/webcomponent-core.min.js +597 -0
- package/dist/webcomponent-core.min.js.map +1 -0
- package/dist/webcomponent.cjs.js +2 -0
- package/dist/webcomponent.cjs.js.map +1 -0
- package/dist/webcomponent.esm.js +6 -0
- package/dist/webcomponent.esm.js.map +1 -0
- package/dist/webcomponent.js +1286 -0
- package/dist/webcomponent.js.map +1 -0
- package/dist/webcomponent.min.css +1 -0
- package/dist/webcomponent.min.js +4076 -0
- package/dist/webcomponent.min.js.map +1 -0
- package/package.json +64 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrintPlugin.native-BUpm52VJ.mjs","sources":["../../plugins/print/src/PrintPlugin.native.ts"],"sourcesContent":["import { Plugin } from '@editora/core';\n\n/**\n * Print Plugin - Native Implementation\n * \n * Features:\n * - Print-safe DOM cloning (removes editor UI)\n * - Theme normalization (light theme for printing)\n * - CSS integration with page breaks, footnotes, code blocks\n * - iOS Safari print iframe support\n * - Comprehensive print styles for all elements\n */\n\nconst getPrintStyles = (): string => {\n return `\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n html, body {\n background: white;\n color: black;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n line-height: 1.5;\n }\n\n .rte-print {\n background: white;\n color: black;\n }\n\n /* Page break handling */\n .rte-page-break {\n page-break-after: always;\n display: block;\n height: 0;\n margin: 0;\n border: none;\n background: none;\n }\n\n .rte-page-break::before {\n display: none;\n }\n\n /* Code block formatting */\n .rte-code-block,\n pre {\n background: #f5f5f5;\n border: 1px solid #ddd;\n border-radius: 4px;\n padding: 12px;\n margin: 12px 0;\n overflow-x: auto;\n page-break-inside: avoid;\n }\n\n .rte-code-block code,\n pre code {\n font-family: 'Courier New', Courier, monospace;\n font-size: 12px;\n line-height: 1.4;\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n /* Footnotes */\n .rte-footnotes {\n border-top: 1px solid #ccc;\n margin-top: 40px;\n padding-top: 12px;\n page-break-inside: avoid;\n }\n\n .rte-footnotes ol {\n margin-left: 20px;\n }\n\n .rte-footnotes li {\n margin: 8px 0;\n font-size: 0.9em;\n }\n\n .rte-footnote-ref {\n vertical-align: super;\n font-size: 0.8em;\n }\n\n .rte-footnote-backref {\n margin-left: 4px;\n text-decoration: none;\n color: #666;\n }\n\n /* Anchors - preserve IDs but hide visual markers */\n .rte-anchor {\n display: none;\n }\n\n /* Lists and tables */\n ul, ol {\n margin: 12px 0;\n padding-left: 40px;\n }\n\n li {\n margin: 4px 0;\n }\n\n table {\n border-collapse: collapse;\n width: 100%;\n margin: 12px 0;\n page-break-inside: avoid;\n }\n\n th, td {\n border: 1px solid #ddd;\n padding: 8px;\n text-align: left;\n }\n\n th {\n background: #f5f5f5;\n font-weight: bold;\n }\n\n /* Heading hierarchy */\n h1 { \n font-size: 2em; \n margin: 20px 0 12px;\n page-break-after: avoid;\n }\n \n h2 { \n font-size: 1.5em; \n margin: 16px 0 10px;\n page-break-after: avoid;\n }\n \n h3 { \n font-size: 1.25em; \n margin: 14px 0 8px;\n page-break-after: avoid;\n }\n \n h4 { \n font-size: 1.1em; \n margin: 12px 0 6px;\n page-break-after: avoid;\n }\n \n h5 { \n font-size: 1em; \n margin: 12px 0 6px;\n page-break-after: avoid;\n }\n \n h6 { \n font-size: 0.9em; \n margin: 12px 0 6px;\n page-break-after: avoid;\n }\n\n p {\n margin: 8px 0;\n }\n\n /* Emphasis and strong */\n strong, b {\n font-weight: bold;\n }\n\n em, i {\n font-style: italic;\n }\n\n u {\n text-decoration: underline;\n }\n\n /* Block elements */\n blockquote {\n border-left: 4px solid #ddd;\n margin: 12px 0;\n padding-left: 16px;\n color: #666;\n }\n\n hr {\n border: none;\n border-top: 1px solid #ddd;\n margin: 16px 0;\n page-break-after: avoid;\n }\n\n /* Images */\n img {\n max-width: 100%;\n height: auto;\n page-break-inside: avoid;\n }\n\n /* Links */\n a {\n color: #0066cc;\n text-decoration: underline;\n }\n\n /* Merge tags */\n .rte-merge-tag {\n background-color: #e3f2fd;\n border: 1px solid #bbdefb;\n border-radius: 3px;\n padding: 2px 6px;\n margin: 0 2px;\n display: inline-block;\n white-space: nowrap;\n font-weight: 500;\n color: #1976d2;\n font-size: 0.9em;\n }\n\n /* Hide selection */\n ::selection {\n background: transparent;\n }\n\n /* Print-specific rules */\n @media print {\n body {\n margin: 0;\n padding: 0;\n }\n\n .rte-page-break {\n page-break-after: always;\n }\n\n h1, h2, h3, h4, h5, h6 {\n page-break-after: avoid;\n page-break-inside: avoid;\n }\n\n table, figure, img, pre {\n page-break-inside: avoid;\n }\n\n ul, ol, blockquote {\n page-break-inside: avoid;\n }\n }\n `;\n};\n\nconst printDocument = () => {\n if (typeof window === 'undefined') return false;\n\n // Find the active editor based on current selection or focus\n const findActiveEditor = (): HTMLElement | null => {\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n let node: Node | null = selection.getRangeAt(0).startContainer;\n while (node && node !== document.body) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as HTMLElement;\n if (element.getAttribute('contenteditable') === 'true') {\n return element;\n }\n }\n node = node.parentNode;\n }\n }\n \n const activeElement = document.activeElement;\n if (activeElement) {\n if (activeElement.getAttribute('contenteditable') === 'true') {\n return activeElement as HTMLElement;\n }\n const editor = activeElement.closest('[contenteditable=\"true\"]');\n if (editor) return editor as HTMLElement;\n }\n \n return document.querySelector('[contenteditable=\"true\"]');\n };\n\n const contentElement = findActiveEditor();\n if (!contentElement) {\n console.warn('Editor content not found');\n return false;\n }\n\n // Clone only the content\n const contentClone = contentElement.cloneNode(true) as HTMLElement;\n\n // Create print document structure\n const article = document.createElement('article');\n article.className = 'rte-document rte-print';\n article.appendChild(contentClone);\n\n // Build complete HTML for print\n const printHTML = `\n <!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Print Document</title>\n <style>${getPrintStyles()}</style>\n </head>\n <body>\n ${article.outerHTML}\n </body>\n </html>\n `;\n\n // Create an iframe for printing\n const printFrame = document.createElement('iframe');\n printFrame.style.position = 'absolute';\n printFrame.style.left = '-9999px';\n printFrame.style.top = '-9999px';\n printFrame.style.width = '0';\n printFrame.style.height = '0';\n document.body.appendChild(printFrame);\n\n // Write content to iframe\n const frameDoc = printFrame.contentDocument || printFrame.contentWindow?.document;\n if (!frameDoc) {\n console.error('Could not access print frame document');\n document.body.removeChild(printFrame);\n return false;\n }\n\n frameDoc.open();\n frameDoc.write(printHTML);\n frameDoc.close();\n\n // Wait for content to load, then print\n setTimeout(() => {\n if (printFrame.contentWindow) {\n printFrame.contentWindow.print();\n \n // Clean up after print\n setTimeout(() => {\n document.body.removeChild(printFrame);\n }, 100);\n }\n }, 250);\n\n return true;\n};\n\nexport const PrintPlugin = (): Plugin => ({\n name: \"print\",\n\n toolbar: [\n {\n label: \"Print\",\n command: \"print\",\n icon: '<svg width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <path d=\"M7 18H6.2C5.0799 18 4.51984 18 4.09202 17.782C3.71569 17.5903 3.40973 17.2843 3.21799 16.908C3 16.4802 3 15.9201 3 14.8V10.2C3 9.0799 3 8.51984 3.21799 8.09202C3.40973 7.71569 3.71569 7.40973 4.09202 7.21799C4.51984 7 5.0799 7 6.2 7H7M17 18H17.8C18.9201 18 19.4802 18 19.908 17.782C20.2843 17.5903 20.5903 17.2843 20.782 16.908C21 16.4802 21 15.9201 21 14.8V10.2C21 9.07989 21 8.51984 20.782 8.09202C20.5903 7.71569 20.2843 7.40973 19.908 7.21799C19.4802 7 18.9201 7 17.8 7H17M7 11H7.01M17 7V5.4V4.6C17 4.03995 17 3.75992 16.891 3.54601C16.7951 3.35785 16.6422 3.20487 16.454 3.10899C16.2401 3 15.9601 3 15.4 3H8.6C8.03995 3 7.75992 3 7.54601 3.10899C7.35785 3.20487 7.20487 3.35785 7.10899 3.54601C7 3.75992 7 4.03995 7 4.6V5.4V7M17 7H7M8.6 21H15.4C15.9601 21 16.2401 21 16.454 20.891C16.6422 20.7951 16.7951 20.6422 16.891 20.454C17 20.2401 17 19.9601 17 19.4V16.6C17 16.0399 17 15.7599 16.891 15.546C16.7951 15.3578 16.6422 15.2049 16.454 15.109C16.2401 15 15.9601 15 15.4 15H8.6C8.03995 15 7.75992 15 7.54601 15.109C7.35785 15.2049 7.20487 15.3578 7.10899 15.546C7 15.7599 7 16.0399 7 16.6V19.4C7 19.9601 7 20.2401 7.10899 20.454C7.20487 20.6422 7.35785 20.7951 7.54601 20.891C7.75992 21 8.03995 21 8.6 21Z\" stroke=\"#000000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path> </g></svg>',\n shortcut: \"Mod-p\",\n },\n ],\n\n commands: {\n print: printDocument,\n },\n\n keymap: {\n \"Mod-p\": () => {\n printDocument();\n return true;\n },\n },\n});\n"],"names":["getPrintStyles","printDocument","_a","contentElement","selection","node","element","activeElement","editor","contentClone","article","printHTML","printFrame","frameDoc","PrintPlugin"],"mappings":"AAaA,MAAMA,IAAiB,MACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAmPHC,IAAgB,MAAM;AApP5B,MAAAC;AAqPE,MAAI,OAAO,UAAW,YAAa,QAAO;AA8B1C,QAAMC,KA3BmB,MAA0B;AACjD,UAAMC,IAAY,OAAO,aAAA;AACzB,QAAIA,KAAaA,EAAU,aAAa,GAAG;AACzC,UAAIC,IAAoBD,EAAU,WAAW,CAAC,EAAE;AAChD,aAAOC,KAAQA,MAAS,SAAS,QAAM;AACrC,YAAIA,EAAK,aAAa,KAAK,cAAc;AACvC,gBAAMC,IAAUD;AAChB,cAAIC,EAAQ,aAAa,iBAAiB,MAAM;AAC9C,mBAAOA;AAAA,QAEX;AACA,QAAAD,IAAOA,EAAK;AAAA,MACd;AAAA,IACF;AAEA,UAAME,IAAgB,SAAS;AAC/B,QAAIA,GAAe;AACjB,UAAIA,EAAc,aAAa,iBAAiB,MAAM;AACpD,eAAOA;AAET,YAAMC,IAASD,EAAc,QAAQ,0BAA0B;AAC/D,UAAIC,EAAQ,QAAOA;AAAA,IACrB;AAEA,WAAO,SAAS,cAAc,0BAA0B;AAAA,EAC1D,GAEuB;AACvB,MAAI,CAACL;AACH,mBAAQ,KAAK,0BAA0B,GAChC;AAIT,QAAMM,IAAeN,EAAe,UAAU,EAAI,GAG5CO,IAAU,SAAS,cAAc,SAAS;AAChD,EAAAA,EAAQ,YAAY,0BACpBA,EAAQ,YAAYD,CAAY;AAGhC,QAAME,IAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAOHX,GAAgB;AAAA;AAAA;AAAA,UAGvBU,EAAQ,SAAS;AAAA;AAAA;AAAA,KAMnBE,IAAa,SAAS,cAAc,QAAQ;AAClD,EAAAA,EAAW,MAAM,WAAW,YAC5BA,EAAW,MAAM,OAAO,WACxBA,EAAW,MAAM,MAAM,WACvBA,EAAW,MAAM,QAAQ,KACzBA,EAAW,MAAM,SAAS,KAC1B,SAAS,KAAK,YAAYA,CAAU;AAGpC,QAAMC,IAAWD,EAAW,qBAAmBV,IAAAU,EAAW,kBAAX,gBAAAV,EAA0B;AACzE,SAAKW,KAMLA,EAAS,KAAA,GACTA,EAAS,MAAMF,CAAS,GACxBE,EAAS,MAAA,GAGT,WAAW,MAAM;AACf,IAAID,EAAW,kBACbA,EAAW,cAAc,MAAA,GAGzB,WAAW,MAAM;AACf,eAAS,KAAK,YAAYA,CAAU;AAAA,IACtC,GAAG,GAAG;AAAA,EAEV,GAAG,GAAG,GAEC,OArBL,QAAQ,MAAM,uCAAuC,GACrD,SAAS,KAAK,YAAYA,CAAU,GAC7B;AAoBX,GAEaE,IAAc,OAAe;AAAA,EACxC,MAAM;AAAA,EAEN,SAAS;AAAA,IACP;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAGF,UAAU;AAAA,IACR,OAAOb;AAAA,EAAA;AAAA,EAGT,QAAQ;AAAA,IACN,SAAS,OACPA,EAAA,GACO;AAAA,EACT;AAEJ;"}
|