@acorex/components 22.1.8 → 22.2.1

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 (32) hide show
  1. package/fesm2022/acorex-components-combo-box.mjs +68 -5
  2. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  3. package/fesm2022/{acorex-components-conversation-acorex-components-conversation-Cl_dlCTX.mjs → acorex-components-conversation-acorex-components-conversation-CjuzzYML.mjs} +170 -103
  4. package/fesm2022/acorex-components-conversation-acorex-components-conversation-CjuzzYML.mjs.map +1 -0
  5. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-_F-fv3Ti.mjs → acorex-components-conversation-picker-rename-file-dialog.component-r-53kDO7.mjs} +2 -2
  6. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-_F-fv3Ti.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-r-53kDO7.mjs.map} +1 -1
  7. package/fesm2022/acorex-components-conversation.mjs +1 -1
  8. package/fesm2022/acorex-components-data-table.mjs +86 -21
  9. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  10. package/fesm2022/acorex-components-highlight.mjs +80 -0
  11. package/fesm2022/acorex-components-highlight.mjs.map +1 -0
  12. package/fesm2022/acorex-components-kanban.mjs +1 -1
  13. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  14. package/fesm2022/acorex-components-lookup.mjs +433 -89
  15. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  16. package/fesm2022/acorex-components-tabs.mjs +116 -38
  17. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  18. package/fesm2022/acorex-components-tree-view.mjs +2 -2
  19. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  20. package/fesm2022/acorex-components-wysiwyg.mjs +76 -6
  21. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  22. package/highlight/README.md +13 -0
  23. package/lookup/README.md +1 -1
  24. package/package.json +7 -3
  25. package/types/acorex-components-combo-box.d.ts +2 -0
  26. package/types/acorex-components-conversation.d.ts +2 -0
  27. package/types/acorex-components-data-table.d.ts +17 -6
  28. package/types/acorex-components-highlight.d.ts +31 -0
  29. package/types/acorex-components-lookup.d.ts +91 -69
  30. package/types/acorex-components-tabs.d.ts +10 -0
  31. package/types/acorex-components-wysiwyg.d.ts +13 -0
  32. package/fesm2022/acorex-components-conversation-acorex-components-conversation-Cl_dlCTX.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-wysiwyg.mjs","sources":["../../../../packages/components/wysiwyg/src/lib/wysiwyg-toolbar/wysiwyg-toolbar.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-toolbar/wysiwyg-toolbar.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-view/wysiwyg-view.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-view/wysiwyg-view.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg.service.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-container/wysiwyg-container.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-container/wysiwyg-container.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg.module.ts","../../../../packages/components/wysiwyg/src/acorex-components-wysiwyg.ts"],"sourcesContent":["import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ElementRef, viewChild, ViewEncapsulation } from '@angular/core';\n\n/**\n * @category Components\n * A component for viewing WYSIWYG content.\n */\n@Component({\n selector: 'ax-wysiwyg-toolbar',\n templateUrl: './wysiwyg-toolbar.component.html',\n encapsulation: ViewEncapsulation.None,\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygToolbarComponent }],\n styleUrl: 'wysiwyg-toolbar.component.css',\n})\nexport class AXWysiwygToolbarComponent {\n toolbar = viewChild<ElementRef<HTMLDivElement>>('toolbar');\n}\n","<div #toolbar class=\"ax-wysiwyg-toolbar-content\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ElementRef, viewChild, ViewEncapsulation } from '@angular/core';\n\n/**\n * @category Components\n * A component for viewing WYSIWYG content.\n */\n@Component({\n selector: 'ax-wysiwyg-view',\n templateUrl: './wysiwyg-view.component.html',\n encapsulation: ViewEncapsulation.None,\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygViewComponent }],\n styleUrl: 'wysiwyg-view.component.css',\n})\nexport class AXWysiwygViewComponent {\n editor = viewChild<ElementRef<HTMLDivElement>>('editor');\n}\n","<div #editor></div>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class WysiwygService {\n selectedColor = signal('');\n selectedBackgroundColor = signal('');\n}\n","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n HostBinding,\n OnDestroy,\n PLATFORM_ID,\n ViewEncapsulation,\n afterNextRender,\n contentChild,\n effect,\n forwardRef,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { QuillDeltaToHtmlConverter } from 'quill-delta-to-html';\nimport type Quill from 'quill/quill.d.ts';\nimport { AXWysiwygToolbarComponent } from '../wysiwyg-toolbar/wysiwyg-toolbar.component';\nimport { AXWysiwygViewComponent } from '../wysiwyg-view/wysiwyg-view.component';\nimport { WysiwygService } from '../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-container',\n templateUrl: './wysiwyg-container.component.html',\n styleUrl: './wysiwyg-container.component.css',\n inputs: ['look', 'readonly', 'disabled', 'value'],\n outputs: ['onValueChanged'],\n\n encapsulation: ViewEncapsulation.None,\n host: {\n '[style.--ax-comp-wysiwyg-initial-line]': 'initialLine() + \"\"',\n },\n providers: [\n WysiwygService,\n { provide: AXComponent, useExisting: AXWysiwygContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXWysiwygContainerComponent },\n { provide: AXValuableComponent, useExisting: AXWysiwygContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXWysiwygContainerComponent),\n multi: true,\n },\n ],\n})\nexport class AXWysiwygContainerComponent\n extends classes(MXInputBaseValueComponent<string>, MXLookComponent)\n implements OnDestroy\n{\n /**\n * Specifies the placeholder text.\n *\n */\n placeHolder = input<string>();\n\n /**\n * Specifies the initial editor height in number of text lines.\n *\n */\n initialLine = input(3);\n\n private wysiwygService = inject(WysiwygService);\n protected isQuillLoaded = signal(false);\n private isEditorClean = signal(true);\n private wysiwyg = signal<Quill | null>(null);\n private container = contentChild(AXWysiwygViewComponent);\n private toolbar = contentChild(AXWysiwygToolbarComponent);\n private platformId = inject(PLATFORM_ID);\n private changeHandlerTimer: any = null;\n\n #init = afterNextRender(async () => {\n if (!isPlatformBrowser(this.platformId)) return;\n\n const Quill = (await import('quill')).default;\n const icons = Quill.import('ui/icons') as any;\n\n icons['bold'] = '<ax-icon class=\"ax-icon ax-icon-bold\"></ax-icon>';\n icons['italic'] = '<ax-icon class=\"ax-icon ax-icon-italic\"></ax-icon>';\n icons['underline'] = '<ax-icon class=\"ax-icon ax-icon-under-line\"></ax-icon>';\n icons['strike'] = '<ax-icon class=\"ax-icon ax-icon-strike\"></ax-icon>';\n icons['code-block'] = '<ax-icon class=\"ax-icon ax-icon-code\"></ax-icon>';\n icons['color'] = '<ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>';\n icons['background'] = '<ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>';\n icons.list['ordered'] = '<ax-icon class=\"ax-icon ax-icon-order-list\"></ax-icon>';\n icons.list['bullet'] = '<ax-icon class=\"ax-icon ax-icon-un-order-list\"></ax-icon>';\n icons['image'] = ' <ax-icon class=\"ax-icon ax-icon-image\"></ax-icon>';\n icons['link'] = '<ax-icon class=\"ax-icon ax-icon-link\"></ax-icon>';\n icons['video'] = '<ax-icon class=\"ax-icon ax-icon-attach\"></ax-icon>';\n icons.direction[''] = '<ax-icon class=\"ax-icon ax-icon-paragraph \"> </ax-icon>';\n icons.direction['rtl'] = '';\n icons.align[''] = '<ax-icon class=\"ax-icon ax-icon-align-left \"></ax-icon>';\n icons.align['center'] = '<ax-icon class=\"ax-icon ax-icon-align-center\"></ax-icon>';\n icons.align['justify'] = '<ax-icon class=\"ax-icon ax-icon-align-justify\"></ax-icon>';\n icons.align['right'] = '<ax-icon class=\"ax-icon ax-icon-align-right\"></ax-icon>';\n icons.undo = '<ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>';\n icons.redo = ' <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>';\n\n await import('quill').then(async (e) => {\n const hljs = (await import('highlight.js')).default;\n const quill = new e.default(this.container().editor().nativeElement, {\n modules: {\n syntax: { hljs },\n toolbar: {\n container: this.toolbar()?.toolbar().nativeElement,\n handlers: {\n undo() {\n (quill.getModule('history') as any).undo();\n },\n redo() {\n (quill.getModule('history') as any).redo();\n },\n color: (value) => {\n this.wysiwygService.selectedColor.set(value);\n if (value) quill.format('color', value);\n else quill.format('color', false);\n },\n background: (value) => {\n this.wysiwygService.selectedBackgroundColor.set(value);\n if (value) quill.format('background', value);\n else quill.format('background', false);\n },\n },\n },\n history: {\n delay: 500, // ms between stack snapshots\n maxStack: 200, // undo/redo depth\n userOnly: true, // only record user changes (not API changes)\n },\n },\n\n theme: 'snow',\n });\n this.wysiwyg.set(quill);\n this.isQuillLoaded.set(true);\n });\n\n this.disabledChange.subscribe((disabled) => {\n if (disabled) {\n this.wysiwyg().disable();\n } else {\n this.wysiwyg().enable();\n }\n });\n\n this.readonlyChange.subscribe((readonly) => {\n if (readonly) {\n this.wysiwyg().disable();\n } else {\n this.wysiwyg().enable();\n }\n });\n });\n\n #effect1 = effect(() => {\n if (!this.isQuillLoaded()) return;\n if (this.placeHolder()) {\n this.wysiwyg().root.setAttribute('data-placeholder', this.placeHolder());\n } else {\n this.wysiwyg().root.setAttribute('data-placeholder', 'Write Your Message ...');\n }\n });\n\n #effect2 = effect(() => {\n if (this.isQuillLoaded() && this.value) this.setWysiwygContent(this.value);\n });\n\n #effect3 = effect(() => {\n if (this.isQuillLoaded()) {\n this.wysiwyg().on('text-change', this.changeHandler.bind(this));\n this.wysiwyg().on('selection-change', (range, oldRange) => {\n if (this.disabled) return;\n if (range && !oldRange) {\n this.emitOnFocusEvent();\n } else if (!range && oldRange) {\n this.emitOnBlurEvent();\n }\n if (range) {\n const format = this.wysiwyg().getFormat(range);\n this.wysiwygService.selectedColor.set(format['color'] as string);\n this.wysiwygService.selectedBackgroundColor.set(format['background'] as string);\n }\n });\n }\n });\n\n protected changeHandler() {\n if (this.disabled) return;\n\n if (this.changeHandlerTimer) {\n clearTimeout(this.changeHandlerTimer);\n }\n\n this.changeHandlerTimer = setTimeout(() => {\n const value = this.wysiwyg()?.root.innerHTML;\n\n if (value === '<p><br></p>' || !value) {\n this.commitValue(null);\n if (this.isEditorClean()) return;\n this.isEditorClean.set(true);\n } else {\n const delta = this.wysiwyg()?.getContents().ops;\n\n const converter = new QuillDeltaToHtmlConverter(delta, {\n inlineStyles: true,\n allowBackgroundClasses: true,\n });\n\n const html = converter.convert();\n this.commitValue(html, true);\n if (!this.isEditorClean()) return;\n this.isEditorClean.set(false);\n }\n }, 300);\n }\n\n /** @ignore */\n override ngOnDestroy(): void {\n this.wysiwyg()?.off('text-change', this.changeHandler);\n this.disabledChange.unsubscribe();\n }\n\n /**\n * Focuses the component.\n *\n * @returns void - No return value. The component gains focus.\n */\n override focus() {\n this.wysiwyg().focus();\n }\n\n /**\n * Removes focus from the component.\n *\n * @returns void - No return value. The component loses focus.\n */\n override blur() {\n this.wysiwyg().blur();\n }\n\n /**\n * Checks if the component is focused or has any focused element.\n *\n * @returns boolean - True if the component has focus.\n */\n override hasFocus(): boolean {\n return super.hasFocus();\n }\n\n /**\n * Sets the disabled state of the component.\n *\n * @param isDisabled - Whether the component should be disabled.\n * @returns void - No return value.\n */\n // override setDisabledState(isDisabled: boolean): void {\n // super.setDisabledState(isDisabled);\n // }\n\n public setWysiwygContent(value: string) {\n const quill = this.wysiwyg();\n const delta = quill.clipboard.convert({ html: value });\n quill.setContents(delta);\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n\n @HostBinding('class')\n get __hostClass(): string {\n const style = this.disabled ? 'ax-disable' : '';\n return style;\n }\n}\n","<div class=\"ax-editor-container ax-default {{ look }}\">\n <div class=\"ax-quill-container\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-alignment',\n templateUrl: './wysiwyg-alignment.component.html',\n\n imports: [],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygAlignmentComponent }],\n})\nexport class AXWysiwygAlignmentComponent {}\n","<span class=\"ql-formats\">\n <select class=\"ql-align\"></select>\n</span>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorColorIndicatorComponent } from '@acorex/components/decorators';\nimport { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { WysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-colors',\n templateUrl: './wysiwyg-colors.component.html',\n\n encapsulation: ViewEncapsulation.None,\n imports: [AXDecoratorColorIndicatorComponent],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygColorsComponent }],\n})\nexport class AXWysiwygColorsComponent {\n protected wysiwygService = inject(WysiwygService);\n}\n","<div class=\"flex\">\n <div class=\"ql-formats\">\n <ax-color-indicator [previewColor]=\"wysiwygService.selectedColor()\"></ax-color-indicator>\n <select class=\"ql-color\"></select>\n </div>\n <div class=\"ql-formats\">\n <ax-color-indicator [previewColor]=\"wysiwygService.selectedBackgroundColor()\"></ax-color-indicator>\n <select class=\"ql-background\"></select>\n </div>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-font-style',\n templateUrl: './wysiwyg-font-style.component.html',\n imports: [],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygFontStyleComponent }],\n})\nexport class AXWysiwygFontStyleComponent {}\n","<div class=\"flex\">\n <span class=\"ql-formats\">\n <button class=\"ql-bold\" title=\"Bold\"></button>\n <button class=\"ql-italic\" title=\"Italic\"></button>\n <button class=\"ql-underline\" title=\"Underline\"></button>\n <button class=\"ql-strike\" title=\"Strikethrough\"></button>\n <button class=\"ql-code-block\" title=\"Code block\"></button>\n </span>\n\n <span class=\"ql-formats\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n\n <span class=\"ql-formats\">\n <select class=\"ql-header\">\n <option value=\"1\">H1</option>\n <option value=\"2\">H2</option>\n <option value=\"3\">H3</option>\n <option value=\"4\">H4</option>\n <option value=\"5\">H5</option>\n <option value=\"6\">H6</option>\n <option selected></option>\n </select>\n </span>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-history',\n templateUrl: './wysiwyg-history.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygHistoryComponent }],\n})\nexport class AXWysiwygHistoryComponent {}\n","<span class=\"ql-formats\">\n <button class=\"ql-undo\"></button>\n <button class=\"ql-redo\"></button>\n</span>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-insert',\n templateUrl: './wysiwyg-insert.component.html',\n\n encapsulation: ViewEncapsulation.None,\n imports: [],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygInsertComponent }],\n})\nexport class AXWysiwygInsertComponent {}\n","<span class=\"ql-formats\">\n <button class=\"ql-image\" title=\"Insert image\"></button>\n <button class=\"ql-video\" title=\"Insert video\"></button>\n <button class=\"ql-link\" title=\"Insert link\"></button>\n</span>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-list',\n templateUrl: './wysiwyg-list.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygListComponent }],\n})\nexport class AXWysiwygListComponent {}\n","<span class=\"ql-formats\">\n <button class=\"ql-list\" value=\"ordered\" title=\"Ordered list\"></button>\n <button class=\"ql-list\" value=\"bullet\" title=\"Bulleted list\"></button>\n <button class=\"ql-direction\" value=\"rtl\" title=\"Right-to-left\"></button>\n</span>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorPaletteModule } from '@acorex/components/color-palette';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXWysiwygContainerComponent } from './wysiwyg-container/wysiwyg-container.component';\nimport { AXWysiwygToolbarComponent } from './wysiwyg-toolbar/wysiwyg-toolbar.component';\nimport { AXWysiwygAlignmentComponent } from './wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component';\nimport { AXWysiwygColorsComponent } from './wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component';\nimport { AXWysiwygFontStyleComponent } from './wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component';\nimport { AXWysiwygHistoryComponent } from './wysiwyg-tools/wysiwyg-history/wysiwyg-history.component';\nimport { AXWysiwygInsertComponent } from './wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component';\nimport { AXWysiwygListComponent } from './wysiwyg-tools/wysiwyg-list/wysiwyg-list.component';\nimport { AXWysiwygViewComponent } from './wysiwyg-view/wysiwyg-view.component';\n\nconst COMPONENT = [\n AXWysiwygContainerComponent,\n AXWysiwygViewComponent,\n AXWysiwygAlignmentComponent,\n AXWysiwygColorsComponent,\n AXWysiwygFontStyleComponent,\n AXWysiwygHistoryComponent,\n AXWysiwygInsertComponent,\n AXWysiwygListComponent,\n AXWysiwygToolbarComponent,\n];\n\nconst MODULES = [\n AXButtonModule,\n AXDecoratorModule,\n AXSelectBoxModule,\n FormsModule,\n AXColorPaletteModule,\n AXPopoverModule,\n AXTextBoxModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXWysiwygModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA;;;AAGG;MASU,yBAAyB,CAAA;AARtC,IAAA,WAAA,GAAA;QASE,IAAA,CAAA,OAAO,GAAG,SAAS,CAA6B,SAAS;oFAAC;AAC3D,IAAA;8GAFY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,SAAA,EAHzB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,8ICZ/E,mKAIA,EAAA,MAAA,EAAA,CAAA,ijCAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDWa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,aAAA,EAEf,iBAAiB,CAAC,IAAI,aAE1B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,yBAA2B,EAAE,CAAC,EAAA,QAAA,EAAA,mKAAA,EAAA,MAAA,EAAA,CAAA,ijCAAA,CAAA,EAAA;qEAI7B,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEb3D;;;AAGG;MASU,sBAAsB,CAAA;AARnC,IAAA,WAAA,GAAA;QASE,IAAA,CAAA,MAAM,GAAG,SAAS,CAA6B,QAAQ;mFAAC;AACzD,IAAA;8GAFY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAHtB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,4ICZ5E,uBACA,EAAA,MAAA,EAAA,CAAA,qIAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDca,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,aAAA,EAEZ,iBAAiB,CAAC,IAAI,aAE1B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,sBAAwB,EAAE,CAAC,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qIAAA,CAAA,EAAA;oEAI3B,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MEb5C,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;QAEE,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,EAAE;0FAAC;QAC1B,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,EAAE;oGAAC;AACrC,IAAA;8GAHY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAd,cAAc,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;AC4BD;;;AAGG;AAwBG,MAAO,2BACX,SAAQ,OAAO,EAAC,yBAAiC,GAAE,eAAe,CAAC,CAAA;AAxBrE,IAAA,WAAA,GAAA;;AA2BE;;;AAGG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK;mGAAU;AAE7B;;;AAGG;QACH,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,CAAC;wFAAC;AAEd,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QACrC,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,KAAK;0FAAC;QAC/B,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,IAAI;0FAAC;QAC5B,IAAA,CAAA,OAAO,GAAG,MAAM,CAAe,IAAI;oFAAC;QACpC,IAAA,CAAA,SAAS,GAAG,YAAY,CAAC,sBAAsB;sFAAC;QAChD,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,yBAAyB;oFAAC;AACjD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,IAAA,CAAA,kBAAkB,GAAQ,IAAI;AAEtC,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,YAAW;AACjC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;gBAAE;YAEzC,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,OAAO,CAAC,EAAE,OAAO;YAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAQ;AAE7C,YAAA,KAAK,CAAC,MAAM,CAAC,GAAG,kDAAkD;AAClE,YAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,oDAAoD;AACtE,YAAA,KAAK,CAAC,WAAW,CAAC,GAAG,wDAAwD;AAC7E,YAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,oDAAoD;AACtE,YAAA,KAAK,CAAC,YAAY,CAAC,GAAG,kDAAkD;AACxE,YAAA,KAAK,CAAC,OAAO,CAAC,GAAG,2DAA2D;AAC5E,YAAA,KAAK,CAAC,YAAY,CAAC,GAAG,uDAAuD;AAC7E,YAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,wDAAwD;AAChF,YAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,2DAA2D;AAClF,YAAA,KAAK,CAAC,OAAO,CAAC,GAAG,oDAAoD;AACrE,YAAA,KAAK,CAAC,MAAM,CAAC,GAAG,kDAAkD;AAClE,YAAA,KAAK,CAAC,OAAO,CAAC,GAAG,oDAAoD;AACrE,YAAA,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,yDAAyD;AAC/E,YAAA,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;AAC3B,YAAA,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,yDAAyD;AAC3E,YAAA,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,0DAA0D;AAClF,YAAA,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,2DAA2D;AACpF,YAAA,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,yDAAyD;AAChF,YAAA,KAAK,CAAC,IAAI,GAAG,kDAAkD;AAC/D,YAAA,KAAK,CAAC,IAAI,GAAG,mDAAmD;YAEhE,MAAM,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAI;gBACrC,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,cAAc,CAAC,EAAE,OAAO;AACnD,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE;AACnE,oBAAA,OAAO,EAAE;wBACP,MAAM,EAAE,EAAE,IAAI,EAAE;AAChB,wBAAA,OAAO,EAAE;4BACP,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,aAAa;AAClD,4BAAA,QAAQ,EAAE;gCACR,IAAI,GAAA;oCACD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAS,CAAC,IAAI,EAAE;gCAC5C,CAAC;gCACD,IAAI,GAAA;oCACD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAS,CAAC,IAAI,EAAE;gCAC5C,CAAC;AACD,gCAAA,KAAK,EAAE,CAAC,KAAK,KAAI;oCACf,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5C,oCAAA,IAAI,KAAK;AAAE,wCAAA,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;;AAClC,wCAAA,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;gCACnC,CAAC;AACD,gCAAA,UAAU,EAAE,CAAC,KAAK,KAAI;oCACpB,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC;AACtD,oCAAA,IAAI,KAAK;AAAE,wCAAA,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC;;AACvC,wCAAA,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC;gCACxC,CAAC;AACF,6BAAA;AACF,yBAAA;AACD,wBAAA,OAAO,EAAE;4BACP,KAAK,EAAE,GAAG;4BACV,QAAQ,EAAE,GAAG;4BACb,QAAQ,EAAE,IAAI;AACf,yBAAA;AACF,qBAAA;AAED,oBAAA,KAAK,EAAE,MAAM;AACd,iBAAA,CAAC;AACF,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;gBACzC,IAAI,QAAQ,EAAE;AACZ,oBAAA,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE;gBAC1B;qBAAO;AACL,oBAAA,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;gBACzB;AACF,YAAA,CAAC,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;gBACzC,IAAI,QAAQ,EAAE;AACZ,oBAAA,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE;gBAC1B;qBAAO;AACL,oBAAA,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;gBACzB;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,gBAAA,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1E;iBAAO;AACL,gBAAA,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;YAChF;QACF,CAAC;qFAAC;AAEF,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,MAAK;AACrB,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,KAAK;AAAE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5E,CAAC;qFAAC;AAEF,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,MAAK;AACrB,YAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,gBAAA,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,gBAAA,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAI;oBACxD,IAAI,IAAI,CAAC,QAAQ;wBAAE;AACnB,oBAAA,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;wBACtB,IAAI,CAAC,gBAAgB,EAAE;oBACzB;AAAO,yBAAA,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE;wBAC7B,IAAI,CAAC,eAAe,EAAE;oBACxB;oBACA,IAAI,KAAK,EAAE;wBACT,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;AAC9C,wBAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAW,CAAC;AAChE,wBAAA,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAW,CAAC;oBACjF;AACF,gBAAA,CAAC,CAAC;YACJ;QACF,CAAC;qFAAC;AA2FH,IAAA;AA5MC,IAAA,KAAK;AAmFL,IAAA,QAAQ;AASR,IAAA,QAAQ;AAIR,IAAA,QAAQ;IAmBE,aAAa,GAAA;QACrB,IAAI,IAAI,CAAC,QAAQ;YAAE;AAEnB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACvC;AAEA,QAAA,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,MAAK;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,SAAS;AAE5C,YAAA,IAAI,KAAK,KAAK,aAAa,IAAI,CAAC,KAAK,EAAE;AACrC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACtB,IAAI,IAAI,CAAC,aAAa,EAAE;oBAAE;AAC1B,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9B;iBAAO;gBACL,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG;AAE/C,gBAAA,MAAM,SAAS,GAAG,IAAI,yBAAyB,CAAC,KAAK,EAAE;AACrD,oBAAA,YAAY,EAAE,IAAI;AAClB,oBAAA,sBAAsB,EAAE,IAAI;AAC7B,iBAAA,CAAC;AAEF,gBAAA,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE;AAChC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;AAC5B,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBAAE;AAC3B,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;YAC/B;QACF,CAAC,EAAE,GAAG,CAAC;IACT;;IAGS,WAAW,GAAA;AAClB,QAAA,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;AACtD,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;IACnC;AAEA;;;;AAIG;IACM,KAAK,GAAA;AACZ,QAAA,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;IACxB;AAEA;;;;AAIG;IACM,IAAI,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;IACvB;AAEA;;;;AAIG;IACM,QAAQ,GAAA;AACf,QAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;IACzB;AAEA;;;;;AAKG;;;;AAKI,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE;AAC5B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACtD,QAAA,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;IAC1B;AAEA,IAAA,IACY,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI;IAClB;AAEA,IAAA,IACI,WAAW,GAAA;AACb,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,YAAY,GAAG,EAAE;AAC/C,QAAA,OAAO,KAAK;IACd;8GApOW,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,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,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,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAZ3B;YACT,cAAc;AACd,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,2BAA2B,EAAE;AAClE,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,2BAA2B,EAAE;AAC3E,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,2BAA2B,EAAE;AAC1E,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC;AAC1D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAsBgC,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACxB,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9E1D,0PAOA,EAAA,MAAA,EAAA,CAAA,ms5BAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDkDa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAvBvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,UAGxB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAA,OAAA,EACxC,CAAC,gBAAgB,CAAC,iBAEZ,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,wCAAwC,EAAE,oBAAoB;qBAC/D,EAAA,SAAA,EACU;wBACT,cAAc;AACd,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,6BAA6B,EAAE;AAClE,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,6BAA6B,EAAE;AAC3E,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,6BAA6B,EAAE;AAC1E,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,iCAAiC,CAAC;AAC1D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,0PAAA,EAAA,MAAA,EAAA,CAAA,ms5BAAA,CAAA,EAAA;AAsBgC,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,sBAAsB,yFACxB,yBAAyB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA;sBAsMvD,WAAW;uBAAC,WAAW;;sBAKvB,WAAW;uBAAC,OAAO;;;AEtRtB;;;AAGG;MASU,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,SAAA,EAF3B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC,0BCbjF,gFAGA,EAAA,CAAA,CAAA;;2FDYa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,OAAA,EAGvB,EAAE,EAAA,SAAA,EAEA,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,2BAA6B,EAAE,CAAC,EAAA,QAAA,EAAA,gFAAA,EAAA;;;AERjF;;;AAGG;MAUU,wBAAwB,CAAA;AATrC,IAAA,WAAA,GAAA;AAUY,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,IAAA;8GAFY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,SAAA,EAFxB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB9E,qZAUA,4CDIY,kCAAkC,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAIjC,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,iBAGd,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,kCAAkC,CAAC,EAAA,SAAA,EAElC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,wBAA0B,EAAE,CAAC,EAAA,QAAA,EAAA,qZAAA,EAAA;;;AEb9E;;;AAGG;MAQU,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,SAAA,EAF3B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC,0BCZjF,u+BA8BA,EAAA,CAAA,CAAA;;2FDhBa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,OAAA,EAExB,EAAE,EAAA,SAAA,EAEA,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,2BAA6B,EAAE,CAAC,EAAA,QAAA,EAAA,u+BAAA,EAAA;;;AETjF;;;AAGG;MASU,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,SAAA,EAFzB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,0BCb/E,sHAIA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDWa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,iBAEf,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,EAAE,EAAA,SAAA,EAEA,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,yBAA2B,EAAE,CAAC,EAAA,QAAA,EAAA,sHAAA,EAAA;;;AEV/E;;;AAGG;MAUU,wBAAwB,CAAA;8GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,SAAA,EAFxB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,0BCd9E,mOAKA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDWa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,iBAGd,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,EAAE,EAAA,SAAA,EAEA,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,wBAA0B,EAAE,CAAC,EAAA,QAAA,EAAA,mOAAA,EAAA;;;AEX9E;;;AAGG;MASU,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAFtB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,0BCb5E,0RAKA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDUa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,iBAEZ,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,EAAE,EAAA,SAAA,EAEA,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,sBAAwB,EAAE,CAAC,EAAA,QAAA,EAAA,0RAAA,EAAA;;;AEK5E,MAAM,SAAS,GAAG;IAChB,2BAA2B;IAC3B,sBAAsB;IACtB,2BAA2B;IAC3B,wBAAwB;IACxB,2BAA2B;IAC3B,yBAAyB;IACzB,wBAAwB;IACxB,sBAAsB;IACtB,yBAAyB;CAC1B;AAED,MAAM,OAAO,GAAG;IACd,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;IACX,oBAAoB;IACpB,eAAe;IACf,eAAe;CAChB;MAOY,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,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,eAAe,YAd1B,cAAc;YACd,iBAAiB;YACjB,iBAAiB;YACjB,WAAW;YACX,oBAAoB;YACpB,eAAe;AACf,YAAA,eAAe,EAlBf,2BAA2B;YAC3B,sBAAsB;YACtB,2BAA2B;YAC3B,wBAAwB;YACxB,2BAA2B;YAC3B,yBAAyB;YACzB,wBAAwB;YACxB,sBAAsB;AACtB,YAAA,yBAAyB,aARzB,2BAA2B;YAC3B,sBAAsB;YACtB,2BAA2B;YAC3B,wBAAwB;YACxB,2BAA2B;YAC3B,yBAAyB;YACzB,wBAAwB;YACxB,sBAAsB;YACtB,yBAAyB,CAAA,EAAA,CAAA,CAAA;+GAkBd,eAAe,EAAA,OAAA,EAAA,CAJb,OAAO,EAnBpB,wBAAwB,CAAA,EAAA,CAAA,CAAA;;2FAuBb,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;AC5CD;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-components-wysiwyg.mjs","sources":["../../../../packages/components/wysiwyg/src/lib/wysiwyg-toolbar/wysiwyg-toolbar.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-toolbar/wysiwyg-toolbar.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-view/wysiwyg-view.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-view/wysiwyg-view.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg.service.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-container/wysiwyg-container.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-container/wysiwyg-container.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.ts","../../../../packages/components/wysiwyg/src/lib/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.html","../../../../packages/components/wysiwyg/src/lib/wysiwyg.module.ts","../../../../packages/components/wysiwyg/src/acorex-components-wysiwyg.ts"],"sourcesContent":["import { AXComponent } from '@acorex/cdk/common';\nimport { AXZIndexService, AXZToken } from '@acorex/core/z-index';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n afterNextRender,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n PLATFORM_ID,\n Renderer2,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\ninterface PickerOverlayState {\n picker: HTMLElement;\n zToken: AXZToken;\n}\n\n/**\n * @category Components\n * A component for viewing WYSIWYG content.\n */\n@Component({\n selector: 'ax-wysiwyg-toolbar',\n templateUrl: './wysiwyg-toolbar.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXWysiwygToolbarComponent }],\n styleUrl: 'wysiwyg-toolbar.component.css',\n})\nexport class AXWysiwygToolbarComponent {\n toolbar = viewChild<ElementRef<HTMLDivElement>>('toolbar');\n\n private readonly host = inject(ElementRef<HTMLElement>);\n private readonly renderer = inject(Renderer2);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n private readonly zIndexService = inject(AXZIndexService);\n\n private observer: MutationObserver | null = null;\n private overlayState: PickerOverlayState | null = null;\n\n constructor() {\n afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this.setupPickerOverlay();\n });\n\n this.destroyRef.onDestroy(() => this.teardownPickerOverlay());\n }\n\n private setupPickerOverlay(): void {\n const toolbarEl = this.toolbar()?.nativeElement;\n if (!toolbarEl) {\n return;\n }\n\n this.observer = new MutationObserver(() => this.syncPickerOverlay());\n this.observer.observe(toolbarEl, {\n attributes: true,\n attributeFilter: ['class'],\n subtree: true,\n });\n\n toolbarEl.addEventListener('click', (event) => {\n const target = event.target as HTMLElement | null;\n if (target?.closest('.ql-picker-label, .ql-picker-item')) {\n requestAnimationFrame(() => this.syncPickerOverlay());\n }\n });\n }\n\n private syncPickerOverlay(): void {\n const toolbarEl = this.toolbar()?.nativeElement;\n if (!toolbarEl) {\n return;\n }\n\n const expandedPicker = toolbarEl.querySelector<HTMLElement>('.ql-picker.ql-expanded');\n if (!expandedPicker) {\n this.closePickerOverlay();\n return;\n }\n\n if (this.overlayState?.picker === expandedPicker) {\n return;\n }\n\n this.closePickerOverlay();\n this.openPickerOverlay(expandedPicker);\n }\n\n private openPickerOverlay(picker: HTMLElement): void {\n const zToken = this.zIndexService.acquire();\n this.overlayState = { picker, zToken };\n\n this.renderer.setStyle(this.host.nativeElement, 'z-index', String(zToken.zIndex));\n this.renderer.setStyle(picker, 'z-index', String(zToken.zIndex));\n }\n\n private closePickerOverlay(): void {\n if (!this.overlayState) {\n return;\n }\n\n const { picker, zToken } = this.overlayState;\n this.renderer.removeStyle(this.host.nativeElement, 'z-index');\n this.renderer.removeStyle(picker, 'z-index');\n\n this.zIndexService.release(zToken);\n this.overlayState = null;\n }\n\n private teardownPickerOverlay(): void {\n this.observer?.disconnect();\n this.observer = null;\n this.closePickerOverlay();\n }\n}\n","<div #toolbar class=\"ax-wysiwyg-toolbar-content\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ElementRef, viewChild, ViewEncapsulation } from '@angular/core';\n\n/**\n * @category Components\n * A component for viewing WYSIWYG content.\n */\n@Component({\n selector: 'ax-wysiwyg-view',\n templateUrl: './wysiwyg-view.component.html',\n encapsulation: ViewEncapsulation.None,\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygViewComponent }],\n styleUrl: 'wysiwyg-view.component.css',\n})\nexport class AXWysiwygViewComponent {\n editor = viewChild<ElementRef<HTMLDivElement>>('editor');\n}\n","<div #editor></div>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class WysiwygService {\n selectedColor = signal('');\n selectedBackgroundColor = signal('');\n}\n","import {\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n HostBinding,\n OnDestroy,\n PLATFORM_ID,\n ViewEncapsulation,\n afterNextRender,\n contentChild,\n effect,\n forwardRef,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { QuillDeltaToHtmlConverter } from 'quill-delta-to-html';\nimport type Quill from 'quill/quill.d.ts';\nimport { AXWysiwygToolbarComponent } from '../wysiwyg-toolbar/wysiwyg-toolbar.component';\nimport { AXWysiwygViewComponent } from '../wysiwyg-view/wysiwyg-view.component';\nimport { WysiwygService } from '../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-container',\n templateUrl: './wysiwyg-container.component.html',\n styleUrl: './wysiwyg-container.component.css',\n inputs: ['look', 'readonly', 'disabled', 'value'],\n outputs: ['onValueChanged'],\n\n encapsulation: ViewEncapsulation.None,\n host: {\n '[style.--ax-comp-wysiwyg-initial-line]': 'initialLine() + \"\"',\n },\n providers: [\n WysiwygService,\n { provide: AXComponent, useExisting: AXWysiwygContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXWysiwygContainerComponent },\n { provide: AXValuableComponent, useExisting: AXWysiwygContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXWysiwygContainerComponent),\n multi: true,\n },\n ],\n})\nexport class AXWysiwygContainerComponent\n extends classes(MXInputBaseValueComponent<string>, MXLookComponent)\n implements OnDestroy\n{\n /**\n * Specifies the placeholder text.\n *\n */\n placeHolder = input<string>();\n\n /**\n * Specifies the initial editor height in number of text lines.\n *\n */\n initialLine = input(3);\n\n private wysiwygService = inject(WysiwygService);\n protected isQuillLoaded = signal(false);\n private isEditorClean = signal(true);\n private wysiwyg = signal<Quill | null>(null);\n private container = contentChild(AXWysiwygViewComponent);\n private toolbar = contentChild(AXWysiwygToolbarComponent);\n private platformId = inject(PLATFORM_ID);\n private changeHandlerTimer: any = null;\n\n #init = afterNextRender(async () => {\n if (!isPlatformBrowser(this.platformId)) return;\n\n const Quill = (await import('quill')).default;\n const icons = Quill.import('ui/icons') as any;\n\n icons['bold'] = '<ax-icon class=\"ax-icon ax-icon-bold\"></ax-icon>';\n icons['italic'] = '<ax-icon class=\"ax-icon ax-icon-italic\"></ax-icon>';\n icons['underline'] = '<ax-icon class=\"ax-icon ax-icon-under-line\"></ax-icon>';\n icons['strike'] = '<ax-icon class=\"ax-icon ax-icon-strike\"></ax-icon>';\n icons['code-block'] = '<ax-icon class=\"ax-icon ax-icon-code\"></ax-icon>';\n icons['color'] = '<ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>';\n icons['background'] = '<ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>';\n icons.list['ordered'] = '<ax-icon class=\"ax-icon ax-icon-order-list\"></ax-icon>';\n icons.list['bullet'] = '<ax-icon class=\"ax-icon ax-icon-un-order-list\"></ax-icon>';\n icons['image'] = ' <ax-icon class=\"ax-icon ax-icon-image\"></ax-icon>';\n icons['link'] = '<ax-icon class=\"ax-icon ax-icon-link\"></ax-icon>';\n icons['video'] = '<ax-icon class=\"ax-icon ax-icon-attach\"></ax-icon>';\n icons.direction[''] = '<ax-icon class=\"ax-icon ax-icon-paragraph \"> </ax-icon>';\n icons.direction['rtl'] = '';\n icons.align[''] = '<ax-icon class=\"ax-icon ax-icon-align-left \"></ax-icon>';\n icons.align['center'] = '<ax-icon class=\"ax-icon ax-icon-align-center\"></ax-icon>';\n icons.align['justify'] = '<ax-icon class=\"ax-icon ax-icon-align-justify\"></ax-icon>';\n icons.align['right'] = '<ax-icon class=\"ax-icon ax-icon-align-right\"></ax-icon>';\n icons.undo = '<ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>';\n icons.redo = ' <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>';\n\n await import('quill').then(async (e) => {\n const hljs = (await import('highlight.js')).default;\n const quill = new e.default(this.container().editor().nativeElement, {\n modules: {\n syntax: { hljs },\n toolbar: {\n container: this.toolbar()?.toolbar().nativeElement,\n handlers: {\n undo() {\n (quill.getModule('history') as any).undo();\n },\n redo() {\n (quill.getModule('history') as any).redo();\n },\n color: (value) => {\n this.wysiwygService.selectedColor.set(value);\n if (value) quill.format('color', value);\n else quill.format('color', false);\n },\n background: (value) => {\n this.wysiwygService.selectedBackgroundColor.set(value);\n if (value) quill.format('background', value);\n else quill.format('background', false);\n },\n },\n },\n history: {\n delay: 500, // ms between stack snapshots\n maxStack: 200, // undo/redo depth\n userOnly: true, // only record user changes (not API changes)\n },\n },\n\n theme: 'snow',\n });\n this.wysiwyg.set(quill);\n this.isQuillLoaded.set(true);\n });\n\n this.disabledChange.subscribe((disabled) => {\n if (disabled) {\n this.wysiwyg().disable();\n } else {\n this.wysiwyg().enable();\n }\n });\n\n this.readonlyChange.subscribe((readonly) => {\n if (readonly) {\n this.wysiwyg().disable();\n } else {\n this.wysiwyg().enable();\n }\n });\n });\n\n #effect1 = effect(() => {\n if (!this.isQuillLoaded()) return;\n if (this.placeHolder()) {\n this.wysiwyg().root.setAttribute('data-placeholder', this.placeHolder());\n } else {\n this.wysiwyg().root.setAttribute('data-placeholder', 'Write Your Message ...');\n }\n });\n\n #effect2 = effect(() => {\n if (this.isQuillLoaded() && this.value) this.setWysiwygContent(this.value);\n });\n\n #effect3 = effect(() => {\n if (this.isQuillLoaded()) {\n this.wysiwyg().on('text-change', this.changeHandler.bind(this));\n this.wysiwyg().on('selection-change', (range, oldRange) => {\n if (this.disabled) return;\n if (range && !oldRange) {\n this.emitOnFocusEvent();\n } else if (!range && oldRange) {\n this.emitOnBlurEvent();\n }\n if (range) {\n const format = this.wysiwyg().getFormat(range);\n this.wysiwygService.selectedColor.set(format['color'] as string);\n this.wysiwygService.selectedBackgroundColor.set(format['background'] as string);\n }\n });\n }\n });\n\n protected changeHandler() {\n if (this.disabled) return;\n\n if (this.changeHandlerTimer) {\n clearTimeout(this.changeHandlerTimer);\n }\n\n this.changeHandlerTimer = setTimeout(() => {\n const value = this.wysiwyg()?.root.innerHTML;\n\n if (value === '<p><br></p>' || !value) {\n this.commitValue(null);\n if (this.isEditorClean()) return;\n this.isEditorClean.set(true);\n } else {\n const delta = this.wysiwyg()?.getContents().ops;\n\n const converter = new QuillDeltaToHtmlConverter(delta, {\n inlineStyles: true,\n allowBackgroundClasses: true,\n });\n\n const html = converter.convert();\n this.commitValue(html, true);\n if (!this.isEditorClean()) return;\n this.isEditorClean.set(false);\n }\n }, 300);\n }\n\n /** @ignore */\n override ngOnDestroy(): void {\n this.wysiwyg()?.off('text-change', this.changeHandler);\n this.disabledChange.unsubscribe();\n }\n\n /**\n * Focuses the component.\n *\n * @returns void - No return value. The component gains focus.\n */\n override focus() {\n this.wysiwyg().focus();\n }\n\n /**\n * Removes focus from the component.\n *\n * @returns void - No return value. The component loses focus.\n */\n override blur() {\n this.wysiwyg().blur();\n }\n\n /**\n * Checks if the component is focused or has any focused element.\n *\n * @returns boolean - True if the component has focus.\n */\n override hasFocus(): boolean {\n return super.hasFocus();\n }\n\n /**\n * Sets the disabled state of the component.\n *\n * @param isDisabled - Whether the component should be disabled.\n * @returns void - No return value.\n */\n // override setDisabledState(isDisabled: boolean): void {\n // super.setDisabledState(isDisabled);\n // }\n\n public setWysiwygContent(value: string) {\n const quill = this.wysiwyg();\n const delta = quill.clipboard.convert({ html: value });\n quill.setContents(delta);\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n\n @HostBinding('class')\n get __hostClass(): string {\n const style = this.disabled ? 'ax-disable' : '';\n return style;\n }\n}\n","<div class=\"ax-editor-container ax-default {{ look }}\">\n <div class=\"ax-quill-container\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-alignment',\n templateUrl: './wysiwyg-alignment.component.html',\n\n imports: [],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygAlignmentComponent }],\n})\nexport class AXWysiwygAlignmentComponent {}\n","<span class=\"ql-formats\">\n <select class=\"ql-align\"></select>\n</span>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorColorIndicatorComponent } from '@acorex/components/decorators';\nimport { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { WysiwygService } from '../../wysiwyg.service';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-colors',\n templateUrl: './wysiwyg-colors.component.html',\n\n encapsulation: ViewEncapsulation.None,\n imports: [AXDecoratorColorIndicatorComponent],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygColorsComponent }],\n})\nexport class AXWysiwygColorsComponent {\n protected wysiwygService = inject(WysiwygService);\n}\n","<div class=\"flex\">\n <div class=\"ql-formats\">\n <ax-color-indicator [previewColor]=\"wysiwygService.selectedColor()\"></ax-color-indicator>\n <select class=\"ql-color\"></select>\n </div>\n <div class=\"ql-formats\">\n <ax-color-indicator [previewColor]=\"wysiwygService.selectedBackgroundColor()\"></ax-color-indicator>\n <select class=\"ql-background\"></select>\n </div>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-font-style',\n templateUrl: './wysiwyg-font-style.component.html',\n imports: [],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygFontStyleComponent }],\n})\nexport class AXWysiwygFontStyleComponent {}\n","<div class=\"flex\">\n <span class=\"ql-formats\">\n <button class=\"ql-bold\" title=\"Bold\"></button>\n <button class=\"ql-italic\" title=\"Italic\"></button>\n <button class=\"ql-underline\" title=\"Underline\"></button>\n <button class=\"ql-strike\" title=\"Strikethrough\"></button>\n <button class=\"ql-code-block\" title=\"Code block\"></button>\n </span>\n\n <span class=\"ql-formats\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n\n <span class=\"ql-formats\">\n <select class=\"ql-header\">\n <option value=\"1\">H1</option>\n <option value=\"2\">H2</option>\n <option value=\"3\">H3</option>\n <option value=\"4\">H4</option>\n <option value=\"5\">H5</option>\n <option value=\"6\">H6</option>\n <option selected></option>\n </select>\n </span>\n</div>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-history',\n templateUrl: './wysiwyg-history.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygHistoryComponent }],\n})\nexport class AXWysiwygHistoryComponent {}\n","<span class=\"ql-formats\">\n <button class=\"ql-undo\"></button>\n <button class=\"ql-redo\"></button>\n</span>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-insert',\n templateUrl: './wysiwyg-insert.component.html',\n\n encapsulation: ViewEncapsulation.None,\n imports: [],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygInsertComponent }],\n})\nexport class AXWysiwygInsertComponent {}\n","<span class=\"ql-formats\">\n <button class=\"ql-image\" title=\"Insert image\"></button>\n <button class=\"ql-video\" title=\"Insert video\"></button>\n <button class=\"ql-link\" title=\"Insert link\"></button>\n</span>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * A container component for WYSIWYG (What You See Is What You Get) editor functionality.\n * @category Components\n */\n@Component({\n selector: 'ax-wysiwyg-list',\n templateUrl: './wysiwyg-list.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [],\n\n providers: [{ provide: AXComponent, useExisting: AXWysiwygListComponent }],\n})\nexport class AXWysiwygListComponent {}\n","<span class=\"ql-formats\">\n <button class=\"ql-list\" value=\"ordered\" title=\"Ordered list\"></button>\n <button class=\"ql-list\" value=\"bullet\" title=\"Bulleted list\"></button>\n <button class=\"ql-direction\" value=\"rtl\" title=\"Right-to-left\"></button>\n</span>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXColorPaletteModule } from '@acorex/components/color-palette';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXWysiwygContainerComponent } from './wysiwyg-container/wysiwyg-container.component';\nimport { AXWysiwygToolbarComponent } from './wysiwyg-toolbar/wysiwyg-toolbar.component';\nimport { AXWysiwygAlignmentComponent } from './wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component';\nimport { AXWysiwygColorsComponent } from './wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component';\nimport { AXWysiwygFontStyleComponent } from './wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component';\nimport { AXWysiwygHistoryComponent } from './wysiwyg-tools/wysiwyg-history/wysiwyg-history.component';\nimport { AXWysiwygInsertComponent } from './wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component';\nimport { AXWysiwygListComponent } from './wysiwyg-tools/wysiwyg-list/wysiwyg-list.component';\nimport { AXWysiwygViewComponent } from './wysiwyg-view/wysiwyg-view.component';\n\nconst COMPONENT = [\n AXWysiwygContainerComponent,\n AXWysiwygViewComponent,\n AXWysiwygAlignmentComponent,\n AXWysiwygColorsComponent,\n AXWysiwygFontStyleComponent,\n AXWysiwygHistoryComponent,\n AXWysiwygInsertComponent,\n AXWysiwygListComponent,\n AXWysiwygToolbarComponent,\n];\n\nconst MODULES = [\n AXButtonModule,\n AXDecoratorModule,\n AXSelectBoxModule,\n FormsModule,\n AXColorPaletteModule,\n AXPopoverModule,\n AXTextBoxModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXWysiwygModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ # @acorex/components/highlight
