@acorex/cdk 20.2.38 → 20.2.40
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isPlatformBrowser } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { signal, input, inject, ElementRef, PLATFORM_ID, effect, Directive } from '@angular/core';
|
|
3
|
+
import { signal, input, inject, ElementRef, PLATFORM_ID, effect, untracked, Directive } from '@angular/core';
|
|
4
4
|
|
|
5
5
|
class AXCarouselDirective {
|
|
6
6
|
constructor() {
|
|
@@ -21,17 +21,20 @@ class AXCarouselDirective {
|
|
|
21
21
|
slides?.forEach((item) => {
|
|
22
22
|
item.classList.add('swiper-slide');
|
|
23
23
|
});
|
|
24
|
-
setTimeout(() => {
|
|
25
|
-
this.init(this.el.nativeElement, this.carouselOptions());
|
|
26
|
-
});
|
|
27
24
|
}, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
|
|
25
|
+
this.#eff2 = effect(() => {
|
|
26
|
+
untracked(() => {
|
|
27
|
+
if (this.carousel())
|
|
28
|
+
this.carousel().destroy;
|
|
29
|
+
});
|
|
30
|
+
this.init(this.el.nativeElement, this.carouselOptions());
|
|
31
|
+
}, ...(ngDevMode ? [{ debugName: "#eff2" }] : []));
|
|
28
32
|
}
|
|
29
33
|
#eff;
|
|
30
|
-
|
|
34
|
+
#eff2;
|
|
35
|
+
async init(container, option = {}) {
|
|
31
36
|
if (!isPlatformBrowser(this.platformId))
|
|
32
37
|
return;
|
|
33
|
-
if (!option || Object.keys(option).length === 0)
|
|
34
|
-
return;
|
|
35
38
|
const { A11y, Autoplay, Controller, EffectCoverflow, EffectCube, EffectFade, EffectFlip, EffectCreative, EffectCards, HashNavigation, History, Keyboard, Mousewheel, Navigation, Pagination, Parallax, Scrollbar, Thumbs, Virtual, Zoom, FreeMode, Grid, Manipulation, } = await import('swiper/modules');
|
|
36
39
|
const res = new (await import('swiper')).Swiper(container, {
|
|
37
40
|
...option,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-carousel.mjs","sources":["../tmp-esm2022/carousel/carousel.directive.js","../tmp-esm2022/carousel/acorex-cdk-carousel.js"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { Directive, effect, ElementRef, inject, input, PLATFORM_ID, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXCarouselDirective {\n constructor() {\n this.carousel = signal(null, ...(ngDevMode ? [{ debugName: \"carousel\" }] : []));\n this.carouselOptions = input(...(ngDevMode ? [undefined, { debugName: \"carouselOptions\" }] : []));\n this.el = inject(ElementRef);\n this.platformId = inject(PLATFORM_ID);\n this.#eff = effect(() => {\n if (!isPlatformBrowser(this.platformId))\n return;\n const parentElem = this.el.nativeElement;\n const slides = parentElem.querySelectorAll('.ax-carousel-slide');\n parentElem.querySelector('.ax-carousel-wrapper')?.classList.add('swiper-wrapper');\n parentElem.querySelector('.ax-carousel-pagination')?.classList.add('swiper-pagination');\n parentElem.querySelector('.ax-carousel-scrollbar')?.classList.add('swiper-scrollbar');\n parentElem.querySelector('.ax-carousel-button-prev')?.classList.add('swiper-button-prev');\n parentElem.querySelector('.ax-carousel-button-next')?.classList.add('swiper-button-next');\n slides?.forEach((item) => {\n item.classList.add('swiper-slide');\n });\n setTimeout(() => {\n this.init(this.el.nativeElement, this.carouselOptions());\n });\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #eff;\n async init(container, option) {\n if (!isPlatformBrowser(this.platformId))\n return;\n if (!option || Object.keys(option).length === 0)\n return;\n const { A11y, Autoplay, Controller, EffectCoverflow, EffectCube, EffectFade, EffectFlip, EffectCreative, EffectCards, HashNavigation, History, Keyboard, Mousewheel, Navigation, Pagination, Parallax, Scrollbar, Thumbs, Virtual, Zoom, FreeMode, Grid, Manipulation, } = await import('swiper/modules');\n const res = new (await import('swiper')).Swiper(container, {\n ...option,\n modules: [\n A11y,\n Autoplay,\n Controller,\n EffectCoverflow,\n EffectCube,\n EffectFade,\n EffectFlip,\n EffectCreative,\n EffectCards,\n HashNavigation,\n History,\n Keyboard,\n Mousewheel,\n Navigation,\n Pagination,\n Parallax,\n Scrollbar,\n Thumbs,\n Virtual,\n Zoom,\n FreeMode,\n Grid,\n Manipulation,\n ],\n });\n this.carousel.set(res);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXCarouselDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.9\", type: AXCarouselDirective, isStandalone: true, selector: \"[axCarousel]\", inputs: { carouselOptions: { classPropertyName: \"carouselOptions\", publicName: \"carouselOptions\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"axCarousel\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXCarouselDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axCarousel]',\n exportAs: 'axCarousel',\n }]\n }], propDecorators: { carouselOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: \"carouselOptions\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2Nhcm91c2VsL3NyYy9jYXJvdXNlbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVbEcsTUFBTSxPQUFPLG1CQUFtQjtJQUpoQztRQUtFLGFBQVEsR0FBRyxNQUFNLENBQWEsSUFBSSxvREFBQyxDQUFDO1FBQ3BDLG9CQUFlLEdBQUcsS0FBSyxxRUFBcUIsQ0FBQztRQUNyQyxPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFekMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQUUsT0FBTztZQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQTRCLENBQUM7WUFDeEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFFakUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNsRixVQUFVLENBQUMsYUFBYSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3hGLFVBQVUsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDdEYsVUFBVSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUMxRixVQUFVLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBRTFGLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7WUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDM0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLGdEQUFDLENBQUM7S0ErREo7SUFqRkMsSUFBSSxDQWtCRDtJQUVLLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBK0IsRUFBRSxNQUEwQjtRQUM1RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUV4RCxNQUFNLEVBQ0osSUFBSSxFQUNKLFFBQVEsRUFDUixVQUFVLEVBQ1YsZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsVUFBVSxFQUNWLGNBQWMsRUFDZCxXQUFXLEVBQ1gsY0FBYyxFQUNkLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixVQUFVLEVBQ1YsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sT0FBTyxFQUNQLElBQUksRUFDSixRQUFRLEVBQ1IsSUFBSSxFQUNKLFlBQVksR0FDYixHQUFHLE1BQU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFbkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUN6RCxHQUFHLE1BQU07WUFDVCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSTtnQkFDSixRQUFRO2dCQUNSLFVBQVU7Z0JBQ1YsZUFBZTtnQkFDZixVQUFVO2dCQUNWLFVBQVU7Z0JBQ1YsVUFBVTtnQkFDVixjQUFjO2dCQUNkLFdBQVc7Z0JBQ1gsY0FBYztnQkFDZCxPQUFPO2dCQUNQLFFBQVE7Z0JBQ1IsVUFBVTtnQkFDVixVQUFVO2dCQUNWLFVBQVU7Z0JBQ1YsUUFBUTtnQkFDUixTQUFTO2dCQUNULE1BQU07Z0JBQ04sT0FBTztnQkFDUCxJQUFJO2dCQUNKLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixZQUFZO2FBQ2I7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQXRGVSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFLFlBQVk7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIFBMQVRGT1JNX0lELCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgU3dpcGVyLCBTd2lwZXJPcHRpb25zIH0gZnJvbSAnc3dpcGVyL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgQVhDYXJvdXNlbCA9IFN3aXBlcjtcbmV4cG9ydCB0eXBlIEFYQ2Fyb3VzZWxPcHRpb25zID0gU3dpcGVyT3B0aW9ucztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4Q2Fyb3VzZWxdJyxcbiAgZXhwb3J0QXM6ICdheENhcm91c2VsJyxcbn0pXG5leHBvcnQgY2xhc3MgQVhDYXJvdXNlbERpcmVjdGl2ZSB7XG4gIGNhcm91c2VsID0gc2lnbmFsPEFYQ2Fyb3VzZWw+KG51bGwpO1xuICBjYXJvdXNlbE9wdGlvbnMgPSBpbnB1dDxBWENhcm91c2VsT3B0aW9ucz4oKTtcbiAgcHJpdmF0ZSBlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAjZWZmID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICBjb25zdCBwYXJlbnRFbGVtID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHNsaWRlcyA9IHBhcmVudEVsZW0ucXVlcnlTZWxlY3RvckFsbCgnLmF4LWNhcm91c2VsLXNsaWRlJyk7XG5cbiAgICBwYXJlbnRFbGVtLnF1ZXJ5U2VsZWN0b3IoJy5heC1jYXJvdXNlbC13cmFwcGVyJyk/LmNsYXNzTGlzdC5hZGQoJ3N3aXBlci13cmFwcGVyJyk7XG4gICAgcGFyZW50RWxlbS5xdWVyeVNlbGVjdG9yKCcuYXgtY2Fyb3VzZWwtcGFnaW5hdGlvbicpPy5jbGFzc0xpc3QuYWRkKCdzd2lwZXItcGFnaW5hdGlvbicpO1xuICAgIHBhcmVudEVsZW0ucXVlcnlTZWxlY3RvcignLmF4LWNhcm91c2VsLXNjcm9sbGJhcicpPy5jbGFzc0xpc3QuYWRkKCdzd2lwZXItc2Nyb2xsYmFyJyk7XG4gICAgcGFyZW50RWxlbS5xdWVyeVNlbGVjdG9yKCcuYXgtY2Fyb3VzZWwtYnV0dG9uLXByZXYnKT8uY2xhc3NMaXN0LmFkZCgnc3dpcGVyLWJ1dHRvbi1wcmV2Jyk7XG4gICAgcGFyZW50RWxlbS5xdWVyeVNlbGVjdG9yKCcuYXgtY2Fyb3VzZWwtYnV0dG9uLW5leHQnKT8uY2xhc3NMaXN0LmFkZCgnc3dpcGVyLWJ1dHRvbi1uZXh0Jyk7XG5cbiAgICBzbGlkZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnc3dpcGVyLXNsaWRlJyk7XG4gICAgfSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW5pdCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY2Fyb3VzZWxPcHRpb25zKCkpO1xuICAgIH0pO1xuICB9KTtcblxuICBwcml2YXRlIGFzeW5jIGluaXQoY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IHN0cmluZywgb3B0aW9uPzogQVhDYXJvdXNlbE9wdGlvbnMpIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICBpZiAoIW9wdGlvbiB8fCBPYmplY3Qua2V5cyhvcHRpb24pLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgY29uc3Qge1xuICAgICAgQTExeSxcbiAgICAgIEF1dG9wbGF5LFxuICAgICAgQ29udHJvbGxlcixcbiAgICAgIEVmZmVjdENvdmVyZmxvdyxcbiAgICAgIEVmZmVjdEN1YmUsXG4gICAgICBFZmZlY3RGYWRlLFxuICAgICAgRWZmZWN0RmxpcCxcbiAgICAgIEVmZmVjdENyZWF0aXZlLFxuICAgICAgRWZmZWN0Q2FyZHMsXG4gICAgICBIYXNoTmF2aWdhdGlvbixcbiAgICAgIEhpc3RvcnksXG4gICAgICBLZXlib2FyZCxcbiAgICAgIE1vdXNld2hlZWwsXG4gICAgICBOYXZpZ2F0aW9uLFxuICAgICAgUGFnaW5hdGlvbixcbiAgICAgIFBhcmFsbGF4LFxuICAgICAgU2Nyb2xsYmFyLFxuICAgICAgVGh1bWJzLFxuICAgICAgVmlydHVhbCxcbiAgICAgIFpvb20sXG4gICAgICBGcmVlTW9kZSxcbiAgICAgIEdyaWQsXG4gICAgICBNYW5pcHVsYXRpb24sXG4gICAgfSA9IGF3YWl0IGltcG9ydCgnc3dpcGVyL21vZHVsZXMnKTtcblxuICAgIGNvbnN0IHJlcyA9IG5ldyAoYXdhaXQgaW1wb3J0KCdzd2lwZXInKSkuU3dpcGVyKGNvbnRhaW5lciwge1xuICAgICAgLi4ub3B0aW9uLFxuICAgICAgbW9kdWxlczogW1xuICAgICAgICBBMTF5LFxuICAgICAgICBBdXRvcGxheSxcbiAgICAgICAgQ29udHJvbGxlcixcbiAgICAgICAgRWZmZWN0Q292ZXJmbG93LFxuICAgICAgICBFZmZlY3RDdWJlLFxuICAgICAgICBFZmZlY3RGYWRlLFxuICAgICAgICBFZmZlY3RGbGlwLFxuICAgICAgICBFZmZlY3RDcmVhdGl2ZSxcbiAgICAgICAgRWZmZWN0Q2FyZHMsXG4gICAgICAgIEhhc2hOYXZpZ2F0aW9uLFxuICAgICAgICBIaXN0b3J5LFxuICAgICAgICBLZXlib2FyZCxcbiAgICAgICAgTW91c2V3aGVlbCxcbiAgICAgICAgTmF2aWdhdGlvbixcbiAgICAgICAgUGFnaW5hdGlvbixcbiAgICAgICAgUGFyYWxsYXgsXG4gICAgICAgIFNjcm9sbGJhcixcbiAgICAgICAgVGh1bWJzLFxuICAgICAgICBWaXJ0dWFsLFxuICAgICAgICBab29tLFxuICAgICAgICBGcmVlTW9kZSxcbiAgICAgICAgR3JpZCxcbiAgICAgICAgTWFuaXB1bGF0aW9uLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMuY2Fyb3VzZWwuc2V0KHJlcyk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1jYXJvdXNlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9jYXJvdXNlbC9zcmMvYWNvcmV4LWNkay1jYXJvdXNlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-cdk-carousel.mjs","sources":["../tmp-esm2022/carousel/carousel.directive.js","../tmp-esm2022/carousel/acorex-cdk-carousel.js"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { Directive, effect, ElementRef, inject, input, PLATFORM_ID, signal, untracked } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXCarouselDirective {\n constructor() {\n this.carousel = signal(null, ...(ngDevMode ? [{ debugName: \"carousel\" }] : []));\n this.carouselOptions = input(...(ngDevMode ? [undefined, { debugName: \"carouselOptions\" }] : []));\n this.el = inject(ElementRef);\n this.platformId = inject(PLATFORM_ID);\n this.#eff = effect(() => {\n if (!isPlatformBrowser(this.platformId))\n return;\n const parentElem = this.el.nativeElement;\n const slides = parentElem.querySelectorAll('.ax-carousel-slide');\n parentElem.querySelector('.ax-carousel-wrapper')?.classList.add('swiper-wrapper');\n parentElem.querySelector('.ax-carousel-pagination')?.classList.add('swiper-pagination');\n parentElem.querySelector('.ax-carousel-scrollbar')?.classList.add('swiper-scrollbar');\n parentElem.querySelector('.ax-carousel-button-prev')?.classList.add('swiper-button-prev');\n parentElem.querySelector('.ax-carousel-button-next')?.classList.add('swiper-button-next');\n slides?.forEach((item) => {\n item.classList.add('swiper-slide');\n });\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n this.#eff2 = effect(() => {\n untracked(() => {\n if (this.carousel())\n this.carousel().destroy;\n });\n this.init(this.el.nativeElement, this.carouselOptions());\n }, ...(ngDevMode ? [{ debugName: \"#eff2\" }] : []));\n }\n #eff;\n #eff2;\n async init(container, option = {}) {\n if (!isPlatformBrowser(this.platformId))\n return;\n const { A11y, Autoplay, Controller, EffectCoverflow, EffectCube, EffectFade, EffectFlip, EffectCreative, EffectCards, HashNavigation, History, Keyboard, Mousewheel, Navigation, Pagination, Parallax, Scrollbar, Thumbs, Virtual, Zoom, FreeMode, Grid, Manipulation, } = await import('swiper/modules');\n const res = new (await import('swiper')).Swiper(container, {\n ...option,\n modules: [\n A11y,\n Autoplay,\n Controller,\n EffectCoverflow,\n EffectCube,\n EffectFade,\n EffectFlip,\n EffectCreative,\n EffectCards,\n HashNavigation,\n History,\n Keyboard,\n Mousewheel,\n Navigation,\n Pagination,\n Parallax,\n Scrollbar,\n Thumbs,\n Virtual,\n Zoom,\n FreeMode,\n Grid,\n Manipulation,\n ],\n });\n this.carousel.set(res);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXCarouselDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.9\", type: AXCarouselDirective, isStandalone: true, selector: \"[axCarousel]\", inputs: { carouselOptions: { classPropertyName: \"carouselOptions\", publicName: \"carouselOptions\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"axCarousel\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXCarouselDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axCarousel]',\n exportAs: 'axCarousel',\n }]\n }], propDecorators: { carouselOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: \"carouselOptions\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2Nhcm91c2VsL3NyYy9jYXJvdXNlbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVTdHLE1BQU0sT0FBTyxtQkFBbUI7SUFKaEM7UUFLRSxhQUFRLEdBQUcsTUFBTSxDQUFhLElBQUksb0RBQUMsQ0FBQztRQUNwQyxvQkFBZSxHQUFHLEtBQUsscUVBQXFCLENBQUM7UUFDckMsT0FBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXpDLFNBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUFFLE9BQU87WUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUE0QixDQUFDO1lBQ3hELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBRWpFLFVBQVUsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDbEYsVUFBVSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUN4RixVQUFVLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3RGLFVBQVUsQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDMUYsVUFBVSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUUxRixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxnREFBQyxDQUFDO1FBRUgsVUFBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDbEIsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDYixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxpREFBQyxDQUFDO0tBOERKO0lBbkZDLElBQUksQ0FjRDtJQUVILEtBQUssQ0FLRjtJQUVLLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBK0IsRUFBRSxTQUE0QixFQUFFO1FBQ2hGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUVoRCxNQUFNLEVBQ0osSUFBSSxFQUNKLFFBQVEsRUFDUixVQUFVLEVBQ1YsZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsVUFBVSxFQUNWLGNBQWMsRUFDZCxXQUFXLEVBQ1gsY0FBYyxFQUNkLE9BQU8sRUFDUCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixVQUFVLEVBQ1YsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sT0FBTyxFQUNQLElBQUksRUFDSixRQUFRLEVBQ1IsSUFBSSxFQUNKLFlBQVksR0FDYixHQUFHLE1BQU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFbkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUN6RCxHQUFHLE1BQU07WUFDVCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSTtnQkFDSixRQUFRO2dCQUNSLFVBQVU7Z0JBQ1YsZUFBZTtnQkFDZixVQUFVO2dCQUNWLFVBQVU7Z0JBQ1YsVUFBVTtnQkFDVixjQUFjO2dCQUNkLFdBQVc7Z0JBQ1gsY0FBYztnQkFDZCxPQUFPO2dCQUNQLFFBQVE7Z0JBQ1IsVUFBVTtnQkFDVixVQUFVO2dCQUNWLFVBQVU7Z0JBQ1YsUUFBUTtnQkFDUixTQUFTO2dCQUNULE1BQU07Z0JBQ04sT0FBTztnQkFDUCxJQUFJO2dCQUNKLFFBQVE7Z0JBQ1IsSUFBSTtnQkFDSixZQUFZO2FBQ2I7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQXhGVSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFLFlBQVk7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIFBMQVRGT1JNX0lELCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBTd2lwZXIsIFN3aXBlck9wdGlvbnMgfSBmcm9tICdzd2lwZXIvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBWENhcm91c2VsID0gU3dpcGVyO1xuZXhwb3J0IHR5cGUgQVhDYXJvdXNlbE9wdGlvbnMgPSBTd2lwZXJPcHRpb25zO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhDYXJvdXNlbF0nLFxuICBleHBvcnRBczogJ2F4Q2Fyb3VzZWwnLFxufSlcbmV4cG9ydCBjbGFzcyBBWENhcm91c2VsRGlyZWN0aXZlIHtcbiAgY2Fyb3VzZWwgPSBzaWduYWw8QVhDYXJvdXNlbD4obnVsbCk7XG4gIGNhcm91c2VsT3B0aW9ucyA9IGlucHV0PEFYQ2Fyb3VzZWxPcHRpb25zPigpO1xuICBwcml2YXRlIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgIGNvbnN0IHBhcmVudEVsZW0gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3Qgc2xpZGVzID0gcGFyZW50RWxlbS5xdWVyeVNlbGVjdG9yQWxsKCcuYXgtY2Fyb3VzZWwtc2xpZGUnKTtcblxuICAgIHBhcmVudEVsZW0ucXVlcnlTZWxlY3RvcignLmF4LWNhcm91c2VsLXdyYXBwZXInKT8uY2xhc3NMaXN0LmFkZCgnc3dpcGVyLXdyYXBwZXInKTtcbiAgICBwYXJlbnRFbGVtLnF1ZXJ5U2VsZWN0b3IoJy5heC1jYXJvdXNlbC1wYWdpbmF0aW9uJyk/LmNsYXNzTGlzdC5hZGQoJ3N3aXBlci1wYWdpbmF0aW9uJyk7XG4gICAgcGFyZW50RWxlbS5xdWVyeVNlbGVjdG9yKCcuYXgtY2Fyb3VzZWwtc2Nyb2xsYmFyJyk/LmNsYXNzTGlzdC5hZGQoJ3N3aXBlci1zY3JvbGxiYXInKTtcbiAgICBwYXJlbnRFbGVtLnF1ZXJ5U2VsZWN0b3IoJy5heC1jYXJvdXNlbC1idXR0b24tcHJldicpPy5jbGFzc0xpc3QuYWRkKCdzd2lwZXItYnV0dG9uLXByZXYnKTtcbiAgICBwYXJlbnRFbGVtLnF1ZXJ5U2VsZWN0b3IoJy5heC1jYXJvdXNlbC1idXR0b24tbmV4dCcpPy5jbGFzc0xpc3QuYWRkKCdzd2lwZXItYnV0dG9uLW5leHQnKTtcblxuICAgIHNsaWRlcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5jbGFzc0xpc3QuYWRkKCdzd2lwZXItc2xpZGUnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgI2VmZjIgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jYXJvdXNlbCgpKSB0aGlzLmNhcm91c2VsKCkuZGVzdHJveTtcbiAgICB9KTtcbiAgICB0aGlzLmluaXQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmNhcm91c2VsT3B0aW9ucygpKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0KGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBzdHJpbmcsIG9wdGlvbjogQVhDYXJvdXNlbE9wdGlvbnMgPSB7fSkge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgY29uc3Qge1xuICAgICAgQTExeSxcbiAgICAgIEF1dG9wbGF5LFxuICAgICAgQ29udHJvbGxlcixcbiAgICAgIEVmZmVjdENvdmVyZmxvdyxcbiAgICAgIEVmZmVjdEN1YmUsXG4gICAgICBFZmZlY3RGYWRlLFxuICAgICAgRWZmZWN0RmxpcCxcbiAgICAgIEVmZmVjdENyZWF0aXZlLFxuICAgICAgRWZmZWN0Q2FyZHMsXG4gICAgICBIYXNoTmF2aWdhdGlvbixcbiAgICAgIEhpc3RvcnksXG4gICAgICBLZXlib2FyZCxcbiAgICAgIE1vdXNld2hlZWwsXG4gICAgICBOYXZpZ2F0aW9uLFxuICAgICAgUGFnaW5hdGlvbixcbiAgICAgIFBhcmFsbGF4LFxuICAgICAgU2Nyb2xsYmFyLFxuICAgICAgVGh1bWJzLFxuICAgICAgVmlydHVhbCxcbiAgICAgIFpvb20sXG4gICAgICBGcmVlTW9kZSxcbiAgICAgIEdyaWQsXG4gICAgICBNYW5pcHVsYXRpb24sXG4gICAgfSA9IGF3YWl0IGltcG9ydCgnc3dpcGVyL21vZHVsZXMnKTtcblxuICAgIGNvbnN0IHJlcyA9IG5ldyAoYXdhaXQgaW1wb3J0KCdzd2lwZXInKSkuU3dpcGVyKGNvbnRhaW5lciwge1xuICAgICAgLi4ub3B0aW9uLFxuICAgICAgbW9kdWxlczogW1xuICAgICAgICBBMTF5LFxuICAgICAgICBBdXRvcGxheSxcbiAgICAgICAgQ29udHJvbGxlcixcbiAgICAgICAgRWZmZWN0Q292ZXJmbG93LFxuICAgICAgICBFZmZlY3RDdWJlLFxuICAgICAgICBFZmZlY3RGYWRlLFxuICAgICAgICBFZmZlY3RGbGlwLFxuICAgICAgICBFZmZlY3RDcmVhdGl2ZSxcbiAgICAgICAgRWZmZWN0Q2FyZHMsXG4gICAgICAgIEhhc2hOYXZpZ2F0aW9uLFxuICAgICAgICBIaXN0b3J5LFxuICAgICAgICBLZXlib2FyZCxcbiAgICAgICAgTW91c2V3aGVlbCxcbiAgICAgICAgTmF2aWdhdGlvbixcbiAgICAgICAgUGFnaW5hdGlvbixcbiAgICAgICAgUGFyYWxsYXgsXG4gICAgICAgIFNjcm9sbGJhcixcbiAgICAgICAgVGh1bWJzLFxuICAgICAgICBWaXJ0dWFsLFxuICAgICAgICBab29tLFxuICAgICAgICBGcmVlTW9kZSxcbiAgICAgICAgR3JpZCxcbiAgICAgICAgTWFuaXB1bGF0aW9uLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMuY2Fyb3VzZWwuc2V0KHJlcyk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1jYXJvdXNlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9jYXJvdXNlbC9zcmMvYWNvcmV4LWNkay1jYXJvdXNlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { AXHtmlUtil } from '@acorex/core/utils';
|
|
|
3
3
|
import { isPlatformBrowser } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
5
|
import { inject, ElementRef, NgZone, DOCUMENT, PLATFORM_ID, signal, model, output, Directive } from '@angular/core';
|
|
6
|
+
import { Subscription } from 'rxjs';
|
|
6
7
|
|
|
7
8
|
class AXResizableDirective {
|
|
8
9
|
constructor() {
|
|
@@ -12,12 +13,26 @@ class AXResizableDirective {
|
|
|
12
13
|
this.document = inject(DOCUMENT);
|
|
13
14
|
this.platformID = inject(PLATFORM_ID);
|
|
14
15
|
this.isResizing = signal(false, ...(ngDevMode ? [{ debugName: "isResizing" }] : []));
|
|
16
|
+
this.initialElementWidth = 0;
|
|
17
|
+
this.startMoveWidth = 0;
|
|
18
|
+
this.subscriptions = new Subscription();
|
|
19
|
+
// Bound event handlers to maintain reference for cleanup
|
|
20
|
+
this.boundMouseDown = this.onMouseDown.bind(this);
|
|
21
|
+
this.boundMouseMove = this.onMouseMove.bind(this);
|
|
22
|
+
this.boundMouseUp = this.onMouseUp.bind(this);
|
|
23
|
+
this.boundMouseEnter = this.onMouseEnter.bind(this);
|
|
24
|
+
this.boundMouseLeave = this.onMouseLeave.bind(this);
|
|
25
|
+
this.boundDoubleClick = this.onDoubleClick.bind(this);
|
|
15
26
|
this.resizeObserver = new ResizeObserver((entries) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
const parentElement = this.hostElement.parentElement;
|
|
28
|
+
if (!parentElement)
|
|
29
|
+
return;
|
|
30
|
+
for (const entry of entries) {
|
|
31
|
+
if (entry.target === parentElement && this.maxWidth() === Infinity) {
|
|
32
|
+
this.maxWidth.set(entry.contentRect.width);
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
21
36
|
});
|
|
22
37
|
/** Define if directive is active or not */
|
|
23
38
|
this.axResizable = model(true, ...(ngDevMode ? [{ debugName: "axResizable" }] : []));
|
|
@@ -38,57 +53,70 @@ class AXResizableDirective {
|
|
|
38
53
|
/** Event emitted on double-click. */
|
|
39
54
|
this.onResizingDblClick = output();
|
|
40
55
|
this.isRTL = signal(AXHtmlUtil.isRtl(this.document.documentElement), ...(ngDevMode ? [{ debugName: "isRTL" }] : []));
|
|
41
|
-
this.
|
|
56
|
+
this.isBrowser = isPlatformBrowser(this.platformID);
|
|
57
|
+
this.hostElement = this.el.nativeElement;
|
|
58
|
+
this.subscriptions.add(this.platformService.directionChange.subscribe((i) => {
|
|
42
59
|
this.isRTL.set(i.data === 'rtl');
|
|
43
|
-
|
|
60
|
+
if (this.resizeHandle) {
|
|
61
|
+
this.updateHandlePosition();
|
|
62
|
+
}
|
|
63
|
+
}));
|
|
44
64
|
}
|
|
45
65
|
ngAfterViewInit() {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
66
|
+
if (!this.isBrowser)
|
|
67
|
+
return;
|
|
68
|
+
this.initialElementWidth = this.hostElement.offsetWidth;
|
|
69
|
+
const initialWidth = this.width();
|
|
70
|
+
if (initialWidth !== null) {
|
|
71
|
+
this.hostElement.style.width = `${initialWidth}px`;
|
|
49
72
|
}
|
|
50
73
|
if (this.maxWidth() === Infinity) {
|
|
51
|
-
const parentWidth = this.
|
|
74
|
+
const parentWidth = this.hostElement.parentElement?.offsetWidth;
|
|
52
75
|
if (parentWidth) {
|
|
53
76
|
this.maxWidth.set(parentWidth);
|
|
54
77
|
}
|
|
55
78
|
}
|
|
56
|
-
this.
|
|
79
|
+
const parentElement = this.hostElement.parentElement;
|
|
80
|
+
if (parentElement) {
|
|
81
|
+
this.resizeObserver.observe(parentElement);
|
|
82
|
+
}
|
|
57
83
|
this.createResizeHandle();
|
|
58
84
|
this.setupResizableState();
|
|
59
85
|
}
|
|
60
86
|
ngOnDestroy() {
|
|
87
|
+
this.subscriptions.unsubscribe();
|
|
61
88
|
this.resizeObserver.disconnect();
|
|
62
89
|
this.cleanupEventListeners();
|
|
63
90
|
}
|
|
64
|
-
// ngDoCheck(): void {
|
|
65
|
-
// console.log('check');
|
|
66
|
-
// }
|
|
67
91
|
setupResizableState() {
|
|
68
|
-
this.axResizable.subscribe((isActive) => {
|
|
92
|
+
this.subscriptions.add(this.axResizable.subscribe((isActive) => {
|
|
69
93
|
if (!isActive) {
|
|
70
|
-
this.resetToInitialWidth();
|
|
71
|
-
this.cleanupEventListeners();
|
|
94
|
+
this.resetToInitialWidth();
|
|
95
|
+
this.cleanupEventListeners();
|
|
72
96
|
}
|
|
73
97
|
else {
|
|
74
|
-
this.createResizeHandle();
|
|
98
|
+
this.createResizeHandle();
|
|
75
99
|
}
|
|
76
|
-
});
|
|
100
|
+
}));
|
|
77
101
|
}
|
|
78
102
|
createResizeHandle() {
|
|
79
|
-
if (!this.axResizable())
|
|
80
|
-
return;
|
|
81
|
-
this.
|
|
103
|
+
if (!this.axResizable() || this.resizeHandle)
|
|
104
|
+
return;
|
|
105
|
+
this.hostElement.style.position = 'relative';
|
|
82
106
|
this.resizeHandle = this.document.createElement('div');
|
|
83
107
|
this.resizeHandle.classList.add('ax-resizable-handler');
|
|
84
|
-
this.
|
|
85
|
-
|
|
108
|
+
this.hostElement.appendChild(this.resizeHandle);
|
|
109
|
+
this.applyHandleStyles();
|
|
110
|
+
this.attachEventListeners();
|
|
111
|
+
}
|
|
112
|
+
applyHandleStyles() {
|
|
113
|
+
if (!this.resizeHandle)
|
|
114
|
+
return;
|
|
86
115
|
Object.assign(this.resizeHandle.style, {
|
|
87
116
|
width: STYLES.handlerWidth,
|
|
88
117
|
backgroundColor: STYLES.backgroundColor,
|
|
89
118
|
position: 'absolute',
|
|
90
119
|
top: '0',
|
|
91
|
-
[isRTL ? 'left' : 'right']: '0',
|
|
92
120
|
bottom: '0',
|
|
93
121
|
cursor: STYLES.cursor,
|
|
94
122
|
zIndex: STYLES.zIndex,
|
|
@@ -96,140 +124,160 @@ class AXResizableDirective {
|
|
|
96
124
|
borderRadius: STYLES.borderRadius,
|
|
97
125
|
userSelect: 'none',
|
|
98
126
|
});
|
|
127
|
+
this.updateHandlePosition();
|
|
128
|
+
}
|
|
129
|
+
updateHandlePosition() {
|
|
130
|
+
if (!this.resizeHandle)
|
|
131
|
+
return;
|
|
132
|
+
const isRTL = this.isRTL();
|
|
133
|
+
if (isRTL) {
|
|
134
|
+
this.resizeHandle.style.left = '0';
|
|
135
|
+
this.resizeHandle.style.right = '';
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
this.resizeHandle.style.right = '0';
|
|
139
|
+
this.resizeHandle.style.left = '';
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
attachEventListeners() {
|
|
143
|
+
if (!this.resizeHandle)
|
|
144
|
+
return;
|
|
145
|
+
const handle = this.resizeHandle;
|
|
99
146
|
this.zone.runOutsideAngular(() => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
this.
|
|
105
|
-
this.
|
|
147
|
+
handle.addEventListener('mousedown', this.boundMouseDown);
|
|
148
|
+
handle.addEventListener('mouseenter', this.boundMouseEnter);
|
|
149
|
+
handle.addEventListener('mouseleave', this.boundMouseLeave);
|
|
150
|
+
handle.addEventListener('dblclick', this.boundDoubleClick);
|
|
151
|
+
this.document.addEventListener('mousemove', this.boundMouseMove);
|
|
152
|
+
this.document.addEventListener('mouseup', this.boundMouseUp);
|
|
106
153
|
});
|
|
107
154
|
}
|
|
108
155
|
cleanupEventListeners() {
|
|
109
156
|
if (this.resizeHandle) {
|
|
110
|
-
this.resizeHandle.removeEventListener('mousedown', this.
|
|
111
|
-
this.resizeHandle.removeEventListener('mouseenter', this.
|
|
112
|
-
this.resizeHandle.removeEventListener('mouseleave', this.
|
|
113
|
-
this.resizeHandle.removeEventListener('dblclick', this.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
157
|
+
this.resizeHandle.removeEventListener('mousedown', this.boundMouseDown);
|
|
158
|
+
this.resizeHandle.removeEventListener('mouseenter', this.boundMouseEnter);
|
|
159
|
+
this.resizeHandle.removeEventListener('mouseleave', this.boundMouseLeave);
|
|
160
|
+
this.resizeHandle.removeEventListener('dblclick', this.boundDoubleClick);
|
|
161
|
+
this.resizeHandle.remove();
|
|
162
|
+
this.resizeHandle = undefined;
|
|
117
163
|
}
|
|
118
|
-
this.document.removeEventListener('mousemove', this.
|
|
119
|
-
this.document.removeEventListener('mouseup', this.
|
|
164
|
+
this.document.removeEventListener('mousemove', this.boundMouseMove);
|
|
165
|
+
this.document.removeEventListener('mouseup', this.boundMouseUp);
|
|
120
166
|
this.document.body.style.cursor = '';
|
|
121
167
|
}
|
|
122
168
|
onMouseDown(event) {
|
|
123
|
-
if (
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
169
|
+
if (!this.resizeHandle)
|
|
170
|
+
return;
|
|
171
|
+
const handleRect = this.resizeHandle.getBoundingClientRect();
|
|
172
|
+
if (event.clientX < handleRect.left || event.clientX > handleRect.right)
|
|
173
|
+
return;
|
|
174
|
+
event.preventDefault();
|
|
175
|
+
this.isResizing.set(true);
|
|
176
|
+
this.document.body.style.cursor = STYLES.cursorActive;
|
|
177
|
+
this.resizeHandle.style.backgroundColor = STYLES.backgroundColorActive;
|
|
178
|
+
this.startMoveWidth = this.hostElement.offsetWidth;
|
|
179
|
+
this.zone.run(() => {
|
|
180
|
+
this.onResizingStarted.emit({
|
|
181
|
+
component: this,
|
|
182
|
+
htmlElement: this.hostElement,
|
|
183
|
+
isUserInteraction: true,
|
|
184
|
+
name: 'resizingStarted',
|
|
185
|
+
value: this.startMoveWidth,
|
|
186
|
+
oldValue: this.startMoveWidth,
|
|
187
|
+
});
|
|
188
|
+
});
|
|
141
189
|
}
|
|
142
190
|
onMouseMove(event) {
|
|
143
|
-
if (this.isResizing()
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
newWidth = event.clientX - rect.left;
|
|
152
|
-
}
|
|
153
|
-
// Clamp the width to minWidth and maxWidth
|
|
154
|
-
newWidth = Math.max(this.minWidth(), Math.min(newWidth, this.maxWidth()));
|
|
155
|
-
// Update the width only if it has changed
|
|
156
|
-
if (newWidth !== this.el.nativeElement.offsetWidth) {
|
|
157
|
-
this.el.nativeElement.style.width = `${newWidth}px`;
|
|
158
|
-
}
|
|
191
|
+
if (!this.isResizing())
|
|
192
|
+
return;
|
|
193
|
+
const rect = this.hostElement.getBoundingClientRect();
|
|
194
|
+
const isRTL = this.isRTL();
|
|
195
|
+
let newWidth = isRTL ? rect.right - event.clientX : event.clientX - rect.left;
|
|
196
|
+
newWidth = Math.max(this.minWidth(), Math.min(newWidth, this.maxWidth()));
|
|
197
|
+
if (newWidth !== this.hostElement.offsetWidth) {
|
|
198
|
+
this.hostElement.style.width = `${newWidth}px`;
|
|
159
199
|
}
|
|
160
200
|
}
|
|
161
201
|
onMouseUp() {
|
|
162
|
-
if (this.isResizing()
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
202
|
+
if (!this.isResizing() || !this.resizeHandle)
|
|
203
|
+
return;
|
|
204
|
+
this.isResizing.set(false);
|
|
205
|
+
this.document.body.style.cursor = '';
|
|
206
|
+
this.resizeHandle.style.backgroundColor = STYLES.backgroundColor;
|
|
207
|
+
const currentWidth = this.hostElement.offsetWidth;
|
|
208
|
+
this.zone.run(() => {
|
|
166
209
|
this.onResizingEnded.emit({
|
|
167
210
|
component: this,
|
|
168
|
-
htmlElement: this.
|
|
211
|
+
htmlElement: this.hostElement,
|
|
169
212
|
isUserInteraction: true,
|
|
170
213
|
name: 'resizingEnded',
|
|
171
|
-
value:
|
|
214
|
+
value: currentWidth,
|
|
172
215
|
oldValue: this.startMoveWidth,
|
|
173
216
|
});
|
|
174
|
-
}
|
|
217
|
+
});
|
|
175
218
|
}
|
|
176
219
|
onMouseEnter() {
|
|
177
|
-
if (!this.isResizing()) {
|
|
220
|
+
if (!this.isResizing() && this.resizeHandle) {
|
|
178
221
|
this.resizeHandle.style.backgroundColor = STYLES.backgroundColorHover;
|
|
179
222
|
}
|
|
180
223
|
}
|
|
181
224
|
onMouseLeave() {
|
|
182
|
-
if (!this.isResizing()) {
|
|
225
|
+
if (!this.isResizing() && this.resizeHandle) {
|
|
183
226
|
this.resizeHandle.style.backgroundColor = STYLES.backgroundColor;
|
|
184
227
|
}
|
|
185
228
|
}
|
|
186
229
|
onDoubleClick() {
|
|
187
|
-
const elementWidth = this.
|
|
188
|
-
|
|
189
|
-
// const initialWidth = this.initialWidth() !== null ? this.initialWidth() : this.initialElementWidth;
|
|
230
|
+
const elementWidth = this.hostElement.offsetWidth;
|
|
231
|
+
const action = this.dblClickAction();
|
|
190
232
|
let newWidth;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
233
|
+
switch (action) {
|
|
234
|
+
case 'reset':
|
|
235
|
+
newWidth = this.resetToInitialWidth();
|
|
236
|
+
break;
|
|
237
|
+
case 'maximize':
|
|
238
|
+
newWidth = this.maximizeToMaxWidth();
|
|
239
|
+
break;
|
|
240
|
+
case 'fit':
|
|
241
|
+
newWidth = this.fitToContent();
|
|
242
|
+
break;
|
|
243
|
+
default:
|
|
244
|
+
newWidth = elementWidth;
|
|
196
245
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
value: newWidth,
|
|
246
|
+
this.zone.run(() => {
|
|
247
|
+
this.onResizingDblClick.emit({
|
|
248
|
+
component: this,
|
|
249
|
+
htmlElement: this.hostElement,
|
|
250
|
+
isUserInteraction: true,
|
|
251
|
+
name: 'onResizingDblClick',
|
|
252
|
+
oldValue: elementWidth,
|
|
253
|
+
value: newWidth,
|
|
254
|
+
});
|
|
207
255
|
});
|
|
208
256
|
}
|
|
209
257
|
resetToInitialWidth() {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
258
|
+
const defaultWidth = this.defaultWidth();
|
|
259
|
+
if (defaultWidth !== null) {
|
|
260
|
+
this.hostElement.style.width = `${defaultWidth}px`;
|
|
261
|
+
return defaultWidth;
|
|
213
262
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
else {
|
|
219
|
-
this.el.nativeElement.style.width = `${this.initialElementWidth}px`;
|
|
220
|
-
return this.initialElementWidth;
|
|
263
|
+
const initialWidth = this.width();
|
|
264
|
+
if (initialWidth !== null) {
|
|
265
|
+
this.hostElement.style.width = `${initialWidth}px`;
|
|
266
|
+
return initialWidth;
|
|
221
267
|
}
|
|
268
|
+
this.hostElement.style.width = `${this.initialElementWidth}px`;
|
|
269
|
+
return this.initialElementWidth;
|
|
222
270
|
}
|
|
223
271
|
maximizeToMaxWidth() {
|
|
224
272
|
const maxWidth = this.maxWidth();
|
|
225
273
|
if (maxWidth !== Infinity) {
|
|
226
|
-
this.
|
|
274
|
+
this.hostElement.style.width = `${maxWidth}px`;
|
|
227
275
|
}
|
|
228
276
|
return maxWidth;
|
|
229
277
|
}
|
|
230
278
|
fitToContent() {
|
|
231
|
-
this.
|
|
232
|
-
return this.
|
|
279
|
+
this.hostElement.style.width = 'fit-content';
|
|
280
|
+
return this.hostElement.clientWidth;
|
|
233
281
|
}
|
|
234
282
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: AXResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
235
283
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: AXResizableDirective, isStandalone: true, selector: "[axResizable]", inputs: { axResizable: { classPropertyName: "axResizable", publicName: "axResizable", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, dblClickAction: { classPropertyName: "dblClickAction", publicName: "dblClickAction", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, defaultWidth: { classPropertyName: "defaultWidth", publicName: "defaultWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { axResizable: "axResizableChange", minWidth: "minWidthChange", maxWidth: "maxWidthChange", dblClickAction: "dblClickActionChange", width: "widthChange", defaultWidth: "defaultWidthChange", onResizingStarted: "onResizingStarted", onResizingEnded: "onResizingEnded", onResizingDblClick: "onResizingDblClick" }, ngImport: i0 }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-resizable.mjs","sources":["../tmp-esm2022/resizable/lib/resize.directive.js","../tmp-esm2022/resizable/acorex-cdk-resizable.js"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Directive, DOCUMENT, ElementRef, inject, model, NgZone, output, PLATFORM_ID, signal, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXResizableDirective {\n constructor() {\n this.el = inject(ElementRef);\n this.platformService = inject(AXPlatform);\n this.zone = inject(NgZone);\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n this.isResizing = signal(false, ...(ngDevMode ? [{ debugName: \"isResizing\" }] : []));\n this.resizeObserver = new ResizeObserver((entries) => {\n entries\n .filter((e) => e.target === this.el.nativeElement.parentElement)\n .forEach((i) => {\n this.maxWidth.set(i.contentRect.width);\n });\n });\n /** Define if directive is active or not */\n this.axResizable = model(true, ...(ngDevMode ? [{ debugName: \"axResizable\" }] : []));\n /** Minimum width for the resizable element. */\n this.minWidth = model(100, ...(ngDevMode ? [{ debugName: \"minWidth\" }] : []));\n /** Maximum width for the resizable element. Defaults to parent width if not provided. */\n this.maxWidth = model(Infinity, ...(ngDevMode ? [{ debugName: \"maxWidth\" }] : []));\n /** Behavior on double-click: 'reset' or 'maximize'. */\n this.dblClickAction = model('reset', ...(ngDevMode ? [{ debugName: \"dblClickAction\" }] : []));\n /** Define initial width for the element. */\n this.width = model(null, ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n /** Define reset width for the element. */\n this.defaultWidth = model(null, ...(ngDevMode ? [{ debugName: \"defaultWidth\" }] : []));\n /** Event emitted when resizing starts. */\n this.onResizingStarted = output();\n /** Event emitted when resizing ends. */\n this.onResizingEnded = output();\n /** Event emitted on double-click. */\n this.onResizingDblClick = output();\n this.isRTL = signal(AXHtmlUtil.isRtl(this.document.documentElement), ...(ngDevMode ? [{ debugName: \"isRTL\" }] : []));\n this.platformService.directionChange.subscribe((i) => {\n this.isRTL.set(i.data === 'rtl');\n });\n }\n ngAfterViewInit() {\n this.initialElementWidth = this.el.nativeElement.offsetWidth; // Store the initial width\n if (this.width() !== null) {\n this.el.nativeElement.style.width = `${this.width()}px`;\n }\n if (this.maxWidth() === Infinity) {\n const parentWidth = this.el.nativeElement.parentElement?.offsetWidth;\n if (parentWidth) {\n this.maxWidth.set(parentWidth);\n }\n }\n this.resizeObserver.observe(this.el.nativeElement.parentElement);\n this.createResizeHandle();\n this.setupResizableState();\n }\n ngOnDestroy() {\n this.resizeObserver.disconnect();\n this.cleanupEventListeners();\n }\n // ngDoCheck(): void {\n // console.log('check');\n // }\n setupResizableState() {\n this.axResizable.subscribe((isActive) => {\n if (!isActive) {\n this.resetToInitialWidth(); // Reset width when disabled\n this.cleanupEventListeners(); // Remove event listeners\n }\n else {\n this.createResizeHandle(); // Re-enable functionality\n }\n });\n }\n createResizeHandle() {\n if (!this.axResizable())\n return; // Do nothing if directive is disabled\n this.el.nativeElement.style.position = 'relative';\n this.resizeHandle = this.document.createElement('div');\n this.resizeHandle.classList.add('ax-resizable-handler');\n this.el.nativeElement.appendChild(this.resizeHandle);\n const isRTL = this.isRTL();\n Object.assign(this.resizeHandle.style, {\n width: STYLES.handlerWidth,\n backgroundColor: STYLES.backgroundColor,\n position: 'absolute',\n top: '0',\n [isRTL ? 'left' : 'right']: '0',\n bottom: '0',\n cursor: STYLES.cursor,\n zIndex: STYLES.zIndex,\n transition: STYLES.transition,\n borderRadius: STYLES.borderRadius,\n userSelect: 'none',\n });\n this.zone.runOutsideAngular(() => {\n this.resizeHandle.addEventListener('mousedown', this.onMouseDown.bind(this));\n this.document.addEventListener('mousemove', this.onMouseMove.bind(this));\n this.document.addEventListener('mouseup', this.onMouseUp.bind(this));\n this.resizeHandle.addEventListener('mouseenter', this.onMouseEnter.bind(this));\n this.resizeHandle.addEventListener('mouseleave', this.onMouseLeave.bind(this));\n this.resizeHandle.addEventListener('dblclick', this.onDoubleClick.bind(this));\n });\n }\n cleanupEventListeners() {\n if (this.resizeHandle) {\n this.resizeHandle.removeEventListener('mousedown', this.onMouseDown.bind(this));\n this.resizeHandle.removeEventListener('mouseenter', this.onMouseEnter.bind(this));\n this.resizeHandle.removeEventListener('mouseleave', this.onMouseLeave.bind(this));\n this.resizeHandle.removeEventListener('dblclick', this.onDoubleClick.bind(this));\n if (this.resizeHandle.parentElement) {\n this.resizeHandle.parentElement.removeChild(this.resizeHandle);\n }\n }\n this.document.removeEventListener('mousemove', this.onMouseMove.bind(this));\n this.document.removeEventListener('mouseup', this.onMouseUp.bind(this));\n this.document.body.style.cursor = '';\n }\n onMouseDown(event) {\n if (isPlatformBrowser(this.platformID)) {\n const handleRect = this.resizeHandle.getBoundingClientRect();\n if (event.clientX >= handleRect.left && event.clientX <= handleRect.right) {\n this.isResizing.set(true);\n this.document.body.style.cursor = STYLES.cursorActive;\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColorActive;\n event.preventDefault();\n this.startMoveWidth = this.el.nativeElement.offsetWidth;\n this.onResizingStarted.emit({\n component: this,\n htmlElement: this.el.nativeElement,\n isUserInteraction: true,\n name: 'resizingStarted',\n value: this.el.nativeElement.offsetWidth,\n oldValue: this.el.nativeElement.offsetWidth,\n });\n }\n }\n }\n onMouseMove(event) {\n if (this.isResizing() && isPlatformBrowser(this.platformID)) {\n const rect = this.el.nativeElement.getBoundingClientRect();\n const isRTL = this.isRTL();\n let newWidth;\n if (isRTL) {\n newWidth = rect.right - event.clientX;\n }\n else {\n newWidth = event.clientX - rect.left;\n }\n // Clamp the width to minWidth and maxWidth\n newWidth = Math.max(this.minWidth(), Math.min(newWidth, this.maxWidth()));\n // Update the width only if it has changed\n if (newWidth !== this.el.nativeElement.offsetWidth) {\n this.el.nativeElement.style.width = `${newWidth}px`;\n }\n }\n }\n onMouseUp() {\n if (this.isResizing() && isPlatformBrowser(this.platformID)) {\n this.isResizing.set(false);\n this.document.body.style.cursor = '';\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColor;\n this.onResizingEnded.emit({\n component: this,\n htmlElement: this.el.nativeElement,\n isUserInteraction: true,\n name: 'resizingEnded',\n value: this.el.nativeElement.offsetWidth,\n oldValue: this.startMoveWidth,\n });\n }\n }\n onMouseEnter() {\n if (!this.isResizing()) {\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColorHover;\n }\n }\n onMouseLeave() {\n if (!this.isResizing()) {\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColor;\n }\n }\n onDoubleClick() {\n const elementWidth = this.el.nativeElement.offsetWidth;\n // const maxWidth = this.maxWidth();\n // const initialWidth = this.initialWidth() !== null ? this.initialWidth() : this.initialElementWidth;\n let newWidth;\n if (this.dblClickAction() === 'reset') {\n newWidth = this.resetToInitialWidth();\n }\n else if (this.dblClickAction() === 'maximize') {\n newWidth = this.maximizeToMaxWidth();\n }\n else {\n newWidth = this.fitToContent();\n }\n this.onResizingDblClick.emit({\n component: this,\n htmlElement: this.el.nativeElement,\n isUserInteraction: true,\n name: 'onResizingDblClick',\n oldValue: elementWidth,\n value: newWidth,\n });\n }\n resetToInitialWidth() {\n if (this.defaultWidth() !== null) {\n this.el.nativeElement.style.width = `${this.defaultWidth()}px`;\n return this.defaultWidth();\n }\n else if (this.width() !== null) {\n this.el.nativeElement.style.width = `${this.width()}px`;\n return this.width();\n }\n else {\n this.el.nativeElement.style.width = `${this.initialElementWidth}px`;\n return this.initialElementWidth;\n }\n }\n maximizeToMaxWidth() {\n const maxWidth = this.maxWidth();\n if (maxWidth !== Infinity) {\n this.el.nativeElement.style.width = `${maxWidth}px`;\n }\n return maxWidth;\n }\n fitToContent() {\n this.el.nativeElement.style.width = 'fit-content';\n return this.el.nativeElement.clientWidth;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.9\", type: AXResizableDirective, isStandalone: true, selector: \"[axResizable]\", inputs: { axResizable: { classPropertyName: \"axResizable\", publicName: \"axResizable\", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: \"minWidth\", publicName: \"minWidth\", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: \"maxWidth\", publicName: \"maxWidth\", isSignal: true, isRequired: false, transformFunction: null }, dblClickAction: { classPropertyName: \"dblClickAction\", publicName: \"dblClickAction\", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, defaultWidth: { classPropertyName: \"defaultWidth\", publicName: \"defaultWidth\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { axResizable: \"axResizableChange\", minWidth: \"minWidthChange\", maxWidth: \"maxWidthChange\", dblClickAction: \"dblClickActionChange\", width: \"widthChange\", defaultWidth: \"defaultWidthChange\", onResizingStarted: \"onResizingStarted\", onResizingEnded: \"onResizingEnded\", onResizingDblClick: \"onResizingDblClick\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXResizableDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axResizable]',\n }]\n }], ctorParameters: () => [], propDecorators: { axResizable: [{ type: i0.Input, args: [{ isSignal: true, alias: \"axResizable\", required: false }] }, { type: i0.Output, args: [\"axResizableChange\"] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: \"minWidth\", required: false }] }, { type: i0.Output, args: [\"minWidthChange\"] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: \"maxWidth\", required: false }] }, { type: i0.Output, args: [\"maxWidthChange\"] }], dblClickAction: [{ type: i0.Input, args: [{ isSignal: true, alias: \"dblClickAction\", required: false }] }, { type: i0.Output, args: [\"dblClickActionChange\"] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: \"width\", required: false }] }, { type: i0.Output, args: [\"widthChange\"] }], defaultWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: \"defaultWidth\", required: false }] }, { type: i0.Output, args: [\"defaultWidthChange\"] }], onResizingStarted: [{ type: i0.Output, args: [\"onResizingStarted\"] }], onResizingEnded: [{ type: i0.Output, args: [\"onResizingEnded\"] }], onResizingDblClick: [{ type: i0.Output, args: [\"onResizingDblClick\"] }] } });\nconst STYLES = {\n handlerWidth: 'var(--ax-comp-resizable-handler-width, 4px)',\n backgroundColor: 'rgba(var(--ax-comp-resizable-background-color))',\n backgroundColorActive: 'rgba(var(--ax-comp-resizable-background-color-active, var(--ax-sys-color-primary-surface)))',\n backgroundColorHover: 'rgba(var(--ax-comp-resizable-background-color-hover, var(--ax-sys-color-primary-light-surface)))',\n cursor: 'var(--ax-comp-resizable-cursor, ew-resize)',\n cursorActive: 'var(--ax-comp-resizable-cursor-active, ew-resize)',\n zIndex: 'var(--ax-comp-resizable-z-index, 999)',\n transition: 'var(--ax-comp-resizable-transition, background-color --ax-sys-transition-duration --ax-sys-transition-timing-function)',\n borderRadius: 'var(--ax-comp-resizable-border-radius, --ax-sys-border-radius)',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9yZXNpemFibGUvc3JjL2xpYi9yZXNpemUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUVMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDOztBQUt2QixNQUFNLE9BQU8sb0JBQW9CO0lBNkMvQjtRQTVDUSxPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLG9CQUFlLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLGVBQVUsR0FBNEIsTUFBTSxDQUFDLEtBQUssc0RBQUMsQ0FBQztRQUdwRCxtQkFBYyxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdEQsT0FBTztpQkFDSixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUE2QixDQUFDLGFBQWEsQ0FBQztpQkFDaEYsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JB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clFVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjs7QUFrUkQsTUFBTSxNQUFNLEdBQUc7SUFDYixZQUFZLEVBQUUsNkNBQTZDO0lBQzNELGVBQWUsRUFBRSxpREFBaUQ7SUFDbEUscUJBQXFCLEVBQUUsNkZBQTZGO0lBQ3BILG9CQUFvQixFQUNsQixrR0FBa0c7SUFDcEcsTUFBTSxFQUFFLDRDQUE0QztJQUNwRCxZQUFZLEVBQUUsbURBQW1EO0lBQ2pFLE1BQU0sRUFBRSx1Q0FBdUM7SUFDL0MsVUFBVSxFQUNSLHdIQUF3SDtJQUMxSCxZQUFZLEVBQUUsZ0VBQWdFO0NBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYSHRtbFV0aWwgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBET0NVTUVOVCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBtb2RlbCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIG91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIHNpZ25hbCxcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhSZXNpemFibGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgQVhSZXNpemFibGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHBsYXRmb3JtU2VydmljZSA9IGluamVjdChBWFBsYXRmb3JtKTtcbiAgcHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHBsYXRmb3JtSUQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHJlc2l6ZUhhbmRsZTogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgaXNSZXNpemluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIGluaXRpYWxFbGVtZW50V2lkdGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBzdGFydE1vdmVXaWR0aDogbnVtYmVyO1xuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgZW50cmllc1xuICAgICAgLmZpbHRlcigoZSkgPT4gZS50YXJnZXQgPT09ICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQpXG4gICAgICAuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICB0aGlzLm1heFdpZHRoLnNldChpLmNvbnRlbnRSZWN0LndpZHRoKTtcbiAgICAgIH0pO1xuICB9KTtcblxuICAvKiogRGVmaW5lIGlmIGRpcmVjdGl2ZSBpcyBhY3RpdmUgb3Igbm90ICovXG4gIGF4UmVzaXphYmxlID0gbW9kZWwodHJ1ZSk7XG5cbiAgLyoqIE1pbmltdW0gd2lkdGggZm9yIHRoZSByZXNpemFibGUgZWxlbWVudC4gKi9cbiAgbWluV2lkdGggPSBtb2RlbCgxMDApO1xuXG4gIC8qKiBNYXhpbXVtIHdpZHRoIGZvciB0aGUgcmVzaXphYmxlIGVsZW1lbnQuIERlZmF1bHRzIHRvIHBhcmVudCB3aWR0aCBpZiBub3QgcHJvdmlkZWQuICovXG4gIG1heFdpZHRoID0gbW9kZWwoSW5maW5pdHkpO1xuXG4gIC8qKiBCZWhhdmlvciBvbiBkb3VibGUtY2xpY2s6ICdyZXNldCcgb3IgJ21heGltaXplJy4gKi9cbiAgZGJsQ2xpY2tBY3Rpb24gPSBtb2RlbDwncmVzZXQnIHwgJ21heGltaXplJyB8ICdmaXQnPigncmVzZXQnKTtcblxuICAvKiogRGVmaW5lIGluaXRpYWwgd2lkdGggZm9yIHRoZSBlbGVtZW50LiAqL1xuICB3aWR0aCA9IG1vZGVsPG51bGwgfCBudW1iZXI+KG51bGwpO1xuXG4gIC8qKiBEZWZpbmUgcmVzZXQgd2lkdGggZm9yIHRoZSBlbGVtZW50LiAqL1xuICBkZWZhdWx0V2lkdGggPSBtb2RlbDxudWxsIHwgbnVtYmVyPihudWxsKTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHJlc2l6aW5nIHN0YXJ0cy4gKi9cbiAgb25SZXNpemluZ1N0YXJ0ZWQgPSBvdXRwdXQ8QVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+PigpO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gcmVzaXppbmcgZW5kcy4gKi9cbiAgb25SZXNpemluZ0VuZGVkID0gb3V0cHV0PEFYVmFsdWVDaGFuZ2VkRXZlbnQ8bnVtYmVyPj4oKTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCBvbiBkb3VibGUtY2xpY2suICovXG4gIG9uUmVzaXppbmdEYmxDbGljayA9IG91dHB1dDxBWFZhbHVlQ2hhbmdlZEV2ZW50PG51bWJlcj4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5wbGF0Zm9ybVNlcnZpY2UuZGlyZWN0aW9uQ2hhbmdlLnN1YnNjcmliZSgoaSkgPT4ge1xuICAgICAgdGhpcy5pc1JUTC5zZXQoaS5kYXRhID09PSAncnRsJyk7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsRWxlbWVudFdpZHRoID0gKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGg7IC8vIFN0b3JlIHRoZSBpbml0aWFsIHdpZHRoXG5cbiAgICBpZiAodGhpcy53aWR0aCgpICE9PSBudWxsKSB7XG4gICAgICAodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS53aWR0aCA9IGAke3RoaXMud2lkdGgoKX1weGA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWF4V2lkdGgoKSA9PT0gSW5maW5pdHkpIHtcbiAgICAgIGNvbnN0IHBhcmVudFdpZHRoID0gKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgICBpZiAocGFyZW50V2lkdGgpIHtcbiAgICAgICAgdGhpcy5tYXhXaWR0aC5zZXQocGFyZW50V2lkdGgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudCk7XG4gICAgdGhpcy5jcmVhdGVSZXNpemVIYW5kbGUoKTtcbiAgICB0aGlzLnNldHVwUmVzaXphYmxlU3RhdGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY2xlYW51cEV2ZW50TGlzdGVuZXJzKCk7XG4gIH1cblxuICAvLyBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gIC8vICAgY29uc29sZS5sb2coJ2NoZWNrJyk7XG4gIC8vIH1cblxuICBwcml2YXRlIHNldHVwUmVzaXphYmxlU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5heFJlc2l6YWJsZS5zdWJzY3JpYmUoKGlzQWN0aXZlKSA9PiB7XG4gICAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMucmVzZXRUb0luaXRpYWxXaWR0aCgpOyAvLyBSZXNldCB3aWR0aCB3aGVuIGRpc2FibGVkXG4gICAgICAgIHRoaXMuY2xlYW51cEV2ZW50TGlzdGVuZXJzKCk7IC8vIFJlbW92ZSBldmVudCBsaXN0ZW5lcnNcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlUmVzaXplSGFuZGxlKCk7IC8vIFJlLWVuYWJsZSBmdW5jdGlvbmFsaXR5XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlc2l6ZUhhbmRsZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXhSZXNpemFibGUoKSkgcmV0dXJuOyAvLyBEbyBub3RoaW5nIGlmIGRpcmVjdGl2ZSBpcyBkaXNhYmxlZFxuXG4gICAgKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuXG4gICAgdGhpcy5yZXNpemVIYW5kbGUgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVzaXplSGFuZGxlLmNsYXNzTGlzdC5hZGQoJ2F4LXJlc2l6YWJsZS1oYW5kbGVyJyk7XG4gICAgKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYXBwZW5kQ2hpbGQodGhpcy5yZXNpemVIYW5kbGUpO1xuXG4gICAgY29uc3QgaXNSVEwgPSB0aGlzLmlzUlRMKCk7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZSwge1xuICAgICAgd2lkdGg6IFNUWUxFUy5oYW5kbGVyV2lkdGgsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IFNUWUxFUy5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIHRvcDogJzAnLFxuICAgICAgW2lzUlRMID8gJ2xlZnQnIDogJ3JpZ2h0J106ICcwJyxcbiAgICAgIGJvdHRvbTogJzAnLFxuICAgICAgY3Vyc29yOiBTVFlMRVMuY3Vyc29yLFxuICAgICAgekluZGV4OiBTVFlMRVMuekluZGV4LFxuICAgICAgdHJhbnNpdGlvbjogU1RZTEVTLnRyYW5zaXRpb24sXG4gICAgICBib3JkZXJSYWRpdXM6IFNUWUxFUy5ib3JkZXJSYWRpdXMsXG4gICAgICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gICAgfSk7XG5cbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5vbk1vdXNlRG93bi5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZS5iaW5kKHRoaXMpKTtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25Nb3VzZVVwLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMub25Nb3VzZUVudGVyLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMub25Nb3VzZUxlYXZlLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLCB0aGlzLm9uRG91YmxlQ2xpY2suYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZXNpemVIYW5kbGUpIHtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd24uYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5vbk1vdXNlRW50ZXIuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5vbk1vdXNlTGVhdmUuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIHRoaXMub25Eb3VibGVDbGljay5iaW5kKHRoaXMpKTtcblxuICAgICAgaWYgKHRoaXMucmVzaXplSGFuZGxlLnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGUucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLnJlc2l6ZUhhbmRsZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlLmJpbmQodGhpcykpO1xuICAgIHRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25Nb3VzZVVwLmJpbmQodGhpcykpO1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgaXNSVEwgPSBzaWduYWwoQVhIdG1sVXRpbC5pc1J0bCh0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpO1xuXG4gIHByaXZhdGUgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgY29uc3QgaGFuZGxlUmVjdCA9IHRoaXMucmVzaXplSGFuZGxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKGV2ZW50LmNsaWVudFggPj0gaGFuZGxlUmVjdC5sZWZ0ICYmIGV2ZW50LmNsaWVudFggPD0gaGFuZGxlUmVjdC5yaWdodCkge1xuICAgICAgICB0aGlzLmlzUmVzaXppbmcuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gU1RZTEVTLmN1cnNvckFjdGl2ZTtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGUuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gU1RZTEVTLmJhY2tncm91bmRDb2xvckFjdGl2ZTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5zdGFydE1vdmVXaWR0aCA9ICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFdpZHRoO1xuICAgICAgICB0aGlzLm9uUmVzaXppbmdTdGFydGVkLmVtaXQoe1xuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgICAgIG5hbWU6ICdyZXNpemluZ1N0YXJ0ZWQnLFxuICAgICAgICAgIHZhbHVlOiAodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aCxcbiAgICAgICAgICBvbGRWYWx1ZTogKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGgsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1Jlc2l6aW5nKCkgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgY29uc3QgcmVjdCA9ICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgaXNSVEwgPSB0aGlzLmlzUlRMKCk7XG4gICAgICBsZXQgbmV3V2lkdGg6IG51bWJlcjtcblxuICAgICAgaWYgKGlzUlRMKSB7XG4gICAgICAgIG5ld1dpZHRoID0gcmVjdC5yaWdodCAtIGV2ZW50LmNsaWVudFg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdXaWR0aCA9IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQ7XG4gICAgICB9XG5cbiAgICAgIC8vIENsYW1wIHRoZSB3aWR0aCB0byBtaW5XaWR0aCBhbmQgbWF4V2lkdGhcbiAgICAgIG5ld1dpZHRoID0gTWF0aC5tYXgodGhpcy5taW5XaWR0aCgpLCBNYXRoLm1pbihuZXdXaWR0aCwgdGhpcy5tYXhXaWR0aCgpKSk7XG5cbiAgICAgIC8vIFVwZGF0ZSB0aGUgd2lkdGggb25seSBpZiBpdCBoYXMgY2hhbmdlZFxuICAgICAgaWYgKG5ld1dpZHRoICE9PSAodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5vZmZzZXRXaWR0aCkge1xuICAgICAgICAodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS53aWR0aCA9IGAke25ld1dpZHRofXB4YDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VVcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1Jlc2l6aW5nKCkgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgdGhpcy5pc1Jlc2l6aW5nLnNldChmYWxzZSk7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJyc7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBTVFlMRVMuYmFja2dyb3VuZENvbG9yO1xuXG4gICAgICB0aGlzLm9uUmVzaXppbmdFbmRlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgICAgbmFtZTogJ3Jlc2l6aW5nRW5kZWQnLFxuICAgICAgICB2YWx1ZTogKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkub2Zmc2V0V2lkdGgsXG4gICAgICAgIG9sZFZhbHVlOiB0aGlzLnN0YXJ0TW92ZVdpZHRoLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzUmVzaXppbmcoKSkge1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gU1RZTEVTLmJhY2tncm91bmRDb2xvckhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1Jlc2l6aW5nKCkpIHtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFNUWUxFUy5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkRvdWJsZUNsaWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9ICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFdpZHRoO1xuICAgIC8vIGNvbnN0IG1heFdpZHRoID0gdGhpcy5tYXhXaWR0aCgpO1xuICAgIC8vIGNvbnN0IGluaXRpYWxXaWR0aCA9IHRoaXMuaW5pdGlhbFdpZHRoKCkgIT09IG51bGwgPyB0aGlzLmluaXRpYWxXaWR0aCgpIDogdGhpcy5pbml0aWFsRWxlbWVudFdpZHRoO1xuICAgIGxldCBuZXdXaWR0aDogbnVtYmVyO1xuICAgIGlmICh0aGlzLmRibENsaWNrQWN0aW9uKCkgPT09ICdyZXNldCcpIHtcbiAgICAgIG5ld1dpZHRoID0gdGhpcy5yZXNldFRvSW5pdGlhbFdpZHRoKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRibENsaWNrQWN0aW9uKCkgPT09ICdtYXhpbWl6ZScpIHtcbiAgICAgIG5ld1dpZHRoID0gdGhpcy5tYXhpbWl6ZVRvTWF4V2lkdGgoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3V2lkdGggPSB0aGlzLmZpdFRvQ29udGVudCgpO1xuICAgIH1cblxuICAgIHRoaXMub25SZXNpemluZ0RibENsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgbmFtZTogJ29uUmVzaXppbmdEYmxDbGljaycsXG4gICAgICBvbGRWYWx1ZTogZWxlbWVudFdpZHRoLFxuICAgICAgdmFsdWU6IG5ld1dpZHRoLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFRvSW5pdGlhbFdpZHRoKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFdpZHRoKCkgIT09IG51bGwpIHtcbiAgICAgICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLndpZHRoID0gYCR7dGhpcy5kZWZhdWx0V2lkdGgoKX1weGA7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0V2lkdGgoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMud2lkdGgoKSAhPT0gbnVsbCkge1xuICAgICAgKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUud2lkdGggPSBgJHt0aGlzLndpZHRoKCl9cHhgO1xuICAgICAgcmV0dXJuIHRoaXMud2lkdGgoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUud2lkdGggPSBgJHt0aGlzLmluaXRpYWxFbGVtZW50V2lkdGh9cHhgO1xuICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbEVsZW1lbnRXaWR0aDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1heGltaXplVG9NYXhXaWR0aCgpIHtcbiAgICBjb25zdCBtYXhXaWR0aCA9IHRoaXMubWF4V2lkdGgoKTtcbiAgICBpZiAobWF4V2lkdGggIT09IEluZmluaXR5KSB7XG4gICAgICAodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS53aWR0aCA9IGAke21heFdpZHRofXB4YDtcbiAgICB9XG4gICAgcmV0dXJuIG1heFdpZHRoO1xuICB9XG5cbiAgcHJpdmF0ZSBmaXRUb0NvbnRlbnQoKSB7XG4gICAgKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUud2lkdGggPSAnZml0LWNvbnRlbnQnO1xuICAgIHJldHVybiAodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jbGllbnRXaWR0aDtcbiAgfVxufVxuXG5pbnRlcmZhY2UgQVhWYWx1ZUNoYW5nZWRFdmVudDxUPiB7XG4gIGNvbXBvbmVudDogdW5rbm93bjtcbiAgaHRtbEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgaXNVc2VySW50ZXJhY3Rpb24/OiBib29sZWFuO1xuICBuYW1lPzogc3RyaW5nO1xuICB2YWx1ZT86IFQ7XG4gIG9sZFZhbHVlPzogVDtcbn1cblxuY29uc3QgU1RZTEVTID0ge1xuICBoYW5kbGVyV2lkdGg6ICd2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1oYW5kbGVyLXdpZHRoLCA0cHgpJyxcbiAgYmFja2dyb3VuZENvbG9yOiAncmdiYSh2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1iYWNrZ3JvdW5kLWNvbG9yKSknLFxuICBiYWNrZ3JvdW5kQ29sb3JBY3RpdmU6ICdyZ2JhKHZhcigtLWF4LWNvbXAtcmVzaXphYmxlLWJhY2tncm91bmQtY29sb3ItYWN0aXZlLCB2YXIoLS1heC1zeXMtY29sb3ItcHJpbWFyeS1zdXJmYWNlKSkpJyxcbiAgYmFja2dyb3VuZENvbG9ySG92ZXI6XG4gICAgJ3JnYmEodmFyKC0tYXgtY29tcC1yZXNpemFibGUtYmFja2dyb3VuZC1jb2xvci1ob3ZlciwgdmFyKC0tYXgtc3lzLWNvbG9yLXByaW1hcnktbGlnaHQtc3VyZmFjZSkpKScsXG4gIGN1cnNvcjogJ3ZhcigtLWF4LWNvbXAtcmVzaXphYmxlLWN1cnNvciwgZXctcmVzaXplKScsXG4gIGN1cnNvckFjdGl2ZTogJ3ZhcigtLWF4LWNvbXAtcmVzaXphYmxlLWN1cnNvci1hY3RpdmUsIGV3LXJlc2l6ZSknLFxuICB6SW5kZXg6ICd2YXIoLS1heC1jb21wLXJlc2l6YWJsZS16LWluZGV4LCA5OTkpJyxcbiAgdHJhbnNpdGlvbjpcbiAgICAndmFyKC0tYXgtY29tcC1yZXNpemFibGUtdHJhbnNpdGlvbiwgYmFja2dyb3VuZC1jb2xvciAtLWF4LXN5cy10cmFuc2l0aW9uLWR1cmF0aW9uIC0tYXgtc3lzLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKScsXG4gIGJvcmRlclJhZGl1czogJ3ZhcigtLWF4LWNvbXAtcmVzaXphYmxlLWJvcmRlci1yYWRpdXMsIC0tYXgtc3lzLWJvcmRlci1yYWRpdXMpJyxcbn07XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1yZXNpemFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvcmVzaXphYmxlL3NyYy9hY29yZXgtY2RrLXJlc2l6YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-cdk-resizable.mjs","sources":["../tmp-esm2022/resizable/lib/resize.directive.js","../tmp-esm2022/resizable/acorex-cdk-resizable.js"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Directive, DOCUMENT, ElementRef, inject, model, NgZone, output, PLATFORM_ID, signal, } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXResizableDirective {\n constructor() {\n this.el = inject(ElementRef);\n this.platformService = inject(AXPlatform);\n this.zone = inject(NgZone);\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n this.isResizing = signal(false, ...(ngDevMode ? [{ debugName: \"isResizing\" }] : []));\n this.initialElementWidth = 0;\n this.startMoveWidth = 0;\n this.subscriptions = new Subscription();\n // Bound event handlers to maintain reference for cleanup\n this.boundMouseDown = this.onMouseDown.bind(this);\n this.boundMouseMove = this.onMouseMove.bind(this);\n this.boundMouseUp = this.onMouseUp.bind(this);\n this.boundMouseEnter = this.onMouseEnter.bind(this);\n this.boundMouseLeave = this.onMouseLeave.bind(this);\n this.boundDoubleClick = this.onDoubleClick.bind(this);\n this.resizeObserver = new ResizeObserver((entries) => {\n const parentElement = this.hostElement.parentElement;\n if (!parentElement)\n return;\n for (const entry of entries) {\n if (entry.target === parentElement && this.maxWidth() === Infinity) {\n this.maxWidth.set(entry.contentRect.width);\n break;\n }\n }\n });\n /** Define if directive is active or not */\n this.axResizable = model(true, ...(ngDevMode ? [{ debugName: \"axResizable\" }] : []));\n /** Minimum width for the resizable element. */\n this.minWidth = model(100, ...(ngDevMode ? [{ debugName: \"minWidth\" }] : []));\n /** Maximum width for the resizable element. Defaults to parent width if not provided. */\n this.maxWidth = model(Infinity, ...(ngDevMode ? [{ debugName: \"maxWidth\" }] : []));\n /** Behavior on double-click: 'reset' or 'maximize'. */\n this.dblClickAction = model('reset', ...(ngDevMode ? [{ debugName: \"dblClickAction\" }] : []));\n /** Define initial width for the element. */\n this.width = model(null, ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n /** Define reset width for the element. */\n this.defaultWidth = model(null, ...(ngDevMode ? [{ debugName: \"defaultWidth\" }] : []));\n /** Event emitted when resizing starts. */\n this.onResizingStarted = output();\n /** Event emitted when resizing ends. */\n this.onResizingEnded = output();\n /** Event emitted on double-click. */\n this.onResizingDblClick = output();\n this.isRTL = signal(AXHtmlUtil.isRtl(this.document.documentElement), ...(ngDevMode ? [{ debugName: \"isRTL\" }] : []));\n this.isBrowser = isPlatformBrowser(this.platformID);\n this.hostElement = this.el.nativeElement;\n this.subscriptions.add(this.platformService.directionChange.subscribe((i) => {\n this.isRTL.set(i.data === 'rtl');\n if (this.resizeHandle) {\n this.updateHandlePosition();\n }\n }));\n }\n ngAfterViewInit() {\n if (!this.isBrowser)\n return;\n this.initialElementWidth = this.hostElement.offsetWidth;\n const initialWidth = this.width();\n if (initialWidth !== null) {\n this.hostElement.style.width = `${initialWidth}px`;\n }\n if (this.maxWidth() === Infinity) {\n const parentWidth = this.hostElement.parentElement?.offsetWidth;\n if (parentWidth) {\n this.maxWidth.set(parentWidth);\n }\n }\n const parentElement = this.hostElement.parentElement;\n if (parentElement) {\n this.resizeObserver.observe(parentElement);\n }\n this.createResizeHandle();\n this.setupResizableState();\n }\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.resizeObserver.disconnect();\n this.cleanupEventListeners();\n }\n setupResizableState() {\n this.subscriptions.add(this.axResizable.subscribe((isActive) => {\n if (!isActive) {\n this.resetToInitialWidth();\n this.cleanupEventListeners();\n }\n else {\n this.createResizeHandle();\n }\n }));\n }\n createResizeHandle() {\n if (!this.axResizable() || this.resizeHandle)\n return;\n this.hostElement.style.position = 'relative';\n this.resizeHandle = this.document.createElement('div');\n this.resizeHandle.classList.add('ax-resizable-handler');\n this.hostElement.appendChild(this.resizeHandle);\n this.applyHandleStyles();\n this.attachEventListeners();\n }\n applyHandleStyles() {\n if (!this.resizeHandle)\n return;\n Object.assign(this.resizeHandle.style, {\n width: STYLES.handlerWidth,\n backgroundColor: STYLES.backgroundColor,\n position: 'absolute',\n top: '0',\n bottom: '0',\n cursor: STYLES.cursor,\n zIndex: STYLES.zIndex,\n transition: STYLES.transition,\n borderRadius: STYLES.borderRadius,\n userSelect: 'none',\n });\n this.updateHandlePosition();\n }\n updateHandlePosition() {\n if (!this.resizeHandle)\n return;\n const isRTL = this.isRTL();\n if (isRTL) {\n this.resizeHandle.style.left = '0';\n this.resizeHandle.style.right = '';\n }\n else {\n this.resizeHandle.style.right = '0';\n this.resizeHandle.style.left = '';\n }\n }\n attachEventListeners() {\n if (!this.resizeHandle)\n return;\n const handle = this.resizeHandle;\n this.zone.runOutsideAngular(() => {\n handle.addEventListener('mousedown', this.boundMouseDown);\n handle.addEventListener('mouseenter', this.boundMouseEnter);\n handle.addEventListener('mouseleave', this.boundMouseLeave);\n handle.addEventListener('dblclick', this.boundDoubleClick);\n this.document.addEventListener('mousemove', this.boundMouseMove);\n this.document.addEventListener('mouseup', this.boundMouseUp);\n });\n }\n cleanupEventListeners() {\n if (this.resizeHandle) {\n this.resizeHandle.removeEventListener('mousedown', this.boundMouseDown);\n this.resizeHandle.removeEventListener('mouseenter', this.boundMouseEnter);\n this.resizeHandle.removeEventListener('mouseleave', this.boundMouseLeave);\n this.resizeHandle.removeEventListener('dblclick', this.boundDoubleClick);\n this.resizeHandle.remove();\n this.resizeHandle = undefined;\n }\n this.document.removeEventListener('mousemove', this.boundMouseMove);\n this.document.removeEventListener('mouseup', this.boundMouseUp);\n this.document.body.style.cursor = '';\n }\n onMouseDown(event) {\n if (!this.resizeHandle)\n return;\n const handleRect = this.resizeHandle.getBoundingClientRect();\n if (event.clientX < handleRect.left || event.clientX > handleRect.right)\n return;\n event.preventDefault();\n this.isResizing.set(true);\n this.document.body.style.cursor = STYLES.cursorActive;\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColorActive;\n this.startMoveWidth = this.hostElement.offsetWidth;\n this.zone.run(() => {\n this.onResizingStarted.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'resizingStarted',\n value: this.startMoveWidth,\n oldValue: this.startMoveWidth,\n });\n });\n }\n onMouseMove(event) {\n if (!this.isResizing())\n return;\n const rect = this.hostElement.getBoundingClientRect();\n const isRTL = this.isRTL();\n let newWidth = isRTL ? rect.right - event.clientX : event.clientX - rect.left;\n newWidth = Math.max(this.minWidth(), Math.min(newWidth, this.maxWidth()));\n if (newWidth !== this.hostElement.offsetWidth) {\n this.hostElement.style.width = `${newWidth}px`;\n }\n }\n onMouseUp() {\n if (!this.isResizing() || !this.resizeHandle)\n return;\n this.isResizing.set(false);\n this.document.body.style.cursor = '';\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColor;\n const currentWidth = this.hostElement.offsetWidth;\n this.zone.run(() => {\n this.onResizingEnded.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'resizingEnded',\n value: currentWidth,\n oldValue: this.startMoveWidth,\n });\n });\n }\n onMouseEnter() {\n if (!this.isResizing() && this.resizeHandle) {\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColorHover;\n }\n }\n onMouseLeave() {\n if (!this.isResizing() && this.resizeHandle) {\n this.resizeHandle.style.backgroundColor = STYLES.backgroundColor;\n }\n }\n onDoubleClick() {\n const elementWidth = this.hostElement.offsetWidth;\n const action = this.dblClickAction();\n let newWidth;\n switch (action) {\n case 'reset':\n newWidth = this.resetToInitialWidth();\n break;\n case 'maximize':\n newWidth = this.maximizeToMaxWidth();\n break;\n case 'fit':\n newWidth = this.fitToContent();\n break;\n default:\n newWidth = elementWidth;\n }\n this.zone.run(() => {\n this.onResizingDblClick.emit({\n component: this,\n htmlElement: this.hostElement,\n isUserInteraction: true,\n name: 'onResizingDblClick',\n oldValue: elementWidth,\n value: newWidth,\n });\n });\n }\n resetToInitialWidth() {\n const defaultWidth = this.defaultWidth();\n if (defaultWidth !== null) {\n this.hostElement.style.width = `${defaultWidth}px`;\n return defaultWidth;\n }\n const initialWidth = this.width();\n if (initialWidth !== null) {\n this.hostElement.style.width = `${initialWidth}px`;\n return initialWidth;\n }\n this.hostElement.style.width = `${this.initialElementWidth}px`;\n return this.initialElementWidth;\n }\n maximizeToMaxWidth() {\n const maxWidth = this.maxWidth();\n if (maxWidth !== Infinity) {\n this.hostElement.style.width = `${maxWidth}px`;\n }\n return maxWidth;\n }\n fitToContent() {\n this.hostElement.style.width = 'fit-content';\n return this.hostElement.clientWidth;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXResizableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.9\", type: AXResizableDirective, isStandalone: true, selector: \"[axResizable]\", inputs: { axResizable: { classPropertyName: \"axResizable\", publicName: \"axResizable\", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: \"minWidth\", publicName: \"minWidth\", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: \"maxWidth\", publicName: \"maxWidth\", isSignal: true, isRequired: false, transformFunction: null }, dblClickAction: { classPropertyName: \"dblClickAction\", publicName: \"dblClickAction\", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, defaultWidth: { classPropertyName: \"defaultWidth\", publicName: \"defaultWidth\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { axResizable: \"axResizableChange\", minWidth: \"minWidthChange\", maxWidth: \"maxWidthChange\", dblClickAction: \"dblClickActionChange\", width: \"widthChange\", defaultWidth: \"defaultWidthChange\", onResizingStarted: \"onResizingStarted\", onResizingEnded: \"onResizingEnded\", onResizingDblClick: \"onResizingDblClick\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: AXResizableDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axResizable]',\n }]\n }], ctorParameters: () => [], propDecorators: { axResizable: [{ type: i0.Input, args: [{ isSignal: true, alias: \"axResizable\", required: false }] }, { type: i0.Output, args: [\"axResizableChange\"] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: \"minWidth\", required: false }] }, { type: i0.Output, args: [\"minWidthChange\"] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: \"maxWidth\", required: false }] }, { type: i0.Output, args: [\"maxWidthChange\"] }], dblClickAction: [{ type: i0.Input, args: [{ isSignal: true, alias: \"dblClickAction\", required: false }] }, { type: i0.Output, args: [\"dblClickActionChange\"] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: \"width\", required: false }] }, { type: i0.Output, args: [\"widthChange\"] }], defaultWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: \"defaultWidth\", required: false }] }, { type: i0.Output, args: [\"defaultWidthChange\"] }], onResizingStarted: [{ type: i0.Output, args: [\"onResizingStarted\"] }], onResizingEnded: [{ type: i0.Output, args: [\"onResizingEnded\"] }], onResizingDblClick: [{ type: i0.Output, args: [\"onResizingDblClick\"] }] } });\nconst STYLES = {\n handlerWidth: 'var(--ax-comp-resizable-handler-width, 4px)',\n backgroundColor: 'rgba(var(--ax-comp-resizable-background-color))',\n backgroundColorActive: 'rgba(var(--ax-comp-resizable-background-color-active, var(--ax-sys-color-primary-surface)))',\n backgroundColorHover: 'rgba(var(--ax-comp-resizable-background-color-hover, var(--ax-sys-color-primary-light-surface)))',\n cursor: 'var(--ax-comp-resizable-cursor, ew-resize)',\n cursorActive: 'var(--ax-comp-resizable-cursor-active, ew-resize)',\n zIndex: 'var(--ax-comp-resizable-z-index, 999)',\n transition: 'var(--ax-comp-resizable-transition, background-color --ax-sys-transition-duration --ax-sys-transition-timing-function)',\n borderRadius: 'var(--ax-comp-resizable-border-radius, --ax-sys-border-radius)',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9yZXNpemFibGUvc3JjL2xpYi9yZXNpemUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUVMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3BDLE1BQU0sT0FBTyxvQkFBb0I7SUE4RC9CO1FBN0RpQixPQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLG9CQUFlLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSzFDLGVBQVUsR0FBNEIsTUFBTSxDQUFDLEtBQUssc0RBQUMsQ0FBQztRQUNwRCx3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNDLHlEQUF5RDtRQUN4QyxtQkFBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxD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QUMsV0FBVyxDQUFDO0lBQ3RDLENBQUM7OEdBeFVVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO2lCQUMxQjs7QUFxVkQsTUFBTSxNQUFNLEdBQUc7SUFDYixZQUFZLEVBQUUsNkNBQTZDO0lBQzNELGVBQWUsRUFBRSxpREFBaUQ7SUFDbEUscUJBQXFCLEVBQUUsNkZBQTZGO0lBQ3BILG9CQUFvQixFQUNsQixrR0FBa0c7SUFDcEcsTUFBTSxFQUFFLDRDQUE0QztJQUNwRCxZQUFZLEVBQUUsbURBQW1EO0lBQ2pFLE1BQU0sRUFBRSx1Q0FBdUM7SUFDL0MsVUFBVSxFQUNSLHdIQUF3SDtJQUMxSCxZQUFZLEVBQUUsZ0VBQWdFO0NBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYSHRtbFV0aWwgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBET0NVTUVOVCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBtb2RlbCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIG91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIHNpZ25hbCxcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1theFJlc2l6YWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBBWFJlc2l6YWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1TZXJ2aWNlID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xuICBcbiAgcHJpdmF0ZSBob3N0RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIHJlc2l6ZUhhbmRsZT86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGlzUmVzaXppbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBpbml0aWFsRWxlbWVudFdpZHRoID0gMDtcbiAgcHJpdmF0ZSBzdGFydE1vdmVXaWR0aCA9IDA7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgXG4gIC8vIEJvdW5kIGV2ZW50IGhhbmRsZXJzIHRvIG1haW50YWluIHJlZmVyZW5jZSBmb3IgY2xlYW51cFxuICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kTW91c2VEb3duID0gdGhpcy5vbk1vdXNlRG93bi5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kTW91c2VNb3ZlID0gdGhpcy5vbk1vdXNlTW92ZS5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kTW91c2VVcCA9IHRoaXMub25Nb3VzZVVwLmJpbmQodGhpcyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYm91bmRNb3VzZUVudGVyID0gdGhpcy5vbk1vdXNlRW50ZXIuYmluZCh0aGlzKTtcbiAgcHJpdmF0ZSByZWFkb25seSBib3VuZE1vdXNlTGVhdmUgPSB0aGlzLm9uTW91c2VMZWF2ZS5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kRG91YmxlQ2xpY2sgPSB0aGlzLm9uRG91YmxlQ2xpY2suYmluZCh0aGlzKTtcbiAgXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5ob3N0RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGlmICghcGFyZW50RWxlbWVudCkgcmV0dXJuO1xuICAgIFxuICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgaWYgKGVudHJ5LnRhcmdldCA9PT0gcGFyZW50RWxlbWVudCAmJiB0aGlzLm1heFdpZHRoKCkgPT09IEluZmluaXR5KSB7XG4gICAgICAgIHRoaXMubWF4V2lkdGguc2V0KGVudHJ5LmNvbnRlbnRSZWN0LndpZHRoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICAvKiogRGVmaW5lIGlmIGRpcmVjdGl2ZSBpcyBhY3RpdmUgb3Igbm90ICovXG4gIGF4UmVzaXphYmxlID0gbW9kZWwodHJ1ZSk7XG5cbiAgLyoqIE1pbmltdW0gd2lkdGggZm9yIHRoZSByZXNpemFibGUgZWxlbWVudC4gKi9cbiAgbWluV2lkdGggPSBtb2RlbCgxMDApO1xuXG4gIC8qKiBNYXhpbXVtIHdpZHRoIGZvciB0aGUgcmVzaXphYmxlIGVsZW1lbnQuIERlZmF1bHRzIHRvIHBhcmVudCB3aWR0aCBpZiBub3QgcHJvdmlkZWQuICovXG4gIG1heFdpZHRoID0gbW9kZWwoSW5maW5pdHkpO1xuXG4gIC8qKiBCZWhhdmlvciBvbiBkb3VibGUtY2xpY2s6ICdyZXNldCcgb3IgJ21heGltaXplJy4gKi9cbiAgZGJsQ2xpY2tBY3Rpb24gPSBtb2RlbDwncmVzZXQnIHwgJ21heGltaXplJyB8ICdmaXQnPigncmVzZXQnKTtcblxuICAvKiogRGVmaW5lIGluaXRpYWwgd2lkdGggZm9yIHRoZSBlbGVtZW50LiAqL1xuICB3aWR0aCA9IG1vZGVsPG51bGwgfCBudW1iZXI+KG51bGwpO1xuXG4gIC8qKiBEZWZpbmUgcmVzZXQgd2lkdGggZm9yIHRoZSBlbGVtZW50LiAqL1xuICBkZWZhdWx0V2lkdGggPSBtb2RlbDxudWxsIHwgbnVtYmVyPihudWxsKTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHJlc2l6aW5nIHN0YXJ0cy4gKi9cbiAgb25SZXNpemluZ1N0YXJ0ZWQgPSBvdXRwdXQ8QVhWYWx1ZUNoYW5nZWRFdmVudDxudW1iZXI+PigpO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gcmVzaXppbmcgZW5kcy4gKi9cbiAgb25SZXNpemluZ0VuZGVkID0gb3V0cHV0PEFYVmFsdWVDaGFuZ2VkRXZlbnQ8bnVtYmVyPj4oKTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCBvbiBkb3VibGUtY2xpY2suICovXG4gIG9uUmVzaXppbmdEYmxDbGljayA9IG91dHB1dDxBWFZhbHVlQ2hhbmdlZEV2ZW50PG51bWJlcj4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmRpcmVjdGlvbkNoYW5nZS5zdWJzY3JpYmUoKGkpID0+IHtcbiAgICAgICAgdGhpcy5pc1JUTC5zZXQoaS5kYXRhID09PSAncnRsJyk7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZUhhbmRsZSkge1xuICAgICAgICAgIHRoaXMudXBkYXRlSGFuZGxlUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICBcbiAgICB0aGlzLmluaXRpYWxFbGVtZW50V2lkdGggPSB0aGlzLmhvc3RFbGVtZW50Lm9mZnNldFdpZHRoO1xuXG4gICAgY29uc3QgaW5pdGlhbFdpZHRoID0gdGhpcy53aWR0aCgpO1xuICAgIGlmIChpbml0aWFsV2lkdGggIT09IG51bGwpIHtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHtpbml0aWFsV2lkdGh9cHhgO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heFdpZHRoKCkgPT09IEluZmluaXR5KSB7XG4gICAgICBjb25zdCBwYXJlbnRXaWR0aCA9IHRoaXMuaG9zdEVsZW1lbnQucGFyZW50RWxlbWVudD8ub2Zmc2V0V2lkdGg7XG4gICAgICBpZiAocGFyZW50V2lkdGgpIHtcbiAgICAgICAgdGhpcy5tYXhXaWR0aC5zZXQocGFyZW50V2lkdGgpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5ob3N0RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUocGFyZW50RWxlbWVudCk7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuY3JlYXRlUmVzaXplSGFuZGxlKCk7XG4gICAgdGhpcy5zZXR1cFJlc2l6YWJsZVN0YXRlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmNsZWFudXBFdmVudExpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFJlc2l6YWJsZVN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmF4UmVzaXphYmxlLnN1YnNjcmliZSgoaXNBY3RpdmUpID0+IHtcbiAgICAgICAgaWYgKCFpc0FjdGl2ZSkge1xuICAgICAgICAgIHRoaXMucmVzZXRUb0luaXRpYWxXaWR0aCgpO1xuICAgICAgICAgIHRoaXMuY2xlYW51cEV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jcmVhdGVSZXNpemVIYW5kbGUoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZXNpemVIYW5kbGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmF4UmVzaXphYmxlKCkgfHwgdGhpcy5yZXNpemVIYW5kbGUpIHJldHVybjtcblxuICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuXG4gICAgdGhpcy5yZXNpemVIYW5kbGUgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVzaXplSGFuZGxlLmNsYXNzTGlzdC5hZGQoJ2F4LXJlc2l6YWJsZS1oYW5kbGVyJyk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnJlc2l6ZUhhbmRsZSk7XG5cbiAgICB0aGlzLmFwcGx5SGFuZGxlU3R5bGVzKCk7XG4gICAgdGhpcy5hdHRhY2hFdmVudExpc3RlbmVycygpO1xuICB9XG4gIFxuICBwcml2YXRlIGFwcGx5SGFuZGxlU3R5bGVzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXNpemVIYW5kbGUpIHJldHVybjtcbiAgICBcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucmVzaXplSGFuZGxlLnN0eWxlLCB7XG4gICAgICB3aWR0aDogU1RZTEVTLmhhbmRsZXJXaWR0aCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogU1RZTEVTLmJhY2tncm91bmRDb2xvcixcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgdG9wOiAnMCcsXG4gICAgICBib3R0b206ICcwJyxcbiAgICAgIGN1cnNvcjogU1RZTEVTLmN1cnNvcixcbiAgICAgIHpJbmRleDogU1RZTEVTLnpJbmRleCxcbiAgICAgIHRyYW5zaXRpb246IFNUWUxFUy50cmFuc2l0aW9uLFxuICAgICAgYm9yZGVyUmFkaXVzOiBTVFlMRVMuYm9yZGVyUmFkaXVzLFxuICAgICAgdXNlclNlbGVjdDogJ25vbmUnLFxuICAgIH0pO1xuICAgIFxuICAgIHRoaXMudXBkYXRlSGFuZGxlUG9zaXRpb24oKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSB1cGRhdGVIYW5kbGVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzaXplSGFuZGxlKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgaXNSVEwgPSB0aGlzLmlzUlRMKCk7XG4gICAgaWYgKGlzUlRMKSB7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUuc3R5bGUucmlnaHQgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUuc3R5bGUucmlnaHQgPSAnMCc7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5sZWZ0ID0gJyc7XG4gICAgfVxuICB9XG4gIFxuICBwcml2YXRlIGF0dGFjaEV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXNpemVIYW5kbGUpIHJldHVybjtcbiAgICBcbiAgICBjb25zdCBoYW5kbGUgPSB0aGlzLnJlc2l6ZUhhbmRsZTtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuYm91bmRNb3VzZURvd24pO1xuICAgICAgaGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmJvdW5kTW91c2VFbnRlcik7XG4gICAgICBoYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuYm91bmRNb3VzZUxlYXZlKTtcbiAgICAgIGhhbmRsZS5hZGRFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIHRoaXMuYm91bmREb3VibGVDbGljayk7XG4gICAgICB0aGlzLmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuYm91bmRNb3VzZU1vdmUpO1xuICAgICAgdGhpcy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5ib3VuZE1vdXNlVXApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzaXplSGFuZGxlKSB7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmJvdW5kTW91c2VEb3duKTtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmJvdW5kTW91c2VFbnRlcik7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5ib3VuZE1vdXNlTGVhdmUpO1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLCB0aGlzLmJvdW5kRG91YmxlQ2xpY2spO1xuICAgICAgdGhpcy5yZXNpemVIYW5kbGUucmVtb3ZlKCk7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB0aGlzLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuYm91bmRNb3VzZU1vdmUpO1xuICAgIHRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuYm91bmRNb3VzZVVwKTtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJyc7XG4gIH1cblxuICBwcml2YXRlIGlzUlRMID0gc2lnbmFsKEFYSHRtbFV0aWwuaXNSdGwodGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKTtcblxuICBwcml2YXRlIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlc2l6ZUhhbmRsZSkgcmV0dXJuO1xuICAgIFxuICAgIGNvbnN0IGhhbmRsZVJlY3QgPSB0aGlzLnJlc2l6ZUhhbmRsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoZXZlbnQuY2xpZW50WCA8IGhhbmRsZVJlY3QubGVmdCB8fCBldmVudC5jbGllbnRYID4gaGFuZGxlUmVjdC5yaWdodCkgcmV0dXJuO1xuICAgIFxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgXG4gICAgdGhpcy5pc1Jlc2l6aW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gU1RZTEVTLmN1cnNvckFjdGl2ZTtcbiAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBTVFlMRVMuYmFja2dyb3VuZENvbG9yQWN0aXZlO1xuICAgIHRoaXMuc3RhcnRNb3ZlV2lkdGggPSB0aGlzLmhvc3RFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIFxuICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5vblJlc2l6aW5nU3RhcnRlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5ob3N0RWxlbWVudCxcbiAgICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgICAgIG5hbWU6ICdyZXNpemluZ1N0YXJ0ZWQnLFxuICAgICAgICB2YWx1ZTogdGhpcy5zdGFydE1vdmVXaWR0aCxcbiAgICAgICAgb2xkVmFsdWU6IHRoaXMuc3RhcnRNb3ZlV2lkdGgsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNSZXNpemluZygpKSByZXR1cm47XG4gICAgXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuaG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgaXNSVEwgPSB0aGlzLmlzUlRMKCk7XG4gICAgXG4gICAgbGV0IG5ld1dpZHRoID0gaXNSVEwgPyByZWN0LnJpZ2h0IC0gZXZlbnQuY2xpZW50WCA6IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQ7XG4gICAgbmV3V2lkdGggPSBNYXRoLm1heCh0aGlzLm1pbldpZHRoKCksIE1hdGgubWluKG5ld1dpZHRoLCB0aGlzLm1heFdpZHRoKCkpKTtcblxuICAgIGlmIChuZXdXaWR0aCAhPT0gdGhpcy5ob3N0RWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgdGhpcy5ob3N0RWxlbWVudC5zdHlsZS53aWR0aCA9IGAke25ld1dpZHRofXB4YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VVcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNSZXNpemluZygpIHx8ICF0aGlzLnJlc2l6ZUhhbmRsZSkgcmV0dXJuO1xuICAgIFxuICAgIHRoaXMuaXNSZXNpemluZy5zZXQoZmFsc2UpO1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAnJztcbiAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBTVFlMRVMuYmFja2dyb3VuZENvbG9yO1xuICAgIFxuICAgIGNvbnN0IGN1cnJlbnRXaWR0aCA9IHRoaXMuaG9zdEVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLm9uUmVzaXppbmdFbmRlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5ob3N0RWxlbWVudCxcbiAgICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgICAgIG5hbWU6ICdyZXNpemluZ0VuZGVkJyxcbiAgICAgICAgdmFsdWU6IGN1cnJlbnRXaWR0aCxcbiAgICAgICAgb2xkVmFsdWU6IHRoaXMuc3RhcnRNb3ZlV2lkdGgsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1Jlc2l6aW5nKCkgJiYgdGhpcy5yZXNpemVIYW5kbGUpIHtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFNUWUxFUy5iYWNrZ3JvdW5kQ29sb3JIb3ZlcjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNSZXNpemluZygpICYmIHRoaXMucmVzaXplSGFuZGxlKSB7XG4gICAgICB0aGlzLnJlc2l6ZUhhbmRsZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBTVFlMRVMuYmFja2dyb3VuZENvbG9yO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Eb3VibGVDbGljaygpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50V2lkdGggPSB0aGlzLmhvc3RFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuZGJsQ2xpY2tBY3Rpb24oKTtcbiAgICBcbiAgICBsZXQgbmV3V2lkdGg6IG51bWJlcjtcbiAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgY2FzZSAncmVzZXQnOlxuICAgICAgICBuZXdXaWR0aCA9IHRoaXMucmVzZXRUb0luaXRpYWxXaWR0aCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21heGltaXplJzpcbiAgICAgICAgbmV3V2lkdGggPSB0aGlzLm1heGltaXplVG9NYXhXaWR0aCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZpdCc6XG4gICAgICAgIG5ld1dpZHRoID0gdGhpcy5maXRUb0NvbnRlbnQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBuZXdXaWR0aCA9IGVsZW1lbnRXaWR0aDtcbiAgICB9XG5cbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMub25SZXNpemluZ0RibENsaWNrLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmhvc3RFbGVtZW50LFxuICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgICAgbmFtZTogJ29uUmVzaXppbmdEYmxDbGljaycsXG4gICAgICAgIG9sZFZhbHVlOiBlbGVtZW50V2lkdGgsXG4gICAgICAgIHZhbHVlOiBuZXdXaWR0aCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFRvSW5pdGlhbFdpZHRoKCk6IG51bWJlciB7XG4gICAgY29uc3QgZGVmYXVsdFdpZHRoID0gdGhpcy5kZWZhdWx0V2lkdGgoKTtcbiAgICBpZiAoZGVmYXVsdFdpZHRoICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7ZGVmYXVsdFdpZHRofXB4YDtcbiAgICAgIHJldHVybiBkZWZhdWx0V2lkdGg7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGluaXRpYWxXaWR0aCA9IHRoaXMud2lkdGgoKTtcbiAgICBpZiAoaW5pdGlhbFdpZHRoICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7aW5pdGlhbFdpZHRofXB4YDtcbiAgICAgIHJldHVybiBpbml0aWFsV2lkdGg7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt0aGlzLmluaXRpYWxFbGVtZW50V2lkdGh9cHhgO1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxFbGVtZW50V2lkdGg7XG4gIH1cblxuICBwcml2YXRlIG1heGltaXplVG9NYXhXaWR0aCgpOiBudW1iZXIge1xuICAgIGNvbnN0IG1heFdpZHRoID0gdGhpcy5tYXhXaWR0aCgpO1xuICAgIGlmIChtYXhXaWR0aCAhPT0gSW5maW5pdHkpIHtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHttYXhXaWR0aH1weGA7XG4gICAgfVxuICAgIHJldHVybiBtYXhXaWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgZml0VG9Db250ZW50KCk6IG51bWJlciB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zdHlsZS53aWR0aCA9ICdmaXQtY29udGVudCc7XG4gICAgcmV0dXJuIHRoaXMuaG9zdEVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEFYVmFsdWVDaGFuZ2VkRXZlbnQ8VD4ge1xuICBjb21wb25lbnQ6IHVua25vd247XG4gIGh0bWxFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gIGlzVXNlckludGVyYWN0aW9uPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgdmFsdWU/OiBUO1xuICBvbGRWYWx1ZT86IFQ7XG59XG5cbmNvbnN0IFNUWUxFUyA9IHtcbiAgaGFuZGxlcldpZHRoOiAndmFyKC0tYXgtY29tcC1yZXNpemFibGUtaGFuZGxlci13aWR0aCwgNHB4KScsXG4gIGJhY2tncm91bmRDb2xvcjogJ3JnYmEodmFyKC0tYXgtY29tcC1yZXNpemFibGUtYmFja2dyb3VuZC1jb2xvcikpJyxcbiAgYmFja2dyb3VuZENvbG9yQWN0aXZlOiAncmdiYSh2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSwgdmFyKC0tYXgtc3lzLWNvbG9yLXByaW1hcnktc3VyZmFjZSkpKScsXG4gIGJhY2tncm91bmRDb2xvckhvdmVyOlxuICAgICdyZ2JhKHZhcigtLWF4LWNvbXAtcmVzaXphYmxlLWJhY2tncm91bmQtY29sb3ItaG92ZXIsIHZhcigtLWF4LXN5cy1jb2xvci1wcmltYXJ5LWxpZ2h0LXN1cmZhY2UpKSknLFxuICBjdXJzb3I6ICd2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1jdXJzb3IsIGV3LXJlc2l6ZSknLFxuICBjdXJzb3JBY3RpdmU6ICd2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1jdXJzb3ItYWN0aXZlLCBldy1yZXNpemUpJyxcbiAgekluZGV4OiAndmFyKC0tYXgtY29tcC1yZXNpemFibGUtei1pbmRleCwgOTk5KScsXG4gIHRyYW5zaXRpb246XG4gICAgJ3ZhcigtLWF4LWNvbXAtcmVzaXphYmxlLXRyYW5zaXRpb24sIGJhY2tncm91bmQtY29sb3IgLS1heC1zeXMtdHJhbnNpdGlvbi1kdXJhdGlvbiAtLWF4LXN5cy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiknLFxuICBib3JkZXJSYWRpdXM6ICd2YXIoLS1heC1jb21wLXJlc2l6YWJsZS1ib3JkZXItcmFkaXVzLCAtLWF4LXN5cy1ib3JkZXItcmFkaXVzKScsXG59O1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1yZXNpemFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvcmVzaXphYmxlL3NyYy9hY29yZXgtY2RrLXJlc2l6YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/resizable/index.d.ts
CHANGED
|
@@ -2,16 +2,25 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import { AfterViewInit, OnDestroy } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
declare class AXResizableDirective implements AfterViewInit, OnDestroy {
|
|
5
|
-
private el;
|
|
6
|
-
private platformService;
|
|
7
|
-
private zone;
|
|
8
|
-
private document;
|
|
9
|
-
private platformID;
|
|
10
|
-
private
|
|
5
|
+
private readonly el;
|
|
6
|
+
private readonly platformService;
|
|
7
|
+
private readonly zone;
|
|
8
|
+
private readonly document;
|
|
9
|
+
private readonly platformID;
|
|
10
|
+
private readonly isBrowser;
|
|
11
|
+
private hostElement;
|
|
12
|
+
private resizeHandle?;
|
|
11
13
|
private isResizing;
|
|
12
14
|
private initialElementWidth;
|
|
13
15
|
private startMoveWidth;
|
|
14
|
-
private
|
|
16
|
+
private subscriptions;
|
|
17
|
+
private readonly boundMouseDown;
|
|
18
|
+
private readonly boundMouseMove;
|
|
19
|
+
private readonly boundMouseUp;
|
|
20
|
+
private readonly boundMouseEnter;
|
|
21
|
+
private readonly boundMouseLeave;
|
|
22
|
+
private readonly boundDoubleClick;
|
|
23
|
+
private readonly resizeObserver;
|
|
15
24
|
/** Define if directive is active or not */
|
|
16
25
|
axResizable: _angular_core.ModelSignal<boolean>;
|
|
17
26
|
/** Minimum width for the resizable element. */
|
|
@@ -35,6 +44,9 @@ declare class AXResizableDirective implements AfterViewInit, OnDestroy {
|
|
|
35
44
|
ngOnDestroy(): void;
|
|
36
45
|
private setupResizableState;
|
|
37
46
|
private createResizeHandle;
|
|
47
|
+
private applyHandleStyles;
|
|
48
|
+
private updateHandlePosition;
|
|
49
|
+
private attachEventListeners;
|
|
38
50
|
private cleanupEventListeners;
|
|
39
51
|
private isRTL;
|
|
40
52
|
private onMouseDown;
|