angular-toolbox 1.4.1 → 1.4.2
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.
- package/README.md +1 -1
- package/esm2022/lib/component/layout/border-layout/border-layout.component.mjs +15 -11
- package/esm2022/lib/component/layout/border-layout/util/border-layout-renderer.mjs +48 -15
- package/esm2022/lib/component/layout/border-layout-container/border-layout-container.component.mjs +2 -2
- package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +3 -3
- package/fesm2022/angular-toolbox.mjs +63 -27
- package/fesm2022/angular-toolbox.mjs.map +1 -1
- package/lib/component/layout/border-layout/border-layout.component.d.ts +1 -1
- package/lib/component/layout/border-layout/util/border-layout-renderer.d.ts +17 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A library that provides useful tools for Angular apps development.
|
|
4
4
|
|
|
5
|
-
[]()
|
|
6
6
|
|
|
7
7
|
## License
|
|
8
8
|
|
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be found in
|
|
6
6
|
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
7
|
*/
|
|
8
|
-
import { Component, ContentChildren, ViewChild, HostListener, EventEmitter, Output } from '@angular/core';
|
|
8
|
+
import { Component, ContentChildren, ViewChild, HostListener, EventEmitter, Output, Inject } from '@angular/core';
|
|
9
9
|
import { BorderLayoutContainer } from '../border-layout-container/border-layout-container.component';
|
|
10
10
|
import { LayoutDragEventType } from '../../../model';
|
|
11
11
|
import { BorderLayoutRenderer } from './util/border-layout-renderer';
|
|
12
12
|
import { IdentifiableComponent } from '../../../core';
|
|
13
|
+
import { DOCUMENT } from '@angular/common';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
import * as i1 from "../../../model";
|
|
15
16
|
/**
|
|
@@ -34,22 +35,22 @@ export class BorderLayout extends IdentifiableComponent {
|
|
|
34
35
|
/**
|
|
35
36
|
* @private
|
|
36
37
|
*/
|
|
37
|
-
constructor(subscribeSvc) {
|
|
38
|
+
constructor(subscribeSvc, document) {
|
|
38
39
|
super();
|
|
39
40
|
this.subscribeSvc = subscribeSvc;
|
|
40
41
|
/**
|
|
41
42
|
* Emits events each time the user starts dragging a region handle.
|
|
42
43
|
*/
|
|
43
|
-
this.dragStart = new EventEmitter(
|
|
44
|
+
this.dragStart = new EventEmitter();
|
|
44
45
|
/**
|
|
45
46
|
* Emits events each time the user stops dragging a region handle.
|
|
46
47
|
*/
|
|
47
|
-
this.dragStop = new EventEmitter(
|
|
48
|
+
this.dragStop = new EventEmitter();
|
|
48
49
|
/**
|
|
49
50
|
* Emits events each time the user is dragging a region handle.
|
|
50
51
|
*/
|
|
51
|
-
this.dragging = new EventEmitter(
|
|
52
|
-
this.renderer = new BorderLayoutRenderer(subscribeSvc);
|
|
52
|
+
this.dragging = new EventEmitter();
|
|
53
|
+
this.renderer = new BorderLayoutRenderer(subscribeSvc, document);
|
|
53
54
|
subscribeSvc.register(this, this.renderer.userAction.subscribe((event) => {
|
|
54
55
|
event.layout = this;
|
|
55
56
|
if (event.type === LayoutDragEventType.DRAGGING) {
|
|
@@ -101,13 +102,16 @@ export class BorderLayout extends IdentifiableComponent {
|
|
|
101
102
|
resizeRegion(region, size) {
|
|
102
103
|
this.renderer.resizeRegion(region, size);
|
|
103
104
|
}
|
|
104
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayout, deps: [{ token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
105
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: BorderLayout, isStandalone: true, selector: "atx-border-layout", outputs: { dragStart: "dragStart", dragStop: "dragStop", dragging: "dragging" }, host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "__containers__", predicate: BorderLayoutContainer }], viewQueries: [{ propertyName: "layoutContainer", first: true, predicate: ["atxLayoutContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<div #atxLayoutContainer class=\"atx-border-layout\">\n <ng-content></ng-content>\n</div>", styles: [".atx-border-layout{position:relative;height:100%;width:100%;-webkit-user-select:none;user-select:none;overflow:hidden}.atx-border-layout
|
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayout, deps: [{ token: i1.SubscriptionService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
106
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: BorderLayout, isStandalone: true, selector: "atx-border-layout", outputs: { dragStart: "dragStart", dragStop: "dragStop", dragging: "dragging" }, host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "__containers__", predicate: BorderLayoutContainer }], viewQueries: [{ propertyName: "layoutContainer", first: true, predicate: ["atxLayoutContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<div #atxLayoutContainer class=\"atx-border-layout\">\n <ng-content></ng-content>\n</div>", styles: [".atx-border-layout{position:relative;height:100%;width:100%;-webkit-user-select:none;user-select:none;overflow:hidden}.atx-border-layout{box-sizing:border-box}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }); }
|
|
106
107
|
}
|
|
107
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayout, decorators: [{
|
|
108
109
|
type: Component,
|
|
109
|
-
args: [{ selector: 'atx-border-layout', standalone: true, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<div #atxLayoutContainer class=\"atx-border-layout\">\n <ng-content></ng-content>\n</div>", styles: [".atx-border-layout{position:relative;height:100%;width:100%;-webkit-user-select:none;user-select:none;overflow:hidden}.atx-border-layout
|
|
110
|
-
}], ctorParameters: () => [{ type: i1.SubscriptionService }
|
|
110
|
+
args: [{ selector: 'atx-border-layout', standalone: true, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<div #atxLayoutContainer class=\"atx-border-layout\">\n <ng-content></ng-content>\n</div>", styles: [".atx-border-layout{position:relative;height:100%;width:100%;-webkit-user-select:none;user-select:none;overflow:hidden}.atx-border-layout{box-sizing:border-box}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
|
|
111
|
+
}], ctorParameters: () => [{ type: i1.SubscriptionService }, { type: Document, decorators: [{
|
|
112
|
+
type: Inject,
|
|
113
|
+
args: [DOCUMENT]
|
|
114
|
+
}] }], propDecorators: { dragStart: [{
|
|
111
115
|
type: Output
|
|
112
116
|
}], dragStop: [{
|
|
113
117
|
type: Output
|
|
@@ -123,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
123
127
|
type: ContentChildren,
|
|
124
128
|
args: [BorderLayoutContainer]
|
|
125
129
|
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9yZGVyLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9jb21wb25lbnQvbGF5b3V0L2JvcmRlci1sYXlvdXQvYm9yZGVyLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9jb21wb25lbnQvbGF5b3V0L2JvcmRlci1sYXlvdXQvYm9yZGVyLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxlQUFlLEVBQXlCLFNBQVMsRUFBRSxZQUFZLEVBQWEsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkssT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDckcsT0FBTyxFQUFtQixtQkFBbUIsRUFBdUQsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFM0M7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxZQUFhLFNBQVEscUJBQXFCO0lBb0JyRDs7T0FFRztJQUVLLFFBQVE7UUFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBYUQ7O09BRUc7SUFDSCxJQUNZLGNBQWMsQ0FBQyxVQUE0QztRQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQUEsQ0FBQztJQUVGOztPQUVHO0lBQ0gsWUFBb0IsWUFBaUMsRUFDdkIsUUFBa0I7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFGVSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFoRHJEOztXQUVHO1FBRWEsY0FBUyxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlFOztXQUVHO1FBRWEsYUFBUSxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdFOztXQUVHO1FBRWEsYUFBUSxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBbUMzRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0JBQW9CLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFzQixFQUFDLEVBQUU7WUFDM0QsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUs7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksWUFBWSxDQUFDLE1BQXVDLEVBQUUsSUFBWTtRQUN2RSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7OEdBL0dVLFlBQVkscURBbURILFFBQVE7a0dBbkRqQixZQUFZLHFQQTBDTixxQkFBcUIsMktDcEV4Qyx5VkFVTTs7MkZEZ0JPLFlBQVk7a0JBTnhCLFNBQVM7K0JBQ0UsbUJBQW1CLGNBR2pCLElBQUk7OzBCQXFESCxNQUFNOzJCQUFDLFFBQVE7eUNBN0NaLFNBQVM7c0JBRHhCLE1BQU07Z0JBT1MsUUFBUTtzQkFEdkIsTUFBTTtnQkFPUyxRQUFRO3NCQUR2QixNQUFNO2dCQU9DLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxlQUFlO2dCQVNyQixlQUFlO3NCQUR0QixTQUFTO3VCQUFDLG9CQUFvQjtnQkFZbkIsY0FBYztzQkFEekIsZUFBZTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cclxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIEhvc3RMaXN0ZW5lciwgUXVlcnlMaXN0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJvcmRlckxheW91dENvbnRhaW5lciB9IGZyb20gJy4uL2JvcmRlci1sYXlvdXQtY29udGFpbmVyL2JvcmRlci1sYXlvdXQtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dERyYWdFdmVudCwgTGF5b3V0RHJhZ0V2ZW50VHlwZSwgTGF5b3V0UmVnaW9uLCBMYXlvdXRSZWdpb25UeXBlLCBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwnO1xyXG5pbXBvcnQgeyBCb3JkZXJMYXlvdXRSZW5kZXJlciB9IGZyb20gJy4vdXRpbC9ib3JkZXItbGF5b3V0LXJlbmRlcmVyJztcclxuaW1wb3J0IHsgSWRlbnRpZmlhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbi8qKlxyXG4gKiBBIGJvcmRlciBsYXlvdXQgbGF5cyBvdXQgYSBjb250YWluZXIsIGFycmFuZ2luZyBhbmQgcmVzaXppbmcgaXRzIGNvbXBvbmVudHMgdG8gZml0IGluIGZpdmUgcmVnaW9uczogbm9ydGgsIHNvdXRoLCBlYXN0LCB3ZXN0LCBhbmQgY2VudGVyLlxyXG4gKiBFYWNoIHJlZ2lvbiBpcyBkZWZpbmVkIGJ5IGEgYEJvcmRlckxheW91dENvbnRhaW5lcmAgaW5zdGFuY2UsIGFuZCBpcyBpZGVudGlmaWVkIGJ5IGEgY29ycmVzcG9uZGluZyBjb25zdGFudDogYE5PUlRIYCwgYFNPVVRIYCwgYEVBU1RgLCBgV0VTVGAsIGFuZCBgQ0VOVEVSYC5cclxuICogVGhpcyBjb21wb25lbnQgaXMgcGFydCBvZiB0aGUgTEFGLWxlc3MgQVBJLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhdHgtYm9yZGVyLWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JvcmRlci1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JvcmRlci1sYXlvdXQuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCb3JkZXJMYXlvdXQgZXh0ZW5kcyBJZGVudGlmaWFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBldmVudHMgZWFjaCB0aW1lIHRoZSB1c2VyIHN0YXJ0cyBkcmFnZ2luZyBhIHJlZ2lvbiBoYW5kbGUuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IGRyYWdTdGFydDogRXZlbnRFbWl0dGVyPExheW91dERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGV2ZW50cyBlYWNoIHRpbWUgdGhlIHVzZXIgc3RvcHMgZHJhZ2dpbmcgYSByZWdpb24gaGFuZGxlLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBkcmFnU3RvcDogRXZlbnRFbWl0dGVyPExheW91dERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGV2ZW50cyBlYWNoIHRpbWUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcgYSByZWdpb24gaGFuZGxlLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBkcmFnZ2luZzogRXZlbnRFbWl0dGVyPExheW91dERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxyXG4gIHByaXZhdGUgb25SZXNpemUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhaW50KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoXCJhdHhMYXlvdXRDb250YWluZXJcIilcclxuICBwcml2YXRlIGxheW91dENvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVuZGVyZXI6IEJvcmRlckxheW91dFJlbmRlcmVyO1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oQm9yZGVyTGF5b3V0Q29udGFpbmVyKVxyXG4gIHByaXZhdGUgc2V0IF9fY29udGFpbmVyc19fKGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxCb3JkZXJMYXlvdXRDb250YWluZXI+KSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENvbnRhaW5lcnMoY29udGFpbmVycyk7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN1YnNjcmliZVN2YzogU3Vic2NyaXB0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogRG9jdW1lbnQpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyID0gbmV3IEJvcmRlckxheW91dFJlbmRlcmVyKHN1YnNjcmliZVN2YywgZG9jdW1lbnQpO1xyXG4gICAgc3Vic2NyaWJlU3ZjLnJlZ2lzdGVyKHRoaXMsXHJcbiAgICAgIHRoaXMucmVuZGVyZXIudXNlckFjdGlvbi5zdWJzY3JpYmUoKGV2ZW50OiBMYXlvdXREcmFnRXZlbnQpPT4ge1xyXG4gICAgICAgIGV2ZW50LmxheW91dCA9IHRoaXM7XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IExheW91dERyYWdFdmVudFR5cGUuRFJBR0dJTkcpIHtcclxuICAgICAgICAgIHRoaXMuZHJhZ2dpbmcuZW1pdChldmVudCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldmVudC50eXBlID09PSBMYXlvdXREcmFnRXZlbnRUeXBlLkRSQUdfU1RBUlQpIHtcclxuICAgICAgICAgIHRoaXMuZHJhZ1N0YXJ0LmVtaXQoZXZlbnQpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRyYWdTdG9wLmVtaXQoZXZlbnQpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogRm9yIHRlc3QgcHVycG9zZSBvbmx5LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRSZW5kZXJlcigpOiBCb3JkZXJMYXlvdXRSZW5kZXJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpYmVTdmMuY2xlYXJBbGwodGhpcyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0TGF5b3V0Q29udGFpbmVyKHRoaXMubGF5b3V0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5wYWludCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9yY2VzIHRoZSBjb250YWluZXIgdG8gYmUgcmVkcmF3bi5cclxuICAgKi9cclxuICBwdWJsaWMgcGFpbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnBhaW50KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNpemVzIHRoZSBzcGVjaWZpZWQgcmVnaW9uLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSByZWdpb24gVGhlIHJlZ2lvbiB0byByZXNpemUuXHJcbiAgICogQHBhcmFtIHNpemUgVGhlIG5ldyBzaXplIG9mIHRoZSByZWdpb24gdG8gcmVzaXplLlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIGB0cnVlYCB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgcmVnaW9uIGhhcyBiZWVuIHJlc2l6ZWQ7IGBmYWxzZWAgb3RoZXJ3aXNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyByZXNpemVSZWdpb24ocmVnaW9uOiBMYXlvdXRSZWdpb24gfCBMYXlvdXRSZWdpb25UeXBlLCBzaXplOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZXIucmVzaXplUmVnaW9uKHJlZ2lvbiBhcyBMYXlvdXRSZWdpb24sIHNpemUpO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tXG4gKiBMSUNFTlNFXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxuLS0+XG5cbjxkaXYgI2F0eExheW91dENvbnRhaW5lciBjbGFzcz1cImF0eC1ib3JkZXItbGF5b3V0XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+Il19
|
|
@@ -34,17 +34,26 @@ export class BorderLayoutRenderer extends IdentifiableComponent {
|
|
|
34
34
|
/**
|
|
35
35
|
* @private
|
|
36
36
|
*/
|
|
37
|
-
constructor(subscribeSvc) {
|
|
37
|
+
constructor(subscribeSvc, document) {
|
|
38
38
|
super();
|
|
39
39
|
this.subscribeSvc = subscribeSvc;
|
|
40
|
+
this.document = document;
|
|
40
41
|
/**
|
|
41
42
|
* Emits events each time the user starts, or stops dragging handle.
|
|
42
43
|
*/
|
|
43
|
-
this.userAction = new EventEmitter(
|
|
44
|
+
this.userAction = new EventEmitter();
|
|
44
45
|
/**
|
|
45
46
|
* @private
|
|
46
47
|
*/
|
|
47
48
|
this.containerList = [];
|
|
49
|
+
/**
|
|
50
|
+
* @private
|
|
51
|
+
*/
|
|
52
|
+
this.storedStopHandler = null;
|
|
53
|
+
/**
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
this.storedMoveHandler = null;
|
|
48
57
|
this.boundsManager = new BorderLayoutBoundsManager();
|
|
49
58
|
}
|
|
50
59
|
/**
|
|
@@ -91,12 +100,17 @@ export class BorderLayoutRenderer extends IdentifiableComponent {
|
|
|
91
100
|
* Makes this object elligible for garbage collection.
|
|
92
101
|
*/
|
|
93
102
|
destroy() {
|
|
103
|
+
if (this.storedStopHandler) {
|
|
104
|
+
this.document.removeEventListener(MOUSEMOVE, this.storedMoveHandler);
|
|
105
|
+
this.document.removeEventListener(MOUSEUP, this.storedStopHandler);
|
|
106
|
+
this.deleteStoredHandlers();
|
|
107
|
+
}
|
|
94
108
|
this.subscribeSvc.clearAll(this);
|
|
95
|
-
this.containerList.length = 0;
|
|
96
|
-
this.containerList = null;
|
|
97
109
|
this.lytContainerElm = null;
|
|
98
110
|
this.boundsManager.destroy();
|
|
99
111
|
this.boundsManager = null;
|
|
112
|
+
this.containerList.length = 0;
|
|
113
|
+
this.containerList = null;
|
|
100
114
|
}
|
|
101
115
|
/**
|
|
102
116
|
* Forces the layout of all `BorderLayoutContainer` objects associated with the main container.
|
|
@@ -139,32 +153,36 @@ export class BorderLayoutRenderer extends IdentifiableComponent {
|
|
|
139
153
|
const region = constraints.region;
|
|
140
154
|
const minSize = constraints.minSize;
|
|
141
155
|
const maxSize = constraints.maxSize;
|
|
156
|
+
const doc = this.document;
|
|
142
157
|
let size = 0;
|
|
143
158
|
this.boundsManager.setOrigin(bounds.x, bounds.y);
|
|
144
159
|
let resizeMethod = this.boundsManager.getResizeMethod(region);
|
|
145
160
|
container.selected = true;
|
|
146
161
|
const onMoveHandler = (event) => {
|
|
147
|
-
event.preventDefault();
|
|
148
162
|
event.stopPropagation();
|
|
163
|
+
event.preventDefault();
|
|
149
164
|
size = resizeMethod(event, width, height, minSize, maxSize);
|
|
150
165
|
container.setSize(size);
|
|
151
166
|
this.render(width);
|
|
152
167
|
this.fireEvent(container, LayoutDragEventType.DRAGGING);
|
|
153
168
|
};
|
|
154
169
|
const onStopHandler = (event) => {
|
|
155
|
-
event.preventDefault();
|
|
156
170
|
event.stopPropagation();
|
|
157
|
-
|
|
158
|
-
|
|
171
|
+
event.preventDefault();
|
|
172
|
+
doc.removeEventListener(MOUSEMOVE, onMoveHandler);
|
|
173
|
+
doc.removeEventListener(MOUSEUP, onStopHandler);
|
|
174
|
+
this.deleteStoredHandlers();
|
|
159
175
|
container.selected = false;
|
|
160
176
|
size = resizeMethod(event, width, height, minSize, maxSize);
|
|
161
177
|
container.setSize(size);
|
|
162
178
|
this.render(width);
|
|
163
179
|
this.fireEvent(container, LayoutDragEventType.DRAG_STOP);
|
|
164
180
|
};
|
|
165
|
-
|
|
166
|
-
|
|
181
|
+
this.storedMoveHandler = onMoveHandler;
|
|
182
|
+
this.storedStopHandler = onStopHandler;
|
|
167
183
|
this.fireEvent(container, LayoutDragEventType.DRAG_START);
|
|
184
|
+
doc.addEventListener(MOUSEMOVE, onMoveHandler);
|
|
185
|
+
doc.addEventListener(MOUSEUP, onStopHandler);
|
|
168
186
|
}
|
|
169
187
|
/**
|
|
170
188
|
* @private
|
|
@@ -182,31 +200,46 @@ export class BorderLayoutRenderer extends IdentifiableComponent {
|
|
|
182
200
|
const bottom = bounds.bottom;
|
|
183
201
|
const left = bounds.left;
|
|
184
202
|
const right = bounds.right;
|
|
185
|
-
this.containerList
|
|
203
|
+
const cList = this.containerList;
|
|
204
|
+
let cursor = cList.length - 1;
|
|
205
|
+
while (cursor >= 0) {
|
|
206
|
+
const cont = cList[cursor];
|
|
186
207
|
const r = cont.constraints.region;
|
|
208
|
+
cursor--;
|
|
187
209
|
if (r === LayoutRegion.WEST) {
|
|
188
210
|
cont.setTopPos(top);
|
|
189
211
|
cont.setRightPos(width - left);
|
|
190
212
|
cont.setBottomPos(bottom - top);
|
|
191
|
-
|
|
213
|
+
continue;
|
|
192
214
|
}
|
|
193
215
|
if (r === LayoutRegion.CENTER) {
|
|
194
216
|
cont.setTopPos(top);
|
|
195
217
|
cont.setLeftPos(left);
|
|
196
218
|
cont.setRightPos(right - left);
|
|
197
219
|
cont.setBottomPos(bottom - top);
|
|
198
|
-
|
|
220
|
+
continue;
|
|
199
221
|
}
|
|
200
222
|
if (r === LayoutRegion.EAST) {
|
|
201
223
|
cont.setTopPos(top);
|
|
202
224
|
cont.setLeftPos(width - (right - left));
|
|
203
225
|
cont.setBottomPos(bottom - top);
|
|
226
|
+
continue;
|
|
204
227
|
}
|
|
205
|
-
}
|
|
228
|
+
}
|
|
229
|
+
;
|
|
206
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* @private
|
|
233
|
+
*/
|
|
207
234
|
checkLytContainer() {
|
|
208
235
|
if (!this.lytContainerElm)
|
|
209
236
|
throw new ReferenceError(LAYOUT_ERR_MSG);
|
|
210
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* @private
|
|
240
|
+
*/
|
|
241
|
+
deleteStoredHandlers() {
|
|
242
|
+
this.storedMoveHandler = this.storedStopHandler = null;
|
|
243
|
+
}
|
|
211
244
|
}
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9yZGVyLWxheW91dC1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2NvbXBvbmVudC9sYXlvdXQvYm9yZGVyLWxheW91dC91dGlsL2JvcmRlci1sYXlvdXQtcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFrQyxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUF1QixNQUFNLG1CQUFtQixDQUFDO0FBQzVJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFOztHQUVHO0FBQ0gsTUFBTSxTQUFTLEdBQVEsV0FBVyxDQUFDO0FBRW5DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLEdBQVEsU0FBUyxDQUFDO0FBRS9COztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQVcsb0VBQW9FLENBQUM7QUFFcEc7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBVywwQ0FBMEMsQ0FBQztBQUUxRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEscUJBQXFCO0lBc0I3RDs7T0FFRztJQUNILFlBQW9CLFlBQWlDO1FBQ25ELEtBQUssRUFBRSxDQUFDO1FBRFUsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBdkJyRDs7V0FFRztRQUNhLGVBQVUsR0FBa0MsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFPcEY7O1dBRUc7UUFDSyxrQkFBYSxHQUE0QixFQUFFLENBQUM7UUFZbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJ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QVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFBRSxNQUFNLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW5cbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvcmRlckxheW91dENvbnRhaW5lciB9IGZyb20gJy4uLy4uL2JvcmRlci1sYXlvdXQtY29udGFpbmVyL2JvcmRlci1sYXlvdXQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsJztcbmltcG9ydCB7IERlc3Ryb3lhYmxlLCBMYXlvdXRDb25zdHJhaW50cywgTGF5b3V0RHJhZ0V2ZW50LCBMYXlvdXREcmFnRXZlbnRUeXBlLCBMYXlvdXRSZWdpb24sIFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBJZGVudGlmaWFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IEJvcmRlckxheW91dEJvdW5kc01hbmFnZXIgfSBmcm9tICcuL2JvcmRlci1sYXlvdXQtYm91bmRzLW1hbmFnZXInO1xuaW1wb3J0IHsgUmVzaXplTWV0aG9kIH0gZnJvbSAnLi9yZXNpemUtbWV0aG9kJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBNT1VTRU1PVkU6IGFueSA9IFwibW91c2Vtb3ZlXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgTU9VU0VVUDogYW55ID0gXCJtb3VzZXVwXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgUkVHSU9OX0VSUl9NU0c6IHN0cmluZyA9IFwiQSBjb250YWluZXIgd2l0aCB0aGUgc2FtZSBpZGVudGlmaWVyIGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZDogXCI7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgTEFZT1VUX0VSUl9NU0c6IHN0cmluZyA9IFwiTm8gbGF5b3V0IGNvbnRhaW5lciBoYXMgYmVlbiByZWdpc3RlcmVkLlwiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBBIGNvbnRyb2xsZXIgb2JqZWN0IHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyB1c2VyIGFjdGlvbnMgb24gYSBgQm9yZGVyTGF5b3V0YCBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3JkZXJMYXlvdXRSZW5kZXJlciBleHRlbmRzIElkZW50aWZpYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIERlc3Ryb3lhYmxlIHtcblxuICAvKipcbiAgICogRW1pdHMgZXZlbnRzIGVhY2ggdGltZSB0aGUgdXNlciBzdGFydHMsIG9yIHN0b3BzIGRyYWdnaW5nIGhhbmRsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyQWN0aW9uOiBFdmVudEVtaXR0ZXI8TGF5b3V0RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBseXRDb250YWluZXJFbG0hOiBIVE1MRGl2RWxlbWVudDtcbiAgXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjb250YWluZXJMaXN0OiBCb3JkZXJMYXlvdXRDb250YWluZXJbXSA9IFtdO1xuICBcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGJvdW5kc01hbmFnZXI6IEJvcmRlckxheW91dEJvdW5kc01hbmFnZXI7IFxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdWJzY3JpYmVTdmM6IFN1YnNjcmlwdGlvblNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYm91bmRzTWFuYWdlciA9IG5ldyBCb3JkZXJMYXlvdXRCb3VuZHNNYW5hZ2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHRoZSBsaXN0IGBCb3JkZXJMYXlvdXRDb250YWluZXJgIG9iamVjdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGNvbnRhaW5lciB0byB0aGlzIGNvbnRyb2xsZXIuXG4gICAqIFxuICAgKiBAcGFyYW0gY29udGFpbmVycyB0aGUgbGlzdCBgQm9yZGVyTGF5b3V0Q29udGFpbmVyYCBvYmplY3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWFpbiBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgYWRkQ29udGFpbmVycyhjb250YWluZXJzOiBRdWVyeUxpc3Q8Qm9yZGVyTGF5b3V0Q29udGFpbmVyPik6IHZvaWQge1xuICAgIGxldCByZWdpb25WYWxpZGF0b3I6IHN0cmluZyA9IEVNUFRZX1NUUklORztcbiAgICBjb250YWluZXJzLmZvckVhY2goY29udGFpbmVyID0+IHtcbiAgICAgIGNvbnN0IGNvbnN0cmFpbnRzOiBMYXlvdXRDb25zdHJhaW50cyA9IGNvbnRhaW5lci5jb25zdHJhaW50cztcbiAgICAgIGNvbnN0IHI6IHN0cmluZyA9IGNvbnN0cmFpbnRzLnJlZ2lvbiBhcyBzdHJpbmc7XG4gICAgICBpZiAocmVnaW9uVmFsaWRhdG9yLmluZGV4T2YocikgIT09IC0xKSB0aHJvdyBuZXcgU3ludGF4RXJyb3IoUkVHSU9OX0VSUl9NU0cgKyByKTtcbiAgICAgIHJlZ2lvblZhbGlkYXRvciArPSByO1xuICAgICAgaWYgKGNvbnN0cmFpbnRzLnJlc2l6YWJsZSkge1xuICAgICAgICB0aGlzLnN1YnNjcmliZVN2Yy5yZWdpc3Rlcih0aGlzLFxuICAgICAgICAgIGNvbnRhaW5lci5yZXNpemVTdGFydC5zdWJzY3JpYmUoY29udGFpbmVyPT4gdGhpcy5yZXNpemVFbnRlcihjb250YWluZXIpKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5ib3VuZHNNYW5hZ2VyLmluaXRCb3VuZHMoY29udGFpbmVyKTtcbiAgICAgIGlmIChyID09PSBMYXlvdXRSZWdpb24uTk9SVEggfHwgciA9PT0gTGF5b3V0UmVnaW9uLlNPVVRIKSByZXR1cm47XG4gICAgICB0aGlzLmNvbnRhaW5lckxpc3QucHVzaChjb250YWluZXIpO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByZWZlcmVuY2UgdG8gdGhlIEhUTUwgY29udGFpbmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWFpbiBjb250YWluZXIuXG4gICAqIFxuICAgKiBAcGFyYW0gbHl0Q29udGFpbmVyIFRoZSByZWZlcmVuY2UgdG8gdGhlIEhUTUwgY29udGFpbmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWFpbiBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgc2V0TGF5b3V0Q29udGFpbmVyKGx5dENvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmx5dENvbnRhaW5lckVsbSA9IGx5dENvbnRhaW5lcjtcbiAgfTtcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICogRm9yIHRlc3QgcHVycG9zZSBvbmx5LlxuICAgKiBSZXR1cm5zIHRoZSByZWZlcmVuY2UgdG8gdGhlIGludGVybmFsIGBCb3JkZXJMYXlvdXRCb3VuZHNNYW5hZ2VyYCBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBnZXRCb3VuZHNNYW5hZ2VyKCk6IEJvcmRlckxheW91dEJvdW5kc01hbmFnZXIge1xuICAgIHJldHVybiB0aGlzLmJvdW5kc01hbmFnZXI7IFxuICB9XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoaXMgb2JqZWN0IGVsbGlnaWJsZSBmb3IgZ2FyYmFnZSBjb2xsZWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpYmVTdmMuY2xlYXJBbGwodGhpcyk7XG4gICAgdGhpcy5jb250YWluZXJMaXN0Lmxlbmd0aCA9IDA7XG4gICAgdGhpcy5jb250YWluZXJMaXN0ID0gbnVsbCBhcyBhbnk7XG4gICAgdGhpcy5seXRDb250YWluZXJFbG0gPSBudWxsIGFzIGFueTtcbiAgICB0aGlzLmJvdW5kc01hbmFnZXIuZGVzdHJveSgpO1xuICAgIHRoaXMuYm91bmRzTWFuYWdlciA9IG51bGwgYXMgYW55O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlcyB0aGUgbGF5b3V0IG9mIGFsbCBgQm9yZGVyTGF5b3V0Q29udGFpbmVyYCBvYmplY3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWFpbiBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgcGFpbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja0x5dENvbnRhaW5lcigpO1xuICAgIHRoaXMucmVuZGVyKHRoaXMubHl0Q29udGFpbmVyRWxtLm9mZnNldFdpZHRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNpemVzIHRoZSBzcGVjaWZpZWQgcmVnaW9uIG9mIHRoZSBhc3NvY2lhdGVkIGNvbnRhaW5lci5cbiAgICogXG4gICAqIEBwYXJhbSByZWdpb24gVGhlIHJlZ2lvbiB0byByZXNpemUuXG4gICAqIEBwYXJhbSBzaXplIFRoZSBuZXcgc2l6ZSBvZiB0aGUgcmVnaW9uIHRvIHJlc2l6ZS5cbiAgICogXG4gICAqIEByZXR1cm5zIGB0cnVlYCB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgcmVnaW9uIGhhcyBiZWVuIHJlc2l6ZWQ7IGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIHJlc2l6ZVJlZ2lvbihyZWdpb246IExheW91dFJlZ2lvbiwgc2l6ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKHJlZ2lvbiA9PT0gTGF5b3V0UmVnaW9uLkNFTlRFUikgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGNvbnRhaW5lcjogQm9yZGVyTGF5b3V0Q29udGFpbmVyIHwgdW5kZWZpbmVkID0gdGhpcy5jb250YWluZXJMaXN0LmZpbmQoKGM6IEJvcmRlckxheW91dENvbnRhaW5lcik9PiB7XG4gICAgICByZXR1cm4gYy5jb25zdHJhaW50cy5yZWdpb24gPT09IHJlZ2lvbjtcbiAgICB9KTtcbiAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnRhaW5lci5zZXRTaXplKHNpemUpO1xuICAgIHRoaXMuYm91bmRzTWFuYWdlci5pbml0Qm91bmRzKGNvbnRhaW5lcik7XG4gICAgdGhpcy5wYWludCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlc2l6ZUVudGVyKGNvbnRhaW5lcjogQm9yZGVyTGF5b3V0Q29udGFpbmVyKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja0x5dENvbnRhaW5lcigpO1xuICAgIGNvbnN0IGx5dE5hdGl2ZUVsbTogSFRNTERpdkVsZW1lbnQgPSB0aGlzLmx5dENvbnRhaW5lckVsbTtcbiAgICBjb25zdCB3aWR0aDogbnVtYmVyID0gbHl0TmF0aXZlRWxtLm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IGhlaWdodDogbnVtYmVyID0gbHl0TmF0aXZlRWxtLm9mZnNldEhlaWdodDtcbiAgICBjb25zdCBib3VuZHM6IERPTVJlY3QgPSBseXROYXRpdmVFbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgY29uc3RyYWludHM6IExheW91dENvbnN0cmFpbnRzID0gY29udGFpbmVyLmNvbnN0cmFpbnRzO1xuICAgIGNvbnN0IHJlZ2lvbjogTGF5b3V0UmVnaW9uID0gY29uc3RyYWludHMucmVnaW9uIGFzIExheW91dFJlZ2lvbjtcbiAgICBjb25zdCBtaW5TaXplOiBudW1iZXIgfCB1bmRlZmluZWQgPSBjb25zdHJhaW50cy5taW5TaXplO1xuICAgIGNvbnN0IG1heFNpemU6IG51bWJlciB8IHVuZGVmaW5lZCA9IGNvbnN0cmFpbnRzLm1heFNpemU7XG4gICAgbGV0IHNpemU6IG51bWJlciA9IDA7XG4gICAgdGhpcy5ib3VuZHNNYW5hZ2VyLnNldE9yaWdpbihib3VuZHMueCwgYm91bmRzLnkpO1xuICAgIGxldCByZXNpemVNZXRob2Q6IFJlc2l6ZU1ldGhvZCA9IHRoaXMuYm91bmRzTWFuYWdlci5nZXRSZXNpemVNZXRob2QocmVnaW9uKTtcbiAgICBjb250YWluZXIuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIGNvbnN0IG9uTW92ZUhhbmRsZXIgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgc2l6ZSA9IHJlc2l6ZU1ldGhvZChldmVudCwgd2lkdGgsIGhlaWdodCwgbWluU2l6ZSwgbWF4U2l6ZSk7XG4gICAgICBjb250YWluZXIuc2V0U2l6ZShzaXplKTtcbiAgICAgIHRoaXMucmVuZGVyKHdpZHRoKTtcbiAgICAgIHRoaXMuZmlyZUV2ZW50KGNvbnRhaW5lciwgTGF5b3V0RHJhZ0V2ZW50VHlwZS5EUkFHR0lORyk7XG4gICAgfTtcbiAgICBjb25zdCBvblN0b3BIYW5kbGVyID0gKGV2ZW50OiBNb3VzZUV2ZW50KT0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGx5dE5hdGl2ZUVsbS5yZW1vdmVFdmVudExpc3RlbmVyKE1PVVNFTU9WRSwgb25Nb3ZlSGFuZGxlcik7XG4gICAgICBseXROYXRpdmVFbG0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihNT1VTRVVQLCBvblN0b3BIYW5kbGVyKTtcbiAgICAgIGNvbnRhaW5lci5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgc2l6ZSA9IHJlc2l6ZU1ldGhvZChldmVudCwgd2lkdGgsIGhlaWdodCwgbWluU2l6ZSwgbWF4U2l6ZSk7XG4gICAgICBjb250YWluZXIuc2V0U2l6ZShzaXplKTtcbiAgICAgIHRoaXMucmVuZGVyKHdpZHRoKTtcbiAgICAgIHRoaXMuZmlyZUV2ZW50KGNvbnRhaW5lciwgTGF5b3V0RHJhZ0V2ZW50VHlwZS5EUkFHX1NUT1ApO1xuICAgIH07XG4gICAgbHl0TmF0aXZlRWxtLmFkZEV2ZW50TGlzdGVuZXIoTU9VU0VNT1ZFLCBvbk1vdmVIYW5kbGVyKTtcbiAgICBseXROYXRpdmVFbG0uYWRkRXZlbnRMaXN0ZW5lcihNT1VTRVVQLCBvblN0b3BIYW5kbGVyKTtcbiAgICB0aGlzLmZpcmVFdmVudChjb250YWluZXIsIExheW91dERyYWdFdmVudFR5cGUuRFJBR19TVEFSVCk7XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZmlyZUV2ZW50KHRhcmdldDogQm9yZGVyTGF5b3V0Q29udGFpbmVyLCB0eXBlOiBMYXlvdXREcmFnRXZlbnRUeXBlKTogdm9pZCB7XG4gICAgY29uc3QgZXZ0OiBMYXlvdXREcmFnRXZlbnQgPSBuZXcgTGF5b3V0RHJhZ0V2ZW50KHRhcmdldCwgdHlwZSk7XG4gICAgdGhpcy51c2VyQWN0aW9uLmVtaXQoZXZ0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZW5kZXIod2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGJvdW5kczogRE9NUmVjdCA9IHRoaXMuYm91bmRzTWFuYWdlci5nZXRCb3VuZHMoKTtcbiAgICBjb25zdCB0b3A6IG51bWJlciA9IGJvdW5kcy50b3A7XG4gICAgY29uc3QgYm90dG9tOiBudW1iZXIgPSBib3VuZHMuYm90dG9tO1xuICAgIGNvbnN0IGxlZnQ6IG51bWJlciA9IGJvdW5kcy5sZWZ0O1xuICAgIGNvbnN0IHJpZ2h0OiBudW1iZXIgPSBib3VuZHMucmlnaHQ7XG4gICAgdGhpcy5jb250YWluZXJMaXN0LmZvckVhY2goKGNvbnQ6IEJvcmRlckxheW91dENvbnRhaW5lcikgPT4ge1xuICAgICAgY29uc3QgcjogTGF5b3V0UmVnaW9uID0gY29udC5jb25zdHJhaW50cy5yZWdpb24gYXMgTGF5b3V0UmVnaW9uO1xuICAgICAgaWYgKHIgPT09IExheW91dFJlZ2lvbi5XRVNUKSB7XG4gICAgICAgIGNvbnQuc2V0VG9wUG9zKHRvcCk7XG4gICAgICAgIGNvbnQuc2V0UmlnaHRQb3Mod2lkdGggLSBsZWZ0KTtcbiAgICAgICAgY29udC5zZXRCb3R0b21Qb3MoYm90dG9tIC0gdG9wKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHIgPT09IExheW91dFJlZ2lvbi5DRU5URVIpIHtcbiAgICAgICAgY29udC5zZXRUb3BQb3ModG9wKTtcbiAgICAgICAgY29udC5zZXRMZWZ0UG9zKGxlZnQpO1xuICAgICAgICBjb250LnNldFJpZ2h0UG9zKHJpZ2h0IC0gbGVmdCk7XG4gICAgICAgIGNvbnQuc2V0Qm90dG9tUG9zKGJvdHRvbSAtIHRvcCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChyID09PSBMYXlvdXRSZWdpb24uRUFTVCkge1xuICAgICAgICBjb250LnNldFRvcFBvcyh0b3ApO1xuICAgICAgICBjb250LnNldExlZnRQb3Mod2lkdGggLSAocmlnaHQgLSBsZWZ0KSk7XG4gICAgICAgIGNvbnQuc2V0Qm90dG9tUG9zKGJvdHRvbSAtIHRvcCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrTHl0Q29udGFpbmVyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5seXRDb250YWluZXJFbG0pIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihMQVlPVVRfRVJSX01TRyk7XG4gIH1cbn1cbiJdfQ==
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9yZGVyLWxheW91dC1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL2NvbXBvbmVudC9sYXlvdXQvYm9yZGVyLWxheW91dC91dGlsL2JvcmRlci1sYXlvdXQtcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFrQyxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUF1QixNQUFNLG1CQUFtQixDQUFDO0FBQzVJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFOztHQUVHO0FBQ0gsTUFBTSxTQUFTLEdBQVEsV0FBVyxDQUFDO0FBRW5DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLEdBQVEsU0FBUyxDQUFDO0FBRS9COztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQVcsb0VBQW9FLENBQUM7QUFFcEc7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBVywwQ0FBMEMsQ0FBQztBQUUxRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEscUJBQXFCO0lBZ0M3RDs7T0FFRztJQUNILFlBQW9CLFlBQWlDLEVBQ2pDLFFBQWtCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRlUsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFsQ3RDOztXQUVHO1FBQ2EsZUFBVSxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTy9FOztXQUVHO1FBQ0ssa0JBQWEsR0FBNEIsRUFBRSxDQUFDO1FB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QUNLLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb3JkZXJMYXlvdXRDb250YWluZXIgfSBmcm9tICcuLi8uLi9ib3JkZXItbGF5b3V0LWNvbnRhaW5lci9ib3JkZXItbGF5b3V0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbCc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZSwgTGF5b3V0Q29uc3RyYWludHMsIExheW91dERyYWdFdmVudCwgTGF5b3V0RHJhZ0V2ZW50VHlwZSwgTGF5b3V0UmVnaW9uLCBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwnO1xuaW1wb3J0IHsgSWRlbnRpZmlhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBCb3JkZXJMYXlvdXRCb3VuZHNNYW5hZ2VyIH0gZnJvbSAnLi9ib3JkZXItbGF5b3V0LWJvdW5kcy1tYW5hZ2VyJztcbmltcG9ydCB7IFJlc2l6ZU1ldGhvZCB9IGZyb20gJy4vcmVzaXplLW1ldGhvZCc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgTU9VU0VNT1ZFOiBhbnkgPSBcIm1vdXNlbW92ZVwiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IE1PVVNFVVA6IGFueSA9IFwibW91c2V1cFwiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IFJFR0lPTl9FUlJfTVNHOiBzdHJpbmcgPSBcIkEgY29udGFpbmVyIHdpdGggdGhlIHNhbWUgaWRlbnRpZmllciBoYXMgYWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQ6IFwiO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IExBWU9VVF9FUlJfTVNHOiBzdHJpbmcgPSBcIk5vIGxheW91dCBjb250YWluZXIgaGFzIGJlZW4gcmVnaXN0ZXJlZC5cIjtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICogQSBjb250cm9sbGVyIG9iamVjdCByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdXNlciBhY3Rpb25zIG9uIGEgYEJvcmRlckxheW91dGAgY29udGFpbmVyLlxuICovXG5leHBvcnQgY2xhc3MgQm9yZGVyTGF5b3V0UmVuZGVyZXIgZXh0ZW5kcyBJZGVudGlmaWFibGVDb21wb25lbnQgaW1wbGVtZW50cyBEZXN0cm95YWJsZSB7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50cyBlYWNoIHRpbWUgdGhlIHVzZXIgc3RhcnRzLCBvciBzdG9wcyBkcmFnZ2luZyBoYW5kbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckFjdGlvbjogRXZlbnRFbWl0dGVyPExheW91dERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGx5dENvbnRhaW5lckVsbSE6IEhUTUxEaXZFbGVtZW50O1xuICBcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNvbnRhaW5lckxpc3Q6IEJvcmRlckxheW91dENvbnRhaW5lcltdID0gW107XG4gIFxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYm91bmRzTWFuYWdlcjogQm9yZGVyTGF5b3V0Qm91bmRzTWFuYWdlcjsgXG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHN0b3JlZFN0b3BIYW5kbGVyOiBhbnkgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzdG9yZWRNb3ZlSGFuZGxlcjogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3Vic2NyaWJlU3ZjOiBTdWJzY3JpcHRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5ib3VuZHNNYW5hZ2VyID0gbmV3IEJvcmRlckxheW91dEJvdW5kc01hbmFnZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIGxpc3QgYEJvcmRlckxheW91dENvbnRhaW5lcmAgb2JqZWN0cyBhc3NvY2lhdGVkIHdpdGggdGhlIG1haW4gY29udGFpbmVyIHRvIHRoaXMgY29udHJvbGxlci5cbiAgICogXG4gICAqIEBwYXJhbSBjb250YWluZXJzIHRoZSBsaXN0IGBCb3JkZXJMYXlvdXRDb250YWluZXJgIG9iamVjdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyBhZGRDb250YWluZXJzKGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxCb3JkZXJMYXlvdXRDb250YWluZXI+KTogdm9pZCB7XG4gICAgbGV0IHJlZ2lvblZhbGlkYXRvcjogc3RyaW5nID0gRU1QVFlfU1RSSU5HO1xuICAgIGNvbnRhaW5lcnMuZm9yRWFjaChjb250YWluZXIgPT4ge1xuICAgICAgY29uc3QgY29uc3RyYWludHM6IExheW91dENvbnN0cmFpbnRzID0gY29udGFpbmVyLmNvbnN0cmFpbnRzO1xuICAgICAgY29uc3Qgcjogc3RyaW5nID0gY29uc3RyYWludHMucmVnaW9uIGFzIHN0cmluZztcbiAgICAgIGlmIChyZWdpb25WYWxpZGF0b3IuaW5kZXhPZihyKSAhPT0gLTEpIHRocm93IG5ldyBTeW50YXhFcnJvcihSRUdJT05fRVJSX01TRyArIHIpO1xuICAgICAgcmVnaW9uVmFsaWRhdG9yICs9IHI7XG4gICAgICBpZiAoY29uc3RyYWludHMucmVzaXphYmxlKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlU3ZjLnJlZ2lzdGVyKHRoaXMsXG4gICAgICAgICAgY29udGFpbmVyLnJlc2l6ZVN0YXJ0LnN1YnNjcmliZShjb250YWluZXI9PiB0aGlzLnJlc2l6ZUVudGVyKGNvbnRhaW5lcikpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLmJvdW5kc01hbmFnZXIuaW5pdEJvdW5kcyhjb250YWluZXIpO1xuICAgICAgaWYgKHIgPT09IExheW91dFJlZ2lvbi5OT1JUSCB8fCByID09PSBMYXlvdXRSZWdpb24uU09VVEgpIHJldHVybjtcbiAgICAgIHRoaXMuY29udGFpbmVyTGlzdC5wdXNoKGNvbnRhaW5lcik7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHJlZmVyZW5jZSB0byB0aGUgSFRNTCBjb250YWluZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGNvbnRhaW5lci5cbiAgICogXG4gICAqIEBwYXJhbSBseXRDb250YWluZXIgVGhlIHJlZmVyZW5jZSB0byB0aGUgSFRNTCBjb250YWluZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBtYWluIGNvbnRhaW5lci5cbiAgICovXG4gIHB1YmxpYyBzZXRMYXlvdXRDb250YWluZXIobHl0Q29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMubHl0Q29udGFpbmVyRWxtID0gbHl0Q29udGFpbmVyO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBGb3IgdGVzdCBwdXJwb3NlIG9ubHkuXG4gICAqIFJldHVybnMgdGhlIHJlZmVyZW5jZSB0byB0aGUgaW50ZXJuYWwgYEJvcmRlckxheW91dEJvdW5kc01hbmFnZXJgIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGdldEJvdW5kc01hbmFnZXIoKTogQm9yZGVyTGF5b3V0Qm91bmRzTWFuYWdlciB7XG4gICAgcmV0dXJuIHRoaXMuYm91bmRzTWFuYWdlcjsgXG4gIH1cblxuICAvKipcbiAgICogTWFrZXMgdGhpcyBvYmplY3QgZWxsaWdpYmxlIGZvciBnYXJiYWdlIGNvbGxlY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdG9yZWRTdG9wSGFuZGxlcikge1xuICAgICAgdGhpcy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKE1PVVNFTU9WRSwgdGhpcy5zdG9yZWRNb3ZlSGFuZGxlcik7XG4gICAgICB0aGlzLmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoTU9VU0VVUCwgdGhpcy5zdG9yZWRTdG9wSGFuZGxlcik7XG4gICAgICB0aGlzLmRlbGV0ZVN0b3JlZEhhbmRsZXJzKCk7XG4gICAgfVxuICAgIHRoaXMuc3Vic2NyaWJlU3ZjLmNsZWFyQWxsKHRoaXMpO1xuICAgIHRoaXMubHl0Q29udGFpbmVyRWxtID0gbnVsbCBhcyBhbnk7XG4gICAgdGhpcy5ib3VuZHNNYW5hZ2VyLmRlc3Ryb3koKTtcbiAgICB0aGlzLmJvdW5kc01hbmFnZXIgPSBudWxsIGFzIGFueTtcbiAgICB0aGlzLmNvbnRhaW5lckxpc3QubGVuZ3RoID0gMDtcbiAgICB0aGlzLmNvbnRhaW5lckxpc3QgPSBudWxsIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIGxheW91dCBvZiBhbGwgYEJvcmRlckxheW91dENvbnRhaW5lcmAgb2JqZWN0cyBhc3NvY2lhdGVkIHdpdGggdGhlIG1haW4gY29udGFpbmVyLlxuICAgKi9cbiAgcHVibGljIHBhaW50KCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tMeXRDb250YWluZXIoKTtcbiAgICB0aGlzLnJlbmRlcih0aGlzLmx5dENvbnRhaW5lckVsbS5vZmZzZXRXaWR0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzaXplcyB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBvZiB0aGUgYXNzb2NpYXRlZCBjb250YWluZXIuXG4gICAqIFxuICAgKiBAcGFyYW0gcmVnaW9uIFRoZSByZWdpb24gdG8gcmVzaXplLlxuICAgKiBAcGFyYW0gc2l6ZSBUaGUgbmV3IHNpemUgb2YgdGhlIHJlZ2lvbiB0byByZXNpemUuXG4gICAqIFxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgd2hldGhlciB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBoYXMgYmVlbiByZXNpemVkOyBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyByZXNpemVSZWdpb24ocmVnaW9uOiBMYXlvdXRSZWdpb24sIHNpemU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmIChyZWdpb24gPT09IExheW91dFJlZ2lvbi5DRU5URVIpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBjb250YWluZXI6IEJvcmRlckxheW91dENvbnRhaW5lciB8IHVuZGVmaW5lZCA9IHRoaXMuY29udGFpbmVyTGlzdC5maW5kKChjOiBCb3JkZXJMYXlvdXRDb250YWluZXIpPT4ge1xuICAgICAgcmV0dXJuIGMuY29uc3RyYWludHMucmVnaW9uID09PSByZWdpb247XG4gICAgfSk7XG4gICAgaWYgKCFjb250YWluZXIpIHJldHVybiBmYWxzZTtcbiAgICBjb250YWluZXIuc2V0U2l6ZShzaXplKTtcbiAgICB0aGlzLmJvdW5kc01hbmFnZXIuaW5pdEJvdW5kcyhjb250YWluZXIpO1xuICAgIHRoaXMucGFpbnQoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZXNpemVFbnRlcihjb250YWluZXI6IEJvcmRlckxheW91dENvbnRhaW5lcik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tMeXRDb250YWluZXIoKTtcbiAgICBjb25zdCBseXROYXRpdmVFbG06IEhUTUxEaXZFbGVtZW50ID0gdGhpcy5seXRDb250YWluZXJFbG07XG4gICAgY29uc3Qgd2lkdGg6IG51bWJlciA9IGx5dE5hdGl2ZUVsbS5vZmZzZXRXaWR0aDtcbiAgICBjb25zdCBoZWlnaHQ6IG51bWJlciA9IGx5dE5hdGl2ZUVsbS5vZmZzZXRIZWlnaHQ7XG4gICAgY29uc3QgYm91bmRzOiBET01SZWN0ID0gbHl0TmF0aXZlRWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGNvbnN0cmFpbnRzOiBMYXlvdXRDb25zdHJhaW50cyA9IGNvbnRhaW5lci5jb25zdHJhaW50cztcbiAgICBjb25zdCByZWdpb246IExheW91dFJlZ2lvbiA9IGNvbnN0cmFpbnRzLnJlZ2lvbiBhcyBMYXlvdXRSZWdpb247XG4gICAgY29uc3QgbWluU2l6ZTogbnVtYmVyIHwgdW5kZWZpbmVkID0gY29uc3RyYWludHMubWluU2l6ZTtcbiAgICBjb25zdCBtYXhTaXplOiBudW1iZXIgfCB1bmRlZmluZWQgPSBjb25zdHJhaW50cy5tYXhTaXplO1xuICAgIGNvbnN0IGRvYzogRG9jdW1lbnQgPSB0aGlzLmRvY3VtZW50O1xuICAgIGxldCBzaXplOiBudW1iZXIgPSAwO1xuICAgIHRoaXMuYm91bmRzTWFuYWdlci5zZXRPcmlnaW4oYm91bmRzLngsIGJvdW5kcy55KTtcbiAgICBsZXQgcmVzaXplTWV0aG9kOiBSZXNpemVNZXRob2QgPSB0aGlzLmJvdW5kc01hbmFnZXIuZ2V0UmVzaXplTWV0aG9kKHJlZ2lvbik7XG4gICAgY29udGFpbmVyLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICBjb25zdCBvbk1vdmVIYW5kbGVyID0gKGV2ZW50OiBNb3VzZUV2ZW50KT0+IHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNpemUgPSByZXNpemVNZXRob2QoZXZlbnQsIHdpZHRoLCBoZWlnaHQsIG1pblNpemUsIG1heFNpemUpO1xuICAgICAgY29udGFpbmVyLnNldFNpemUoc2l6ZSk7XG4gICAgICB0aGlzLnJlbmRlcih3aWR0aCk7XG4gICAgICB0aGlzLmZpcmVFdmVudChjb250YWluZXIsIExheW91dERyYWdFdmVudFR5cGUuRFJBR0dJTkcpO1xuICAgIH07XG4gICAgY29uc3Qgb25TdG9wSGFuZGxlciA9IChldmVudDogTW91c2VFdmVudCk9PiB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcihNT1VTRU1PVkUsIG9uTW92ZUhhbmRsZXIpO1xuICAgICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoTU9VU0VVUCwgb25TdG9wSGFuZGxlcik7XG4gICAgICB0aGlzLmRlbGV0ZVN0b3JlZEhhbmRsZXJzKCk7XG4gICAgICBjb250YWluZXIuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHNpemUgPSByZXNpemVNZXRob2QoZXZlbnQsIHdpZHRoLCBoZWlnaHQsIG1pblNpemUsIG1heFNpemUpO1xuICAgICAgY29udGFpbmVyLnNldFNpemUoc2l6ZSk7XG4gICAgICB0aGlzLnJlbmRlcih3aWR0aCk7XG4gICAgICB0aGlzLmZpcmVFdmVudChjb250YWluZXIsIExheW91dERyYWdFdmVudFR5cGUuRFJBR19TVE9QKTtcbiAgICB9O1xuICAgIHRoaXMuc3RvcmVkTW92ZUhhbmRsZXIgPSBvbk1vdmVIYW5kbGVyO1xuICAgIHRoaXMuc3RvcmVkU3RvcEhhbmRsZXIgPSBvblN0b3BIYW5kbGVyO1xuICAgIHRoaXMuZmlyZUV2ZW50KGNvbnRhaW5lciwgTGF5b3V0RHJhZ0V2ZW50VHlwZS5EUkFHX1NUQVJUKTtcbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihNT1VTRU1PVkUsIG9uTW92ZUhhbmRsZXIpO1xuICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKE1PVVNFVVAsIG9uU3RvcEhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGZpcmVFdmVudCh0YXJnZXQ6IEJvcmRlckxheW91dENvbnRhaW5lciwgdHlwZTogTGF5b3V0RHJhZ0V2ZW50VHlwZSk6IHZvaWQge1xuICAgIGNvbnN0IGV2dDogTGF5b3V0RHJhZ0V2ZW50ID0gbmV3IExheW91dERyYWdFdmVudCh0YXJnZXQsIHR5cGUpO1xuICAgIHRoaXMudXNlckFjdGlvbi5lbWl0KGV2dCk7XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVuZGVyKHdpZHRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBib3VuZHM6IERPTVJlY3QgPSB0aGlzLmJvdW5kc01hbmFnZXIuZ2V0Qm91bmRzKCk7XG4gICAgY29uc3QgdG9wOiBudW1iZXIgPSBib3VuZHMudG9wO1xuICAgIGNvbnN0IGJvdHRvbTogbnVtYmVyID0gYm91bmRzLmJvdHRvbTtcbiAgICBjb25zdCBsZWZ0OiBudW1iZXIgPSBib3VuZHMubGVmdDtcbiAgICBjb25zdCByaWdodDogbnVtYmVyID0gYm91bmRzLnJpZ2h0O1xuICAgIGNvbnN0IGNMaXN0OiBCb3JkZXJMYXlvdXRDb250YWluZXJbXSA9IHRoaXMuY29udGFpbmVyTGlzdDtcbiAgICBsZXQgY3Vyc29yOiBudW1iZXIgPSBjTGlzdC5sZW5ndGggLSAxO1xuICAgIHdoaWxlKGN1cnNvciA+PSAwKSB7XG4gICAgICBjb25zdCBjb250OiBCb3JkZXJMYXlvdXRDb250YWluZXIgPSBjTGlzdFtjdXJzb3JdO1xuICAgICAgY29uc3QgcjogTGF5b3V0UmVnaW9uID0gY29udC5jb25zdHJhaW50cy5yZWdpb24gYXMgTGF5b3V0UmVnaW9uO1xuICAgICAgY3Vyc29yLS07XG4gICAgICBpZiAociA9PT0gTGF5b3V0UmVnaW9uLldFU1QpIHtcbiAgICAgICAgY29udC5zZXRUb3BQb3ModG9wKTtcbiAgICAgICAgY29udC5zZXRSaWdodFBvcyh3aWR0aCAtIGxlZnQpO1xuICAgICAgICBjb250LnNldEJvdHRvbVBvcyhib3R0b20gLSB0b3ApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChyID09PSBMYXlvdXRSZWdpb24uQ0VOVEVSKSB7XG4gICAgICAgIGNvbnQuc2V0VG9wUG9zKHRvcCk7XG4gICAgICAgIGNvbnQuc2V0TGVmdFBvcyhsZWZ0KTtcbiAgICAgICAgY29udC5zZXRSaWdodFBvcyhyaWdodCAtIGxlZnQpO1xuICAgICAgICBjb250LnNldEJvdHRvbVBvcyhib3R0b20gLSB0b3ApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChyID09PSBMYXlvdXRSZWdpb24uRUFTVCkge1xuICAgICAgICBjb250LnNldFRvcFBvcyh0b3ApO1xuICAgICAgICBjb250LnNldExlZnRQb3Mod2lkdGggLSAocmlnaHQgLSBsZWZ0KSk7XG4gICAgICAgIGNvbnQuc2V0Qm90dG9tUG9zKGJvdHRvbSAtIHRvcCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY2hlY2tMeXRDb250YWluZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmx5dENvbnRhaW5lckVsbSkgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKExBWU9VVF9FUlJfTVNHKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGRlbGV0ZVN0b3JlZEhhbmRsZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmVkTW92ZUhhbmRsZXIgPSB0aGlzLnN0b3JlZFN0b3BIYW5kbGVyID0gbnVsbDtcbiAgfVxufVxuIl19
|
package/esm2022/lib/component/layout/border-layout-container/border-layout-container.component.mjs
CHANGED
|
@@ -129,11 +129,11 @@ export class BorderLayoutContainer {
|
|
|
129
129
|
this.resizable = true;
|
|
130
130
|
}
|
|
131
131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayoutContainer, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: BorderLayoutContainer, isStandalone: true, selector: "atx-border-layout-container", inputs: { constraints: "constraints" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<ng-content></ng-content>\n@if (resizable) {\n <div class=\"atx-handle\" [class.atx-handle-selected]=\"selected\" (mousedown)=\"resizetart()\"></div>\n}\n", styles: [":host{box-sizing:border-box;padding:0;margin:0}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }); }
|
|
132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: BorderLayoutContainer, isStandalone: true, selector: "atx-border-layout-container", inputs: { constraints: "constraints" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<ng-content></ng-content>\n@if (resizable) {\n <div class=\"atx-handle\" [class.atx-handle-selected]=\"selected\" (mousedown)=\"resizetart()\"></div>\n}\n", styles: [":host{box-sizing:border-box;padding:0;margin:0}:host.north{position:absolute;z-index:10;top:0;left:0;right:0}:host.north>.atx-handle{left:0;right:0;bottom:0;height:4px;cursor:ns-resize}:host.west{position:absolute;z-index:5;left:0;height:unset!important}:host.west>.atx-handle{right:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.east{position:absolute;z-index:5;right:0;height:unset!important}:host.east>.atx-handle{left:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.south{position:absolute;z-index:10;bottom:0;left:0;right:0}:host.south>.atx-handle{left:0;right:0;top:0;height:4px;cursor:ns-resize}:host.center{position:absolute}.atx-handle{position:absolute}.atx-handle:hover,.atx-handle.atx-handle-selected{background-color:var(--atx-handle-color, #469afa)}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }); }
|
|
133
133
|
}
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayoutContainer, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
|
-
args: [{ selector: 'atx-border-layout-container', standalone: true, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<ng-content></ng-content>\n@if (resizable) {\n <div class=\"atx-handle\" [class.atx-handle-selected]=\"selected\" (mousedown)=\"resizetart()\"></div>\n}\n", styles: [":host{box-sizing:border-box;padding:0;margin:0}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
|
|
136
|
+
args: [{ selector: 'atx-border-layout-container', standalone: true, template: "<!--\n * LICENSE\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n-->\n\n<ng-content></ng-content>\n@if (resizable) {\n <div class=\"atx-handle\" [class.atx-handle-selected]=\"selected\" (mousedown)=\"resizetart()\"></div>\n}\n", styles: [":host{box-sizing:border-box;padding:0;margin:0}:host.north{position:absolute;z-index:10;top:0;left:0;right:0}:host.north>.atx-handle{left:0;right:0;bottom:0;height:4px;cursor:ns-resize}:host.west{position:absolute;z-index:5;left:0;height:unset!important}:host.west>.atx-handle{right:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.east{position:absolute;z-index:5;right:0;height:unset!important}:host.east>.atx-handle{left:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host.south{position:absolute;z-index:10;bottom:0;left:0;right:0}:host.south>.atx-handle{left:0;right:0;top:0;height:4px;cursor:ns-resize}:host.center{position:absolute}.atx-handle{position:absolute}.atx-handle:hover,.atx-handle.atx-handle-selected{background-color:var(--atx-handle-color, #469afa)}\n/**\n * @license\n * Copyright Pascal ECHEMANN. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be found in\n * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
|
|
137
137
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{
|
|
138
138
|
type: HostBinding,
|
|
139
139
|
args: ['class']
|
|
@@ -15,8 +15,8 @@ import * as i0 from "@angular/core";
|
|
|
15
15
|
const ATX_VERSION_CONFIG = {
|
|
16
16
|
major: 1,
|
|
17
17
|
minor: 4,
|
|
18
|
-
patch:
|
|
19
|
-
buildTimestamp:
|
|
18
|
+
patch: 2,
|
|
19
|
+
buildTimestamp: 1728546812271
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
22
|
* The public service that exposes the current version of the Angular Toolbox library.
|
|
@@ -34,4 +34,4 @@ export class AngularToolboxVersionService extends AbstractVersionManager {
|
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxVersionService, decorators: [{
|
|
35
35
|
type: Injectable
|
|
36
36
|
}], ctorParameters: () => [] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10b29sYm94LXZlcnNpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL21vZGVsL3NlcnZpY2UvdmVyc2lvbi9hbmd1bGFyLXRvb2xib3gtdmVyc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd2RDs7O0dBR0c7QUFDSCxNQUFNLGtCQUFrQixHQUFrQjtJQUN4QyxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxDQUFDO0lBQ1IsS0FBSyxFQUFFLENBQUM7SUFDUixjQUFjLEVBQUUsYUFBYTtDQUM5QixDQUFDO0FBRUY7O0dBRUc7QUFFSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsc0JBQXNCO0lBRXRFOztPQUVHO0lBQ0g7UUFDRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQVBVLDRCQUE0QjtrSEFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdFZlcnNpb25NYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XHJcbmltcG9ydCB7IFZlcnNpb25Db25maWcgfSBmcm9tICcuLi8uLi9idXNpbmVzcyc7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgQW5ndWxhciBUb29sYm94IGxpYnJhcnkuXHJcbiAqL1xyXG5jb25zdCBBVFhfVkVSU0lPTl9DT05GSUc6IFZlcnNpb25Db25maWcgPSB7XHJcbiAgbWFqb3I6IDEsXHJcbiAgbWlub3I6IDQsXHJcbiAgcGF0Y2g6IDIsXHJcbiAgYnVpbGRUaW1lc3RhbXA6IDE3Mjg1NDY4MTIyNzFcclxufTtcclxuXHJcbi8qKlxyXG4gKiBUaGUgcHVibGljIHNlcnZpY2UgdGhhdCBleHBvc2VzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIEFuZ3VsYXIgVG9vbGJveCBsaWJyYXJ5LlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQW5ndWxhclRvb2xib3hWZXJzaW9uU2VydmljZSBleHRlbmRzIEFic3RyYWN0VmVyc2lvbk1hbmFnZXIge1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoQVRYX1ZFUlNJT05fQ09ORklHKTtcclxuICB9XHJcbn1cclxuIl19
|