@acorex/components 21.0.1-next.47 → 21.0.1-next.49

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 (186) hide show
  1. package/fesm2022/acorex-components-accordion.mjs +4 -4
  2. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  3. package/fesm2022/acorex-components-action-sheet.mjs +2 -2
  4. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  5. package/fesm2022/acorex-components-alert.mjs +2 -2
  6. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  7. package/fesm2022/acorex-components-audio-wave.mjs +2 -2
  8. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  9. package/fesm2022/acorex-components-avatar.mjs +2 -2
  10. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  11. package/fesm2022/acorex-components-badge.mjs +2 -2
  12. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  13. package/fesm2022/acorex-components-bottom-navigation.mjs +2 -2
  14. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  15. package/fesm2022/acorex-components-breadcrumbs.mjs +2 -2
  16. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  17. package/fesm2022/acorex-components-button-group.mjs +2 -2
  18. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  19. package/fesm2022/acorex-components-button.mjs +4 -4
  20. package/fesm2022/acorex-components-button.mjs.map +1 -1
  21. package/fesm2022/acorex-components-calendar.mjs +4 -4
  22. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  23. package/fesm2022/acorex-components-check-box.mjs +2 -2
  24. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  25. package/fesm2022/acorex-components-chips.mjs +2 -2
  26. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  27. package/fesm2022/acorex-components-circular-progress.mjs +2 -2
  28. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  29. package/fesm2022/acorex-components-code-editor.mjs +2 -2
  30. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  31. package/fesm2022/acorex-components-color-box.mjs +2 -2
  32. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  33. package/fesm2022/acorex-components-color-palette.mjs +3 -3
  34. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  35. package/fesm2022/acorex-components-command.mjs +7 -5
  36. package/fesm2022/acorex-components-command.mjs.map +1 -1
  37. package/fesm2022/acorex-components-comment.mjs +76 -73
  38. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  39. package/fesm2022/acorex-components-conversation2.mjs +6 -6
  40. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  41. package/fesm2022/acorex-components-data-pager.mjs +2 -2
  42. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  43. package/fesm2022/acorex-components-data-table.mjs +37 -17
  44. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  45. package/fesm2022/acorex-components-datetime-box.mjs +2 -2
  46. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  47. package/fesm2022/acorex-components-datetime-input.mjs +2 -2
  48. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  49. package/fesm2022/acorex-components-datetime-picker.mjs +2 -2
  50. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  51. package/fesm2022/acorex-components-decorators.mjs +8 -8
  52. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  53. package/fesm2022/acorex-components-dialog.mjs +2 -2
  54. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  55. package/fesm2022/acorex-components-drawer.mjs +4 -4
  56. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  57. package/fesm2022/acorex-components-dropdown-button.mjs +2 -2
  58. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  59. package/fesm2022/acorex-components-dropdown.mjs +2 -2
  60. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  61. package/fesm2022/acorex-components-editor.mjs +2 -2
  62. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  63. package/fesm2022/acorex-components-flow-chart.mjs +1 -1
  64. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  65. package/fesm2022/acorex-components-form.mjs +4 -4
  66. package/fesm2022/acorex-components-form.mjs.map +1 -1
  67. package/fesm2022/acorex-components-grid-layout-builder.mjs +33 -11
  68. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  69. package/fesm2022/acorex-components-image-editor.mjs +14 -14
  70. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  71. package/fesm2022/acorex-components-image.mjs +2 -2
  72. package/fesm2022/acorex-components-image.mjs.map +1 -1
  73. package/fesm2022/acorex-components-json-viewer.mjs +2 -2
  74. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  75. package/fesm2022/acorex-components-kanban.mjs +2 -2
  76. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  77. package/fesm2022/acorex-components-kbd.mjs +4 -4
  78. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  79. package/fesm2022/acorex-components-label.mjs +2 -2
  80. package/fesm2022/acorex-components-label.mjs.map +1 -1
  81. package/fesm2022/acorex-components-list.mjs +2 -2
  82. package/fesm2022/acorex-components-list.mjs.map +1 -1
  83. package/fesm2022/acorex-components-loading-dialog.mjs +2 -2
  84. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  85. package/fesm2022/acorex-components-loading.mjs +4 -4
  86. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  87. package/fesm2022/acorex-components-map.mjs +2 -2
  88. package/fesm2022/acorex-components-map.mjs.map +1 -1
  89. package/fesm2022/acorex-components-media-viewer.mjs +10 -10
  90. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  91. package/fesm2022/acorex-components-menu.mjs +2 -2
  92. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  93. package/fesm2022/{acorex-components-modal-acorex-components-modal-vcOdgXSm.mjs → acorex-components-modal-acorex-components-modal-B03hJbP8.mjs} +4 -4
  94. package/fesm2022/{acorex-components-modal-acorex-components-modal-vcOdgXSm.mjs.map → acorex-components-modal-acorex-components-modal-B03hJbP8.mjs.map} +1 -1
  95. package/fesm2022/{acorex-components-modal-modal-content.component-BWi4rcCV.mjs → acorex-components-modal-modal-content.component-DrHm0mZ4.mjs} +4 -4
  96. package/fesm2022/{acorex-components-modal-modal-content.component-BWi4rcCV.mjs.map → acorex-components-modal-modal-content.component-DrHm0mZ4.mjs.map} +1 -1
  97. package/fesm2022/acorex-components-modal.mjs +1 -1
  98. package/fesm2022/acorex-components-navbar.mjs +2 -2
  99. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  100. package/fesm2022/acorex-components-notification.mjs +2 -2
  101. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  102. package/fesm2022/acorex-components-number-box.mjs +2 -2
  103. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  104. package/fesm2022/acorex-components-otp.mjs +2 -2
  105. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  106. package/fesm2022/acorex-components-paint.mjs +4 -4
  107. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  108. package/fesm2022/acorex-components-password-box.mjs +2 -2
  109. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  110. package/fesm2022/acorex-components-pdf-reader.mjs +2 -2
  111. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  112. package/fesm2022/acorex-components-phone-box.mjs +2 -2
  113. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  114. package/fesm2022/acorex-components-picker.mjs +10 -10
  115. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  116. package/fesm2022/acorex-components-popup.mjs +2 -2
  117. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  118. package/fesm2022/acorex-components-progress-bar.mjs +2 -2
  119. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  120. package/fesm2022/acorex-components-qrcode.mjs +2 -2
  121. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  122. package/fesm2022/acorex-components-query-builder.mjs +2 -2
  123. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  124. package/fesm2022/acorex-components-radio.mjs +2 -2
  125. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  126. package/fesm2022/acorex-components-rail-navigation.mjs +2 -2
  127. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  128. package/fesm2022/acorex-components-range-slider.mjs +2 -2
  129. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  130. package/fesm2022/acorex-components-rate-picker.mjs +2 -2
  131. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  132. package/fesm2022/acorex-components-rest-api-generator.mjs +4 -4
  133. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  134. package/fesm2022/acorex-components-result.mjs +2 -2
  135. package/fesm2022/acorex-components-result.mjs.map +1 -1
  136. package/fesm2022/acorex-components-routing-progress.mjs +2 -2
  137. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  138. package/fesm2022/acorex-components-scheduler.mjs +18 -18
  139. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  140. package/fesm2022/acorex-components-select-box.mjs +2 -2
  141. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  142. package/fesm2022/acorex-components-selection-list-2.mjs +2 -2
  143. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  144. package/fesm2022/acorex-components-selection-list.mjs +2 -2
  145. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  146. package/fesm2022/acorex-components-side-menu.mjs +2 -2
  147. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  148. package/fesm2022/acorex-components-skeleton.mjs +2 -2
  149. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  150. package/fesm2022/acorex-components-sliding-item.mjs +2 -2
  151. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  152. package/fesm2022/acorex-components-step-wizard.mjs +2 -2
  153. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  154. package/fesm2022/acorex-components-switch.mjs +2 -2
  155. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  156. package/fesm2022/acorex-components-tabs.mjs +2 -2
  157. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  158. package/fesm2022/acorex-components-tag-box.mjs +2 -2
  159. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  160. package/fesm2022/acorex-components-tag.mjs +2 -2
  161. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  162. package/fesm2022/acorex-components-text-area.mjs +2 -2
  163. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  164. package/fesm2022/acorex-components-text-box.mjs +6 -5
  165. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  166. package/fesm2022/acorex-components-time-duration.mjs +12 -2
  167. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  168. package/fesm2022/acorex-components-time-line.mjs +4 -4
  169. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  170. package/fesm2022/acorex-components-toast.mjs +2 -2
  171. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  172. package/fesm2022/acorex-components-toolbar.mjs +2 -2
  173. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  174. package/fesm2022/acorex-components-tooltip.mjs +2 -2
  175. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  176. package/fesm2022/acorex-components-uploader.mjs +6 -6
  177. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  178. package/fesm2022/acorex-components-wysiwyg.mjs +6 -6
  179. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  180. package/package.json +4 -4
  181. package/types/acorex-components-command.d.ts +26 -13
  182. package/types/acorex-components-comment.d.ts +23 -22
  183. package/types/acorex-components-data-table.d.ts +13 -1
  184. package/types/acorex-components-grid-layout-builder.d.ts +15 -0
  185. package/types/acorex-components-text-box.d.ts +3 -2
  186. package/types/acorex-components-time-duration.d.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-code-editor.mjs","sources":["../../../../packages/components/code-editor/src/lib/plugins/default/formatters/prettier.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/css.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/html.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/javascript.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/json.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/markdown.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/sass.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/sql.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/typescript.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/xml.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/github-dark.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/github-light.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/light.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/one-dark.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/config.ts","../../../../packages/components/code-editor/src/lib/plugins/tokens.ts","../../../../packages/components/code-editor/src/lib/plugins/registry.service.ts","../../../../packages/components/code-editor/src/lib/code-editor.component.ts","../../../../packages/components/code-editor/src/lib/code-editor.module.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/index.ts","../../../../packages/components/code-editor/src/lib/plugins/default/index.ts","../../../../packages/components/code-editor/src/index.ts","../../../../packages/components/code-editor/src/acorex-components-code-editor.ts"],"sourcesContent":["import { AXCodeEditorFormatterPlugin } from '../../types';\n\nexport class PrettierFormatterPlugin implements AXCodeEditorFormatterPlugin {\n readonly id = 'prettier';\n readonly name = 'Prettier';\n readonly version = '1.0.0';\n readonly languages = ['javascript', 'js', 'typescript', 'ts', 'json', 'html', 'css', 'markdown'] as const;\n\n async format(text: string, language: string): Promise<string | null> {\n try {\n const prettier = await import('prettier/standalone');\n let parser: string | null = null;\n const plugins: any[] = [];\n\n switch (language) {\n case 'javascript':\n case 'js': {\n const [babel, estree] = await Promise.all([\n import('prettier/plugins/babel'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(babel, estree);\n parser = 'babel';\n break;\n }\n case 'typescript':\n case 'ts': {\n const [typescript, estree] = await Promise.all([\n import('prettier/plugins/typescript'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(typescript, estree);\n parser = 'typescript';\n break;\n }\n case 'json': {\n const [babel, estree] = await Promise.all([\n import('prettier/plugins/babel'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(babel, estree);\n parser = 'json';\n break;\n }\n case 'html': {\n const html = await import('prettier/plugins/html');\n plugins.push(html);\n parser = 'html';\n break;\n }\n case 'css': {\n const postcss = await import('prettier/plugins/postcss');\n plugins.push(postcss);\n parser = 'css';\n break;\n }\n case 'markdown': {\n const markdown = await import('prettier/plugins/markdown');\n plugins.push(markdown);\n parser = 'markdown';\n break;\n }\n default:\n return null;\n }\n\n if (!parser) return null;\n const formatted = await prettier.format(text, {\n parser,\n plugins,\n } as any);\n return formatted;\n } catch {\n return null;\n }\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class CSSLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'css';\n readonly name = 'CSS';\n readonly version = '1.0.0';\n readonly languages = ['css'] as const;\n\n async getExtension(): Promise<Extension> {\n const { css } = await import('@codemirror/lang-css');\n return css();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class HTMLLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'html';\n readonly name = 'HTML';\n readonly version = '1.0.0';\n readonly languages = ['html'] as const;\n\n async getExtension(): Promise<Extension> {\n const { html } = await import('@codemirror/lang-html');\n return html();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class JavaScriptLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'javascript';\n readonly name = 'JavaScript';\n readonly version = '1.0.0';\n readonly languages = ['javascript', 'js'] as const;\n\n async getExtension(): Promise<Extension> {\n const { javascript } = await import('@codemirror/lang-javascript');\n return javascript();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class JSONLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'json';\n readonly name = 'JSON';\n readonly version = '1.0.0';\n readonly languages = ['json'] as const;\n\n async getExtension(): Promise<Extension> {\n const { json } = await import('@codemirror/lang-json');\n return json();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class MarkdownLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'markdown';\n readonly name = 'Markdown';\n readonly version = '1.0.0';\n readonly languages = ['markdown'] as const;\n\n async getExtension(): Promise<Extension> {\n const { markdown } = await import('@codemirror/lang-markdown');\n return markdown();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class SassLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'sass';\n readonly name = 'Sass/SCSS';\n readonly version = '1.0.0';\n readonly languages = ['sass', 'scss'] as const;\n\n async getExtension(): Promise<Extension> {\n const { sass } = await import('@codemirror/lang-sass');\n return sass();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class SQLLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'sql';\n readonly name = 'SQL';\n readonly version = '1.0.0';\n readonly languages = ['sql'] as const;\n\n async getExtension(): Promise<Extension> {\n const { sql } = await import('@codemirror/lang-sql');\n return sql();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class TypeScriptLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'typescript';\n readonly name = 'TypeScript';\n readonly version = '1.0.0';\n readonly languages = ['typescript', 'ts'] as const;\n\n async getExtension(): Promise<Extension> {\n const { javascript } = await import('@codemirror/lang-javascript');\n return javascript({ typescript: true });\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class XMLLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'xml';\n readonly name = 'XML';\n readonly version = '1.0.0';\n readonly languages = ['xml'] as const;\n\n async getExtension(): Promise<Extension> {\n const { xml } = await import('@codemirror/lang-xml');\n return xml();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class GitHubDarkThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'github-dark';\n readonly name = 'GitHub Dark';\n readonly version = '1.0.0';\n readonly dark = true;\n\n async getExtension(): Promise<Extension> {\n const [{ githubDark }, { EditorView }] = await Promise.all([\n import('@uiw/codemirror-theme-github'),\n import('@codemirror/view'),\n ]);\n return [\n githubDark,\n EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n // '.cm-gutters': { backgroundColor: 'transparent !important' },\n },\n { dark: true },\n ),\n ];\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class GitHubLightThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'github-light';\n readonly name = 'GitHub Light';\n readonly version = '1.0.0';\n readonly dark = false;\n\n async getExtension(): Promise<Extension> {\n const [{ githubLight }, { EditorView }] = await Promise.all([\n import('@uiw/codemirror-theme-github'),\n import('@codemirror/view'),\n ]);\n return [\n githubLight,\n EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n // '.cm-gutters': { backgroundColor: 'transparent !important' },\n },\n { dark: false },\n ),\n ];\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class LightThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'light';\n readonly name = 'Light';\n readonly version = '1.0.0';\n readonly dark = false;\n\n async getExtension(): Promise<Extension> {\n const { EditorView } = await import('@codemirror/view');\n return EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n },\n { dark: false },\n );\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class OneDarkThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'one-dark';\n readonly name = 'One Dark';\n readonly version = '1.0.0';\n readonly dark = true;\n\n async getExtension(): Promise<Extension> {\n const { EditorView } = await import('@codemirror/view');\n try {\n const { oneDark } = await import('@codemirror/theme-one-dark');\n return [\n oneDark,\n EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n },\n { dark: true },\n ),\n ];\n } catch {\n return EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n },\n { dark: true },\n );\n }\n }\n}\n","import { AXCodeEditorPluginConfig } from '../types';\nimport { PrettierFormatterPlugin } from './formatters/prettier.plugin';\nimport { CSSLanguagePlugin } from './languages/css.plugin';\nimport { HTMLLanguagePlugin } from './languages/html.plugin';\nimport { JavaScriptLanguagePlugin } from './languages/javascript.plugin';\nimport { JSONLanguagePlugin } from './languages/json.plugin';\nimport { MarkdownLanguagePlugin } from './languages/markdown.plugin';\nimport { SassLanguagePlugin } from './languages/sass.plugin';\nimport { SQLLanguagePlugin } from './languages/sql.plugin';\nimport { TypeScriptLanguagePlugin } from './languages/typescript.plugin';\nimport { XMLLanguagePlugin } from './languages/xml.plugin';\nimport { GitHubDarkThemePlugin } from './themes/github-dark.plugin';\nimport { GitHubLightThemePlugin } from './themes/github-light.plugin';\nimport { LightThemePlugin } from './themes/light.plugin';\nimport { OneDarkThemePlugin } from './themes/one-dark.plugin';\n\n/**\n * Default plugin configuration with all built-in plugins\n */\nexport function provideDefaultCodeEditorPlugins(): AXCodeEditorPluginConfig {\n return {\n languages: [\n new JavaScriptLanguagePlugin(),\n new TypeScriptLanguagePlugin(),\n new JSONLanguagePlugin(),\n new HTMLLanguagePlugin(),\n new CSSLanguagePlugin(),\n new SassLanguagePlugin(),\n new SQLLanguagePlugin(),\n new XMLLanguagePlugin(),\n new MarkdownLanguagePlugin(),\n ],\n themes: [\n new OneDarkThemePlugin(),\n new LightThemePlugin(),\n new GitHubLightThemePlugin(),\n new GitHubDarkThemePlugin(),\n ],\n formatters: [new PrettierFormatterPlugin()],\n extensions: [],\n };\n}\n","import { InjectionToken } from '@angular/core';\nimport { provideDefaultCodeEditorPlugins } from './default/config';\nimport { AXCodeEditorPluginConfig } from './types';\n\n/**\n * Injection token for providing code editor plugin configuration\n */\nexport const AX_CODE_EDITOR_PLUGIN_CONFIG = new InjectionToken<AXCodeEditorPluginConfig>(\n 'AX_CODE_EDITOR_PLUGIN_CONFIG',\n {\n providedIn: 'root',\n factory: () => provideDefaultCodeEditorPlugins(),\n },\n);\n","import { Injectable, inject } from '@angular/core';\nimport type { Extension } from '@codemirror/state';\nimport {\n AXCodeEditorExtensionPlugin,\n AXCodeEditorFormatterPlugin,\n AXCodeEditorLanguagePlugin,\n AXCodeEditorPluginConfig,\n AXCodeEditorThemePlugin,\n} from './types';\nimport { AX_CODE_EDITOR_PLUGIN_CONFIG } from './tokens';\n\n/**\n * Registry service for managing code editor plugins\n */\n@Injectable({ providedIn: 'root' })\nexport class AXCodeEditorPluginRegistry {\n private config: AXCodeEditorPluginConfig | null = inject(AX_CODE_EDITOR_PLUGIN_CONFIG, { optional: true });\n\n private languagePlugins = new Map<string, AXCodeEditorLanguagePlugin>();\n private themePlugins = new Map<string, AXCodeEditorThemePlugin>();\n private formatterPlugins = new Map<string, AXCodeEditorFormatterPlugin>();\n private extensionPlugins = new Map<string, AXCodeEditorExtensionPlugin>();\n\n constructor() {\n this.initializePlugins();\n }\n\n private initializePlugins(): void {\n if (!this.config) return;\n\n // Register language plugins\n this.config.languages?.forEach((plugin) => {\n plugin.languages.forEach((lang) => {\n this.languagePlugins.set(lang, plugin);\n });\n });\n\n // Register theme plugins\n this.config.themes?.forEach((plugin) => {\n this.themePlugins.set(plugin.id, plugin);\n });\n\n // Register formatter plugins\n this.config.formatters?.forEach((plugin) => {\n plugin.languages.forEach((lang) => {\n this.formatterPlugins.set(lang, plugin);\n });\n });\n\n // Register extension plugins\n this.config.extensions?.forEach((plugin) => {\n this.extensionPlugins.set(plugin.id, plugin);\n });\n }\n\n /**\n * Get language extension for the specified language\n */\n async getLanguageExtension(language: string): Promise<Extension> {\n const plugin = this.languagePlugins.get(language);\n if (!plugin) {\n console.warn(`No language plugin found for: ${language}`);\n return [];\n }\n return plugin.getExtension();\n }\n\n /**\n * Get theme extension by theme ID\n */\n async getThemeExtension(themeId: string): Promise<Extension> {\n const plugin = this.themePlugins.get(themeId);\n if (!plugin) {\n console.warn(`No theme plugin found for: ${themeId}`);\n return [];\n }\n return plugin.getExtension();\n }\n\n /**\n * Format text using the appropriate formatter for the language\n */\n async format(text: string, language: string): Promise<string | null> {\n const plugin = this.formatterPlugins.get(language);\n if (!plugin) {\n return null;\n }\n return plugin.format(text, language);\n }\n\n /**\n * Get all registered extension plugins\n */\n async getExtensionPlugins(): Promise<Extension[]> {\n const extensions = await Promise.all(\n Array.from(this.extensionPlugins.values()).map((plugin) => plugin.getExtension()),\n );\n return extensions;\n }\n\n /**\n * Check if a language is supported\n */\n hasLanguage(language: string): boolean {\n return this.languagePlugins.has(language);\n }\n\n /**\n * Check if a theme is available\n */\n hasTheme(themeId: string): boolean {\n return this.themePlugins.has(themeId);\n }\n\n /**\n * Check if a formatter is available for a language\n */\n hasFormatter(language: string): boolean {\n return this.formatterPlugins.has(language);\n }\n\n /**\n * Get all available language identifiers\n */\n getAvailableLanguages(): string[] {\n return Array.from(this.languagePlugins.keys());\n }\n\n /**\n * Get all available theme identifiers\n */\n getAvailableThemes(): string[] {\n return Array.from(this.themePlugins.keys());\n }\n\n /**\n * Register a language plugin at runtime\n */\n registerLanguagePlugin(plugin: AXCodeEditorLanguagePlugin): void {\n plugin.languages.forEach((lang) => {\n this.languagePlugins.set(lang, plugin);\n });\n }\n\n /**\n * Register a theme plugin at runtime\n */\n registerThemePlugin(plugin: AXCodeEditorThemePlugin): void {\n this.themePlugins.set(plugin.id, plugin);\n }\n\n /**\n * Register a formatter plugin at runtime\n */\n registerFormatterPlugin(plugin: AXCodeEditorFormatterPlugin): void {\n plugin.languages.forEach((lang) => {\n this.formatterPlugins.set(lang, plugin);\n });\n }\n\n /**\n * Register an extension plugin at runtime\n */\n registerExtensionPlugin(plugin: AXCodeEditorExtensionPlugin): void {\n this.extensionPlugins.set(plugin.id, plugin);\n }\n}\n","import { AXComponent, AXValuableComponent, MXValueComponent } from '@acorex/cdk/common';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n DestroyRef,\n ElementRef,\n PLATFORM_ID,\n afterNextRender,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AXCodeEditorDefaultLanguage } from './plugins';\nimport { AXCodeEditorPluginRegistry } from './plugins/registry.service';\n\n// Re-export language type for external use\nexport type { AXCodeEditorDefaultLanguage } from './plugins/default/languages';\n\n// Type-only aliases for CodeMirror types (tree-shake friendly)\ntype AXCodeEditorEditorViewLike = import('@codemirror/view').EditorView;\ntype AXCodeEditorKeyBindingLike = import('@codemirror/view').KeyBinding;\nexport type AXCodeEditorExtensionLike = import('@codemirror/state').Extension;\ntype AXCodeEditorCompartmentLike = import('@codemirror/state').Compartment;\nexport type AXCodeEditorCompletionLike = import('@codemirror/autocomplete').Completion;\nexport type AXCodeEditorCompletionSourceLike = import('@codemirror/autocomplete').CompletionSource;\ntype AXCodeEditorCompletionContextLike = import('@codemirror/autocomplete').CompletionContext;\n\ntype AXCodeEditorViewModule = typeof import('@codemirror/view');\ntype AXCodeEditorStateModule = typeof import('@codemirror/state');\ntype AXCodeEditorLanguageModule = typeof import('@codemirror/language');\ntype AXCodeEditorAutocompleteModule = typeof import('@codemirror/autocomplete');\ntype AXCodeEditorCommandsModule = typeof import('@codemirror/commands');\ntype AXCodeEditorSearchModule = typeof import('@codemirror/search');\ntype AXCodeEditorLintModule = typeof import('@codemirror/lint');\n\n@Component({\n selector: 'ax-code-editor',\n host: {\n '(keydown.control.s)': 'onSaveShortcut($event)',\n class: 'ax-code-editor block',\n },\n inputs: ['disabled', 'value', 'state', 'name', 'id'],\n outputs: ['onValueChanged', 'valueChange', 'stateChange', 'readonlyChange', 'disabledChange'],\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n height: 100%;\n\n &.ax-disable {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n > .ax-editor-container {\n height: 100%;\n width: 100%;\n align-items: start;\n --ax-comp-editor-space-start-size: 0;\n --ax-comp-editor-space-end-size: 0;\n --ax-comp-editor-border-width: 1px;\n }\n\n .ax-code-editor-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n\n .cm-editor {\n width: 100%;\n max-width: 100%;\n overflow: auto;\n }\n\n .cm-editor.cm-focused {\n outline: none;\n }\n\n .ax-error-message {\n padding-inline: 0.5rem;\n }\n }\n `,\n ],\n providers: [\n { provide: AXValuableComponent, useExisting: AXCodeEditorComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXCodeEditorComponent),\n multi: true,\n },\n { provide: AXComponent, useExisting: AXCodeEditorComponent },\n ],\n template: `\n <div class=\"ax-editor-container\" [style.min-height]=\"getMinHeight()\">\n <div class=\"ax-code-editor-container\">\n <div\n #host\n class=\"cm-editor\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-readonly]=\"editorReadonly() ? 'true' : 'false'\"\n [attr.data-placeholder]=\"placeholder() ?? null\"\n ></div>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </div>\n <div class=\"ax-error-container\"></div>\n `,\n})\nexport class AXCodeEditorComponent extends MXValueComponent<string> {\n // Inputs (signals)\n // value = input<string>('');\n /** Active language identifier from default plugins. Default: 'javascript'. */\n language = input<AXCodeEditorDefaultLanguage>('javascript');\n /** When true, the editor becomes readonly (non-editable). */\n editorReadonly = input(false, { alias: 'readonly' });\n /** Placeholder text shown when the document is empty. */\n placeholder = input<string>('');\n /** Toggle rendering of line numbers in the gutter. */\n lineNumbers = input<boolean>(true);\n /** Soft-wrap long lines when true. */\n lineWrapping = input<boolean>(false);\n /** Tab size (spaces per indent level). */\n tabSize = input<number>(2);\n /** When true, the Tab key indents instead of moving focus. */\n indentWithTab = input<boolean>(true);\n /** Theme identifier. If null, uses platform theme mode (dark/light). */\n theme = input<string | null>(null);\n /** Additional CodeMirror extensions to apply. Reconfigures at runtime. */\n extensions = input<ReadonlyArray<AXCodeEditorExtensionLike>>([]);\n /** ARIA label for accessibility. */\n ariaLabel = input<string | null>(null);\n /** Focus the editor after first render. */\n focusOnReady = input<boolean>(false);\n /** If true, format the document via Prettier before emitting save. */\n formatOnSave = input<boolean>(false);\n /** Minimum number of rows (lines) to display. Controls the minimum height of the editor. */\n minRow = input<number | null>(null);\n\n /**\n * Custom autocompletion options: either a static array of Completion items\n * or a CodeMirror CompletionSource function.\n */\n customCompletions = input<ReadonlyArray<AXCodeEditorCompletionLike> | AXCodeEditorCompletionSourceLike | null>(null);\n\n // Outputs (signals)\n // valueChange = output<string>();\n /** Emits when the editor is fully initialized and ready. */\n ready = output<void>();\n /** Emits when the user triggers save (Ctrl/Cmd+S). Payload is the current text. */\n save = output<string>();\n\n // View container\n host = viewChild<ElementRef<HTMLDivElement>>('host');\n\n // Runtime state\n private platformId = inject(PLATFORM_ID);\n private destroyRef = inject(DestroyRef);\n private platformService = inject(AXPlatform);\n private pluginRegistry = inject(AXCodeEditorPluginRegistry);\n\n private editorViewSig = signal<AXCodeEditorEditorViewLike | null>(null);\n\n // Compartments to reconfigure editor without recreating it\n private languageCompartment: AXCodeEditorCompartmentLike | null = null;\n private readonlyCompartment: AXCodeEditorCompartmentLike | null = null;\n private themeCompartment: AXCodeEditorCompartmentLike | null = null;\n private placeholderCompartment: AXCodeEditorCompartmentLike | null = null;\n private wrappingCompartment: AXCodeEditorCompartmentLike | null = null;\n private keymapExtrasCompartment: AXCodeEditorCompartmentLike | null = null;\n private tabSizeCompartment: AXCodeEditorCompartmentLike | null = null;\n private lineNumbersCompartment: AXCodeEditorCompartmentLike | null = null;\n\n // Cached CodeMirror modules after initialization\n private cm: {\n view: AXCodeEditorViewModule | null;\n state: AXCodeEditorStateModule | null;\n language: AXCodeEditorLanguageModule | null;\n autocomplete: AXCodeEditorAutocompleteModule | null;\n commands: AXCodeEditorCommandsModule | null;\n search: AXCodeEditorSearchModule | null;\n lint: AXCodeEditorLintModule | null;\n } = { view: null, state: null, language: null, autocomplete: null, commands: null, search: null, lint: null };\n\n private isBrowser = computed(() => isPlatformBrowser(this.platformId));\n\n /** Computed minimum height based on minRow (excluding gutter/line numbers). */\n getMinHeight(): string | null {\n const rows = this.minRow();\n if (!rows || rows <= 0) return null;\n // CodeMirror default line height is typically 1.5em, but we use rem for consistency\n // This calculates height without accounting for gutter since gutter is separate\n return `calc(${rows} * 1.5rem)`;\n }\n\n constructor() {\n super();\n afterNextRender(() => {\n if (!this.isBrowser()) return;\n this.initializeEditor();\n });\n\n // Keep model in sync when external value changes\n effect(() => {\n const view = this.editorViewSig();\n if (!view) return;\n const newDoc = this.value ?? '';\n const current = view.state.doc.toString();\n if (newDoc !== current) {\n view.dispatch({\n changes: { from: 0, to: view.state.doc.length, insert: newDoc },\n });\n }\n });\n\n // React to dynamic configuration changes\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.languageCompartment) return;\n const lang = this.language();\n this.pluginRegistry.getLanguageExtension(lang).then((ext) => {\n if (!view || !this.languageCompartment) return;\n view.dispatch({ effects: this.languageCompartment.reconfigure(ext) });\n });\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.readonlyCompartment) return;\n const editable = !this.editorReadonly();\n import('@codemirror/view').then(({ EditorView }) => {\n if (!view || !this.readonlyCompartment) return;\n view.dispatch({ effects: this.readonlyCompartment.reconfigure(EditorView.editable.of(editable)) });\n });\n });\n\n effect(() => {\n const view = this.editorViewSig();\n // Establish reactive dependency on theme and platform theme\n const customTheme = this.theme();\n const platformTheme = this.platformService.themeMode();\n if (!view || !this.themeCompartment) return;\n this.resolveThemeExtension(customTheme, platformTheme).then((themeExt) => {\n if (!view || !this.themeCompartment) return;\n view.dispatch({ effects: this.themeCompartment.reconfigure(themeExt) });\n });\n });\n\n effect(() => {\n this.placeholder();\n const view = this.editorViewSig();\n if (!view || !this.placeholderCompartment) return;\n import('@codemirror/view').then(({ placeholder }) => {\n if (!view || !this.placeholderCompartment) return;\n view.dispatch({ effects: this.placeholderCompartment.reconfigure(placeholder(this.placeholder() ?? '')) });\n });\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.wrappingCompartment) return;\n const EditorView = this.cm.view?.EditorView;\n if (!EditorView) return;\n const nextExt = this.lineWrapping() ? EditorView.lineWrapping : [];\n this.reconfigure(this.wrappingCompartment, nextExt);\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.tabSizeCompartment) return;\n const EditorState = this.cm.state?.EditorState;\n if (!EditorState) return;\n this.reconfigure(this.tabSizeCompartment, EditorState.tabSize.of(this.tabSize() ?? 2));\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.keymapExtrasCompartment) return;\n const keymap = this.cm.view?.keymap;\n const commands = this.cm.commands;\n if (!keymap || !commands) return;\n this.reconfigure(this.keymapExtrasCompartment, keymap.of(this.indentWithTab() ? [commands.indentWithTab] : []));\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.lineNumbersCompartment) return;\n const lineNumbers = this.cm.view?.lineNumbers;\n if (!lineNumbers) return;\n this.reconfigure(this.lineNumbersCompartment, this.lineNumbers() ? lineNumbers() : []);\n });\n }\n\n private async initializeEditor(): Promise<void> {\n const hostEl = this.host()?.nativeElement;\n if (!hostEl) return;\n\n await this.loadCodeMirrorModules();\n\n this.createCompartments();\n\n const keymaps = this.buildKeymaps();\n\n const viewMod = this.cm.view;\n const stateMod = this.cm.state;\n const languageMod = this.cm.language;\n const autoMod = this.cm.autocomplete;\n const commandsMod = this.cm.commands;\n const searchMod = this.cm.search;\n const lintMod = this.cm.lint;\n if (!viewMod || !stateMod || !languageMod || !autoMod || !commandsMod || !searchMod || !lintMod) return;\n const languageExt = await this.pluginRegistry.getLanguageExtension(this.language());\n const themeExt = await this.resolveThemeExtension(this.theme(), this.platformService.themeMode());\n const placeholderExt = viewMod.placeholder(this.placeholder() ?? '');\n const editableExt = viewMod.EditorView.editable.of(!this.editorReadonly());\n const wrappingExt = this.lineWrapping() ? viewMod.EditorView.lineWrapping : [];\n const tabSizeExt = stateMod.EditorState.tabSize.of(this.tabSize() ?? 2);\n const lineNumbersExt = this.lineNumbers() ? viewMod.lineNumbers() : [];\n\n const autoCompleteExt = autoMod.autocompletion({\n override: this.buildCustomCompletionSources(),\n });\n\n const baseExtensions: ReadonlyArray<AXCodeEditorExtensionLike> = [\n this.lineNumbersCompartment.of(lineNumbersExt),\n viewMod.highlightActiveLine(),\n viewMod.highlightActiveLineGutter(),\n viewMod.drawSelection(),\n viewMod.dropCursor(),\n viewMod.rectangularSelection(),\n viewMod.crosshairCursor(),\n viewMod.highlightSpecialChars(),\n languageMod.syntaxHighlighting(languageMod.defaultHighlightStyle, { fallback: true }),\n languageMod.bracketMatching(),\n languageMod.foldGutter(),\n commandsMod.history(),\n searchMod.highlightSelectionMatches(),\n viewMod.keymap.of(keymaps),\n autoCompleteExt,\n this.languageCompartment.of(languageExt),\n this.readonlyCompartment.of(editableExt),\n this.themeCompartment.of(themeExt),\n this.placeholderCompartment.of(placeholderExt),\n this.wrappingCompartment.of(wrappingExt),\n this.tabSizeCompartment.of(tabSizeExt),\n this.keymapExtrasCompartment.of(viewMod.keymap.of(this.indentWithTab() ? [commandsMod.indentWithTab] : [])),\n ...this.extensions(),\n ];\n\n const updateListener = viewMod.EditorView.updateListener.of((vu) => {\n if (vu.docChanged) {\n const text = vu.state.doc.toString();\n // this.writeValue(text);\n this.value = text;\n }\n });\n\n const state = stateMod.EditorState.create({\n doc: this.value ?? '',\n extensions: [...baseExtensions, updateListener],\n });\n\n const view = new viewMod.EditorView({ state, parent: hostEl });\n\n // Update listener for external changes (selection, viewport, etc.) if needed later\n view.dispatch({ effects: [] });\n\n this.editorViewSig.set(view);\n\n this.destroyRef.onDestroy(() => {\n view.destroy();\n this.editorViewSig.set(null);\n });\n\n if (this.focusOnReady()) {\n view.focus();\n }\n\n this.ready.emit();\n }\n\n private reconfigure(comp: AXCodeEditorCompartmentLike | null, ext: AXCodeEditorExtensionLike): void {\n const view = this.editorViewSig();\n if (!view || !comp) return;\n view.dispatch({ effects: comp.reconfigure(ext) });\n }\n\n /**\n * Handles Ctrl/Cmd+S on the host. If formatOnSave is enabled, attempts\n * to format the document first, then emits the saved text.\n */\n async onSaveShortcut(event: Event): Promise<void> {\n event.preventDefault();\n const view = this.editorViewSig();\n const current = view?.state.doc.toString() ?? this.value ?? '';\n const payload = current;\n if (this.formatOnSave()) {\n await this.format(true);\n }\n this.save.emit(payload);\n }\n\n private async loadCodeMirrorModules(): Promise<void> {\n const [viewMod, stateMod, langMod, autoMod, cmdMod, searchMod, lintMod] = await Promise.all([\n import('@codemirror/view'),\n import('@codemirror/state'),\n import('@codemirror/language'),\n import('@codemirror/autocomplete'),\n import('@codemirror/commands'),\n import('@codemirror/search'),\n import('@codemirror/lint'),\n ]);\n this.cm.view = viewMod;\n this.cm.state = stateMod;\n this.cm.language = langMod;\n this.cm.autocomplete = autoMod;\n this.cm.commands = cmdMod;\n this.cm.search = searchMod;\n this.cm.lint = lintMod;\n }\n\n private createCompartments(): void {\n const stateMod = this.cm.state;\n if (!stateMod) return;\n this.languageCompartment = new stateMod.Compartment();\n this.readonlyCompartment = new stateMod.Compartment();\n this.themeCompartment = new stateMod.Compartment();\n this.placeholderCompartment = new stateMod.Compartment();\n this.wrappingCompartment = new stateMod.Compartment();\n this.tabSizeCompartment = new stateMod.Compartment();\n this.keymapExtrasCompartment = new stateMod.Compartment();\n this.lineNumbersCompartment = new stateMod.Compartment();\n }\n\n private buildKeymaps(): ReadonlyArray<AXCodeEditorKeyBindingLike> {\n const cmdMod = this.cm.commands;\n const searchMod = this.cm.search;\n const autoMod = this.cm.autocomplete;\n const lintMod = this.cm.lint;\n if (!cmdMod || !searchMod || !autoMod || !lintMod) return [];\n return [\n ...cmdMod.defaultKeymap,\n ...cmdMod.historyKeymap,\n ...searchMod.searchKeymap,\n ...autoMod.completionKeymap,\n ...(lintMod.lintKeymap as unknown as readonly AXCodeEditorKeyBindingLike[]),\n ];\n }\n\n private async resolveThemeExtension(\n customTheme: string | null,\n platformTheme: string,\n ): Promise<AXCodeEditorExtensionLike> {\n // If custom theme is specified, use it\n if (customTheme) {\n return this.pluginRegistry.getThemeExtension(customTheme);\n }\n\n // Otherwise, use platform theme (handle 'system' by defaulting to 'github-light')\n const themeId = platformTheme === 'dark' ? 'github-dark' : 'github-light';\n return this.pluginRegistry.getThemeExtension(themeId);\n }\n\n private buildCustomCompletionSources(): ReadonlyArray<AXCodeEditorCompletionSourceLike> | undefined {\n const provided = this.customCompletions();\n if (!provided) return undefined;\n if (typeof provided === 'function') {\n return [provided as AXCodeEditorCompletionSourceLike];\n }\n // Treat array as a static completion list\n const staticSource: AXCodeEditorCompletionSourceLike = (context: AXCodeEditorCompletionContextLike) => {\n const from = context.pos;\n return { from, options: provided as ReadonlyArray<AXCodeEditorCompletionLike> };\n };\n return [staticSource];\n }\n\n // Public API\n /** Programmatically focus the editor. */\n public override focus(): void {\n const view = this.editorViewSig();\n if (view) view.focus();\n }\n\n /** Select all text in the current document. */\n public selectAll(): void {\n const view = this.editorViewSig();\n if (!view) return;\n const length = view.state.doc.length;\n view.dispatch({ selection: { anchor: 0, head: length } });\n }\n\n // Formats the current document using the registered formatter plugin (if available for the active language).\n // Returns the formatted text or null if unchanged/unsupported.\n public async format(affect = true): Promise<string | null> {\n const view = this.editorViewSig();\n if (!view) return null;\n const source = view.state.doc.toString();\n if (!source) return null;\n const formatted = await this.pluginRegistry.format(source, this.language());\n if (!formatted || formatted === source) return null;\n if (affect) {\n view.dispatch({ changes: { from: 0, to: view.state.doc.length, insert: formatted } });\n }\n return formatted;\n }\n\n /** Returns the total number of characters in the current document. */\n public getTotalCharacters(): number {\n const view = this.editorViewSig();\n if (view) return view.state.doc.length ?? 0;\n const text = this.value ?? '';\n return text.length;\n }\n\n /** Returns the total number of lines in the current document. */\n public getTotalLines(): number {\n const view = this.editorViewSig();\n if (view) {\n const doc: any = view.state.doc;\n return typeof doc?.lines === 'number' ? doc.lines : doc.toString().split(/\\r?\\n/).length;\n }\n const text = this.value ?? '';\n return text ? text.split(/\\r?\\n/).length : 1;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXCodeEditorComponent } from './code-editor.component';\n\n@NgModule({\n imports: [CommonModule, AXCodeEditorComponent],\n exports: [AXCodeEditorComponent],\n})\nexport class AXCodeEditorModule {}\n","// Language plugins\nexport * from './javascript.plugin';\nexport * from './typescript.plugin';\nexport * from './json.plugin';\nexport * from './html.plugin';\nexport * from './css.plugin';\nexport * from './sass.plugin';\nexport * from './sql.plugin';\nexport * from './xml.plugin';\nexport * from './markdown.plugin';\n\n// Type union of all supported languages from default plugins\nexport type AXCodeEditorDefaultLanguage =\n | 'javascript'\n | 'js'\n | 'typescript'\n | 'ts'\n | 'json'\n | 'html'\n | 'css'\n | 'scss'\n | 'sass'\n | 'sql'\n | 'xml'\n | 'markdown';\n","// Language plugins\nexport * from './languages';\n\n// Theme plugins\nexport * from './themes/one-dark.plugin';\nexport * from './themes/light.plugin';\nexport * from './themes/github-light.plugin';\nexport * from './themes/github-dark.plugin';\n\n// Formatter plugins\nexport * from './formatters/prettier.plugin';\n","// Component & Module\nexport * from './lib/code-editor.component';\nexport * from './lib/code-editor.module';\n\n// Plugins\nexport * from './lib/plugins';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAEa,uBAAuB,CAAA;AAApC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,UAAU;QACf,IAAA,CAAA,IAAI,GAAG,UAAU;QACjB,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAU;IAsE3G;AApEE,IAAA,MAAM,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAA;AACzC,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,qBAAqB,CAAC;YACpD,IAAI,MAAM,GAAkB,IAAI;YAChC,MAAM,OAAO,GAAU,EAAE;YAEzB,QAAQ,QAAQ;AACd,gBAAA,KAAK,YAAY;gBACjB,KAAK,IAAI,EAAE;oBACT,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBACxC,OAAO,wBAAwB,CAAC;wBAChC,OAAO,yBAAyB,CAAC;AAClC,qBAAA,CAAC;AACF,oBAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;oBAC3B,MAAM,GAAG,OAAO;oBAChB;gBACF;AACA,gBAAA,KAAK,YAAY;gBACjB,KAAK,IAAI,EAAE;oBACT,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBAC7C,OAAO,6BAA6B,CAAC;wBACrC,OAAO,yBAAyB,CAAC;AAClC,qBAAA,CAAC;AACF,oBAAA,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;oBAChC,MAAM,GAAG,YAAY;oBACrB;gBACF;gBACA,KAAK,MAAM,EAAE;oBACX,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBACxC,OAAO,wBAAwB,CAAC;wBAChC,OAAO,yBAAyB,CAAC;AAClC,qBAAA,CAAC;AACF,oBAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;oBAC3B,MAAM,GAAG,MAAM;oBACf;gBACF;gBACA,KAAK,MAAM,EAAE;AACX,oBAAA,MAAM,IAAI,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAClD,oBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClB,MAAM,GAAG,MAAM;oBACf;gBACF;gBACA,KAAK,KAAK,EAAE;AACV,oBAAA,MAAM,OAAO,GAAG,MAAM,OAAO,0BAA0B,CAAC;AACxD,oBAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oBACrB,MAAM,GAAG,KAAK;oBACd;gBACF;gBACA,KAAK,UAAU,EAAE;AACf,oBAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,2BAA2B,CAAC;AAC1D,oBAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACtB,MAAM,GAAG,UAAU;oBACnB;gBACF;AACA,gBAAA;AACE,oBAAA,OAAO,IAAI;;AAGf,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,IAAI;YACxB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC5C,MAAM;gBACN,OAAO;AACD,aAAA,CAAC;AACT,YAAA,OAAO,SAAS;QAClB;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,IAAI;QACb;IACF;AACD;;MCzEY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,KAAK;QACV,IAAA,CAAA,IAAI,GAAG,KAAK;QACZ,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAK,CAAU;IAMvC;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,sBAAsB,CAAC;QACpD,OAAO,GAAG,EAAE;IACd;AACD;;MCVY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,MAAM;QACX,IAAA,CAAA,IAAI,GAAG,MAAM;QACb,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,MAAM,CAAU;IAMxC;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,uBAAuB,CAAC;QACtD,OAAO,IAAI,EAAE;IACf;AACD;;MCVY,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,YAAY;QACjB,IAAA,CAAA,IAAI,GAAG,YAAY;QACnB,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,YAAY,EAAE,IAAI,CAAU;IAMpD;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,6BAA6B,CAAC;QAClE,OAAO,UAAU,EAAE;IACrB;AACD;;MCVY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,MAAM;QACX,IAAA,CAAA,IAAI,GAAG,MAAM;QACb,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,MAAM,CAAU;IAMxC;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,uBAAuB,CAAC;QACtD,OAAO,IAAI,EAAE;IACf;AACD;;MCVY,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,UAAU;QACf,IAAA,CAAA,IAAI,GAAG,UAAU;QACjB,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,UAAU,CAAU;IAM5C;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,2BAA2B,CAAC;QAC9D,OAAO,QAAQ,EAAE;IACnB;AACD;;MCVY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,MAAM;QACX,IAAA,CAAA,IAAI,GAAG,WAAW;QAClB,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU;IAMhD;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,uBAAuB,CAAC;QACtD,OAAO,IAAI,EAAE;IACf;AACD;;MCVY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,KAAK;QACV,IAAA,CAAA,IAAI,GAAG,KAAK;QACZ,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAK,CAAU;IAMvC;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,sBAAsB,CAAC;QACpD,OAAO,GAAG,EAAE;IACd;AACD;;MCVY,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,YAAY;QACjB,IAAA,CAAA,IAAI,GAAG,YAAY;QACnB,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,YAAY,EAAE,IAAI,CAAU;IAMpD;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,6BAA6B,CAAC;QAClE,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACzC;AACD;;MCVY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,KAAK;QACV,IAAA,CAAA,IAAI,GAAG,KAAK;QACZ,IAAA,CAAA,OAAO,GAAG,OAAO;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,KAAK,CAAU;IAMvC;AAJE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,sBAAsB,CAAC;QACpD,OAAO,GAAG,EAAE;IACd;AACD;;MCVY,qBAAqB,CAAA;AAAlC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,aAAa;QAClB,IAAA,CAAA,IAAI,GAAG,aAAa;QACpB,IAAA,CAAA,OAAO,GAAG,OAAO;QACjB,IAAA,CAAA,IAAI,GAAG,IAAI;IAkBtB;AAhBE,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzD,OAAO,8BAA8B,CAAC;YACtC,OAAO,kBAAkB,CAAC;AAC3B,SAAA,CAAC;QACF,OAAO;YACL,UAAU;YACV,UAAU,CAAC,KAAK,CACd;;;AAGC,aAAA,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf;SACF;IACH;AACD;;MCtBY,sBAAsB,CAAA;AAAnC,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,cAAc;QACnB,IAAA,CAAA,IAAI,GAAG,cAAc;QACrB,IAAA,CAAA,OAAO,GAAG,OAAO;QACjB,IAAA,CAAA,IAAI,GAAG,KAAK;IAkBvB;AAhBE,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,OAAO,8BAA8B,CAAC;YACtC,OAAO,kBAAkB,CAAC;AAC3B,SAAA,CAAC;QACF,OAAO;YACL,WAAW;YACX,UAAU,CAAC,KAAK,CACd;;;AAGC,aAAA,EACD,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB;SACF;IACH;AACD;;MCtBY,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,OAAO;QACZ,IAAA,CAAA,IAAI,GAAG,OAAO;QACd,IAAA,CAAA,OAAO,GAAG,OAAO;QACjB,IAAA,CAAA,IAAI,GAAG,KAAK;IAYvB;AAVE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,kBAAkB,CAAC;QACvD,OAAO,UAAU,CAAC,KAAK,CACrB;;AAEE,YAAA,aAAa,EAAE,EAAE;AAClB,SAAA,EACD,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB;IACH;AACD;;MChBY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;QACW,IAAA,CAAA,EAAE,GAAG,UAAU;QACf,IAAA,CAAA,IAAI,GAAG,UAAU;QACjB,IAAA,CAAA,OAAO,GAAG,OAAO;QACjB,IAAA,CAAA,IAAI,GAAG,IAAI;IA0BtB;AAxBE,IAAA,MAAM,YAAY,GAAA;QAChB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,kBAAkB,CAAC;AACvD,QAAA,IAAI;YACF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,4BAA4B,CAAC;YAC9D,OAAO;gBACL,OAAO;gBACP,UAAU,CAAC,KAAK,CACd;;AAEE,oBAAA,aAAa,EAAE,EAAE;AAClB,iBAAA,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf;aACF;QACH;AAAE,QAAA,MAAM;YACN,OAAO,UAAU,CAAC,KAAK,CACrB;;AAEE,gBAAA,aAAa,EAAE,EAAE;AAClB,aAAA,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf;QACH;IACF;AACD;;ACjBD;;AAEG;SACa,+BAA+B,GAAA;IAC7C,OAAO;AACL,QAAA,SAAS,EAAE;AACT,YAAA,IAAI,wBAAwB,EAAE;AAC9B,YAAA,IAAI,wBAAwB,EAAE;AAC9B,YAAA,IAAI,kBAAkB,EAAE;AACxB,YAAA,IAAI,kBAAkB,EAAE;AACxB,YAAA,IAAI,iBAAiB,EAAE;AACvB,YAAA,IAAI,kBAAkB,EAAE;AACxB,YAAA,IAAI,iBAAiB,EAAE;AACvB,YAAA,IAAI,iBAAiB,EAAE;AACvB,YAAA,IAAI,sBAAsB,EAAE;AAC7B,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,kBAAkB,EAAE;AACxB,YAAA,IAAI,gBAAgB,EAAE;AACtB,YAAA,IAAI,sBAAsB,EAAE;AAC5B,YAAA,IAAI,qBAAqB,EAAE;AAC5B,SAAA;AACD,QAAA,UAAU,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;AAC3C,QAAA,UAAU,EAAE,EAAE;KACf;AACH;;ACrCA;;AAEG;MACU,4BAA4B,GAAG,IAAI,cAAc,CAC5D,8BAA8B,EAC9B;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,+BAA+B,EAAE;AACjD,CAAA;;ACDH;;AAEG;MAEU,0BAA0B,CAAA;AAQrC,IAAA,WAAA,GAAA;QAPQ,IAAA,CAAA,MAAM,GAAoC,MAAM,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAElG,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,GAAG,EAAsC;AAC/D,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,GAAG,EAAmC;AACzD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,GAAG,EAAuC;AACjE,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,GAAG,EAAuC;QAGvE,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEQ,iBAAiB,GAAA;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE;;QAGlB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,KAAI;YACxC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAI;YACrC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AAC1C,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,KAAI;YACzC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACzC,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,KAAI;YACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;AAC9C,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACH,MAAM,oBAAoB,CAAC,QAAgB,EAAA;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,IAAI,CAAC,iCAAiC,QAAQ,CAAA,CAAE,CAAC;AACzD,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,MAAM,CAAC,YAAY,EAAE;IAC9B;AAEA;;AAEG;IACH,MAAM,iBAAiB,CAAC,OAAe,EAAA;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAA,CAAE,CAAC;AACrD,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,MAAM,CAAC,YAAY,EAAE;IAC9B;AAEA;;AAEG;AACH,IAAA,MAAM,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAA;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,IAAI;QACb;QACA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtC;AAEA;;AAEG;AACH,IAAA,MAAM,mBAAmB,GAAA;AACvB,QAAA,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC,CAClF;AACD,QAAA,OAAO,UAAU;IACnB;AAEA;;AAEG;AACH,IAAA,WAAW,CAAC,QAAgB,EAAA;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC3C;AAEA;;AAEG;AACH,IAAA,QAAQ,CAAC,OAAe,EAAA;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;IACvC;AAEA;;AAEG;AACH,IAAA,YAAY,CAAC,QAAgB,EAAA;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC5C;AAEA;;AAEG;IACH,qBAAqB,GAAA;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAChD;AAEA;;AAEG;IACH,kBAAkB,GAAA;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7C;AAEA;;AAEG;AACH,IAAA,sBAAsB,CAAC,MAAkC,EAAA;QACvD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACH,IAAA,mBAAmB,CAAC,MAA+B,EAAA;QACjD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;IAC1C;AAEA;;AAEG;AACH,IAAA,uBAAuB,CAAC,MAAmC,EAAA;QACzD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACzC,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACH,IAAA,uBAAuB,CAAC,MAAmC,EAAA;QACzD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;IAC9C;8GAtJW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;2FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACyG5B,MAAO,qBAAsB,SAAQ,gBAAwB,CAAA;;IA8EjE,YAAY,GAAA;AACV,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;AAC1B,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI;;;QAGnC,OAAO,CAAA,KAAA,EAAQ,IAAI,CAAA,UAAA,CAAY;IACjC;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;;;AAnFT,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAA8B,YAAY,oDAAC;;QAE3D,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,KAAK,2DAAI,KAAK,EAAE,UAAU,EAAA,CAAG;;AAEpD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,uDAAC;;AAE/B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAU,IAAI,uDAAC;;AAElC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,KAAK,wDAAC;;AAEpC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAS,CAAC,mDAAC;;AAE1B,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAU,IAAI,yDAAC;;AAEpC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAgB,IAAI,iDAAC;;AAElC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAA2C,EAAE,sDAAC;;AAEhE,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,qDAAC;;AAEtC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,KAAK,wDAAC;;AAEpC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAU,KAAK,wDAAC;;AAEpC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAgB,IAAI,kDAAC;AAEnC;;;AAGG;AACH,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAsF,IAAI,6DAAC;;;;QAKpH,IAAA,CAAA,KAAK,GAAG,MAAM,EAAQ;;QAEtB,IAAA,CAAA,IAAI,GAAG,MAAM,EAAU;;AAGvB,QAAA,IAAA,CAAA,IAAI,GAAG,SAAS,CAA6B,MAAM,gDAAC;;AAG5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAEnD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAoC,IAAI,yDAAC;;QAG/D,IAAA,CAAA,mBAAmB,GAAuC,IAAI;QAC9D,IAAA,CAAA,mBAAmB,GAAuC,IAAI;QAC9D,IAAA,CAAA,gBAAgB,GAAuC,IAAI;QAC3D,IAAA,CAAA,sBAAsB,GAAuC,IAAI;QACjE,IAAA,CAAA,mBAAmB,GAAuC,IAAI;QAC9D,IAAA,CAAA,uBAAuB,GAAuC,IAAI;QAClE,IAAA,CAAA,kBAAkB,GAAuC,IAAI;QAC7D,IAAA,CAAA,sBAAsB,GAAuC,IAAI;;AAGjE,QAAA,IAAA,CAAA,EAAE,GAQN,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAErG,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,qDAAC;QAapE,eAAe,CAAC,MAAK;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBAAE;YACvB,IAAI,CAAC,gBAAgB,EAAE;AACzB,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI;gBAAE;AACX,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;AACzC,YAAA,IAAI,MAAM,KAAK,OAAO,EAAE;gBACtB,IAAI,CAAC,QAAQ,CAAC;AACZ,oBAAA,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAChE,iBAAA,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE;AACxC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AAC1D,gBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;oBAAE;AACxC,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;AACvE,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE;AACxC,YAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;YACvC,OAAO,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,KAAI;AACjD,gBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;oBAAE;gBACxC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;AACpG,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;;AAEjC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE;YAChC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;AACtD,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE;AACrC,YAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;AACvE,gBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBAAE;AACrC,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzE,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE;YAC3C,OAAO,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,KAAI;AAClD,gBAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB;oBAAE;gBAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AAC5G,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAAE;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU;AAC3C,YAAA,IAAI,CAAC,UAAU;gBAAE;AACjB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,GAAG,EAAE;YAClE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC;AACrD,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB;gBAAE;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW;AAC9C,YAAA,IAAI,CAAC,WAAW;gBAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AACxF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB;gBAAE;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM;AACnC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AACjC,YAAA,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;gBAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;AACjH,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBAAE;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW;AAC7C,YAAA,IAAI,CAAC,WAAW;gBAAE;YAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,GAAG,EAAE,CAAC;AACxF,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,MAAM,gBAAgB,GAAA;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,aAAa;AACzC,QAAA,IAAI,CAAC,MAAM;YAAE;AAEb,QAAA,MAAM,IAAI,CAAC,qBAAqB,EAAE;QAElC,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;AAEnC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;AAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK;AAC9B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY;AACpC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AACpC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;AAC5B,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;YAAE;AACjG,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnF,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACjG,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;AACpE,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1E,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,EAAE;AAC9E,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACvE,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE;AAEtE,QAAA,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;AAC7C,YAAA,QAAQ,EAAE,IAAI,CAAC,4BAA4B,EAAE;AAC9C,SAAA,CAAC;AAEF,QAAA,MAAM,cAAc,GAA6C;AAC/D,YAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,cAAc,CAAC;YAC9C,OAAO,CAAC,mBAAmB,EAAE;YAC7B,OAAO,CAAC,yBAAyB,EAAE;YACnC,OAAO,CAAC,aAAa,EAAE;YACvB,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,oBAAoB,EAAE;YAC9B,OAAO,CAAC,eAAe,EAAE;YACzB,OAAO,CAAC,qBAAqB,EAAE;AAC/B,YAAA,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACrF,WAAW,CAAC,eAAe,EAAE;YAC7B,WAAW,CAAC,UAAU,EAAE;YACxB,WAAW,CAAC,OAAO,EAAE;YACrB,SAAS,CAAC,yBAAyB,EAAE;AACrC,YAAA,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC;YAC1B,eAAe;AACf,YAAA,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,CAAC;AACxC,YAAA,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,CAAC;AACxC,YAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC;AAClC,YAAA,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,cAAc,CAAC;AAC9C,YAAA,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,WAAW,CAAC;AACxC,YAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC;AACtC,YAAA,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3G,GAAG,IAAI,CAAC,UAAU,EAAE;SACrB;AAED,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,KAAI;AACjE,YAAA,IAAI,EAAE,CAAC,UAAU,EAAE;gBACjB,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;;AAEpC,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACnB;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AACxC,YAAA,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;AACrB,YAAA,UAAU,EAAE,CAAC,GAAG,cAAc,EAAE,cAAc,CAAC;AAChD,SAAA,CAAC;AAEF,QAAA,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;;QAG9D,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAE9B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAE5B,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;YAC7B,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,IAAI,CAAC,KAAK,EAAE;QACd;AAEA,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;IAEQ,WAAW,CAAC,IAAwC,EAAE,GAA8B,EAAA;AAC1F,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD;AAEA;;;AAGG;IACH,MAAM,cAAc,CAAC,KAAY,EAAA;QAC/B,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;QAC9D,MAAM,OAAO,GAAG,OAAO;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACzB;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACzB;AAEQ,IAAA,MAAM,qBAAqB,GAAA;QACjC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1F,OAAO,kBAAkB,CAAC;YAC1B,OAAO,mBAAmB,CAAC;YAC3B,OAAO,sBAAsB,CAAC;YAC9B,OAAO,0BAA0B,CAAC;YAClC,OAAO,sBAAsB,CAAC;YAC9B,OAAO,oBAAoB,CAAC;YAC5B,OAAO,kBAAkB,CAAC;AAC3B,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,OAAO;AAC1B,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,GAAG,OAAO;AAC9B,QAAA,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM;AACzB,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO;IACxB;IAEQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK;AAC9B,QAAA,IAAI,CAAC,QAAQ;YAAE;QACf,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACrD,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QAClD,IAAI,CAAC,sBAAsB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACxD,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACrD,IAAI,CAAC,kBAAkB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACpD,IAAI,CAAC,uBAAuB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACzD,IAAI,CAAC,sBAAsB,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;IAC1D;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ;AAC/B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI;QAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,EAAE;QAC5D,OAAO;YACL,GAAG,MAAM,CAAC,aAAa;YACvB,GAAG,MAAM,CAAC,aAAa;YACvB,GAAG,SAAS,CAAC,YAAY;YACzB,GAAG,OAAO,CAAC,gBAAgB;YAC3B,GAAI,OAAO,CAAC,UAA+D;SAC5E;IACH;AAEQ,IAAA,MAAM,qBAAqB,CACjC,WAA0B,EAC1B,aAAqB,EAAA;;QAGrB,IAAI,WAAW,EAAE;YACf,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,WAAW,CAAC;QAC3D;;AAGA,QAAA,MAAM,OAAO,GAAG,aAAa,KAAK,MAAM,GAAG,aAAa,GAAG,cAAc;QACzE,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC;IACvD;IAEQ,4BAA4B,GAAA;AAClC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACzC,QAAA,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,SAAS;AAC/B,QAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAClC,OAAO,CAAC,QAA4C,CAAC;QACvD;;AAEA,QAAA,MAAM,YAAY,GAAqC,CAAC,OAA0C,KAAI;AACpG,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG;AACxB,YAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAqD,EAAE;AACjF,QAAA,CAAC;QACD,OAAO,CAAC,YAAY,CAAC;IACvB;;;IAIgB,KAAK,GAAA;AACnB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,EAAE;IACxB;;IAGO,SAAS,GAAA;AACd,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,CAAC,IAAI;YAAE;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IAC3D;;;AAIO,IAAA,MAAM,MAAM,CAAC,MAAM,GAAG,IAAI,EAAA;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;AACxC,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;AACxB,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3E,QAAA,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM;AAAE,YAAA,OAAO,IAAI;QACnD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QACvF;AACA,QAAA,OAAO,SAAS;IAClB;;IAGO,kBAAkB,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC;AAC3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;QAC7B,OAAO,IAAI,CAAC,MAAM;IACpB;;IAGO,aAAa,GAAA;AAClB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;QACjC,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,GAAG,GAAQ,IAAI,CAAC,KAAK,CAAC,GAAG;YAC/B,OAAO,OAAO,GAAG,EAAE,KAAK,KAAK,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM;QAC1F;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AAC7B,QAAA,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;IAC9C;8GA/ZW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EAzBrB;AACT,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE;AACpE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE;SAC7D,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sfAAA,CAAA,EAAA,CAAA,CAAA;;2FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA7EjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,IAAA,EACpB;AACJ,wBAAA,qBAAqB,EAAE,wBAAwB;AAC/C,wBAAA,KAAK,EAAE,sBAAsB;qBAC9B,EAAA,MAAA,EACO,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,WAC3C,CAAC,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAA,SAAA,EA6ClF;AACT,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,uBAAuB,EAAE;AACpE,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,uBAAuB,EAAE;qBAC7D,EAAA,QAAA,EACS;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,sfAAA,CAAA,EAAA;wjDA8C4C,MAAM,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MC3JxC,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,OAAA,EAAA,CAHnB,YAAY,EAAE,qBAAqB,aACnC,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHnB,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAGX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,CAAC;oBAC9C,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACjC,iBAAA;;;ACPD;;ACAA;;ACAA;;ACAA;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-components-code-editor.mjs","sources":["../../../../packages/components/code-editor/src/lib/plugins/default/formatters/prettier.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/css.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/html.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/javascript.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/json.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/markdown.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/sass.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/sql.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/typescript.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/xml.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/github-dark.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/github-light.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/light.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/themes/one-dark.plugin.ts","../../../../packages/components/code-editor/src/lib/plugins/default/config.ts","../../../../packages/components/code-editor/src/lib/plugins/tokens.ts","../../../../packages/components/code-editor/src/lib/plugins/registry.service.ts","../../../../packages/components/code-editor/src/lib/code-editor.component.ts","../../../../packages/components/code-editor/src/lib/code-editor.module.ts","../../../../packages/components/code-editor/src/lib/plugins/default/languages/index.ts","../../../../packages/components/code-editor/src/lib/plugins/default/index.ts","../../../../packages/components/code-editor/src/index.ts","../../../../packages/components/code-editor/src/acorex-components-code-editor.ts"],"sourcesContent":["import { AXCodeEditorFormatterPlugin } from '../../types';\n\nexport class PrettierFormatterPlugin implements AXCodeEditorFormatterPlugin {\n readonly id = 'prettier';\n readonly name = 'Prettier';\n readonly version = '1.0.0';\n readonly languages = ['javascript', 'js', 'typescript', 'ts', 'json', 'html', 'css', 'markdown'] as const;\n\n async format(text: string, language: string): Promise<string | null> {\n try {\n const prettier = await import('prettier/standalone');\n let parser: string | null = null;\n const plugins: any[] = [];\n\n switch (language) {\n case 'javascript':\n case 'js': {\n const [babel, estree] = await Promise.all([\n import('prettier/plugins/babel'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(babel, estree);\n parser = 'babel';\n break;\n }\n case 'typescript':\n case 'ts': {\n const [typescript, estree] = await Promise.all([\n import('prettier/plugins/typescript'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(typescript, estree);\n parser = 'typescript';\n break;\n }\n case 'json': {\n const [babel, estree] = await Promise.all([\n import('prettier/plugins/babel'),\n import('prettier/plugins/estree'),\n ]);\n plugins.push(babel, estree);\n parser = 'json';\n break;\n }\n case 'html': {\n const html = await import('prettier/plugins/html');\n plugins.push(html);\n parser = 'html';\n break;\n }\n case 'css': {\n const postcss = await import('prettier/plugins/postcss');\n plugins.push(postcss);\n parser = 'css';\n break;\n }\n case 'markdown': {\n const markdown = await import('prettier/plugins/markdown');\n plugins.push(markdown);\n parser = 'markdown';\n break;\n }\n default:\n return null;\n }\n\n if (!parser) return null;\n const formatted = await prettier.format(text, {\n parser,\n plugins,\n } as any);\n return formatted;\n } catch {\n return null;\n }\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class CSSLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'css';\n readonly name = 'CSS';\n readonly version = '1.0.0';\n readonly languages = ['css'] as const;\n\n async getExtension(): Promise<Extension> {\n const { css } = await import('@codemirror/lang-css');\n return css();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class HTMLLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'html';\n readonly name = 'HTML';\n readonly version = '1.0.0';\n readonly languages = ['html'] as const;\n\n async getExtension(): Promise<Extension> {\n const { html } = await import('@codemirror/lang-html');\n return html();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class JavaScriptLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'javascript';\n readonly name = 'JavaScript';\n readonly version = '1.0.0';\n readonly languages = ['javascript', 'js'] as const;\n\n async getExtension(): Promise<Extension> {\n const { javascript } = await import('@codemirror/lang-javascript');\n return javascript();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class JSONLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'json';\n readonly name = 'JSON';\n readonly version = '1.0.0';\n readonly languages = ['json'] as const;\n\n async getExtension(): Promise<Extension> {\n const { json } = await import('@codemirror/lang-json');\n return json();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class MarkdownLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'markdown';\n readonly name = 'Markdown';\n readonly version = '1.0.0';\n readonly languages = ['markdown'] as const;\n\n async getExtension(): Promise<Extension> {\n const { markdown } = await import('@codemirror/lang-markdown');\n return markdown();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class SassLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'sass';\n readonly name = 'Sass/SCSS';\n readonly version = '1.0.0';\n readonly languages = ['sass', 'scss'] as const;\n\n async getExtension(): Promise<Extension> {\n const { sass } = await import('@codemirror/lang-sass');\n return sass();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class SQLLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'sql';\n readonly name = 'SQL';\n readonly version = '1.0.0';\n readonly languages = ['sql'] as const;\n\n async getExtension(): Promise<Extension> {\n const { sql } = await import('@codemirror/lang-sql');\n return sql();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class TypeScriptLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'typescript';\n readonly name = 'TypeScript';\n readonly version = '1.0.0';\n readonly languages = ['typescript', 'ts'] as const;\n\n async getExtension(): Promise<Extension> {\n const { javascript } = await import('@codemirror/lang-javascript');\n return javascript({ typescript: true });\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorLanguagePlugin } from '../../types';\n\nexport class XMLLanguagePlugin implements AXCodeEditorLanguagePlugin {\n readonly id = 'xml';\n readonly name = 'XML';\n readonly version = '1.0.0';\n readonly languages = ['xml'] as const;\n\n async getExtension(): Promise<Extension> {\n const { xml } = await import('@codemirror/lang-xml');\n return xml();\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class GitHubDarkThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'github-dark';\n readonly name = 'GitHub Dark';\n readonly version = '1.0.0';\n readonly dark = true;\n\n async getExtension(): Promise<Extension> {\n const [{ githubDark }, { EditorView }] = await Promise.all([\n import('@uiw/codemirror-theme-github'),\n import('@codemirror/view'),\n ]);\n return [\n githubDark,\n EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n // '.cm-gutters': { backgroundColor: 'transparent !important' },\n },\n { dark: true },\n ),\n ];\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class GitHubLightThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'github-light';\n readonly name = 'GitHub Light';\n readonly version = '1.0.0';\n readonly dark = false;\n\n async getExtension(): Promise<Extension> {\n const [{ githubLight }, { EditorView }] = await Promise.all([\n import('@uiw/codemirror-theme-github'),\n import('@codemirror/view'),\n ]);\n return [\n githubLight,\n EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n // '.cm-gutters': { backgroundColor: 'transparent !important' },\n },\n { dark: false },\n ),\n ];\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class LightThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'light';\n readonly name = 'Light';\n readonly version = '1.0.0';\n readonly dark = false;\n\n async getExtension(): Promise<Extension> {\n const { EditorView } = await import('@codemirror/view');\n return EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n },\n { dark: false },\n );\n }\n}\n","import type { Extension } from '@codemirror/state';\nimport { AXCodeEditorThemePlugin } from '../../types';\n\nexport class OneDarkThemePlugin implements AXCodeEditorThemePlugin {\n readonly id = 'one-dark';\n readonly name = 'One Dark';\n readonly version = '1.0.0';\n readonly dark = true;\n\n async getExtension(): Promise<Extension> {\n const { EditorView } = await import('@codemirror/view');\n try {\n const { oneDark } = await import('@codemirror/theme-one-dark');\n return [\n oneDark,\n EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n },\n { dark: true },\n ),\n ];\n } catch {\n return EditorView.theme(\n {\n // '&': { backgroundColor: 'transparent !important' },\n '.cm-gutters': {},\n },\n { dark: true },\n );\n }\n }\n}\n","import { AXCodeEditorPluginConfig } from '../types';\nimport { PrettierFormatterPlugin } from './formatters/prettier.plugin';\nimport { CSSLanguagePlugin } from './languages/css.plugin';\nimport { HTMLLanguagePlugin } from './languages/html.plugin';\nimport { JavaScriptLanguagePlugin } from './languages/javascript.plugin';\nimport { JSONLanguagePlugin } from './languages/json.plugin';\nimport { MarkdownLanguagePlugin } from './languages/markdown.plugin';\nimport { SassLanguagePlugin } from './languages/sass.plugin';\nimport { SQLLanguagePlugin } from './languages/sql.plugin';\nimport { TypeScriptLanguagePlugin } from './languages/typescript.plugin';\nimport { XMLLanguagePlugin } from './languages/xml.plugin';\nimport { GitHubDarkThemePlugin } from './themes/github-dark.plugin';\nimport { GitHubLightThemePlugin } from './themes/github-light.plugin';\nimport { LightThemePlugin } from './themes/light.plugin';\nimport { OneDarkThemePlugin } from './themes/one-dark.plugin';\n\n/**\n * Default plugin configuration with all built-in plugins\n */\nexport function provideDefaultCodeEditorPlugins(): AXCodeEditorPluginConfig {\n return {\n languages: [\n new JavaScriptLanguagePlugin(),\n new TypeScriptLanguagePlugin(),\n new JSONLanguagePlugin(),\n new HTMLLanguagePlugin(),\n new CSSLanguagePlugin(),\n new SassLanguagePlugin(),\n new SQLLanguagePlugin(),\n new XMLLanguagePlugin(),\n new MarkdownLanguagePlugin(),\n ],\n themes: [\n new OneDarkThemePlugin(),\n new LightThemePlugin(),\n new GitHubLightThemePlugin(),\n new GitHubDarkThemePlugin(),\n ],\n formatters: [new PrettierFormatterPlugin()],\n extensions: [],\n };\n}\n","import { InjectionToken } from '@angular/core';\nimport { provideDefaultCodeEditorPlugins } from './default/config';\nimport { AXCodeEditorPluginConfig } from './types';\n\n/**\n * Injection token for providing code editor plugin configuration\n */\nexport const AX_CODE_EDITOR_PLUGIN_CONFIG = new InjectionToken<AXCodeEditorPluginConfig>(\n 'AX_CODE_EDITOR_PLUGIN_CONFIG',\n {\n providedIn: 'root',\n factory: () => provideDefaultCodeEditorPlugins(),\n },\n);\n","import { Injectable, inject } from '@angular/core';\nimport type { Extension } from '@codemirror/state';\nimport {\n AXCodeEditorExtensionPlugin,\n AXCodeEditorFormatterPlugin,\n AXCodeEditorLanguagePlugin,\n AXCodeEditorPluginConfig,\n AXCodeEditorThemePlugin,\n} from './types';\nimport { AX_CODE_EDITOR_PLUGIN_CONFIG } from './tokens';\n\n/**\n * Registry service for managing code editor plugins\n */\n@Injectable({ providedIn: 'root' })\nexport class AXCodeEditorPluginRegistry {\n private config: AXCodeEditorPluginConfig | null = inject(AX_CODE_EDITOR_PLUGIN_CONFIG, { optional: true });\n\n private languagePlugins = new Map<string, AXCodeEditorLanguagePlugin>();\n private themePlugins = new Map<string, AXCodeEditorThemePlugin>();\n private formatterPlugins = new Map<string, AXCodeEditorFormatterPlugin>();\n private extensionPlugins = new Map<string, AXCodeEditorExtensionPlugin>();\n\n constructor() {\n this.initializePlugins();\n }\n\n private initializePlugins(): void {\n if (!this.config) return;\n\n // Register language plugins\n this.config.languages?.forEach((plugin) => {\n plugin.languages.forEach((lang) => {\n this.languagePlugins.set(lang, plugin);\n });\n });\n\n // Register theme plugins\n this.config.themes?.forEach((plugin) => {\n this.themePlugins.set(plugin.id, plugin);\n });\n\n // Register formatter plugins\n this.config.formatters?.forEach((plugin) => {\n plugin.languages.forEach((lang) => {\n this.formatterPlugins.set(lang, plugin);\n });\n });\n\n // Register extension plugins\n this.config.extensions?.forEach((plugin) => {\n this.extensionPlugins.set(plugin.id, plugin);\n });\n }\n\n /**\n * Get language extension for the specified language\n */\n async getLanguageExtension(language: string): Promise<Extension> {\n const plugin = this.languagePlugins.get(language);\n if (!plugin) {\n console.warn(`No language plugin found for: ${language}`);\n return [];\n }\n return plugin.getExtension();\n }\n\n /**\n * Get theme extension by theme ID\n */\n async getThemeExtension(themeId: string): Promise<Extension> {\n const plugin = this.themePlugins.get(themeId);\n if (!plugin) {\n console.warn(`No theme plugin found for: ${themeId}`);\n return [];\n }\n return plugin.getExtension();\n }\n\n /**\n * Format text using the appropriate formatter for the language\n */\n async format(text: string, language: string): Promise<string | null> {\n const plugin = this.formatterPlugins.get(language);\n if (!plugin) {\n return null;\n }\n return plugin.format(text, language);\n }\n\n /**\n * Get all registered extension plugins\n */\n async getExtensionPlugins(): Promise<Extension[]> {\n const extensions = await Promise.all(\n Array.from(this.extensionPlugins.values()).map((plugin) => plugin.getExtension()),\n );\n return extensions;\n }\n\n /**\n * Check if a language is supported\n */\n hasLanguage(language: string): boolean {\n return this.languagePlugins.has(language);\n }\n\n /**\n * Check if a theme is available\n */\n hasTheme(themeId: string): boolean {\n return this.themePlugins.has(themeId);\n }\n\n /**\n * Check if a formatter is available for a language\n */\n hasFormatter(language: string): boolean {\n return this.formatterPlugins.has(language);\n }\n\n /**\n * Get all available language identifiers\n */\n getAvailableLanguages(): string[] {\n return Array.from(this.languagePlugins.keys());\n }\n\n /**\n * Get all available theme identifiers\n */\n getAvailableThemes(): string[] {\n return Array.from(this.themePlugins.keys());\n }\n\n /**\n * Register a language plugin at runtime\n */\n registerLanguagePlugin(plugin: AXCodeEditorLanguagePlugin): void {\n plugin.languages.forEach((lang) => {\n this.languagePlugins.set(lang, plugin);\n });\n }\n\n /**\n * Register a theme plugin at runtime\n */\n registerThemePlugin(plugin: AXCodeEditorThemePlugin): void {\n this.themePlugins.set(plugin.id, plugin);\n }\n\n /**\n * Register a formatter plugin at runtime\n */\n registerFormatterPlugin(plugin: AXCodeEditorFormatterPlugin): void {\n plugin.languages.forEach((lang) => {\n this.formatterPlugins.set(lang, plugin);\n });\n }\n\n /**\n * Register an extension plugin at runtime\n */\n registerExtensionPlugin(plugin: AXCodeEditorExtensionPlugin): void {\n this.extensionPlugins.set(plugin.id, plugin);\n }\n}\n","import { AXComponent, AXValuableComponent, MXValueComponent } from '@acorex/cdk/common';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n DestroyRef,\n ElementRef,\n PLATFORM_ID,\n afterNextRender,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AXCodeEditorDefaultLanguage } from './plugins';\nimport { AXCodeEditorPluginRegistry } from './plugins/registry.service';\n\n// Re-export language type for external use\nexport type { AXCodeEditorDefaultLanguage } from './plugins/default/languages';\n\n// Type-only aliases for CodeMirror types (tree-shake friendly)\ntype AXCodeEditorEditorViewLike = import('@codemirror/view').EditorView;\ntype AXCodeEditorKeyBindingLike = import('@codemirror/view').KeyBinding;\nexport type AXCodeEditorExtensionLike = import('@codemirror/state').Extension;\ntype AXCodeEditorCompartmentLike = import('@codemirror/state').Compartment;\nexport type AXCodeEditorCompletionLike = import('@codemirror/autocomplete').Completion;\nexport type AXCodeEditorCompletionSourceLike = import('@codemirror/autocomplete').CompletionSource;\ntype AXCodeEditorCompletionContextLike = import('@codemirror/autocomplete').CompletionContext;\n\ntype AXCodeEditorViewModule = typeof import('@codemirror/view');\ntype AXCodeEditorStateModule = typeof import('@codemirror/state');\ntype AXCodeEditorLanguageModule = typeof import('@codemirror/language');\ntype AXCodeEditorAutocompleteModule = typeof import('@codemirror/autocomplete');\ntype AXCodeEditorCommandsModule = typeof import('@codemirror/commands');\ntype AXCodeEditorSearchModule = typeof import('@codemirror/search');\ntype AXCodeEditorLintModule = typeof import('@codemirror/lint');\n\n@Component({\n selector: 'ax-code-editor',\n host: {\n '(keydown.control.s)': 'onSaveShortcut($event)',\n class: 'ax-code-editor block',\n },\n inputs: ['disabled', 'value', 'state', 'name', 'id'],\n outputs: ['onValueChanged', 'valueChange', 'stateChange', 'readonlyChange', 'disabledChange'],\n styles: [\n `\n :host {\n display: block;\n width: 100%;\n max-height: 90vh;\n\n &.ax-disable {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n > .ax-editor-container {\n height: 100%;\n width: 100%;\n align-items: start;\n --ax-comp-editor-space-start-size: 0;\n --ax-comp-editor-space-end-size: 0;\n --ax-comp-editor-border-width: 1px;\n }\n\n .ax-code-editor-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n\n .cm-editor {\n width: 100%;\n max-width: 100%;\n overflow: auto;\n }\n\n .cm-editor.cm-focused {\n outline: none;\n }\n\n .ax-error-message {\n padding-inline: 0.5rem;\n }\n }\n `,\n ],\n providers: [\n { provide: AXValuableComponent, useExisting: AXCodeEditorComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXCodeEditorComponent),\n multi: true,\n },\n { provide: AXComponent, useExisting: AXCodeEditorComponent },\n ],\n template: `\n <div class=\"ax-editor-container\" [style.min-height]=\"getMinHeight()\">\n <div class=\"ax-code-editor-container\">\n <div\n #host\n class=\"cm-editor\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-readonly]=\"editorReadonly() ? 'true' : 'false'\"\n [attr.data-placeholder]=\"placeholder() ?? null\"\n ></div>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </div>\n <div class=\"ax-error-container\"></div>\n `,\n})\nexport class AXCodeEditorComponent extends MXValueComponent<string> {\n // Inputs (signals)\n // value = input<string>('');\n /** Active language identifier from default plugins. Default: 'javascript'. */\n language = input<AXCodeEditorDefaultLanguage>('javascript');\n /** When true, the editor becomes readonly (non-editable). */\n editorReadonly = input(false, { alias: 'readonly' });\n /** Placeholder text shown when the document is empty. */\n placeholder = input<string>('');\n /** Toggle rendering of line numbers in the gutter. */\n lineNumbers = input<boolean>(true);\n /** Soft-wrap long lines when true. */\n lineWrapping = input<boolean>(false);\n /** Tab size (spaces per indent level). */\n tabSize = input<number>(2);\n /** When true, the Tab key indents instead of moving focus. */\n indentWithTab = input<boolean>(true);\n /** Theme identifier. If null, uses platform theme mode (dark/light). */\n theme = input<string | null>(null);\n /** Additional CodeMirror extensions to apply. Reconfigures at runtime. */\n extensions = input<ReadonlyArray<AXCodeEditorExtensionLike>>([]);\n /** ARIA label for accessibility. */\n ariaLabel = input<string | null>(null);\n /** Focus the editor after first render. */\n focusOnReady = input<boolean>(false);\n /** If true, format the document via Prettier before emitting save. */\n formatOnSave = input<boolean>(false);\n /** Minimum number of rows (lines) to display. Controls the minimum height of the editor. */\n minRow = input<number | null>(null);\n\n /**\n * Custom autocompletion options: either a static array of Completion items\n * or a CodeMirror CompletionSource function.\n */\n customCompletions = input<ReadonlyArray<AXCodeEditorCompletionLike> | AXCodeEditorCompletionSourceLike | null>(null);\n\n // Outputs (signals)\n // valueChange = output<string>();\n /** Emits when the editor is fully initialized and ready. */\n ready = output<void>();\n /** Emits when the user triggers save (Ctrl/Cmd+S). Payload is the current text. */\n save = output<string>();\n\n // View container\n host = viewChild<ElementRef<HTMLDivElement>>('host');\n\n // Runtime state\n private platformId = inject(PLATFORM_ID);\n private destroyRef = inject(DestroyRef);\n private platformService = inject(AXPlatform);\n private pluginRegistry = inject(AXCodeEditorPluginRegistry);\n\n private editorViewSig = signal<AXCodeEditorEditorViewLike | null>(null);\n\n // Compartments to reconfigure editor without recreating it\n private languageCompartment: AXCodeEditorCompartmentLike | null = null;\n private readonlyCompartment: AXCodeEditorCompartmentLike | null = null;\n private themeCompartment: AXCodeEditorCompartmentLike | null = null;\n private placeholderCompartment: AXCodeEditorCompartmentLike | null = null;\n private wrappingCompartment: AXCodeEditorCompartmentLike | null = null;\n private keymapExtrasCompartment: AXCodeEditorCompartmentLike | null = null;\n private tabSizeCompartment: AXCodeEditorCompartmentLike | null = null;\n private lineNumbersCompartment: AXCodeEditorCompartmentLike | null = null;\n\n // Cached CodeMirror modules after initialization\n private cm: {\n view: AXCodeEditorViewModule | null;\n state: AXCodeEditorStateModule | null;\n language: AXCodeEditorLanguageModule | null;\n autocomplete: AXCodeEditorAutocompleteModule | null;\n commands: AXCodeEditorCommandsModule | null;\n search: AXCodeEditorSearchModule | null;\n lint: AXCodeEditorLintModule | null;\n } = { view: null, state: null, language: null, autocomplete: null, commands: null, search: null, lint: null };\n\n private isBrowser = computed(() => isPlatformBrowser(this.platformId));\n\n /** Computed minimum height based on minRow (excluding gutter/line numbers). */\n getMinHeight(): string | null {\n const rows = this.minRow();\n if (!rows || rows <= 0) return null;\n // CodeMirror default line height is typically 1.5em, but we use rem for consistency\n // This calculates height without accounting for gutter since gutter is separate\n return `calc(${rows} * 1.5rem)`;\n }\n\n constructor() {\n super();\n afterNextRender(() => {\n if (!this.isBrowser()) return;\n this.initializeEditor();\n });\n\n // Keep model in sync when external value changes\n effect(() => {\n const view = this.editorViewSig();\n if (!view) return;\n const newDoc = this.value ?? '';\n const current = view.state.doc.toString();\n if (newDoc !== current) {\n view.dispatch({\n changes: { from: 0, to: view.state.doc.length, insert: newDoc },\n });\n }\n });\n\n // React to dynamic configuration changes\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.languageCompartment) return;\n const lang = this.language();\n this.pluginRegistry.getLanguageExtension(lang).then((ext) => {\n if (!view || !this.languageCompartment) return;\n view.dispatch({ effects: this.languageCompartment.reconfigure(ext) });\n });\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.readonlyCompartment) return;\n const editable = !this.editorReadonly();\n import('@codemirror/view').then(({ EditorView }) => {\n if (!view || !this.readonlyCompartment) return;\n view.dispatch({ effects: this.readonlyCompartment.reconfigure(EditorView.editable.of(editable)) });\n });\n });\n\n effect(() => {\n const view = this.editorViewSig();\n // Establish reactive dependency on theme and platform theme\n const customTheme = this.theme();\n const platformTheme = this.platformService.themeMode();\n if (!view || !this.themeCompartment) return;\n this.resolveThemeExtension(customTheme, platformTheme).then((themeExt) => {\n if (!view || !this.themeCompartment) return;\n view.dispatch({ effects: this.themeCompartment.reconfigure(themeExt) });\n });\n });\n\n effect(() => {\n this.placeholder();\n const view = this.editorViewSig();\n if (!view || !this.placeholderCompartment) return;\n import('@codemirror/view').then(({ placeholder }) => {\n if (!view || !this.placeholderCompartment) return;\n view.dispatch({ effects: this.placeholderCompartment.reconfigure(placeholder(this.placeholder() ?? '')) });\n });\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.wrappingCompartment) return;\n const EditorView = this.cm.view?.EditorView;\n if (!EditorView) return;\n const nextExt = this.lineWrapping() ? EditorView.lineWrapping : [];\n this.reconfigure(this.wrappingCompartment, nextExt);\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.tabSizeCompartment) return;\n const EditorState = this.cm.state?.EditorState;\n if (!EditorState) return;\n this.reconfigure(this.tabSizeCompartment, EditorState.tabSize.of(this.tabSize() ?? 2));\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.keymapExtrasCompartment) return;\n const keymap = this.cm.view?.keymap;\n const commands = this.cm.commands;\n if (!keymap || !commands) return;\n this.reconfigure(this.keymapExtrasCompartment, keymap.of(this.indentWithTab() ? [commands.indentWithTab] : []));\n });\n\n effect(() => {\n const view = this.editorViewSig();\n if (!view || !this.lineNumbersCompartment) return;\n const lineNumbers = this.cm.view?.lineNumbers;\n if (!lineNumbers) return;\n this.reconfigure(this.lineNumbersCompartment, this.lineNumbers() ? lineNumbers() : []);\n });\n }\n\n private async initializeEditor(): Promise<void> {\n const hostEl = this.host()?.nativeElement;\n if (!hostEl) return;\n\n await this.loadCodeMirrorModules();\n\n this.createCompartments();\n\n const keymaps = this.buildKeymaps();\n\n const viewMod = this.cm.view;\n const stateMod = this.cm.state;\n const languageMod = this.cm.language;\n const autoMod = this.cm.autocomplete;\n const commandsMod = this.cm.commands;\n const searchMod = this.cm.search;\n const lintMod = this.cm.lint;\n if (!viewMod || !stateMod || !languageMod || !autoMod || !commandsMod || !searchMod || !lintMod) return;\n const languageExt = await this.pluginRegistry.getLanguageExtension(this.language());\n const themeExt = await this.resolveThemeExtension(this.theme(), this.platformService.themeMode());\n const placeholderExt = viewMod.placeholder(this.placeholder() ?? '');\n const editableExt = viewMod.EditorView.editable.of(!this.editorReadonly());\n const wrappingExt = this.lineWrapping() ? viewMod.EditorView.lineWrapping : [];\n const tabSizeExt = stateMod.EditorState.tabSize.of(this.tabSize() ?? 2);\n const lineNumbersExt = this.lineNumbers() ? viewMod.lineNumbers() : [];\n\n const autoCompleteExt = autoMod.autocompletion({\n override: this.buildCustomCompletionSources(),\n });\n\n const baseExtensions: ReadonlyArray<AXCodeEditorExtensionLike> = [\n this.lineNumbersCompartment.of(lineNumbersExt),\n viewMod.highlightActiveLine(),\n viewMod.highlightActiveLineGutter(),\n viewMod.drawSelection(),\n viewMod.dropCursor(),\n viewMod.rectangularSelection(),\n viewMod.crosshairCursor(),\n viewMod.highlightSpecialChars(),\n languageMod.syntaxHighlighting(languageMod.defaultHighlightStyle, { fallback: true }),\n languageMod.bracketMatching(),\n languageMod.foldGutter(),\n commandsMod.history(),\n searchMod.highlightSelectionMatches(),\n viewMod.keymap.of(keymaps),\n autoCompleteExt,\n this.languageCompartment.of(languageExt),\n this.readonlyCompartment.of(editableExt),\n this.themeCompartment.of(themeExt),\n this.placeholderCompartment.of(placeholderExt),\n this.wrappingCompartment.of(wrappingExt),\n this.tabSizeCompartment.of(tabSizeExt),\n this.keymapExtrasCompartment.of(viewMod.keymap.of(this.indentWithTab() ? [commandsMod.indentWithTab] : [])),\n ...this.extensions(),\n ];\n\n const updateListener = viewMod.EditorView.updateListener.of((vu) => {\n if (vu.docChanged) {\n const text = vu.state.doc.toString();\n // this.writeValue(text);\n this.value = text;\n }\n });\n\n const state = stateMod.EditorState.create({\n doc: this.value ?? '',\n extensions: [...baseExtensions, updateListener],\n });\n\n const view = new viewMod.EditorView({ state, parent: hostEl });\n\n // Update listener for external changes (selection, viewport, etc.) if needed later\n view.dispatch({ effects: [] });\n\n this.editorViewSig.set(view);\n\n this.destroyRef.onDestroy(() => {\n view.destroy();\n this.editorViewSig.set(null);\n });\n\n if (this.focusOnReady()) {\n view.focus();\n }\n\n this.ready.emit();\n }\n\n private reconfigure(comp: AXCodeEditorCompartmentLike | null, ext: AXCodeEditorExtensionLike): void {\n const view = this.editorViewSig();\n if (!view || !comp) return;\n view.dispatch({ effects: comp.reconfigure(ext) });\n }\n\n /**\n * Handles Ctrl/Cmd+S on the host. If formatOnSave is enabled, attempts\n * to format the document first, then emits the saved text.\n */\n async onSaveShortcut(event: Event): Promise<void> {\n event.preventDefault();\n const view = this.editorViewSig();\n const current = view?.state.doc.toString() ?? this.value ?? '';\n const payload = current;\n if (this.formatOnSave()) {\n await this.format(true);\n }\n this.save.emit(payload);\n }\n\n private async loadCodeMirrorModules(): Promise<void> {\n const [viewMod, stateMod, langMod, autoMod, cmdMod, searchMod, lintMod] = await Promise.all([\n import('@codemirror/view'),\n import('@codemirror/state'),\n import('@codemirror/language'),\n import('@codemirror/autocomplete'),\n import('@codemirror/commands'),\n import('@codemirror/search'),\n import('@codemirror/lint'),\n ]);\n this.cm.view = viewMod;\n this.cm.state = stateMod;\n this.cm.language = langMod;\n this.cm.autocomplete = autoMod;\n this.cm.commands = cmdMod;\n this.cm.search = searchMod;\n this.cm.lint = lintMod;\n }\n\n private createCompartments(): void {\n const stateMod = this.cm.state;\n if (!stateMod) return;\n this.languageCompartment = new stateMod.Compartment();\n this.readonlyCompartment = new stateMod.Compartment();\n this.themeCompartment = new stateMod.Compartment();\n this.placeholderCompartment = new stateMod.Compartment();\n this.wrappingCompartment = new stateMod.Compartment();\n this.tabSizeCompartment = new stateMod.Compartment();\n this.keymapExtrasCompartment = new stateMod.Compartment();\n this.lineNumbersCompartment = new stateMod.Compartment();\n }\n\n private buildKeymaps(): ReadonlyArray<AXCodeEditorKeyBindingLike> {\n const cmdMod = this.cm.commands;\n const searchMod = this.cm.search;\n const autoMod = this.cm.autocomplete;\n const lintMod = this.cm.lint;\n if (!cmdMod || !searchMod || !autoMod || !lintMod) return [];\n return [\n ...cmdMod.defaultKeymap,\n ...cmdMod.historyKeymap,\n ...searchMod.searchKeymap,\n ...autoMod.completionKeymap,\n ...(lintMod.lintKeymap as unknown as readonly AXCodeEditorKeyBindingLike[]),\n ];\n }\n\n private async resolveThemeExtension(\n customTheme: string | null,\n platformTheme: string,\n ): Promise<AXCodeEditorExtensionLike> {\n // If custom theme is specified, use it\n if (customTheme) {\n return this.pluginRegistry.getThemeExtension(customTheme);\n }\n\n // Otherwise, use platform theme (handle 'system' by defaulting to 'github-light')\n const themeId = platformTheme === 'dark' ? 'github-dark' : 'github-light';\n return this.pluginRegistry.getThemeExtension(themeId);\n }\n\n private buildCustomCompletionSources(): ReadonlyArray<AXCodeEditorCompletionSourceLike> | undefined {\n const provided = this.customCompletions();\n if (!provided) return undefined;\n if (typeof provided === 'function') {\n return [provided as AXCodeEditorCompletionSourceLike];\n }\n // Treat array as a static completion list\n const staticSource: AXCodeEditorCompletionSourceLike = (context: AXCodeEditorCompletionContextLike) => {\n const from = context.pos;\n return { from, options: provided as ReadonlyArray<AXCodeEditorCompletionLike> };\n };\n return [staticSource];\n }\n\n // Public API\n /** Programmatically focus the editor. */\n public override focus(): void {\n const view = this.editorViewSig();\n if (view) view.focus();\n }\n\n /** Select all text in the current document. */\n public selectAll(): void {\n const view = this.editorViewSig();\n if (!view) return;\n const length = view.state.doc.length;\n view.dispatch({ selection: { anchor: 0, head: length } });\n }\n\n // Formats the current document using the registered formatter plugin (if available for the active language).\n // Returns the formatted text or null if unchanged/unsupported.\n public async format(affect = true): Promise<string | null> {\n const view = this.editorViewSig();\n if (!view) return null;\n const source = view.state.doc.toString();\n if (!source) return null;\n const formatted = await this.pluginRegistry.format(source, this.language());\n if (!formatted || formatted === source) return null;\n if (affect) {\n view.dispatch({ changes: { from: 0, to: view.state.doc.length, insert: formatted } });\n }\n return formatted;\n }\n\n /** Returns the total number of characters in the current document. */\n public getTotalCharacters(): number {\n const view = this.editorViewSig();\n if (view) return view.state.doc.length ?? 0;\n const text = this.value ?? '';\n return text.length;\n }\n\n /** Returns the total number of lines in the current document. */\n public getTotalLines(): number {\n const view = this.editorViewSig();\n if (view) {\n const doc: any = view.state.doc;\n return typeof doc?.lines === 'number' ? doc.lines : doc.toString().split(/\\r?\\n/).length;\n }\n const text = this.value ?? '';\n return text ? text.split(/\\r?\\n/).length : 1;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXCodeEditorComponent } from './code-editor.component';\n\n@NgModule({\n imports: [CommonModule, AXCodeEditorComponent],\n exports: [AXCodeEditorComponent],\n})\nexport class AXCodeEditorModule {}\n","// Language plugins\nexport * from './javascript.plugin';\nexport * from './typescript.plugin';\nexport * from './json.plugin';\nexport * from './html.plugin';\nexport * from './css.plugin';\nexport * from './sass.plugin';\nexport * from './sql.plugin';\nexport * from './xml.plugin';\nexport * from './markdown.plugin';\n\n// Type union of all supported languages from default plugins\nexport type AXCodeEditorDefaultLanguage =\n | 'javascript'\n | 'js'\n | 'typescript'\n | 'ts'\n | 'json'\n | 'html'\n | 'css'\n | 'scss'\n | 'sass'\n | 'sql'\n | 'xml'\n | 'markdown';\n","// Language plugins\nexport * from './languages';\n\n// Theme plugins\nexport * from './themes/one-dark.plugin';\nexport * from './themes/light.plugin';\nexport * from './themes/github-light.plugin';\nexport * from './themes/github-dark.plugin';\n\n// Formatter plugins\nexport * from './formatters/prettier.plugin';\n","// Component & Module\nexport * from './lib/code-editor.component';\nexport * from './lib/code-editor.module';\n\n// Plugins\nexport * from './lib/plugins';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -93,7 +93,7 @@ class AXColorBoxComponent extends classes(MXDropdownBoxBaseComponent, (MXInputBa
93
93
  useExisting: forwardRef(() => AXColorBoxComponent),
94
94
  multi: true,
95
95
  },
96
- ], viewQueries: [{ propertyName: "palettePicker", first: true, predicate: AXColorPalettePickerComponent, descendants: true, isSignal: true }, { propertyName: "picker", first: true, predicate: AXColorPaletteComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box\n [look]=\"look\"\n [disabled]=\"disabled\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-content\" (click)=\"_handleInputClickEvent($event)\" [tabindex]=\"tabIndex\">\n @if (value && showBadge()) {\n <div class=\"color-badge\" [ngStyle]=\"{ 'background-color': value }\"></div>\n } @else {\n <div class=\"color-placeholder\">{{ placeholder }}</div>\n }\n @if (showValue()) {\n <div class=\"color-value\">{{ value }}</div>\n }\n </div>\n @if (showClearButton()) {\n @if (value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n }\n @if (showIcon()) {\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [tabIndex]=\"-1\"\n [disabled]=\"disabled\"\n (click)=\"_handleArrowClickEvent($event)\"\n >\n <span class=\"ax-icon ax-icon-color-palette\"></span>\n </button>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-color-palette\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n >\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-swatches></ax-color-palette-swatches>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </ng-container>\n</ax-dropdown-box>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid;--tw-border-style:solid;--tw-font-weight:initial}}}@layer components{ax-color-box{flex:1;flex-basis:calc(var(--spacing,.25rem)*0);display:flex}ax-color-box .ax-editor-container{width:var(--ax-comp-color-box-width,100%);font-size:var(--ax-comp-color-box-font-size,var(--ax-comp-editor-font-size))}ax-color-box .ax-editor-container .ax-content{flex:1;flex-basis:calc(var(--spacing,.25rem)*0);align-items:center;gap:calc(var(--spacing,.25rem)*2);height:100%;display:flex;outline-style:var(--tw-outline-style)!important;outline-width:0!important}ax-color-box .ax-editor-container .ax-content .color-badge{width:calc(var(--spacing,.25rem)*4);height:calc(var(--spacing,.25rem)*4);border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-surface);border-color:var(--color-surface,rgba(var(--ax-sys-color-surface)));display:block}ax-color-box .ax-editor-container .ax-content .color-placeholder{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);color:inherit}ax-color-box .ax-editor-container .ax-content .color-value{text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;overflow:hidden}ax-color-box .ax-editor-container .ax-clear-button{flex-direction:row;display:flex;margin:calc(var(--spacing,.25rem)*0)!important}app-demo-box .log-container{flex-direction:row-reverse;justify-content:space-between;display:flex}}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look", "hasInput", "popoverWidth"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: AXColorPaletteComponent, selector: "ax-color-palette", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXColorPalettePickerComponent, selector: "ax-color-palette-picker" }, { kind: "component", type: AXColorPaletteSwatchesComponent, selector: "ax-color-palette-swatches, ax-color-palette-favorite", inputs: ["colors"] }, { kind: "component", type: AXColorPaletteInputComponent, selector: "ax-color-palette-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
96
+ ], viewQueries: [{ propertyName: "palettePicker", first: true, predicate: AXColorPalettePickerComponent, descendants: true, isSignal: true }, { propertyName: "picker", first: true, predicate: AXColorPaletteComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box\n [look]=\"look\"\n [disabled]=\"disabled\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-content\" (click)=\"_handleInputClickEvent($event)\" [tabindex]=\"tabIndex\">\n @if (value && showBadge()) {\n <div class=\"color-badge\" [ngStyle]=\"{ 'background-color': value }\"></div>\n } @else {\n <div class=\"color-placeholder\">{{ placeholder }}</div>\n }\n @if (showValue()) {\n <div class=\"color-value\">{{ value }}</div>\n }\n </div>\n @if (showClearButton()) {\n @if (value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n }\n @if (showIcon()) {\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [tabIndex]=\"-1\"\n [disabled]=\"disabled\"\n (click)=\"_handleArrowClickEvent($event)\"\n >\n <span class=\"ax-icon ax-icon-color-palette\"></span>\n </button>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-color-palette\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n >\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-swatches></ax-color-palette-swatches>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </ng-container>\n</ax-dropdown-box>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid;--tw-border-style:solid;--tw-font-weight:initial}}}@layer components{ax-color-box{flex:1;flex-basis:calc(var(--spacing,.25rem) * 0);display:flex}ax-color-box .ax-editor-container{width:var(--ax-comp-color-box-width,100%);font-size:var(--ax-comp-color-box-font-size,var(--ax-comp-editor-font-size))}ax-color-box .ax-editor-container .ax-content{flex:1;flex-basis:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 2);height:100%;display:flex;outline-style:var(--tw-outline-style)!important;outline-width:0!important}ax-color-box .ax-editor-container .ax-content .color-badge{width:calc(var(--spacing,.25rem) * 4);height:calc(var(--spacing,.25rem) * 4);border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-surface);border-color:var(--color-surface,rgba(var(--ax-sys-color-surface)));display:block}ax-color-box .ax-editor-container .ax-content .color-placeholder{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);color:inherit}ax-color-box .ax-editor-container .ax-content .color-value{text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;overflow:hidden}ax-color-box .ax-editor-container .ax-clear-button{flex-direction:row;display:flex;margin:calc(var(--spacing,.25rem) * 0)!important}app-demo-box .log-container{flex-direction:row-reverse;justify-content:space-between;display:flex}}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look", "hasInput", "popoverWidth"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: AXColorPaletteComponent, selector: "ax-color-palette", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXColorPalettePickerComponent, selector: "ax-color-palette-picker" }, { kind: "component", type: AXColorPaletteSwatchesComponent, selector: "ax-color-palette-swatches, ax-color-palette-favorite", inputs: ["colors"] }, { kind: "component", type: AXColorPaletteInputComponent, selector: "ax-color-palette-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
97
97
  }
98
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXColorBoxComponent, decorators: [{
99
99
  type: Component,
@@ -125,7 +125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
125
125
  AXColorPalettePickerComponent,
126
126
  AXColorPaletteSwatchesComponent,
127
127
  AXColorPaletteInputComponent,
128
- ], template: "<ax-dropdown-box\n [look]=\"look\"\n [disabled]=\"disabled\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-content\" (click)=\"_handleInputClickEvent($event)\" [tabindex]=\"tabIndex\">\n @if (value && showBadge()) {\n <div class=\"color-badge\" [ngStyle]=\"{ 'background-color': value }\"></div>\n } @else {\n <div class=\"color-placeholder\">{{ placeholder }}</div>\n }\n @if (showValue()) {\n <div class=\"color-value\">{{ value }}</div>\n }\n </div>\n @if (showClearButton()) {\n @if (value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n }\n @if (showIcon()) {\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [tabIndex]=\"-1\"\n [disabled]=\"disabled\"\n (click)=\"_handleArrowClickEvent($event)\"\n >\n <span class=\"ax-icon ax-icon-color-palette\"></span>\n </button>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-color-palette\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n >\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-swatches></ax-color-palette-swatches>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </ng-container>\n</ax-dropdown-box>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid;--tw-border-style:solid;--tw-font-weight:initial}}}@layer components{ax-color-box{flex:1;flex-basis:calc(var(--spacing,.25rem)*0);display:flex}ax-color-box .ax-editor-container{width:var(--ax-comp-color-box-width,100%);font-size:var(--ax-comp-color-box-font-size,var(--ax-comp-editor-font-size))}ax-color-box .ax-editor-container .ax-content{flex:1;flex-basis:calc(var(--spacing,.25rem)*0);align-items:center;gap:calc(var(--spacing,.25rem)*2);height:100%;display:flex;outline-style:var(--tw-outline-style)!important;outline-width:0!important}ax-color-box .ax-editor-container .ax-content .color-badge{width:calc(var(--spacing,.25rem)*4);height:calc(var(--spacing,.25rem)*4);border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-surface);border-color:var(--color-surface,rgba(var(--ax-sys-color-surface)));display:block}ax-color-box .ax-editor-container .ax-content .color-placeholder{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);color:inherit}ax-color-box .ax-editor-container .ax-content .color-value{text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;overflow:hidden}ax-color-box .ax-editor-container .ax-clear-button{flex-direction:row;display:flex;margin:calc(var(--spacing,.25rem)*0)!important}app-demo-box .log-container{flex-direction:row-reverse;justify-content:space-between;display:flex}}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n"] }]
128
+ ], template: "<ax-dropdown-box\n [look]=\"look\"\n [disabled]=\"disabled\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-content\" (click)=\"_handleInputClickEvent($event)\" [tabindex]=\"tabIndex\">\n @if (value && showBadge()) {\n <div class=\"color-badge\" [ngStyle]=\"{ 'background-color': value }\"></div>\n } @else {\n <div class=\"color-placeholder\">{{ placeholder }}</div>\n }\n @if (showValue()) {\n <div class=\"color-value\">{{ value }}</div>\n }\n </div>\n @if (showClearButton()) {\n @if (value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n }\n @if (showIcon()) {\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [tabIndex]=\"-1\"\n [disabled]=\"disabled\"\n (click)=\"_handleArrowClickEvent($event)\"\n >\n <span class=\"ax-icon ax-icon-color-palette\"></span>\n </button>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-color-palette\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n >\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-swatches></ax-color-palette-swatches>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </ng-container>\n</ax-dropdown-box>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-outline-style:solid;--tw-border-style:solid;--tw-font-weight:initial}}}@layer components{ax-color-box{flex:1;flex-basis:calc(var(--spacing,.25rem) * 0);display:flex}ax-color-box .ax-editor-container{width:var(--ax-comp-color-box-width,100%);font-size:var(--ax-comp-color-box-font-size,var(--ax-comp-editor-font-size))}ax-color-box .ax-editor-container .ax-content{flex:1;flex-basis:calc(var(--spacing,.25rem) * 0);align-items:center;gap:calc(var(--spacing,.25rem) * 2);height:100%;display:flex;outline-style:var(--tw-outline-style)!important;outline-width:0!important}ax-color-box .ax-editor-container .ax-content .color-badge{width:calc(var(--spacing,.25rem) * 4);height:calc(var(--spacing,.25rem) * 4);border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-surface);border-color:var(--color-surface,rgba(var(--ax-sys-color-surface)));display:block}ax-color-box .ax-editor-container .ax-content .color-placeholder{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);color:inherit}ax-color-box .ax-editor-container .ax-content .color-value{text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;overflow:hidden}ax-color-box .ax-editor-container .ax-clear-button{flex-direction:row;display:flex;margin:calc(var(--spacing,.25rem) * 0)!important}app-demo-box .log-container{flex-direction:row-reverse;justify-content:space-between;display:flex}}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}\n/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n"] }]
129
129
  }], propDecorators: { showBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBadge", required: false }] }], showValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValue", required: false }] }], showClearButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClearButton", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], picker: [{
130
130
  type: ViewChild,
131
131
  args: [AXColorPaletteComponent]
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-color-box.mjs","sources":["../../../../packages/components/color-box/src/lib/color-box.component.ts","../../../../packages/components/color-box/src/lib/color-box.component.html","../../../../packages/components/color-box/src/lib/color-box.module.ts","../../../../packages/components/color-box/src/acorex-components-color-box.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXComponent,\n AXEvent,\n AXFocusableComponent,\n AXValuableComponent,\n MXColorLookComponent,\n MXInputBaseValueComponent,\n} from '@acorex/cdk/common';\nimport {\n AXColorPaletteComponent,\n AXColorPaletteInputComponent,\n AXColorPalettePickerComponent,\n AXColorPaletteSwatchesComponent,\n} from '@acorex/components/color-palette';\nimport { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';\nimport { NgStyle } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n HostListener,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n input,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * A color box component that handles color selection and triggers relevant events.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-color-box',\n templateUrl: './color-box.component.html',\n styleUrls: ['./color-box.component.compiled.css'],\n inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onOpened',\n 'onClosed',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXColorBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXColorBoxComponent },\n { provide: AXValuableComponent, useExisting: AXColorBoxComponent },\n { provide: AXClearableComponent, useExisting: AXColorBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXColorBoxComponent),\n multi: true,\n },\n ],\n host: { ngSkipHydration: 'true' },\n imports: [\n AXDropdownBoxComponent,\n NgStyle,\n AXColorPaletteComponent,\n FormsModule,\n AXColorPalettePickerComponent,\n AXColorPaletteSwatchesComponent,\n AXColorPaletteInputComponent,\n ],\n})\nexport class AXColorBoxComponent extends classes(\n MXDropdownBoxBaseComponent,\n MXInputBaseValueComponent<string>,\n MXColorLookComponent,\n) {\n //TODO: implement the color input component\n // @ViewChild(AXDateTimeInputComponent)\n // protected input: AXDateTimeInputComponent;\n\n showBadge = input(true);\n showValue = input(true);\n showClearButton = input(true);\n showIcon = input(true);\n /**\n * @ignore\n */\n @ViewChild(AXColorPaletteComponent)\n protected picker: AXColorPaletteComponent;\n\n protected palettePicker = viewChild(AXColorPalettePickerComponent);\n\n /**\n * @ignore\n */\n @ViewChild(AXDropdownBoxComponent)\n protected dropdown: AXDropdownBoxComponent;\n\n /**\n * @ignore\n */\n protected _handleModelChange(value: string | null) {\n this.commitValue(value, true);\n }\n\n /**\n * @ignore\n */\n protected _handleArrowClickEvent(e: MouseEvent) {\n e.stopPropagation();\n this.toggle();\n }\n\n /**\n * @ignore\n */\n protected _handleInputClickEvent(e: MouseEvent) {\n e.stopPropagation();\n this.toggle();\n this.palettePicker().parentColorChanged();\n }\n\n /**\n * @ignore\n */\n protected _handleOnOpenedEvent(e: AXEvent) {\n //this.picker?.refresh();\n this.emitOnOpenedEvent();\n }\n\n /**\n * @ignore\n */\n protected _handleOnClosedEvent(e: AXEvent) {\n this.focus();\n this.emitOnClosedEvent();\n }\n\n /**\n * Handles changes to the internal value.\n *\n * @param value - The new value of the component.\n * @ignore\n */\n override internalValueChanged(value?: Date): void {\n //this.close();\n }\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n this.registerValidation();\n }\n\n @HostListener('keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent): void {\n if (event.key !== 'Enter' && event.code !== 'Space') return;\n this.toggle();\n this.palettePicker().parentColorChanged();\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<ax-dropdown-box\n [look]=\"look\"\n [disabled]=\"disabled\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-content\" (click)=\"_handleInputClickEvent($event)\" [tabindex]=\"tabIndex\">\n @if (value && showBadge()) {\n <div class=\"color-badge\" [ngStyle]=\"{ 'background-color': value }\"></div>\n } @else {\n <div class=\"color-placeholder\">{{ placeholder }}</div>\n }\n @if (showValue()) {\n <div class=\"color-value\">{{ value }}</div>\n }\n </div>\n @if (showClearButton()) {\n @if (value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n }\n @if (showIcon()) {\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [tabIndex]=\"-1\"\n [disabled]=\"disabled\"\n (click)=\"_handleArrowClickEvent($event)\"\n >\n <span class=\"ax-icon ax-icon-color-palette\"></span>\n </button>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-color-palette\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n >\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-swatches></ax-color-palette-swatches>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </ng-container>\n</ax-dropdown-box>\n","import { NgModule } from '@angular/core';\nimport { AXColorBoxComponent } from './color-box.component';\n\n@NgModule({\n imports: [AXColorBoxComponent],\n exports: [AXColorBoxComponent],\n})\nexport class AXColorBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-color-box.mjs","sources":["../../../../packages/components/color-box/src/lib/color-box.component.ts","../../../../packages/components/color-box/src/lib/color-box.component.html","../../../../packages/components/color-box/src/lib/color-box.module.ts","../../../../packages/components/color-box/src/acorex-components-color-box.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXComponent,\n AXEvent,\n AXFocusableComponent,\n AXValuableComponent,\n MXColorLookComponent,\n MXInputBaseValueComponent,\n} from '@acorex/cdk/common';\nimport {\n AXColorPaletteComponent,\n AXColorPaletteInputComponent,\n AXColorPalettePickerComponent,\n AXColorPaletteSwatchesComponent,\n} from '@acorex/components/color-palette';\nimport { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';\nimport { NgStyle } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n HostListener,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n input,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * A color box component that handles color selection and triggers relevant events.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-color-box',\n templateUrl: './color-box.component.html',\n styleUrls: ['./color-box.component.compiled.css'],\n inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onOpened',\n 'onClosed',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXColorBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXColorBoxComponent },\n { provide: AXValuableComponent, useExisting: AXColorBoxComponent },\n { provide: AXClearableComponent, useExisting: AXColorBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXColorBoxComponent),\n multi: true,\n },\n ],\n host: { ngSkipHydration: 'true' },\n imports: [\n AXDropdownBoxComponent,\n NgStyle,\n AXColorPaletteComponent,\n FormsModule,\n AXColorPalettePickerComponent,\n AXColorPaletteSwatchesComponent,\n AXColorPaletteInputComponent,\n ],\n})\nexport class AXColorBoxComponent extends classes(\n MXDropdownBoxBaseComponent,\n MXInputBaseValueComponent<string>,\n MXColorLookComponent,\n) {\n //TODO: implement the color input component\n // @ViewChild(AXDateTimeInputComponent)\n // protected input: AXDateTimeInputComponent;\n\n showBadge = input(true);\n showValue = input(true);\n showClearButton = input(true);\n showIcon = input(true);\n /**\n * @ignore\n */\n @ViewChild(AXColorPaletteComponent)\n protected picker: AXColorPaletteComponent;\n\n protected palettePicker = viewChild(AXColorPalettePickerComponent);\n\n /**\n * @ignore\n */\n @ViewChild(AXDropdownBoxComponent)\n protected dropdown: AXDropdownBoxComponent;\n\n /**\n * @ignore\n */\n protected _handleModelChange(value: string | null) {\n this.commitValue(value, true);\n }\n\n /**\n * @ignore\n */\n protected _handleArrowClickEvent(e: MouseEvent) {\n e.stopPropagation();\n this.toggle();\n }\n\n /**\n * @ignore\n */\n protected _handleInputClickEvent(e: MouseEvent) {\n e.stopPropagation();\n this.toggle();\n this.palettePicker().parentColorChanged();\n }\n\n /**\n * @ignore\n */\n protected _handleOnOpenedEvent(e: AXEvent) {\n //this.picker?.refresh();\n this.emitOnOpenedEvent();\n }\n\n /**\n * @ignore\n */\n protected _handleOnClosedEvent(e: AXEvent) {\n this.focus();\n this.emitOnClosedEvent();\n }\n\n /**\n * Handles changes to the internal value.\n *\n * @param value - The new value of the component.\n * @ignore\n */\n override internalValueChanged(value?: Date): void {\n //this.close();\n }\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n this.registerValidation();\n }\n\n @HostListener('keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent): void {\n if (event.key !== 'Enter' && event.code !== 'Space') return;\n this.toggle();\n this.palettePicker().parentColorChanged();\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<ax-dropdown-box\n [look]=\"look\"\n [disabled]=\"disabled\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-content\" (click)=\"_handleInputClickEvent($event)\" [tabindex]=\"tabIndex\">\n @if (value && showBadge()) {\n <div class=\"color-badge\" [ngStyle]=\"{ 'background-color': value }\"></div>\n } @else {\n <div class=\"color-placeholder\">{{ placeholder }}</div>\n }\n @if (showValue()) {\n <div class=\"color-value\">{{ value }}</div>\n }\n </div>\n @if (showClearButton()) {\n @if (value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n }\n @if (showIcon()) {\n <button\n type=\"button\"\n class=\"ax-general-button-icon\"\n [tabIndex]=\"-1\"\n [disabled]=\"disabled\"\n (click)=\"_handleArrowClickEvent($event)\"\n >\n <span class=\"ax-icon ax-icon-color-palette\"></span>\n </button>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-color-palette\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n >\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-swatches></ax-color-palette-swatches>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </ng-container>\n</ax-dropdown-box>\n","import { NgModule } from '@angular/core';\nimport { AXColorBoxComponent } from './color-box.component';\n\n@NgModule({\n imports: [AXColorBoxComponent],\n exports: [AXColorBoxComponent],\n})\nexport class AXColorBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}