@tolle_/tolle-ui 18.2.22 → 18.2.23

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.
@@ -0,0 +1,79 @@
1
+ import { Component, Input, inject, HostBinding } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ResizablePanelComponent } from './resizable-panel.component';
4
+ import { cn } from './utils/cn';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ export class ResizablePanelItemComponent {
8
+ size = 1;
9
+ minSize = 10; // percentage or pixels
10
+ maxSize;
11
+ resizable = true;
12
+ class = '';
13
+ isLast = false;
14
+ container = inject(ResizablePanelComponent);
15
+ get computedContainerClass() {
16
+ return cn('relative h-full w-full overflow-hidden', this.class);
17
+ }
18
+ get computedHandleClass() {
19
+ const isHorizontal = this.container?.direction === 'horizontal';
20
+ return cn('absolute z-20', isHorizontal
21
+ ? 'top-0 bottom-0 -right-2 w-4 cursor-col-resize'
22
+ : 'left-0 right-0 -bottom-2 h-4 cursor-row-resize', 'hover:bg-primary/5 active:bg-primary/10');
23
+ }
24
+ get computedHandleIndicatorClass() {
25
+ const isHorizontal = this.container?.direction === 'horizontal';
26
+ return cn('bg-muted-foreground/40 rounded-full', isHorizontal ? 'w-1 h-6' : 'h-1 w-6');
27
+ }
28
+ onHandleMouseDown(event) {
29
+ this.container.startResize(this, event);
30
+ }
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ResizablePanelItemComponent, isStandalone: true, selector: "tolle-resizable-panel-item", inputs: { size: "size", minSize: "minSize", maxSize: "maxSize", resizable: "resizable", class: "class" }, host: { properties: { "style.flex": "this.size" } }, ngImport: i0, template: `
33
+ <div [class]="computedContainerClass">
34
+ <ng-content></ng-content>
35
+ </div>
36
+
37
+ <div
38
+ *ngIf="resizable && !isLast"
39
+ [class]="computedHandleClass"
40
+ (mousedown)="onHandleMouseDown($event)"
41
+ >
42
+ <div class="absolute inset-0 flex items-center justify-center pointer-events-none">
43
+ <div [class]="computedHandleIndicatorClass"></div>
44
+ </div>
45
+ </div>
46
+ `, isInline: true, styles: [":host{display:block;position:relative;overflow:visible}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelItemComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'tolle-resizable-panel-item', standalone: true, imports: [CommonModule], template: `
51
+ <div [class]="computedContainerClass">
52
+ <ng-content></ng-content>
53
+ </div>
54
+
55
+ <div
56
+ *ngIf="resizable && !isLast"
57
+ [class]="computedHandleClass"
58
+ (mousedown)="onHandleMouseDown($event)"
59
+ >
60
+ <div class="absolute inset-0 flex items-center justify-center pointer-events-none">
61
+ <div [class]="computedHandleIndicatorClass"></div>
62
+ </div>
63
+ </div>
64
+ `, styles: [":host{display:block;position:relative;overflow:visible}\n"] }]
65
+ }], propDecorators: { size: [{
66
+ type: Input
67
+ }, {
68
+ type: HostBinding,
69
+ args: ['style.flex']
70
+ }], minSize: [{
71
+ type: Input
72
+ }], maxSize: [{
73
+ type: Input
74
+ }], resizable: [{
75
+ type: Input
76
+ }], class: [{
77
+ type: Input
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXBhbmVsLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9yZXNpemFibGUtcGFuZWwtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBNkJoQyxNQUFNLE9BQU8sMkJBQTJCO0lBQ0YsSUFBSSxHQUFXLENBQUMsQ0FBQztJQUM1QyxPQUFPLEdBQVcsRUFBRSxDQUFDLENBQUMsdUJBQXVCO0lBQzdDLE9BQU8sQ0FBVTtJQUNqQixTQUFTLEdBQVksSUFBSSxDQUFDO0lBQzFCLEtBQUssR0FBVyxFQUFFLENBQUM7SUFFNUIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUNoQixTQUFTLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFFcEQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxFQUFFLENBQ1Asd0NBQXdDLEVBQ3hDLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsS0FBSyxZQUFZLENBQUM7UUFDaEUsT0FBTyxFQUFFLENBQ1AsZUFBZSxFQUNmLFlBQVk7WUFDVixDQUFDLENBQUMsK0NBQStDO1lBQ2pELENBQUMsQ0FBQyxnREFBZ0QsRUFDcEQseUNBQXlDLENBQzFDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSw0QkFBNEI7UUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEtBQUssWUFBWSxDQUFDO1FBQ2hFLE9BQU8sRUFBRSxDQUNQLHFDQUFxQyxFQUNyQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWlCO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO3dHQXRDVSwyQkFBMkI7NEZBQTNCLDJCQUEyQixxUEF2QjVCOzs7Ozs7Ozs7Ozs7OztHQWNULGtJQWZTLFlBQVk7OzRGQXdCWCwyQkFBMkI7a0JBM0J2QyxTQUFTOytCQUNFLDRCQUE0QixjQUMxQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7Ozs7Ozs7Ozs7R0FjVDs4QkFVbUMsSUFBSTtzQkFBdkMsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxZQUFZO2dCQUN6QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgaW5qZWN0LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlc2l6YWJsZVBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9yZXNpemFibGUtcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXJlc2l6YWJsZS1wYW5lbC1pdGVtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY29tcHV0ZWRDb250YWluZXJDbGFzc1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJyZXNpemFibGUgJiYgIWlzTGFzdFwiXG4gICAgICBbY2xhc3NdPVwiY29tcHV0ZWRIYW5kbGVDbGFzc1wiXG4gICAgICAobW91c2Vkb3duKT1cIm9uSGFuZGxlTW91c2VEb3duKCRldmVudClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHBvaW50ZXItZXZlbnRzLW5vbmVcIj5cbiAgICAgICAgPGRpdiBbY2xhc3NdPVwiY29tcHV0ZWRIYW5kbGVJbmRpY2F0b3JDbGFzc1wiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlUGFuZWxJdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4Jykgc2l6ZTogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgbWluU2l6ZTogbnVtYmVyID0gMTA7IC8vIHBlcmNlbnRhZ2Ugb3IgcGl4ZWxzXG4gIEBJbnB1dCgpIG1heFNpemU/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHJlc2l6YWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICBpc0xhc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBjb250YWluZXIgPSBpbmplY3QoUmVzaXphYmxlUGFuZWxDb21wb25lbnQpO1xuXG4gIGdldCBjb21wdXRlZENvbnRhaW5lckNsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgICdyZWxhdGl2ZSBoLWZ1bGwgdy1mdWxsIG92ZXJmbG93LWhpZGRlbicsXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZEhhbmRsZUNsYXNzKCkge1xuICAgIGNvbnN0IGlzSG9yaXpvbnRhbCA9IHRoaXMuY29udGFpbmVyPy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJztcbiAgICByZXR1cm4gY24oXG4gICAgICAnYWJzb2x1dGUgei0yMCcsXG4gICAgICBpc0hvcml6b250YWxcbiAgICAgICAgPyAndG9wLTAgYm90dG9tLTAgLXJpZ2h0LTIgdy00IGN1cnNvci1jb2wtcmVzaXplJ1xuICAgICAgICA6ICdsZWZ0LTAgcmlnaHQtMCAtYm90dG9tLTIgaC00IGN1cnNvci1yb3ctcmVzaXplJyxcbiAgICAgICdob3ZlcjpiZy1wcmltYXJ5LzUgYWN0aXZlOmJnLXByaW1hcnkvMTAnXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZEhhbmRsZUluZGljYXRvckNsYXNzKCkge1xuICAgIGNvbnN0IGlzSG9yaXpvbnRhbCA9IHRoaXMuY29udGFpbmVyPy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJztcbiAgICByZXR1cm4gY24oXG4gICAgICAnYmctbXV0ZWQtZm9yZWdyb3VuZC80MCByb3VuZGVkLWZ1bGwnLFxuICAgICAgaXNIb3Jpem9udGFsID8gJ3ctMSBoLTYnIDogJ2gtMSB3LTYnXG4gICAgKTtcbiAgfVxuXG4gIG9uSGFuZGxlTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jb250YWluZXIuc3RhcnRSZXNpemUodGhpcywgZXZlbnQpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,130 @@
1
+ import { Component, Input, ContentChildren, ElementRef, inject, ChangeDetectorRef } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { cn } from './utils/cn';
4
+ import { ResizablePanelItemComponent } from './resizable-panel-item.component';
5
+ import * as i0 from "@angular/core";
6
+ export class ResizablePanelComponent {
7
+ direction = 'horizontal';
8
+ class = '';
9
+ panels;
10
+ el = inject(ElementRef);
11
+ cdr = inject(ChangeDetectorRef);
12
+ isResizing = false;
13
+ activePanelIndex = -1;
14
+ startCursorPosition = 0;
15
+ startPanelSizes = [];
16
+ mouseMoveListener;
17
+ mouseUpListener;
18
+ ngAfterContentInit() {
19
+ // Initialize panel sizes if needed
20
+ setTimeout(() => {
21
+ this.updatePanelSizes();
22
+ this.updateLastStatus();
23
+ });
24
+ this.panels.changes.subscribe(() => {
25
+ this.updatePanelSizes();
26
+ this.updateLastStatus();
27
+ });
28
+ }
29
+ ngOnDestroy() {
30
+ this.cleanupListeners();
31
+ }
32
+ updateLastStatus() {
33
+ const panels = this.panels.toArray();
34
+ panels.forEach((p, i) => p.isLast = i === panels.length - 1);
35
+ }
36
+ startResize(item, event) {
37
+ const panels = this.panels.toArray();
38
+ this.activePanelIndex = panels.indexOf(item);
39
+ if (this.activePanelIndex === -1 || this.activePanelIndex === panels.length - 1)
40
+ return;
41
+ this.isResizing = true;
42
+ this.startCursorPosition = this.direction === 'horizontal' ? event.clientX : event.clientY;
43
+ this.startPanelSizes = panels.map(p => p.size);
44
+ this.setupListeners();
45
+ document.body.style.cursor = this.direction === 'horizontal' ? 'col-resize' : 'row-resize';
46
+ document.body.style.userSelect = 'none';
47
+ }
48
+ setupListeners() {
49
+ this.mouseMoveListener = (e) => this.onMouseMove(e);
50
+ this.mouseUpListener = () => this.stopResize();
51
+ document.addEventListener('mousemove', this.mouseMoveListener);
52
+ document.addEventListener('mouseup', this.mouseUpListener);
53
+ }
54
+ cleanupListeners() {
55
+ if (this.mouseMoveListener)
56
+ document.removeEventListener('mousemove', this.mouseMoveListener);
57
+ if (this.mouseUpListener)
58
+ document.removeEventListener('mouseup', this.mouseUpListener);
59
+ }
60
+ onMouseMove(event) {
61
+ if (!this.isResizing)
62
+ return;
63
+ const currentPos = this.direction === 'horizontal' ? event.clientX : event.clientY;
64
+ const deltaPx = currentPos - this.startCursorPosition;
65
+ const containerSize = this.direction === 'horizontal'
66
+ ? this.el.nativeElement.offsetWidth
67
+ : this.el.nativeElement.offsetHeight;
68
+ const deltaPercent = (deltaPx / containerSize) * 100;
69
+ const panels = this.panels.toArray();
70
+ const panelA = panels[this.activePanelIndex];
71
+ const panelB = panels[this.activePanelIndex + 1];
72
+ const newSizeA = Math.max(panelA.minSize, this.startPanelSizes[this.activePanelIndex] + deltaPercent);
73
+ const actualDelta = newSizeA - this.startPanelSizes[this.activePanelIndex];
74
+ const newSizeB = Math.max(panelB.minSize, this.startPanelSizes[this.activePanelIndex + 1] - actualDelta);
75
+ panelA.size = newSizeA;
76
+ panelB.size = this.startPanelSizes[this.activePanelIndex] + this.startPanelSizes[this.activePanelIndex + 1] - panelA.size;
77
+ if (panelB.size < panelB.minSize) {
78
+ panelB.size = panelB.minSize;
79
+ panelA.size = (this.startPanelSizes[this.activePanelIndex] + this.startPanelSizes[this.activePanelIndex + 1]) - panelB.minSize;
80
+ }
81
+ this.cdr.detectChanges();
82
+ }
83
+ stopResize() {
84
+ this.isResizing = false;
85
+ this.cleanupListeners();
86
+ document.body.style.cursor = '';
87
+ document.body.style.userSelect = '';
88
+ }
89
+ updatePanelSizes() {
90
+ const panels = this.panels.toArray();
91
+ const totalPanels = panels.length;
92
+ if (totalPanels > 0) {
93
+ const defaultSize = 100 / totalPanels;
94
+ panels.forEach(panel => {
95
+ if (!panel.size) {
96
+ panel.size = defaultSize;
97
+ }
98
+ });
99
+ }
100
+ }
101
+ get computedContainerClass() {
102
+ return cn('w-full h-full', this.class);
103
+ }
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
105
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ResizablePanelComponent, isStandalone: true, selector: "tolle-resizable-panel", inputs: { direction: "direction", class: "class" }, queries: [{ propertyName: "panels", predicate: ResizablePanelItemComponent }], ngImport: i0, template: `
106
+ <div [class]="computedContainerClass">
107
+ <div class="flex" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
108
+ <ng-content></ng-content>
109
+ </div>
110
+ </div>
111
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
112
+ }
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelComponent, decorators: [{
114
+ type: Component,
115
+ args: [{ selector: 'tolle-resizable-panel', standalone: true, imports: [CommonModule], template: `
116
+ <div [class]="computedContainerClass">
117
+ <div class="flex" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
118
+ <ng-content></ng-content>
119
+ </div>
120
+ </div>
121
+ `, styles: [":host{display:block}\n"] }]
122
+ }], propDecorators: { direction: [{
123
+ type: Input
124
+ }], class: [{
125
+ type: Input
126
+ }], panels: [{
127
+ type: ContentChildren,
128
+ args: [ResizablePanelItemComponent]
129
+ }] } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvcmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQStCLFVBQVUsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDakosT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBbUIvRSxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLFNBQVMsR0FBOEIsWUFBWSxDQUFDO0lBQ3BELEtBQUssR0FBVyxFQUFFLENBQUM7SUFFa0IsTUFBTSxDQUEwQztJQUV0RixFQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVoQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUN4QixlQUFlLEdBQWEsRUFBRSxDQUFDO0lBRS9CLGlCQUFpQixDQUEyQjtJQUM1QyxlQUFlLENBQTJCO0lBRWxELGtCQUFrQjtRQUNoQixtQ0FBbUM7UUFDbkMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFD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QUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxFQUFFLENBQ1AsZUFBZSxFQUNmLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7d0dBM0hVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDRKQUlqQiwyQkFBMkIsNkJBakJsQzs7Ozs7O0dBTVQsK0ZBUFMsWUFBWTs7NEZBY1gsdUJBQXVCO2tCQWpCbkMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7Ozs7OztHQU1UOzhCQVFRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUV3QyxNQUFNO3NCQUFuRCxlQUFlO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0LCBBZnRlckNvbnRlbnRJbml0LCBFbGVtZW50UmVmLCBpbmplY3QsIENoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuaW1wb3J0IHsgUmVzaXphYmxlUGFuZWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9yZXNpemFibGUtcGFuZWwtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1yZXNpemFibGUtcGFuZWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjb21wdXRlZENvbnRhaW5lckNsYXNzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiIFtjbGFzcy5mbGV4LWNvbF09XCJkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCdcIiBbY2xhc3MuZmxleC1yb3ddPVwiZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCdcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFJlc2l6YWJsZVBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihSZXNpemFibGVQYW5lbEl0ZW1Db21wb25lbnQpIHBhbmVscyE6IFF1ZXJ5TGlzdDxSZXNpemFibGVQYW5lbEl0ZW1Db21wb25lbnQ+O1xuXG4gIHByaXZhdGUgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBwcml2YXRlIGlzUmVzaXppbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBhY3RpdmVQYW5lbEluZGV4ID0gLTE7XG4gIHByaXZhdGUgc3RhcnRDdXJzb3JQb3NpdGlvbiA9IDA7XG4gIHByaXZhdGUgc3RhcnRQYW5lbFNpemVzOiBudW1iZXJbXSA9IFtdO1xuXG4gIHByaXZhdGUgbW91c2VNb3ZlTGlzdGVuZXI/OiAoZTogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBtb3VzZVVwTGlzdGVuZXI/OiAoZTogTW91c2VFdmVudCkgPT4gdm9pZDtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgLy8gSW5pdGlhbGl6ZSBwYW5lbCBzaXplcyBpZiBuZWVkZWRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUGFuZWxTaXplcygpO1xuICAgICAgdGhpcy51cGRhdGVMYXN0U3RhdHVzKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnBhbmVscy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVBhbmVsU2l6ZXMoKTtcbiAgICAgIHRoaXMudXBkYXRlTGFzdFN0YXR1cygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5jbGVhbnVwTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUxhc3RTdGF0dXMoKSB7XG4gICAgY29uc3QgcGFuZWxzID0gdGhpcy5wYW5lbHMudG9BcnJheSgpO1xuICAgIHBhbmVscy5mb3JFYWNoKChwLCBpKSA9PiBwLmlzTGFzdCA9IGkgPT09IHBhbmVscy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHN0YXJ0UmVzaXplKGl0ZW06IFJlc2l6YWJsZVBhbmVsSXRlbUNvbXBvbmVudCwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBwYW5lbHMgPSB0aGlzLnBhbmVscy50b0FycmF5KCk7XG4gICAgdGhpcy5hY3RpdmVQYW5lbEluZGV4ID0gcGFuZWxzLmluZGV4T2YoaXRlbSk7XG4gICAgaWYgKHRoaXMuYWN0aXZlUGFuZWxJbmRleCA9PT0gLTEgfHwgdGhpcy5hY3RpdmVQYW5lbEluZGV4ID09PSBwYW5lbHMubGVuZ3RoIC0gMSkgcmV0dXJuO1xuXG4gICAgdGhpcy5pc1Jlc2l6aW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXJ0Q3Vyc29yUG9zaXRpb24gPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gZXZlbnQuY2xpZW50WCA6IGV2ZW50LmNsaWVudFk7XG4gICAgdGhpcy5zdGFydFBhbmVsU2l6ZXMgPSBwYW5lbHMubWFwKHAgPT4gcC5zaXplKTtcblxuICAgIHRoaXMuc2V0dXBMaXN0ZW5lcnMoKTtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAnY29sLXJlc2l6ZScgOiAncm93LXJlc2l6ZSc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0ID0gJ25vbmUnO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cExpc3RlbmVycygpIHtcbiAgICB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyID0gKGU6IE1vdXNlRXZlbnQpID0+IHRoaXMub25Nb3VzZU1vdmUoZSk7XG4gICAgdGhpcy5tb3VzZVVwTGlzdGVuZXIgPSAoKSA9PiB0aGlzLnN0b3BSZXNpemUoKTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm1vdXNlVXBMaXN0ZW5lcik7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHRoaXMubW91c2VNb3ZlTGlzdGVuZXIpIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIpO1xuICAgIGlmICh0aGlzLm1vdXNlVXBMaXN0ZW5lcikgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcExpc3RlbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNSZXNpemluZykgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudFBvcyA9IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyBldmVudC5jbGllbnRYIDogZXZlbnQuY2xpZW50WTtcbiAgICBjb25zdCBkZWx0YVB4ID0gY3VycmVudFBvcyAtIHRoaXMuc3RhcnRDdXJzb3JQb3NpdGlvbjtcblxuICAgIGNvbnN0IGNvbnRhaW5lclNpemUgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnXG4gICAgICA/IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aFxuICAgICAgOiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuXG4gICAgY29uc3QgZGVsdGFQZXJjZW50ID0gKGRlbHRhUHggLyBjb250YWluZXJTaXplKSAqIDEwMDtcblxuICAgIGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzLnRvQXJyYXkoKTtcbiAgICBjb25zdCBwYW5lbEEgPSBwYW5lbHNbdGhpcy5hY3RpdmVQYW5lbEluZGV4XTtcbiAgICBjb25zdCBwYW5lbEIgPSBwYW5lbHNbdGhpcy5hY3RpdmVQYW5lbEluZGV4ICsgMV07XG5cbiAgICBjb25zdCBuZXdTaXplQSA9IE1hdGgubWF4KHBhbmVsQS5taW5TaXplLCB0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXhdICsgZGVsdGFQZXJjZW50KTtcbiAgICBjb25zdCBhY3R1YWxEZWx0YSA9IG5ld1NpemVBIC0gdGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4XTtcbiAgICBjb25zdCBuZXdTaXplQiA9IE1hdGgubWF4KHBhbmVsQi5taW5TaXplLCB0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXggKyAxXSAtIGFjdHVhbERlbHRhKTtcblxuICAgIHBhbmVsQS5zaXplID0gbmV3U2l6ZUE7XG4gICAgcGFuZWxCLnNpemUgPSB0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXhdICsgdGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4ICsgMV0gLSBwYW5lbEEuc2l6ZTtcblxuICAgIGlmIChwYW5lbEIuc2l6ZSA8IHBhbmVsQi5taW5TaXplKSB7XG4gICAgICBwYW5lbEIuc2l6ZSA9IHBhbmVsQi5taW5TaXplO1xuICAgICAgcGFuZWxBLnNpemUgPSAodGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4XSArIHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleCArIDFdKSAtIHBhbmVsQi5taW5TaXplO1xuICAgIH1cblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcFJlc2l6ZSgpIHtcbiAgICB0aGlzLmlzUmVzaXppbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNsZWFudXBMaXN0ZW5lcnMoKTtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvciA9ICcnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdCA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQYW5lbFNpemVzKCkge1xuICAgIGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzLnRvQXJyYXkoKTtcbiAgICBjb25zdCB0b3RhbFBhbmVscyA9IHBhbmVscy5sZW5ndGg7XG5cbiAgICBpZiAodG90YWxQYW5lbHMgPiAwKSB7XG4gICAgICBjb25zdCBkZWZhdWx0U2l6ZSA9IDEwMCAvIHRvdGFsUGFuZWxzO1xuICAgICAgcGFuZWxzLmZvckVhY2gocGFuZWwgPT4ge1xuICAgICAgICBpZiAoIXBhbmVsLnNpemUpIHtcbiAgICAgICAgICBwYW5lbC5zaXplID0gZGVmYXVsdFNpemU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjb21wdXRlZENvbnRhaW5lckNsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgICd3LWZ1bGwgaC1mdWxsJyxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -83,4 +83,6 @@ export * from './lib/country-selector.component';
83
83
  export * from './lib/phone-number-input.component';
84
84
  export * from './lib/phone-number.service';
85
85
  export * from './lib/country-codes.service';
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUJBQXFCLENBQUE7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsOEJBQThCLENBQUE7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQTtBQUN4QyxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQTtBQUMxQyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRvbGxlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvY24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWxlY3QtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VsZWN0LWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWxlY3Qtc2VwYXJhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zd2l0Y2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JhZGdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9za2VsZXRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhZy1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9vbHRpcC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9hc3Quc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvYXN0ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvbGxlLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tdWx0aS1zZWxlY3QuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FsZW5kYXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFza2VkLWlucHV0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGUtcGlja2VyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2luYXRpb24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS10YWJsZS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2xsZS1jZWxsLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY29yZGlvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RhbC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RhbC1yZWYnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RhbC5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kYWwtc3RhY2suc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGFsJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9uLWdyb3VwLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RoZW1lLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kcm9wZG93bi1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kcm9wZG93bi1sYWJlbC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kcm9wZG93bi1tZW51LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duLXNlcGFyYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGV4dGFyZWEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FsZXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F2YXRhci1mYWxsYmFjay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJlYWRjcnVtYi1saW5rLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9icmVhZGNydW1iLXNlcGFyYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb3RwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vdHAtc2xvdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb3RwLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wb3BvdmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wb3BvdmVyLWNvbnRlbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JhZGlvLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yYWRpby1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZWdtZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaWRlYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXJvdXNlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VwYXJhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm9ncmVzcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2xpZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2dnbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvZ2dsZS1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaG92ZXItY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFicy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29sbGFwc2libGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Njcm9sbC1hcmVhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGVydC1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FsZXJ0LWRpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FsZXJ0LWRpYWxvZy50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGVydC1kaWFsb2ctZHluYW1pYy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hlZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoZWV0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hlZXQtcmVmJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoZWV0LnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoZWV0LXdyYXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvdW50cnktc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Bob25lLW51bWJlci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGhvbmUtbnVtYmVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY291bnRyeS1jb2Rlcy5zZXJ2aWNlJztcbiJdfQ==
86
+ export * from './lib/resizable-panel.component';
87
+ export * from './lib/resizable-panel-item.component';
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUJBQXFCLENBQUE7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsOEJBQThCLENBQUE7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQTtBQUN4QyxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQTtBQUMxQyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQTtBQUMvQixjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYyxhQUFhLENBQUE7QUFDM0IsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0b2xsZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2NuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VsZWN0LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlbGVjdC1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VsZWN0LXNlcGFyYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3dpdGNoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYWRnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2tlbGV0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWctaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rvb2x0aXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvYXN0LnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2FzdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2xsZS1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbXVsdGktc2VsZWN0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhbGVuZGFyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21hc2tlZC1pbnB1dC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRlLXBpY2tlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdpbmF0aW9uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtdGFibGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9sbGUtY2VsbC5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY2NvcmRpb24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kYWwuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kYWwtcmVmJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kYWwuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGFsLXN0YWNrLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RhbCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2J1dHRvbi1ncm91cC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9yYW5nZS1jYWxlbmRhci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi90aGVtZS5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHJvcGRvd24taXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHJvcGRvd24tbGFiZWwuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZHJvcGRvd24tbWVudS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kcm9wZG93bi1zZXBhcmF0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duLXRyaWdnZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RleHRhcmVhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGVydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXZhdGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdmF0YXItZmFsbGJhY2suY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JyZWFkY3J1bWItbGluay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJlYWRjcnVtYi1zZXBhcmF0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JyZWFkY3J1bWItaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL290cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb3RwLXNsb3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL290cC1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcG9wb3Zlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcG9wb3Zlci1jb250ZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yYWRpby1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmFkaW8taXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VnbWVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2lkZWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2Fyb3VzZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcGFyYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZ3Jlc3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NsaWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9nZ2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2dnbGUtZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hvdmVyLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbGxhcHNpYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zY3JvbGwtYXJlYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGVydC1kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hbGVydC1kaWFsb2cudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWxlcnQtZGlhbG9nLWR5bmFtaWMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoZWV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGVldC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoZWV0LXJlZic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGVldC50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGVldC13cmFwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3VudHJ5LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waG9uZS1udW1iZXItaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Bob25lLW51bWJlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvdW50cnktY29kZXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZXNpemFibGUtcGFuZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Jlc2l6YWJsZS1wYW5lbC1pdGVtLmNvbXBvbmVudCc7Il19
@@ -13993,6 +13993,204 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
13993
13993
  }]
