ngx-tethys 17.0.0-next.8 → 17.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -194,7 +194,6 @@ class ThyResizableDirective extends _MixinBase$1 {
194
194
  return;
195
195
  }
196
196
  this.nativeElement = this.elementRef.nativeElement;
197
- this.setPosition();
198
197
  this.ngZone.runOutsideAngular(() => {
199
198
  fromEvent(this.nativeElement, 'mouseenter')
200
199
  .pipe(takeUntil(this.ngUnsubscribe$))
@@ -229,12 +228,6 @@ class ThyResizableDirective extends _MixinBase$1 {
229
228
  }
230
229
  setCompatibleStyle(document.body, 'user-select', 'none');
231
230
  }
232
- setPosition() {
233
- const position = getComputedStyle(this.nativeElement).position;
234
- if (position === 'static' || !position) {
235
- this.renderer.setStyle(this.nativeElement, 'position', 'relative');
236
- }
237
- }
238
231
  endResize(event) {
239
232
  this.renderer.setStyle(document.body, 'cursor', '');
240
233
  setCompatibleStyle(document.body, 'user-select', '');
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-resizable.mjs","sources":["../../../src/resizable/resizable.service.ts","../../../src/resizable/utils.ts","../../../src/resizable/resizable.directive.ts","../../../src/resizable/resize-handle.component.ts","../../../src/resizable/resize-handles.component.ts","../../../src/resizable/module.ts","../../../src/resizable/ngx-tethys-resizable.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { isTouchEvent } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { ThyResizeHandleMouseDownEvent } from './resize-handle.component';\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyResizableService implements OnDestroy {\n private document: Document;\n private listeners = new Map<string, (event: MouseEvent | TouchEvent) => void>();\n\n /**\n * The `OutsideAngular` prefix means that the subject will emit events outside of the Angular zone,\n * so that becomes a bit more descriptive for those who'll maintain the code in the future:\n * ```ts\n * thyResizableService.handleMouseDownOutsideAngular$.subscribe(event => {\n * console.log(Zone.current); // <root>\n * console.log(NgZone.isInAngularZone()); // false\n * });\n * ```\n */\n\n handleMouseDownOutsideAngular$ = new Subject<ThyResizeHandleMouseDownEvent>();\n documentMouseUpOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n documentMouseMoveOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n mouseEnteredOutsideAngular$ = new Subject<boolean>();\n\n constructor(private ngZone: NgZone, @Inject(DOCUMENT) document: any) {\n this.document = document;\n }\n\n startResizing(event: MouseEvent | TouchEvent): void {\n const _isTouchEvent = isTouchEvent(event);\n this.clearListeners();\n const moveEvent = _isTouchEvent ? 'touchmove' : 'mousemove';\n const upEvent = _isTouchEvent ? 'touchend' : 'mouseup';\n const moveEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseMoveOutsideAngular$.next(e);\n };\n const upEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseUpOutsideAngular$.next(e);\n this.clearListeners();\n };\n\n this.listeners.set(moveEvent, moveEventHandler);\n this.listeners.set(upEvent, upEventHandler);\n this.ngZone.runOutsideAngular(() => {\n this.listeners.forEach((handler, name) => {\n this.document.addEventListener(name, handler as EventListener);\n });\n });\n }\n\n private clearListeners(): void {\n this.listeners.forEach((handler, name) => {\n this.document.removeEventListener(name, handler as EventListener);\n });\n this.listeners.clear();\n }\n\n ngOnDestroy(): void {\n this.handleMouseDownOutsideAngular$.complete();\n this.documentMouseUpOutsideAngular$.complete();\n this.documentMouseMoveOutsideAngular$.complete();\n this.mouseEnteredOutsideAngular$.complete();\n this.clearListeners();\n }\n}\n","import { isTouchEvent } from 'ngx-tethys/util';\n\nexport function getEventWithPoint(event: MouseEvent | TouchEvent): MouseEvent | Touch {\n return isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : (event as MouseEvent);\n}\n\nexport function ensureInBounds(value: number, boundValue: number): number {\n return value ? (value < boundValue ? value : boundValue) : boundValue;\n}\n\nexport function setCompatibleStyle(element: HTMLElement, key: string, value: string) {\n element.style[key] = value;\n element.style[`-webkit-${key}`] = value;\n element.style[`-moz-${key}`] = value;\n element.style[`-ms-${key}`] = value;\n}\n","import {\n Directive,\n AfterViewInit,\n OnDestroy,\n ElementRef,\n Renderer2,\n NgZone,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Constructor, ThyUnsubscribe, MixinBase, mixinUnsubscribe, InputBoolean, InputNumber } from 'ngx-tethys/core';\nimport { ThyResizableService } from './resizable.service';\nimport { Platform } from '@angular/cdk/platform';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyResizeHandleMouseDownEvent } from './resize-handle.component';\nimport { ThyResizeEvent } from './interface';\nimport { getEventWithPoint, ensureInBounds, setCompatibleStyle } from './utils';\nimport { fromEvent } from 'rxjs';\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\n/**\n * 调整尺寸\n * @name thyResizable\n */\n@Directive({\n selector: '[thyResizable]',\n providers: [ThyResizableService],\n host: {\n class: 'thy-resizable',\n '[class.thy-resizable-resizing]': 'resizing',\n '[class.thy-resizable-disabled]': 'thyDisabled'\n },\n standalone: true\n})\nexport class ThyResizableDirective extends _MixinBase implements AfterViewInit, OnDestroy {\n /**\n * 调整尺寸的边界\n * @default parent\n * @type 'window' | 'parent' | ElementRef<HTMLElement>\n */\n @Input() thyBounds: 'window' | 'parent' | ElementRef<HTMLElement> = 'parent';\n\n /**\n * 最大高度(超过边界部分忽略)\n */\n @Input() @InputNumber() thyMaxHeight?: number;\n\n /**\n * 最大宽度(超过边界部分忽略)\n */\n @Input() @InputNumber() thyMaxWidth?: number;\n\n /**\n * 最小高度\n */\n @Input() @InputNumber() thyMinHeight: number = 40;\n\n /**\n * 最小宽度\n */\n @Input() @InputNumber() thyMinWidth: number = 40;\n\n /**\n * 栅格列数(-1 为不栅格)\n */\n @Input() @InputNumber() thyGridColumnCount: number = -1;\n\n /**\n * 栅格最大列数\n */\n @Input() @InputNumber() thyMaxColumn: number = -1;\n\n /**\n * 栅格最小列数\n */\n @Input() @InputNumber() thyMinColumn: number = -1;\n\n /**\n * 锁定宽高比\n */\n @Input() @InputBoolean() thyLockAspectRatio: boolean = false;\n\n /**\n * 是否预览模式\n */\n @Input() @InputBoolean() thyPreview: boolean = false;\n\n /**\n * 是否禁用调整大小\n */\n @Input() @InputBoolean() thyDisabled: boolean = false;\n\n /**\n * 调整尺寸时的事件\n */\n @Output() readonly thyResize = new EventEmitter<ThyResizeEvent>();\n\n /**\n * 开始调整尺寸时的事件\n */\n @Output() readonly thyResizeStart = new EventEmitter<ThyResizeEvent>();\n\n /**\n * 结束调整尺寸时的事件\n */\n @Output() readonly thyResizeEnd = new EventEmitter<ThyResizeEvent>();\n\n resizing = false;\n private nativeElement!: HTMLElement;\n private nativeElementRect!: ClientRect | DOMRect;\n private sizeCache: ThyResizeEvent | null = null;\n private ghostElement: HTMLDivElement | null = null;\n private currentHandleEvent: ThyResizeHandleMouseDownEvent | null = null;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private platform: Platform,\n private ngZone: NgZone,\n private thyResizableService: ThyResizableService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n this.thyResizableService.handleMouseDownOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.thyDisabled) {\n return;\n }\n this.resizing = true;\n const { mouseEvent } = event;\n this.thyResizableService.startResizing(mouseEvent);\n this.currentHandleEvent = event;\n this.setCursor();\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeStart` listeners,\n // e.g.: `<div thyResizable (thyResizeStart)=\"...\"></div>`.\n if (this.thyResizeStart.observers.length) {\n this.ngZone.run(() => this.thyResizeStart.emit({ mouseEvent }));\n }\n this.nativeElementRect = this.nativeElement.getBoundingClientRect();\n });\n\n this.thyResizableService.documentMouseUpOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.resizing) {\n this.ngZone.run(() => {\n this.resizing = false;\n this.changeDetectorRef.markForCheck();\n });\n this.thyResizableService.documentMouseUpOutsideAngular$.next(event);\n this.endResize(event);\n }\n });\n\n this.thyResizableService.documentMouseMoveOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.resizing) {\n this.resize(event);\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.nativeElement = this.elementRef.nativeElement;\n this.setPosition();\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.nativeElement, 'mouseenter')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(true);\n });\n\n fromEvent(this.nativeElement, 'mouseleave')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(false);\n });\n });\n }\n\n setCursor(): void {\n switch (this.currentHandleEvent!.direction) {\n case 'left':\n case 'right':\n this.renderer.setStyle(document.body, 'cursor', 'ew-resize');\n break;\n case 'top':\n case 'bottom':\n this.renderer.setStyle(document.body, 'cursor', 'ns-resize');\n break;\n case 'topLeft':\n case 'bottomRight':\n this.renderer.setStyle(document.body, 'cursor', 'nwse-resize');\n break;\n case 'topRight':\n case 'bottomLeft':\n this.renderer.setStyle(document.body, 'cursor', 'nesw-resize');\n break;\n }\n setCompatibleStyle(document.body, 'user-select', 'none');\n }\n\n setPosition(): void {\n const position = getComputedStyle(this.nativeElement).position;\n if (position === 'static' || !position) {\n this.renderer.setStyle(this.nativeElement, 'position', 'relative');\n }\n }\n\n endResize(event: MouseEvent | TouchEvent): void {\n this.renderer.setStyle(document.body, 'cursor', '');\n setCompatibleStyle(document.body, 'user-select', '');\n this.removeGhostElement();\n const size = this.sizeCache\n ? { ...this.sizeCache }\n : {\n width: this.nativeElementRect.width,\n height: this.nativeElementRect.height\n };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeEnd` listeners,\n // e.g.: `<div thyResizable (thyResizeEnd)=\"...\"></div>`.\n if (this.thyResizeEnd.observers.length) {\n this.ngZone.run(() => {\n this.thyResizeEnd.emit({\n ...size,\n mouseEvent: event\n });\n });\n }\n this.sizeCache = null;\n this.currentHandleEvent = null;\n }\n\n resize(event: MouseEvent | TouchEvent): void {\n const nativeElementRect = this.nativeElementRect;\n const resizeEvent = getEventWithPoint(event);\n const handleEvent = getEventWithPoint(this.currentHandleEvent!.mouseEvent);\n let width = nativeElementRect.width;\n let height = nativeElementRect.height;\n const ratio = this.thyLockAspectRatio ? width / height : -1;\n switch (this.currentHandleEvent!.direction) {\n case 'bottomRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'bottomLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'topRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'topLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'top':\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'right':\n width = resizeEvent.clientX - nativeElementRect.left;\n break;\n case 'bottom':\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'left':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n }\n const size = this.calcSize(width, height, ratio);\n this.sizeCache = { ...size };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResize` listeners,\n // e.g.: `<div thyResizable (thyResize)=\"...\"></div>`.\n if (this.thyResize.observers.length) {\n this.ngZone.run(() => {\n this.thyResize.emit({\n ...size,\n mouseEvent: event\n });\n });\n }\n\n if (this.thyPreview) {\n this.previewResize(size);\n }\n }\n\n calcSize(width: number, height: number, ratio: number): ThyResizeEvent {\n let newWidth: number;\n let newHeight: number;\n let maxWidth: number;\n let maxHeight: number;\n let col = 0;\n let spanWidth = 0;\n let minWidth = this.thyMinWidth;\n let boundWidth = Infinity;\n let boundHeight = Infinity;\n if (this.thyBounds === 'parent') {\n const parent = this.renderer.parentNode(this.nativeElement);\n if (parent instanceof HTMLElement) {\n const parentRect = parent.getBoundingClientRect();\n boundWidth = parentRect.width;\n boundHeight = parentRect.height;\n }\n } else if (this.thyBounds === 'window') {\n if (typeof window !== 'undefined') {\n boundWidth = window.innerWidth;\n boundHeight = window.innerHeight;\n }\n } else if (this.thyBounds && this.thyBounds.nativeElement && this.thyBounds.nativeElement instanceof HTMLElement) {\n const boundsRect = this.thyBounds.nativeElement.getBoundingClientRect();\n boundWidth = boundsRect.width;\n boundHeight = boundsRect.height;\n }\n\n maxWidth = ensureInBounds(this.thyMaxWidth!, boundWidth);\n maxHeight = ensureInBounds(this.thyMaxHeight!, boundHeight);\n\n if (this.thyGridColumnCount !== -1) {\n spanWidth = maxWidth / this.thyGridColumnCount;\n minWidth = this.thyMinColumn !== -1 ? spanWidth * this.thyMinColumn : minWidth;\n maxWidth = this.thyMaxColumn !== -1 ? spanWidth * this.thyMaxColumn : maxWidth;\n }\n\n if (ratio !== -1) {\n if (/(left|right)/i.test(this.currentHandleEvent!.direction)) {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(newWidth / ratio, this.thyMinHeight), maxHeight);\n if (newHeight >= maxHeight || newHeight <= this.thyMinHeight) {\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n }\n } else {\n newHeight = Math.min(Math.max(height, this.thyMinHeight), maxHeight);\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n if (newWidth >= maxWidth || newWidth <= minWidth) {\n newHeight = Math.min(Math.max(newWidth / ratio, this.thyMinHeight), maxHeight);\n }\n }\n } else {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(height, this.thyMinHeight), maxHeight);\n }\n\n if (this.thyGridColumnCount !== -1) {\n col = Math.round(newWidth / spanWidth);\n newWidth = col * spanWidth;\n }\n\n return {\n col,\n width: newWidth,\n height: newHeight\n };\n }\n\n previewResize({ width, height }: ThyResizeEvent): void {\n this.createGhostElement();\n this.renderer.setStyle(this.ghostElement, 'width', `${width}px`);\n this.renderer.setStyle(this.ghostElement, 'height', `${height}px`);\n }\n\n createGhostElement(): void {\n if (!this.ghostElement) {\n this.ghostElement = this.renderer.createElement('div');\n this.renderer.setAttribute(this.ghostElement, 'class', 'thy-resizable-preview');\n }\n this.renderer.appendChild(this.nativeElement, this.ghostElement);\n }\n\n removeGhostElement(): void {\n if (this.ghostElement) {\n this.renderer.removeChild(this.nativeElement, this.ghostElement);\n }\n }\n\n ngOnDestroy(): void {\n this.ghostElement = null;\n this.sizeCache = null;\n super.ngOnDestroy();\n }\n}\n","import { OnInit, OnDestroy, Component, ChangeDetectionStrategy, Input, Output, NgZone, EventEmitter, ElementRef } from '@angular/core';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ThyResizeDirection } from './interface';\nimport { ThyResizableService } from './resizable.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Constructor, ThyUnsubscribe, MixinBase, mixinUnsubscribe, InputBoolean } from 'ngx-tethys/core';\nimport { fromEvent, merge } from 'rxjs';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgIf } from '@angular/common';\n\nexport class ThyResizeHandleMouseDownEvent {\n constructor(public direction: ThyResizeDirection, public mouseEvent: MouseEvent | TouchEvent) {}\n}\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\nconst passiveEventListenerOptions = <AddEventListenerOptions>normalizePassiveListenerOptions({ passive: true });\n\n/**\n * 定义调整手柄及方向\n * @name thy-resize-handle\n */\n@Component({\n selector: 'thy-resize-handle, [thy-resize-handle]',\n exportAs: 'thyResizeHandle',\n template: `\n <ng-content></ng-content>\n <div *ngIf=\"thyLine\" class=\"thy-resizable-handle-line\"></div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-resizable-handle',\n '[class.thy-resizable-handle-top]': `thyDirection === 'top'`,\n '[class.thy-resizable-handle-right]': `thyDirection === 'right'`,\n '[class.thy-resizable-handle-bottom]': `thyDirection === 'bottom'`,\n '[class.thy-resizable-handle-left]': `thyDirection === 'left'`,\n '[class.thy-resizable-handle-topRight]': `thyDirection === 'topRight'`,\n '[class.thy-resizable-handle-bottomRight]': `thyDirection === 'bottomRight'`,\n '[class.thy-resizable-handle-bottomLeft]': `thyDirection === 'bottomLeft'`,\n '[class.thy-resizable-handle-topLeft]': `thyDirection === 'topLeft'`,\n '[class.thy-resizable-handle-box-hover]': 'entered'\n },\n standalone: true,\n imports: [NgIf]\n})\nexport class ThyResizeHandle extends _MixinBase implements OnInit, OnDestroy {\n /**\n * 调整方向\n * @type top | right | bottom | left | topRight | bottomRight | bottomLeft | topLeft\n */\n @Input() thyDirection: ThyResizeDirection = 'bottomRight';\n\n /**\n * 是否展示拖拽线\n */\n @Input() @InputBoolean() thyLine = false;\n\n /**\n * MouseDown 回调事件\n */\n @Output() readonly thyMouseDown = new EventEmitter<ThyResizeHandleMouseDownEvent>();\n\n private hostRenderer = useHostRenderer();\n\n constructor(private ngZone: NgZone, private thyResizableService: ThyResizableService, private host: ElementRef<HTMLElement>) {\n super();\n }\n\n ngOnInit(): void {\n this.thyResizableService.mouseEnteredOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(entered => {\n if (entered) {\n this.hostRenderer.addClass('thy-resizable-handle-box-hover');\n } else {\n this.hostRenderer.removeClass('thy-resizable-handle-box-hover');\n }\n });\n this.ngZone.runOutsideAngular(() => {\n // Note: since Chrome 56 defaults document level `touchstart` listener to passive.\n // The element `touchstart` listener is not passive by default\n // We never call `preventDefault()` on it, so we're safe making it passive too.\n merge(\n fromEvent<MouseEvent>(this.host.nativeElement, 'mousedown', passiveEventListenerOptions),\n fromEvent<TouchEvent>(this.host.nativeElement, 'touchstart', passiveEventListenerOptions)\n )\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe((event: MouseEvent | TouchEvent) => {\n this.thyResizableService.handleMouseDownOutsideAngular$.next(\n new ThyResizeHandleMouseDownEvent(this.thyDirection, event)\n );\n });\n });\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { InputBoolean } from 'ngx-tethys/core';\nimport { ThyResizeDirection } from './interface';\nimport { ThyResizeHandle } from './resize-handle.component';\nimport { NgFor } from '@angular/common';\n\nexport const DEFAULT_RESIZE_DIRECTION: ThyResizeDirection[] = [\n 'bottomRight',\n 'topRight',\n 'bottomLeft',\n 'topLeft',\n 'bottom',\n 'right',\n 'top',\n 'left'\n];\n\n/**\n * 定义调整手柄的快捷组件\n * @name thy-resize-handles\n */\n@Component({\n selector: 'thy-resize-handles',\n exportAs: 'thyResizeHandles',\n template: ` <thy-resize-handle *ngFor=\"let dir of directions\" [thyLine]=\"thyLine\" [thyDirection]=\"dir\"></thy-resize-handle> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgFor, ThyResizeHandle]\n})\nexport class ThyResizeHandles implements OnChanges {\n /**\n * 定义调整手柄的方向\n * @type ThyResizeDirection[]\n */\n @Input() thyDirections: ThyResizeDirection[] = DEFAULT_RESIZE_DIRECTION;\n\n /**\n * 是否展示拖拽线\n */\n @Input() @InputBoolean() thyLine = false;\n\n directions = new Set<ThyResizeDirection>(this.thyDirections);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyDirections) {\n this.directions = new Set(changes.thyDirections.currentValue);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyResizableDirective } from './resizable.directive';\nimport { ThyResizeHandle } from './resize-handle.component';\nimport { ThyResizeHandles } from './resize-handles.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule, ThyResizableDirective, ThyResizeHandle, ThyResizeHandles],\n exports: [ThyResizableDirective, ThyResizeHandle, ThyResizeHandles]\n})\nexport class ThyResizableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_MixinBase","i2.ThyResizableService","i1.ThyResizableService"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-resizable.mjs","sources":["../../../src/resizable/resizable.service.ts","../../../src/resizable/utils.ts","../../../src/resizable/resizable.directive.ts","../../../src/resizable/resize-handle.component.ts","../../../src/resizable/resize-handles.component.ts","../../../src/resizable/module.ts","../../../src/resizable/ngx-tethys-resizable.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { isTouchEvent } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { ThyResizeHandleMouseDownEvent } from './resize-handle.component';\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyResizableService implements OnDestroy {\n private document: Document;\n private listeners = new Map<string, (event: MouseEvent | TouchEvent) => void>();\n\n /**\n * The `OutsideAngular` prefix means that the subject will emit events outside of the Angular zone,\n * so that becomes a bit more descriptive for those who'll maintain the code in the future:\n * ```ts\n * thyResizableService.handleMouseDownOutsideAngular$.subscribe(event => {\n * console.log(Zone.current); // <root>\n * console.log(NgZone.isInAngularZone()); // false\n * });\n * ```\n */\n\n handleMouseDownOutsideAngular$ = new Subject<ThyResizeHandleMouseDownEvent>();\n documentMouseUpOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n documentMouseMoveOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n mouseEnteredOutsideAngular$ = new Subject<boolean>();\n\n constructor(private ngZone: NgZone, @Inject(DOCUMENT) document: any) {\n this.document = document;\n }\n\n startResizing(event: MouseEvent | TouchEvent): void {\n const _isTouchEvent = isTouchEvent(event);\n this.clearListeners();\n const moveEvent = _isTouchEvent ? 'touchmove' : 'mousemove';\n const upEvent = _isTouchEvent ? 'touchend' : 'mouseup';\n const moveEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseMoveOutsideAngular$.next(e);\n };\n const upEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseUpOutsideAngular$.next(e);\n this.clearListeners();\n };\n\n this.listeners.set(moveEvent, moveEventHandler);\n this.listeners.set(upEvent, upEventHandler);\n this.ngZone.runOutsideAngular(() => {\n this.listeners.forEach((handler, name) => {\n this.document.addEventListener(name, handler as EventListener);\n });\n });\n }\n\n private clearListeners(): void {\n this.listeners.forEach((handler, name) => {\n this.document.removeEventListener(name, handler as EventListener);\n });\n this.listeners.clear();\n }\n\n ngOnDestroy(): void {\n this.handleMouseDownOutsideAngular$.complete();\n this.documentMouseUpOutsideAngular$.complete();\n this.documentMouseMoveOutsideAngular$.complete();\n this.mouseEnteredOutsideAngular$.complete();\n this.clearListeners();\n }\n}\n","import { isTouchEvent } from 'ngx-tethys/util';\n\nexport function getEventWithPoint(event: MouseEvent | TouchEvent): MouseEvent | Touch {\n return isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : (event as MouseEvent);\n}\n\nexport function ensureInBounds(value: number, boundValue: number): number {\n return value ? (value < boundValue ? value : boundValue) : boundValue;\n}\n\nexport function setCompatibleStyle(element: HTMLElement, key: string, value: string) {\n element.style[key] = value;\n element.style[`-webkit-${key}`] = value;\n element.style[`-moz-${key}`] = value;\n element.style[`-ms-${key}`] = value;\n}\n","import {\n Directive,\n AfterViewInit,\n OnDestroy,\n ElementRef,\n Renderer2,\n NgZone,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Constructor, ThyUnsubscribe, MixinBase, mixinUnsubscribe, InputBoolean, InputNumber } from 'ngx-tethys/core';\nimport { ThyResizableService } from './resizable.service';\nimport { Platform } from '@angular/cdk/platform';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyResizeHandleMouseDownEvent } from './resize-handle.component';\nimport { ThyResizeEvent } from './interface';\nimport { getEventWithPoint, ensureInBounds, setCompatibleStyle } from './utils';\nimport { fromEvent } from 'rxjs';\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\n/**\n * 调整尺寸\n * @name thyResizable\n */\n@Directive({\n selector: '[thyResizable]',\n providers: [ThyResizableService],\n host: {\n class: 'thy-resizable',\n '[class.thy-resizable-resizing]': 'resizing',\n '[class.thy-resizable-disabled]': 'thyDisabled'\n },\n standalone: true\n})\nexport class ThyResizableDirective extends _MixinBase implements AfterViewInit, OnDestroy {\n /**\n * 调整尺寸的边界\n * @default parent\n * @type 'window' | 'parent' | ElementRef<HTMLElement>\n */\n @Input() thyBounds: 'window' | 'parent' | ElementRef<HTMLElement> = 'parent';\n\n /**\n * 最大高度(超过边界部分忽略)\n */\n @Input() @InputNumber() thyMaxHeight?: number;\n\n /**\n * 最大宽度(超过边界部分忽略)\n */\n @Input() @InputNumber() thyMaxWidth?: number;\n\n /**\n * 最小高度\n */\n @Input() @InputNumber() thyMinHeight: number = 40;\n\n /**\n * 最小宽度\n */\n @Input() @InputNumber() thyMinWidth: number = 40;\n\n /**\n * 栅格列数(-1 为不栅格)\n */\n @Input() @InputNumber() thyGridColumnCount: number = -1;\n\n /**\n * 栅格最大列数\n */\n @Input() @InputNumber() thyMaxColumn: number = -1;\n\n /**\n * 栅格最小列数\n */\n @Input() @InputNumber() thyMinColumn: number = -1;\n\n /**\n * 锁定宽高比\n */\n @Input() @InputBoolean() thyLockAspectRatio: boolean = false;\n\n /**\n * 是否预览模式\n */\n @Input() @InputBoolean() thyPreview: boolean = false;\n\n /**\n * 是否禁用调整大小\n */\n @Input() @InputBoolean() thyDisabled: boolean = false;\n\n /**\n * 调整尺寸时的事件\n */\n @Output() readonly thyResize = new EventEmitter<ThyResizeEvent>();\n\n /**\n * 开始调整尺寸时的事件\n */\n @Output() readonly thyResizeStart = new EventEmitter<ThyResizeEvent>();\n\n /**\n * 结束调整尺寸时的事件\n */\n @Output() readonly thyResizeEnd = new EventEmitter<ThyResizeEvent>();\n\n resizing = false;\n private nativeElement!: HTMLElement;\n private nativeElementRect!: ClientRect | DOMRect;\n private sizeCache: ThyResizeEvent | null = null;\n private ghostElement: HTMLDivElement | null = null;\n private currentHandleEvent: ThyResizeHandleMouseDownEvent | null = null;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private platform: Platform,\n private ngZone: NgZone,\n private thyResizableService: ThyResizableService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n this.thyResizableService.handleMouseDownOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.thyDisabled) {\n return;\n }\n this.resizing = true;\n const { mouseEvent } = event;\n this.thyResizableService.startResizing(mouseEvent);\n this.currentHandleEvent = event;\n this.setCursor();\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeStart` listeners,\n // e.g.: `<div thyResizable (thyResizeStart)=\"...\"></div>`.\n if (this.thyResizeStart.observers.length) {\n this.ngZone.run(() => this.thyResizeStart.emit({ mouseEvent }));\n }\n this.nativeElementRect = this.nativeElement.getBoundingClientRect();\n });\n\n this.thyResizableService.documentMouseUpOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.resizing) {\n this.ngZone.run(() => {\n this.resizing = false;\n this.changeDetectorRef.markForCheck();\n });\n this.thyResizableService.documentMouseUpOutsideAngular$.next(event);\n this.endResize(event);\n }\n });\n\n this.thyResizableService.documentMouseMoveOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.resizing) {\n this.resize(event);\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.nativeElement = this.elementRef.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.nativeElement, 'mouseenter')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(true);\n });\n\n fromEvent(this.nativeElement, 'mouseleave')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(false);\n });\n });\n }\n\n setCursor(): void {\n switch (this.currentHandleEvent!.direction) {\n case 'left':\n case 'right':\n this.renderer.setStyle(document.body, 'cursor', 'ew-resize');\n break;\n case 'top':\n case 'bottom':\n this.renderer.setStyle(document.body, 'cursor', 'ns-resize');\n break;\n case 'topLeft':\n case 'bottomRight':\n this.renderer.setStyle(document.body, 'cursor', 'nwse-resize');\n break;\n case 'topRight':\n case 'bottomLeft':\n this.renderer.setStyle(document.body, 'cursor', 'nesw-resize');\n break;\n }\n setCompatibleStyle(document.body, 'user-select', 'none');\n }\n\n endResize(event: MouseEvent | TouchEvent): void {\n this.renderer.setStyle(document.body, 'cursor', '');\n setCompatibleStyle(document.body, 'user-select', '');\n this.removeGhostElement();\n const size = this.sizeCache\n ? { ...this.sizeCache }\n : {\n width: this.nativeElementRect.width,\n height: this.nativeElementRect.height\n };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeEnd` listeners,\n // e.g.: `<div thyResizable (thyResizeEnd)=\"...\"></div>`.\n if (this.thyResizeEnd.observers.length) {\n this.ngZone.run(() => {\n this.thyResizeEnd.emit({\n ...size,\n mouseEvent: event\n });\n });\n }\n this.sizeCache = null;\n this.currentHandleEvent = null;\n }\n\n resize(event: MouseEvent | TouchEvent): void {\n const nativeElementRect = this.nativeElementRect;\n const resizeEvent = getEventWithPoint(event);\n const handleEvent = getEventWithPoint(this.currentHandleEvent!.mouseEvent);\n let width = nativeElementRect.width;\n let height = nativeElementRect.height;\n const ratio = this.thyLockAspectRatio ? width / height : -1;\n switch (this.currentHandleEvent!.direction) {\n case 'bottomRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'bottomLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'topRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'topLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'top':\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'right':\n width = resizeEvent.clientX - nativeElementRect.left;\n break;\n case 'bottom':\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'left':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n }\n const size = this.calcSize(width, height, ratio);\n this.sizeCache = { ...size };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResize` listeners,\n // e.g.: `<div thyResizable (thyResize)=\"...\"></div>`.\n if (this.thyResize.observers.length) {\n this.ngZone.run(() => {\n this.thyResize.emit({\n ...size,\n mouseEvent: event\n });\n });\n }\n\n if (this.thyPreview) {\n this.previewResize(size);\n }\n }\n\n calcSize(width: number, height: number, ratio: number): ThyResizeEvent {\n let newWidth: number;\n let newHeight: number;\n let maxWidth: number;\n let maxHeight: number;\n let col = 0;\n let spanWidth = 0;\n let minWidth = this.thyMinWidth;\n let boundWidth = Infinity;\n let boundHeight = Infinity;\n if (this.thyBounds === 'parent') {\n const parent = this.renderer.parentNode(this.nativeElement);\n if (parent instanceof HTMLElement) {\n const parentRect = parent.getBoundingClientRect();\n boundWidth = parentRect.width;\n boundHeight = parentRect.height;\n }\n } else if (this.thyBounds === 'window') {\n if (typeof window !== 'undefined') {\n boundWidth = window.innerWidth;\n boundHeight = window.innerHeight;\n }\n } else if (this.thyBounds && this.thyBounds.nativeElement && this.thyBounds.nativeElement instanceof HTMLElement) {\n const boundsRect = this.thyBounds.nativeElement.getBoundingClientRect();\n boundWidth = boundsRect.width;\n boundHeight = boundsRect.height;\n }\n\n maxWidth = ensureInBounds(this.thyMaxWidth!, boundWidth);\n maxHeight = ensureInBounds(this.thyMaxHeight!, boundHeight);\n\n if (this.thyGridColumnCount !== -1) {\n spanWidth = maxWidth / this.thyGridColumnCount;\n minWidth = this.thyMinColumn !== -1 ? spanWidth * this.thyMinColumn : minWidth;\n maxWidth = this.thyMaxColumn !== -1 ? spanWidth * this.thyMaxColumn : maxWidth;\n }\n\n if (ratio !== -1) {\n if (/(left|right)/i.test(this.currentHandleEvent!.direction)) {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(newWidth / ratio, this.thyMinHeight), maxHeight);\n if (newHeight >= maxHeight || newHeight <= this.thyMinHeight) {\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n }\n } else {\n newHeight = Math.min(Math.max(height, this.thyMinHeight), maxHeight);\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n if (newWidth >= maxWidth || newWidth <= minWidth) {\n newHeight = Math.min(Math.max(newWidth / ratio, this.thyMinHeight), maxHeight);\n }\n }\n } else {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(height, this.thyMinHeight), maxHeight);\n }\n\n if (this.thyGridColumnCount !== -1) {\n col = Math.round(newWidth / spanWidth);\n newWidth = col * spanWidth;\n }\n\n return {\n col,\n width: newWidth,\n height: newHeight\n };\n }\n\n previewResize({ width, height }: ThyResizeEvent): void {\n this.createGhostElement();\n this.renderer.setStyle(this.ghostElement, 'width', `${width}px`);\n this.renderer.setStyle(this.ghostElement, 'height', `${height}px`);\n }\n\n createGhostElement(): void {\n if (!this.ghostElement) {\n this.ghostElement = this.renderer.createElement('div');\n this.renderer.setAttribute(this.ghostElement, 'class', 'thy-resizable-preview');\n }\n this.renderer.appendChild(this.nativeElement, this.ghostElement);\n }\n\n removeGhostElement(): void {\n if (this.ghostElement) {\n this.renderer.removeChild(this.nativeElement, this.ghostElement);\n }\n }\n\n ngOnDestroy(): void {\n this.ghostElement = null;\n this.sizeCache = null;\n super.ngOnDestroy();\n }\n}\n","import { OnInit, OnDestroy, Component, ChangeDetectionStrategy, Input, Output, NgZone, EventEmitter, ElementRef } from '@angular/core';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ThyResizeDirection } from './interface';\nimport { ThyResizableService } from './resizable.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Constructor, ThyUnsubscribe, MixinBase, mixinUnsubscribe, InputBoolean } from 'ngx-tethys/core';\nimport { fromEvent, merge } from 'rxjs';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgIf } from '@angular/common';\n\nexport class ThyResizeHandleMouseDownEvent {\n constructor(public direction: ThyResizeDirection, public mouseEvent: MouseEvent | TouchEvent) {}\n}\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\nconst passiveEventListenerOptions = <AddEventListenerOptions>normalizePassiveListenerOptions({ passive: true });\n\n/**\n * 定义调整手柄及方向\n * @name thy-resize-handle\n */\n@Component({\n selector: 'thy-resize-handle, [thy-resize-handle]',\n exportAs: 'thyResizeHandle',\n template: `\n <ng-content></ng-content>\n <div *ngIf=\"thyLine\" class=\"thy-resizable-handle-line\"></div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-resizable-handle',\n '[class.thy-resizable-handle-top]': `thyDirection === 'top'`,\n '[class.thy-resizable-handle-right]': `thyDirection === 'right'`,\n '[class.thy-resizable-handle-bottom]': `thyDirection === 'bottom'`,\n '[class.thy-resizable-handle-left]': `thyDirection === 'left'`,\n '[class.thy-resizable-handle-topRight]': `thyDirection === 'topRight'`,\n '[class.thy-resizable-handle-bottomRight]': `thyDirection === 'bottomRight'`,\n '[class.thy-resizable-handle-bottomLeft]': `thyDirection === 'bottomLeft'`,\n '[class.thy-resizable-handle-topLeft]': `thyDirection === 'topLeft'`,\n '[class.thy-resizable-handle-box-hover]': 'entered'\n },\n standalone: true,\n imports: [NgIf]\n})\nexport class ThyResizeHandle extends _MixinBase implements OnInit, OnDestroy {\n /**\n * 调整方向\n * @type top | right | bottom | left | topRight | bottomRight | bottomLeft | topLeft\n */\n @Input() thyDirection: ThyResizeDirection = 'bottomRight';\n\n /**\n * 是否展示拖拽线\n */\n @Input() @InputBoolean() thyLine = false;\n\n /**\n * MouseDown 回调事件\n */\n @Output() readonly thyMouseDown = new EventEmitter<ThyResizeHandleMouseDownEvent>();\n\n private hostRenderer = useHostRenderer();\n\n constructor(private ngZone: NgZone, private thyResizableService: ThyResizableService, private host: ElementRef<HTMLElement>) {\n super();\n }\n\n ngOnInit(): void {\n this.thyResizableService.mouseEnteredOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(entered => {\n if (entered) {\n this.hostRenderer.addClass('thy-resizable-handle-box-hover');\n } else {\n this.hostRenderer.removeClass('thy-resizable-handle-box-hover');\n }\n });\n this.ngZone.runOutsideAngular(() => {\n // Note: since Chrome 56 defaults document level `touchstart` listener to passive.\n // The element `touchstart` listener is not passive by default\n // We never call `preventDefault()` on it, so we're safe making it passive too.\n merge(\n fromEvent<MouseEvent>(this.host.nativeElement, 'mousedown', passiveEventListenerOptions),\n fromEvent<TouchEvent>(this.host.nativeElement, 'touchstart', passiveEventListenerOptions)\n )\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe((event: MouseEvent | TouchEvent) => {\n this.thyResizableService.handleMouseDownOutsideAngular$.next(\n new ThyResizeHandleMouseDownEvent(this.thyDirection, event)\n );\n });\n });\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { InputBoolean } from 'ngx-tethys/core';\nimport { ThyResizeDirection } from './interface';\nimport { ThyResizeHandle } from './resize-handle.component';\nimport { NgFor } from '@angular/common';\n\nexport const DEFAULT_RESIZE_DIRECTION: ThyResizeDirection[] = [\n 'bottomRight',\n 'topRight',\n 'bottomLeft',\n 'topLeft',\n 'bottom',\n 'right',\n 'top',\n 'left'\n];\n\n/**\n * 定义调整手柄的快捷组件\n * @name thy-resize-handles\n */\n@Component({\n selector: 'thy-resize-handles',\n exportAs: 'thyResizeHandles',\n template: ` <thy-resize-handle *ngFor=\"let dir of directions\" [thyLine]=\"thyLine\" [thyDirection]=\"dir\"></thy-resize-handle> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgFor, ThyResizeHandle]\n})\nexport class ThyResizeHandles implements OnChanges {\n /**\n * 定义调整手柄的方向\n * @type ThyResizeDirection[]\n */\n @Input() thyDirections: ThyResizeDirection[] = DEFAULT_RESIZE_DIRECTION;\n\n /**\n * 是否展示拖拽线\n */\n @Input() @InputBoolean() thyLine = false;\n\n directions = new Set<ThyResizeDirection>(this.thyDirections);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyDirections) {\n this.directions = new Set(changes.thyDirections.currentValue);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyResizableDirective } from './resizable.directive';\nimport { ThyResizeHandle } from './resize-handle.component';\nimport { ThyResizeHandles } from './resize-handles.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule, ThyResizableDirective, ThyResizeHandle, ThyResizeHandles],\n exports: [ThyResizableDirective, ThyResizeHandle, ThyResizeHandles]\n})\nexport class ThyResizableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_MixinBase","i2.ThyResizableService","i1.ThyResizableService"],"mappings":";;;;;;;;;;;;AAMA;;AAEG;MAEU,mBAAmB,CAAA;IAoB5B,WAAoB,CAAA,MAAc,EAAoB,QAAa,EAAA;QAA/C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAlB1B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAoD,CAAC;AAEhF;;;;;;;;;AASG;AAEH,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,OAAO,EAAiC,CAAC;AAC9E,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,OAAO,EAA2B,CAAC;AACxE,QAAA,IAAA,CAAA,gCAAgC,GAAG,IAAI,OAAO,EAA2B,CAAC;AAC1E,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,OAAO,EAAW,CAAC;AAGjD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;AAED,IAAA,aAAa,CAAC,KAA8B,EAAA;AACxC,QAAA,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;QAC5D,MAAM,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AACvD,QAAA,MAAM,gBAAgB,GAAG,CAAC,CAA0B,KAAI;AACpD,YAAA,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,SAAC,CAAC;AACF,QAAA,MAAM,cAAc,GAAG,CAAC,CAA0B,KAAI;AAClD,YAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAC,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YAC/B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAI;gBACrC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAwB,CAAC,CAAC;AACnE,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;IAEO,cAAc,GAAA;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAI;YACrC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAwB,CAAC,CAAC;AACtE,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC1B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,8BAA8B,CAAC,QAAQ,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,gCAAgC,CAAC,QAAQ,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AA3DQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,wCAoBgB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHApB3C,mBAAmB,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;0BAqB8B,MAAM;2BAAC,QAAQ,CAAA;;;AC5BlD,SAAU,iBAAiB,CAAC,KAA8B,EAAA;IAC5D,OAAO,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,GAAI,KAAoB,CAAC;AACrG,CAAC;AAEe,SAAA,cAAc,CAAC,KAAa,EAAE,UAAkB,EAAA;IAC5D,OAAO,KAAK,IAAI,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,IAAI,UAAU,CAAC;AAC1E,CAAC;SAEe,kBAAkB,CAAC,OAAoB,EAAE,GAAW,EAAE,KAAa,EAAA;AAC/E,IAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAA,QAAA,EAAW,GAAG,CAAE,CAAA,CAAC,GAAG,KAAK,CAAC;IACxC,OAAO,CAAC,KAAK,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAE,CAAA,CAAC,GAAG,KAAK,CAAC;IACrC,OAAO,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,GAAG,CAAE,CAAA,CAAC,GAAG,KAAK,CAAC;AACxC;;ACMA,MAAMA,YAAU,GAAmD,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAE/F;;;AAGG;AAWG,MAAO,qBAAsB,SAAQA,YAAU,CAAA;IAgFjD,WACY,CAAA,UAAmC,EACnC,QAAmB,EACnB,QAAkB,EAClB,MAAc,EACd,mBAAwC,EACxC,iBAAoC,EAAA;AAE5C,QAAA,KAAK,EAAE,CAAC;QAPA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QACnC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AArFhD;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAkD,QAAQ,CAAC;AAY7E;;AAEG;QACqB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAElD;;AAEG;QACqB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAEjD;;AAEG;QACqB,IAAkB,CAAA,kBAAA,GAAW,CAAC,CAAC,CAAC;AAExD;;AAEG;QACqB,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC,CAAC;AAElD;;AAEG;QACqB,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC,CAAC;AAElD;;AAEG;QACsB,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AAE7D;;AAEG;QACsB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAErD;;AAEG;QACsB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAEtD;;AAEG;AACgB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAkB,CAAC;AAElE;;AAEG;AACgB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAkB,CAAC;AAEvE;;AAEG;AACgB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAkB,CAAC;QAErE,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAGT,IAAS,CAAA,SAAA,GAA0B,IAAI,CAAC;QACxC,IAAY,CAAA,YAAA,GAA0B,IAAI,CAAC;QAC3C,IAAkB,CAAA,kBAAA,GAAyC,IAAI,CAAC;AAWpE,QAAA,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC3G,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,OAAO;aACV;AACD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,SAAS,EAAE,CAAC;;;YAGjB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE;AACtC,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;aACnE;YACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AACxE,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC3G,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,oBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,oBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AAC1C,iBAAC,CAAC,CAAC;gBACH,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpE,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACzB;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,mBAAmB,CAAC,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC7G,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACtB;AACL,SAAC,CAAC,CAAC;KACN;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC1B,OAAO;SACV;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;AACtC,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,MAAK;gBACZ,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpE,aAAC,CAAC,CAAC;AAEP,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;AACtC,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,MAAK;gBACZ,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrE,aAAC,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;KACN;IAED,SAAS,GAAA;AACL,QAAA,QAAQ,IAAI,CAAC,kBAAmB,CAAC,SAAS;AACtC,YAAA,KAAK,MAAM,CAAC;AACZ,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAC7D,MAAM;AACV,YAAA,KAAK,KAAK,CAAC;AACX,YAAA,KAAK,QAAQ;AACT,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAC7D,MAAM;AACV,YAAA,KAAK,SAAS,CAAC;AACf,YAAA,KAAK,aAAa;AACd,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;gBAC/D,MAAM;AACV,YAAA,KAAK,UAAU,CAAC;AAChB,YAAA,KAAK,YAAY;AACb,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;gBAC/D,MAAM;SACb;QACD,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;KAC5D;AAED,IAAA,SAAS,CAAC,KAA8B,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpD,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;AACvB,cAAE,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;AACvB,cAAE;AACI,gBAAA,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACnC,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM;aACxC,CAAC;;;QAGR,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACnB,oBAAA,GAAG,IAAI;AACP,oBAAA,UAAU,EAAE,KAAK;AACpB,iBAAA,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;SACN;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAClC;AAED,IAAA,MAAM,CAAC,KAA8B,EAAA;AACjC,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACjD,QAAA,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,kBAAmB,CAAC,UAAU,CAAC,CAAC;AAC3E,QAAA,IAAI,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;AACpC,QAAA,IAAI,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;AACtC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5D,QAAA,QAAQ,IAAI,CAAC,kBAAmB,CAAC,SAAS;AACtC,YAAA,KAAK,aAAa;gBACd,KAAK,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC;gBACrD,MAAM,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC;gBACrD,MAAM;AACV,YAAA,KAAK,YAAY;AACb,gBAAA,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC9E,MAAM,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC;gBACrD,MAAM;AACV,YAAA,KAAK,UAAU;gBACX,KAAK,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC;AACrD,gBAAA,MAAM,GAAG,iBAAiB,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;gBAChF,MAAM;AACV,YAAA,KAAK,SAAS;AACV,gBAAA,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9E,gBAAA,MAAM,GAAG,iBAAiB,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;gBAChF,MAAM;AACV,YAAA,KAAK,KAAK;AACN,gBAAA,MAAM,GAAG,iBAAiB,CAAC,MAAM,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;gBAChF,MAAM;AACV,YAAA,KAAK,OAAO;gBACR,KAAK,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC;gBACrD,MAAM;AACV,YAAA,KAAK,QAAQ;gBACT,MAAM,GAAG,WAAW,CAAC,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC;gBACrD,MAAM;AACV,YAAA,KAAK,MAAM;AACP,gBAAA,KAAK,GAAG,iBAAiB,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;SACrF;AACD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;;;QAG7B,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAChB,oBAAA,GAAG,IAAI;AACP,oBAAA,UAAU,EAAE,KAAK;AACpB,iBAAA,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;SACN;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC5B;KACJ;AAED,IAAA,QAAQ,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa,EAAA;AACjD,QAAA,IAAI,QAAgB,CAAC;AACrB,QAAA,IAAI,SAAiB,CAAC;AACtB,QAAA,IAAI,QAAgB,CAAC;AACrB,QAAA,IAAI,SAAiB,CAAC;QACtB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,IAAI,UAAU,GAAG,QAAQ,CAAC;QAC1B,IAAI,WAAW,GAAG,QAAQ,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC7B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5D,YAAA,IAAI,MAAM,YAAY,WAAW,EAAE;AAC/B,gBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;AAClD,gBAAA,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;AAC9B,gBAAA,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;aACnC;SACJ;AAAM,aAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AACpC,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC/B,gBAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,gBAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;aACpC;SACJ;AAAM,aAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,YAAY,WAAW,EAAE;YAC9G,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AACxE,YAAA,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;AAC9B,YAAA,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;SACnC;QAED,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,WAAY,EAAE,UAAU,CAAC,CAAC;QACzD,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,YAAa,EAAE,WAAW,CAAC,CAAC;AAE5D,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC,EAAE;AAChC,YAAA,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAC/C,YAAA,QAAQ,GAAG,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAC/E,YAAA,QAAQ,GAAG,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAClF;AAED,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAmB,CAAC,SAAS,CAAC,EAAE;AAC1D,gBAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACzD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC/E,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;AAC1D,oBAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;iBACxE;aACJ;iBAAM;AACH,gBAAA,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;AACrE,gBAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACrE,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,EAAE;oBAC9C,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;iBAClF;aACJ;SACJ;aAAM;AACH,YAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,YAAA,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;SACxE;AAED,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC,EAAE;YAChC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AACvC,YAAA,QAAQ,GAAG,GAAG,GAAG,SAAS,CAAC;SAC9B;QAED,OAAO;YACH,GAAG;AACH,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,MAAM,EAAE,SAAS;SACpB,CAAC;KACL;AAED,IAAA,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAkB,EAAA;QAC3C,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,CAAC,CAAC;KACtE;IAED,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvD,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;SACnF;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACpE;IAED,kBAAkB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SACpE;KACJ;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,WAAW,EAAE,CAAC;KACvB;8GAhVQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EARnB,CAAC,mBAAmB,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AAmBR,UAAA,CAAA;AAAd,IAAA,WAAW,EAAE;;AAAuB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAKtB,UAAA,CAAA;AAAd,IAAA,WAAW,EAAE;;AAAsB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAKrB,UAAA,CAAA;AAAd,IAAA,WAAW,EAAE;;AAA2B,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAK1B,UAAA,CAAA;AAAd,IAAA,WAAW,EAAE;;AAA0B,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAKzB,UAAA,CAAA;AAAd,IAAA,WAAW,EAAE;;AAAiC,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAKhC,UAAA,CAAA;AAAd,IAAA,WAAW,EAAE;;AAA2B,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAK1B,UAAA,CAAA;AAAd,IAAA,WAAW,EAAE;;AAA2B,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAKzB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;;AAAqC,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAKpC,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;;AAA6B,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAK5B,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;;AAA8B,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FAxD7C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,SAAS,EAAE,CAAC,mBAAmB,CAAC;AAChC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,gCAAgC,EAAE,UAAU;AAC5C,wBAAA,gCAAgC,EAAE,aAAa;AAClD,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;kNAOY,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKkB,YAAY,EAAA,CAAA;sBAAnC,KAAK;gBAKkB,WAAW,EAAA,CAAA;sBAAlC,KAAK;gBAKkB,YAAY,EAAA,CAAA;sBAAnC,KAAK;gBAKkB,WAAW,EAAA,CAAA;sBAAlC,KAAK;gBAKkB,kBAAkB,EAAA,CAAA;sBAAzC,KAAK;gBAKkB,YAAY,EAAA,CAAA;sBAAnC,KAAK;gBAKkB,YAAY,EAAA,CAAA;sBAAnC,KAAK;gBAKmB,kBAAkB,EAAA,CAAA;sBAA1C,KAAK;gBAKmB,UAAU,EAAA,CAAA;sBAAlC,KAAK;gBAKmB,WAAW,EAAA,CAAA;sBAAnC,KAAK;gBAKa,SAAS,EAAA,CAAA;sBAA3B,MAAM;gBAKY,cAAc,EAAA,CAAA;sBAAhC,MAAM;gBAKY,YAAY,EAAA,CAAA;sBAA9B,MAAM;;;MClGE,6BAA6B,CAAA;IACtC,WAAmB,CAAA,SAA6B,EAAS,UAAmC,EAAA;QAAzE,IAAS,CAAA,SAAA,GAAT,SAAS,CAAoB;QAAS,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;KAAI;AACnG,CAAA;AAED,MAAM,UAAU,GAAmD,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAE/F,MAAM,2BAA2B,GAA4B,+BAA+B,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEhH;;;AAGG;AAwBG,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAmB3C,IAAA,WAAA,CAAoB,MAAc,EAAU,mBAAwC,EAAU,IAA6B,EAAA;AACvH,QAAA,KAAK,EAAE,CAAC;QADQ,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAAU,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAyB;AAlB3H;;;AAGG;QACM,IAAY,CAAA,YAAA,GAAuB,aAAa,CAAC;AAE1D;;AAEG;QACsB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEzC;;AAEG;AACgB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAiC,CAAC;QAE5E,IAAY,CAAA,YAAA,GAAG,eAAe,EAAE,CAAC;KAIxC;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAG;YAC1G,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;aAChE;iBAAM;AACH,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;aACnE;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;;;;YAI/B,KAAK,CACD,SAAS,CAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,2BAA2B,CAAC,EACxF,SAAS,CAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAC5F;AACI,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACpC,iBAAA,SAAS,CAAC,CAAC,KAA8B,KAAI;AAC1C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,IAAI,CACxD,IAAI,6BAA6B,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAC9D,CAAC;AACN,aAAC,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;KACN;IACD,WAAW,GAAA;QACP,KAAK,CAAC,WAAW,EAAE,CAAC;KACvB;8GAjDQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EApBd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,wBAAA,EAAA,kCAAA,EAAA,0BAAA,EAAA,mCAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,yBAAA,EAAA,qCAAA,EAAA,6BAAA,EAAA,wCAAA,EAAA,gCAAA,EAAA,uCAAA,EAAA,+BAAA,EAAA,oCAAA,EAAA,4BAAA,EAAA,sCAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAeS,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AAYW,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;;AAAiB,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FAVhC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAvB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;AAGT,IAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,sBAAsB;AAC7B,wBAAA,kCAAkC,EAAE,CAAwB,sBAAA,CAAA;AAC5D,wBAAA,oCAAoC,EAAE,CAA0B,wBAAA,CAAA;AAChE,wBAAA,qCAAqC,EAAE,CAA2B,yBAAA,CAAA;AAClE,wBAAA,mCAAmC,EAAE,CAAyB,uBAAA,CAAA;AAC9D,wBAAA,uCAAuC,EAAE,CAA6B,2BAAA,CAAA;AACtE,wBAAA,0CAA0C,EAAE,CAAgC,8BAAA,CAAA;AAC5E,wBAAA,yCAAyC,EAAE,CAA+B,6BAAA,CAAA;AAC1E,wBAAA,sCAAsC,EAAE,CAA4B,0BAAA,CAAA;AACpE,wBAAA,wCAAwC,EAAE,SAAS;AACtD,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,IAAI,CAAC;AAClB,iBAAA,CAAA;mIAMY,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKmB,OAAO,EAAA,CAAA;sBAA/B,KAAK;gBAKa,YAAY,EAAA,CAAA;sBAA9B,MAAM;;;ACtDE,MAAA,wBAAwB,GAAyB;IAC1D,aAAa;IACb,UAAU;IACV,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM;EACR;AAEF;;;AAGG;MASU,gBAAgB,CAAA;AAR7B,IAAA,WAAA,GAAA;AASI;;;AAGG;QACM,IAAa,CAAA,aAAA,GAAyB,wBAAwB,CAAC;AAExE;;AAEG;QACsB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEzC,IAAU,CAAA,UAAA,GAAG,IAAI,GAAG,CAAqB,IAAI,CAAC,aAAa,CAAC,CAAC;AAOhE,KAAA;AALG,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;SACjE;KACJ;8GAlBQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EALf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iHAAA,CAAmH,EAGnH,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,KAAK,mHAAE,eAAe,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AAYP,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;;AAAiB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FAVhC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,CAAmH,iHAAA,CAAA;oBAC7H,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC;AACpC,iBAAA,CAAA;8BAMY,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAKmB,OAAO,EAAA,CAAA;sBAA/B,KAAK;;;MC7BG,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAHjB,OAAA,EAAA,CAAA,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,CACtE,EAAA,OAAA,EAAA,CAAA,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEzD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHjB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGb,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,CAAC;AACjF,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,eAAe,EAAE,gBAAgB,CAAC;AACtE,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
@@ -169,6 +169,7 @@ class ThyTabs extends _MixinBase {
169
169
  this.tabs.changes.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(data => {
170
170
  this.thyAnimated && (this.transitionStarted = true);
171
171
  this.activeTabIndex = data.length - 1;
172
+ this.cd.markForCheck();
172
173
  });
173
174
  }
