@acorex/components 18.12.42 → 18.12.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/notification/lib/notification.service.mjs +60 -58
- package/esm2022/toast/lib/toast.service.mjs +65 -64
- package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +7 -3
- package/fesm2022/acorex-components-notification.mjs +59 -58
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +63 -63
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +6 -2
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/notification/lib/notification.service.d.ts +3 -3
- package/package.json +1 -1
- package/toast/lib/toast.service.d.ts +3 -3
- package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +1 -0
| @@ -2,13 +2,13 @@ import { MXBaseComponent, AXClosbaleComponent } from '@acorex/components/common' | |
| 2 2 | 
             
            import * as i1 from '@angular/cdk/dialog';
         | 
| 3 3 | 
             
            import { DIALOG_DATA, Dialog, DialogModule } from '@angular/cdk/dialog';
         | 
| 4 4 | 
             
            import * as i0 from '@angular/core';
         | 
| 5 | 
            -
            import { Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, HostBinding, InjectionToken, inject,  | 
| 5 | 
            +
            import { Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, HostBinding, InjectionToken, inject, Injectable, NgModule } from '@angular/core';
         | 
| 6 6 | 
             
            import * as i2 from '@acorex/components/decorators';
         | 
| 7 7 | 
             
            import { AXDecoratorModule } from '@acorex/components/decorators';
         | 
| 8 8 | 
             
            import * as i3 from '@angular/common';
         | 
| 9 9 | 
             
            import { CommonModule } from '@angular/common';
         | 
| 10 10 | 
             
            import * as i4 from '@acorex/core/translation';
         | 
| 11 | 
            -
            import { AXTranslationModule } from '@acorex/core/translation';
         | 
| 11 | 
            +
            import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
         | 
| 12 12 | 
             
            import { AX_GLOBAL_CONFIG } from '@acorex/core/config';
         | 
| 13 13 | 
             
            import { set } from 'lodash-es';
         | 
| 14 14 | 
             
            import { AXButtonModule } from '@acorex/components/button';
         | 
| @@ -121,23 +121,16 @@ class AXToastService { | |
| 121 121 | 
             
                constructor(scrollStrategyOptions) {
         | 
| 122 122 | 
             
                    this.scrollStrategyOptions = scrollStrategyOptions;
         | 
| 123 123 | 
             
                    this.dialog = inject(Dialog);
         | 
| 124 | 
            +
                    this.translationService = inject(AXTranslationService);
         | 
| 124 125 | 
             
                    this.defaultConfig = inject(AX_TOAST_CONFIG);
         | 
| 125 | 
            -
                    this.activeToasts =  | 
| 126 | 
            -
                    this.reservedToasts =  | 
| 127 | 
            -
                    this.toastCounterElement =  | 
| 128 | 
            -
                    this.moreToastsColor =  | 
| 129 | 
            -
                    this.moreToastsLocation =  | 
| 130 | 
            -
                    this.reserveCounter =  | 
| 131 | 
            -
                    this.#effect = effect(() => {
         | 
| 132 | 
            -
                        if (this.defaultConfig.limit <= 0)
         | 
| 133 | 
            -
                            return;
         | 
| 134 | 
            -
                        this.handleShowReservedToast();
         | 
| 135 | 
            -
                        this.handleShowReservedToastCounter();
         | 
| 136 | 
            -
                        this.handleReserveCounter();
         | 
| 137 | 
            -
                    }, { allowSignalWrites: true });
         | 
| 126 | 
            +
                    this.activeToasts = [];
         | 
| 127 | 
            +
                    this.reservedToasts = [];
         | 
| 128 | 
            +
                    this.toastCounterElement = null;
         | 
| 129 | 
            +
                    this.moreToastsColor = 'primary';
         | 
| 130 | 
            +
                    this.moreToastsLocation = 'bottom-center';
         | 
| 131 | 
            +
                    this.reserveCounter = 0;
         | 
| 138 132 | 
             
                    this.scrollStrategy = this.scrollStrategyOptions.noop();
         | 
| 139 133 | 
             
                }
         | 
| 140 | 
            -
                #effect;
         | 
| 141 134 | 
             
                primary(content) {
         | 
| 142 135 | 
             
                    this.show({
         | 
| 143 136 | 
             
                        timeOut: this.defaultConfig.timeOut,
         | 
| @@ -174,27 +167,27 @@ class AXToastService { | |
| 174 167 | 
             
                    });
         | 
| 175 168 | 
             
                }
         | 
| 176 169 | 
             
                show(config) {
         | 
| 177 | 
            -
                     | 
| 178 | 
            -
             | 
| 179 | 
            -
             | 
| 180 | 
            -
                     | 
| 181 | 
            -
             | 
| 182 | 
            -
             | 
| 183 | 
            -
             | 
| 184 | 
            -
             | 
| 185 | 
            -
             | 
| 186 | 
            -
             | 
| 187 | 
            -
             | 
| 188 | 
            -
             | 
| 189 | 
            -
                                },
         | 
| 190 | 
            -
                            };
         | 
| 191 | 
            -
                        }
         | 
| 170 | 
            +
                    config = { ...this.defaultConfig, ...config };
         | 
| 171 | 
            +
                    this.moreToastsColor = config.color;
         | 
| 172 | 
            +
                    this.moreToastsLocation = config.location;
         | 