13994
13994
  }] });
13995
13995
 
13996
+ class ResizablePanelItemComponent {
13997
+ size = 1;
13998
+ minSize = 10; // percentage or pixels
13999
+ maxSize;
14000
+ resizable = true;
14001
+ class = '';
14002
+ isLast = false;
14003
+ container = inject(ResizablePanelComponent);
14004
+ get computedContainerClass() {
14005
+ return cn('relative h-full w-full overflow-hidden', this.class);
14006
+ }
14007
+ get computedHandleClass() {
14008
+ const isHorizontal = this.container?.direction === 'horizontal';
14009
+ return cn('absolute z-20', isHorizontal
14010
+ ? 'top-0 bottom-0 -right-2 w-4 cursor-col-resize'
14011
+ : 'left-0 right-0 -bottom-2 h-4 cursor-row-resize', 'hover:bg-primary/5 active:bg-primary/10');
14012
+ }
14013
+ get computedHandleIndicatorClass() {
14014
+ const isHorizontal = this.container?.direction === 'horizontal';
14015
+ return cn('bg-muted-foreground/40 rounded-full', isHorizontal ? 'w-1 h-6' : 'h-1 w-6');
14016
+ }
14017
+ onHandleMouseDown(event) {
14018
+ this.container.startResize(this, event);
14019
+ }
14020
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14021
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ResizablePanelItemComponent, isStandalone: true, selector: "tolle-resizable-panel-item", inputs: { size: "size", minSize: "minSize", maxSize: "maxSize", resizable: "resizable", class: "class" }, host: { properties: { "style.flex": "this.size" } }, ngImport: i0, template: `
14022
+ <div [class]="computedContainerClass">
14023
+ <ng-content></ng-content>
14024
+ </div>
14025
+
14026
+ <div
14027
+ *ngIf="resizable && !isLast"
14028
+ [class]="computedHandleClass"
14029
+ (mousedown)="onHandleMouseDown($event)"
14030
+ >
14031
+ <div class="absolute inset-0 flex items-center justify-center pointer-events-none">
14032
+ <div [class]="computedHandleIndicatorClass"></div>
14033
+ </div>
14034
+ </div>
14035
+ `, isInline: true, styles: [":host{display:block;position:relative;overflow:visible}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
14036
+ }
14037
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelItemComponent, decorators: [{
14038
+ type: Component,
14039
+ args: [{ selector: 'tolle-resizable-panel-item', standalone: true, imports: [CommonModule], template: `
14040
+ <div [class]="computedContainerClass">
14041
+ <ng-content></ng-content>
14042
+ </div>
14043
+
14044
+ <div
14045
+ *ngIf="resizable && !isLast"
14046
+ [class]="computedHandleClass"
14047
+ (mousedown)="onHandleMouseDown($event)"
14048
+ >
14049
+ <div class="absolute inset-0 flex items-center justify-center pointer-events-none">
14050
+ <div [class]="computedHandleIndicatorClass"></div>
14051
+ </div>
14052
+ </div>
14053
+ `, styles: [":host{display:block;position:relative;overflow:visible}\n"] }]
14054
+ }], propDecorators: { size: [{
14055
+ type: Input
14056
+ }, {
14057
+ type: HostBinding,
14058
+ args: ['style.flex']
14059
+ }], minSize: [{
14060
+ type: Input
14061
+ }], maxSize: [{
14062
+ type: Input
14063
+ }], resizable: [{
14064
+ type: Input
14065
+ }], class: [{
14066
+ type: Input
14067
+ }] } });
14068
+
14069
+ class ResizablePanelComponent {
14070
+ direction = 'horizontal';
14071
+ class = '';
14072
+ panels;
14073
+ el = inject(ElementRef);
14074
+ cdr = inject(ChangeDetectorRef);
14075
+ isResizing = false;
14076
+ activePanelIndex = -1;
14077
+ startCursorPosition = 0;
14078
+ startPanelSizes = [];
14079
+ mouseMoveListener;
14080
+ mouseUpListener;
14081
+ ngAfterContentInit() {
14082
+ // Initialize panel sizes if needed
14083
+ setTimeout(() => {
14084
+ this.updatePanelSizes();
14085
+ this.updateLastStatus();
14086
+ });
14087
+ this.panels.changes.subscribe(() => {
14088
+ this.updatePanelSizes();
14089
+ this.updateLastStatus();
14090
+ });
14091
+ }
14092
+ ngOnDestroy() {
14093
+ this.cleanupListeners();
14094
+ }
14095
+ updateLastStatus() {
14096
+ const panels = this.panels.toArray();
14097
+ panels.forEach((p, i) => p.isLast = i === panels.length - 1);
14098
+ }
14099
+ startResize(item, event) {
14100
+ const panels = this.panels.toArray();
14101
+ this.activePanelIndex = panels.indexOf(item);
14102
+ if (this.activePanelIndex === -1 || this.activePanelIndex === panels.length - 1)
14103
+ return;
14104
+ this.isResizing = true;
14105
+ this.startCursorPosition = this.direction === 'horizontal' ? event.clientX : event.clientY;
14106
+ this.startPanelSizes = panels.map(p => p.size);
14107
+ this.setupListeners();
14108
+ document.body.style.cursor = this.direction === 'horizontal' ? 'col-resize' : 'row-resize';
14109
+ document.body.style.userSelect = 'none';
14110
+ }
14111
+ setupListeners() {
14112
+ this.mouseMoveListener = (e) => this.onMouseMove(e);
14113
+ this.mouseUpListener = () => this.stopResize();
14114
+ document.addEventListener('mousemove', this.mouseMoveListener);
14115
+ document.addEventListener('mouseup', this.mouseUpListener);
14116
+ }
14117
+ cleanupListeners() {
14118
+ if (this.mouseMoveListener)
14119
+ document.removeEventListener('mousemove', this.mouseMoveListener);
14120
+ if (this.mouseUpListener)
14121
+ document.removeEventListener('mouseup', this.mouseUpListener);
14122
+ }
14123
+ onMouseMove(event) {
14124
+ if (!this.isResizing)
14125
+ return;
14126
+ const currentPos = this.direction === 'horizontal' ? event.clientX : event.clientY;
14127
+ const deltaPx = currentPos - this.startCursorPosition;
14128
+ const containerSize = this.direction === 'horizontal'
14129
+ ? this.el.nativeElement.offsetWidth
14130
+ : this.el.nativeElement.offsetHeight;
14131
+ const deltaPercent = (deltaPx / containerSize) * 100;
14132
+ const panels = this.panels.toArray();
14133
+ const panelA = panels[this.activePanelIndex];
14134
+ const panelB = panels[this.activePanelIndex + 1];
14135
+ const newSizeA = Math.max(panelA.minSize, this.startPanelSizes[this.activePanelIndex] + deltaPercent);
14136
+ const actualDelta = newSizeA - this.startPanelSizes[this.activePanelIndex];
14137
+ const newSizeB = Math.max(panelB.minSize, this.startPanelSizes[this.activePanelIndex + 1] - actualDelta);
14138
+ panelA.size = newSizeA;
14139
+ panelB.size = this.startPanelSizes[this.activePanelIndex] + this.startPanelSizes[this.activePanelIndex + 1] - panelA.size;
14140
+ if (panelB.size < panelB.minSize) {
14141
+ panelB.size = panelB.minSize;
14142
+ panelA.size = (this.startPanelSizes[this.activePanelIndex] + this.startPanelSizes[this.activePanelIndex + 1]) - panelB.minSize;
14143
+ }
14144
+ this.cdr.detectChanges();
14145
+ }
14146
+ stopResize() {
14147
+ this.isResizing = false;
14148
+ this.cleanupListeners();
14149
+ document.body.style.cursor = '';
14150
+ document.body.style.userSelect = '';
14151
+ }
14152
+ updatePanelSizes() {
14153
+ const panels = this.panels.toArray();
14154
+ const totalPanels = panels.length;
14155
+ if (totalPanels > 0) {
14156
+ const defaultSize = 100 / totalPanels;
14157
+ panels.forEach(panel => {
14158
+ if (!panel.size) {
14159
+ panel.size = defaultSize;
14160
+ }
14161
+ });
14162
+ }
14163
+ }
14164
+ get computedContainerClass() {
14165
+ return cn('w-full h-full', this.class);
14166
+ }
14167
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14168
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ResizablePanelComponent, isStandalone: true, selector: "tolle-resizable-panel", inputs: { direction: "direction", class: "class" }, queries: [{ propertyName: "panels", predicate: ResizablePanelItemComponent }], ngImport: i0, template: `
14169
+ <div [class]="computedContainerClass">
14170
+ <div class="flex" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
14171
+ <ng-content></ng-content>
14172
+ </div>
14173
+ </div>
14174
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
14175
+ }
14176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelComponent, decorators: [{
14177
+ type: Component,
14178
+ args: [{ selector: 'tolle-resizable-panel', standalone: true, imports: [CommonModule], template: `
14179
+ <div [class]="computedContainerClass">
14180
+ <div class="flex" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
14181
+ <ng-content></ng-content>
14182
+ </div>
14183
+ </div>
14184
+ `, styles: [":host{display:block}\n"] }]
14185
+ }], propDecorators: { direction: [{
14186
+ type: Input
14187
+ }], class: [{
14188
+ type: Input
14189
+ }], panels: [{
14190
+ type: ContentChildren,
14191
+ args: [ResizablePanelItemComponent]
14192
+ }] } });
14193
+
13996
14194
  /*
13997
14195
  * Public API Surface of tolle
13998
14196
  */
@@ -14001,5 +14199,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
14001
14199
  * Generated bundle index. Do not edit.
14002
14200
  */
14003
14201
 
14004
- export { AccordionComponent, AccordionItemComponent, AlertComponent, AlertDialogActionComponent, AlertDialogCancelComponent, AlertDialogComponent, AlertDialogContentComponent, AlertDialogDescriptionComponent, AlertDialogDynamicComponent, AlertDialogFooterComponent, AlertDialogHeaderComponent, AlertDialogPortalComponent, AlertDialogRef, AlertDialogService, AlertDialogTitleComponent, AlertDialogTriggerComponent, AvatarComponent, AvatarFallbackComponent, BadgeComponent, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbLinkComponent, BreadcrumbSeparatorComponent, ButtonComponent, ButtonGroupComponent, CalendarComponent, CardComponent, CardContentComponent, CardFooterComponent, CardHeaderComponent, CardTitleComponent, CarouselComponent, CarouselContainerDirective, CarouselContentDirective, CarouselContext, CarouselItemDirective, CarouselNextDirective, CarouselPreviousDirective, CheckboxComponent, CollapsibleComponent, CollapsibleContentComponent, CollapsibleTriggerComponent, CountryCodesService, CountrySelectorComponent, DataTableComponent, DatePickerComponent, DateRangePickerComponent, DropdownItemComponent, DropdownLabelComponent, DropdownMenuComponent, DropdownSeparatorComponent, DropdownTriggerDirective, EmptyStateComponent, HoverCardComponent, HoverCardContentComponent, HoverCardTriggerComponent, InputComponent, LabelComponent, MaskedInputComponent, Modal, ModalComponent, ModalRef, ModalService, ModalStackService, MultiSelectComponent, OtpComponent, OtpGroupComponent, OtpSlotComponent, PaginationComponent, PhoneNumberInputComponent, PhoneNumberService, PopoverComponent, PopoverContentComponent, ProgressComponent, RadioGroupComponent, RadioItemComponent, RangeCalendarComponent, ScrollAreaComponent, SegmentedComponent, SelectComponent, SelectGroupComponent, SelectItemComponent, SelectSeparatorComponent, SeparatorComponent, SheetComponent, SheetContentComponent, SheetDescriptionComponent, SheetFooterComponent, SheetHeaderComponent, SheetRef, SheetService, SheetTitleComponent, SheetTriggerComponent, SheetWrapperComponent, SidebarComponent, SkeletonComponent, SliderComponent, SwitchComponent, TOLLE_CONFIG, TabsComponent, TabsContentComponent, TabsListComponent, TabsTriggerComponent, TagInputComponent, TextareaComponent, ThemeService, ToastContainerComponent, ToastService, ToggleComponent, ToggleGroupComponent, ToggleGroupItemComponent, TolleCellDirective, TooltipDirective, cn, provideTolleConfig };
14202
+ export { AccordionComponent, AccordionItemComponent, AlertComponent, AlertDialogActionComponent, AlertDialogCancelComponent, AlertDialogComponent, AlertDialogContentComponent, AlertDialogDescriptionComponent, AlertDialogDynamicComponent, AlertDialogFooterComponent, AlertDialogHeaderComponent, AlertDialogPortalComponent, AlertDialogRef, AlertDialogService, AlertDialogTitleComponent, AlertDialogTriggerComponent, AvatarComponent, AvatarFallbackComponent, BadgeComponent, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbLinkComponent, BreadcrumbSeparatorComponent, ButtonComponent, ButtonGroupComponent, CalendarComponent, CardComponent, CardContentComponent, CardFooterComponent, CardHeaderComponent, CardTitleComponent, CarouselComponent, CarouselContainerDirective, CarouselContentDirective, CarouselContext, CarouselItemDirective, CarouselNextDirective, CarouselPreviousDirective, CheckboxComponent, CollapsibleComponent, CollapsibleContentComponent, CollapsibleTriggerComponent, CountryCodesService, CountrySelectorComponent, DataTableComponent, DatePickerComponent, DateRangePickerComponent, DropdownItemComponent, DropdownLabelComponent, DropdownMenuComponent, DropdownSeparatorComponent, DropdownTriggerDirective, EmptyStateComponent, HoverCardComponent, HoverCardContentComponent, HoverCardTriggerComponent, InputComponent, LabelComponent, MaskedInputComponent, Modal, ModalComponent, ModalRef, ModalService, ModalStackService, MultiSelectComponent, OtpComponent, OtpGroupComponent, OtpSlotComponent, PaginationComponent, PhoneNumberInputComponent, PhoneNumberService, PopoverComponent, PopoverContentComponent, ProgressComponent, RadioGroupComponent, RadioItemComponent, RangeCalendarComponent, ResizablePanelComponent, ResizablePanelItemComponent, ScrollAreaComponent, SegmentedComponent, SelectComponent, SelectGroupComponent, SelectItemComponent, SelectSeparatorComponent, SeparatorComponent, SheetComponent, SheetContentComponent, SheetDescriptionComponent, SheetFooterComponent, SheetHeaderComponent, SheetRef, SheetService, SheetTitleComponent, SheetTriggerComponent, SheetWrapperComponent, SidebarComponent, SkeletonComponent, SliderComponent, SwitchComponent, TOLLE_CONFIG, TabsComponent, TabsContentComponent, TabsListComponent, TabsTriggerComponent, TagInputComponent, TextareaComponent, ThemeService, ToastContainerComponent, ToastService, ToggleComponent, ToggleGroupComponent, ToggleGroupItemComponent, TolleCellDirective, TooltipDirective, cn, provideTolleConfig };
14005
14203
  //# sourceMappingURL=tolle-ui.mjs.map