{"version":3,"file":"cargos-cs-modal.mjs","sources":["../../../projects/cs-modal/src/lib/model/spinner.ts","../../../projects/cs-modal/src/lib/model/modal.ts","../../../projects/cs-modal/src/lib/utils/check-type.ts","../../../projects/cs-modal/src/lib/model/button-options.ts","../../../projects/cs-modal/src/lib/utils/button-icon.enum.ts","../../../projects/cs-modal/src/lib/utils/button-factory.ts","../../../projects/cs-modal/src/lib/cs-modal.service.ts","../../../projects/cs-modal/src/lib/utils/modal-instance.ts","../../../projects/cs-modal/src/lib/cs-modal.ts","../../../projects/cs-modal/src/lib/utils/dom.ts","../../../projects/cs-modal/src/lib/auto-close/auto-close.component.ts","../../../projects/cs-modal/src/lib/auto-close/auto-close.component.html","../../../projects/cs-modal/src/lib/spinner/spinner.component.ts","../../../projects/cs-modal/src/lib/spinner/spinner.component.html","../../../projects/cs-modal/src/lib/modal-content/modal-content.component.ts","../../../projects/cs-modal/src/lib/modal-content/modal-content.component.html","../../../projects/cs-modal/src/lib/directives/bg-dimiss-animated.directive.ts","../../../projects/cs-modal/src/lib/directives/cs-modal-visibility.directive.ts","../../../projects/cs-modal/src/lib/directives/modal.directive.ts","../../../projects/cs-modal/src/lib/maximize/maximize.component.ts","../../../projects/cs-modal/src/lib/maximize/maximize.component.html","../../../projects/cs-modal/src/lib/keydown-events/keydown-events.component.ts","../../../projects/cs-modal/src/lib/keydown-events/keydown-events.component.html","../../../projects/cs-modal/src/lib/cs-modal.component.ts","../../../projects/cs-modal/src/lib/cs-modal.component.html","../../../projects/cs-modal/src/lib/cs-modal.module.ts","../../../projects/cs-modal/src/public-api.ts","../../../projects/cs-modal/src/cargos-cs-modal.ts"],"sourcesContent":["export enum Spinner {\n  dots = 'dots',\n  circle = 'circle'\n}\n\nexport type SpinnerType = keyof typeof Spinner;\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { ButtonOptions } from './button-options';\nimport { DynamicComponent, ModalCallback, ModalVoidCallback } from './function-type';\nimport { ModalContent, ModalContentInstance } from './modal-content';\nimport { ModalInternalParams } from './modal-params';\nimport { Spinner, SpinnerType } from './spinner';\n\nexport class Modal<T = DynamicComponent> {\n\n  private visible: BehaviorSubject<boolean>;\n  private visible$: Observable<boolean>;\n  public contentInstance: ModalContentInstance<T>;\n  public backgroundColor: string;\n\n  constructor(\n    public title: string = '',\n    public titleClass: string = '',\n    public titleAlign: 'left' | 'center' | 'right' = 'center',\n    public content: ModalContent = '',\n    public contentAlign: 'left' | 'center' | 'right' = 'center',\n    public type: 'default' | 'warning' | 'error' | 'success' | 'info' = 'default',\n    public spinner: SpinnerType = Spinner.dots,\n    public buttons: ButtonOptions<T>[] = [],\n    public buttonsAlign: 'left' | 'center' | 'right' | 'space-evenly' = 'center',\n    public iconName: string = '',\n    public iconFontClass: string = 'material-icons',\n    public iconAlign: 'left' | 'center' | 'right' = 'center',\n    public bgTheme: 'black' | 'white' = 'black',\n    public theme: 'sprintpass' = 'sprintpass',\n    public animation: 'scale' | 'fade' = 'fade',\n    public closeAnimation: 'scale' | 'fade' = 'fade',\n    public closeIcon: ModalCallback<T> = null,\n    public closeIconName: string = 'close',\n    public columnClass: 'xsmall' | 'small' | 'medium' | 'large' | 'cover' = 'small',\n    public fontSize: 'small' | 'medium' | 'large' = 'small',\n    public autoClose: number = 0,\n    public autoCloseAction: ModalCallback<T> | string = '',\n    public backgroundDismiss: ModalCallback<T> = null,\n    public backgroundDismissAnimation: 'none' | 'shake' = 'shake',\n    public escapeKey: ModalCallback<T> = null,\n    public maximize: boolean = false,\n    public onContentReady: ModalVoidCallback<T> = null,\n    public onContentError: ModalVoidCallback<T> = null,\n    public zIndex: number = 1000,\n    visible: boolean = false\n  ) {\n    this.visible = new BehaviorSubject<boolean>(visible);\n    this.visible$ = this.visible.asObservable();\n    this.contentInstance = null;\n    this.backgroundColor = this.buildBackgroundColor();\n  }\n\n  static fromJson<T = DynamicComponent>({\n    title,\n    titleClass,\n    titleAlign,\n    content,\n    contentAlign,\n    type,\n    spinner,\n    buttons,\n    buttonsAlign,\n    iconName,\n    iconFontClass,\n    iconAlign,\n    bgTheme,\n    theme,\n    animation,\n    closeAnimation,\n    closeIcon,\n    closeIconName,\n    columnClass,\n    fontSize,\n    autoClose,\n    autoCloseAction,\n    backgroundDismiss,\n    backgroundDismissAnimation,\n    escapeKey,\n    maximize,\n    onContentReady,\n    onContentError,\n    zIndex,\n    visible\n  }: ModalInternalParams<T>): Modal<T> {\n    return new Modal<T>(\n      title,\n      titleClass,\n      titleAlign,\n      content,\n      contentAlign,\n      type,\n      spinner,\n      buttons,\n      buttonsAlign,\n      iconName,\n      iconFontClass,\n      iconAlign,\n      bgTheme,\n      theme,\n      animation,\n      closeAnimation,\n      closeIcon,\n      closeIconName,\n      columnClass,\n      fontSize,\n      autoClose,\n      autoCloseAction,\n      backgroundDismiss,\n      backgroundDismissAnimation,\n      escapeKey,\n      maximize,\n      onContentReady,\n      onContentError,\n      zIndex,\n      visible\n    );\n  }\n\n  private buildBackgroundColor(): string {\n    const cssVar = `--csmodal-color-overlay-${this.bgTheme}`;\n\n    return `rgba(var(${cssVar}-r), var(${cssVar}-g), var(${cssVar}-b), var(--csmodal-color-overlay-a))`;\n  }\n\n  getVisibility(): Observable<boolean> {\n    return this.visible$;\n  }\n\n  close() {\n    this.visible.next(false);\n  }\n\n  requireClose(callback?: ModalCallback<T>) {\n    return (callback && callback(this)) || this.close();\n  }\n\n  clearModal() {\n    const defaultModal = new Modal();\n    delete defaultModal.visible;\n    delete defaultModal.visible$;\n\n    Object.assign(this, defaultModal);\n  }\n\n  findButton(name: string): ButtonOptions<T> {\n    return this.buttons.find(button => button.name === name);\n  }\n\n  updateButtons(names: string[], property: string, value: unknown) {\n    this.buttons.forEach(button => {\n      if (property in button && names.includes(button.name)) {\n        button[property] = value;\n      }\n    });\n  }\n\n  updateAllButtons(property: string, value: unknown) {\n    this.buttons.forEach(button => {\n      if (property in button) {\n        button[property] = value;\n      }\n    });\n  }\n\n  hideButtons(names: string[]) {\n    this.updateButtons(names, 'isHidden', true);\n  }\n\n  hideAllButtons() {\n    this.updateAllButtons('isHidden', true);\n  }\n\n  showButtons(names: string[]) {\n    this.updateButtons(names, 'isHidden', false);\n  }\n\n  showAllButtons() {\n    this.updateAllButtons('isHidden', false);\n  }\n\n  areAllButtonsHidden(): boolean {\n    return this.buttons.every(button => button.isHidden);\n  }\n\n  disableButtons(names: string[]) {\n    this.updateButtons(names, 'isDisabled', true);\n  }\n\n  disableAllButtons() {\n    this.updateAllButtons('isDisabled', true);\n  }\n\n  enableButtons(names: string[]) {\n    this.updateButtons(names, 'isDisabled', false);\n  }\n\n  enableAllButtons() {\n    this.updateAllButtons('isDisabled', false);\n  }\n\n  patchFromJson({\n    title = this.title,\n    titleClass = this.titleClass,\n    titleAlign = this.titleAlign,\n    content = this.content,\n    contentAlign = this.contentAlign,\n    type = this.type,\n    spinner = this.spinner,\n    buttons = this.buttons,\n    buttonsAlign = this.buttonsAlign,\n    iconName = this.iconName,\n    iconFontClass = this.iconFontClass,\n    iconAlign = this.iconAlign,\n    bgTheme = this.bgTheme,\n    theme = this.theme,\n    animation = this.animation,\n    closeAnimation = this.closeAnimation,\n    closeIcon = this.closeIcon,\n    closeIconName = this.closeIconName,\n    columnClass = this.columnClass,\n    fontSize = this.fontSize,\n    autoClose = this.autoClose,\n    autoCloseAction = this.autoCloseAction,\n    backgroundDismiss = this.backgroundDismiss,\n    backgroundDismissAnimation = this.backgroundDismissAnimation,\n    escapeKey = this.escapeKey,\n    maximize = this.maximize,\n    onContentReady = this.onContentReady,\n    zIndex = this.zIndex,\n    onContentError = this.onContentError,\n    visible = false\n  }): Modal<T> {\n    return new Modal<T>(\n      title,\n      titleClass,\n      titleAlign,\n      content,\n      contentAlign,\n      type,\n      spinner,\n      buttons,\n      buttonsAlign,\n      iconName,\n      iconFontClass,\n      iconAlign,\n      bgTheme,\n      theme,\n      animation,\n      closeAnimation,\n      closeIcon,\n      closeIconName,\n      columnClass,\n      fontSize,\n      autoClose,\n      autoCloseAction,\n      backgroundDismiss,\n      backgroundDismissAnimation,\n      escapeKey,\n      maximize,\n      onContentReady,\n      onContentError,\n      zIndex,\n      visible\n    );\n  }\n}\n","export const isFunction = (arg): boolean => {\n  return !!(arg && arg.constructor && arg.call && arg.apply);\n};","import { DynamicComponent, ModalVoidCallback, ModalBooleanCallback } from './function-type';\nimport { SpinnerType, Spinner } from './spinner';\n\nexport class ButtonOptions<T = DynamicComponent> {\n\n  public loading: boolean;\n\n  constructor(\n    public name: string,\n    public text: string,\n    public action: ModalVoidCallback<T> | ModalBooleanCallback<T> = () => { },\n    public btnClass: string = '',\n    public iconName: string = '',\n    public iconFontClass: string = '',\n    public isHidden: boolean = false,\n    public isDisabled: boolean = false,\n    public spinner: SpinnerType = Spinner.circle\n  ) { }\n\n  static fromJson<T = DynamicComponent>({\n    name,\n    text,\n    action,\n    btnClass,\n    iconName,\n    iconFontClass,\n    isHidden,\n    isDisabled,\n    spinner\n  }: ButtonOptionsProperties<T>): ButtonOptions<T> {\n    return new ButtonOptions<T>(\n      name,\n      text,\n      action,\n      btnClass,\n      iconName,\n      iconFontClass,\n      isHidden,\n      isDisabled,\n      spinner\n    );\n  }\n\n  patchFromJson({\n    name = this.name,\n    text = this.text,\n    action = this.action,\n    btnClass = this.btnClass,\n    iconName = this.iconName,\n    iconFontClass = this.iconFontClass,\n    isHidden = this.isHidden,\n    isDisabled = this.isDisabled,\n    spinner = this.spinner\n  }: ButtonOptionsProperties<T>): ButtonOptions<T> {\n    return new ButtonOptions<T>(\n      name,\n      text,\n      action,\n      btnClass,\n      iconName,\n      iconFontClass,\n      isHidden,\n      isDisabled,\n      spinner\n    );\n  }\n\n  setLoading() {\n    this.loading = true;\n    this.disable();\n  }\n\n  removeLoading() {\n    this.loading = false;\n    this.enable();\n  }\n\n  disable() {\n    this.isDisabled = true;\n  }\n\n  enable() {\n    this.isDisabled = false;\n  }\n\n  show() {\n    this.isHidden = false;\n  }\n\n  hide() {\n    this.isHidden = true;\n  }\n}\n\nexport class ButtonOptionsProperties<T = DynamicComponent> {\n  name?: string;\n  text?: string;\n  action?: ModalVoidCallback<T> | ModalBooleanCallback<T>;\n  btnClass?: string;\n  iconName?: string;\n  iconFontClass?: string;\n  isHidden?: boolean;\n  isDisabled?: boolean;\n  spinner?: SpinnerType;\n}\n","export enum ButtonIcon {\n  confirm = 'check',\n  cancel = 'close'\n}\n","import { ButtonOptions, ButtonOptionsProperties } from '../model/button-options';\nimport { DynamicComponent } from '../model/function-type';\nimport { ButtonIcon } from './button-icon.enum';\n\nconst defaultClassPrefix = 'cs-modal__button--';\nconst parseExtrasOrAction = <T = DynamicComponent>(extrasOrAction: ButtonOptionsProperties<T> | ButtonOptionsProperties<T>['action']): ButtonOptionsProperties<T> => {\n  if (!extrasOrAction) {\n    return {};\n  }\n\n  if (extrasOrAction instanceof Function) {\n    return {\n      action: extrasOrAction\n    };\n  }\n\n  return extrasOrAction;\n};\n\nfunction ButtonFactory<T = DynamicComponent>(name: string, extras?: ButtonOptionsProperties<T>, classPrefix?: string): ButtonOptions<T>;\nfunction ButtonFactory<T = DynamicComponent>(name: string, action?: ButtonOptionsProperties<T>['action'], classPrefix?: string): ButtonOptions<T>;\nfunction ButtonFactory<T = DynamicComponent>(\n  name: string,\n  extrasOrAction: ButtonOptionsProperties<T> | ButtonOptionsProperties<T>['action'] = {},\n  classPrefix: string = defaultClassPrefix\n): ButtonOptions<T> {\n  return ButtonOptions.fromJson<T>({\n    name,\n    text: `${name.charAt(0).toUpperCase()}${name.slice(1)}`,\n    btnClass: `${classPrefix}${name}`,\n    iconName: ButtonIcon[name] || '',\n    ...parseExtrasOrAction<T>(extrasOrAction)\n  });\n}\n\nexport { ButtonFactory };\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { Modal } from './model/modal';\nimport { ModalInternalParams, ModalParams } from './model/modal-params';\nimport { DynamicComponent, ModalCallback } from './model/function-type';\nimport { isFunction } from './utils/check-type';\nimport { ButtonFactory } from './utils/button-factory';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CsModalService {\n\n  private currentSettings: Modal;\n  private settings: Subject<Modal>;\n  protected settings$: Observable<Modal>;\n  public customSettings: ModalParams = {};\n\n  constructor() {\n    this.currentSettings = new Modal();\n    this.settings = new Subject();\n    this.settings$ = this.settings.asObservable();\n  }\n  private parseSettings<T = DynamicComponent>(settings: ModalParams<T>): ModalInternalParams<T> {\n    const close = (modal?: Modal<T>) => { modal?.close(); };\n    const parseTypeBoolOrFunction = (param: boolean | ModalCallback<T>) => {\n      if (typeof param === 'boolean') {\n        return param ? close : null;\n      }\n\n      if (isFunction(param)) {\n        return (modal?: Modal<T>) => { param(modal); };\n      }\n\n      return null;\n    };\n\n    const closeIcon = parseTypeBoolOrFunction(\n      (isFunction(settings.closeIcon) || typeof settings.closeIcon === 'boolean') ? settings.closeIcon : true\n    );\n    const backgroundDismiss = parseTypeBoolOrFunction(settings.backgroundDismiss);\n    const escapeKey = parseTypeBoolOrFunction(settings.escapeKey);\n\n    return {\n      ...settings,\n      closeIcon,\n      backgroundDismiss,\n      escapeKey\n    };\n  }\n\n  private validateSettingsType<T = DynamicComponent>(settings: ModalParams<T> | string): ModalParams<T> {\n    if (settings) {\n      return typeof settings === 'string' ? {\n        content: settings\n      } : settings;\n    }\n\n    return {};\n  }\n\n  getSettings(): Observable<Modal> {\n    return this.settings$;\n  }\n\n  show<T = DynamicComponent>(settings: ModalParams<T>): Modal<T> {\n    this.currentSettings = Modal.fromJson<T>({\n      ...this.parseSettings<T>({ ...this.customSettings, ...settings }),\n      visible: true\n    });\n    this.settings.next(this.currentSettings);\n\n    return this.currentSettings as Modal<T>;\n  }\n\n  confirm<T = DynamicComponent>(settings: ModalParams<T>): Modal<T> {\n    return this.show<T>(settings);\n  }\n\n  success<T = DynamicComponent>(settings: ModalParams<T> | string): Modal<T> {\n    return this.confirm<T>({\n      title: 'Success',\n      iconName: 'check_circle',\n      buttons: [\n        ButtonFactory('confirm')\n      ],\n      escapeKey: true,\n      ...this.validateSettingsType<T>(settings),\n      type: 'success'\n    });\n  }\n\n  warning<T = DynamicComponent>(settings: ModalParams<T> | string): Modal<T> {\n    return this.confirm<T>({\n      title: 'Warning',\n      iconName: 'warning',\n      buttons: [\n        ButtonFactory('confirm')\n      ],\n      escapeKey: true,\n      ...this.validateSettingsType<T>(settings),\n      type: 'warning'\n    });\n  }\n\n  error<T = DynamicComponent>(settings: ModalParams<T> | string): Modal<T> {\n    return this.confirm<T>({\n      title: 'Error',\n      iconName: 'error',\n      buttons: [\n        ButtonFactory('confirm')\n      ],\n      escapeKey: true,\n      ...this.validateSettingsType<T>(settings),\n      type: 'error'\n    });\n  }\n\n  close() {\n    if (this.currentSettings && this.currentSettings.close) {\n      this.currentSettings.close();\n    }\n  }\n}\n","import { Injector } from '@angular/core';\nimport { CsModalService } from '../cs-modal.service';\nimport { ModalParams } from '../model/modal-params';\n\nexport class CsModal extends CsModalService { }\n\nexport class ModalInstance {\n\n    constructor() { }\n\n    static generate(customSettings: ModalParams = {}) {\n        const injector = Injector.create({\n            providers: [\n                {\n                    provide: CsModal,\n                    useClass: CsModalService,\n                    deps: []\n                }\n            ]\n        });\n\n        const csModal = injector.get(CsModal);\n        csModal.customSettings = customSettings;\n\n        return csModal;\n    }\n\n}\n","import { ModalInstance } from './utils/modal-instance';\n\nconst csModal = ModalInstance.generate();\n\nexport { csModal };\n","export const focusableSelectors = [\n  'a[href]',\n  'area[href]',\n  'input:not([disabled])',\n  'select:not([disabled])',\n  'textarea:not([disabled])',\n  'button:not([disabled])',\n  '[tabindex]:not([tabindex=\"-1\"])',\n  'iframe',\n  'object',\n  'embed',\n  '[contenteditable]',\n  'audio[controls]',\n  'video[controls]',\n];\n\nexport const isVisible = (element: HTMLElement): boolean =>\n  !!(\n    element\n    && (element.offsetWidth || element.offsetHeight || element.getClientRects().length)\n    && window.getComputedStyle(element).display !== 'none'\n    && window.getComputedStyle(element).visibility !== 'hidden'\n  );\n\nexport const getFocusableElements = (rootElement: HTMLElement): HTMLElement[] => {\n  return Array.from(\n    rootElement.querySelectorAll<HTMLElement>(focusableSelectors.join(','))\n  )\n    .filter(element =>\n      element.getAttribute('tabindex') !== '-1'\n      && isVisible(element)\n    )\n    .sort((a, b) => {\n      const tabIndexA = parseInt(a.getAttribute('tabindex')) || 0;\n      const tabIndexB = parseInt(b.getAttribute('tabindex')) || 0;\n\n      return tabIndexB - tabIndexA;\n    });\n};\n\nexport const getFirstFocusableElement = (rootElement: HTMLElement): HTMLElement => {\n  return getFocusableElements(rootElement)[0];\n};","import { Component, Input, OnDestroy } from '@angular/core';\nimport { Observable, Subscription, timer } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { Modal } from '../model/modal';\n\n@Component({\n    selector: 'cs-modal-auto-close',\n    templateUrl: './auto-close.component.html',\n    standalone: false\n})\nexport class AutoCloseComponent implements OnDestroy {\n\n  public missingSeconds: number;\n  public progress: number;\n  private _settings: Modal;\n  private autoCloseSub: Subscription;\n  private _aliveAutoClose$: Observable<void>;\n  private aliveAutoCloseSub: Subscription;\n\n  @Input()\n  set settings(settings: Modal) {\n    this.reset();\n    this._settings = settings;\n    if (settings.autoClose) {\n      this.subscribeAutoClose();\n    }\n  }\n\n  get settings(): Modal { return this._settings; }\n\n  @Input('unsubscribe')\n  set aliveAutoClose$(aliveAutoClose$: Observable<void>) {\n    this._aliveAutoClose$ = aliveAutoClose$;\n    this.subscribeAliveAutoClose();\n  }\n\n  get aliveAutoClose$(): Observable<void> { return this._aliveAutoClose$; }\n\n  constructor() { }\n\n  ngOnDestroy(): void {\n    this.reset();\n    this.unsubscribeAliveAutoClose();\n  }\n\n  private reset(): void {\n    this.unsubscribeAutoClose();\n    this.missingSeconds = 0;\n    this.progress = 0;\n  }\n\n  private unsubscribeAliveAutoClose(): void {\n    this.aliveAutoCloseSub && this.aliveAutoCloseSub.unsubscribe();\n  }\n\n  private subscribeAliveAutoClose(): void {\n    this.unsubscribeAliveAutoClose();\n\n    this.aliveAutoCloseSub = this.aliveAutoClose$\n      .subscribe(() => {\n        this.unsubscribeAutoClose();\n      });\n  }\n\n  private unsubscribeAutoClose(): void {\n    this.autoCloseSub && this.autoCloseSub.unsubscribe();\n  }\n\n  private subscribeAutoClose(): void {\n    const seconds = Math.floor(this.settings.autoClose / 1000) + 1;\n    const initialDelay = this.settings.autoClose % 1000;\n\n    this.missingSeconds = Math.round(this.settings.autoClose / 100) / 10;\n\n    this.autoCloseSub = timer(initialDelay, 1000).pipe(\n      take(seconds),\n      // takeUntil(this.unsubscribe$),\n    )\n      .subscribe({\n        next: value => {\n          if (value === 0) {\n            this.missingSeconds = Math.floor(this.missingSeconds);\n          } else if (this.missingSeconds > 0) {\n            this.missingSeconds -= 1;\n          } else {\n            this.missingSeconds = 0;\n          }\n\n          this.progress = this.calculateProgress(this.settings.autoClose / 1000, this.missingSeconds);\n        },\n        error: error => {\n          console.error(error);\n        },\n        complete: () => {\n          this.missingSeconds = 0;\n          this.progress = 100;\n          if (this.settings.autoCloseAction) {\n            if (typeof this.settings.autoCloseAction === 'string') {\n              const buttonFound = this.settings.buttons.find(button => {\n                return button.name === this.settings.autoCloseAction;\n              });\n\n              if (buttonFound) {\n                this.settings.requireClose(buttonFound.action);\n              }\n            } else {\n              this.settings.autoCloseAction(this.settings);\n            }\n          } else {\n            this.settings.close();\n          }\n        }\n      });\n  }\n\n  calculateProgress(totalSeconds: number, missingSeconds: number): number {\n    if (missingSeconds > totalSeconds) {\n      return 0;\n    }\n\n    if (missingSeconds <= 0) {\n      return 100;\n    }\n\n    missingSeconds -= 1;\n\n    return (1 - (missingSeconds / totalSeconds)) * 100;\n  }\n\n}\n","@if (settings.autoClose) {\n<div class=\"cs-modal__progress\">\n  <div class=\"cs-modal__progress__bar\" [ngStyle]=\"{'width': progress + '%'}\"></div>\n</div>\n}","import { Component, HostBinding, Input, OnChanges } from '@angular/core';\nimport { SpinnerType } from '../model/spinner';\n\n@Component({\n    selector: 'cs-spinner',\n    templateUrl: './spinner.component.html',\n    standalone: false\n})\nexport class SpinnerComponent implements OnChanges {\n\n  public spinnerClass: string;\n  @Input() spinner: SpinnerType;\n  @Input() spinnerSize: 'small' | 'default' = 'default';\n  @Input() transparency: boolean;\n  @HostBinding('class') get hostClasses(): string {\n    return this.spinnerClass;\n  }\n\n  constructor() { }\n\n  ngOnChanges() {\n    const transparencyClass = this.transparency ? '--transparency' : '';\n    this.spinnerClass = `cs-modal__spinner--${this.spinner}--size-${this.spinnerSize}${transparencyClass}`;\n  }\n\n}\n","@switch (spinner) {\n@case ('dots') {\n<div class=\"{{spinnerClass}}__dot\"></div>\n<div class=\"{{spinnerClass}}__dot\"></div>\n<div class=\"{{spinnerClass}}__dot\"></div>\n}\n}","import { Component, ComponentRef, Input, OnDestroy, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Observable, Subscription, isObservable } from 'rxjs';\nimport { ModalContentAsyncType, ModalContentComponentClassType } from '../model';\nimport { Modal } from '../model/modal';\nimport { SpinnerType } from '../model/spinner';\n\n@Component({\n    selector: 'cs-modal-content',\n    templateUrl: './modal-content.component.html',\n    standalone: false\n})\nexport class ModalContentComponent implements OnDestroy {\n\n  private _settings: Modal;\n  private _aliveContent$: Observable<void>;\n  private aliveContentSub: Subscription;\n  private contentSub: Subscription;\n  public content: string;\n  public loading: boolean;\n  public spinner: SpinnerType;\n  public componentRef: ComponentRef<unknown>;\n\n  @Input()\n  set settings(settings: Modal) {\n    this._settings = settings;\n    this.spinner = settings.spinner;\n    this.subscribeContent();\n  }\n\n  get settings(): Modal { return this._settings; }\n\n  @Input('unsubscribe')\n  set aliveContent$(aliveContent$: Observable<void>) {\n    this._aliveContent$ = aliveContent$;\n    this.subscribeAliveContent();\n  }\n\n  get aliveContent$(): Observable<void> { return this._aliveContent$; }\n\n  @ViewChild('componentContainer', { read: ViewContainerRef, static: true }) container: ViewContainerRef;\n\n  constructor() {\n    this.content = '';\n    this.loading = false;\n  }\n\n  ngOnDestroy(): void {\n    this.componentRef && this.componentRef.destroy();\n    this.unsubscribeAliveContent();\n    this.unsubscribeContent();\n  }\n\n  private reset(): void {\n    this.unsubscribeContent();\n    this.content = '';\n    this.loading = false;\n    this.settings.contentInstance = null;\n    this.container.clear();\n  }\n\n  private executeContentReady(): void {\n    if (this.settings.onContentReady) {\n      this.settings.onContentReady(this.settings);\n    }\n  }\n\n  private executeContentError(): void {\n    if (this.settings.onContentError) {\n      this.settings.onContentError(this.settings);\n    }\n  }\n\n  private unsubscribeAliveContent(): void {\n    this.aliveContentSub && this.aliveContentSub.unsubscribe();\n  }\n\n  private subscribeAliveContent(): void {\n    this.unsubscribeAliveContent();\n\n    this.aliveContentSub = this.aliveContent$\n      .subscribe(() => {\n        this.unsubscribeContent();\n      });\n  }\n\n  private unsubscribeContent(): void {\n    this.contentSub && this.contentSub.unsubscribe();\n  }\n\n  private renderComponentRef<T>(componentRef: ComponentRef<T>): void {\n    this.content = '';\n    this.componentRef = componentRef;\n    this.settings.contentInstance = this.componentRef.instance;\n    this.executeContentReady();\n  }\n\n  private renderComponent<T>({ componentClass, options }: ModalContentComponentClassType<T>): void {\n    const projectableNodes = options?.projectableNodes ?? [[document.createTextNode('')]];\n    this.renderComponentRef<T>(this.container.createComponent<T>(componentClass, { ...options, projectableNodes }));\n  }\n\n  private renderContentAsync(observable: Observable<string>): void {\n    this.loading = true;\n\n    this.contentSub = observable\n      .subscribe(result => {\n        this.loading = false;\n        this.content = result;\n        this.executeContentReady();\n      }, () => {\n        this.loading = false;\n        this.content = '';\n        this.executeContentError();\n      });\n  }\n\n  private isFunction(obj): boolean {\n    return !!(obj && obj.constructor && obj.call && obj.apply);\n  }\n\n  private subscribeContent(): void {\n    this.reset();\n\n    if (typeof this.settings.content === 'string') {\n      this.content = this.settings.content;\n      this.executeContentReady();\n\n      return;\n    }\n\n    const content = this.settings.content;\n\n    if (content) {\n      if ((<ModalContentComponentClassType>content).componentClass) {\n        this.renderComponent((<ModalContentComponentClassType>content));\n\n        return;\n      }\n\n      if (this.isFunction((<ModalContentAsyncType>content).async) || this.isFunction(content)) {\n        const observable = this.isFunction(content)\n          ? (<ModalContentAsyncType['async']>content)(this.settings)\n          : (<ModalContentAsyncType>content).async(this.settings);\n\n        if (isObservable(observable)) {\n          this.renderContentAsync(observable);\n\n          return;\n        }\n      }\n    }\n\n    this.content = '';\n    this.executeContentError();\n  }\n}\n","@if (loading) {\n<div class=\"cs-modal__loading\">\n  <cs-spinner [spinner]=\"spinner\"></cs-spinner>\n</div>\n} @else {\n@if (content) {\n<div class=\"cs-modal__content__wrapper\" [innerHTML]=\"content\"></div>\n}\n}\n<ng-template #componentContainer></ng-template>","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\nimport { Modal } from '../model/modal';\n\n@Directive({\n    selector: '[csBgDimissAnimated]',\n    standalone: false\n})\nexport class BgDimissAnimatedDirective {\n\n  private animationTimerID: number;\n  private animationDuration: number;\n\n  @Input('csBgDimissAnimated') settings: Modal;\n\n  constructor(\n    private el: ElementRef,\n    private renderer: Renderer2\n  ) {\n    this.animationDuration = 500;\n  }\n\n  @HostListener('click') onClick() {\n    if (this.settings.backgroundDismiss) {\n      this.settings.backgroundDismiss(this.settings);\n    } else {\n      this.startAnimation();\n    }\n  }\n\n  startAnimation() {\n    this.stopAnimation();\n    this.renderer.addClass(this.el.nativeElement, `bg-dimiss-animation-${this.settings.backgroundDismissAnimation}`);\n\n    this.animationTimerID = window.setTimeout(() => {\n      this.renderer.removeClass(this.el.nativeElement, `bg-dimiss-animation-${this.settings.backgroundDismissAnimation}`);\n    }, this.animationDuration);\n  }\n\n  stopAnimation() {\n    window.clearTimeout(this.animationTimerID);\n    this.renderer.removeClass(this.el.nativeElement, `bg-dimiss-animation-${this.settings.backgroundDismissAnimation}`);\n  }\n\n}\n","import { Directive, OnDestroy, Input, ElementRef, Renderer2 } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Modal } from '../model/modal';\n\n@Directive({\n    selector: '[csModalVisibility]',\n    standalone: false\n})\nexport class CsModalVisibilityDirective implements OnDestroy {\n\n  private _settings: Modal;\n  private visibleSub: Subscription;\n  private animationTimerID: number;\n  private animationDuration: number;\n\n  @Input('csModalVisibility')\n  set settings(settings: Modal) {\n    this.stopAnimation();\n    this._settings = settings;\n    this.subscribeVisibility();\n  }\n\n  get settings(): Modal { return this._settings; }\n\n  constructor(\n    private el: ElementRef,\n    private renderer: Renderer2\n  ) {\n    this.animationDuration = 300;\n  }\n\n  ngOnDestroy() {\n    this.unsubscribeVisibility();\n  }\n\n  subscribeVisibility() {\n    this.unsubscribeVisibility();\n    this.visibleSub = this.settings.getVisibility()\n      .subscribe(visible => {\n        if (visible) {\n          this.onVisible();\n        } else {\n          this.onHidden();\n        }\n      });\n  }\n\n  unsubscribeVisibility() {\n    this.visibleSub && this.visibleSub.unsubscribe();\n  }\n\n  onVisible() {\n    const animation = `animation-${this.settings.animation}`;\n    this.stopAnimation();\n    this.addClassName('visible');\n    this.addClassName(animation);\n\n    this.animationTimerID = window.setTimeout(() => {\n      this.removeClassName(animation);\n    }, this.animationDuration);\n  }\n\n  onHidden() {\n    const animation = `close-animation-${this.settings.closeAnimation}`;\n    this.stopAnimation();\n    this.addClassName(animation);\n    this.removeClassName('visible');\n\n    this.animationTimerID = window.setTimeout(() => {\n      this.settings.clearModal();\n      this.removeClassName(animation);\n    }, this.animationDuration);\n  }\n\n  addClassName(className: string) {\n    this.renderer.addClass(this.el.nativeElement, className);\n  }\n\n  removeClassName(className: string) {\n    this.renderer.removeClass(this.el.nativeElement, className);\n  }\n\n  stopAnimation() {\n    window.clearTimeout(this.animationTimerID);\n    if (this.settings) {\n      this.removeClassName(`animation-${this.settings.animation}`);\n      this.removeClassName(`close-animation-${this.settings.closeAnimation}`);\n    }\n  }\n\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n    // tslint:disable-next-line: directive-selector\n    selector: '.cs-modal-overlay',\n    standalone: false\n})\nexport class ModalDirective {\n\n  @HostBinding('class.cs-modal--maximize') public maximizeClassActive = false;\n\n  addMaximizeClass() {\n    this.maximizeClassActive = true;\n  }\n\n  removeMaximizeClass() {\n    this.maximizeClassActive = false;\n  }\n\n  constructor() { }\n\n}\n","import { Component, OnDestroy, Input, Host } from '@angular/core';\nimport { Modal } from '../model/modal';\nimport { ModalDirective } from '../directives/modal.directive';\n\n@Component({\n    selector: 'cs-maximize',\n    templateUrl: './maximize.component.html',\n    standalone: false\n})\nexport class MaximizeComponent implements OnDestroy {\n\n  private _settings: Modal;\n  public maximized: boolean;\n\n  @Input()\n  set settings(settings: Modal) {\n    this.reset();\n    this._settings = settings;\n  }\n\n  get settings(): Modal { return this._settings; }\n\n  constructor(\n    @Host() private modalDirectiveQuery: ModalDirective\n  ) { }\n\n  ngOnDestroy() {\n    this.reset();\n  }\n\n  private reset() {\n    this.maximized = false;\n    this.modalDirectiveQuery.removeMaximizeClass();\n  }\n\n  toggleMaximize() {\n    if (this.maximized) {\n      this.maximized = false;\n      this.modalDirectiveQuery.removeMaximizeClass();\n    } else {\n      this.maximized = true;\n      this.modalDirectiveQuery.addMaximizeClass();\n    }\n  }\n\n}\n","@if (settings.maximize) {\n<button type=\"button\" class=\"cs-modal__maximize\" (click)=\"toggleMaximize()\"\n  title=\"{{maximized ? 'Minimize' : 'Maximize'}}\">\n  <i [class]=\"settings.iconFontClass\">{{maximized ? 'minimize' : 'maximize'}}</i>\n</button>\n}","import { Component, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Component({\n    selector: 'cs-keydown-events',\n    templateUrl: './keydown-events.component.html',\n    standalone: false\n})\nexport class KeydownEventsComponent {\n\n    @Output() event = new EventEmitter<KeyboardEvent>();\n\n    @HostListener('document:keydown', ['$event'])\n    handleKeyDown(event: KeyboardEvent) {\n        this.event.emit(event);\n    }\n}\n","","import { Component, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subject, Subscription, isObservable } from 'rxjs';\nimport { finalize, takeUntil } from 'rxjs/operators';\nimport { ButtonOptions } from './model/button-options';\nimport { Modal } from './model/modal';\nimport { getFirstFocusableElement, getFocusableElements } from './utils/dom';\n\n@Component({\n    selector: 'cs-modal',\n    templateUrl: './cs-modal.component.html',\n    styles: [],\n    standalone: false\n})\nexport class CsModalComponent implements OnInit, OnDestroy {\n\n  public settings: Modal;\n  public opened: boolean;\n  private settingsSub: Subscription;\n  public settingsObservablesUnsubscribe: Subject<void>;\n  private focusedElementBeforeOpen: HTMLElement;\n\n  @Input('settings') settings$: Observable<Modal>;\n\n  constructor(\n    private el: ElementRef\n  ) {\n    this.settings = new Modal();\n    this.settingsObservablesUnsubscribe = new Subject<void>();\n  }\n\n  ngOnInit(): void {\n    this.subscribeSettings();\n  }\n\n  ngOnDestroy(): void {\n    this.unsubscribeSettings();\n    this.settingsObservablesUnsubscribe.next(null);\n    this.settingsObservablesUnsubscribe.complete();\n  }\n\n  handleKeyDown(event: KeyboardEvent): void {\n    if (this.checkIfListenKeyboardEvents(<HTMLElement>event.target)) {\n      switch (event.key) {\n        case 'Escape':\n          if (this.settings.escapeKey) {\n            this.settings.escapeKey(this.settings);\n            event.stopPropagation();\n            event.preventDefault();\n          }\n\n          break;\n        case 'Tab':\n          this.handleTab(event);\n          break;\n      }\n    }\n  }\n\n  handleTab(event: KeyboardEvent): void {\n    const targetElement = <HTMLElement>event.target;\n    const focusableElements = getFocusableElements(this.el.nativeElement);\n\n    const elementIndex = focusableElements.findIndex(element => element === targetElement);\n    const totalElements = focusableElements.length;\n    const increment = event.shiftKey ? -1 : 1;\n\n    focusableElements[(Math.max(-1, elementIndex + increment) + totalElements) % totalElements].focus();\n\n    event.stopPropagation();\n    event.preventDefault();\n  }\n\n  checkIfListenKeyboardEvents(target: HTMLElement): boolean {\n    if (!this.opened) {\n      return false;\n    }\n\n    if (this.el.nativeElement.contains(target)) {\n      return true;\n    }\n\n    return !target.closest('[role=\"dialog\"]');\n  }\n\n  unsubscribeSettings(): void {\n    this.settingsSub && this.settingsSub.unsubscribe();\n  }\n\n  subscribeSettings(): void {\n    this.unsubscribeSettings();\n    this.settingsSub = this.settings$.subscribe(settings => {\n      this.settingsObservablesUnsubscribe.next(null);\n      this.settings = settings;\n      this.subscribeVisibility();\n    });\n  }\n\n  subscribeVisibility(): void {\n    this.settings\n      .getVisibility()\n      .pipe(\n        takeUntil(this.settingsObservablesUnsubscribe)\n      )\n      .subscribe(visible => {\n        if (visible) {\n          this.focusedElementBeforeOpen = <HTMLElement>document.activeElement;\n\n          window.setTimeout(() => {\n            this.opened = true;\n            this.focusedElementBeforeOpen && this.focusedElementBeforeOpen.blur();\n            this.focusFirstElement();\n          });\n        } else {\n          this.opened = false;\n          this.settingsObservablesUnsubscribe.next(null);\n          window.setTimeout(() => {\n            this.focusedElementBeforeOpen && this.focusedElementBeforeOpen.focus();\n          });\n        }\n      });\n  }\n\n  focusFirstElement(): void {\n    const focusableElement = getFirstFocusableElement(this.el.nativeElement) || this.el.nativeElement.querySelector('[tabindex=\"-1\"]');\n\n    if (focusableElement) {\n      focusableElement.focus();\n    }\n  }\n\n  onButtonAction(button: ButtonOptions) {\n    if (!button.action) {\n      return this.settings.close();\n    }\n\n    const response = button.action(this.settings);\n\n    if (!(response && isObservable(response))) {\n      return response || this.settings.close();\n    }\n\n    button.setLoading();\n\n    response\n      .pipe(\n        takeUntil(this.settingsObservablesUnsubscribe),\n        finalize(() => {\n          button && button.removeLoading();\n        })\n      )\n      .subscribe(result => {\n        return result || this.settings.close();\n      });\n  }\n\n}\n","<div class=\"cs-modal-overlay\" [ngClass]=\"['cs-modal--theme-' + settings.theme]\"\n  [class.no-padding]=\"settings.columnClass === 'cover'\"\n  [ngStyle]=\"{'background-color': settings.backgroundColor, 'z-index': settings.zIndex}\" [csModalVisibility]=\"settings\"\n  [csBgDimissAnimated]=\"settings\" [attr.aria-hidden]=\"!opened\">\n  @if(opened) {\n  <cs-keydown-events (event)=\"handleKeyDown($event)\"></cs-keydown-events>\n  }\n  <div\n    class=\"cs-modal cs-modal--{{settings.columnClass}} cs-modal--{{settings.type}} cs-modal--font-{{settings.fontSize}}\"\n    (click)=\"$event.stopPropagation()\" tabindex=\"-1\" role=\"dialog\" aria-modal=\"true\">\n    <cs-modal-auto-close [settings]=\"settings\" [unsubscribe]=\"settingsObservablesUnsubscribe\"></cs-modal-auto-close>\n    @if (settings.closeIcon || settings.maximize) {\n    <div class=\"cs-modal__actions\">\n      <cs-maximize [settings]=\"settings\"></cs-maximize>\n      @if (settings.closeIcon) {\n      <button type=\"button\" class=\"cs-modal__close\" (click)=\"settings.closeIcon(settings)\" title=\"Close\">\n        <i [class]=\"settings.iconFontClass\">{{settings.closeIconName}}</i>\n      </button>\n      }\n    </div>\n    }\n    @if (settings.iconName) {\n    <div class=\"cs-modal__icon cs-modal__icon--{{settings.iconAlign}}\">\n      @if (settings.iconName) {\n      <i class=\"{{settings.iconFontClass}}\">{{settings.iconName}}</i>\n      }\n    </div>\n    }\n    @if (settings.title) {\n    <div class=\"cs-modal__title cs-modal__title--{{settings.titleAlign}}\">\n      <h1 class=\"cs-modal__title__text {{settings.titleClass}}\">{{settings.title}}</h1>\n    </div>\n    }\n    @if (settings.content) {\n    <cs-modal-content class=\"cs-modal__content cs-modal__content--{{settings.contentAlign}}\" [settings]=\"settings\"\n      [unsubscribe]=\"settingsObservablesUnsubscribe\"></cs-modal-content>\n    }\n    @if (settings.buttons.length > 0 && !settings.areAllButtonsHidden()) {\n    <div class=\"cs-modal__footer cs-modal__footer--{{settings.buttonsAlign}}\">\n      @for (button of settings.buttons; track button.name) {\n      @if (!button.isHidden) {\n      <button type=\"button\" (click)=\"onButtonAction(button)\" class=\"cs-modal__button {{button.btnClass}}\"\n        [class.cs-modal__button--icon]=\"!!button.iconName\" [disabled]=\"button.isDisabled\">\n        <span class=\"cs-modal__button__text\" [innerHTML]=\"button.text\"></span>\n        @if (button.iconName && !button.loading) {\n        <i class=\"cs-modal__button__icon {{button.iconFontClass || settings.iconFontClass}}\">{{button.iconName}}</i>\n        }\n        @if (button.loading) {\n        <cs-spinner [spinner]=\"button.spinner\" spinnerSize=\"small\" [transparency]=\"true\">\n        </cs-spinner>\n        }\n      </button>\n      }\n      }\n    </div>\n    }\n  </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AutoCloseComponent } from './auto-close/auto-close.component';\nimport { CsModalComponent } from './cs-modal.component';\nimport { CsModalService } from './cs-modal.service';\nimport { BgDimissAnimatedDirective } from './directives/bg-dimiss-animated.directive';\nimport { CsModalVisibilityDirective } from './directives/cs-modal-visibility.directive';\nimport { ModalDirective } from './directives/modal.directive';\nimport { KeydownEventsComponent } from './keydown-events/keydown-events.component';\nimport { MaximizeComponent } from './maximize/maximize.component';\nimport { ModalContentComponent } from './modal-content/modal-content.component';\nimport { SpinnerComponent } from './spinner/spinner.component';\n\n@NgModule({\n  imports: [\n    CommonModule\n  ],\n  exports: [CsModalComponent],\n  declarations: [\n    CsModalComponent,\n    AutoCloseComponent,\n    ModalContentComponent,\n    BgDimissAnimatedDirective,\n    CsModalVisibilityDirective,\n    MaximizeComponent,\n    ModalDirective,\n    SpinnerComponent,\n    KeydownEventsComponent\n  ],\n  providers: [\n    CsModalService\n  ]\n})\nexport class CsModalModule { }\n","/*\n * Public API Surface of cs-modal\n */\n\nexport * from './lib/cs-modal';\nexport * from './lib/cs-modal.service';\nexport * from './lib/cs-modal.component';\nexport * from './lib/cs-modal.module';\nexport * from './lib/model/index';\nexport * from './lib/utils/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SpinnerComponent","i1.ModalDirective","i2.AutoCloseComponent","i3.ModalContentComponent","i4.BgDimissAnimatedDirective","i5.CsModalVisibilityDirective","i6.MaximizeComponent","i7.ModalDirective","i8.SpinnerComponent","i9.KeydownEventsComponent"],"mappings":"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"}