{"version":3,"file":"pkt-os.mjs","sources":["../../../../packages/os/src/lib/core/enums/common-css-class.enum.ts","../../../../packages/os/src/lib/core/enums/mouse-button.enum.ts","../../../../packages/os/src/lib/core/classes/base-components/view.ts","../../../../packages/os/src/lib/core/classes/base-components/component.ts","../../../../packages/os/src/lib/core/classes/base-components/button.ts","../../../../packages/os/src/lib/core/classes/css-classlist-manager/classlist-to-object.ts","../../../../packages/os/src/lib/core/helpers/element-resizing-observer.helper.ts","../../../../packages/os/src/lib/core/helpers/error.helper.ts","../../../../packages/os/src/lib/core/helpers/event-outside.helper.ts","../../../../packages/os/src/lib/core/helpers/random.helper.ts","../../../../packages/os/src/lib/core/helpers/id-generator.helper.ts","../../../../packages/os/src/lib/core/helpers/interval-checker.helper.ts","../../../../packages/os/src/lib/core/helpers/methods.helper.ts","../../../../packages/os/src/lib/core/helpers/pointer.helper.ts","../../../../packages/os/src/lib/core/decorators/cacheable-return-instance.decorator.ts","../../../../packages/os/src/lib/core/decorators/when-view-init.decorator.ts","../../../../packages/os/src/lib/core/services/global-events.service.ts","../../../../packages/os/src/lib/modules/button/components/button/button.component.ts","../../../../packages/os/src/lib/modules/utils/classes/append-to-body-config.ts","../../../../packages/os/src/lib/modules/utils/classes/fixed-to-parent-config.ts","../../../../packages/os/src/lib/modules/utils/directives/append-to-body.directive.ts","../../../../packages/os/src/lib/modules/utils/directives/fixed-to-parent.directive.ts","../../../../packages/os/src/lib/modules/utils/utils.module.ts","../../../../packages/os/src/lib/modules/shared.module.ts","../../../../packages/os/src/lib/modules/button/button.module.ts","../../../../packages/os/src/lib/modules/drag-and-drop/classes/drag-strategy/base-drag-impl.strategy.ts","../../../../packages/os/src/lib/modules/drag-and-drop/enums/drag-strategy.enum.ts","../../../../packages/os/src/lib/modules/drag-and-drop/enums/dragger-css-class.enum.ts","../../../../packages/os/src/lib/modules/drag-and-drop/classes/drag-strategy/by-axis-properties-drag-impl.strategy.ts","../../../../packages/os/src/lib/modules/drag-and-drop/classes/drag-strategy/by-axis-properties-drag.strategy.ts","../../../../packages/os/src/lib/modules/drag-and-drop/classes/drag-strategy/by-translate3d-drag-impl.strategy.ts","../../../../packages/os/src/lib/modules/drag-and-drop/classes/drag-strategy/by-translate3d-drag.strategy.ts","../../../../packages/os/src/lib/modules/drag-and-drop/classes/drag-strategy/drag-strategy.factory.ts","../../../../packages/os/src/lib/modules/drag-and-drop/classes/dragger-config.ts","../../../../packages/os/src/lib/modules/drag-and-drop/directives/draggable.directive.ts","../../../../packages/os/src/lib/modules/drag-and-drop/drag-and-drop.module.ts","../../../../packages/os/src/lib/modules/resizer/classes/base-resizer.ts","../../../../packages/os/src/lib/modules/resizer/enums/resizer-css-class.enum.ts","../../../../packages/os/src/lib/modules/resizer/enums/resizer-element-tag.enum.ts","../../../../packages/os/src/lib/modules/resizer/enums/resizer.enum.ts","../../../../packages/os/src/lib/modules/resizer/classes/bottom-left-resizer.ts","../../../../packages/os/src/lib/modules/resizer/classes/bottom-resizer.ts","../../../../packages/os/src/lib/modules/resizer/classes/bottom-right-resizer.ts","../../../../packages/os/src/lib/modules/resizer/classes/left-resizer.ts","../../../../packages/os/src/lib/modules/resizer/data/resizers.array.ts","../../../../packages/os/src/lib/modules/resizer/classes/resizer-config.ts","../../../../packages/os/src/lib/modules/resizer/classes/right-resizer.ts","../../../../packages/os/src/lib/modules/resizer/classes/top-left-resizer.ts","../../../../packages/os/src/lib/modules/resizer/classes/top-resizer.ts","../../../../packages/os/src/lib/modules/resizer/classes/top-right-resizer.ts","../../../../packages/os/src/lib/modules/resizer/classes/resizer.factory.ts","../../../../packages/os/src/lib/modules/resizer/directives/resizable.directive.ts","../../../../packages/os/src/lib/modules/resizer/resizer.module.ts","../../../../packages/os/src/lib/modules/grid/classes/cell-count-determinator/base.determinator.ts","../../../../packages/os/src/lib/modules/grid/enums/grid-direction.enum.ts","../../../../packages/os/src/lib/modules/grid/classes/cell-count-determinator/horizontal.determinator.ts","../../../../packages/os/src/lib/modules/grid/classes/cell-count-determinator/vertical.determinator.ts","../../../../packages/os/src/lib/modules/grid/classes/cell-count-determinator/determinator.factory.ts","../../../../packages/os/src/lib/modules/grid/classes/direction/base-direction.strategy.ts","../../../../packages/os/src/lib/modules/grid/classes/direction/horizontal-direction.strategy.ts","../../../../packages/os/src/lib/modules/grid/classes/direction/vertical-direction.strategy.ts","../../../../packages/os/src/lib/modules/grid/classes/direction/direction-strategy.factory.ts","../../../../packages/os/src/lib/modules/grid/classes/grid-cell.ts","../../../../packages/os/src/lib/modules/grid/classes/grid.ts","../../../../packages/os/src/lib/modules/grid/components/item/item.component.ts","../../../../packages/os/src/lib/modules/grid/components/item/item.component.html","../../../../packages/os/src/lib/modules/grid/components/grid/grid.component.ts","../../../../packages/os/src/lib/modules/grid/grid.module.ts","../../../../packages/os/src/lib/modules/list/components/item/item.component.ts","../../../../packages/os/src/lib/modules/scroll-view/components/scroll-view/scroll-view.component.ts","../../../../packages/os/src/lib/modules/list/components/list/list.component.ts","../../../../packages/os/src/lib/modules/list/components/list/list.component.html","../../../../packages/os/src/lib/modules/scroll-view/scroll-view.module.ts","../../../../packages/os/src/lib/modules/list/list.module.ts","../../../../packages/os/src/lib/modules/theme/services/accent-color.service.ts","../../../../packages/os/src/lib/modules/theme/services/theme.service.ts","../../../../packages/os/src/lib/modules/theme/directives/available-for.directive.ts","../../../../packages/os/src/lib/modules/theme/directives/forbidden-for.directive.ts","../../../../packages/os/src/lib/modules/theme/theme.module.ts","../../../../packages/os/src/lib/modules/window/classes/dynamic-state-manager.ts","../../../../packages/os/src/lib/modules/window/classes/dynamic-window-config.ts","../../../../packages/os/src/lib/modules/window/data/dynamic-window-ref.token.ts","../../../../packages/os/src/lib/modules/window/helpers/configs-merger.helper.ts","../../../../packages/os/src/lib/modules/window/services/shared-config.service.ts","../../../../packages/os/src/lib/modules/window/data/shared-dynamic-window-config.token.ts","../../../../packages/os/src/lib/modules/window/data/dynamic-window-shared-config.provider.ts","../../../../packages/os/src/lib/modules/window/data/is-dynamic-window-context.token.ts","../../../../packages/os/src/lib/modules/window/classes/dynamic-window-injector.ts","../../../../packages/os/src/lib/modules/window/classes/dynamic-window-ref.ts","../../../../packages/os/src/lib/modules/window/enums/dynamic-state.enum.ts","../../../../packages/os/src/lib/modules/window/enums/dynamic-window-css-class.enum.ts","../../../../packages/os/src/lib/modules/window/enums/dynamic-window-css-variable.enum.ts","../../../../packages/os/src/lib/modules/window/components/dynamic-window/base-dynamic-window.component.ts","../../../../packages/os/src/lib/modules/window/components/window/window.component.ts","../../../../packages/os/src/lib/modules/window/components/window/window.component.html","../../../../packages/os/src/lib/modules/window/components/title-bar/title-bar.component.ts","../../../../packages/os/src/lib/modules/window/components/title-bar-content/title-bar-content.component.ts","../../../../packages/os/src/lib/modules/window/components/title-bar-icon/title-bar-icon.component.ts","../../../../packages/os/src/lib/modules/window/components/title-bar-controls/title-bar-controls.component.ts","../../../../packages/os/src/lib/modules/window/components/title-bar-button/title-bar-button.component.ts","../../../../packages/os/src/lib/modules/window/components/title-bar-button/title-bar-button.component.html","../../../../packages/os/src/lib/modules/window/components/dynamic-window/dynamic-window.component.ts","../../../../packages/os/src/lib/modules/window/components/dynamic-window/dynamic-window.component.html","../../../../packages/os/src/lib/modules/window/interfaces/load-content.interface.ts","../../../../packages/os/src/lib/modules/window/states/window-references.state.ts","../../../../packages/os/src/lib/modules/window/services/dynamic-window-activity.service.ts","../../../../packages/os/src/lib/modules/window/services/dynamic-window-ref-ordering.service.ts","../../../../packages/os/src/lib/modules/window/services/dynamic-windows-coordinates.service.ts","../../../../packages/os/src/lib/modules/window/services/dynamic-window-references.service.ts","../../../../packages/os/src/lib/modules/window/services/dynamic-window.service.ts","../../../../packages/os/src/lib/modules/window/window.module.ts","../../../../packages/os/src/lib/os.module.ts","../../../../packages/os/src/pkt-os.ts"],"sourcesContent":["/** @internal */\r\nexport enum ɵCommonCssClassEnum {\r\n  Active = 'o-active',\r\n  Focused = 'o-focused',\r\n  Disabled = 'o-disabled',\r\n  Readonly = 'o-readonly',\r\n  Checked = 'o-checked',\r\n  Selected = 'o-selected',\r\n  HasIcon = 'o-has-icon',\r\n  HasLabel = 'o-has-label'\r\n}\r\n","/** Describes values from `mouseEvent.button` */\r\nexport enum MouseButtonEnum {\r\n  Left = 0,\r\n  Middle = 1,\r\n  Right = 2\r\n}\r\n","import { AfterViewInit, Component, OnDestroy } from '@angular/core';\r\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { first } from 'rxjs/operators';\r\n\r\n@Component({\r\n  template: ''\r\n})\r\nexport abstract class ɵOsBaseViewComponent implements AfterViewInit, OnDestroy {\r\n  public get whenViewInit$(): Observable<boolean> {\r\n    return this._whenViewInit$.asObservable().pipe(first());\r\n  }\r\n\r\n  public get viewDestroyed$(): Observable<boolean> {\r\n    return this._viewDestroyed$.asObservable();\r\n  }\r\n\r\n  public get isViewInit(): boolean {\r\n    return this._isViewInit;\r\n  }\r\n\r\n  private _isViewInit = true;\r\n  private _viewDestroyed$ = new Subject<boolean>();\r\n  private _whenViewInit$ = new ReplaySubject<boolean>();\r\n\r\n  public ngAfterViewInit(): void {\r\n    this._isViewInit = true;\r\n\r\n    this._whenViewInit$.next(true);\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n    this._viewDestroyed$.next(false);\r\n    this._viewDestroyed$.complete();\r\n    this._whenViewInit$.complete();\r\n  }\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  HostBinding,\r\n  Injector,\r\n  Input,\r\n  Output\r\n} from '@angular/core';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { BehaviorSubject, fromEvent, Observable } from 'rxjs';\r\nimport { filter, share, switchMap } from 'rxjs/operators';\r\nimport { ɵOsBaseViewComponent } from './view';\r\n\r\n@Component({\r\n  template: '',\r\n  // eslint-disable-next-line @angular-eslint/no-host-metadata-property\r\n  host: {\r\n    class: 'o-element'\r\n  }\r\n})\r\nexport abstract class ɵOsBaseComponent extends ɵOsBaseViewComponent implements AfterViewInit {\r\n  private _targetInternalElement$ = new BehaviorSubject<HTMLElement>(null as SafeAny);\r\n\r\n  /** Target internal element stylelist */\r\n  @Input()\r\n  @HostBinding('style')\r\n  public style?: object;\r\n\r\n  /** Target internal element classList */\r\n  @Input()\r\n  @HostBinding('class')\r\n  public styleClass?: string | string[] | object;\r\n\r\n  /** Target internal element id */\r\n  @Input()\r\n  @HostBinding('attr.id')\r\n  public id?: string;\r\n\r\n  /** Target internal element click event */\r\n  @Output()\r\n  public osClick: Observable<PointerEvent> = this.createEvent('click');\r\n\r\n  /** Target internal element dblclick event */\r\n  @Output()\r\n  public osDblClick: Observable<PointerEvent> = this.createEvent('dblclick');\r\n\r\n  /** Target internal element mousedown event */\r\n  @Output()\r\n  public osMouseDown: Observable<PointerEvent> = this.createEvent('mousedown');\r\n\r\n  /** Target internal element mouseup event */\r\n  @Output()\r\n  public osMouseUp: Observable<PointerEvent> = this.createEvent('mouseup');\r\n\r\n  /** Target internal element mousemove event */\r\n  @Output()\r\n  public osMouseMove: Observable<PointerEvent> = this.createEvent('mousemove');\r\n\r\n  /** Target internal element mouseout event */\r\n  @Output()\r\n  public osMouseOut: Observable<PointerEvent> = this.createEvent('mouseout');\r\n\r\n  /** Target internal element mouseover event */\r\n  @Output()\r\n  public osMouseOver: Observable<PointerEvent> = this.createEvent('mouseover');\r\n\r\n  /** Target internal element wheel event */\r\n  @Output()\r\n  public osWheel: Observable<WheelEvent> = this.createEvent('wheel');\r\n\r\n  /** Target internal element keydown event */\r\n  @Output()\r\n  public osKeyDown: Observable<KeyboardEvent> = this.createEvent('keydown');\r\n\r\n  /** Target internal element keyup event */\r\n  @Output()\r\n  public osKeyUp: Observable<KeyboardEvent> = this.createEvent('keyup');\r\n\r\n  protected get targetInternalElement(): HTMLElement {\r\n    return this._targetInternalElement$.getValue();\r\n  }\r\n\r\n  protected get targetInternalElement$(): Observable<HTMLElement> {\r\n    return this._targetInternalElement$.asObservable();\r\n  }\r\n\r\n  /**\r\n   * Allows defining a selector of a child (relative to the host) HTML element for which\r\n   * all event handlers will be defined as output emitters.\r\n   */\r\n  protected readonly targetInternalElementSelector?: string;\r\n  protected readonly hostRef: ElementRef<HTMLElement>;\r\n  protected readonly changeDetector: ChangeDetectorRef;\r\n\r\n  constructor(injector: Injector) {\r\n    super();\r\n\r\n    this.hostRef = injector.get(ElementRef);\r\n    this.changeDetector = injector.get(ChangeDetectorRef);\r\n  }\r\n\r\n  public override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.initTargetInternalElement();\r\n  }\r\n\r\n  /**\r\n   * Allows creation event listener of the specific event for target internal element.\r\n   * The listener will be created after subscription to it.\r\n   **/\r\n  protected createEvent<T = Event>(eventName: keyof HTMLElementEventMap): Observable<T> {\r\n    return this.targetInternalElement$.pipe(\r\n      filter(element => !!element),\r\n      switchMap(element => fromEvent<T>(element, eventName as string)),\r\n      share()\r\n    );\r\n  }\r\n\r\n  private initTargetInternalElement(): void {\r\n    const hostElement = this.hostRef.nativeElement;\r\n    const selector = this.targetInternalElementSelector;\r\n    const element = selector ? hostElement.querySelector<HTMLElement>(selector) : hostElement;\r\n\r\n    if (element) {\r\n      this._targetInternalElement$.next(element);\r\n    }\r\n  }\r\n}\r\n","import { Component, HostBinding, Injector, Input, Output } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ɵCommonCssClassEnum } from '../../enums';\r\nimport { ɵOsBaseComponent } from './component';\r\n\r\n@Component({\r\n  template: ''\r\n})\r\nexport abstract class ɵOsBaseButtonComponent extends ɵOsBaseComponent {\r\n  /** Is button disabled */\r\n  @Input()\r\n  @HostBinding(`class.${ɵCommonCssClassEnum.Disabled}`)\r\n  public isDisabled?: boolean;\r\n\r\n  /** Is button focused */\r\n  @Input()\r\n  @HostBinding(`class.${ɵCommonCssClassEnum.Focused}`)\r\n  public isFocused?: boolean;\r\n\r\n  /** Metadata of destination of the button */\r\n  @Input()\r\n  @HostBinding('attr.aria-label')\r\n  public ariaLabel?: string;\r\n\r\n  /** Metadata of relation of the button */\r\n  @Input()\r\n  @HostBinding('attr.aria-controls')\r\n  public ariaControls?: string;\r\n\r\n  /** Metadata of selection state of the button */\r\n  @Input()\r\n  @HostBinding('attr.aria-selected')\r\n  public ariaSelected?: string;\r\n\r\n  /** Metadata of role of the button */\r\n  @Input()\r\n  @HostBinding('attr.role')\r\n  public role?: string;\r\n\r\n  /** Target internal element focus event */\r\n  @Output()\r\n  public osFocus: Observable<FocusEvent> = this.createEvent('focus');\r\n\r\n  /** Target internal element blur event */\r\n  @Output()\r\n  public osBlur: Observable<FocusEvent> = this.createEvent('blur');\r\n\r\n  /** @internal */\r\n  @HostBinding('attr.tabindex')\r\n  public get _hostTabIndexAttr(): number | null {\r\n    return this.isDisabled ? null : 0;\r\n  }\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n}\r\n","import { ɵRawObject } from '../../types';\r\n\r\n/** @internal */\r\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nexport namespace ɵCssClasslistToObjectHelper {\r\n  export function transform(classList: string | string[] | object): object {\r\n    if (typeof classList === 'string') {\r\n      return fromString(classList);\r\n    } else if (Array.isArray(classList)) {\r\n      return fromArray(classList);\r\n    } else if (classList === Object(classList)) {\r\n      return classList;\r\n    }\r\n\r\n    throw new Error('Unsupported format for classList');\r\n  }\r\n\r\n  export function fromString(classList: string): object {\r\n    const classListAsArray = classList.split(' ');\r\n\r\n    return fromArray(classListAsArray);\r\n  }\r\n\r\n  export function fromArray(classList: string[]): object {\r\n    return classList\r\n      .filter(className => className)\r\n      .reduce((accumulator, className) => {\r\n        accumulator[className] = true;\r\n\r\n        return accumulator;\r\n      }, {} as ɵRawObject<boolean>);\r\n  }\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\n/** @internal */\r\nexport function ɵElementResizingObserver(element: HTMLElement): Observable<HTMLElement> {\r\n  return new Observable(subscriber => {\r\n    const resizeObserver = new ResizeObserver(() => subscriber.next(element));\r\n\r\n    resizeObserver.observe(element);\r\n\r\n    return function unsubscribe() {\r\n      resizeObserver.unobserve(element);\r\n    };\r\n  });\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\n/** @internal */\r\nexport abstract class ɵErrorHelper {\r\n  public static warn(context: Object, message: string): void {\r\n    const contextName = context.constructor.name;\r\n\r\n    console.warn(`o: ${contextName}: ${message}`);\r\n  }\r\n\r\n  public static error(context: Object, message: string): void {\r\n    const contextName = context.constructor.name;\r\n\r\n    throw new Error(`o: ${contextName}: ${message}`);\r\n  }\r\n}\r\n","/** @internal */\r\nexport abstract class ɵEventOutside {\r\n  public static checkForElement(element: HTMLElement, event: Event): boolean {\r\n    const bubbledElements = event.composedPath() as HTMLElement[];\r\n\r\n    return bubbledElements.every(currElement => currElement !== element);\r\n  }\r\n}\r\n","/** @internal */\r\nexport abstract class ɵRandomHelper {\r\n  public static getRandomInt(min: number, max: number): number {\r\n    const minN = Math.ceil(min);\r\n    const maxN = Math.floor(max);\r\n\r\n    return Math.floor(Math.random() * (maxN - minN)) + minN;\r\n  }\r\n}\r\n","import { ɵRandomHelper } from './random.helper';\r\n\r\n/** @internal */\r\nexport abstract class ɵIdGenerator {\r\n  public static generate(name: string = ''): string {\r\n    const randomId = ɵRandomHelper.getRandomInt(1, 1000000);\r\n    const nameAsPrefix = name ? `${name}-` : '';\r\n\r\n    return `${nameAsPrefix}${randomId}`;\r\n  }\r\n}\r\n","/** @internal */\r\nclass Params {\r\n  public delayBetweenChecksInMs = 8;\r\n  public maxCheckCount = 30;\r\n}\r\n\r\n/** @internal */\r\ninterface StartParams {\r\n  onIteration?: () => void;\r\n  onEnd?: () => void;\r\n}\r\n\r\n/** @internal */\r\nexport class ɵIntervalCheckerHelper {\r\n  private delayBetweenChecksInMs?: number;\r\n  private maxCheckCount!: number;\r\n\r\n  private passedCountOfChecks = 0;\r\n  private currentIntervalId = 0;\r\n\r\n  private onIteration?: () => void;\r\n  private onEnd?: () => void;\r\n\r\n  constructor(params: Params = new Params()) {\r\n    this.updateSettings(params);\r\n  }\r\n\r\n  public updateSettings({ delayBetweenChecksInMs, maxCheckCount }: Params): void {\r\n    this.delayBetweenChecksInMs = delayBetweenChecksInMs;\r\n    this.maxCheckCount = maxCheckCount;\r\n  }\r\n\r\n  public start({ onIteration, onEnd }: StartParams): void {\r\n    this.onIteration = onIteration;\r\n    this.onEnd = onEnd;\r\n\r\n    if (this.currentIntervalId) {\r\n      this.reset();\r\n    }\r\n\r\n    this.initChecking();\r\n  }\r\n\r\n  public reset(): void {\r\n    clearInterval(this.currentIntervalId);\r\n    this.currentIntervalId = 0;\r\n    this.passedCountOfChecks = 0;\r\n  }\r\n\r\n  private initChecking(): void {\r\n    this.currentIntervalId = window.setInterval(() => {\r\n      this.passedCountOfChecks++;\r\n\r\n      if (this.passedCountOfChecks < this.maxCheckCount) {\r\n        this.onIteration?.();\r\n      } else {\r\n        this.reset();\r\n        this.onEnd?.();\r\n      }\r\n    }, this.delayBetweenChecksInMs);\r\n  }\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\n/** @internal */\r\nexport function ɵIsNumber(value: SafeAny): boolean {\r\n  return typeof value === 'number';\r\n}\r\n\r\n/** @internal */\r\nexport function ɵParseInt(value: string): number {\r\n  return Number.parseInt(value, 10);\r\n}\r\n\r\n/** @internal */\r\nexport function ɵIsObjectsWithSameData(objectA: Object, objectB: Object): boolean {\r\n  const keysOfObjectA = Object.keys(objectA);\r\n  const keysOfObjectB = Object.keys(objectB);\r\n\r\n  if (keysOfObjectA.length === keysOfObjectB.length) {\r\n    return keysOfObjectA.every(key => objectA[key] === objectB[key]);\r\n  }\r\n\r\n  return false;\r\n}\r\n","import { isNullOrUndefined } from '@pkt/utils';\r\n\r\n/** @internal */\r\nexport abstract class ɵPointerHelper {\r\n  public static getClientX(event: PointerEvent | TouchEvent): number {\r\n    if (this.isPointerEvent(event)) {\r\n      return event.clientX;\r\n    }\r\n\r\n    return event.changedTouches[0].clientX;\r\n  }\r\n\r\n  public static getClientY(event: PointerEvent | TouchEvent): number {\r\n    if (this.isPointerEvent(event)) {\r\n      return event.clientY;\r\n    }\r\n\r\n    return event.changedTouches[0].clientY;\r\n  }\r\n\r\n  public static getPageX(event: PointerEvent | TouchEvent): number {\r\n    if (this.isPointerEvent(event)) {\r\n      return event.pageX;\r\n    }\r\n\r\n    return event.touches[0].pageX;\r\n  }\r\n\r\n  public static getPageY(event: PointerEvent | TouchEvent): number {\r\n    if (this.isPointerEvent(event)) {\r\n      return event.pageY;\r\n    }\r\n\r\n    return event.touches[0].pageY;\r\n  }\r\n\r\n  public static isPointerEvent(event: Event): event is PointerEvent {\r\n    const mouseEvent = event as PointerEvent;\r\n\r\n    return !isNullOrUndefined(mouseEvent.clientX) && !isNullOrUndefined(mouseEvent.clientY);\r\n  }\r\n\r\n  public static isTouchEvent(event: Event): event is TouchEvent {\r\n    const touchEvent = event as TouchEvent;\r\n\r\n    return !isNullOrUndefined(touchEvent.touches);\r\n  }\r\n}\r\n","import { ɵOsBaseViewComponent } from '../classes';\r\nimport { ɵIsObjectsWithSameData } from '../helpers';\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\n/**\r\n * @internal\r\n * Returns a new instance of the object only when DATA inside new instance\r\n * is different than DATA in instance returned previous time.\r\n **/\r\nexport function ɵCacheableReturnInstance<T>(\r\n  baseView: ɵOsBaseViewComponent,\r\n  methodName: string,\r\n  { get, enumerable, value }: TypedPropertyDescriptor<T>\r\n): SafeAny {\r\n  if (get) {\r\n    return patchMethod(enumerable ?? false, methodName, get);\r\n  }\r\n\r\n  if (typeof value !== 'function') {\r\n    throw new Error('CacheableReturnInstance can only be used with functions or getters');\r\n  }\r\n\r\n  return patchMethod(enumerable ?? false, methodName, value);\r\n}\r\n\r\nfunction patchMethod<T>(\r\n  enumerable: boolean,\r\n  methodName: string,\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  originalMethod: Function\r\n): SafeAny {\r\n  return {\r\n    enumerable,\r\n    get(): T {\r\n      const previousInstance = this[`ɵ${methodName}`];\r\n      const newInstance = originalMethod.call(this);\r\n\r\n      if (!previousInstance || !ɵIsObjectsWithSameData(previousInstance, newInstance)) {\r\n        this[`ɵ${methodName}`] = newInstance;\r\n\r\n        return newInstance;\r\n      }\r\n\r\n      return previousInstance;\r\n    }\r\n  };\r\n}\r\n","import { ɵOsBaseViewComponent } from '../classes';\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\n/**\r\n * @internal\r\n * Called wrapped method or getter only when `viewInit` property of {@link OsBaseViewComponent} is true.\r\n *\r\n * If `viewInit` is false then will be returned the value of @param defaultValue which is `null` by default.\r\n **/\r\nexport function ɵWhenViewInit<T>(defaultValue: SafeAny = null): SafeAny {\r\n  return function (\r\n    baseView: ɵOsBaseViewComponent,\r\n    methodName: string,\r\n    { get, enumerable, value }: TypedPropertyDescriptor<T>\r\n  ): TypedPropertyDescriptor<T> {\r\n    if (get) {\r\n      return patchMethod(enumerable ?? false, defaultValue, get);\r\n    }\r\n\r\n    if (typeof value !== 'function') {\r\n      throw new Error('WhenViewInit can only be used with functions or getters');\r\n    }\r\n\r\n    return patchMethod(enumerable ?? false, defaultValue, value);\r\n  };\r\n}\r\n\r\nfunction patchMethod<T>(\r\n  enumerable: boolean,\r\n  defaultValue: SafeAny,\r\n  // eslint-disable-next-line @typescript-eslint/ban-types\r\n  originalMethod: Function\r\n): SafeAny {\r\n  return {\r\n    enumerable,\r\n    get(): T {\r\n      if ((this as ɵOsBaseViewComponent).isViewInit) {\r\n        return originalMethod.call(this);\r\n      }\r\n\r\n      return defaultValue;\r\n    }\r\n  };\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n/**\r\n * @internal\r\n * Service provides shared event listeners.\r\n * Better to move global event listeners here, instead of\r\n * using for example: fromEvent(document, 'click') in different places.\r\n *\r\n * In the case of using this service, you will have ONE listener, not many.\r\n **/\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ɵGlobalEvents {\r\n  private documentEventMap = new Map<string, Observable<Event>>();\r\n\r\n  constructor(@Inject(DOCUMENT) private readonly document: Document) {}\r\n\r\n  public fromDocument<T extends Event>(eventName: keyof DocumentEventMap): Observable<T> {\r\n    if (!this.documentEventMap.has(eventName)) {\r\n      const emitter = new Subject<Event>();\r\n\r\n      this.document.addEventListener(eventName, event => emitter.next(event));\r\n      this.documentEventMap.set(eventName, emitter.asObservable());\r\n    }\r\n\r\n    return this.documentEventMap.get(eventName) as Observable<T>;\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Injector, ViewEncapsulation } from '@angular/core';\r\nimport { ɵOsBaseButtonComponent } from '../../../../core';\r\n\r\n@Component({\r\n  selector: 'o-button',\r\n  template: '<ng-content></ng-content>',\r\n  host: {\r\n    class: 'o-button'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ButtonComponent extends ɵOsBaseButtonComponent {\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n}\r\n","/** Settings for {@link AppendToBodyDirective} */\r\nexport class AppendToBodyConfig {\r\n  /** Is should be append to body element or not */\r\n  public isEnabled = true;\r\n}\r\n","/** Settings for {@link FixedToParentDirective} */\r\nexport class FixedToParentConfig {\r\n  /** Is should be fixed to parent or not */\r\n  public isEnabled = true;\r\n  /** Recalculation interval of the element position in milliseconds */\r\n  public recalculationIntervalInMs?: number = 5;\r\n  /**\r\n   * Amount of calculations after scroll.\r\n   *\r\n   * Some browsers have animated scroll and need to run several iterations\r\n   * with some delay between them to calculate actual element position.\r\n   *\r\n   * Unfortunately, there is no better way to observe the end of the scroll animation.\r\n   **/\r\n  public calculationIterationsCount?: number = 40;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n  AfterViewInit,\r\n  Directive,\r\n  ElementRef,\r\n  Inject,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy\r\n} from '@angular/core';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { AppendToBodyConfig } from '../classes';\r\n\r\n/** Moves element into the `body` element **/\r\n@Directive({\r\n  selector: '[oAppendToBody]'\r\n})\r\nexport class AppendToBodyDirective implements AfterViewInit, OnDestroy, OnChanges {\r\n  /** Configuration of directive */\r\n  @Input('oAppendToBody')\r\n  public parameters: AppendToBodyConfig | undefined | '';\r\n\r\n  /** Configuration of directive */\r\n  public get config(): AppendToBodyConfig {\r\n    return this._config;\r\n  }\r\n\r\n  private targetElement!: HTMLElement;\r\n  private parentElement!: HTMLElement;\r\n  private initialStylePosition!: string;\r\n\r\n  private _config = new AppendToBodyConfig();\r\n\r\n  constructor(\r\n    @Inject(DOCUMENT) private readonly document: Document,\r\n    private readonly hostRef: ElementRef<HTMLElement>\r\n  ) {}\r\n\r\n  public ngAfterViewInit(): void {\r\n    this.targetElement = this.hostRef.nativeElement;\r\n    this.parentElement = this.targetElement.parentElement as SafeAny;\r\n\r\n    // When used in pair with `FixedToParentDirective`,\r\n    // this solves the problem of incorrect determining of\r\n    // the parent element by `FixedToParentDirective`.\r\n    queueMicrotask(() => this.processElement());\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n    this.hostRef?.nativeElement?.remove();\r\n  }\r\n\r\n  public ngOnChanges(): void {\r\n    this._config = { ...this._config, ...this.parameters };\r\n\r\n    if (this.targetElement) {\r\n      this.processElement();\r\n    }\r\n  }\r\n\r\n  private processElement(): void {\r\n    if (this._config.isEnabled) {\r\n      this.applyNeededStyles();\r\n      this.appendElementToBody();\r\n    } else {\r\n      this.resetAppliedNeededStyles();\r\n      this.appendElementToParent();\r\n    }\r\n  }\r\n\r\n  private applyNeededStyles(): void {\r\n    this.initialStylePosition = this.targetElement.style.position;\r\n    this.targetElement.style.position = 'absolute';\r\n  }\r\n\r\n  private appendElementToBody(): void {\r\n    this.parentElement.removeChild(this.targetElement);\r\n    this.document.body.appendChild(this.targetElement);\r\n  }\r\n\r\n  private appendElementToParent(): void {\r\n    try {\r\n      this.document.body?.removeChild?.(this.targetElement);\r\n      this.parentElement?.appendChild?.(this.targetElement);\r\n    } catch (error) {\r\n      console.log('ToParent');\r\n    }\r\n  }\r\n\r\n  private resetAppliedNeededStyles(): void {\r\n    if (this.initialStylePosition) {\r\n      this.targetElement.style.position = this.initialStylePosition;\r\n    }\r\n  }\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  Directive,\r\n  ElementRef,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit\r\n} from '@angular/core';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { BehaviorSubject, merge, Observable, Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport {\r\n  ɵEventOutside,\r\n  ɵGlobalEvents,\r\n  ɵIntervalCheckerHelper as IntervalChecker\r\n} from '../../../core';\r\nimport { FixedToParentConfig } from '../classes';\r\n\r\n/**\r\n * Adapts the position of the element to the position of the parent element.\r\n *\r\n * Useful when used with the {@link AppendToBodyDirective}.\r\n *\r\n * The child element will be appended to the body and \"save\" position near the parent element\r\n * as if it continues to be inside the parent element.\r\n **/\r\n@Directive({\r\n  selector: '[oFixedToParent]'\r\n})\r\nexport class FixedToParentDirective implements OnChanges, OnInit, AfterViewInit, OnDestroy {\r\n  /** Configuration of directive */\r\n  @Input('oFixedToParent')\r\n  public parameters: FixedToParentConfig | undefined | '';\r\n\r\n  /** Configuration of directive */\r\n  public get config(): FixedToParentConfig {\r\n    return this._config;\r\n  }\r\n\r\n  private _config = new FixedToParentConfig();\r\n  private targetElement!: HTMLElement;\r\n  private parentElement!: HTMLElement;\r\n\r\n  private readonly intervalChecker = new IntervalChecker();\r\n  private readonly destroyed$ = new Subject<boolean>();\r\n  private readonly isEnabled$ = new BehaviorSubject<boolean>(true);\r\n\r\n  private get destroyedOrDisabled$(): Observable<boolean> {\r\n    return merge(this.destroyed$, this.isEnabled$.pipe(filter(isEnabled => !isEnabled)));\r\n  }\r\n\r\n  constructor(\r\n    private readonly hostRef: ElementRef<HTMLElement>,\r\n    private readonly globalEvents: ɵGlobalEvents\r\n  ) {}\r\n\r\n  public ngOnChanges(): void {\r\n    this._config = { ...this._config, ...this.parameters };\r\n\r\n    this.isEnabled$.next(this._config.isEnabled);\r\n    this.updateIntervalCheckerSettings();\r\n  }\r\n\r\n  public ngOnInit(): void {\r\n    this.initDocumentWheelObserver();\r\n  }\r\n\r\n  public ngAfterViewInit(): void {\r\n    this.targetElement = this.hostRef.nativeElement;\r\n    this.parentElement = this.targetElement.parentElement as SafeAny;\r\n\r\n    this.adjustCoordinates();\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n    this.destroyed$.next(true);\r\n    this.destroyed$.complete();\r\n  }\r\n\r\n  /** @internal */\r\n  private initDocumentWheelObserver(): void {\r\n    this.globalEvents\r\n      .fromDocument('wheel')\r\n      .pipe(\r\n        filter(event => ɵEventOutside.checkForElement(this.targetElement, event)),\r\n        takeUntil(this.destroyedOrDisabled$)\r\n      )\r\n      .subscribe(() => {\r\n        this.intervalChecker.start({\r\n          onIteration: () => this.adjustCoordinates()\r\n        });\r\n      });\r\n  }\r\n\r\n  private adjustCoordinates(): void {\r\n    if (this._config.isEnabled) {\r\n      const { left, top, width, height } = this.parentElement.getBoundingClientRect();\r\n\r\n      this.targetElement.style.left = `${left}px`;\r\n      this.targetElement.style.top = `${top + height}px`;\r\n      this.targetElement.style.width = `${width}px`;\r\n    }\r\n  }\r\n\r\n  private updateIntervalCheckerSettings(): void {\r\n    this.intervalChecker.updateSettings({\r\n      delayBetweenChecksInMs: this._config.recalculationIntervalInMs as SafeAny,\r\n      maxCheckCount: this._config.calculationIterationsCount as SafeAny\r\n    });\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AppendToBodyDirective, FixedToParentDirective } from './directives';\r\n\r\n@NgModule({\r\n  declarations: [AppendToBodyDirective, FixedToParentDirective],\r\n  exports: [AppendToBodyDirective, FixedToParentDirective]\r\n})\r\nexport class UtilsModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { UtilsModule } from './utils';\r\n\r\n/** @internal */\r\n@NgModule({\r\n  imports: [CommonModule, UtilsModule],\r\n  exports: [CommonModule, UtilsModule]\r\n})\r\nexport class ɵSharedModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { ɵSharedModule } from '../shared.module';\r\nimport { ButtonComponent } from './components';\r\n\r\n@NgModule({\r\n  declarations: [ButtonComponent],\r\n  imports: [ɵSharedModule],\r\n  exports: [ButtonComponent]\r\n})\r\nexport class ButtonModule {}\r\n","import { ɵPointerHelper } from '../../../../core';\r\nimport { DraggableDirective } from '../../directives/draggable.directive';\r\nimport { ɵDragStrategyEnum } from '../../enums';\r\nimport { DragInfo } from '../../interfaces';\r\nimport { DragStrategyType } from '../../types';\r\nimport { isNullOrUndefined } from '@pkt/utils';\r\n\r\n/** @internal */\r\nexport abstract class ɵBaseDragStrategyImpl {\r\n  public readonly type: ɵDragStrategyEnum | undefined;\r\n\r\n  protected mouseDownEvent!: PointerEvent | TouchEvent;\r\n  protected shiftX!: number;\r\n  protected shiftY!: number;\r\n  protected config?: DragStrategyType;\r\n\r\n  constructor(protected readonly context: DraggableDirective) {\r\n    this.config = this.context.config.strategy;\r\n  }\r\n\r\n  /** 鼠标按下操作 */\r\n  public registerMouseDown({ originalEvent: mouseEvent, movableElement }: DragInfo): void {\r\n    const elementDomRect = movableElement.getBoundingClientRect();\r\n    this.mouseDownEvent = mouseEvent;\r\n\r\n    this.setShiftX(mouseEvent, elementDomRect);\r\n    this.setShiftY(mouseEvent, elementDomRect);\r\n  }\r\n\r\n  private setShiftX(event: PointerEvent | TouchEvent, elementDomRect: DOMRect): void {\r\n    if (!isNullOrUndefined(this.context.config.shiftX)) {\r\n      this.shiftX = this.context.config.shiftX ?? 0;\r\n    } else {\r\n      this.shiftX = ɵPointerHelper.getClientX(event) - elementDomRect.left + scrollX;\r\n    }\r\n  }\r\n\r\n  private setShiftY(event: PointerEvent | TouchEvent, elementDomRect: DOMRect): void {\r\n    if (!isNullOrUndefined(this.context.config.shiftY)) {\r\n      this.shiftY = this.context.config.shiftY ?? 0;\r\n    } else {\r\n      this.shiftY = ɵPointerHelper.getClientY(event) - elementDomRect.top + scrollY;\r\n    }\r\n  }\r\n\r\n  public abstract updateElementPosition(event: PointerEvent | TouchEvent): void;\r\n}\r\n","/** @internal */\r\nexport enum ɵDragStrategyEnum {\r\n  ByTranslate3d,\r\n  ByAxisProperties\r\n}\r\n","/** @internal */\r\nexport enum ɵDraggerCssClassEnum {\r\n  Movable = 'o-movable',\r\n  Draggable = 'o-draggable',\r\n  Dragging = 'o-dragging'\r\n}\r\n","import { ɵPointerHelper } from '../../../../core';\r\nimport { ɵDragStrategyEnum } from '../../enums';\r\nimport { ɵBaseDragStrategyImpl } from './base-drag-impl.strategy';\r\nimport { DragStrategyByAxisProperties } from './by-axis-properties-drag.strategy';\r\n\r\n/** @internal */\r\nexport class ɵDragStrategyByAxisPropertiesImpl extends ɵBaseDragStrategyImpl {\r\n  public override readonly type = ɵDragStrategyEnum.ByAxisProperties;\r\n\r\n  public updateElementPosition(event: PointerEvent | TouchEvent): void {\r\n    if (this.context.config.isAllowMoveElement) {\r\n      const strategyConfig = this.context.config.strategy as DragStrategyByAxisProperties;\r\n\r\n      this.context.movableElement.style.setProperty(\r\n        strategyConfig.xAxisLeftStyleProperty,\r\n        `${ɵPointerHelper.getClientX(event) - this.shiftX}px`\r\n      );\r\n\r\n      this.context.movableElement.style.setProperty(\r\n        strategyConfig.yAxisTopStyleProperty,\r\n        `${ɵPointerHelper.getClientY(event) - this.shiftY}px`\r\n      );\r\n    }\r\n  }\r\n}\r\n","import { ɵInvertedKeysOfType } from '../../../../core';\r\nimport { ɵDragStrategyEnum } from '../../enums';\r\n\r\n/**\r\n * Affects to move element by CSS axises properties.\r\n * A great choice for dragging absolute HTML elements\r\n **/\r\nexport class DragStrategyByAxisProperties {\r\n  /** @internal */\r\n  public readonly type = ɵDragStrategyEnum.ByAxisProperties;\r\n  /**\r\n   * Name of CSS property X-Axis from the left side of the HTML element.\r\n   *\r\n   * For example: `left`, `margin-left`\r\n   **/\r\n  public xAxisLeftStyleProperty = 'left';\r\n  /**\r\n   * Name of CSS property Y-Axis from the top side of the HTML element.\r\n   *\r\n   * For example: `top`, `margin-top`\r\n   **/\r\n  public yAxisTopStyleProperty = 'top';\r\n\r\n  constructor(params?: ɵInvertedKeysOfType<DragStrategyByAxisProperties, ɵDragStrategyEnum>) {\r\n    Object.assign(this, params);\r\n  }\r\n}\r\n","import { ɵPointerHelper } from '../../../../core';\r\nimport { ɵDragStrategyEnum } from '../../enums';\r\nimport { DragInfo } from '../../interfaces';\r\nimport { ɵBaseDragStrategyImpl } from './base-drag-impl.strategy';\r\nimport { DragStrategyByTranslate3d } from './by-translate3d-drag.strategy';\r\n\r\n/** @internal */\r\nexport class ɵDragStrategyByTranslate3dImpl extends ɵBaseDragStrategyImpl {\r\n  public override readonly type = ɵDragStrategyEnum.ByTranslate3d;\r\n\r\n  protected override config!: DragStrategyByTranslate3d;\r\n\r\n  private initialX!: number;\r\n  private initialY!: number;\r\n\r\n  public override registerMouseDown(dragInfo: DragInfo): void {\r\n    this.initInitialCoordinates();\r\n    super.registerMouseDown(dragInfo);\r\n  }\r\n\r\n  public updateElementPosition(event: PointerEvent | TouchEvent): void {\r\n    if (this.context.config.isAllowMoveElement) {\r\n      const x = this.calculateElementPositionX(event);\r\n      const y = this.calculateElementPositionY(event);\r\n      this.context.movableElement.style.transform = `translate3d(${x}, ${y}, 0px)`;\r\n    }\r\n  }\r\n\r\n  private initInitialCoordinates(): void {\r\n    const computedStyle = window.getComputedStyle(this.context.movableElement);\r\n    const transform = new WebKitCSSMatrix(computedStyle.transform);\r\n    const domRect = this.context.movableElement.getBoundingClientRect();\r\n    this.initialX = domRect.left - transform.m41;\r\n    this.initialY = domRect.top - transform.m42;\r\n  }\r\n\r\n  private calculateElementPositionX(event: PointerEvent | TouchEvent): string {\r\n    const position = !this.config.isLockAxisX\r\n      ? ɵPointerHelper.getClientX(event) - this.initialX - this.shiftX\r\n      : 0;\r\n\r\n    return `${position}px`;\r\n  }\r\n\r\n  private calculateElementPositionY(event: PointerEvent | TouchEvent): string {\r\n    const position = !this.config.isLockAxisY\r\n      ? ɵPointerHelper.getClientY(event) - this.initialY - this.shiftY\r\n      : 0;\r\n\r\n    return `${position}px`;\r\n  }\r\n}\r\n","import { ɵInvertedKeysOfType } from '../../../../core';\r\nimport { ɵDragStrategyEnum } from '../../enums';\r\n\r\n/**\r\n * Affects to move element by CSS `transform: translate3d` function.\r\n * A great choice for dragging HTML elements with any positioning\r\n **/\r\nexport class DragStrategyByTranslate3d {\r\n  /** @internal */\r\n  public readonly type = ɵDragStrategyEnum.ByTranslate3d;\r\n  /** Forbids to drag by X-Axis */\r\n  public isLockAxisX?: boolean = false;\r\n  /** Forbids to drag by Y-Axis */\r\n  public isLockAxisY?: boolean = false;\r\n\r\n  constructor(params?: ɵInvertedKeysOfType<DragStrategyByTranslate3d, ɵDragStrategyEnum>) {\r\n    Object.assign(this, params);\r\n  }\r\n}\r\n","import { DraggableDirective } from '../../directives/draggable.directive';\r\nimport { ɵDragStrategyEnum } from '../../enums';\r\nimport { DragStrategyType } from '../../types';\r\nimport { ɵBaseDragStrategyImpl } from './base-drag-impl.strategy';\r\nimport { ɵDragStrategyByAxisPropertiesImpl } from './by-axis-properties-drag-impl.strategy';\r\nimport { ɵDragStrategyByTranslate3dImpl } from './by-translate3d-drag-impl.strategy';\r\n\r\n/** @internal */\r\nexport abstract class ɵDragStrategyFactory {\r\n  public static create(\r\n    strategyConfig: DragStrategyType,\r\n    context: DraggableDirective\r\n  ): ɵBaseDragStrategyImpl {\r\n    switch (strategyConfig.type) {\r\n      case ɵDragStrategyEnum.ByAxisProperties:\r\n        return new ɵDragStrategyByAxisPropertiesImpl(context);\r\n      case ɵDragStrategyEnum.ByTranslate3d:\r\n        return new ɵDragStrategyByTranslate3dImpl(context);\r\n      default:\r\n        throw new Error(\r\n          `Incorrect type of strategyConfig. ` + `Can't create strategy implementation instance!`\r\n        );\r\n    }\r\n  }\r\n\r\n  public static isDifferent(\r\n    newStrategyConfig: DragStrategyType,\r\n    context: DraggableDirective\r\n  ): boolean {\r\n    return context.strategy?.type !== newStrategyConfig.type;\r\n  }\r\n}\r\n","import { MouseButtonEnum } from '../../../core';\r\nimport { DraggerConfig, DragInfo } from '../interfaces';\r\nimport { DragStrategyType } from '../types';\r\nimport { DragStrategyByTranslate3d } from './drag-strategy';\r\n\r\n/** @internal */\r\nexport class ɵDraggerConfigModel implements DraggerConfig {\r\n  public draggableElement?: HTMLElement;\r\n  public movableElement?: HTMLElement;\r\n  public childElementsBlackList?: HTMLElement[] = [];\r\n  public allowedMouseButtons?: MouseButtonEnum[] = [MouseButtonEnum.Left];\r\n  public shiftX?: number;\r\n  public shiftY?: number;\r\n  public strategy?: DragStrategyType = new DragStrategyByTranslate3d();\r\n  public isEnabled?: boolean = true;\r\n  public isAllowMoveElement?: boolean = true;\r\n  public mouseMoveHandler?: (event: DragInfo) => void;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n  AfterViewInit,\r\n  Directive,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Inject,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  Output\r\n} from '@angular/core';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\nimport { ɵPointerHelper } from '../../../core';\r\nimport { ɵBaseDragStrategyImpl, ɵDraggerConfigModel, ɵDragStrategyFactory } from '../classes';\r\nimport { ɵDraggerCssClassEnum as CssClass } from '../enums';\r\nimport { DraggerConfig, DragInfo } from '../interfaces';\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\n/** Makes HTML element draggable by mouse */\r\n@Directive({\r\n  selector: '[oDraggable]'\r\n})\r\nexport class DraggableDirective implements OnChanges, AfterViewInit, OnDestroy {\r\n  /** Configuration of dragging */\r\n  @Input('oDraggable')\r\n  public parameters: DraggerConfig | undefined | '';\r\n\r\n  /** Fires when the draggable element init */\r\n  @Output()\r\n  public osDraggableElementInit: EventEmitter<HTMLElement> = new EventEmitter();\r\n\r\n  /** Fires when the movable element init */\r\n  @Output()\r\n  public osMovableElementInit: EventEmitter<HTMLElement> = new EventEmitter();\r\n\r\n  /** Fires when calls mousedown handler over draggableElement */\r\n  @Output()\r\n  public osDragStart: EventEmitter<DragInfo> = new EventEmitter();\r\n\r\n  /** Fires when the `mousemove` is called */\r\n  @Output()\r\n  public osDragging: EventEmitter<DragInfo> = new EventEmitter();\r\n\r\n  /** Fires when the `mouseup` is called and after all internal handlers removed */\r\n  @Output()\r\n  public osDragEnd: EventEmitter<DragInfo> = new EventEmitter();\r\n\r\n  /** Target draggable HTML element */\r\n  public get draggableElement(): HTMLElement {\r\n    return this._draggableElement;\r\n  }\r\n\r\n  /** Target movable HTML element */\r\n  public get movableElement(): HTMLElement {\r\n    return this._movableElement;\r\n  }\r\n\r\n  /** Target dragging strategy */\r\n  public get strategy(): ɵBaseDragStrategyImpl {\r\n    return this._strategy;\r\n  }\r\n\r\n  /** Configuration of dragging */\r\n  public get config(): DraggerConfig {\r\n    return this._config;\r\n  }\r\n\r\n  /** @internal */\r\n  public get whenViewInit$(): Observable<unknown> {\r\n    return this._whenViewInit$.asObservable();\r\n  }\r\n\r\n  private _draggableElement!: HTMLElement;\r\n  private _movableElement!: HTMLElement;\r\n  private _strategy!: ɵBaseDragStrategyImpl;\r\n  private _config = new ɵDraggerConfigModel();\r\n  private _whenViewInit$ = new ReplaySubject();\r\n\r\n  constructor(\r\n    @Inject(DOCUMENT) private readonly document: Document,\r\n    private readonly hostRef: ElementRef<HTMLElement>\r\n  ) {}\r\n\r\n  public ngOnChanges(): void {\r\n    this.update();\r\n  }\r\n\r\n  public ngAfterViewInit(): void {\r\n    this._whenViewInit$.next(null);\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n    this._draggableElement.removeEventListener('mousedown', this.onPointerDown as SafeAny);\r\n    this._whenViewInit$.complete();\r\n  }\r\n\r\n  /** Updates config without affecting any logic, like some internal initialization of different things */\r\n  public updateConfigWithoutChanges(config: DraggerConfig): void {\r\n    this._config = { ...this._config, ...config };\r\n  }\r\n\r\n  private update(): void {\r\n    this.updateConfigWithoutChanges(this.parameters as DraggerConfig);\r\n    this.initMovableElement();\r\n    this.initDraggableElement();\r\n    this.initStrategy();\r\n  }\r\n\r\n  private updateMovableElementPosition(event: PointerEvent | TouchEvent): void {\r\n    if (this._movableElement && this.config.isAllowMoveElement) {\r\n      this._strategy.updateElementPosition(event);\r\n    }\r\n  }\r\n\r\n  private initStrategy(): void {\r\n    if (ɵDragStrategyFactory.isDifferent(this._config.strategy as SafeAny, this)) {\r\n      this._strategy = ɵDragStrategyFactory.create(this._config.strategy as SafeAny, this);\r\n    }\r\n  }\r\n\r\n  private initDraggableElement(): void {\r\n    this._draggableElement?.removeEventListener('mousedown', this.onPointerDown as SafeAny);\r\n    this._draggableElement?.removeEventListener('touchstart', this.onPointerDown);\r\n    this._draggableElement?.classList.remove(CssClass.Draggable);\r\n\r\n    this._draggableElement = this.config?.draggableElement ?? this.hostRef.nativeElement;\r\n\r\n    this._draggableElement?.classList.add(CssClass.Draggable);\r\n    this._draggableElement.addEventListener('mousedown', this.onPointerDown as SafeAny);\r\n    this._draggableElement.addEventListener('touchstart', this.onPointerDown);\r\n    this.osDraggableElementInit.emit(this._draggableElement);\r\n  }\r\n\r\n  private initMovableElement(): void {\r\n    this._movableElement?.classList.remove(CssClass.Movable);\r\n\r\n    this._movableElement = this.config?.movableElement ?? this.hostRef.nativeElement;\r\n\r\n    this._movableElement?.classList.add(CssClass.Movable);\r\n    this.osMovableElementInit.emit(this._movableElement);\r\n  }\r\n\r\n  private readonly onPointerDown = (event: PointerEvent | TouchEvent): void => {\r\n    if (!this.isDragAllowed(event)) {\r\n      return;\r\n    }\r\n\r\n    const dragInfo = this.getDragInfo(event);\r\n\r\n    event.preventDefault();\r\n    this.osDragStart.emit(dragInfo);\r\n    this._movableElement.classList.add(CssClass.Dragging);\r\n    this._strategy.registerMouseDown(dragInfo);\r\n    this._draggableElement.addEventListener('touchmove', this.onPointerMove);\r\n    this._draggableElement.addEventListener('touchend', this.onPointerUp);\r\n    this.document.addEventListener('mousemove', this.onPointerMove as SafeAny);\r\n    this.document.addEventListener('mouseup', this.onPointerUp as SafeAny);\r\n  };\r\n\r\n  private readonly onPointerMove = (event: PointerEvent | TouchEvent): void => {\r\n    const dragInfo = this.getDragInfo(event);\r\n\r\n    event.preventDefault();\r\n\r\n    if (this.config.mouseMoveHandler) {\r\n      this.config.mouseMoveHandler(dragInfo);\r\n    } else {\r\n      this.updateMovableElementPosition(event);\r\n    }\r\n\r\n    this.osDragging.emit(this.getDragInfo(event));\r\n  };\r\n\r\n  private readonly onPointerUp = (event: PointerEvent | TouchEvent): void => {\r\n    event.preventDefault();\r\n    this._movableElement.classList.remove(CssClass.Dragging);\r\n    this._draggableElement.removeEventListener('touchmove', this.onPointerMove);\r\n    this._draggableElement.removeEventListener('touchend', this.onPointerUp);\r\n    this.document.removeEventListener('mousemove', this.onPointerMove as SafeAny);\r\n    this.document.removeEventListener('mouseup', this.onPointerUp as SafeAny);\r\n    this.osDragEnd.emit(this.getDragInfo(event));\r\n  };\r\n\r\n  private getDragInfo(originalEvent: PointerEvent | TouchEvent): DragInfo {\r\n    return {\r\n      movableElement: this._movableElement,\r\n      originalEvent\r\n    };\r\n  }\r\n\r\n  private isDragAllowed(event: PointerEvent | TouchEvent): boolean {\r\n    const isMouseButtonAvailable = ɵPointerHelper.isPointerEvent(event)\r\n      ? this.config.allowedMouseButtons?.includes(event.button)\r\n      : event.touches.length === 1;\r\n\r\n    return (this.config.isEnabled &&\r\n      isMouseButtonAvailable &&\r\n      !this.config.childElementsBlackList?.includes(event.target as HTMLElement)) as SafeAny;\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ɵSharedModule } from '../shared.module';\r\nimport { DraggableDirective } from './directives';\r\n\r\n@NgModule({\r\n  declarations: [DraggableDirective],\r\n  imports: [ɵSharedModule],\r\n  exports: [DraggableDirective]\r\n})\r\nexport class DragAndDropModule {}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Injector } from '@angular/core';\r\nimport { ɵParseInt, ɵPointerHelper } from '../../../core';\r\nimport { ResizableDirective } from '../directives';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ɵResizerConfigModel } from './resizer-config';\r\n\r\n/** @internal */\r\nexport abstract class ɵBaseResizer {\r\n  public static id?: ResizerEnum;\r\n\r\n  protected readonly documentElement: HTMLElement;\r\n  protected minWidth = 0;\r\n  protected maxWidth = 0;\r\n  protected minHeight = 0;\r\n  protected maxHeight = 0;\r\n  protected originalWidth = 20;\r\n  protected originalHeight = 20;\r\n  protected originalX = 20;\r\n  protected originalY = 20;\r\n  protected originalMouseX = 20;\r\n  protected originalMouseY = 20;\r\n  protected config: ɵResizerConfigModel;\r\n  protected resizableElement!: HTMLElement;\r\n\r\n  private minSize = 20;\r\n\r\n  constructor(protected readonly context: ResizableDirective, private readonly injector: Injector) {\r\n    this.config = this.context.config;\r\n    this.documentElement = this.injector.get(DOCUMENT)?.documentElement;\r\n  }\r\n\r\n  public init(resizableElement: HTMLElement, event: PointerEvent | TouchEvent): void {\r\n    const { width, height, left, top } = resizableElement.getBoundingClientRect();\r\n    this.originalWidth = width;\r\n    this.originalHeight = height;\r\n    this.originalX = left;\r\n    this.originalY = top;\r\n    this.originalMouseX = ɵPointerHelper.getPageX(event);\r\n    this.originalMouseY = ɵPointerHelper.getPageY(event);\r\n    this.resizableElement = resizableElement;\r\n\r\n    this.initMinAndMaxSizes();\r\n  }\r\n\r\n  private initMinAndMaxSizes(): void {\r\n    const computedStyles = getComputedStyle(this.resizableElement);\r\n    const { minWidth, maxWidth, minHeight, maxHeight } = computedStyles;\r\n\r\n    this.minWidth = this.config.minWidth || ɵParseInt(minWidth) || this.minSize;\r\n    this.maxWidth = this.config.maxWidth || ɵParseInt(maxWidth) || this.minSize;\r\n    this.minHeight = this.config.minHeight || ɵParseInt(minHeight) || this.minSize;\r\n    this.maxHeight = this.config.maxHeight || ɵParseInt(maxHeight) || this.minSize;\r\n  }\r\n\r\n  public abstract resizeElement(event: PointerEvent | TouchEvent): void;\r\n}\r\n","/** @internal */\r\nexport enum ɵResizerCssClassEnum {\r\n  Resizable = 'o-resizable',\r\n  Resizing = 'o-resizing'\r\n}\r\n","/** @internal */\r\nexport enum ɵResizerElementTagEnum {\r\n  Resizers = 'o-resizers',\r\n  Resizer = 'o-resizer'\r\n}\r\n","export enum ResizerEnum {\r\n  Top = 'top',\r\n  Left = 'left',\r\n  Right = 'right',\r\n  Bottom = 'bottom',\r\n  TopLeft = 'top-left',\r\n  TopRight = 'top-right',\r\n  BottomLeft = 'bottom-left',\r\n  BottomRight = 'bottom-right'\r\n}\r\n","import { ɵPointerHelper } from '../../../core';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ɵBaseResizer } from './base-resizer';\r\n\r\n/** @internal */\r\nexport class ɵBottomLeftResizer extends ɵBaseResizer {\r\n  public static override id = ResizerEnum.BottomLeft;\r\n\r\n  public resizeElement(event: PointerEvent): void {\r\n    this.processAxisX(event);\r\n    this.processAxisY(event);\r\n  }\r\n\r\n  private processAxisX(event: PointerEvent | TouchEvent): void {\r\n    const pageX = ɵPointerHelper.getPageX(event);\r\n    const width = this.originalWidth - (pageX - this.originalMouseX);\r\n\r\n    if (width > this.minWidth && width < this.maxWidth) {\r\n      this.resizableElement.style.setProperty(this.config.widthStyleProperty, `${width}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.xAxisLeftStyleProperty) {\r\n        const position = `${this.originalX + (pageX - this.originalMouseX)}px`;\r\n        const property = this.config.xAxisLeftStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n\r\n  private processAxisY(event: PointerEvent | TouchEvent): void {\r\n    const pageY = ɵPointerHelper.getPageY(event);\r\n    const height = this.originalHeight + (pageY - this.originalMouseY);\r\n\r\n    if (height > this.minHeight && height < this.maxHeight) {\r\n      this.resizableElement.style.setProperty(this.config.heightStyleProperty, `${height}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.yAxisBottomStyleProperty) {\r\n        const position = `${this.documentElement.clientHeight - pageY}px`;\r\n        const property = this.config.yAxisBottomStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { ɵPointerHelper } from '../../../core';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ɵBaseResizer } from './base-resizer';\r\n\r\n/** @internal */\r\nexport class ɵBottomResizer extends ɵBaseResizer {\r\n  public static override id = ResizerEnum.Bottom;\r\n\r\n  public resizeElement(event: PointerEvent | TouchEvent): void {\r\n    const pageY = ɵPointerHelper.getPageY(event);\r\n    const height = this.originalHeight + (pageY - this.originalMouseY);\r\n\r\n    if (height > this.minHeight && height < this.maxHeight) {\r\n      this.resizableElement.style.setProperty(this.config.heightStyleProperty, `${height}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.yAxisBottomStyleProperty) {\r\n        const position = `${this.documentElement.clientHeight - pageY}px`;\r\n        const property = this.config.yAxisBottomStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { ɵPointerHelper } from '../../../core';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ɵBaseResizer } from './base-resizer';\r\n\r\n/** @internal */\r\nexport class ɵBottomRightResizer extends ɵBaseResizer {\r\n  public static override id = ResizerEnum.BottomRight;\r\n\r\n  public resizeElement(event: PointerEvent): void {\r\n    this.processAxisX(event);\r\n    this.processAxisY(event);\r\n  }\r\n\r\n  private processAxisX(event: PointerEvent | TouchEvent): void {\r\n    const pageX = ɵPointerHelper.getPageX(event);\r\n    const clientX = ɵPointerHelper.getClientX(event);\r\n    const width = this.originalWidth + (pageX - this.originalMouseX);\r\n\r\n    if (width > this.minWidth && width < this.maxWidth) {\r\n      this.resizableElement.style.setProperty(this.config.widthStyleProperty, `${width}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.xAxisRightStyleProperty) {\r\n        const position = `${this.documentElement.clientWidth - clientX}px`;\r\n        const property = this.config.xAxisRightStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n\r\n  private processAxisY(event: PointerEvent | TouchEvent): void {\r\n    const pageY = ɵPointerHelper.getPageY(event);\r\n    const clientY = ɵPointerHelper.getClientY(event);\r\n    const height = this.originalHeight + (pageY - this.originalMouseY);\r\n\r\n    if (height > this.minHeight && height < this.maxHeight) {\r\n      this.resizableElement.style.setProperty(this.config.heightStyleProperty, `${height}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.yAxisBottomStyleProperty) {\r\n        const position = `${this.documentElement.clientHeight - clientY}px`;\r\n        const property = this.config.yAxisBottomStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { ɵPointerHelper } from '../../../core';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ɵBaseResizer } from './base-resizer';\r\n\r\n/** @internal */\r\nexport class ɵLeftResizer extends ɵBaseResizer {\r\n  public static override id = ResizerEnum.Left;\r\n\r\n  public resizeElement(event: PointerEvent | TouchEvent): void {\r\n    const pageX = ɵPointerHelper.getPageX(event);\r\n    const width = this.originalWidth - (pageX - this.originalMouseX);\r\n\r\n    if (width > this.minWidth && width < this.maxWidth) {\r\n      this.resizableElement.style.setProperty(this.config.widthStyleProperty, `${width}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.xAxisLeftStyleProperty) {\r\n        const position = `${this.originalX + (pageX - this.originalMouseX)}px`;\r\n        const property = this.config.xAxisLeftStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { ResizerEnum } from '../enums';\r\n\r\n/** @internal */\r\nexport const ɵRESIZERS_ARRAY: ResizerEnum[] = [\r\n  ResizerEnum.TopLeft,\r\n  ResizerEnum.Top,\r\n  ResizerEnum.TopRight,\r\n  ResizerEnum.Right,\r\n  ResizerEnum.BottomRight,\r\n  ResizerEnum.Bottom,\r\n  ResizerEnum.BottomLeft,\r\n  ResizerEnum.Left\r\n];\r\n","import { MouseButtonEnum } from '../../../core';\r\nimport { ɵRESIZERS_ARRAY } from '../data';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ResizeInfo, ResizerConfig } from '../interfaces';\r\n\r\n/** @internal */\r\nexport class ɵResizerConfigModel implements ResizerConfig {\r\n  public targetElement?: HTMLElement;\r\n  public minWidth?: number;\r\n  public minHeight?: number;\r\n  public maxWidth?: number = Infinity;\r\n  public maxHeight?: number = Infinity;\r\n  public allowedResizers: ResizerEnum[] = [...ɵRESIZERS_ARRAY];\r\n  public allowedMouseButtons?: MouseButtonEnum[] = [MouseButtonEnum.Left];\r\n  public xAxisLeftStyleProperty?: string = 'left';\r\n  public xAxisRightStyleProperty?: string;\r\n  public yAxisTopStyleProperty?: string = 'top';\r\n  public yAxisBottomStyleProperty?: string;\r\n  public widthStyleProperty = 'width';\r\n  public heightStyleProperty = 'height';\r\n  public isAllowChangePosition?: boolean = true;\r\n  public isEnabled = true;\r\n  public mouseMoveHandler?: (event: ResizeInfo) => void;\r\n}\r\n","import { ɵPointerHelper } from '../../../core';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ɵBaseResizer } from './base-resizer';\r\n\r\n/** @internal */\r\nexport class ɵRightResizer extends ɵBaseResizer {\r\n  public static override id = ResizerEnum.Right;\r\n\r\n  public resizeElement(event: PointerEvent | TouchEvent): void {\r\n    const pageX = ɵPointerHelper.getPageX(event);\r\n    const width = this.originalWidth + (pageX - this.originalMouseX);\r\n\r\n    if (width > this.minWidth && width < this.maxWidth) {\r\n      this.resizableElement.style.setProperty(this.config.widthStyleProperty, `${width}px`);\r\n    }\r\n  }\r\n}\r\n","import { ɵPointerHelper } from '../../../core';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ɵBaseResizer } from './base-resizer';\r\n\r\n/** @internal */\r\nexport class ɵTopLeftResizer extends ɵBaseResizer {\r\n  public static override id = ResizerEnum.TopLeft;\r\n\r\n  public resizeElement(event: PointerEvent | TouchEvent): void {\r\n    this.processAxisX(event);\r\n    this.processAxisY(event);\r\n  }\r\n\r\n  private processAxisX(event: PointerEvent | TouchEvent): void {\r\n    const pageX = ɵPointerHelper.getPageX(event);\r\n    const width = this.originalWidth - (pageX - this.originalMouseX);\r\n\r\n    if (width > this.minWidth && width < this.maxWidth) {\r\n      this.resizableElement.style.setProperty(this.config.widthStyleProperty, `${width}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.xAxisLeftStyleProperty) {\r\n        const position = `${this.originalX + (pageX - this.originalMouseX)}px`;\r\n        const property = this.config.xAxisLeftStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n\r\n  private processAxisY(event: PointerEvent | TouchEvent): void {\r\n    const pageY = ɵPointerHelper.getPageY(event);\r\n    const height = this.originalHeight - (pageY - this.originalMouseY);\r\n\r\n    if (height > this.minHeight && height < this.maxHeight) {\r\n      this.resizableElement.style.setProperty(this.config.heightStyleProperty, `${height}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.yAxisTopStyleProperty) {\r\n        const position = `${this.originalY + (pageY - this.originalMouseY)}px`;\r\n        const property = this.config.yAxisTopStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { ɵPointerHelper } from '../../../core';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ɵBaseResizer } from './base-resizer';\r\n\r\n/** @internal */\r\nexport class ɵTopResizer extends ɵBaseResizer {\r\n  public static override id = ResizerEnum.Top;\r\n\r\n  public resizeElement(event: PointerEvent | TouchEvent): void {\r\n    const pageY = ɵPointerHelper.getPageY(event);\r\n    const height = this.originalHeight - (pageY - this.originalMouseY);\r\n\r\n    if (height > this.minHeight && height < this.maxHeight) {\r\n      this.resizableElement.style.setProperty(this.config.heightStyleProperty, `${height}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.yAxisTopStyleProperty) {\r\n        const position = `${this.originalY + (pageY - this.originalMouseY)}px`;\r\n        const property = this.config.yAxisTopStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { ɵPointerHelper } from '../../../core';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ɵBaseResizer } from './base-resizer';\r\n\r\n/** @internal */\r\nexport class ɵTopRightResizer extends ɵBaseResizer {\r\n  public static override id = ResizerEnum.TopRight;\r\n\r\n  public resizeElement(event: PointerEvent | TouchEvent): void {\r\n    this.processAxisX(event);\r\n    this.processAxisY(event);\r\n  }\r\n\r\n  private processAxisX(event: PointerEvent | TouchEvent): void {\r\n    const pageX = ɵPointerHelper.getPageX(event);\r\n    const clientX = ɵPointerHelper.getClientX(event);\r\n    const width = this.originalWidth + (pageX - this.originalMouseX);\r\n\r\n    if (width > this.minWidth && width < this.maxWidth) {\r\n      this.resizableElement.style.setProperty(this.config.widthStyleProperty, `${width}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.xAxisRightStyleProperty) {\r\n        const position = `${this.documentElement.clientWidth - clientX}px`;\r\n        const property = this.config.xAxisRightStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n\r\n  private processAxisY(event: PointerEvent | TouchEvent): void {\r\n    const pageY = ɵPointerHelper.getPageY(event);\r\n    const height = this.originalHeight - (pageY - this.originalMouseY);\r\n\r\n    if (height > this.minHeight && height < this.maxHeight) {\r\n      this.resizableElement.style.setProperty(this.config.heightStyleProperty, `${height}px`);\r\n\r\n      if (this.config.isAllowChangePosition && this.config.yAxisTopStyleProperty) {\r\n        const position = `${this.originalY + (pageY - this.originalMouseY)}px`;\r\n        const property = this.config.yAxisTopStyleProperty;\r\n\r\n        this.resizableElement.style.setProperty(property, position);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { ResizableDirective } from '../directives';\r\nimport { ResizerEnum } from '../enums';\r\nimport { ɵBaseResizer } from './base-resizer';\r\nimport { ɵBottomLeftResizer } from './bottom-left-resizer';\r\nimport { ɵBottomResizer } from './bottom-resizer';\r\nimport { ɵBottomRightResizer } from './bottom-right-resizer';\r\nimport { ɵLeftResizer } from './left-resizer';\r\nimport { ɵRightResizer } from './right-resizer';\r\nimport { ɵTopLeftResizer } from './top-left-resizer';\r\nimport { ɵTopResizer } from './top-resizer';\r\nimport { ɵTopRightResizer } from './top-right-resizer';\r\n\r\n/** @internal */\r\n@Injectable()\r\nexport class ɵResizerFactory {\r\n  private readonly resizers = [\r\n    ɵTopLeftResizer,\r\n    ɵTopResizer,\r\n    ɵTopRightResizer,\r\n    ɵLeftResizer,\r\n    ɵRightResizer,\r\n    ɵBottomLeftResizer,\r\n    ɵBottomResizer,\r\n    ɵBottomRightResizer\r\n  ];\r\n\r\n  constructor(private readonly injector: Injector) {}\r\n\r\n  public create(id: ResizerEnum, context: ResizableDirective): ɵBaseResizer {\r\n    const ResizerType = this.resizers.find(resizer => resizer.id === id) ?? ɵTopLeftResizer;\r\n\r\n    return new ResizerType(context, this.injector);\r\n  }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n  AfterViewInit,\r\n  Directive,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Inject,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  Output\r\n} from '@angular/core';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { ReplaySubject } from 'rxjs';\r\nimport { first } from 'rxjs/operators';\r\nimport { ɵCommonCssClassEnum as CommonCssClass, ɵPointerHelper } from '../../../core';\r\nimport { ɵBaseResizer, ɵResizerConfigModel, ɵResizerFactory } from '../classes';\r\nimport { ɵRESIZERS_ARRAY } from '../data';\r\nimport {\r\n  ResizerEnum,\r\n  ɵResizerCssClassEnum as CssClass,\r\n  ɵResizerElementTagEnum as ElementTag\r\n} from '../enums';\r\nimport { ResizeInfo, ResizerConfig } from '../interfaces';\r\n\r\n@Directive({\r\n  selector: '[oResizable]',\r\n  providers: [ɵResizerFactory]\r\n})\r\nexport class ResizableDirective implements OnChanges, AfterViewInit, OnDestroy {\r\n  /** Configuration of resizing */\r\n  @Input('oResizable')\r\n  public parameters: ResizerConfig | undefined | '';\r\n\r\n  /** Fires when the resizable element init */\r\n  @Output()\r\n  public osResizableElementInit: EventEmitter<HTMLElement> = new EventEmitter();\r\n\r\n  /** Fires when the resizers wrapper element init */\r\n  @Output()\r\n  public osResizersWrapperElementInit: EventEmitter<HTMLElement> = new EventEmitter();\r\n\r\n  /** Fires when calls mousedown handler over resizableElement */\r\n  @Output()\r\n  public osResizeStart: EventEmitter<ResizeInfo> = new EventEmitter();\r\n\r\n  /** Fires when the `mousemove` is called */\r\n  @Output()\r\n  public osResizing: EventEmitter<ResizeInfo> = new EventEmitter();\r\n\r\n  /** Fires when the `mouseup` is called and after all internal handlers removed */\r\n  @Output()\r\n  public osResizeEnd: EventEmitter<ResizeInfo> = new EventEmitter();\r\n\r\n  /** Target resizable HTML element */\r\n  public get resizableElement(): HTMLElement {\r\n    return this._resizableElement;\r\n  }\r\n\r\n  /** Target resizer */\r\n  public get resizer(): ɵBaseResizer {\r\n    return this._resizer;\r\n  }\r\n\r\n  /** Configuration of resizing */\r\n  public get config(): ɵResizerConfigModel {\r\n    return this._config;\r\n  }\r\n\r\n  private _resizableElement!: HTMLElement;\r\n  private _resizersWrapperElement!: HTMLElement;\r\n  private _resizer!: ɵBaseResizer;\r\n  private _config = new ɵResizerConfigModel();\r\n  private _whenViewInit$ = new ReplaySubject();\r\n\r\n  constructor(\r\n    @Inject(DOCUMENT) private readonly document: Document,\r\n    private readonly hostRef: ElementRef<HTMLElement>,\r\n    private readonly resizerFactory: ɵResizerFactory\r\n  ) {}\r\n\r\n  public ngOnChanges(): void {\r\n    this.updateConfigWithoutChanges(this.parameters as ResizerConfig);\r\n    this.onConfigChanged();\r\n  }\r\n\r\n  public ngAfterViewInit(): void {\r\n    this.initResizersWrapperElement();\r\n    this._whenViewInit$.next(null);\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n    this.document.removeEventListener('mouseup', this.onPointerUp as SafeAny);\r\n    this._whenViewInit$.complete();\r\n  }\r\n\r\n  /** Updates config without affecting any logic, like some internal initialization of different things */\r\n  public updateConfigWithoutChanges(config: ResizerConfig): void {\r\n    this._config = { ...this._config, ...config };\r\n  }\r\n\r\n  private onConfigChanged(): void {\r\n    this._whenViewInit$.pipe(first()).subscribe(() => {\r\n      this.initResizableElement();\r\n      this.updateResizersWrapperDomPlacement();\r\n      this.updateResizersWrapperActivity();\r\n      this.initResizerElements();\r\n    });\r\n  }\r\n\r\n  private initResizableElement(): void {\r\n    this._resizableElement?.classList.remove(CssClass.Resizable);\r\n\r\n    this._resizableElement = this.config?.targetElement ?? this.hostRef.nativeElement;\r\n\r\n    this._resizableElement?.classList.add(CssClass.Resizable);\r\n    this.osResizableElementInit.emit(this._resizableElement);\r\n  }\r\n\r\n  private initResizersWrapperElement(): void {\r\n    this._resizersWrapperElement = this.document.createElement(ElementTag.Resizers);\r\n\r\n    this.osResizersWrapperElementInit.emit(this._resizersWrapperElement);\r\n  }\r\n\r\n  private initResizerElements(): void {\r\n    ɵRESIZERS_ARRAY.forEach(resizer => {\r\n      const targetExisting = this._resizersWrapperElement.querySelector(`.${resizer}`);\r\n      const isTargetAllowed = this.config.allowedResizers.includes(resizer);\r\n\r\n      if (targetExisting && !isTargetAllowed) {\r\n        // If target (already existing) resizer became forbidden\r\n        this._resizersWrapperElement.removeChild(targetExisting);\r\n      } else if (!targetExisting && isTargetAllowed) {\r\n        // If target resizer absent but became allowed\r\n        this.createResizer(resizer);\r\n      }\r\n    });\r\n  }\r\n\r\n  private createResizer(resizer: ResizerEnum): void {\r\n    const resizerElement = this.document.createElement(ElementTag.Resizer);\r\n\r\n    const pointerDownHandler = (event: PointerEvent | TouchEvent): void => {\r\n      this.onPointerDown(event, resizer);\r\n    };\r\n\r\n    resizerElement.classList.add(resizer);\r\n    resizerElement.addEventListener('mousedown', pointerDownHandler as SafeAny);\r\n    resizerElement.addEventListener('touchstart', pointerDownHandler);\r\n    resizerElement.addEventListener('touchmove', this.onPointerMove, { passive: false });\r\n    resizerElement.addEventListener('touchend', this.onPointerUp);\r\n    this._resizersWrapperElement.appendChild(resizerElement);\r\n  }\r\n\r\n  private updateResizersWrapperDomPlacement(): void {\r\n    if (\r\n      this._resizersWrapperElement &&\r\n      this._resizersWrapperElement.parentElement !== this._resizableElement\r\n    ) {\r\n      this._resizersWrapperElement.remove();\r\n\r\n      this._resizableElement.appendChild(this._resizersWrapperElement);\r\n    }\r\n  }\r\n\r\n  private updateResizersWrapperActivity(): void {\r\n    const classList = this._resizersWrapperElement.classList;\r\n    const action: keyof DOMTokenList = this.config.isEnabled ? 'add' : 'remove';\r\n\r\n    classList[action](CommonCssClass.Active);\r\n  }\r\n\r\n  private readonly onPointerDown = (\r\n    event: PointerEvent | TouchEvent,\r\n    resizerId: ResizerEnum\r\n  ): void => {\r\n    if (!this.isResizeAllowed(event)) {\r\n      return;\r\n    }\r\n\r\n    const resizeInfo = this.getResizeInfo(event);\r\n    this._resizer = this.resizerFactory.create(resizerId, this);\r\n\r\n    event.stopPropagation();\r\n    this.osResizeStart.emit(resizeInfo);\r\n    this._resizer.init(this._resizableElement, event);\r\n    this._resizableElement.classList.add(CssClass.Resizing);\r\n    this.document.addEventListener('mousemove', this.onPointerMove as SafeAny);\r\n    this.document.addEventListener('mouseup', this.onPointerUp as SafeAny);\r\n  };\r\n\r\n  private readonly onPointerMove = (event: PointerEvent | TouchEvent): void => {\r\n    const resizeInfo = this.getResizeInfo(event);\r\n\r\n    if (this.config.mouseMoveHandler) {\r\n      this.config.mouseMoveHandler(resizeInfo);\r\n    } else {\r\n      this._resizer.resizeElement(event);\r\n    }\r\n\r\n    event.stopPropagation();\r\n\r\n    if (event.cancelable) {\r\n      event.preventDefault();\r\n    }\r\n    this.osResizing.emit(resizeInfo);\r\n  };\r\n\r\n  private readonly onPointerUp = (event: PointerEvent | TouchEvent): void => {\r\n    this._resizableElement.classList.remove(CssClass.Resizing);\r\n    this.document.removeEventListener('mousemove', this.onPointerMove as SafeAny);\r\n    this.document.addEventListener('mouseup', this.onPointerUp as SafeAny);\r\n    event.stopPropagation();\r\n    this.osResizeEnd.emit(this.getResizeInfo(event));\r\n  };\r\n\r\n  private getResizeInfo(originalEvent: PointerEvent | TouchEvent): ResizeInfo {\r\n    return {\r\n      resizableElement: this._resizableElement,\r\n      originalEvent\r\n    };\r\n  }\r\n\r\n  private isResizeAllowed(event: PointerEvent | TouchEvent): boolean {\r\n    const isMouseButtonAvailable = ɵPointerHelper.isPointerEvent(event)\r\n      ? this.config.allowedMouseButtons?.includes(event.button)\r\n      : event.touches.length === 1;\r\n\r\n    return this.config.isEnabled && (isMouseButtonAvailable ?? false);\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ɵSharedModule } from '../shared.module';\r\nimport { ResizableDirective } from './directives';\r\n\r\n@NgModule({\r\n  declarations: [ResizableDirective],\r\n  imports: [ɵSharedModule],\r\n  exports: [ResizableDirective]\r\n})\r\nexport class ResizerModule {}\r\n","import { GridComponent } from '../../components';\r\nimport { GridDirectionEnum } from '../../enums';\r\n\r\n/** @internal */\r\nexport abstract class ɵBaseGridCellCountDeterminator {\r\n  public abstract readonly type: GridDirectionEnum;\r\n\r\n  constructor(protected readonly context: GridComponent) {}\r\n\r\n  public calculateForAxisX(): number {\r\n    const gridZoneWidth =\r\n      this.context.hostElement.clientWidth || this.context.hostElement.scrollWidth;\r\n    const cellsCount = Math.floor(gridZoneWidth / this.context.cellSize);\r\n\r\n    return cellsCount <= 0 ? 1 : cellsCount;\r\n  }\r\n\r\n  public abstract calculateForAxisY(): number;\r\n}\r\n","export enum GridDirectionEnum {\r\n  /** 水平 */\r\n  Horizontal,\r\n  /** 垂直 */\r\n  Vertical\r\n}\r\n","import { GridDirectionEnum } from '../../enums';\r\nimport { ɵBaseGridCellCountDeterminator as BaseDeterminator } from './base.determinator';\r\n\r\n/** @internal */\r\nexport class ɵHorizontalGridCellCountDeterminator extends BaseDeterminator {\r\n  public readonly type = GridDirectionEnum.Horizontal;\r\n\r\n  public calculateForAxisY(): number {\r\n    if (this.context.isHeightResizing) {\r\n      return Math.ceil(this.context._gridItemComponents.length / this.calculateForAxisX());\r\n    }\r\n\r\n    const gridElementHeight =\r\n      this.context.hostElement.clientHeight || this.context.hostElement.scrollHeight;\r\n\r\n    return Math.floor(gridElementHeight / this.context.cellSize);\r\n  }\r\n}\r\n","import { GridDirectionEnum } from '../../enums';\r\nimport { ɵBaseGridCellCountDeterminator as BaseDeterminator } from './base.determinator';\r\n\r\n/** @internal */\r\nexport class ɵVerticalGridCellCountDeterminator extends BaseDeterminator {\r\n  public readonly type = GridDirectionEnum.Vertical;\r\n\r\n  public calculateForAxisY(): number {\r\n    const gridElementHeight =\r\n      this.context.hostElement.clientHeight || this.context.hostElement.scrollHeight;\r\n    const availableCellsCount = Math.floor(gridElementHeight / this.context.cellSize);\r\n\r\n    if (this.context.isHeightResizing) {\r\n      const requiredCellsCount = Math.ceil(\r\n        this.context._gridItemComponents.length / this.calculateForAxisX()\r\n      );\r\n\r\n      return requiredCellsCount > availableCellsCount ? requiredCellsCount : availableCellsCount;\r\n    }\r\n\r\n    return availableCellsCount;\r\n  }\r\n}\r\n","import { GridComponent } from '../../components';\r\nimport { GridDirectionEnum } from '../../enums';\r\nimport { ɵBaseGridCellCountDeterminator as BaseStrategy } from './base.determinator';\r\nimport { ɵHorizontalGridCellCountDeterminator as HorizontalStrategy } from './horizontal.determinator';\r\nimport { ɵVerticalGridCellCountDeterminator as VerticalStrategy } from './vertical.determinator';\r\n\r\n/** @internal */\r\nexport abstract class ɵGridCellCountDeterminatorFactory {\r\n  public static create(direction: GridDirectionEnum, context: GridComponent): BaseStrategy {\r\n    switch (direction) {\r\n      case GridDirectionEnum.Horizontal:\r\n        return new HorizontalStrategy(context);\r\n      case GridDirectionEnum.Vertical:\r\n        return new VerticalStrategy(context);\r\n      default:\r\n        throw new Error(\r\n          'Incorrect type of directionEnum.' + \"Can't create CellCountDeterminator strategy!\"\r\n        );\r\n    }\r\n  }\r\n}\r\n","import { ɵGrid } from '../grid';\r\nimport { ɵCell } from '../grid-cell';\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\n/** @internal */\r\nexport abstract class ɵBaseDirectionStrategy<T = SafeAny> {\r\n  constructor(public readonly context: ɵGrid<T>) {}\r\n\r\n  public abstract next(cell: ɵCell<T>): ɵCell<T>;\r\n  public abstract nextWithoutData(cell: ɵCell<T>): ɵCell<T>;\r\n  public abstract nextWithData(cell: ɵCell<T>): ɵCell<T>;\r\n  public abstract previous(cell: ɵCell<T>): ɵCell<T>;\r\n  public abstract previousWithoutData(cell: ɵCell<T>): ɵCell<T>;\r\n  public abstract previousWithData(cell: ɵCell<T>): ɵCell<T>;\r\n}\r\n","import { SafeAny } from '@pkt/utils';\r\nimport { ɵCell } from '../grid-cell';\r\nimport { ɵBaseDirectionStrategy } from './base-direction.strategy';\r\n\r\n/** @internal */\r\nexport class ɵHorizontalDirectionStrategy<T> extends ɵBaseDirectionStrategy<T> {\r\n  public next(cell: ɵCell<T>): ɵCell<T> {\r\n    if (this.context.structure?.[cell.y]?.[cell.x + 1]) {\r\n      return this.context.structure[cell.y][cell.x + 1];\r\n    }\r\n\r\n    return this.context.structure?.[cell.y + 1]?.[0] || null;\r\n  }\r\n\r\n  public nextWithoutData(cell: ɵCell<T>): ɵCell<T> {\r\n    let actualCell: ɵCell<T> = cell.getNext();\r\n\r\n    while (actualCell) {\r\n      if (!actualCell.getData()) {\r\n        return actualCell;\r\n      }\r\n\r\n      actualCell = actualCell.getNext();\r\n    }\r\n\r\n    return null as SafeAny;\r\n  }\r\n\r\n  public nextWithData(cell: ɵCell<T>): ɵCell<T> {\r\n    let actualCell: ɵCell<T> = cell.getNext();\r\n\r\n    while (actualCell) {\r\n      if (actualCell.getData()) {\r\n        return actualCell;\r\n      }\r\n\r\n      actualCell = actualCell.getNext();\r\n    }\r\n\r\n    return null as SafeAny;\r\n  }\r\n\r\n  public previous(cell: ɵCell<T>): ɵCell<T> {\r\n    if (this.context.structure?.[cell.y]?.[cell.x - 1]) {\r\n      return this.context.structure[cell.y][cell.x - 1];\r\n    }\r\n\r\n    return this.context.structure?.[cell.y - 1]?.[this.context.xAxisCellsCount - 1] || null;\r\n  }\r\n\r\n  public previousWithoutData(cell: ɵCell<T>): ɵCell<T> {\r\n    let actualCell: ɵCell<T> = cell.getPrevious();\r\n\r\n    while (actualCell) {\r\n      if (!actualCell.getData()) {\r\n        return actualCell;\r\n      }\r\n\r\n      actualCell = actualCell.getPrevious();\r\n    }\r\n\r\n    return null as SafeAny;\r\n  }\r\n\r\n  public previousWithData(cell: ɵCell<T>): ɵCell<T> {\r\n    let actualCell: ɵCell<T> = cell.getPrevious();\r\n\r\n    while (actualCell) {\r\n      if (actualCell.getData()) {\r\n        return actualCell;\r\n      }\r\n\r\n      actualCell = actualCell.getPrevious();\r\n    }\r\n\r\n    return null as SafeAny;\r\n  }\r\n}\r\n","import { SafeAny } from '@pkt/utils';\r\nimport { ɵCell } from '../grid-cell';\r\nimport { ɵBaseDirectionStrategy } from './base-direction.strategy';\r\n\r\n/** @internal */\r\nexport class ɵVerticalDirectionStrategy<T> extends ɵBaseDirectionStrategy<T> {\r\n  public next(cell: ɵCell<T>): ɵCell<T> {\r\n    if (this.context.structure?.[cell.y + 1]?.[cell.x]) {\r\n      return this.context.structure[cell.y + 1][cell.x];\r\n    }\r\n\r\n    return this.context.structure?.[0]?.[cell.x + 1] || null;\r\n  }\r\n\r\n  public nextWithoutData(cell: ɵCell<T>): ɵCell<T> {\r\n    let actualCell: ɵCell<T> = cell.getNext();\r\n\r\n    while (actualCell) {\r\n      if (!actualCell.getData()) {\r\n        return actualCell;\r\n      }\r\n\r\n      actualCell = actualCell.getNext();\r\n    }\r\n\r\n    return null as SafeAny;\r\n  }\r\n\r\n  public nextWithData(cell: ɵCell<T>): ɵCell<T> {\r\n    let actualCell: ɵCell<T> = cell.getNext();\r\n\r\n    while (actualCell) {\r\n      if (actualCell.getData()) {\r\n        return actualCell;\r\n      }\r\n\r\n      actualCell = actualCell.getNext();\r\n    }\r\n\r\n    return null as SafeAny;\r\n  }\r\n\r\n  public previous(cell: ɵCell<T>): ɵCell<T> {\r\n    if (this.context.structure?.[cell.y - 1]?.[cell.x]) {\r\n      return this.context.structure[cell.y - 1][cell.x];\r\n    }\r\n\r\n    return this.context.structure?.[this.context.yAxisCellsCount - 1]?.[cell.x - 1] || null;\r\n  }\r\n\r\n  public previousWithoutData(cell: ɵCell<T>): ɵCell<T> {\r\n    let actualCell: ɵCell<T> = cell.getPrevious();\r\n\r\n    while (actualCell) {\r\n      if (!actualCell.getData()) {\r\n        return actualCell;\r\n      }\r\n\r\n      actualCell = actualCell.getPrevious();\r\n    }\r\n\r\n    return null as SafeAny;\r\n  }\r\n\r\n  public previousWithData(cell: ɵCell<T>): ɵCell<T> {\r\n    let actualCell: ɵCell<T> = cell.getPrevious();\r\n\r\n    while (actualCell) {\r\n      if (actualCell.getData()) {\r\n        return actualCell;\r\n      }\r\n\r\n      actualCell = actualCell.getPrevious();\r\n    }\r\n\r\n    return null as SafeAny;\r\n  }\r\n}\r\n","import { GridDirectionEnum } from '../../enums';\r\nimport { ɵGrid } from '../grid';\r\nimport { ɵBaseDirectionStrategy } from './base-direction.strategy';\r\nimport { ɵHorizontalDirectionStrategy } from './horizontal-direction.strategy';\r\nimport { ɵVerticalDirectionStrategy } from './vertical-direction.strategy';\r\n\r\n/** @internal */\r\nexport abstract class ɵGridDirectionStrategyFactory {\r\n  public static create<T>(type: GridDirectionEnum, context: ɵGrid<T>): ɵBaseDirectionStrategy<T> {\r\n    switch (type) {\r\n      case GridDirectionEnum.Horizontal:\r\n        return new ɵHorizontalDirectionStrategy(context);\r\n      case GridDirectionEnum.Vertical:\r\n        return new ɵVerticalDirectionStrategy(context);\r\n      default:\r\n        throw new Error('Incorrect type of directionEnum.' + \"Can't create direction strategy!\");\r\n    }\r\n  }\r\n}\r\n","import { SafeAny } from '@pkt/utils';\r\nimport { ɵCellParams } from '../interfaces';\r\nimport { ɵGrid } from './grid';\r\n\r\n/** @internal */\r\nexport class ɵCell<T = SafeAny> {\r\n  public readonly x!: number;\r\n  public readonly y!: number;\r\n\r\n  private data!: T | null;\r\n  private context!: ɵGrid<T>;\r\n\r\n  constructor(params: ɵCellParams<T>) {\r\n    Object.assign(this, params);\r\n  }\r\n\r\n  public getData(): T | null {\r\n    return this.data;\r\n  }\r\n\r\n  public setData(data: T): void {\r\n    this.data = data;\r\n  }\r\n\r\n  public clearData(): void {\r\n    this.data = null;\r\n  }\r\n\r\n  public getNext(): ɵCell<T> {\r\n    return this.context.directionStrategy.next(this);\r\n  }\r\n\r\n  public getNextWithoutData(): ɵCell<T> {\r\n    return this.context.directionStrategy.nextWithoutData(this);\r\n  }\r\n\r\n  public getNextWithData(): ɵCell<T> {\r\n    return this.context.directionStrategy.nextWithData(this);\r\n  }\r\n\r\n  public getPrevious(): ɵCell<T> {\r\n    return this.context.directionStrategy.previous(this);\r\n  }\r\n\r\n  public getPreviousWithoutData(): ɵCell<T> {\r\n    return this.context.directionStrategy.previousWithoutData(this);\r\n  }\r\n\r\n  public getPreviousWithData(): ɵCell<T> {\r\n    return this.context.directionStrategy.previousWithData(this);\r\n  }\r\n}\r\n","import { SafeAny, isNullOrUndefined } from '@pkt/utils';\r\nimport { GridDirectionEnum } from '../enums';\r\nimport { ɵGridParams } from '../interfaces';\r\nimport { ɵBaseDirectionStrategy, ɵGridDirectionStrategyFactory } from './direction';\r\nimport { ɵCell } from './grid-cell';\r\n\r\n/** @internal */\r\nexport class ɵGrid<T = SafeAny> implements ɵGridParams {\r\n  public xAxisCellsCount = 10;\r\n  public yAxisCellsCount = 10;\r\n  public readonly directionType: GridDirectionEnum = GridDirectionEnum.Horizontal;\r\n  public readonly directionStrategy: ɵBaseDirectionStrategy<T>;\r\n  public structure: ɵCell<T>[][] = [];\r\n\r\n  constructor(params: ɵGridParams) {\r\n    Object.assign(this, params);\r\n    this.validateCellsCount();\r\n\r\n    this.directionStrategy = ɵGridDirectionStrategyFactory.create(this.directionType, this);\r\n\r\n    this.reset();\r\n  }\r\n\r\n  public getCell(x: number, y: number): ɵCell<T> {\r\n    return this.structure[y][x];\r\n  }\r\n\r\n  public getFirstEmptyCell(): ɵCell<T> {\r\n    const firstCell = this.getCell(0, 0);\r\n\r\n    if (isNullOrUndefined(firstCell.getData())) {\r\n      return firstCell;\r\n    }\r\n\r\n    return this.directionStrategy.nextWithoutData(firstCell);\r\n  }\r\n\r\n  public reset(): void {\r\n    this.structure = [];\r\n\r\n    for (let y = 0; y < this.yAxisCellsCount; y++) {\r\n      this.structure[y] = [];\r\n\r\n      for (let x = 0; x < this.xAxisCellsCount; x++) {\r\n        this.structure[y][x] = new ɵCell({ x, y, data: null, context: this }) as SafeAny;\r\n      }\r\n    }\r\n  }\r\n\r\n  private validateCellsCount(): void {\r\n    if (this.xAxisCellsCount <= 0) {\r\n      this.xAxisCellsCount = 1;\r\n    }\r\n\r\n    if (this.yAxisCellsCount <= 0) {\r\n      this.yAxisCellsCount = 1;\r\n    }\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ContentChild,\r\n  ElementRef,\r\n  HostBinding,\r\n  Injector,\r\n  Input,\r\n  OnInit,\r\n  TemplateRef,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { BehaviorSubject, merge, Observable } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport {\r\n  Coordinate,\r\n  ɵCommonCssClassEnum,\r\n  ɵEventOutside,\r\n  ɵGlobalEvents,\r\n  ɵOsBaseComponent\r\n} from '../../../../core';\r\n\r\n/**\r\n * ## Templates\r\n * `#gridItemIcon`: Custom template which will be rendered instead of the default icon.\r\n *\r\n * @example\r\n * ```html\r\n * <o-grid-item>\r\n *     <ng-template #gridItemIcon>\r\n *         <!-- To get default behavior inside your template -->\r\n *         <picture\r\n *             class=\"o-icon\"\r\n *             [style.--o-icon-url]=\"YOUR_LINK_TO_THE_ICON\">\r\n *             <img [src]=\"YOUR_LINK_TO_THE_ICON\" />\r\n *         </picture>\r\n *         <!-- OR JUST WRITE YOUR CUSTOM CONTENT -->\r\n *     </ng-template>\r\n * </o-grid-item>\r\n * ```\r\n *\r\n * `#gridItemLabel`: Custom template which will be rendered instead of the default label text.\r\n *\r\n * @example\r\n * ```html\r\n * <o-grid-item>\r\n *     <ng-template #gridItemLabel>\r\n *         <!-- To get default behavior inside your template -->\r\n *         <o-label [innerText]=\"YOUR_LABEL_TEXT\"></o-label>\r\n *         <!-- OR JUST WRITE YOUR CUSTOM CONTENT -->\r\n *     </ng-template>\r\n * </o-grid-item>\r\n * ```\r\n **/\r\n@Component({\r\n  selector: 'o-grid-item',\r\n  templateUrl: './item.component.html',\r\n  host: {\r\n    class: 'o-grid-item'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class GridItemComponent extends ɵOsBaseComponent implements OnInit {\r\n  /** Is grid item selected? */\r\n  @Input()\r\n  @HostBinding(`class.${ɵCommonCssClassEnum.Selected}`)\r\n  public set isSelected(isSelected: boolean) {\r\n    this._isSelected$.next(isSelected);\r\n\r\n    if (isSelected) {\r\n      this.initClickOutsideObserver();\r\n    }\r\n  }\r\n\r\n  /** Is grid item selected? */\r\n  public get isSelected(): boolean {\r\n    return this._isSelected$.getValue();\r\n  }\r\n\r\n  /** URL to the icon of the grid item */\r\n  @Input()\r\n  public set iconUrl(value: string) {\r\n    this._iconUrl = value;\r\n    this._iconBackgroundCssUrl = `url(${value})`;\r\n  }\r\n\r\n  /** Label text of the grid item */\r\n  @Input()\r\n  public label!: string;\r\n\r\n  /**\r\n   * Static coordinate of the cell for the grid item.\r\n   *\r\n   * @example\r\n   * `x: 0; y: 0;` - First cell by X-Axis and Y-Axis;\r\n   * `x: 1; y: 2;` - Second cell by X-Axis and third cell by Y-Axis;\r\n   */\r\n  @Input()\r\n  public coordinate!: Coordinate;\r\n\r\n  /** @internal */\r\n  @ContentChild('gridItemIcon')\r\n  public readonly _gridItemIconTemplate!: TemplateRef<SafeAny>;\r\n\r\n  /** @internal */\r\n  @ContentChild('gridItemLabel')\r\n  public readonly _gridItemLabelTemplate!: TemplateRef<SafeAny>;\r\n\r\n  /** @internal */\r\n  public _iconUrl?: string;\r\n\r\n  /** @internal */\r\n  public _iconBackgroundCssUrl?: string;\r\n\r\n  private _isSelected$ = new BehaviorSubject<boolean>(false);\r\n\r\n  private get _viewDestroyedOrBecomeDeselected$(): Observable<boolean> {\r\n    return merge(this.viewDestroyed$, this._isSelected$.pipe(filter(isSelected => !isSelected)));\r\n  }\r\n\r\n  constructor(\r\n    injector: Injector,\r\n    /** @internal */\r\n    public readonly _hostRef: ElementRef<HTMLElement>,\r\n    private readonly globalEvents: ɵGlobalEvents\r\n  ) {\r\n    super(injector);\r\n  }\r\n\r\n  public ngOnInit(): void {\r\n    this.initMouseDownObserver();\r\n  }\r\n\r\n  private initMouseDownObserver(): void {\r\n    this.osMouseDown.pipe(takeUntil(this.viewDestroyed$)).subscribe(() => {\r\n      this.isSelected = true;\r\n\r\n      this.changeDetector.markForCheck();\r\n    });\r\n  }\r\n\r\n  private initClickOutsideObserver(): void {\r\n    this.globalEvents\r\n      .fromDocument('mousedown')\r\n      .pipe(\r\n        filter(event => ɵEventOutside.checkForElement(this.hostRef.nativeElement, event)),\r\n        takeUntil(this._viewDestroyedOrBecomeDeselected$)\r\n      )\r\n      .subscribe(() => {\r\n        this.isSelected = false;\r\n\r\n        this.changeDetector.markForCheck();\r\n      });\r\n  }\r\n}\r\n","<picture *ngIf=\"!_gridItemIconTemplate; else _gridItemIconTemplate\" class=\"o-element o-icon\"\r\n    [style.--o-icon-url]=\"_iconBackgroundCssUrl\">\r\n    <img [src]=\"_iconUrl\" />\r\n</picture>\r\n\r\n<span *ngIf=\"!_gridItemLabelTemplate; else _gridItemLabelTemplate\" class=\"o-element o-label\" [innerText]=\"label\">\r\n</span>","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ContentChildren,\r\n  ElementRef,\r\n  HostBinding,\r\n  Injector,\r\n  Input,\r\n  OnChanges,\r\n  QueryList,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { timer } from 'rxjs';\r\nimport { debounce, takeUntil } from 'rxjs/operators';\r\nimport { ɵElementResizingObserver, ɵErrorHelper, ɵOsBaseComponent } from '../../../../core';\r\nimport {\r\n  ɵBaseGridCellCountDeterminator,\r\n  ɵCell,\r\n  ɵGrid,\r\n  ɵGridCellCountDeterminatorFactory\r\n} from '../../classes';\r\nimport { GridDirectionEnum } from '../../enums';\r\nimport { GridItemComponent } from '../item';\r\n\r\n/**\r\n * ## Content Projection Slots\r\n *\r\n * - Component `o-grid-item`: Slot for `GridItemComponent`'s\r\n *\r\n * @example\r\n * ```html\r\n * <o-grid>\r\n *     <o-grid-item *ngFor=\"let item of items\"></o-grid-item>\r\n * </o-grid>\r\n * ```\r\n **/\r\n@Component({\r\n  selector: 'o-grid',\r\n  template: '<ng-content select=\"o-grid-item\"></ng-content>',\r\n  host: {\r\n    class: 'o-grid'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class GridComponent extends ɵOsBaseComponent implements OnChanges, AfterViewInit {\r\n  /** Direction of grid items */\r\n  @Input()\r\n  public direction: GridDirectionEnum = GridDirectionEnum.Horizontal;\r\n\r\n  /** Size of the grid cell in pixels inside which will be rendered each grid item */\r\n  @Input()\r\n  public set cellSize(value: number) {\r\n    this._cellSize = value;\r\n\r\n    this.validateCellSize();\r\n  }\r\n\r\n  /** Size of the grid cell in pixels inside which will be rendered each grid item */\r\n  public get cellSize(): number {\r\n    return this._cellSize;\r\n  }\r\n\r\n  /** Is grid element should increase to accommodate all items? */\r\n  @Input()\r\n  public isHeightResizing = false;\r\n\r\n  /** How long in milliseconds, the grid should wait after changes before recalculate and repaint all grid items? */\r\n  @Input()\r\n  public repaintDelayInMs = 200;\r\n\r\n  /** @internal */\r\n  @ContentChildren(GridItemComponent)\r\n  public set _gridItemComponents(elements: QueryList<GridItemComponent>) {\r\n    this.gridItemComponents = elements;\r\n\r\n    this.initRecalculations();\r\n  }\r\n\r\n  /** @internal */\r\n  public get _gridItemComponents(): QueryList<GridItemComponent> {\r\n    return this.gridItemComponents;\r\n  }\r\n\r\n  /** @internal */\r\n  @HostBinding('style.--o-cell-size')\r\n  public get _hostCellSizeClass(): string {\r\n    return `${this._cellSize}px`;\r\n  }\r\n\r\n  /** @internal */\r\n  public get hostElement(): HTMLElement {\r\n    return this.hostRef.nativeElement;\r\n  }\r\n\r\n  private get hostResizeDelayBeforeCalculation(): number {\r\n    return this.grid ? this.repaintDelayInMs : 4;\r\n  }\r\n\r\n  private grid!: ɵGrid<ElementRef<HTMLElement>>;\r\n  private cellCountDeterminator!: ɵBaseGridCellCountDeterminator;\r\n  private _cellSize = 72;\r\n  private _cellMinSize = 50;\r\n  private gridItemComponents!: QueryList<GridItemComponent>;\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n\r\n  public override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.initHostSizeChangeObserver();\r\n  }\r\n\r\n  public ngOnChanges(): void {\r\n    this.initRecalculations();\r\n  }\r\n\r\n  private update(): void {\r\n    this.initCellCountDeterminator();\r\n    this.initGrid();\r\n\r\n    if (this.grid) {\r\n      this.fillGridByItemsWithCoordinates();\r\n      this.fillGridByItemsWithoutCoordinates();\r\n    }\r\n  }\r\n\r\n  private fillGridByItemsWithCoordinates(): void {\r\n    this.gridItemComponents.forEach(gridItem => {\r\n      if (gridItem.coordinate) {\r\n        const { x, y } = gridItem.coordinate;\r\n        const targetCell = this.grid.getCell(x, y);\r\n\r\n        targetCell?.setData(gridItem._hostRef);\r\n        this.initCellStyles(targetCell);\r\n      }\r\n    });\r\n  }\r\n\r\n  private fillGridByItemsWithoutCoordinates(): void {\r\n    let actualCell = this.grid.getFirstEmptyCell();\r\n\r\n    for (const gridItem of this.gridItemComponents) {\r\n      if (!actualCell) {\r\n        this.initExcessGridItemStyles(gridItem);\r\n      } else if (!gridItem.coordinate) {\r\n        actualCell.setData(gridItem._hostRef);\r\n        this.initCellStyles(actualCell);\r\n\r\n        actualCell = actualCell.getNextWithoutData();\r\n      }\r\n    }\r\n  }\r\n\r\n  private initGrid(): void {\r\n    if (this.hostElement.offsetParent) {\r\n      this.grid = new ɵGrid({\r\n        xAxisCellsCount: this.cellCountDeterminator.calculateForAxisX(),\r\n        yAxisCellsCount: this.cellCountDeterminator.calculateForAxisY(),\r\n        directionType: this.direction\r\n      });\r\n    } else {\r\n      this.grid = null as SafeAny;\r\n    }\r\n  }\r\n\r\n  private initCellCountDeterminator(): void {\r\n    if (this.cellCountDeterminator?.type !== this.direction) {\r\n      this.cellCountDeterminator = ɵGridCellCountDeterminatorFactory.create(this.direction, this);\r\n    }\r\n  }\r\n\r\n  private initRecalculations(): void {\r\n    if (this.grid) {\r\n      this.update();\r\n    }\r\n  }\r\n\r\n  private initHostSizeChangeObserver(): void {\r\n    ɵElementResizingObserver(this.hostElement)\r\n      .pipe(\r\n        debounce(() => timer(this.hostResizeDelayBeforeCalculation)),\r\n        takeUntil(this.viewDestroyed$)\r\n      )\r\n      .subscribe(() => this.update());\r\n  }\r\n\r\n  private initExcessGridItemStyles(gridItem: GridItemComponent): void {\r\n    gridItem._hostRef.nativeElement.style.display = 'none';\r\n  }\r\n\r\n  private initCellStyles(cell: ɵCell<ElementRef<HTMLElement>>): void {\r\n    const cellStyle = cell?.getData()?.nativeElement?.style;\r\n\r\n    if (cellStyle) {\r\n      cellStyle.display = '';\r\n      cellStyle.width = `${this.cellSize}px`;\r\n      cellStyle.height = `${this.cellSize}px`;\r\n      cellStyle.left = `${cell.x * this.cellSize}px`;\r\n      cellStyle.top = `${cell.y * this.cellSize}px`;\r\n    }\r\n  }\r\n\r\n  private validateCellSize(): void {\r\n    if (this._cellSize < this._cellMinSize) {\r\n      ɵErrorHelper.error(this, `Min cellSize is ${this._cellMinSize}`);\r\n    }\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ɵSharedModule } from '../shared.module';\r\nimport { GridComponent, GridItemComponent } from './components';\r\n\r\n@NgModule({\r\n  declarations: [GridComponent, GridItemComponent],\r\n  imports: [ɵSharedModule],\r\n  exports: [GridComponent, GridItemComponent]\r\n})\r\nexport class GridModule {}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  EventEmitter,\r\n  HostBinding,\r\n  Injector,\r\n  Input,\r\n  OnInit,\r\n  Output,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { ɵCommonCssClassEnum, ɵOsBaseComponent } from '../../../../core';\r\n\r\n@Component({\r\n  selector: 'o-list-item',\r\n  template: '<ng-content></ng-content>',\r\n  host: {\r\n    class: 'o-list-item'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ListItemComponent<T = SafeAny> extends ɵOsBaseComponent implements OnInit {\r\n  /** 列表项的数据 */\r\n  @Input()\r\n  public data?: T;\r\n\r\n  /** 是否选择了列表项? */\r\n  @Input()\r\n  @HostBinding(`class.${ɵCommonCssClassEnum.Selected}`)\r\n  public isSelected = false;\r\n\r\n  /** 列表项是否已禁用? */\r\n  @HostBinding(`class.${ɵCommonCssClassEnum.Disabled}`)\r\n  @Input()\r\n  public isDisabled = false;\r\n\r\n  /** 当列表项被选中时触发 */\r\n  @Output()\r\n  public osSelected = new EventEmitter<T>();\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n\r\n  public ngOnInit(): void {\r\n    this.initClickObserver();\r\n  }\r\n\r\n  private initClickObserver(): void {\r\n    this.osClick\r\n      .pipe(\r\n        filter(() => !this.isDisabled),\r\n        takeUntil(this.viewDestroyed$)\r\n      )\r\n      .subscribe(() => this.osSelected.emit(this.data));\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  HostBinding,\r\n  Injector,\r\n  Input,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ɵOsBaseComponent } from '../../../../core';\r\n\r\n@Component({\r\n  selector: 'o-scroll-view',\r\n  template: '<ng-content></ng-content>',\r\n  host: {\r\n    class: 'o-scroll-view'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ScrollViewComponent extends ɵOsBaseComponent {\r\n  /** Is vertical scroll enabled? */\r\n  @Input()\r\n  public isVerticalScrollEnabled = true;\r\n\r\n  /** Is horizontal scroll enabled? */\r\n  @Input()\r\n  public isHorizontalScrollEnabled = false;\r\n\r\n  /** Does the vertical scroll hide when it is not needed? */\r\n  @Input()\r\n  public isVerticalScrollHiding = false;\r\n\r\n  /** Does the horizontal scroll hide when it is not needed? */\r\n  @Input()\r\n  public isHorizontalScrollHiding = false;\r\n\r\n  /** @internal */\r\n  @HostBinding('style.overflow-x')\r\n  public get _hostOverflowX(): string {\r\n    if (!this.isHorizontalScrollHiding) {\r\n      return this.isHorizontalScrollEnabled ? 'auto' : 'hidden';\r\n    }\r\n\r\n    return this.isHorizontalScrollEnabled ? 'scroll' : 'hidden';\r\n  }\r\n\r\n  /** @internal */\r\n  @HostBinding('style.overflow-y')\r\n  public get _hostOverflowY(): string {\r\n    if (!this.isVerticalScrollHiding) {\r\n      return this.isVerticalScrollEnabled ? 'auto' : 'hidden';\r\n    }\r\n\r\n    return this.isVerticalScrollEnabled ? 'scroll' : 'hidden';\r\n  }\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n\r\n  /** Scrolls to given coordinates. Recommend to use this method instead of directly via HTML element */\r\n  public scrollTo(left: number, top: number): void {\r\n    this.hostRef.nativeElement.scrollTo({ left, top });\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  Injector,\r\n  Input,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ɵOsBaseComponent } from '../../../../core';\r\n\r\n@Component({\r\n  selector: 'o-list',\r\n  templateUrl: './list.component.html',\r\n  host: {\r\n    class: 'o-list'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ListComponent extends ɵOsBaseComponent {\r\n  /** Stylelist for scroll view component of the list */\r\n  @Input()\r\n  public scrollViewStyle?: object;\r\n\r\n  /** Classlist for scroll view component of the list */\r\n  @Input()\r\n  public scrollViewStyleClass?: string;\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n}\r\n","<o-scroll-view [style]=\"scrollViewStyle\" [styleClass]=\"scrollViewStyleClass\">\r\n    <ng-content></ng-content>\r\n</o-scroll-view>","import { NgModule } from '@angular/core';\r\nimport { ɵSharedModule } from '../shared.module';\r\nimport { ScrollViewComponent } from './components';\r\n\r\n@NgModule({\r\n  declarations: [ScrollViewComponent],\r\n  imports: [ɵSharedModule],\r\n  exports: [ScrollViewComponent]\r\n})\r\nexport class ScrollViewModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { ScrollViewModule } from '../scroll-view';\r\nimport { ɵSharedModule } from '../shared.module';\r\nimport { ListComponent, ListItemComponent } from './components';\r\n\r\n@NgModule({\r\n  declarations: [ListComponent, ListItemComponent],\r\n  imports: [ɵSharedModule, ScrollViewModule],\r\n  exports: [ListComponent, ListItemComponent]\r\n})\r\nexport class ListModule {}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { ThemeRgbColor } from '../interfaces';\r\nimport { ThemeColorType } from '../types';\r\n\r\n/** Allows to apply accent colors **/\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AccentColorService {\r\n  private readonly documentElement: HTMLElement;\r\n\r\n  constructor(@Inject(DOCUMENT) { documentElement }: Document) {\r\n    this.documentElement = documentElement;\r\n  }\r\n\r\n  /** Gets color value from CSS variable */\r\n  public get(colorType: ThemeColorType): ThemeRgbColor | null {\r\n    const cssColor = this.getFromCssVariable(colorType);\r\n\r\n    if (cssColor) {\r\n      return this.parseCssColor(cssColor);\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  /** Sets color value into CSS variable. All components immediately change their color */\r\n  public apply(colorType: ThemeColorType, color: ThemeRgbColor): void {\r\n    const { r, g, b } = color;\r\n    const cssVariableName = this.getColorTypeCssVariableName(colorType);\r\n\r\n    this.documentElement.style.setProperty(cssVariableName, `${r}, ${g}, ${b}`);\r\n  }\r\n\r\n  private getFromCssVariable(colorType: ThemeColorType): string {\r\n    const cssVariableName = this.getColorTypeCssVariableName(colorType);\r\n\r\n    return this.documentElement.style.getPropertyValue(cssVariableName);\r\n  }\r\n\r\n  private getColorTypeCssVariableName(colorType: ThemeColorType): string {\r\n    return `--o-${colorType}-color`;\r\n  }\r\n\r\n  private parseCssColor(cssColor: string): ThemeRgbColor {\r\n    const [r, g, b] = cssColor.split(',').map(colorPart => +colorPart.replace(/^\\D+/g, ''));\r\n\r\n    return { r, g, b };\r\n  }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\n/** Allows to apply themes **/\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ThemeService<T = SafeAny> {\r\n  /** Applied theme */\r\n  public get applied$(): Observable<T> {\r\n    return this._applied$.asObservable();\r\n  }\r\n\r\n  /** Applied theme */\r\n  public get applied(): T {\r\n    return this._applied$.getValue();\r\n  }\r\n\r\n  private themeLinkElement!: HTMLLinkElement;\r\n  private _applied$ = new BehaviorSubject<SafeAny>(null);\r\n\r\n  constructor(@Inject(DOCUMENT) private readonly document: Document) {\r\n    this.initThemeLinkElement();\r\n  }\r\n\r\n  /** Applies theme */\r\n  public apply(themeName: T): void {\r\n    this.themeLinkElement.href = `${themeName}.css`;\r\n\r\n    this.document.body.classList.remove(this.applied as SafeAny);\r\n    this.document.body.classList.add(themeName as SafeAny);\r\n    this._applied$.next(themeName);\r\n  }\r\n\r\n  private initThemeLinkElement(): void {\r\n    const headElement = this.document.getElementsByTagName('head')[0];\r\n    this.themeLinkElement = this.document.createElement('link');\r\n    this.themeLinkElement.rel = 'stylesheet';\r\n\r\n    headElement.appendChild(this.themeLinkElement);\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectorRef,\r\n  Directive,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  TemplateRef,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ThemeService } from '../services';\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\n/** Allows to display HTML elements for specific themes */\r\n@Directive({\r\n  selector: '[oAvailableFor]'\r\n})\r\nexport class AvailableForOsDirective<T = SafeAny> implements OnInit, OnDestroy {\r\n  /** An array of theme names for which will be displayed the wrapped HTML element */\r\n  @Input('oAvailableFor')\r\n  public themes?: T[];\r\n\r\n  private isViewCreated = false;\r\n  private themeSubscription!: Subscription;\r\n\r\n  constructor(\r\n    private readonly templateRef: TemplateRef<SafeAny>,\r\n    private readonly viewContainerRef: ViewContainerRef,\r\n    private readonly themeService: ThemeService<T>,\r\n    private readonly changeDetector: ChangeDetectorRef\r\n  ) {}\r\n\r\n  public ngOnInit(): void {\r\n    this.themeSubscription = this.themeService.applied$.subscribe(data =>\r\n      this.processElement(data)\r\n    );\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n    this.themeSubscription.unsubscribe();\r\n  }\r\n\r\n  private processElement(appliedTheme: T): void {\r\n    const isAvailable = !!this.themes?.includes(appliedTheme);\r\n\r\n    if (this.isViewCreated && !isAvailable) {\r\n      this.viewContainerRef.clear();\r\n    }\r\n\r\n    if (!this.isViewCreated && isAvailable) {\r\n      this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n    }\r\n\r\n    this.isViewCreated = isAvailable;\r\n\r\n    this.changeDetector.markForCheck();\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectorRef,\r\n  Directive,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  TemplateRef,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ThemeService } from '../services';\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\n/** Allows to hide HTML elements for specific themes */\r\n@Directive({\r\n  selector: '[oForbiddenFor]'\r\n})\r\nexport class ForbiddenForOsDirective<T = SafeAny> implements OnInit, OnDestroy {\r\n  /** An array of theme names for which will be hidden the wrapped HTML element */\r\n  @Input('oForbiddenFor')\r\n  public themes?: T[];\r\n\r\n  private isViewCreated = false;\r\n  private themeSubscription!: Subscription;\r\n\r\n  constructor(\r\n    private readonly templateRef: TemplateRef<SafeAny>,\r\n    private readonly viewContainerRef: ViewContainerRef,\r\n    private readonly themeService: ThemeService<T>,\r\n    private readonly changeDetector: ChangeDetectorRef\r\n  ) {}\r\n\r\n  public ngOnInit(): void {\r\n    this.themeSubscription = this.themeService.applied$.subscribe(data =>\r\n      this.processElement(data)\r\n    );\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n    this.themeSubscription.unsubscribe();\r\n  }\r\n\r\n  private processElement(appliedTheme: T): void {\r\n    const isForbidden = !!this.themes?.includes(appliedTheme);\r\n\r\n    if (this.isViewCreated && isForbidden) {\r\n      this.viewContainerRef.clear();\r\n    }\r\n\r\n    if (!this.isViewCreated && !isForbidden) {\r\n      this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n    }\r\n\r\n    this.isViewCreated = !isForbidden;\r\n\r\n    this.changeDetector.markForCheck();\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ɵSharedModule } from '../shared.module';\r\nimport { AvailableForOsDirective, ForbiddenForOsDirective } from './directives';\r\n\r\n@NgModule({\r\n  declarations: [AvailableForOsDirective, ForbiddenForOsDirective],\r\n  imports: [ɵSharedModule],\r\n  exports: [AvailableForOsDirective, ForbiddenForOsDirective]\r\n})\r\nexport class ThemeModule {}\r\n","import { ɵDynamicStateEnum } from '../enums';\r\n\r\n/** @internal */\r\nexport class ɵDynamicStateManager {\r\n  public get state(): ɵDynamicStateEnum | null {\r\n    return this._state;\r\n  }\r\n\r\n  private _state!: ɵDynamicStateEnum | null;\r\n\r\n  private afterStartCallback?: () => void;\r\n  private afterEndCallback?: () => void;\r\n  private currentStateTimeoutId!: number;\r\n  private readonly cssAnimationClassDuration: number = 500;\r\n\r\n  public is(state: ɵDynamicStateEnum): boolean {\r\n    return state === this._state;\r\n  }\r\n\r\n  public apply(state: ɵDynamicStateEnum): void {\r\n    if (this.state === state) {\r\n      return;\r\n    }\r\n\r\n    clearTimeout(this.currentStateTimeoutId);\r\n\r\n    this._state = state;\r\n\r\n    this.currentStateTimeoutId = window.setTimeout(() => {\r\n      this._state = null;\r\n\r\n      this.afterEndCallback?.();\r\n    }, this.cssAnimationClassDuration);\r\n\r\n    this.afterStartCallback?.();\r\n  }\r\n\r\n  public registerAfterStartCallback(callback: () => void): void {\r\n    this.afterStartCallback = callback;\r\n  }\r\n\r\n  public registerAfterEndCallback(callback: () => void): void {\r\n    this.afterEndCallback = callback;\r\n  }\r\n}\r\n","import { Type } from '@angular/core';\r\nimport { DraggerConfig } from '../../drag-and-drop';\r\nimport { ResizerConfig, ResizerEnum } from '../../resizer';\r\nimport { DynamicWindowConfig, DynamicWindowFullscreenOffset } from '../interfaces';\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\n/** @internal */\r\nexport class ɵDynamicWindowConfigModel<D = SafeAny, T = SafeAny> implements DynamicWindowConfig {\r\n  public title?: string;\r\n  public data?: D;\r\n  public type?: T;\r\n  public titleBarCustomContent?: Type<SafeAny>;\r\n  public width?: number;\r\n  public height?: number;\r\n  public minWidth?: number;\r\n  public minHeight?: number;\r\n  public maxWidth?: number;\r\n  public maxHeight?: number;\r\n  public allowedResizers?: ResizerEnum[];\r\n  public positionX?: number;\r\n  public positionY?: number;\r\n  public iconUrl?: string;\r\n  public fullscreenOffset?: DynamicWindowFullscreenOffset;\r\n  public isFullscreenByDefault?: boolean;\r\n  public isHiddenByDefault?: boolean;\r\n  public isAllowHide?: boolean;\r\n  public isAllowFullscreen?: boolean;\r\n  public isAllowClose?: boolean;\r\n  public isAlwaysOnTop?: boolean;\r\n  public isToggleFullscreenByDblClickOnTitleBar?: boolean;\r\n  public isExitFullscreenByDragTitleBar?: boolean;\r\n  public isTitleBarVisible?: boolean;\r\n  public style?: object;\r\n  public styleClass?: string | string[] | object;\r\n  public titleBarStyle?: object;\r\n  public titleBarStyleClass?: string | string[] | object;\r\n  public scrollViewStyle?: object;\r\n  public scrollViewStyleClass?: string | string[] | object;\r\n  public draggerConfig?: DraggerConfig = {};\r\n  public resizerConfig?: ResizerConfig = {};\r\n\r\n  constructor(params: DynamicWindowConfig = {}) {\r\n    Object.assign(this, params);\r\n    this.initWidth(params);\r\n    this.initHeight(params);\r\n  }\r\n\r\n  private initWidth(params: DynamicWindowConfig): void {\r\n    if (params.minWidth && !params.width) {\r\n      this.width = params.minWidth;\r\n    }\r\n  }\r\n\r\n  private initHeight(params: DynamicWindowConfig): void {\r\n    if (params.minHeight && !params.height) {\r\n      this.height = params.minHeight;\r\n    }\r\n  }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { DynamicWindowRef } from '../interfaces';\r\n\r\n/** An injection token that can be used to get window reference inside your component */\r\nexport const DYNAMIC_WINDOW_REF: InjectionToken<DynamicWindowRef> = new InjectionToken(\r\n  'DYNAMIC_WINDOW_REF'\r\n);\r\n","import { DynamicWindowConfig } from '../interfaces';\r\n\r\n/** @internal */\r\nexport function ɵMergeConfigs(\r\n  updated: DynamicWindowConfig,\r\n  shared: DynamicWindowConfig\r\n): DynamicWindowConfig {\r\n  const result: DynamicWindowConfig = {};\r\n\r\n  for (const [key, value] of Object.entries({ ...updated, ...shared })) {\r\n    if (Array.isArray(value)) {\r\n      result[key] = updated[key] ?? shared[key];\r\n    } else if (value === Object(value)) {\r\n      result[key] = { ...shared?.[key], ...updated?.[key] };\r\n    } else {\r\n      result[key] = updated[key] ?? shared[key];\r\n    }\r\n  }\r\n\r\n  return result;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { ɵRESIZERS_ARRAY } from '../../resizer';\r\nimport { ɵDynamicWindowConfigModel } from '../classes/dynamic-window-config';\r\nimport { ɵMergeConfigs } from '../helpers';\r\nimport { DynamicWindowConfig } from '../interfaces';\r\n\r\n/** Allows manipulation with shared config for all windows */\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class DynamicWindowSharedConfigService {\r\n  /** Contains shared config */\r\n  public get data$(): Observable<DynamicWindowConfig> {\r\n    return this._data$.asObservable();\r\n  }\r\n\r\n  /** Contains shared config */\r\n  public get data(): DynamicWindowConfig {\r\n    return this._data$.getValue();\r\n  }\r\n\r\n  private readonly _data$ = new BehaviorSubject<DynamicWindowConfig>(\r\n    new ɵDynamicWindowConfigModel({\r\n      title: 'OS dynamic window',\r\n      minWidth: 275,\r\n      minHeight: 175,\r\n      maxWidth: Infinity,\r\n      maxHeight: Infinity,\r\n      fullscreenOffset: {\r\n        top: '0px',\r\n        bottom: '0px',\r\n        left: '0px',\r\n        right: '0px'\r\n      },\r\n      hidesInto: {\r\n        x: '50%',\r\n        y: '100%'\r\n      },\r\n      allowedResizers: [...ɵRESIZERS_ARRAY],\r\n      isFullscreenByDefault: false,\r\n      isHiddenByDefault: false,\r\n      isAllowHide: true,\r\n      isAllowFullscreen: true,\r\n      isAllowClose: true,\r\n      isAlwaysOnTop: false,\r\n      isToggleFullscreenByDblClickOnTitleBar: true,\r\n      isExitFullscreenByDragTitleBar: true,\r\n      isTitleBarVisible: true,\r\n      style: {},\r\n      styleClass: '',\r\n      titleBarStyle: {},\r\n      titleBarStyleClass: '',\r\n      scrollViewStyle: {},\r\n      scrollViewStyleClass: ''\r\n    })\r\n  );\r\n\r\n  /** Overrides some part of config on the new one */\r\n  public update(config: DynamicWindowConfig): void {\r\n    this._data$.next(ɵMergeConfigs(config, this.data));\r\n  }\r\n\r\n  /** Cleans the shared config completely */\r\n  public clear(): void {\r\n    this._data$.next({});\r\n  }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DynamicWindowConfig } from '../interfaces';\r\n\r\n/** An injection token that can be used to get shared config of dynamic windows */\r\nexport const DYNAMIC_WINDOW_SHARED_CONFIG: InjectionToken<Observable<DynamicWindowConfig>> =\r\n  new InjectionToken('DYNAMIC_WINDOW_SHARED_CONFIG');\r\n","import { Provider } from '@angular/core';\r\nimport { DynamicWindowSharedConfigService } from '../services/shared-config.service';\r\nimport { DYNAMIC_WINDOW_SHARED_CONFIG } from './shared-dynamic-window-config.token';\r\n\r\n/** @internal */\r\nexport const ɵDYNAMIC_WINDOW_SHARED_CONFIG_PROVIDER: Provider = {\r\n  provide: DYNAMIC_WINDOW_SHARED_CONFIG,\r\n  useFactory: (service: DynamicWindowSharedConfigService) => service.data$,\r\n  deps: [DynamicWindowSharedConfigService]\r\n};\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * An injection token that can be used to understand is your component opened inside the dynamic window.\r\n * Might be useful if your component is in use both outside and inside of the dynamic window\r\n * and you want to set up specific logic depending on this information\r\n **/\r\nexport const IS_DYNAMIC_WINDOW_CONTEXT: InjectionToken<boolean> = new InjectionToken(\r\n  'IS_DYNAMIC_WINDOW_CONTEXT',\r\n  { providedIn: 'root', factory: () => false }\r\n);\r\n","import { InjectFlags, InjectionToken, Injector, Type } from '@angular/core';\r\nimport { DYNAMIC_WINDOW_REF, IS_DYNAMIC_WINDOW_CONTEXT } from '../data';\r\nimport { ɵDynamicWindowDiParams } from '../interfaces';\r\nimport { ɵDynamicWindowRefModel } from './dynamic-window-ref';\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\n/**\r\n * @internal\r\n * Defines data in DI tree on dynamic window level.\r\n * Allows injecting these data using InjectionTokens\r\n * in the component rendered inside the dynamic window\r\n **/\r\nexport class ɵDynamicWindowInjector implements Injector {\r\n  private readonly parentInjector: Injector;\r\n  private readonly windowRef: ɵDynamicWindowRefModel;\r\n  private additionalTokens!: WeakMap<object, unknown>;\r\n\r\n  constructor({ injector, windowRef }: ɵDynamicWindowDiParams) {\r\n    this.parentInjector = injector;\r\n    this.windowRef = windowRef;\r\n\r\n    this.initAdditionalTokens();\r\n  }\r\n\r\n  public get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n  public get(token: SafeAny, notFoundValue?: SafeAny): SafeAny {\r\n    const value = this.additionalTokens.get(token);\r\n\r\n    if (value) {\r\n      return value;\r\n    }\r\n\r\n    return this.parentInjector.get<SafeAny>(token, notFoundValue);\r\n  }\r\n\r\n  private initAdditionalTokens(): void {\r\n    this.additionalTokens = new WeakMap();\r\n\r\n    this.additionalTokens.set(DYNAMIC_WINDOW_REF, this.windowRef);\r\n    this.additionalTokens.set(IS_DYNAMIC_WINDOW_CONTEXT, true);\r\n  }\r\n}\r\n","import { ComponentRef } from '@angular/core';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { ɵIdGenerator } from '../../../core';\r\nimport { DraggableDirective } from '../../drag-and-drop';\r\nimport { ResizableDirective } from '../../resizer';\r\nimport { ɵDynamicWindowComponent } from '../components';\r\nimport { DynamicWindowConfig, DynamicWindowRef } from '../interfaces';\r\n\r\n/** @internal */\r\nexport class ɵDynamicWindowRefModel implements DynamicWindowRef {\r\n  public get isHidden$(): Observable<boolean> {\r\n    return this._isHidden$.asObservable();\r\n  }\r\n\r\n  public get isHidden(): boolean {\r\n    return this._isHidden$.getValue();\r\n  }\r\n\r\n  public get beforeHidden$(): Observable<unknown> {\r\n    return this._beforeHidden$.asObservable();\r\n  }\r\n\r\n  public get isFullscreen$(): Observable<boolean> {\r\n    return this._isFullscreen$.asObservable();\r\n  }\r\n\r\n  public get isFullscreen(): boolean {\r\n    return this._isFullscreen$.getValue();\r\n  }\r\n\r\n  public get isActive$(): Observable<boolean> {\r\n    return this._isActive$.asObservable();\r\n  }\r\n\r\n  public get isActive(): boolean {\r\n    return this._isActive$.getValue();\r\n  }\r\n\r\n  public get orderIndex$(): Observable<number> {\r\n    return this._orderIndex$.asObservable();\r\n  }\r\n\r\n  public get afterClosed$(): Observable<SafeAny> {\r\n    return this._afterClosed$.asObservable();\r\n  }\r\n\r\n  public get config$(): Observable<DynamicWindowConfig> {\r\n    return this._config$.asObservable();\r\n  }\r\n\r\n  public get config(): DynamicWindowConfig {\r\n    return this._config$.getValue();\r\n  }\r\n\r\n  public get id(): string {\r\n    return this._id;\r\n  }\r\n\r\n  public get windowElement(): HTMLElement {\r\n    return this._windowElement;\r\n  }\r\n\r\n  public get componentRef(): ComponentRef<ɵDynamicWindowComponent> {\r\n    return this._componentRef;\r\n  }\r\n\r\n  public get draggableDirective(): DraggableDirective {\r\n    return this._draggableDirective;\r\n  }\r\n\r\n  public get resizableDirective(): ResizableDirective {\r\n    return this._resizableDirective;\r\n  }\r\n\r\n  private readonly _config$ = new BehaviorSubject<DynamicWindowConfig>({});\r\n  private readonly _isHidden$ = new BehaviorSubject<boolean>(false);\r\n  private readonly _isFullscreen$ = new BehaviorSubject<boolean>(false);\r\n  private readonly _isActive$ = new BehaviorSubject<boolean>(true);\r\n  private readonly _orderIndex$ = new BehaviorSubject<number>(0);\r\n  private readonly _beforeHidden$ = new Subject<unknown>();\r\n  private readonly _afterClosed$ = new Subject<unknown>();\r\n\r\n  private readonly _id = ɵIdGenerator.generate();\r\n  private _windowElement!: HTMLElement;\r\n  private _draggableDirective!: DraggableDirective;\r\n  private _resizableDirective!: ResizableDirective;\r\n  private _componentRef!: ComponentRef<ɵDynamicWindowComponent>;\r\n\r\n  public init(config: DynamicWindowConfig): void {\r\n    this.updateConfig(config);\r\n    this.setIsHiddenState(config.isHiddenByDefault as SafeAny);\r\n    this.setIsFullscreenState(config.isFullscreenByDefault as SafeAny);\r\n  }\r\n\r\n  public updateConfig(config: DynamicWindowConfig): void {\r\n    this._config$.next({ ...this.config, ...config });\r\n  }\r\n\r\n  public hide(): void {\r\n    if (!this.isHidden) {\r\n      this._beforeHidden$.next(null);\r\n      this._isHidden$.next(true);\r\n      this.makeInactive();\r\n    }\r\n  }\r\n\r\n  public show(): void {\r\n    if (this.isHidden) {\r\n      this._isHidden$.next(false);\r\n      this.makeActive();\r\n    }\r\n  }\r\n\r\n  public toggleVisibility(): void {\r\n    this.isHidden ? this.show() : this.hide();\r\n  }\r\n\r\n  public setIsHiddenState(state: boolean): void {\r\n    state ? this.hide() : this.show();\r\n  }\r\n\r\n  public goFullscreen(): void {\r\n    !this.isFullscreen && this._isFullscreen$.next(true);\r\n  }\r\n\r\n  public goWindowed(): void {\r\n    this.isFullscreen && this._isFullscreen$.next(false);\r\n  }\r\n\r\n  public toggleFullscreen(): void {\r\n    this.isFullscreen ? this.goWindowed() : this.goFullscreen();\r\n  }\r\n\r\n  public setIsFullscreenState(state: boolean): void {\r\n    state ? this.goFullscreen() : this.goWindowed();\r\n  }\r\n\r\n  public close<T = SafeAny>(result?: T): void {\r\n    this._afterClosed$.next(result);\r\n  }\r\n\r\n  public makeActive(): void {\r\n    !this.isActive && this._isActive$.next(true);\r\n  }\r\n\r\n  public makeInactive(): void {\r\n    this.isActive && this._isActive$.next(false);\r\n  }\r\n\r\n  public setOrderIndex(orderIndex: number): void {\r\n    this._orderIndex$.next(orderIndex);\r\n  }\r\n\r\n  public setWindowElement(element: HTMLElement): void {\r\n    if (this._windowElement) {\r\n      throw new Error(`Can't change windowElement`);\r\n    }\r\n\r\n    this._windowElement = element;\r\n  }\r\n\r\n  public setComponentRef(componentRef: ComponentRef<ɵDynamicWindowComponent>): void {\r\n    if (this._componentRef) {\r\n      throw new Error(`Can't change componentRef`);\r\n    }\r\n\r\n    this._componentRef = componentRef;\r\n  }\r\n\r\n  public setDraggableDirective(directive: DraggableDirective): void {\r\n    if (this._draggableDirective) {\r\n      throw new Error(`Can't change DraggableDirective`);\r\n    }\r\n\r\n    this._draggableDirective = directive;\r\n  }\r\n\r\n  public setResizableDirective(directive: ResizableDirective): void {\r\n    if (this._resizableDirective) {\r\n      throw new Error(`Can't change ResizableDirective`);\r\n    }\r\n\r\n    this._resizableDirective = directive;\r\n  }\r\n\r\n  public destroy(): void {\r\n    this._config$.complete();\r\n    this._isHidden$.complete();\r\n    this._isFullscreen$.complete();\r\n    this._isActive$.complete();\r\n    this._orderIndex$.complete();\r\n    this._beforeHidden$.complete();\r\n    this._afterClosed$.complete();\r\n  }\r\n}\r\n","/** @internal */\r\nexport enum ɵDynamicStateEnum {\r\n  /** 开始 */\r\n  Opening = 1,\r\n  /** 隐藏 */\r\n  Hiding,\r\n  /** 显示 */\r\n  Showing,\r\n  /** 进入全屏 */\r\n  EnteringFullscreen,\r\n  /** 进入窗口 */\r\n  EnteringWindowed,\r\n  /** 结束 */\r\n  Closing\r\n}\r\n","/** @internal */\r\nexport enum ɵDynamicWindowCssClassEnum {\r\n  Opening = 'o-opening',\r\n  Hiding = 'o-hiding',\r\n  Showing = 'o-showing',\r\n  Closing = 'o-closing',\r\n  EnteringFullscreen = 'o-entering-fullscreen',\r\n  EnteringWindowed = 'o-entering-windowed',\r\n  Hidden = 'o-hidden',\r\n  Fullscreen = 'o-fullscreen',\r\n  Windowed = 'o-windowed'\r\n}\r\n","/** @internal */\r\nexport enum ɵDynamicWindowCssVariableEnum {\r\n  Width = '--o-width',\r\n  Height = '--o-height',\r\n  RealWidth = '--o-real-width',\r\n  RealHeight = '--o-real-height',\r\n  Top = '--o-top',\r\n  Left = '--o-left',\r\n  CoordinateForHidingX = '--o-coordinate-x-for-hiding',\r\n  CoordinateForHidingY = '--o-coordinate-y-for-hiding',\r\n  FullscreenOffsetTop = '--o-fullscreen-offset-top',\r\n  FullscreenOffsetRight = '--o-fullscreen-offset-right',\r\n  FullscreenOffsetBottom = '--o-fullscreen-offset-bottom',\r\n  FullscreenOffsetLeft = '--o-fullscreen-offset-left'\r\n}\r\n","import { Component, ComponentRef, Input, OnDestroy, Type } from '@angular/core';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { merge, Observable } from 'rxjs';\r\nimport { LoadChildren } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport {\r\n  ɵCacheableReturnInstance,\r\n  ɵCssClasslistToObjectHelper,\r\n  ɵOsBaseViewComponent,\r\n  ɵWhenViewInit\r\n} from '../../../../core';\r\nimport { DragStrategyByAxisProperties } from '../../../drag-and-drop';\r\nimport { ɵDynamicStateManager, ɵDynamicWindowRefModel } from '../../classes';\r\nimport {\r\n  ɵDynamicStateEnum,\r\n  ɵDynamicWindowCssClassEnum as CssClass,\r\n  ɵDynamicWindowCssVariableEnum as CssVariable\r\n} from '../../enums';\r\nimport { DynamicWindowConfig } from '../../interfaces';\r\n\r\n/** @internal */\r\n@Component({\r\n  template: ''\r\n})\r\nexport abstract class ɵBaseDynamicWindowComponent\r\n  extends ɵOsBaseViewComponent\r\n  implements OnDestroy\r\n{\r\n  /** 传入子组件 */\r\n  @Input()\r\n  public childComponentType?: Type<SafeAny>;\r\n  /** 传入模块 */\r\n  @Input()\r\n  public childlazyModuleType?: LoadChildren;\r\n\r\n  @Input()\r\n  public windowRef!: ɵDynamicWindowRefModel;\r\n\r\n  public get isOpening(): boolean {\r\n    return this.dynamicStateManager.is(ɵDynamicStateEnum.Opening);\r\n  }\r\n\r\n  public get isHiding(): boolean {\r\n    return this.dynamicStateManager.is(ɵDynamicStateEnum.Hiding);\r\n  }\r\n\r\n  public get isShowing(): boolean {\r\n    return this.dynamicStateManager.is(ɵDynamicStateEnum.Showing);\r\n  }\r\n\r\n  public get isClosing(): boolean {\r\n    return this.dynamicStateManager.is(ɵDynamicStateEnum.Closing);\r\n  }\r\n\r\n  public get isEnteringFullscreen(): boolean {\r\n    return this.dynamicStateManager.is(ɵDynamicStateEnum.EnteringFullscreen);\r\n  }\r\n\r\n  public get isEnteringWindowed(): boolean {\r\n    return this.dynamicStateManager.is(ɵDynamicStateEnum.EnteringWindowed);\r\n  }\r\n\r\n  public get isHidden(): boolean {\r\n    return this.windowRef.isHidden && !this.isHiding;\r\n  }\r\n\r\n  public get isFullscreen(): boolean {\r\n    return this.windowRef.isFullscreen && !this.isEnteringFullscreen;\r\n  }\r\n\r\n  public get isWindowed(): boolean {\r\n    return !this.windowRef.isFullscreen && !this.isEnteringWindowed;\r\n  }\r\n\r\n  public get _titleBarDisplayAttr(): string {\r\n    return this.config.isTitleBarVisible ? '' : 'none';\r\n  }\r\n\r\n  public get _viewDestroyedOrWindowInactive$(): Observable<boolean> {\r\n    return merge(this.viewDestroyed$, this.windowRef.isActive$.pipe(filter(isActive => !isActive)));\r\n  }\r\n\r\n  @ɵCacheableReturnInstance\r\n  public get windowStyle(): object {\r\n    return {\r\n      [CssVariable.Left]: `${this.config.positionX}px`,\r\n      [CssVariable.Top]: `${this.config.positionY}px`,\r\n      [CssVariable.RealWidth]: `${this.windowElement?.offsetWidth}px`,\r\n      [CssVariable.RealHeight]: `${this.windowElement?.offsetHeight}px`,\r\n      [CssVariable.CoordinateForHidingX]: this.config.hidesInto?.x,\r\n      [CssVariable.CoordinateForHidingY]: this.config.hidesInto?.y,\r\n      [CssVariable.FullscreenOffsetTop]: this.config.fullscreenOffset?.top,\r\n      [CssVariable.FullscreenOffsetRight]: this.config.fullscreenOffset?.right,\r\n      [CssVariable.FullscreenOffsetBottom]: this.config.fullscreenOffset?.bottom,\r\n      [CssVariable.FullscreenOffsetLeft]: this.config.fullscreenOffset?.left,\r\n      'z-index': this.zIndex,\r\n      ...this.config.style\r\n    };\r\n  }\r\n\r\n  @ɵCacheableReturnInstance\r\n  public get windowStyleClass(): object {\r\n    return {\r\n      ...ɵCssClasslistToObjectHelper.transform(this.config.styleClass as SafeAny),\r\n      [CssClass.Opening]: this.isOpening,\r\n      [CssClass.Hiding]: this.isHiding,\r\n      [CssClass.Showing]: this.isShowing,\r\n      [CssClass.Closing]: this.isClosing,\r\n      [CssClass.EnteringFullscreen]: this.isEnteringFullscreen,\r\n      [CssClass.EnteringWindowed]: this.isEnteringWindowed,\r\n      [CssClass.Hidden]: this.isHidden,\r\n      [CssClass.Fullscreen]: this.isFullscreen,\r\n      [CssClass.Windowed]: this.isWindowed\r\n    };\r\n  }\r\n\r\n  @ɵWhenViewInit()\r\n  @ɵCacheableReturnInstance\r\n  public get draggerConfig(): object {\r\n    return {\r\n      draggableElement: this.titleBarElement,\r\n      movableElement: this.windowElement,\r\n      childElementsBlackList: this.titleBarButtons,\r\n      strategy: this.draggerStrategy,\r\n      ...this.config.draggerConfig\r\n    };\r\n  }\r\n\r\n  @ɵWhenViewInit()\r\n  @ɵCacheableReturnInstance\r\n  public get resizerConfig(): object {\r\n    return {\r\n      targetElement: this.windowElement,\r\n      minWidth: this.config.minWidth,\r\n      minHeight: this.config.minHeight,\r\n      maxWidth: this.config.maxWidth,\r\n      maxHeight: this.config.maxHeight,\r\n      allowedResizers: this.config.allowedResizers,\r\n      xAxisLeftStyleProperty: CssVariable.Left,\r\n      yAxisTopStyleProperty: CssVariable.Top,\r\n      widthStyleProperty: CssVariable.Width,\r\n      heightStyleProperty: CssVariable.Height,\r\n      ...this.config.resizerConfig\r\n    };\r\n  }\r\n\r\n  public config!: DynamicWindowConfig;\r\n\r\n  public zIndex!: number;\r\n  public windowOrderIndex = 0;\r\n\r\n  public windowElement!: HTMLElement;\r\n  public titleBarElement!: HTMLElement;\r\n  public titleBarButtons: HTMLElement[] = [];\r\n\r\n  protected readonly dynamicStateManager = new ɵDynamicStateManager();\r\n  protected readonly baseZIndex = 1000;\r\n  protected readonly alwaysOnTopBaseZIndex = 5000;\r\n\r\n  protected childComponentRef?: ComponentRef<SafeAny>;\r\n  protected widthAtWindowedMode!: number;\r\n  protected heightAtWindowedMode!: number;\r\n\r\n  private readonly draggerStrategy = new DragStrategyByAxisProperties({\r\n    xAxisLeftStyleProperty: CssVariable.Left,\r\n    yAxisTopStyleProperty: CssVariable.Top\r\n  });\r\n\r\n  public override ngOnDestroy(): void {\r\n    super.ngOnDestroy();\r\n    this.childComponentRef?.destroy();\r\n    this.windowRef.destroy();\r\n  }\r\n\r\n  /** 修改层级索引 */\r\n  protected updateZIndex(): void {\r\n    this.zIndex = this.baseZIndex + this.windowOrderIndex;\r\n\r\n    if (this.config.isAlwaysOnTop) {\r\n      this.zIndex += this.alwaysOnTopBaseZIndex;\r\n    }\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  HostBinding,\r\n  Injector,\r\n  Input,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ɵCommonCssClassEnum, ɵOsBaseComponent } from '../../../../core';\r\n\r\n/**\r\n * ## Content Projection Slots\r\n *\r\n * - Component `o-title-bar`: Slot for title-bar. You should pass {@link TitleBarComponent}\r\n * or use your custom element instead of default title-bar\r\n * - `Others`: Will be placed inside the body of the window\r\n *\r\n * @example\r\n * ```html\r\n * <o-window>\r\n *     <o-title-bar>MY CUSTOM TITLE BAR CONTENT HERE</o-title-bar>\r\n *     <div>ANY CONTENT OF THE WINDOW HERE</div>\r\n * </o-window>\r\n * ```\r\n **/\r\n@Component({\r\n  selector: 'o-window',\r\n  templateUrl: './window.component.html',\r\n  host: {\r\n    class: 'o-window'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WindowComponent extends ɵOsBaseComponent {\r\n  /** Marks window as active (means user works with it right now) */\r\n  @Input()\r\n  @HostBinding(`class.${ɵCommonCssClassEnum.Active}`)\r\n  public isActive = false;\r\n\r\n  /** Stylelist for scroll view component of the window */\r\n  @Input()\r\n  public scrollViewStyle?: object;\r\n\r\n  /** Classlist for scroll view component of the window */\r\n  @Input()\r\n  public scrollViewStyleClass?: string | string[] | object;\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n}\r\n","<ng-content select=\"o-title-bar\"></ng-content>\r\n\r\n<div class=\"o-window-body\">\r\n    <o-scroll-view [isVerticalScrollEnabled]=\"true\" [isHorizontalScrollEnabled]=\"true\" [style]=\"scrollViewStyle\"\r\n        [styleClass]=\"scrollViewStyleClass\">\r\n        <ng-content></ng-content>\r\n    </o-scroll-view>\r\n</div>","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  HostBinding,\r\n  Injector,\r\n  Input,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ɵCommonCssClassEnum, ɵOsBaseComponent } from '../../../../core';\r\n\r\n@Component({\r\n  selector: 'o-title-bar',\r\n  template: '<ng-content></ng-content>',\r\n  host: {\r\n    class: 'o-title-bar'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TitleBarComponent extends ɵOsBaseComponent {\r\n  /** Marks title bar as active (means user works with it right now) */\r\n  @Input()\r\n  @HostBinding(`class.${ɵCommonCssClassEnum.Active}`)\r\n  public isActive = true;\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Injector, ViewEncapsulation } from '@angular/core';\r\nimport { ɵOsBaseComponent } from '../../../../core';\r\n\r\n@Component({\r\n  selector: 'o-title-bar-content',\r\n  template: '<ng-content></ng-content>',\r\n  host: {\r\n    class: 'o-title-bar-content'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TitleBarContentComponent extends ɵOsBaseComponent {\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  HostBinding,\r\n  Injector,\r\n  Input,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ɵOsBaseComponent } from '../../../../core';\r\n\r\n@Component({\r\n  selector: 'o-title-bar-icon',\r\n  template: '',\r\n  host: {\r\n    class: 'o-title-bar-icon'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TitleBarIconComponent extends ɵOsBaseComponent {\r\n  /** The URL to the icon */\r\n  @Input()\r\n  public set url(value: string) {\r\n    if (value) {\r\n      this._iconCssBackground = `url(${value})`;\r\n    }\r\n  }\r\n\r\n  @HostBinding('style.backgroundImage')\r\n  public _iconCssBackground!: string;\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Injector, ViewEncapsulation } from '@angular/core';\r\nimport { ɵOsBaseComponent } from '../../../../core';\r\n\r\n@Component({\r\n  selector: 'o-title-bar-controls',\r\n  template: '<ng-content></ng-content>',\r\n  host: {\r\n    class: 'o-title-bar-controls'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TitleBarControlsComponent extends ɵOsBaseComponent {\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  Injector,\r\n  Input,\r\n  OnInit,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ɵOsBaseButtonComponent } from '../../../../core';\r\n\r\n@Component({\r\n  selector: 'o-title-bar-button',\r\n  templateUrl: './title-bar-button.component.html',\r\n  host: {\r\n    class: 'o-title-bar-button'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TitleBarButtonComponent extends ɵOsBaseButtonComponent implements OnInit {\r\n  /** Link to the icon */\r\n  @Input()\r\n  public iconUrl?: string;\r\n\r\n  /** Stylelist for the icon */\r\n  @Input()\r\n  public iconStyle!: object | null;\r\n\r\n  /** Classlist for the icon */\r\n  @Input()\r\n  public iconStyleClass!: string | string[] | object;\r\n\r\n  /** @internal */\r\n  public get _iconCssUrl(): string | null {\r\n    return this.iconUrl ? `url(${this.iconUrl})` : null;\r\n  }\r\n\r\n  constructor(injector: Injector) {\r\n    super(injector);\r\n  }\r\n\r\n  public ngOnInit(): void {\r\n    this.initClickObserver();\r\n  }\r\n\r\n  private initClickObserver(): void {\r\n    this.osClick.pipe(takeUntil(this.viewDestroyed$)).subscribe(event => event.stopPropagation());\r\n  }\r\n}\r\n","<div class=\"o-icon\" [ngStyle]=\"iconStyle\" [ngClass]=\"iconStyleClass\" [style.backgroundImage]=\"_iconCssUrl\">\r\n</div>","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  Inject,\r\n  OnInit,\r\n  Type,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n  ViewEncapsulation,\r\n  Injector,\r\n  createNgModuleRef\r\n} from '@angular/core';\r\nimport { LoadChildren } from '@angular/router';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { combineLatest, fromEvent, Observable, timer } from 'rxjs';\r\nimport { filter, map, skip, skipUntil, takeUntil } from 'rxjs/operators';\r\nimport { ɵEventOutside, ɵGlobalEvents } from '../../../../core';\r\nimport { DraggableDirective } from '../../../drag-and-drop';\r\nimport { ResizableDirective, ResizeInfo } from '../../../resizer';\r\nimport { DYNAMIC_WINDOW_SHARED_CONFIG as SHARED_CONFIG } from '../../data';\r\nimport {\r\n  ɵDynamicStateEnum as DynamicState,\r\n  ɵDynamicWindowCssVariableEnum as CssVariable\r\n} from '../../enums';\r\nimport { ɵMergeConfigs } from '../../helpers';\r\nimport { DynamicWindowConfig } from '../../interfaces';\r\nimport { ɵBaseDynamicWindowComponent } from './base-dynamic-window.component';\r\n\r\n/**\r\n * @internal\r\n * Component, which creates when you open some window via {@link DynamicWindowService}.\r\n **/\r\n@Component({\r\n  selector: 'o-dynamic-window',\r\n  templateUrl: './dynamic-window.component.html',\r\n  host: {\r\n    class: 'o-dynamic-window'\r\n  },\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ɵDynamicWindowComponent\r\n  extends ɵBaseDynamicWindowComponent\r\n  implements OnInit, AfterViewInit\r\n{\r\n  @ViewChild('content', { read: ViewContainerRef, static: true })\r\n  private readonly contentViewRef!: ViewContainerRef;\r\n\r\n  @ViewChild(DraggableDirective, { static: true })\r\n  private readonly draggableDirective!: DraggableDirective;\r\n\r\n  /** 调整窗体大小 */\r\n  @ViewChild(ResizableDirective, { static: true })\r\n  private readonly resizableDirective!: ResizableDirective;\r\n\r\n  constructor(\r\n    @Inject(SHARED_CONFIG) private readonly sharedConfig$: Observable<DynamicWindowConfig>,\r\n    private readonly hostRef: ElementRef<HTMLElement>,\r\n    private readonly globalEvents: ɵGlobalEvents,\r\n    private injector: Injector,\r\n    private readonly changeDetector: ChangeDetectorRef\r\n  ) {\r\n    super();\r\n  }\r\n\r\n  public ngOnInit(): void {\r\n    this.initDynamicStateManager();\r\n    this.initConfigObserver();\r\n    this.initBeforeHiddenStateObserver();\r\n    this.initIsHiddenStateObserver();\r\n    this.initIsFullscreenStateObserver();\r\n    this.initAfterClosedStateObserver();\r\n    this.initWindowIdOrderObserver();\r\n    this.initIsActiveObserver();\r\n    this.initOutsideClickObserver();\r\n  }\r\n\r\n  public override ngAfterViewInit(): void {\r\n    super.ngAfterViewInit();\r\n    this.initChildComponent(this.childComponentType, this.childlazyModuleType);\r\n    this.initHtmlElements();\r\n    this.initWindowSizes();\r\n    this.initMousedownObserver();\r\n    this.windowRef.setWindowElement(this.windowElement);\r\n    this.windowRef.setDraggableDirective(this.draggableDirective);\r\n    this.windowRef.setResizableDirective(this.resizableDirective);\r\n    this.changeDetector.detectChanges();\r\n  }\r\n\r\n  /** 隐藏窗体按钮 */\r\n  public onHideButtonClick(): void {\r\n    if (this.config.isAllowHide) {\r\n      this.windowRef.hide();\r\n    }\r\n  }\r\n\r\n  /** 全屏窗体按钮 */\r\n  public onFullscreenButtonClick(): void {\r\n    if (this.config.isAllowFullscreen) {\r\n      this.windowRef.toggleFullscreen();\r\n    }\r\n  }\r\n\r\n  /** 关闭窗体按钮 */\r\n  public onCloseButtonClick(): void {\r\n    if (this.config.isAllowClose) {\r\n      this.windowRef.close();\r\n    }\r\n  }\r\n\r\n  /** 开始拖动 */\r\n  public onDragStart(): void {\r\n    // 在不影响任何逻辑的情况下更新配置，例如某些内部初始化的不同内容\r\n    if (this.config.isExitFullscreenByDragTitleBar && this.windowRef.isFullscreen) {\r\n      this.draggableDirective.updateConfigWithoutChanges({\r\n        shiftX: this.widthAtWindowedMode / 2,\r\n        shiftY: this.titleBarElement.clientHeight / 2\r\n      });\r\n    }\r\n\r\n    this.changeDetector.detach();\r\n  }\r\n  /** 在拖拽的过程中回调 */\r\n  public onDragMoved(): void {\r\n    // 如果是全屏时拖动，就变回窗体\r\n    if (this.config.isExitFullscreenByDragTitleBar && this.windowRef.isFullscreen) {\r\n      this.windowRef.goWindowed();\r\n    }\r\n  }\r\n\r\n  /** 停止拖动 */\r\n  public onDragEnd(): void {\r\n    // 在不影响任何逻辑的情况下更新配置，例如某些内部初始化的不同内容\r\n    this.draggableDirective.updateConfigWithoutChanges({ shiftX: undefined, shiftY: undefined });\r\n    this.changeDetector.reattach();\r\n  }\r\n\r\n  /** 标题栏双击 */\r\n  public onTitleBarDblClick(): void {\r\n    if (this.config.isAllowFullscreen && this.config.isToggleFullscreenByDblClickOnTitleBar) {\r\n      this.windowRef.toggleFullscreen();\r\n    }\r\n  }\r\n\r\n  /** 调整大小开始 */\r\n  public onResizeStart(): void {\r\n    this.changeDetector.detach();\r\n  }\r\n\r\n  /** 在调整时触发 */\r\n  public onResizing({ resizableElement }: ResizeInfo): void {\r\n    this.widthAtWindowedMode = resizableElement.offsetWidth;\r\n    this.heightAtWindowedMode = resizableElement.offsetHeight;\r\n  }\r\n\r\n  /** 调整大小结束 */\r\n  public onResizeEnd(): void {\r\n    this.changeDetector.reattach();\r\n  }\r\n\r\n  //#region  初始化\r\n  /** 初始化容器 */\r\n  private async initChildComponent(\r\n    componentType?: Type<SafeAny>,\r\n    lazyModule?: LoadChildren\r\n  ): Promise<void> {\r\n    if (lazyModule) {\r\n      const result = await lazyModule();\r\n      const ngModuleRef = createNgModuleRef(result, this.injector);\r\n      const { component } = ngModuleRef.instance as SafeAny;\r\n\r\n      this.childComponentRef = this.contentViewRef.createComponent(component);\r\n    } else if (componentType) {\r\n      this.childComponentRef = this.contentViewRef.createComponent(componentType);\r\n    }\r\n  }\r\n\r\n  /** 初始化 动态状态管理器 */\r\n  private initDynamicStateManager(): void {\r\n    this.dynamicStateManager.apply(DynamicState.Opening);\r\n    this.dynamicStateManager.registerAfterStartCallback(() => this.changeDetector.detectChanges());\r\n    this.dynamicStateManager.registerAfterEndCallback(() => this.changeDetector.markForCheck());\r\n  }\r\n\r\n  /** 初始化窗体大小 */\r\n  private initWindowSizes(): void {\r\n    this.widthAtWindowedMode = this.config.width ?? this.windowElement.offsetWidth;\r\n    this.heightAtWindowedMode = this.config.height ?? this.windowElement.offsetHeight;\r\n\r\n    this.windowElement.style.setProperty(CssVariable.Width, `${this.widthAtWindowedMode}px`);\r\n    this.windowElement.style.setProperty(CssVariable.Height, `${this.heightAtWindowedMode}px`);\r\n  }\r\n\r\n  /** 初始化HTML元素 */\r\n  private initHtmlElements(): void {\r\n    this.windowElement = this.hostRef.nativeElement.querySelector('.o-window') as SafeAny;\r\n    this.titleBarElement = this.windowElement.querySelector('.o-title-bar') as SafeAny;\r\n    this.titleBarButtons = Array.from(\r\n      this.titleBarElement.querySelectorAll('.o-title-bar-button .o-icon')\r\n    );\r\n  }\r\n\r\n  /** 初始化观察鼠标按钮 */\r\n  private initMousedownObserver(): void {\r\n    fromEvent(this.windowElement, 'mousedown')\r\n      .pipe(takeUntil(this.viewDestroyed$))\r\n      .subscribe(() => this.windowRef.makeActive());\r\n  }\r\n\r\n  /** 初始化观察外部点击 */\r\n  private initOutsideClickObserver(): void {\r\n    this.globalEvents\r\n      .fromDocument('click')\r\n      .pipe(\r\n        // Waiting ~4 ms for skipping currently bubbling click event, which probably triggered our dynamic window.\r\n        skipUntil(timer(4)),\r\n        filter(() => this.isWindowed || this.isFullscreen),\r\n        filter(event => ɵEventOutside.checkForElement(this.windowElement, event)),\r\n        takeUntil(this._viewDestroyedOrWindowInactive$)\r\n      )\r\n      .subscribe(() => this.windowRef.makeInactive());\r\n  }\r\n\r\n  private initWindowIdOrderObserver(): void {\r\n    this.windowRef.orderIndex$.subscribe(orderIndex => {\r\n      this.windowOrderIndex = orderIndex;\r\n\r\n      this.updateZIndex();\r\n      this.changeDetector.detectChanges();\r\n    });\r\n  }\r\n\r\n  /** 初始化 观察隐藏之前 */\r\n  private initBeforeHiddenStateObserver(): void {\r\n    this.windowRef.beforeHidden$.subscribe(() =>\r\n      this.dynamicStateManager.apply(DynamicState.Hiding)\r\n    );\r\n  }\r\n\r\n  /** 初始化 观察是否隐藏状态 */\r\n  private initIsHiddenStateObserver(): void {\r\n    this.windowRef.isHidden$\r\n      .pipe(\r\n        skip(1),\r\n        filter(isHidden => !isHidden)\r\n      )\r\n      .subscribe(() => this.dynamicStateManager.apply(DynamicState.Showing));\r\n  }\r\n\r\n  /** 初始化 观察是否全屏状态 */\r\n  private initIsFullscreenStateObserver(): void {\r\n    this.windowRef.isFullscreen$\r\n      .pipe(\r\n        skip(1),\r\n        map(state => (state ? DynamicState.EnteringFullscreen : DynamicState.EnteringWindowed))\r\n      )\r\n      .subscribe(dynamicState => this.dynamicStateManager.apply(dynamicState));\r\n  }\r\n\r\n  /** 初始化 观察是否活动 */\r\n  private initIsActiveObserver(): void {\r\n    this.windowRef.isActive$.subscribe(isActive => {\r\n      if (isActive) {\r\n        this.initOutsideClickObserver();\r\n      }\r\n\r\n      this.changeDetector.detectChanges();\r\n    });\r\n  }\r\n\r\n  /** 初始化 观察关闭后状态 */\r\n  private initAfterClosedStateObserver(): void {\r\n    this.windowRef.afterClosed$.subscribe(() =>\r\n      this.dynamicStateManager.apply(DynamicState.Closing)\r\n    );\r\n  }\r\n\r\n  private initConfigObserver(): void {\r\n    combineLatest([this.sharedConfig$, this.windowRef.config$])\r\n      .pipe(takeUntil(this.viewDestroyed$))\r\n      .subscribe(([sharedConfig, updatedConfig]) => {\r\n        this.config = ɵMergeConfigs(updatedConfig, sharedConfig);\r\n\r\n        this.changeDetector.detectChanges();\r\n      });\r\n  }\r\n  //#endregion\r\n}\r\n","<o-window [oResizable]=\"resizerConfig\" [styleClass]=\"windowStyleClass\" [style]=\"windowStyle\" [attr.id]=\"windowRef.id\"\r\n    [isActive]=\"windowRef.isActive\" [scrollViewStyle]=\"config.scrollViewStyle\"\r\n    [scrollViewStyleClass]=\"config.scrollViewStyleClass\" (osResizeStart)=\"onResizeStart()\"\r\n    (osResizing)=\"onResizing($event)\" (osResizeEnd)=\"onResizeEnd()\">\r\n    <o-title-bar [oDraggable]=\"draggerConfig\" [isActive]=\"windowRef.isActive\" [style.display]=\"_titleBarDisplayAttr\"\r\n        [style]=\"config.titleBarStyle\" [styleClass]=\"config.titleBarStyleClass\" (osDblClick)=\"onTitleBarDblClick()\"\r\n        (osDragStart)=\"onDragStart()\" (osDragging)=\"onDragMoved()\" (osDragEnd)=\"onDragEnd()\">\r\n        <ng-container *ngIf=\"config.titleBarCustomContent; else defaultTitleBarContentTemplateOutlet\">\r\n            <ng-container *ngComponentOutlet=\"config.titleBarCustomContent\"></ng-container>\r\n        </ng-container>\r\n\r\n        <ng-template #defaultTitleBarContentTemplateOutlet>\r\n            <ng-container *ngTemplateOutlet=\"defaultTitleBarContent\">\r\n            </ng-container>\r\n        </ng-template>\r\n    </o-title-bar>\r\n\r\n    <ng-template #content></ng-template>\r\n</o-window>\r\n\r\n<ng-template #defaultTitleBarContent>\r\n    <o-title-bar-content>\r\n        <o-title-bar-icon *ngIf=\"config.iconUrl\" [url]=\"config.iconUrl\">\r\n        </o-title-bar-icon>\r\n\r\n        <span class=\"o-text\">{{ config.title }}</span>\r\n    </o-title-bar-content>\r\n\r\n    <o-title-bar-controls>\r\n        <o-title-bar-button [isDisabled]=\"!config.isAllowHide\" [ariaLabel]=\"'Hide'\" (osClick)=\"onHideButtonClick()\">\r\n        </o-title-bar-button>\r\n\r\n        <o-title-bar-button [isDisabled]=\"!config.isAllowFullscreen\" [ariaLabel]=\"'Fullscreen'\"\r\n            (osClick)=\"onFullscreenButtonClick()\">\r\n        </o-title-bar-button>\r\n\r\n        <o-title-bar-button [isDisabled]=\"!config.isAllowClose\" [ariaLabel]=\"'Close'\" (osClick)=\"onCloseButtonClick()\">\r\n        </o-title-bar-button>\r\n    </o-title-bar-controls>\r\n</ng-template>","/** 窗体加载内容配置 */\r\nimport { Type } from '@angular/core';\r\nimport { LoadChildren } from '@angular/router';\r\nimport { SafeAny } from '@pkt/utils';\r\n\r\nexport interface LoadConfig {\r\n  /** 组件 */\r\n  component?: Type<SafeAny>;\r\n  module?: NgCustomElement;\r\n  loadType?: LoadType;\r\n  lazyModule?: LoadChildren;\r\n}\r\n/** 加载类型 */\r\nexport enum LoadType {\r\n  /** 捆绑组件 */\r\n  component,\r\n  /** web组件 */\r\n  webComponent,\r\n  /** 模块 */\r\n  lazyModule\r\n}\r\n\r\nexport interface NgCustomElement {\r\n  import: () => Promise<SafeAny>;\r\n  elementName: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SafeAny } from '@pkt/utils';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { ɵDynamicWindowRefModel } from '../classes';\r\n\r\n/** @internal */\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ɵWindowReferencesState {\r\n  public get data$(): Observable<ɵDynamicWindowRefModel[]> {\r\n    return this._data$.asObservable();\r\n  }\r\n\r\n  public get data(): ɵDynamicWindowRefModel[] {\r\n    return this._data$.getValue();\r\n  }\r\n\r\n  private readonly _data$ = new BehaviorSubject<ɵDynamicWindowRefModel[]>([]);\r\n\r\n  private readonly windowRefMap: Map<string, ɵDynamicWindowRefModel> = new Map();\r\n\r\n  public getById(id: string): ɵDynamicWindowRefModel {\r\n    return this.windowRefMap.get(id) as SafeAny;\r\n  }\r\n\r\n  public add(windowRef: ɵDynamicWindowRefModel): void {\r\n    this.windowRefMap.set(windowRef.id, windowRef);\r\n    this._data$.next([...this.data, windowRef]);\r\n  }\r\n\r\n  public remove(windowRef: ɵDynamicWindowRefModel): void {\r\n    const targetWindowRefIndex = this.data.indexOf(windowRef);\r\n\r\n    this.data.splice(targetWindowRefIndex, 1);\r\n    this.windowRefMap.delete(windowRef.id);\r\n    this._data$.next([...this.data]);\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ɵWindowReferencesState } from '../states';\r\n\r\n/** @internal */\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ɵDynamicWindowActivityService {\r\n  constructor(private readonly state: ɵWindowReferencesState) {}\r\n\r\n  public makeAllInactiveExceptSpecificId(id: string): void {\r\n    this.state.data.forEach(windowRef => {\r\n      if (windowRef.id !== id && windowRef.isActive) {\r\n        windowRef.makeInactive();\r\n      }\r\n    });\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ɵDynamicWindowRefModel } from '../classes';\r\nimport { ɵWindowReferencesState } from '../states';\r\n\r\n/** @internal */\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ɵDynamicWindowRefOrderingService {\r\n  /** Array of window ids. The larger the index of id, the higher the window */\r\n  private readonly windowOrderIds: string[] = [];\r\n\r\n  constructor(private readonly state: ɵWindowReferencesState) {}\r\n\r\n  public getIndex(id: string): number {\r\n    return this.windowOrderIds.indexOf(id);\r\n  }\r\n\r\n  public updateForAll(): void {\r\n    this.state.data.forEach(windowRef => {\r\n      const orderIndex = this.getIndex(windowRef.id);\r\n\r\n      windowRef.setOrderIndex(orderIndex);\r\n    });\r\n  }\r\n\r\n  public remove(id: string): void {\r\n    const targetWindowOrderIdIndex = this.getIndex(id);\r\n\r\n    if (targetWindowOrderIdIndex !== -1) {\r\n      this.windowOrderIds.splice(targetWindowOrderIdIndex, 1);\r\n    }\r\n  }\r\n\r\n  public moveToTop(id: string): void {\r\n    this.remove(id);\r\n    this.windowOrderIds.push(id);\r\n  }\r\n\r\n  public getHighestOpened(): ɵDynamicWindowRefModel | null {\r\n    let index = this.windowOrderIds.length - 1;\r\n\r\n    while (index >= 0) {\r\n      const currentWindowRefId = this.windowOrderIds[index];\r\n      const currentWindowRef = this.state.getById(currentWindowRefId);\r\n\r\n      if (!currentWindowRef.isHidden) {\r\n        return currentWindowRef;\r\n      }\r\n\r\n      index--;\r\n    }\r\n\r\n    return null;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ɵIsNumber } from '../../../core';\r\nimport { ɵDynamicWindowRefModel } from '../classes';\r\n\r\n/** @internal */\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ɵDynamicWindowsDefaultCoordinatesService {\r\n  private readonly base = 96;\r\n  private readonly multiplier = 32;\r\n  private readonly maxAmountOfWindows = 8;\r\n  private currentAmountOfWindows = 0;\r\n\r\n  public applyIfSpecificAbsent(windowRef: ɵDynamicWindowRefModel): void {\r\n    if (!ɵIsNumber(windowRef.config.positionX) || !ɵIsNumber(windowRef.config.positionY)) {\r\n      this.resetCurrentAmountOfWindowsIfExceedsMax();\r\n\r\n      const targetPosition = this.calculate();\r\n      this.currentAmountOfWindows++;\r\n\r\n      windowRef.updateConfig({\r\n        positionX: windowRef.config.positionX ?? targetPosition,\r\n        positionY: windowRef.config.positionY ?? targetPosition\r\n      });\r\n    }\r\n  }\r\n\r\n  private resetCurrentAmountOfWindowsIfExceedsMax(): void {\r\n    if (this.currentAmountOfWindows >= this.maxAmountOfWindows) {\r\n      this.currentAmountOfWindows = 0;\r\n    }\r\n  }\r\n\r\n  private calculate(): number {\r\n    return this.base + this.multiplier * this.currentAmountOfWindows;\r\n  }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { merge, Observable, Subject } from 'rxjs';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { ɵDynamicWindowConfigModel, ɵDynamicWindowRefModel } from '../classes';\r\nimport { DynamicWindowConfig as IDynamicWindowConfig } from '../interfaces';\r\nimport { ɵWindowReferencesState } from '../states';\r\nimport { ɵDynamicWindowActivityService } from './dynamic-window-activity.service';\r\nimport { ɵDynamicWindowRefOrderingService } from './dynamic-window-ref-ordering.service';\r\nimport { ɵDynamicWindowsDefaultCoordinatesService } from './dynamic-windows-coordinates.service';\r\n\r\n/** @internal */\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ɵDynamicWindowReferencesService implements OnDestroy {\r\n  public get data$(): Observable<ɵDynamicWindowRefModel[]> {\r\n    return this.state.data$;\r\n  }\r\n\r\n  public get data(): ɵDynamicWindowRefModel[] {\r\n    return [...this.state.data];\r\n  }\r\n\r\n  private destroyed$ = new Subject();\r\n\r\n  constructor(\r\n    private readonly state: ɵWindowReferencesState,\r\n    private readonly activityService: ɵDynamicWindowActivityService,\r\n    private readonly orderingService: ɵDynamicWindowRefOrderingService,\r\n    private readonly defaultCoordinatesService: ɵDynamicWindowsDefaultCoordinatesService\r\n  ) {}\r\n\r\n  public ngOnDestroy(): void {\r\n    this.destroyed$.next(null);\r\n    this.destroyed$.complete();\r\n  }\r\n\r\n  public register(windowRef: ɵDynamicWindowRefModel, config: IDynamicWindowConfig): void {\r\n    windowRef.init(new ɵDynamicWindowConfigModel(config));\r\n    this.state.add(windowRef);\r\n    this.defaultCoordinatesService.applyIfSpecificAbsent(windowRef);\r\n    this.initHighestWindowActivityObserver(windowRef);\r\n    this.initIsActiveStateObserver(windowRef);\r\n  }\r\n\r\n  public remove(windowRef: ɵDynamicWindowRefModel): void {\r\n    this.orderingService.remove(windowRef.id);\r\n    this.state.remove(windowRef);\r\n  }\r\n\r\n  private initHighestWindowActivityObserver(windowRef: ɵDynamicWindowRefModel): void {\r\n    merge(windowRef.isHidden$.pipe(filter(Boolean)), windowRef.afterClosed$)\r\n      .pipe(\r\n        map(() => this.orderingService.getHighestOpened()),\r\n        takeUntil(this.destroyed$)\r\n      )\r\n      .subscribe(highestWindow => highestWindow?.makeActive());\r\n  }\r\n\r\n  private initIsActiveStateObserver(windowRef: ɵDynamicWindowRefModel): void {\r\n    windowRef.isActive$.pipe(filter(Boolean), takeUntil(this.destroyed$)).subscribe(() => {\r\n      this.orderingService.moveToTop(windowRef.id);\r\n      this.orderingService.updateForAll();\r\n      this.activityService.makeAllInactiveExceptSpecificId(windowRef.id);\r\n    });\r\n  }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n  ApplicationRef,\r\n  ComponentFactoryResolver,\r\n  ComponentRef,\r\n  EmbeddedViewRef,\r\n  Inject,\r\n  Injectable,\r\n  Injector\r\n} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { delay, tap } from 'rxjs/operators';\r\nimport { ɵDynamicWindowInjector, ɵDynamicWindowRefModel } from '../classes';\r\nimport { ɵDynamicWindowComponent } from '../components';\r\nimport {\r\n  DynamicWindowConfig,\r\n  DynamicWindowRef,\r\n  ɵDynamicWindowInputParams,\r\n  LoadConfig\r\n} from '../interfaces';\r\nimport { ɵDynamicWindowReferencesService } from './dynamic-window-references.service';\r\n\r\n/** Allows open your component inside an OS-styled window **/\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class DynamicWindowService {\r\n  /** Contains references to windows opened via the service */\r\n  public get references$(): Observable<DynamicWindowRef[]> {\r\n    return this.referencesService.data$;\r\n  }\r\n\r\n  /** Contains references to windows opened via the service */\r\n  public get references(): DynamicWindowRef[] {\r\n    return this.referencesService.data;\r\n  }\r\n\r\n  constructor(\r\n    @Inject(DOCUMENT) private readonly document: Document,\r\n    private readonly injector: Injector,\r\n    private readonly componentFactoryResolver: ComponentFactoryResolver,\r\n    private readonly applicationRef: ApplicationRef,\r\n    private readonly referencesService: ɵDynamicWindowReferencesService\r\n  ) {}\r\n\r\n  /** Opens a window containing the given component */\r\n  public open(loadConfig: LoadConfig, config: DynamicWindowConfig = {}): DynamicWindowRef {\r\n    const windowRef = this.createDynamicWindow();\r\n    this.referencesService.register(windowRef, config);\r\n\r\n    const { component, lazyModule } = loadConfig;\r\n    this.applyDataForCreatedWindowInstance({ component, windowRef, lazyModule });\r\n    return windowRef;\r\n  }\r\n\r\n  /** Closes all windows */\r\n  public closeAll(): void {\r\n    this.references.forEach(windowRef => windowRef.close());\r\n  }\r\n\r\n  private createDynamicWindow(): ɵDynamicWindowRefModel {\r\n    const windowRef = new ɵDynamicWindowRefModel();\r\n    const windowInjector = new ɵDynamicWindowInjector({ injector: this.injector, windowRef });\r\n    const componentRef = this.createComponentRef(windowInjector);\r\n\r\n    windowRef.setComponentRef(componentRef);\r\n    this.initWindowRefAfterClosedObserver(windowRef, componentRef);\r\n    this.appendWindowComponentToBody(componentRef);\r\n\r\n    return windowRef;\r\n  }\r\n\r\n  private createComponentRef(\r\n    windowInjector: ɵDynamicWindowInjector\r\n  ): ComponentRef<ɵDynamicWindowComponent> {\r\n    return this.componentFactoryResolver\r\n      .resolveComponentFactory(ɵDynamicWindowComponent)\r\n      .create(windowInjector);\r\n  }\r\n\r\n  private appendWindowComponentToBody(componentRef: ComponentRef<ɵDynamicWindowComponent>): void {\r\n    const componentHostView = componentRef.hostView as EmbeddedViewRef<unknown>;\r\n    const componentHtmlElement = componentHostView.rootNodes[0] as HTMLElement;\r\n\r\n    this.applicationRef.attachView(componentHostView);\r\n    this.document.body.appendChild(componentHtmlElement);\r\n  }\r\n\r\n  private initWindowRefAfterClosedObserver(\r\n    windowRef: ɵDynamicWindowRefModel,\r\n    componentRef: ComponentRef<ɵDynamicWindowComponent>\r\n  ): void {\r\n    const destroyDelayInMs = 300;\r\n\r\n    windowRef.afterClosed$\r\n      .pipe(\r\n        tap(() => this.referencesService.remove(windowRef)),\r\n        delay(destroyDelayInMs)\r\n      )\r\n      .subscribe(() => componentRef.destroy());\r\n  }\r\n\r\n  private applyDataForCreatedWindowInstance({\r\n    component,\r\n    windowRef,\r\n    lazyModule\r\n  }: ɵDynamicWindowInputParams): void {\r\n    const { instance: windowInstance } = windowRef.componentRef;\r\n\r\n    windowInstance.childComponentType = component;\r\n    windowInstance.childlazyModuleType = lazyModule;\r\n    windowInstance.windowRef = windowRef;\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { ButtonModule } from '../button';\r\nimport { DragAndDropModule } from '../drag-and-drop';\r\nimport { ResizerModule } from '../resizer';\r\nimport { ScrollViewModule } from '../scroll-view';\r\nimport { ɵSharedModule } from '../shared.module';\r\nimport {\r\n  TitleBarButtonComponent,\r\n  TitleBarComponent,\r\n  TitleBarContentComponent,\r\n  TitleBarControlsComponent,\r\n  TitleBarIconComponent,\r\n  WindowComponent,\r\n  ɵDynamicWindowComponent\r\n} from './components';\r\nimport { ɵDYNAMIC_WINDOW_SHARED_CONFIG_PROVIDER } from './data';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    ɵDynamicWindowComponent,\r\n    TitleBarButtonComponent,\r\n    TitleBarComponent,\r\n    TitleBarContentComponent,\r\n    TitleBarControlsComponent,\r\n    TitleBarIconComponent,\r\n    WindowComponent\r\n  ],\r\n  imports: [ɵSharedModule, ButtonModule, ScrollViewModule, ResizerModule, DragAndDropModule],\r\n  exports: [\r\n    TitleBarButtonComponent,\r\n    TitleBarComponent,\r\n    TitleBarContentComponent,\r\n    TitleBarControlsComponent,\r\n    TitleBarIconComponent,\r\n    WindowComponent\r\n  ],\r\n  providers: [ɵDYNAMIC_WINDOW_SHARED_CONFIG_PROVIDER]\r\n})\r\nexport class WindowModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport {\r\n  ButtonModule,\r\n  DragAndDropModule,\r\n  ResizerModule,\r\n  GridModule,\r\n  ScrollViewModule,\r\n  UtilsModule,\r\n  WindowModule,\r\n  ListModule\r\n} from './modules';\r\n\r\n@NgModule({\r\n  exports: [\r\n    ButtonModule,\r\n    DragAndDropModule,\r\n    ResizerModule,\r\n    GridModule,\r\n    ListModule,\r\n    ScrollViewModule,\r\n    UtilsModule,\r\n    WindowModule\r\n  ]\r\n})\r\nexport class PktOsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["patchMethod","IntervalChecker","CssClass","ElementTag","CommonCssClass","BaseDeterminator","HorizontalStrategy","VerticalStrategy","CssVariable","DynamicState","SHARED_CONFIG"],"mappings":"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"}