174
175
  get tabPaneAnimated() {
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-tabs.mjs","sources":["../../../src/tabs/tab.component.ts","../../../src/tabs/tab-content.component.ts","../../../src/tabs/tabs.component.ts","../../../src/tabs/tabs.component.html","../../../src/tabs/tabs.module.ts","../../../src/tabs/ngx-tethys-tabs.ts"],"sourcesContent":["import { Component, OnInit, ChangeDetectionStrategy, Input, ViewChild, TemplateRef, ContentChild } from '@angular/core';\nimport { InputBoolean } from 'ngx-tethys/core';\n\n/**\n * 选项卡的选项组件\n * @name thy-tab\n */\n@Component({\n selector: 'thy-tab',\n template: ` <ng-template #content><ng-content></ng-content></ng-template> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyTab implements OnInit {\n /**\n * 自定义选项标题的模板\n * @type TemplateRef\n */\n @ContentChild('title') titleTemplateRef: TemplateRef<unknown>;\n\n @ViewChild('content', { static: true }) content: TemplateRef<HTMLElement>;\n\n /**\n * 选项标题\n */\n @Input() thyTitle: string;\n\n /**\n * 选项的唯一标识\n */\n @Input() id: string;\n\n /**\n * 是否禁用选项\n * @default false\n */\n @Input() @InputBoolean() thyDisabled: boolean;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tab-content, [thyTabContent]',\n exportAs: 'thyTabContent',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-container *ngIf=\"active\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n `,\n host: {\n class: 'thy-tab-content',\n '[attr.aria-hidden]': '!active',\n '[attr.tabindex]': 'active ? 0 : -1',\n '[style.visibility]': 'tabPaneAnimated ? active ? null : \"hidden\" : null',\n '[style.height]': 'tabPaneAnimated ? active ? null : 0 : null',\n '[style.overflow-y]': 'tabPaneAnimated ? active ? null : \"none\" : null',\n '[style.display]': '!tabPaneAnimated ? active ? null : \"none\" : null'\n },\n standalone: true,\n imports: [NgIf, NgTemplateOutlet]\n})\nexport class ThyTabContent {\n @Input() content: TemplateRef<void> | null = null;\n\n @Input() active = false;\n\n @Input() tabPaneAnimated = true;\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { Constructor, InputBoolean, MixinBase, mixinUnsubscribe, ThyUnsubscribe } from 'ngx-tethys/core';\nimport { isString } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyTab } from './tab.component';\nimport { ThyActiveTabInfo, ThyTabActiveEvent } from './types';\nimport { ThyTabContent } from './tab-content.component';\nimport { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ThyNav, ThyNavItemDirective } from 'ngx-tethys/nav';\n\nexport type ThyTabsSize = 'lg' | 'md' | 'sm';\n\nexport type ThyTabsType = 'pulled' | 'tabs' | 'pills' | 'lite';\n\nexport type ThyTabsPosition = 'top' | 'left';\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\n/**\n * 选项卡切换组件\n * @name thy-tabs\n */\n@Component({\n selector: 'thy-tabs',\n templateUrl: './tabs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tabs',\n '[class.thy-tabs-top]': `thyPosition === 'top'`,\n '[class.thy-tabs-left]': `thyPosition === 'left'`,\n '[style.overflow]': `transitionStarted ? \"hidden\" : null`\n },\n standalone: true,\n imports: [ThyNav, NgFor, ThyNavItemDirective, NgIf, NgTemplateOutlet, ThyTabContent]\n})\nexport class ThyTabs extends _MixinBase implements OnInit, OnChanges, AfterContentInit {\n @ContentChildren(ThyTab, { descendants: true }) tabs = new QueryList<ThyTab>();\n\n /**\n * 标签类型\n * @type 'pulled' | 'tabs' | 'pills' | 'lite'\n */\n @Input() thyType: ThyTabsType = 'tabs';\n\n /**\n * 选项卡的大小\n * @type 'lg' | 'md' | 'sm'\n */\n @Input() thySize: ThyTabsSize = 'md';\n\n /**\n * 激活的项\n */\n @Input()\n set thyActiveTab(value: ThyActiveTabInfo) {\n if (isString(value)) {\n this.activeTabId = value;\n this.activeTabIndex = undefined;\n } else {\n this.activeTabIndex = value;\n this.activeTabId = undefined;\n }\n }\n\n /**\n * 附加操作\n */\n @Input() thyExtra: TemplateRef<unknown>;\n\n /**\n * 选项卡的位置\n * @type 'top' | 'left'\n */\n @Input() thyPosition: ThyTabsPosition = 'top';\n\n /**\n * 是否使用动画切换 Tabs\n */\n @Input() @InputBoolean() thyAnimated: boolean = false;\n\n /**\n * 响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n */\n @Input() @InputBoolean() thyResponsive: boolean = false;\n\n /**\n * 激活的项发生改变时的回调\n */\n @Output() thyActiveTabChange: EventEmitter<ThyTabActiveEvent> = new EventEmitter<ThyTabActiveEvent>();\n\n activeTabIndex: number = 0;\n\n activeTabId: string;\n\n transitionStarted: boolean = false;\n\n constructor(private cd: ChangeDetectorRef, private el: ElementRef) {\n super();\n }\n\n ngOnInit(): void {\n const tabsContent = this.el.nativeElement.querySelector('.thy-tabs-content');\n fromEvent(tabsContent, 'transitionend')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.transitionStarted = false;\n this.cd.markForCheck();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyActiveTab } = changes;\n if (thyActiveTab && !thyActiveTab.firstChange && this.thyAnimated) {\n const index = thyActiveTab?.currentValue?.index || Array.from(this.tabs).findIndex(k => k.id === thyActiveTab?.currentValue.id);\n this.transitionStarted = this.activeTabIndex !== index;\n this.activeTabIndex = index;\n }\n }\n\n ngAfterContentInit() {\n this.tabs.changes.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(data => {\n this.thyAnimated && (this.transitionStarted = true);\n this.activeTabIndex = data.length - 1;\n });\n }\n\n get tabPaneAnimated(): boolean {\n return this.thyPosition === 'top' && this.thyAnimated;\n }\n\n getTabContentMarginLeft(): string {\n if (this.tabPaneAnimated) {\n return `${-(this.activeTabIndex || 0) * 100}%`;\n }\n return '';\n }\n\n activeTab(tab: ThyTab, index: number) {\n if (tab.thyDisabled) {\n return;\n }\n this.activeTabId = tab.id || null;\n this.thyAnimated && (this.transitionStarted = this.activeTabIndex !== index);\n this.activeTabIndex = index;\n const activeTab = tab.id ? tab.id : index;\n this.thyActiveTabChange.emit(activeTab);\n }\n\n tabTrackBy(index: number, item: ThyTab) {\n return index;\n }\n}\n","<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType\"\n [thySize]=\"thySize\"\n [thyExtra]=\"thyExtra\"\n [thyVertical]=\"thyPosition === 'left'\"\n [thyResponsive]=\"thyResponsive\"\n>\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id\"\n [thyNavItemDisabled]=\"tab.thyDisabled\"\n [thyNavItemActive]=\"(tab.id && activeTabId && tab.id === activeTabId) ?? i === activeTabIndex\"\n *ngFor=\"let tab of tabs; let i = index; trackBy: tabTrackBy\"\n (click)=\"activeTab(tab, i)\"\n >\n <ng-container *ngIf=\"tab.titleTemplateRef; else titleName\">\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n </ng-container>\n <ng-template #titleName>\n {{ tab.thyTitle }}\n </ng-template>\n </a>\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n <div\n thyTabContent\n *ngFor=\"let tab of tabs; let i = index; trackBy: tabTrackBy\"\n [active]=\"(tab.id && activeTabId && tab.id === activeTabId) ?? i === activeTabIndex\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"\n ></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTabs } from './tabs.component';\nimport { ThyTab } from './tab.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyNavModule } from 'ngx-tethys/nav';\nimport { ThyTabContent } from './tab-content.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent],\n exports: [ThyTabs, ThyTab]\n})\nexport class ThyTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-tabs.mjs","sources":["../../../src/tabs/tab.component.ts","../../../src/tabs/tab-content.component.ts","../../../src/tabs/tabs.component.ts","../../../src/tabs/tabs.component.html","../../../src/tabs/tabs.module.ts","../../../src/tabs/ngx-tethys-tabs.ts"],"sourcesContent":["import { Component, OnInit, ChangeDetectionStrategy, Input, ViewChild, TemplateRef, ContentChild } from '@angular/core';\nimport { InputBoolean } from 'ngx-tethys/core';\n\n/**\n * 选项卡的选项组件\n * @name thy-tab\n */\n@Component({\n selector: 'thy-tab',\n template: ` <ng-template #content><ng-content></ng-content></ng-template> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyTab implements OnInit {\n /**\n * 自定义选项标题的模板\n * @type TemplateRef\n */\n @ContentChild('title') titleTemplateRef: TemplateRef<unknown>;\n\n @ViewChild('content', { static: true }) content: TemplateRef<HTMLElement>;\n\n /**\n * 选项标题\n */\n @Input() thyTitle: string;\n\n /**\n * 选项的唯一标识\n */\n @Input() id: string;\n\n /**\n * 是否禁用选项\n * @default false\n */\n @Input() @InputBoolean() thyDisabled: boolean;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tab-content, [thyTabContent]',\n exportAs: 'thyTabContent',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-container *ngIf=\"active\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n `,\n host: {\n class: 'thy-tab-content',\n '[attr.aria-hidden]': '!active',\n '[attr.tabindex]': 'active ? 0 : -1',\n '[style.visibility]': 'tabPaneAnimated ? active ? null : \"hidden\" : null',\n '[style.height]': 'tabPaneAnimated ? active ? null : 0 : null',\n '[style.overflow-y]': 'tabPaneAnimated ? active ? null : \"none\" : null',\n '[style.display]': '!tabPaneAnimated ? active ? null : \"none\" : null'\n },\n standalone: true,\n imports: [NgIf, NgTemplateOutlet]\n})\nexport class ThyTabContent {\n @Input() content: TemplateRef<void> | null = null;\n\n @Input() active = false;\n\n @Input() tabPaneAnimated = true;\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { Constructor, InputBoolean, MixinBase, mixinUnsubscribe, ThyUnsubscribe } from 'ngx-tethys/core';\nimport { isString } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyTab } from './tab.component';\nimport { ThyActiveTabInfo, ThyTabActiveEvent } from './types';\nimport { ThyTabContent } from './tab-content.component';\nimport { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ThyNav, ThyNavItemDirective } from 'ngx-tethys/nav';\n\nexport type ThyTabsSize = 'lg' | 'md' | 'sm';\n\nexport type ThyTabsType = 'pulled' | 'tabs' | 'pills' | 'lite';\n\nexport type ThyTabsPosition = 'top' | 'left';\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\n/**\n * 选项卡切换组件\n * @name thy-tabs\n */\n@Component({\n selector: 'thy-tabs',\n templateUrl: './tabs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tabs',\n '[class.thy-tabs-top]': `thyPosition === 'top'`,\n '[class.thy-tabs-left]': `thyPosition === 'left'`,\n '[style.overflow]': `transitionStarted ? \"hidden\" : null`\n },\n standalone: true,\n imports: [ThyNav, NgFor, ThyNavItemDirective, NgIf, NgTemplateOutlet, ThyTabContent]\n})\nexport class ThyTabs extends _MixinBase implements OnInit, OnChanges, AfterContentInit {\n @ContentChildren(ThyTab, { descendants: true }) tabs = new QueryList<ThyTab>();\n\n /**\n * 标签类型\n * @type 'pulled' | 'tabs' | 'pills' | 'lite'\n */\n @Input() thyType: ThyTabsType = 'tabs';\n\n /**\n * 选项卡的大小\n * @type 'lg' | 'md' | 'sm'\n */\n @Input() thySize: ThyTabsSize = 'md';\n\n /**\n * 激活的项\n */\n @Input()\n set thyActiveTab(value: ThyActiveTabInfo) {\n if (isString(value)) {\n this.activeTabId = value;\n this.activeTabIndex = undefined;\n } else {\n this.activeTabIndex = value;\n this.activeTabId = undefined;\n }\n }\n\n /**\n * 附加操作\n */\n @Input() thyExtra: TemplateRef<unknown>;\n\n /**\n * 选项卡的位置\n * @type 'top' | 'left'\n */\n @Input() thyPosition: ThyTabsPosition = 'top';\n\n /**\n * 是否使用动画切换 Tabs\n */\n @Input() @InputBoolean() thyAnimated: boolean = false;\n\n /**\n * 响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n */\n @Input() @InputBoolean() thyResponsive: boolean = false;\n\n /**\n * 激活的项发生改变时的回调\n */\n @Output() thyActiveTabChange: EventEmitter<ThyTabActiveEvent> = new EventEmitter<ThyTabActiveEvent>();\n\n activeTabIndex: number = 0;\n\n activeTabId: string;\n\n transitionStarted: boolean = false;\n\n constructor(private cd: ChangeDetectorRef, private el: ElementRef) {\n super();\n }\n\n ngOnInit(): void {\n const tabsContent = this.el.nativeElement.querySelector('.thy-tabs-content');\n fromEvent(tabsContent, 'transitionend')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.transitionStarted = false;\n this.cd.markForCheck();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyActiveTab } = changes;\n if (thyActiveTab && !thyActiveTab.firstChange && this.thyAnimated) {\n const index = thyActiveTab?.currentValue?.index || Array.from(this.tabs).findIndex(k => k.id === thyActiveTab?.currentValue.id);\n this.transitionStarted = this.activeTabIndex !== index;\n this.activeTabIndex = index;\n }\n }\n\n ngAfterContentInit() {\n this.tabs.changes.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(data => {\n this.thyAnimated && (this.transitionStarted = true);\n this.activeTabIndex = data.length - 1;\n this.cd.markForCheck();\n });\n }\n\n get tabPaneAnimated(): boolean {\n return this.thyPosition === 'top' && this.thyAnimated;\n }\n\n getTabContentMarginLeft(): string {\n if (this.tabPaneAnimated) {\n return `${-(this.activeTabIndex || 0) * 100}%`;\n }\n return '';\n }\n\n activeTab(tab: ThyTab, index: number) {\n if (tab.thyDisabled) {\n return;\n }\n this.activeTabId = tab.id || null;\n this.thyAnimated && (this.transitionStarted = this.activeTabIndex !== index);\n this.activeTabIndex = index;\n const activeTab = tab.id ? tab.id : index;\n this.thyActiveTabChange.emit(activeTab);\n }\n\n tabTrackBy(index: number, item: ThyTab) {\n return index;\n }\n}\n","<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType\"\n [thySize]=\"thySize\"\n [thyExtra]=\"thyExtra\"\n [thyVertical]=\"thyPosition === 'left'\"\n [thyResponsive]=\"thyResponsive\"\n>\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id\"\n [thyNavItemDisabled]=\"tab.thyDisabled\"\n [thyNavItemActive]=\"(tab.id && activeTabId && tab.id === activeTabId) ?? i === activeTabIndex\"\n *ngFor=\"let tab of tabs; let i = index; trackBy: tabTrackBy\"\n (click)=\"activeTab(tab, i)\"\n >\n <ng-container *ngIf=\"tab.titleTemplateRef; else titleName\">\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n </ng-container>\n <ng-template #titleName>\n {{ tab.thyTitle }}\n </ng-template>\n </a>\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n <div\n thyTabContent\n *ngFor=\"let tab of tabs; let i = index; trackBy: tabTrackBy\"\n [active]=\"(tab.id && activeTabId && tab.id === activeTabId) ?? i === activeTabIndex\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"\n ></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTabs } from './tabs.component';\nimport { ThyTab } from './tab.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyNavModule } from 'ngx-tethys/nav';\nimport { ThyTabContent } from './tab-content.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent],\n exports: [ThyTabs, ThyTab]\n})\nexport class ThyTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('17.0.0-next.8');
3
+ const VERSION = new Version('17.0.1');
4
4
 
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('17.0.0-next.8');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe;;ACFlD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('17.0.1');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-tethys",
3
- "version": "17.0.0-next.8",
3
+ "version": "17.0.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/atinc/ngx-tethys.git"
@@ -524,7 +524,7 @@
524
524
  "peerDependencies": {
525
525
  "@angular/core": "^17.0.0",
526
526
  "@angular/cdk": "^17.0.0",
527
- "@tethys/cdk": "^17.0.0-next.2",
527
+ "@tethys/cdk": "^17.0.0",
528
528
  "date-fns": "^2.6.0",
529
529
  "@tethys/icons": "^1.4.23",
530
530
  "rxjs": "^6.5.4 || ^7.0.0"
@@ -83,7 +83,6 @@ export declare class ThyResizableDirective extends _MixinBase implements AfterVi
83
83
  constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2, platform: Platform, ngZone: NgZone, thyResizableService: ThyResizableService, changeDetectorRef: ChangeDetectorRef);
84
84
  ngAfterViewInit(): void;
85
85
  setCursor(): void;
86
- setPosition(): void;
87
86
  endResize(event: MouseEvent | TouchEvent): void;
88
87
  resize(event: MouseEvent | TouchEvent): void;
89
88
  calcSize(width: number, height: number, ratio: number): ThyResizeEvent;
@@ -6,6 +6,7 @@ $resize-line-width: 2px;
6
6
  $resize-top: -5px;
7
7
 
8
8
  .#{$resizable-prefix-cls} {
9
+ position: relative;
9
10
  &-preview {
10
11
  position: absolute;
11
12
  top: 0;
@@ -4,5 +4,5 @@ exports.DEPENDENCIES = void 0;
4
4
  exports.DEPENDENCIES = {
5
5
  '@angular/cdk': '^17.0.0',
6
6
  'date-fns': '^2.6.0',
7
- '@tethys/icons': '1.4.5'
7
+ '@tethys/icons': '^1.4.23'
8
8
  };
@@ -1 +1 @@
1
- export declare const VERSION = "17.0.0-next.8";
1
+ export declare const VERSION = "17.0.1";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '17.0.0-next.8';
4
+ exports.VERSION = '17.0.1';