| 173 | 
            +
                    if (this.defaultConfig.limit > 0 && this.activeToasts.length >= this.defaultConfig.limit) {
         | 
| 174 | 
            +
                        const reservedRef = {
         | 
| 175 | 
            +
                            close: () => {
         | 
| 176 | 
            +
                                console.warn('Reserved notification cannot be closed until it is displayed.');
         | 
| 177 | 
            +
                            },
         | 
| 178 | 
            +
                        };
         | 
| 179 | 
            +
                        this.reservedToasts.push({ config, reservedRef });
         | 
| 180 | 
            +
                        this.handleReservedToastCounter();
         | 
| 181 | 
            +
                        return reservedRef;
         | 
| 192 182 | 
             
                    }
         | 
| 183 | 
            +
                    return this.displayToast(config);
         | 
| 184 | 
            +
                }
         | 
| 185 | 
            +
                displayToast(config) {
         | 
| 193 186 | 
             
                    const gap = this.defaultConfig.gap;
         | 
| 194 | 
            -
                    const pos = this.getPosition( | 
| 195 | 
            -
                    const positionStrategy = this.getPositionStrategy(new GlobalPositionStrategy(),  | 
| 187 | 
            +
                    const pos = this.getPosition(config.location) + gap + 'px';
         | 
| 188 | 
            +
                    const positionStrategy = this.getPositionStrategy(new GlobalPositionStrategy(), config.location, pos, gap);
         | 
| 196 189 | 
             
                    const dialogRef = this.dialog.open(AXToastComponent, {
         | 
| 197 | 
            -
                        data:  | 
| 190 | 
            +
                        data: config,
         | 
| 198 191 | 
             
                        autoFocus: '__no_element__',
         | 
| 199 192 | 
             
                        restoreFocus: true,
         | 
| 200 193 | 
             
                        role: 'dialog',
         | 
| @@ -206,12 +199,15 @@ class AXToastService { | |
| 206 199 | 
             
                        positionStrategy,
         | 
| 207 200 | 
             
                        scrollStrategy: this.scrollStrategy,
         | 
| 208 201 | 
             
                    });
         | 
| 209 | 
            -
                    this.activeToasts. | 
| 202 | 
            +
                    this.activeToasts.push(dialogRef.id);
         | 
| 203 | 
            +
                    this.handleReservedToastCounter();
         | 
| 210 204 | 
             
                    const toastRef = dialogRef.componentInstance;
         | 
| 211 205 | 
             
                    dialogRef.closed.subscribe(() => {
         | 
| 212 | 
            -
                        this.activeToasts | 
| 206 | 
            +
                        this.activeToasts = this.activeToasts.filter((id) => id !== dialogRef.id);
         | 
| 207 | 
            +
                        this.handleShowReservedToast();
         | 
| 208 | 
            +
                        this.handleReservedToastCounter();
         | 
| 213 209 | 
             
                        setTimeout(() => {
         | 
| 214 | 
            -
                            this.reposition( | 
| 210 | 
            +
                            this.reposition(config.location, gap);
         | 
| 215 211 | 
             
                        }, 0);
         | 
| 216 212 | 
             
                    });
         | 
| 217 213 | 
             
                    return {
         | 
| @@ -222,40 +218,45 @@ class AXToastService { | |
| 222 218 | 
             
                }
         | 
| 223 219 | 
             
                hideAll() {
         | 
| 224 220 | 
             
                    this.dialog.closeAll();
         | 
| 221 | 
            +
                    this.reserveCounter = 0;
         | 
| 222 | 
            +
                    this.reservedToasts = [];
         | 
| 223 | 
            +
                    this.activeToasts = [];
         | 
| 224 | 
            +
                    this.handleReservedToastCounter();
         | 
| 225 225 | 
             
                }
         | 
| 226 226 | 
             
                handleShowReservedToast() {
         | 
| 227 | 
            -
                    if (this.activeToasts | 
| 227 | 
            +
                    if (this.activeToasts.length > this.defaultConfig.limit - 1)
         | 
| 228 228 | 
             
                        return;
         | 
| 229 | 
            -
                    if (!this.reservedToasts | 
| 229 | 
            +
                    if (!this.reservedToasts.length)
         | 
| 230 230 | 
             
                        return;
         | 
| 231 | 
            -
                    this. | 
| 232 | 
            -
                    this. | 
| 233 | 
            -
             | 
| 234 | 
            -
             | 
| 235 | 
            -
                        return toasts;
         | 
| 236 | 
            -
                    });
         | 
| 237 | 
            -
                }
         | 
| 238 | 
            -
                handleShowReservedToastCounter() {
         | 
| 239 | 
            -
                    if (this.reservedToasts().length === this.reserveCounter())
         | 
| 240 | 
            -
                        return;
         | 
| 241 | 
            -
                    this.reserveCounter.set(this.reservedToasts().length);
         | 
| 242 | 
            -
                    if (this.toastCounterElement() !== null)
         | 
| 243 | 
            -
                        this.toastCounterElement().close();
         | 
| 244 | 
            -
                    this.createReservedCounterToast();
         | 
| 231 | 
            +
                    const { config, reservedRef } = this.reservedToasts.shift();
         | 
| 232 | 
            +
                    const displayedRef = this.displayToast(config);
         | 
| 233 | 
            +
                    this.handleReservedToastCounter();
         | 
| 234 | 
            +
                    reservedRef.close = displayedRef.close;
         | 
| 245 235 | 
             
                }
         | 
| 246 | 
            -
                 | 
| 247 | 
            -
                     | 
| 236 | 
            +
                handleReservedToastCounter() {
         | 
| 237 | 
            +
                    const reservedCount = this.reservedToasts.length;
         | 
| 238 | 
            +
                    if (reservedCount === this.reserveCounter)
         | 
| 248 239 | 
             
                        return;
         | 
| 249 | 
            -
                     | 
| 240 | 
            +
                    this.reserveCounter = reservedCount;
         | 
| 241 | 
            +
                    if (reservedCount === 0 && this.toastCounterElement !== null) {
         | 
| 242 | 
            +
                        this.toastCounterElement.close();
         | 
| 250 243 | 
             
                        return;
         | 
| 251 | 
            -
                     | 
| 244 | 
            +
                    }
         | 
| 245 | 
            +
                    if (reservedCount > 0) {
         | 
| 246 | 
            +
                        if (this.toastCounterElement !== null) {
         | 
| 247 | 
            +
                            this.toastCounterElement.close();
         | 
| 248 | 
            +
                        }
         | 
| 249 | 
            +
                        this.createReservedCounterToast();
         | 
| 250 | 
            +
                    }
         | 
| 252 251 | 
             
                }
         | 
| 253 | 
            -
                createReservedCounterToast() {
         | 
| 252 | 
            +
                async createReservedCounterToast() {
         | 
| 254 253 | 
             
                    const opt = {
         | 
| 255 254 | 
             
                        closeButton: false,
         | 
| 256 | 
            -
                        color: this.moreToastsColor | 
| 257 | 
            -
                        location: this.moreToastsLocation | 
| 258 | 
            -
                        title:  | 
| 255 | 
            +
                        color: this.moreToastsColor,
         | 
| 256 | 
            +
                        location: this.moreToastsLocation,
         | 
| 257 | 
            +
                        title: await this.translationService.translateAsync('more-toast', {
         | 
| 258 | 
            +
                            params: { number: this.reserveCounter },
         | 
| 259 | 
            +
                        }),
         | 
| 259 260 | 
             
                        timeOutProgress: false,
         | 
| 260 261 | 
             
                    };
         | 
| 261 262 | 
             
                    const gap = this.defaultConfig.gap;
         | 
| @@ -274,7 +275,7 @@ class AXToastService { | |
| 274 275 | 
             
                        positionStrategy,
         | 
| 275 276 | 
             
                        scrollStrategy: this.scrollStrategy,
         | 
| 276 277 | 
             
                    });
         | 
| 277 | 
            -
                    this.toastCounterElement | 
| 278 | 
            +
                    this.toastCounterElement = dialogRef.componentInstance;
         | 
| 278 279 | 
             
                }
         | 
| 279 280 | 
             
                reposition(toastLocation, gap) {
         | 
| 280 281 | 
             
                    const list = this.dialog.openDialogs
         | 
| @@ -282,7 +283,6 @@ class AXToastService { | |
| 282 283 | 
             
                        .filter((c) => c.config?.location == toastLocation);
         | 
| 283 284 | 
             
                    list.forEach((element, index) => {
         | 
| 284 285 | 
             
                        const pos = this.getRepositionPosition(index, gap, list, toastLocation);
         | 
| 285 | 
            -
                        console.log(index, element);
         | 
| 286 286 | 
             
                        this.getPositionStrategy(element.dialogRef.config.positionStrategy, toastLocation, pos, gap).apply();
         | 
| 287 287 | 
             
                    });
         | 
| 288 288 | 
             
                }
         | 
| @@ -1 +1 @@ | |
| 1 | 
            -
            {"version":3,"file":"acorex-components-toast.mjs","sources":["../../../../libs/components/toast/src/lib/toast.component.ts","../../../../libs/components/toast/src/lib/toast.component.html","../../../../libs/components/toast/src/lib/toast.config.ts","../../../../libs/components/toast/src/lib/toast.service.ts","../../../../libs/components/toast/src/lib/toast.module.ts","../../../../libs/components/toast/src/acorex-components-toast.ts"],"sourcesContent":["import { AXButtonItem } from '@acorex/components/button';\nimport { AXClosbaleComponent, AXComponentCloseEvent, MXBaseComponent } from '@acorex/components/common';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  Inject,\n  OnInit,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { AXToastData } from './toast.class';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-toast',\n  templateUrl: './toast.component.html',\n  styleUrls: ['./toast.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  providers: [{ provide: AXClosbaleComponent, useExisting: AXToastComponent }],\n})\nexport class AXToastComponent extends MXBaseComponent implements OnInit {\n  /** @ignore */\n  protected _toastWidth = 100;\n\n  /** @ignore */\n  protected _icon: string;\n\n  /**\n   *  @ignore\n   */\n  constructor(\n    @Inject(DIALOG_DATA)\n    public config: AXToastData,\n    public dialogRef: DialogRef<AXComponentCloseEvent>,\n  ) {\n    super();\n  }\n\n  /** @ignore */\n  override ngOnInit() {\n    super.ngOnInit();\n    if (this.config.timeOut) {\n      setTimeout(() => {\n        this.close();\n      }, this.config.timeOut);\n    }\n    if (!this.config.icon) {\n      switch (this.config.color) {\n        case 'success':\n          this._icon = 'ax-icon ax-icon-check-circle';\n          break;\n        case 'warning':\n          this._icon = 'ax-icon ax-icon-warning';\n          break;\n        case 'danger':\n          this._icon = 'ax-icon ax-icon-error';\n          break;\n        case 'info':\n          this._icon = 'ax-icon ax-icon-info';\n          break;\n        default:\n          this._icon = this.config.icon || 'ax-icon ax-icon-check-circle';\n          break;\n      }\n    } else {\n      this._icon = this.config.icon;\n    }\n  }\n\n  /** @ignore */\n  _handleButtonClick(button: AXButtonItem) {\n    if (button.onClick) {\n      button.onClick({ source: button });\n    }\n  }\n\n  /** @ignore */\n  @HostBinding('class')\n  private get __hostClass(): string {\n    return `ax-${this.config.color}`;\n  }\n\n  /** @ignore */\n  close() {\n    this.dialogRef.close({\n      component: this,\n      htmlElement: this.getHostElement(),\n    });\n  }\n}\n","<span class=\"ax-toast-icon ax-icon-solid {{ _icon }}\"></span>\n<div class=\"ax-toast-content\">\n  <div class=\"ax-toast-title\" [class.ax-mb-2]=\"config.title && config.content\">{{ config.title | translate | async }}\n  </div>\n  <div class=\"ax-toast-content\" [innerHTML]=\"config.content\"></div>\n</div>\n@if(config.closeButton){\n<ax-close-button></ax-close-button>\n}\n@if(config.timeOutProgress && config.timeOut){\n<div class=\"ax-toast-progress\" [style.animation-duration.ms]=\"config.timeOut\"></div>\n}","import { AXLocation } from '@acorex/components/common';\nimport { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\n\nexport interface AXToastConfig {\n  gap: number;\n  timeOut: number;\n  timeOutProgress: boolean;\n  location: AXLocation;\n  limit: number;\n}\n\nexport const AX_TOAST_CONFIG = new InjectionToken<AXToastConfig>('AX_TOAST_CONFIG', {\n  providedIn: 'root',\n  factory: () => {\n    const global = inject(AX_GLOBAL_CONFIG);\n    set(global, 'layout.toast', AX_TOAST_CONFIG);\n    return AXToastDefaultConfig;\n  },\n});\n\nexport const AXToastDefaultConfig: AXToastConfig = {\n  gap: 5,\n  timeOut: 2500,\n  timeOutProgress: true,\n  location: 'bottom-center',\n  limit: 3,\n};\n\nexport type PartialToastConfig = Partial<AXToastConfig>;\n\nexport function toastConfig(config: PartialToastConfig = {}): AXToastConfig {\n  const result = {\n    ...AXToastDefaultConfig,\n    ...config,\n  };\n  return result;\n}\n","import { AXLocation, AXStyleColorType } from '@acorex/components/common';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy, ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { Injectable, effect, inject, signal } from '@angular/core';\nimport { AXToastData, AXToastDisplayConfig, AXToastRef } from './toast.class';\nimport { AXToastComponent } from './toast.component';\nimport { AXToastConfig, AX_TOAST_CONFIG } from './toast.config';\n\n@Injectable()\nexport class AXToastService {\n  private dialog: Dialog = inject(Dialog);\n  private defaultConfig: AXToastConfig = inject(AX_TOAST_CONFIG);\n  private activeToasts = signal<string[]>([]);\n  private reservedToasts = signal<AXToastDisplayConfig[]>([]);\n  private toastCounterElement = signal<AXToastComponent | null>(null);\n  private moreToastsColor = signal<AXStyleColorType>('primary');\n  private moreToastsLocation = signal<AXLocation>('bottom-center');\n  private reserveCounter = signal(0);\n\n  scrollStrategy: ScrollStrategy;\n\n  constructor(private readonly scrollStrategyOptions: ScrollStrategyOptions) {\n    this.scrollStrategy = this.scrollStrategyOptions.noop();\n  }\n\n  #effect = effect(\n    () => {\n      if (this.defaultConfig.limit <= 0) return;\n      this.handleShowReservedToast();\n      this.handleShowReservedToastCounter();\n      this.handleReserveCounter();\n    },\n    { allowSignalWrites: true },\n  );\n\n  primary(content: string) {\n    this.show({\n      timeOut: this.defaultConfig.timeOut,\n      color: 'primary',\n      content: content,\n    });\n  }\n  secondary(content: string) {\n    this.show({\n      timeOut: this.defaultConfig.timeOut,\n      color: 'secondary',\n      content: content,\n    });\n  }\n  success(content: string) {\n    this.show({\n      timeOut: this.defaultConfig.timeOut,\n      color: 'success',\n      content: content,\n    });\n  }\n  warning(content: string) {\n    this.show({\n      timeOut: this.defaultConfig.timeOut,\n      color: 'warning',\n      content: content,\n    });\n  }\n  danger(content: string) {\n    this.show({\n      timeOut: this.defaultConfig.timeOut,\n      color: 'danger',\n      content: content,\n    });\n  }\n\n  show(config: AXToastDisplayConfig): AXToastRef {\n    const opt = Object.assign(\n      {\n        closeButton: true,\n        location: this.defaultConfig.location ?? 'bottom-center',\n      },\n      config,\n    );\n    this.moreToastsColor.set(opt.color);\n    this.moreToastsLocation.set(opt.location);\n\n    if (this.defaultConfig.limit > 0) {\n      if (this.activeToasts().length >= this.defaultConfig.limit) {\n        this.reservedToasts.update((value) => [...value, opt]);\n        return {\n          close: () => {\n            //TODO close reserved toast\n          },\n        };\n      }\n    }\n\n    const gap = this.defaultConfig.gap;\n    const pos = this.getPosition(opt.location) + gap + 'px';\n    const positionStrategy = this.getPositionStrategy(new GlobalPositionStrategy(), opt.location, pos, gap);\n    const dialogRef = this.dialog.open(AXToastComponent, {\n      data: opt,\n      autoFocus: '__no_element__',\n      restoreFocus: true,\n      role: 'dialog',\n      ariaModal: true,\n      closeOnNavigation: true,\n      closeOnDestroy: true,\n      hasBackdrop: false,\n      panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n      positionStrategy,\n      scrollStrategy: this.scrollStrategy,\n    });\n\n    this.activeToasts.update((value) => [...value, dialogRef.id]);\n\n    const toastRef = dialogRef.componentInstance as AXToastComponent;\n    dialogRef.closed.subscribe(() => {\n      this.activeToasts.update((value) => [...value].filter((dialogID) => dialogID !== dialogRef.id));\n      setTimeout(() => {\n        this.reposition(opt.location, gap);\n      }, 0);\n    });\n\n    return {\n      close: () => {\n        toastRef.close();\n      },\n    };\n  }\n\n  hideAll() {\n    this.dialog.closeAll();\n  }\n\n  private handleShowReservedToast() {\n    if (this.activeToasts().length > this.defaultConfig.limit - 1) return;\n    if (!this.reservedToasts().length) return;\n    this.show(this.reservedToasts()[0]);\n    this.reservedToasts.update((value) => {\n      const toasts = [...value];\n      toasts.shift();\n      return toasts;\n    });\n  }\n\n  private handleShowReservedToastCounter() {\n    if (this.reservedToasts().length === this.reserveCounter()) return;\n    this.reserveCounter.set(this.reservedToasts().length);\n    if (this.toastCounterElement() !== null) this.toastCounterElement().close();\n    this.createReservedCounterToast();\n  }\n\n  private handleReserveCounter() {\n    if (this.reserveCounter() !== 0) return;\n    if (this.toastCounterElement() === null) return;\n    this.toastCounterElement().close();\n  }\n\n  private createReservedCounterToast() {\n    const opt: AXToastData = {\n      closeButton: false,\n      color: this.moreToastsColor(),\n      location: this.moreToastsLocation(),\n      title: `And ${this.reserveCounter()} more...`,\n      timeOutProgress: false,\n    };\n    const gap = this.defaultConfig.gap;\n    const pos = this.getPosition(opt.location) + gap + 'px';\n    const positionStrategy = this.getPositionStrategy(new GlobalPositionStrategy(), opt.location, pos, gap);\n    const dialogRef = this.dialog.open(AXToastComponent, {\n      data: opt,\n      autoFocus: '__no_element__',\n      restoreFocus: true,\n      role: 'dialog',\n      ariaModal: true,\n      closeOnNavigation: true,\n      closeOnDestroy: true,\n      hasBackdrop: false,\n      panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n      positionStrategy,\n      scrollStrategy: this.scrollStrategy,\n    });\n    this.toastCounterElement.set(dialogRef.componentInstance as AXToastComponent);\n  }\n\n  private reposition(toastLocation: AXLocation, gap: number): void {\n    const list = this.dialog.openDialogs\n      .map((c) => c.componentInstance as AXToastComponent)\n      .filter((c) => c.config?.location == toastLocation);\n\n    list.forEach((element, index) => {\n      const pos = this.getRepositionPosition(index, gap, list, toastLocation);\n      console.log(index, element);\n\n      this.getPositionStrategy(\n        element.dialogRef.config.positionStrategy as GlobalPositionStrategy,\n        toastLocation,\n        pos,\n        gap,\n      ).apply();\n    });\n  }\n\n  private getRepositionPosition(index: number, gap: number, list: AXToastComponent[], toastLocation: string) {\n    if (index === 0) return gap + 'px';\n    const previouseElement = list[index - 1];\n    if (toastLocation.split('-')[0] == 'bottom') {\n      return window.innerHeight - previouseElement.getHostElement().offsetTop + gap + 'px';\n    }\n    return (\n      previouseElement.getHostElement().offsetTop +\n      previouseElement.getHostElement().offsetHeight +\n      gap +\n      'px'\n    );\n  }\n\n  private getPosition(location: string) {\n    const list = this.dialog.openDialogs\n      .map((c) => c.componentInstance as AXToastComponent)\n      .filter((c) => c.config?.location == location);\n    if (list.length == 0) return 0;\n    if (location.split('-')[0] == 'bottom') {\n      return window.innerHeight - list[list.length - 1].getHostElement().offsetTop;\n    }\n    return (\n      list[list.length - 1].getHostElement().offsetTop + list[list.length - 1].getHostElement().offsetHeight\n    );\n  }\n\n  private getPositionStrategy(\n    positionStrategy: GlobalPositionStrategy,\n    location: AXLocation,\n    pos: string,\n    gap: number,\n  ) {\n    switch (location) {\n      case 'bottom-center':\n        return positionStrategy.bottom(pos).centerHorizontally();\n        break;\n      case 'bottom-end':\n        return positionStrategy.bottom(pos).right(gap + 'px');\n        break;\n      case 'bottom-start':\n        return positionStrategy.bottom(pos).left(gap + 'px');\n        break;\n      case 'top-center':\n        return positionStrategy.top(pos).centerHorizontally();\n        break;\n      case 'top-end':\n        return positionStrategy.top(pos).right(gap + 'px');\n        break;\n      case 'top-start':\n        return positionStrategy.top(pos).left(gap + 'px');\n        break;\n      case 'center-start':\n        return positionStrategy.centerVertically().left(gap + 'px');\n        break;\n      case 'center-end':\n        return positionStrategy.centerVertically().right(gap + 'px');\n        break;\n    }\n  }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXToastComponent } from './toast.component';\nimport { AXToastService } from './toast.service';\n\nconst COMPONENT = [AXToastComponent];\nconst MODULES = [CommonModule, AXButtonModule, AXDecoratorModule, AXLoadingModule, DialogModule, AXTranslationModule];\n\n@NgModule({\n  declarations: [...COMPONENT],\n  imports: [...MODULES],\n  exports: [...COMPONENT],\n  providers: [AXToastService],\n})\nexport class AXToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
         | 
| 1 | 
            +
            {"version":3,"file":"acorex-components-toast.mjs","sources":["../../../../libs/components/toast/src/lib/toast.component.ts","../../../../libs/components/toast/src/lib/toast.component.html","../../../../libs/components/toast/src/lib/toast.config.ts","../../../../libs/components/toast/src/lib/toast.service.ts","../../../../libs/components/toast/src/lib/toast.module.ts","../../../../libs/components/toast/src/acorex-components-toast.ts"],"sourcesContent":["import { AXButtonItem } from '@acorex/components/button';\nimport { AXClosbaleComponent, AXComponentCloseEvent, MXBaseComponent } from '@acorex/components/common';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  Inject,\n  OnInit,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { AXToastData } from './toast.class';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n  selector: 'ax-toast',\n  templateUrl: './toast.component.html',\n  styleUrls: ['./toast.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  providers: [{ provide: AXClosbaleComponent, useExisting: AXToastComponent }],\n})\nexport class AXToastComponent extends MXBaseComponent implements OnInit {\n  /** @ignore */\n  protected _toastWidth = 100;\n\n  /** @ignore */\n  protected _icon: string;\n\n  /**\n   *  @ignore\n   */\n  constructor(\n    @Inject(DIALOG_DATA)\n    public config: AXToastData,\n    public dialogRef: DialogRef<AXComponentCloseEvent>,\n  ) {\n    super();\n  }\n\n  /** @ignore */\n  override ngOnInit() {\n    super.ngOnInit();\n    if (this.config.timeOut) {\n      setTimeout(() => {\n        this.close();\n      }, this.config.timeOut);\n    }\n    if (!this.config.icon) {\n      switch (this.config.color) {\n        case 'success':\n          this._icon = 'ax-icon ax-icon-check-circle';\n          break;\n        case 'warning':\n          this._icon = 'ax-icon ax-icon-warning';\n          break;\n        case 'danger':\n          this._icon = 'ax-icon ax-icon-error';\n          break;\n        case 'info':\n          this._icon = 'ax-icon ax-icon-info';\n          break;\n        default:\n          this._icon = this.config.icon || 'ax-icon ax-icon-check-circle';\n          break;\n      }\n    } else {\n      this._icon = this.config.icon;\n    }\n  }\n\n  /** @ignore */\n  _handleButtonClick(button: AXButtonItem) {\n    if (button.onClick) {\n      button.onClick({ source: button });\n    }\n  }\n\n  /** @ignore */\n  @HostBinding('class')\n  private get __hostClass(): string {\n    return `ax-${this.config.color}`;\n  }\n\n  /** @ignore */\n  close() {\n    this.dialogRef.close({\n      component: this,\n      htmlElement: this.getHostElement(),\n    });\n  }\n}\n","<span class=\"ax-toast-icon ax-icon-solid {{ _icon }}\"></span>\n<div class=\"ax-toast-content\">\n  <div class=\"ax-toast-title\" [class.ax-mb-2]=\"config.title && config.content\">{{ config.title | translate | async }}\n  </div>\n  <div class=\"ax-toast-content\" [innerHTML]=\"config.content\"></div>\n</div>\n@if(config.closeButton){\n<ax-close-button></ax-close-button>\n}\n@if(config.timeOutProgress && config.timeOut){\n<div class=\"ax-toast-progress\" [style.animation-duration.ms]=\"config.timeOut\"></div>\n}","import { AXLocation } from '@acorex/components/common';\nimport { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\n\nexport interface AXToastConfig {\n  gap: number;\n  timeOut: number;\n  timeOutProgress: boolean;\n  location: AXLocation;\n  limit: number;\n}\n\nexport const AX_TOAST_CONFIG = new InjectionToken<AXToastConfig>('AX_TOAST_CONFIG', {\n  providedIn: 'root',\n  factory: () => {\n    const global = inject(AX_GLOBAL_CONFIG);\n    set(global, 'layout.toast', AX_TOAST_CONFIG);\n    return AXToastDefaultConfig;\n  },\n});\n\nexport const AXToastDefaultConfig: AXToastConfig = {\n  gap: 5,\n  timeOut: 2500,\n  timeOutProgress: true,\n  location: 'bottom-center',\n  limit: 3,\n};\n\nexport type PartialToastConfig = Partial<AXToastConfig>;\n\nexport function toastConfig(config: PartialToastConfig = {}): AXToastConfig {\n  const result = {\n    ...AXToastDefaultConfig,\n    ...config,\n  };\n  return result;\n}\n","import { AXLocation, AXStyleColorType } from '@acorex/components/common';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy, ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\nimport { AXToastData, AXToastDisplayConfig, AXToastRef } from './toast.class';\nimport { AXToastComponent } from './toast.component';\nimport { AXToastConfig, AX_TOAST_CONFIG } from './toast.config';\n\ntype AXReservedToasts = {\n  config: AXToastDisplayConfig;\n  reservedRef: {\n    close: () => void;\n  };\n};\n\n@Injectable()\nexport class AXToastService {\n  private dialog: Dialog = inject(Dialog);\n  private translationService: AXTranslationService = inject(AXTranslationService);\n  private defaultConfig: AXToastConfig = inject(AX_TOAST_CONFIG);\n  private activeToasts: string[] = [];\n  private reservedToasts: AXReservedToasts[] = [];\n  private toastCounterElement: AXToastComponent | null = null;\n  private moreToastsColor: AXStyleColorType = 'primary';\n  private moreToastsLocation: AXLocation = 'bottom-center';\n  private reserveCounter = 0;\n\n  scrollStrategy: ScrollStrategy;\n\n  constructor(private readonly scrollStrategyOptions: ScrollStrategyOptions) {\n    this.scrollStrategy = this.scrollStrategyOptions.noop();\n  }\n\n  primary(content: string) {\n    this.show({\n      timeOut: this.defaultConfig.timeOut,\n      color: 'primary',\n      content: content,\n    });\n  }\n  secondary(content: string) {\n    this.show({\n      timeOut: this.defaultConfig.timeOut,\n      color: 'secondary',\n      content: content,\n    });\n  }\n  success(content: string) {\n    this.show({\n      timeOut: this.defaultConfig.timeOut,\n      color: 'success',\n      content: content,\n    });\n  }\n  warning(content: string) {\n    this.show({\n      timeOut: this.defaultConfig.timeOut,\n      color: 'warning',\n      content: content,\n    });\n  }\n  danger(content: string) {\n    this.show({\n      timeOut: this.defaultConfig.timeOut,\n      color: 'danger',\n      content: content,\n    });\n  }\n\n  show(config: AXToastDisplayConfig): AXToastRef {\n    config = { ...this.defaultConfig, ...config };\n\n    this.moreToastsColor = config.color;\n    this.moreToastsLocation = config.location;\n\n    if (this.defaultConfig.limit > 0 && this.activeToasts.length >= this.defaultConfig.limit) {\n      const reservedRef = {\n        close: () => {\n          console.warn('Reserved notification cannot be closed until it is displayed.');\n        },\n      };\n      this.reservedToasts.push({ config, reservedRef });\n      this.handleReservedToastCounter();\n      return reservedRef;\n    }\n\n    return this.displayToast(config);\n  }\n\n  private displayToast(config: AXToastDisplayConfig): AXToastRef {\n    const gap = this.defaultConfig.gap;\n    const pos = this.getPosition(config.location) + gap + 'px';\n    const positionStrategy = this.getPositionStrategy(\n      new GlobalPositionStrategy(),\n      config.location,\n      pos,\n      gap,\n    );\n    const dialogRef = this.dialog.open(AXToastComponent, {\n      data: config,\n      autoFocus: '__no_element__',\n      restoreFocus: true,\n      role: 'dialog',\n      ariaModal: true,\n      closeOnNavigation: true,\n      closeOnDestroy: true,\n      hasBackdrop: false,\n      panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n      positionStrategy,\n      scrollStrategy: this.scrollStrategy,\n    });\n\n    this.activeToasts.push(dialogRef.id);\n    this.handleReservedToastCounter();\n\n    const toastRef = dialogRef.componentInstance as AXToastComponent;\n    dialogRef.closed.subscribe(() => {\n      this.activeToasts = this.activeToasts.filter((id) => id !== dialogRef.id);\n\n      this.handleShowReservedToast();\n      this.handleReservedToastCounter();\n\n      setTimeout(() => {\n        this.reposition(config.location, gap);\n      }, 0);\n    });\n\n    return {\n      close: () => {\n        toastRef.close();\n      },\n    };\n  }\n\n  hideAll() {\n    this.dialog.closeAll();\n    this.reserveCounter = 0;\n    this.reservedToasts = [];\n    this.activeToasts = [];\n    this.handleReservedToastCounter();\n  }\n\n  private handleShowReservedToast() {\n    if (this.activeToasts.length > this.defaultConfig.limit - 1) return;\n    if (!this.reservedToasts.length) return;\n\n    const { config, reservedRef } = this.reservedToasts.shift();\n\n    const displayedRef = this.displayToast(config);\n    this.handleReservedToastCounter();\n    reservedRef.close = displayedRef.close;\n  }\n\n  private handleReservedToastCounter() {\n    const reservedCount = this.reservedToasts.length;\n\n    if (reservedCount === this.reserveCounter) return;\n\n    this.reserveCounter = reservedCount;\n\n    if (reservedCount === 0 && this.toastCounterElement !== null) {\n      this.toastCounterElement.close();\n      return;\n    }\n\n    if (reservedCount > 0) {\n      if (this.toastCounterElement !== null) {\n        this.toastCounterElement.close();\n      }\n      this.createReservedCounterToast();\n    }\n  }\n\n  private async createReservedCounterToast() {\n    const opt: AXToastData = {\n      closeButton: false,\n      color: this.moreToastsColor,\n      location: this.moreToastsLocation,\n      title: await this.translationService.translateAsync('more-toast', {\n        params: { number: this.reserveCounter },\n      }),\n      timeOutProgress: false,\n    };\n    const gap = this.defaultConfig.gap;\n    const pos = this.getPosition(opt.location) + gap + 'px';\n    const positionStrategy = this.getPositionStrategy(new GlobalPositionStrategy(), opt.location, pos, gap);\n    const dialogRef = this.dialog.open(AXToastComponent, {\n      data: opt,\n      autoFocus: '__no_element__',\n      restoreFocus: true,\n      role: 'dialog',\n      ariaModal: true,\n      closeOnNavigation: true,\n      closeOnDestroy: true,\n      hasBackdrop: false,\n      panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n      positionStrategy,\n      scrollStrategy: this.scrollStrategy,\n    });\n    this.toastCounterElement = dialogRef.componentInstance as AXToastComponent;\n  }\n\n  private reposition(toastLocation: AXLocation, gap: number): void {\n    const list = this.dialog.openDialogs\n      .map((c) => c.componentInstance as AXToastComponent)\n      .filter((c) => c.config?.location == toastLocation);\n\n    list.forEach((element, index) => {\n      const pos = this.getRepositionPosition(index, gap, list, toastLocation);\n\n      this.getPositionStrategy(\n        element.dialogRef.config.positionStrategy as GlobalPositionStrategy,\n        toastLocation,\n        pos,\n        gap,\n      ).apply();\n    });\n  }\n\n  private getRepositionPosition(index: number, gap: number, list: AXToastComponent[], toastLocation: string) {\n    if (index === 0) return gap + 'px';\n    const previouseElement = list[index - 1];\n    if (toastLocation.split('-')[0] == 'bottom') {\n      return window.innerHeight - previouseElement.getHostElement().offsetTop + gap + 'px';\n    }\n    return (\n      previouseElement.getHostElement().offsetTop +\n      previouseElement.getHostElement().offsetHeight +\n      gap +\n      'px'\n    );\n  }\n\n  private getPosition(location: string) {\n    const list = this.dialog.openDialogs\n      .map((c) => c.componentInstance as AXToastComponent)\n      .filter((c) => c.config?.location == location);\n    if (list.length == 0) return 0;\n    if (location.split('-')[0] == 'bottom') {\n      return window.innerHeight - list[list.length - 1].getHostElement().offsetTop;\n    }\n    return (\n      list[list.length - 1].getHostElement().offsetTop + list[list.length - 1].getHostElement().offsetHeight\n    );\n  }\n\n  private getPositionStrategy(\n    positionStrategy: GlobalPositionStrategy,\n    location: AXLocation,\n    pos: string,\n    gap: number,\n  ) {\n    switch (location) {\n      case 'bottom-center':\n        return positionStrategy.bottom(pos).centerHorizontally();\n        break;\n      case 'bottom-end':\n        return positionStrategy.bottom(pos).right(gap + 'px');\n        break;\n      case 'bottom-start':\n        return positionStrategy.bottom(pos).left(gap + 'px');\n        break;\n      case 'top-center':\n        return positionStrategy.top(pos).centerHorizontally();\n        break;\n      case 'top-end':\n        return positionStrategy.top(pos).right(gap + 'px');\n        break;\n      case 'top-start':\n        return positionStrategy.top(pos).left(gap + 'px');\n        break;\n      case 'center-start':\n        return positionStrategy.centerVertically().left(gap + 'px');\n        break;\n      case 'center-end':\n        return positionStrategy.centerVertically().right(gap + 'px');\n        break;\n    }\n  }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXToastComponent } from './toast.component';\nimport { AXToastService } from './toast.service';\n\nconst COMPONENT = [AXToastComponent];\nconst MODULES = [CommonModule, AXButtonModule, AXDecoratorModule, AXLoadingModule, DialogModule, AXTranslationModule];\n\n@NgModule({\n  declarations: [...COMPONENT],\n  imports: [...MODULES],\n  exports: [...COMPONENT],\n  providers: [AXToastService],\n})\nexport class AXToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
         | 
| @@ -55,6 +55,7 @@ class AXWysiwygContainerComponent extends classes((MXInputBaseValueComponent), M | |
| 55 55 | 
             
                     *
         | 
| 56 56 | 
             
                     */
         | 
| 57 57 | 
             
                    this.placeHolder = input();
         | 
| 58 | 
            +
                    this.isQuillLoaded = signal(false);
         | 
| 58 59 | 
             
                    this.#init = afterNextRender(() => {
         | 
| 59 60 | 
             
                        const view = this.getHostElement().querySelector('ax-wysiwyg-view');
         | 
| 60 61 | 
             
                        this.zone.runOutsideAngular(async () => {
         | 
| @@ -64,6 +65,7 @@ class AXWysiwygContainerComponent extends classes((MXInputBaseValueComponent), M | |
| 64 65 | 
             
                                    readOnly: true,
         | 
| 65 66 | 
             
                                });
         | 
| 66 67 | 
             
                                this.service.wysiwyg.set(newWysiwyg);
         | 
| 68 | 
            +
                                this.isQuillLoaded.set(true);
         | 
| 67 69 | 
             
                            }
         | 
| 68 70 | 
             
                        });
         | 
| 69 71 | 
             
                    });
         | 
| @@ -76,7 +78,7 @@ class AXWysiwygContainerComponent extends classes((MXInputBaseValueComponent), M | |
| 76 78 | 
             
                        }
         | 
| 77 79 | 
             
                    });
         | 
| 78 80 | 
             
                    this.#effect2 = effect(() => {
         | 
| 79 | 
            -
                        if (this. | 
| 81 | 
            +
                        if (this.isQuillLoaded() && this.value) {
         | 
| 80 82 | 
             
                            this.service.wysiwyg().quillObj().root.innerHTML = this.value;
         | 
| 81 83 | 
             
                        }
         | 
| 82 84 | 
             
                    });
         | 
| @@ -123,10 +125,12 @@ class AXWysiwygContainerComponent extends classes((MXInputBaseValueComponent), M | |
| 123 125 | 
             
                    clearTimeout(this.setTimeOut);
         | 
| 124 126 | 
             
                }
         | 
| 125 127 | 
             
                internalValueChanged(value) {
         | 
| 128 | 
            +
                    if (!this.isQuillLoaded())
         | 
| 129 | 
            +
                        return;
         | 
| 126 130 | 
             
                    if (this.quillChangeTriggred())
         | 
| 127 131 | 
             
                        return;
         | 
| 128 132 | 
             
                    this.ngModleChangeTriggred.set(true);
         | 
| 129 | 
            -
                    this.service.wysiwyg() | 
| 133 | 
            +
                    this.service.wysiwyg().quillObj().root.innerHTML = value;
         | 
| 130 134 | 
             
                    this.ngModleChangeTriggred.set(false);
         | 
| 131 135 | 
             
                }
         | 
| 132 136 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         |