2
+
3
+ Text highlight component for rendering search-term matches in templates.
4
+
5
+ ```typescript
6
+ import { AXHighlightTextComponent } from '@acorex/components/highlight';
7
+ ```
8
+
9
+ ```html
10
+ <ax-highlight-text [text]="item.text" [query]="searchQuery()" />
11
+ ```
12
+
13
+ For DOM-based highlighting, use `@acorex/cdk/highlight` (`AXHighlightDirective`).
package/lookup/README.md CHANGED
@@ -62,7 +62,7 @@ Value binding uses the signal `value` model (`FormValueControl`) — prefer `[(n
62
62
  - `valueField` / `textField` / `disabledField`: field mappings. For tree modes these map to the tree `idField` / `titleField`.
63
63
  - `columns`: column definitions (`{ field, title, width?, expandHandler? }`) for `multi-column` and `multi-column-tree` (mapped to `ax-text-column`).
64
64
  - `treeParentField` / `hasChildrenField`: hierarchy fields for `multi-column-tree` (defaults `parentId` / `hasChild`).
65
- - `searchable`: when `true` (default), the trigger accepts typing and filters the list or tree in every mode. Nested array trees keep matching branches and expand ancestors of hits; lazy callback trees filter each loaded level (unloaded descendants are not searched). When `false`, the trigger is select-only.
65
+ - `searchable`: when `true` (default), the trigger accepts typing and filters the list or tree in every mode. Nested array trees keep matching branches and expand ancestors of hits; lazy callback trees are hydrated once per popup open and searched in full (subsequent keystrokes filter the cached snapshot in memory). When `false`, the trigger is select-only.
66
66
  - `adaptivityEnabled`: when `true` (default), the list opens as a bottom actionsheet on small screens instead of a dropdown; set `false` to always use the anchored dropdown.
67
67
  - `caption`: title shown in the actionsheet header (falls back to `placeholder`).
68
68
  - `alternate`: when `true`, list rows use alternating background colors for easier scanning (all modes, including tree).
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "22.1.8",
3
+ "version": "22.2.1",
4
4
  "peerDependencies": {
5
- "@acorex/core": "22.1.8",
6
- "@acorex/cdk": "22.1.8",
5
+ "@acorex/core": "22.2.1",
6
+ "@acorex/cdk": "22.2.1",
7
7
  "@angular/aria": ">=22.1.0",
8
8
  "polytype": ">=0.17.0",
9
9
  "hammerjs": ">=2.0.8",
@@ -225,6 +225,10 @@
225
225
  "types": "./types/acorex-components-grid-layout-builder.d.ts",
226
226
  "default": "./fesm2022/acorex-components-grid-layout-builder.mjs"
227
227
  },
228
+ "./highlight": {
229
+ "types": "./types/acorex-components-highlight.d.ts",
230
+ "default": "./fesm2022/acorex-components-highlight.mjs"
231
+ },
228
232
  "./image": {
229
233
  "types": "./types/acorex-components-image.d.ts",
230
234
  "default": "./fesm2022/acorex-components-image.mjs"
@@ -220,6 +220,8 @@ declare class AXComboBoxComponent extends NXValueComponent implements FormValueC
220
220
  protected popupRef: _angular_core.Signal<ElementRef<HTMLElement>>;
221
221
  protected sheetSearchRef: _angular_core.Signal<AXSearchBoxComponent>;
222
222
  constructor();
223
+ /** Scrolls the selected option into view after the popover overlay is open and laid out. */
224
+ protected onPopoverOpened(): void;
223
225
  /** Stable unique key for `@for` — avoids NG0955 when `id` is missing or duplicated. */
224
226
  protected trackItemKey(index: number, item: AXComboBoxItem): string;
225
227
  /** Whether the given item is currently selected. */
@@ -4858,6 +4858,7 @@ declare class AXConversationAudioPickerComponent implements OnDestroy, AXConvers
4858
4858
  private catalogFileTypeDef?;
4859
4859
  caption: string;
4860
4860
  groupItems: boolean;
4861
+ sendAsDocuments: boolean;
4861
4862
  readonly allowMultiple: _angular_core.Signal<boolean>;
4862
4863
  constructor();
4863
4864
  activate(): Promise<void>;
@@ -4871,6 +4872,7 @@ declare class AXConversationAudioPickerComponent implements OnDestroy, AXConvers
4871
4872
  renameAudio(index: number): Promise<void>;
4872
4873
  replaceAttachment(index: number): Promise<void>;
4873
4874
  sendAudio(): Promise<void>;
4875
+ private sendAudioAsDocuments;
4874
4876
  canSend(): boolean;
4875
4877
  getUploadingLabel(progress: number): string;
4876
4878
  getCancelUploadLabel(): string;
@@ -869,9 +869,10 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
869
869
  protected resizeColumnProp: {
870
870
  startX: number;
871
871
  startWidth: number;
872
- columnIndex: number;
873
- newColumnWidth: number;
874
- thElement: any;
872
+ column: AXDataTableColumnComponent | null;
873
+ thElement: HTMLElement | null;
874
+ /** True when the resize handle sits on the column's trailing edge in screen coordinates. */
875
+ resizeFromTrailingEdge: boolean;
875
876
  };
876
877
  /**
877
878
  * Columns that used `width="auto"` and received header-only sizing before rows were available.
@@ -1087,10 +1088,20 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
1087
1088
  protected toggleExpanded(rows: any[], expandedItem: any, children: any[]): any[];
1088
1089
  protected refreshExpandedItem(id: string | number): Promise<void>;
1089
1090
  private updateChildren;
1091
+ /**
1092
+ * CDK sort-predicate indices follow physical left-to-right order; map them to `columnsList` order.
1093
+ * @ignore
1094
+ */
1095
+ private cdkSortIndexToColumnIndex;
1096
+ /**
1097
+ * Restricts column reordering to non-fixed columns only.
1098
+ * @ignore
1099
+ */
1100
+ protected columnReorderSortPredicate: (index: number) => boolean;
1090
1101
  /**
1091
1102
  * @ignore
1092
1103
  */
1093
- protected drop(event: CdkDragDrop<any, any, any>): void;
1104
+ protected drop(event: CdkDragDrop<AXDataTableColumnComponent>): void;
1094
1105
  /**
1095
1106
  * @ignore
1096
1107
  */
@@ -1154,11 +1165,11 @@ declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, Af
1154
1165
  * @param columnIndex - The index of the column to auto-fit
1155
1166
  * @ignore
1156
1167
  */
1157
- protected onResizeHandlerDoubleClick(event: MouseEvent, columnIndex: number): void;
1168
+ protected onResizeHandlerDoubleClick(event: MouseEvent, column: AXDataTableColumnComponent): void;
1158
1169
  /**
1159
1170
  * @ignore
1160
1171
  */
1161
- protected onResizeColumnStart(event: MouseEvent, columnIndex: number): void;
1172
+ protected onResizeColumnStart(event: MouseEvent, column: AXDataTableColumnComponent): void;
1162
1173
  /**
1163
1174
  * @ignore
1164
1175
  */
@@ -0,0 +1,31 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { AXHighlightOptions, AXHighlightSegment } from '@acorex/core/utils';
3
+ import { SafeHtml } from '@angular/platform-browser';
4
+
5
+ /**
6
+ * Renders text with search-term matches wrapped in `.ax-highlight` spans.
7
+ *
8
+ * Uses a single innerHTML string so Angular control-flow whitespace cannot insert
9
+ * gaps between highlighted and non-highlighted characters.
10
+ *
11
+ * Does not use the `ax-highlight-text` class on the host — that class is reserved for
12
+ * {@link AXHighlightService} DOM wrappers.
13
+ */
14
+ declare class AXHighlightTextComponent {
15
+ #private;
16
+ private readonly sanitizer;
17
+ /** The full text to render. */
18
+ readonly text: _angular_core.InputSignal<string>;
19
+ /** The search term or terms to highlight within the text. */
20
+ readonly query: _angular_core.InputSignal<string | readonly string[]>;
21
+ /** When true, highlighting is disabled and plain text is shown. */
22
+ readonly highlightDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
23
+ /** Optional highlight behavior configuration. */
24
+ readonly highlightOptions: _angular_core.InputSignal<AXHighlightOptions>;
25
+ protected readonly segments: _angular_core.Signal<AXHighlightSegment[]>;
26
+ protected readonly highlightedHtml: _angular_core.Signal<SafeHtml>;
27
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXHighlightTextComponent, never>;
28
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXHighlightTextComponent, "ax-highlight-text", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "query": { "alias": "query"; "required": false; "isSignal": true; }; "highlightDisabled": { "alias": "highlightDisabled"; "required": false; "isSignal": true; }; "highlightOptions": { "alias": "highlightOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
29
+ }
30
+
31
+ export { AXHighlightTextComponent };
@@ -3,7 +3,7 @@ import { TemplateRef, ElementRef } from '@angular/core';
3
3
  import { AXEvent, AXDataSource, AXListDataSource, AXHtmlEvent, NXValueComponent, AXStyleLookType, AXValueChangedEvent, AXFocusEvent, AXItemClickEvent, AXItemSelectedEvent } from '@acorex/cdk/common';
4
4
  import { AXPopoverComponent } from '@acorex/components/popover';
5
5
  import { AXSearchBoxComponent } from '@acorex/components/search-box';
6
- import { AXTreeViewDataSource, AXTreeViewItemTemplateContext, AXTreeViewSelectionChangeEvent, AXTreeViewSelectionBehavior, AXTreeViewNode } from '@acorex/components/tree-view';
6
+ import { AXTreeViewNode, AXTreeViewDataSource, AXTreeViewSelectionBehavior, AXTreeViewItemTemplateContext, AXTreeViewSelectionChangeEvent } from '@acorex/components/tree-view';
7
7
  import { FormValueControl } from '@angular/forms/signals';
8
8
  import { AXListNavigationDirective, AXListNavigationItemDirective } from '@acorex/cdk/list-navigation';
9
9
  import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
@@ -57,70 +57,6 @@ interface AXLookupSelectionChangedEvent<TItem = any> extends AXEvent {
57
57
  value: unknown | unknown[] | null;
58
58
  }
59
59
 
60
- /**
61
- * Internal mini component for the `drop-down-tree` lookup mode:
62
- * a predefined list rendered in a tree-like structure for single item selection.
63
- *
64
- * @category Components
65
- */
66
- declare class AXLookupDropDownTreeComponent {
67
- /**
68
- * The tree datasource: an array of nodes or a lazy children callback.
69
- */
70
- dataSource: _angular_core.InputSignal<AXTreeViewDataSource>;
71
- /**
72
- * The node property used as the selection value (tree `idField`).
73
- */
74
- valueField: _angular_core.InputSignal<string>;
75
- /**
76
- * The node property used as the display text (tree `titleField`).
77
- */
78
- textField: _angular_core.InputSignal<string>;
79
- /**
80
- * The node property marking a node as disabled.
81
- */
82
- disabledField: _angular_core.InputSignal<string>;
83
- /**
84
- * Currently selected values (at most one for single selection).
85
- */
86
- selectedValues: _angular_core.InputSignal<unknown[]>;
87
- /**
88
- * Custom template rendered for each tree node.
89
- */
90
- nodeTemplate: _angular_core.InputSignal<TemplateRef<AXTreeViewItemTemplateContext>>;
91
- /**
92
- * Custom template rendered when the filtered tree has no nodes.
93
- */
94
- emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
95
- /**
96
- * When `true`, visible tree nodes use alternating background colors.
97
- */
98
- alternate: _angular_core.InputSignal<boolean>;
99
- /**
100
- * Unique id that changes on every search apply so a new tree instance is created.
101
- */
102
- filterKey: _angular_core.InputSignal<string>;
103
- /**
104
- * When set, matching characters in the default node label are highlighted.
105
- */
106
- highlightText: _angular_core.InputSignal<string>;
107
- /**
108
- * Emitted when the user selects a node.
109
- */
110
- itemClick: _angular_core.OutputEmitterRef<AXLookupItemClickEvent>;
111
- protected selectedIds: _angular_core.Signal<string[]>;
112
- protected isEmpty: _angular_core.Signal<boolean>;
113
- protected treeInstances: _angular_core.Signal<{
114
- id: string;
115
- source: AXTreeViewDataSource;
116
- }[]>;
117
- /** Whether the filtered tree currently has no nodes. */
118
- hasNoMatches(): boolean;
119
- protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent): void;
120
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupDropDownTreeComponent, never>;
121
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupDropDownTreeComponent, "ax-lookup-drop-down-tree", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "selectedValues": { "alias": "selectedValues"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; "filterKey": { "alias": "filterKey"; "required": false; "isSignal": true; }; "highlightText": { "alias": "highlightText"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
122
- }
123
-
124
60
  /**
125
61
  * Shared `AXDataSource` + CDK virtual scroll plumbing for the list-based lookup views
126
62
  * (`ax-lookup-drop-down-list`, `ax-lookup-multi-select`).
@@ -201,7 +137,7 @@ declare abstract class AXLookupListViewBase {
201
137
  protected listNavigation: _angular_core.Signal<AXListNavigationDirective>;
202
138
  protected navItems: _angular_core.Signal<readonly AXListNavigationItemDirective[]>;
203
139
  constructor();
204
- /** Moves keyboard focus to the first rendered list option. */
140
+ /** Moves keyboard focus to the selected list option, or the first option when none is selected. */
205
141
  focusFirst(): void;
206
142
  protected getValue(item: AXLookupItem): unknown;
207
143
  protected getText(item: AXLookupItem): string;
@@ -235,6 +171,8 @@ interface AXLookupTreeSelectionEvent {
235
171
  * @category Components
236
172
  */
237
173
  declare class AXLookupMultiSelectTreeComponent {
174
+ #private;
175
+ constructor();
238
176
  /**
239
177
  * The tree datasource: an array of nodes or a lazy children callback.
240
178
  */
@@ -267,6 +205,14 @@ declare class AXLookupMultiSelectTreeComponent {
267
205
  * Custom template rendered when the filtered tree has no nodes.
268
206
  */
269
207
  emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
208
+ /**
209
+ * Custom template rendered while the tree is hydrating for search.
210
+ */
211
+ loadingTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
212
+ /**
213
+ * When `true`, a loading placeholder is shown while lazy tree data is hydrated for search.
214
+ */
215
+ loading: _angular_core.InputSignal<boolean>;
270
216
  /**
271
217
  * When `true`, visible tree nodes use alternating background colors.
272
218
  */
@@ -293,7 +239,7 @@ declare class AXLookupMultiSelectTreeComponent {
293
239
  hasNoMatches(): boolean;
294
240
  protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent): void;
295
241
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupMultiSelectTreeComponent, never>;
296
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupMultiSelectTreeComponent, "ax-lookup-multi-select-tree", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "selectedValues": { "alias": "selectedValues"; "required": false; "isSignal": true; }; "selectionBehavior": { "alias": "selectionBehavior"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; "filterKey": { "alias": "filterKey"; "required": false; "isSignal": true; }; "highlightText": { "alias": "highlightText"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
242
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupMultiSelectTreeComponent, "ax-lookup-multi-select-tree", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "selectedValues": { "alias": "selectedValues"; "required": false; "isSignal": true; }; "selectionBehavior": { "alias": "selectionBehavior"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; "filterKey": { "alias": "filterKey"; "required": false; "isSignal": true; }; "highlightText": { "alias": "highlightText"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
297
243
  }
298
244
 
299
245
  /**
@@ -374,6 +320,7 @@ declare class AXLookupComponent<T = AXLookupItem> extends NXValueComponent imple
374
320
  * Whether the trigger accepts typing and filters the datasource (`true`),
375
321
  * or is select-only with no writable input (`false`).
376
322
  * Applies to all modes, including `drop-down-tree` and `multi-select-tree`.
323
+ * Lazy callback trees are hydrated once per popup open and searched in full.
377
324
  * On small screens with `adaptivityEnabled`, search is typed in the actionsheet instead of the trigger.
378
325
  */
379
326
  searchable: _angular_core.InputSignal<boolean>;
@@ -517,6 +464,7 @@ declare class AXLookupComponent<T = AXLookupItem> extends NXValueComponent imple
517
464
  protected isSheetSearchEnabled: _angular_core.Signal<boolean>;
518
465
  /** Query typed in the actionsheet search field (independent of the trigger display text). */
519
466
  protected sheetSearchText: _angular_core.WritableSignal<string>;
467
+ protected treeSearchLoading: _angular_core.WritableSignal<boolean>;
520
468
  /** Increments on every tree filter apply so the tree view remounts with a new instance. */
521
469
  protected treeFilterKey: _angular_core.Signal<string>;
522
470
  /** Query passed to result-item highlighting (empty when disabled). */
@@ -554,8 +502,6 @@ declare class AXLookupComponent<T = AXLookupItem> extends NXValueComponent imple
554
502
  protected popupRef: _angular_core.Signal<ElementRef<HTMLElement>>;
555
503
  protected triggerSearchInput: _angular_core.Signal<ElementRef<HTMLInputElement>>;
556
504
  protected listView: _angular_core.Signal<AXLookupListViewBase>;
557
- protected dropDownTreeView: _angular_core.Signal<AXLookupDropDownTreeComponent>;
558
- protected multiSelectTreeView: _angular_core.Signal<AXLookupMultiSelectTreeComponent>;
559
505
  protected sheetSearchRef: _angular_core.Signal<AXSearchBoxComponent>;
560
506
  constructor();
561
507
  /** Returns the display text of an item using the `textField` mapping. */
@@ -669,6 +615,80 @@ declare class AXLookupMultiSelectComponent extends AXLookupListViewBase {
669
615
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupMultiSelectComponent, "ax-lookup-multi-select", never, {}, {}, never, never, true, never>;
670
616
  }
671
617
 
618
+ /**
619
+ * Internal mini component for the `drop-down-tree` lookup mode:
620
+ * a predefined list rendered in a tree-like structure for single item selection.
621
+ *
622
+ * @category Components
623
+ */
624
+ declare class AXLookupDropDownTreeComponent {
625
+ #private;
626
+ constructor();
627
+ /**
628
+ * The tree datasource: an array of nodes or a lazy children callback.
629
+ */
630
+ dataSource: _angular_core.InputSignal<AXTreeViewDataSource>;
631
+ /**
632
+ * The node property used as the selection value (tree `idField`).
633
+ */
634
+ valueField: _angular_core.InputSignal<string>;
635
+ /**
636
+ * The node property used as the display text (tree `titleField`).
637
+ */
638
+ textField: _angular_core.InputSignal<string>;
639
+ /**
640
+ * The node property marking a node as disabled.
641
+ */
642
+ disabledField: _angular_core.InputSignal<string>;
643
+ /**
644
+ * Currently selected values (at most one for single selection).
645
+ */
646
+ selectedValues: _angular_core.InputSignal<unknown[]>;
647
+ /**
648
+ * Custom template rendered for each tree node.
649
+ */
650
+ nodeTemplate: _angular_core.InputSignal<TemplateRef<AXTreeViewItemTemplateContext>>;
651
+ /**
652
+ * Custom template rendered when the filtered tree has no nodes.
653
+ */
654
+ emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
655
+ /**
656
+ * Custom template rendered while the tree is hydrating for search.
657
+ */
658
+ loadingTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
659
+ /**
660
+ * When `true`, a loading placeholder is shown while lazy tree data is hydrated for search.
661
+ */
662
+ loading: _angular_core.InputSignal<boolean>;
663
+ /**
664
+ * When `true`, visible tree nodes use alternating background colors.
665
+ */
666
+ alternate: _angular_core.InputSignal<boolean>;
667
+ /**
668
+ * Unique id that changes on every search apply so a new tree instance is created.
669
+ */
670
+ filterKey: _angular_core.InputSignal<string>;
671
+ /**
672
+ * When set, matching characters in the default node label are highlighted.
673
+ */
674
+ highlightText: _angular_core.InputSignal<string>;
675
+ /**
676
+ * Emitted when the user selects a node.
677
+ */
678
+ itemClick: _angular_core.OutputEmitterRef<AXLookupItemClickEvent>;
679
+ protected selectedIds: _angular_core.Signal<string[]>;
680
+ protected isEmpty: _angular_core.Signal<boolean>;
681
+ protected treeInstances: _angular_core.Signal<{
682
+ id: string;
683
+ source: AXTreeViewDataSource;
684
+ }[]>;
685
+ /** Whether the filtered tree currently has no nodes. */
686
+ hasNoMatches(): boolean;
687
+ protected handleSelectionChange(e: AXTreeViewSelectionChangeEvent): void;
688
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupDropDownTreeComponent, never>;
689
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupDropDownTreeComponent, "ax-lookup-drop-down-tree", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "selectedValues": { "alias": "selectedValues"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; "filterKey": { "alias": "filterKey"; "required": false; "isSignal": true; }; "highlightText": { "alias": "highlightText"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
690
+ }
691
+
672
692
  /**
673
693
  * Internal mini component for the `multi-column` lookup mode:
674
694
  * renders selectable rows in an `ax-data-table` grid and loads further
@@ -777,6 +797,8 @@ declare class AXLookupMultiColumnComponent {
777
797
  * @category Components
778
798
  */
779
799
  declare class AXLookupMultiColumnTreeComponent {
800
+ #private;
801
+ constructor();
780
802
  /**
781
803
  * The datasource providing hierarchical rows (roots on load, children via `parentField`).
782
804
  */