angular-toolbox 1.4.0 → 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/framework/index.mjs +2 -1
- package/esm2022/lib/framework/mock/documentation/component/atx-mock-description/atx-mock-description.component.mjs +27 -0
- package/esm2022/lib/framework/mock/documentation/component/atx-mock-documentation/atx-mock-documentation.component.mjs +77 -0
- package/esm2022/lib/framework/mock/documentation/component/atx-mock-full-description/atx-mock-full-description.component.mjs +27 -0
- package/esm2022/lib/framework/mock/documentation/component/atx-mock-methods/atx-mock-methods.component.mjs +71 -0
- package/esm2022/lib/framework/mock/documentation/component/atx-mock-param/atx-mock-param.component.mjs +27 -0
- package/esm2022/lib/framework/mock/documentation/index.mjs +2 -0
- package/esm2022/lib/framework/mock/documentation/model/business/full-description.type.mjs +9 -0
- package/esm2022/lib/framework/mock/documentation/model/business/method-doc-descriptor.type.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-method-mock.mjs +1 -1
- package/esm2022/lib/model/business/mock/http/http-mock-config.mjs +1 -1
- package/esm2022/lib/model/business/mock/http/http-mock-endpoint-descriptor.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-mock-endpoint.mjs +1 -1
- package/esm2022/lib/model/business/mock/http/http-mock-interceptor.mjs +1 -1
- package/esm2022/lib/model/business/mock/http/http-mock-method-descriptor.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/http-mock-parameter-descriptor.mjs +9 -0
- package/esm2022/lib/model/business/mock/http/index.mjs +4 -1
- package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +3 -3
- package/fesm2022/angular-toolbox.mjs +297 -28
- 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/lib/framework/index.d.ts +1 -0
- package/lib/framework/mock/documentation/component/atx-mock-description/atx-mock-description.component.d.ts +14 -0
- package/lib/framework/mock/documentation/component/atx-mock-documentation/atx-mock-documentation.component.d.ts +43 -0
- package/lib/framework/mock/documentation/component/atx-mock-full-description/atx-mock-full-description.component.d.ts +15 -0
- package/lib/framework/mock/documentation/component/atx-mock-methods/atx-mock-methods.component.d.ts +29 -0
- package/lib/framework/mock/documentation/component/atx-mock-param/atx-mock-param.component.d.ts +15 -0
- package/lib/framework/mock/documentation/index.d.ts +1 -0
- package/lib/framework/mock/documentation/model/business/full-description.type.d.ts +21 -0
- package/lib/framework/mock/documentation/model/business/method-doc-descriptor.type.d.ts +22 -0
- package/lib/model/business/mock/http/http-method-mock.d.ts +5 -0
- package/lib/model/business/mock/http/http-mock-config.d.ts +4 -0
- package/lib/model/business/mock/http/http-mock-endpoint-descriptor.d.ts +21 -0
- package/lib/model/business/mock/http/http-mock-endpoint.d.ts +5 -0
- package/lib/model/business/mock/http/http-mock-interceptor.d.ts +4 -0
- package/lib/model/business/mock/http/http-mock-method-descriptor.d.ts +29 -0
- package/lib/model/business/mock/http/http-mock-parameter-descriptor.d.ts +20 -0
- package/lib/model/business/mock/http/index.d.ts +3 -0
- 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']
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './mock/http';
|
|
2
2
|
export * from './mock/http-monitoring-console';
|
|
3
|
+
export * from './mock/documentation';
|
|
3
4
|
export * from './logging';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCAqIGZyb20gJy4vbW9jay9odHRwJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2NrL2h0dHAtbW9uaXRvcmluZy1jb25zb2xlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2NrL2RvY3VtZW50YXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvZ2dpbmcnOyJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
import { Component, Input } from '@angular/core';
|
|
9
|
+
import { SafeHtmlPipe } from '../../../../../pipe';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
/**
|
|
12
|
+
* @private
|
|
13
|
+
* A conmponent that renders mock config description ppoperties.
|
|
14
|
+
*/
|
|
15
|
+
export class AtxMockDescriptionComponent {
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: AtxMockDescriptionComponent, isStandalone: true, selector: "atx-mock-description", inputs: { description: "description" }, ngImport: i0, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n<div [innerHTML]=\"description | safeHtml\"></div>\r\n", dependencies: [{ kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockDescriptionComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'atx-mock-description', standalone: true, imports: [
|
|
22
|
+
SafeHtmlPipe
|
|
23
|
+
], template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n\r\n<div [innerHTML]=\"description | safeHtml\"></div>\r\n" }]
|
|
24
|
+
}], propDecorators: { description: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}] } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LW1vY2stZGVzY3JpcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svZG9jdW1lbnRhdGlvbi9jb21wb25lbnQvYXR4LW1vY2stZGVzY3JpcHRpb24vYXR4LW1vY2stZGVzY3JpcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svZG9jdW1lbnRhdGlvbi9jb21wb25lbnQvYXR4LW1vY2stZGVzY3JpcHRpb24vYXR4LW1vY2stZGVzY3JpcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUVuRDs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sMkJBQTJCOzhHQUEzQiwyQkFBMkI7a0dBQTNCLDJCQUEyQix3SEN2QnhDLG1VQVNBLHVDRFVJLFlBQVk7OzJGQUlILDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7cUJBQ2I7OEJBVU0sV0FBVztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxyXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcGlwZSc7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogQSBjb25tcG9uZW50IHRoYXQgcmVuZGVycyBtb2NrIGNvbmZpZyBkZXNjcmlwdGlvbiBwcG9wZXJ0aWVzLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhdHgtbW9jay1kZXNjcmlwdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBTYWZlSHRtbFBpcGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdHgtbW9jay1kZXNjcmlwdGlvbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF0eE1vY2tEZXNjcmlwdGlvbkNvbXBvbmVudCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICogVGhlIGRlc2NyaXB0aW9uIHRvIHJlbmRlci4gQ2FuIGNvbnRhaW5zIEhUTUwgdGFncy5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkZXNjcmlwdGlvbiE6IHN0cmluZztcclxufVxyXG4iLCI8IS0tXHJcbiAqIExJQ0VOU0VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcclxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuLS0+XHJcblxyXG48ZGl2IFtpbm5lckhUTUxdPVwiZGVzY3JpcHRpb24gfCBzYWZlSHRtbFwiPjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
9
|
+
import { EMPTY_STRING } from '../../../../../util';
|
|
10
|
+
import { AtxMockParamComponent } from '../atx-mock-param/atx-mock-param.component';
|
|
11
|
+
import { AtxMockDescriptionComponent } from '../atx-mock-description/atx-mock-description.component';
|
|
12
|
+
import { AtxMockFullDescriptionComponent } from '../atx-mock-full-description/atx-mock-full-description.component';
|
|
13
|
+
import { AtxMockMethodsComponent } from '../atx-mock-methods/atx-mock-methods.component';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
const OPEN = "open";
|
|
19
|
+
/**
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
const DETAILS = "details";
|
|
23
|
+
/**
|
|
24
|
+
* An easy-to-use component that displays the documentation of a `HttpMockConfig` object.
|
|
25
|
+
*/
|
|
26
|
+
export class AtxMockDocumentation {
|
|
27
|
+
/**
|
|
28
|
+
* Gets or sets the `HttpMockConfig` object for which to display documentation.
|
|
29
|
+
*/
|
|
30
|
+
set config(value) {
|
|
31
|
+
this.configApi = value;
|
|
32
|
+
this.expanded = false;
|
|
33
|
+
}
|
|
34
|
+
get config() {
|
|
35
|
+
return this.configApi;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
constructor(elmRef) {
|
|
41
|
+
this.elmRef = elmRef;
|
|
42
|
+
/**
|
|
43
|
+
* @private
|
|
44
|
+
*/
|
|
45
|
+
this.expanded = false;
|
|
46
|
+
/**
|
|
47
|
+
* Specifies the title of the current display.
|
|
48
|
+
*/
|
|
49
|
+
this.title = "HTTP Mock API";
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @private
|
|
53
|
+
*/
|
|
54
|
+
toggleExpandState() {
|
|
55
|
+
const details = this.elmRef.nativeElement.querySelectorAll(DETAILS);
|
|
56
|
+
this.expanded = !this.expanded;
|
|
57
|
+
if (this.expanded)
|
|
58
|
+
return details.forEach((elm) => elm.setAttribute(OPEN, EMPTY_STRING));
|
|
59
|
+
details.forEach((elm) => elm.removeAttribute(OPEN));
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockDocumentation, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: AtxMockDocumentation, isStandalone: true, selector: "atx-mock-documentation", inputs: { title: "title", config: "config" }, ngImport: i0, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n \r\n@if (configApi) {\r\n <section>\r\n <h1>{{ title }}</h1>\r\n <h2>Description</h2>\r\n @if (configApi.description || configApi.origin) {\r\n <atx-mock-full-description [config]=\"configApi\"/>\r\n }\r\n </section>\r\n <section>\r\n <h2>Interceptors</h2>\r\n <button (click)=\"toggleExpandState()\">{{ expanded ? 'Collapse' : 'Expand' }} all</button>\r\n @if (configApi.interceptors) {\r\n @for (inteceptor of configApi.interceptors; track inteceptor) {\r\n <details>\r\n <summary>\r\n {{ inteceptor.id }}\r\n </summary>\r\n @if (inteceptor.description || inteceptor.origin) {\r\n <atx-mock-full-description [config]=\"inteceptor\"/>\r\n }\r\n @for (endpoint of inteceptor.endpoints; track endpoint; let last = $last) {\r\n <section class=\"endpoint\">\r\n <dl>\r\n <dt>route:</dt>\r\n <dd><code>{{ endpoint.route }}</code></dd>\r\n </dl>\r\n @if (endpoint.descriptor) {\r\n @if (endpoint.descriptor.description) {\r\n <atx-mock-description [description]=\"endpoint.descriptor.description\"/>\r\n }\r\n @if (endpoint.descriptor.params) {\r\n <h3>Parameters</h3>\r\n <atx-mock-param [params]=\"endpoint.descriptor.params\"/>\r\n }\r\n }\r\n <atx-mock-methods [endpoint]=\"endpoint\"/>\r\n </section>\r\n @if (!last) {\r\n <hr>\r\n }\r\n }\r\n </details>\r\n }\r\n }\r\n </section>\r\n}\r\n", styles: [":host,:host::ng-deep{font-family:Arial,Helvetica,sans-serif;line-height:1.5;-webkit-text-size-adjust:100%;margin:0;font-size:.95em}:host h1,:host h2,:host h3,:host h4,:host::ng-deep h1,:host::ng-deep h2,:host::ng-deep h3,:host::ng-deep h4{font-weight:700}:host h1,:host::ng-deep h1{font-size:1.5em;margin:.67em 0}:host h2,:host::ng-deep h2{font-size:1.25em}:host h3,:host::ng-deep h3{font-size:1em;text-decoration:underline}:host h4,:host::ng-deep h4{font-size:1em;margin:1em 0 0}:host hr,:host::ng-deep hr{box-sizing:content-box;height:0;overflow:visible}:host div,:host::ng-deep div{margin-top:1em;margin-bottom:1em}:host a,:host::ng-deep a{background-color:transparent}:host code,:host::ng-deep code{font-family:monospace,monospace;font-size:1.05em;color:orchid}:host button,:host::ng-deep button{font-family:inherit;font-size:.9em;line-height:1.15;margin:-45px 0 0;text-transform:none;padding:5px 10px;border:1px solid #aaa;border-radius:5px;float:right}:host details,:host::ng-deep details{display:block;border:1px solid #aaa;border-radius:4px;padding:.5em .5em 0;margin-bottom:.5em}:host summary,:host::ng-deep summary{display:list-item;font-weight:700;margin:-.5em -.5em 0;padding:.5em}:host details[open],:host::ng-deep details[open]{padding:.5em 1.5em}:host details[open] summary,:host::ng-deep details[open] summary{border-bottom:1px solid #aaa;margin-bottom:1em;padding:.5em 0}:host dl,:host::ng-deep dl{display:flex;margin:.5em 0}:host dt,:host::ng-deep dt{margin:0;font-weight:700}:host dd,:host::ng-deep dd{margin:0;margin-inline-start:10px}:host ul,:host::ng-deep ul{margin:0;padding-inline-start:40px;margin-block-start:1em;margin-block-end:1em}:host li,:host::ng-deep li{margin:0;display:flex;align-items:baseline}:host .endpoint,:host::ng-deep .endpoint{padding:.25em 1em;background-color:#eee;color:#000}:host .description,:host::ng-deep .description{margin-bottom:1em}:host span,:host::ng-deep span{text-transform:uppercase;display:inline-block;width:80px}:host .method-descriptor,:host::ng-deep .method-descriptor{line-height:.95em;margin:0}:host .method-descriptor dt,:host::ng-deep .method-descriptor dt{width:80px}:host .atx-mock-param-container,:host::ng-deep .atx-mock-param-container{padding-inline-start:40px;line-height:.95em}\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\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"], dependencies: [{ kind: "component", type: AtxMockParamComponent, selector: "atx-mock-param", inputs: ["params"] }, { kind: "component", type: AtxMockDescriptionComponent, selector: "atx-mock-description", inputs: ["description"] }, { kind: "component", type: AtxMockFullDescriptionComponent, selector: "atx-mock-full-description", inputs: ["config"] }, { kind: "component", type: AtxMockMethodsComponent, selector: "atx-mock-methods", inputs: ["endpoint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockDocumentation, decorators: [{
|
|
65
|
+
type: Component,
|
|
66
|
+
args: [{ selector: 'atx-mock-documentation', standalone: true, imports: [
|
|
67
|
+
AtxMockParamComponent,
|
|
68
|
+
AtxMockDescriptionComponent,
|
|
69
|
+
AtxMockFullDescriptionComponent,
|
|
70
|
+
AtxMockMethodsComponent
|
|
71
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n \r\n@if (configApi) {\r\n <section>\r\n <h1>{{ title }}</h1>\r\n <h2>Description</h2>\r\n @if (configApi.description || configApi.origin) {\r\n <atx-mock-full-description [config]=\"configApi\"/>\r\n }\r\n </section>\r\n <section>\r\n <h2>Interceptors</h2>\r\n <button (click)=\"toggleExpandState()\">{{ expanded ? 'Collapse' : 'Expand' }} all</button>\r\n @if (configApi.interceptors) {\r\n @for (inteceptor of configApi.interceptors; track inteceptor) {\r\n <details>\r\n <summary>\r\n {{ inteceptor.id }}\r\n </summary>\r\n @if (inteceptor.description || inteceptor.origin) {\r\n <atx-mock-full-description [config]=\"inteceptor\"/>\r\n }\r\n @for (endpoint of inteceptor.endpoints; track endpoint; let last = $last) {\r\n <section class=\"endpoint\">\r\n <dl>\r\n <dt>route:</dt>\r\n <dd><code>{{ endpoint.route }}</code></dd>\r\n </dl>\r\n @if (endpoint.descriptor) {\r\n @if (endpoint.descriptor.description) {\r\n <atx-mock-description [description]=\"endpoint.descriptor.description\"/>\r\n }\r\n @if (endpoint.descriptor.params) {\r\n <h3>Parameters</h3>\r\n <atx-mock-param [params]=\"endpoint.descriptor.params\"/>\r\n }\r\n }\r\n <atx-mock-methods [endpoint]=\"endpoint\"/>\r\n </section>\r\n @if (!last) {\r\n <hr>\r\n }\r\n }\r\n </details>\r\n }\r\n }\r\n </section>\r\n}\r\n", styles: [":host,:host::ng-deep{font-family:Arial,Helvetica,sans-serif;line-height:1.5;-webkit-text-size-adjust:100%;margin:0;font-size:.95em}:host h1,:host h2,:host h3,:host h4,:host::ng-deep h1,:host::ng-deep h2,:host::ng-deep h3,:host::ng-deep h4{font-weight:700}:host h1,:host::ng-deep h1{font-size:1.5em;margin:.67em 0}:host h2,:host::ng-deep h2{font-size:1.25em}:host h3,:host::ng-deep h3{font-size:1em;text-decoration:underline}:host h4,:host::ng-deep h4{font-size:1em;margin:1em 0 0}:host hr,:host::ng-deep hr{box-sizing:content-box;height:0;overflow:visible}:host div,:host::ng-deep div{margin-top:1em;margin-bottom:1em}:host a,:host::ng-deep a{background-color:transparent}:host code,:host::ng-deep code{font-family:monospace,monospace;font-size:1.05em;color:orchid}:host button,:host::ng-deep button{font-family:inherit;font-size:.9em;line-height:1.15;margin:-45px 0 0;text-transform:none;padding:5px 10px;border:1px solid #aaa;border-radius:5px;float:right}:host details,:host::ng-deep details{display:block;border:1px solid #aaa;border-radius:4px;padding:.5em .5em 0;margin-bottom:.5em}:host summary,:host::ng-deep summary{display:list-item;font-weight:700;margin:-.5em -.5em 0;padding:.5em}:host details[open],:host::ng-deep details[open]{padding:.5em 1.5em}:host details[open] summary,:host::ng-deep details[open] summary{border-bottom:1px solid #aaa;margin-bottom:1em;padding:.5em 0}:host dl,:host::ng-deep dl{display:flex;margin:.5em 0}:host dt,:host::ng-deep dt{margin:0;font-weight:700}:host dd,:host::ng-deep dd{margin:0;margin-inline-start:10px}:host ul,:host::ng-deep ul{margin:0;padding-inline-start:40px;margin-block-start:1em;margin-block-end:1em}:host li,:host::ng-deep li{margin:0;display:flex;align-items:baseline}:host .endpoint,:host::ng-deep .endpoint{padding:.25em 1em;background-color:#eee;color:#000}:host .description,:host::ng-deep .description{margin-bottom:1em}:host span,:host::ng-deep span{text-transform:uppercase;display:inline-block;width:80px}:host .method-descriptor,:host::ng-deep .method-descriptor{line-height:.95em;margin:0}:host .method-descriptor dt,:host::ng-deep .method-descriptor dt{width:80px}:host .atx-mock-param-container,:host::ng-deep .atx-mock-param-container{padding-inline-start:40px;line-height:.95em}\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\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\n */\n"] }]
|
|
72
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { title: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], config: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}] } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LW1vY2stZG9jdW1lbnRhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9kb2N1bWVudGF0aW9uL2NvbXBvbmVudC9hdHgtbW9jay1kb2N1bWVudGF0aW9uL2F0eC1tb2NrLWRvY3VtZW50YXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svZG9jdW1lbnRhdGlvbi9jb21wb25lbnQvYXR4LW1vY2stZG9jdW1lbnRhdGlvbi9hdHgtbW9jay1kb2N1bWVudGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7QUFFekY7O0dBRUc7QUFDSCxNQUFNLElBQUksR0FBVyxNQUFNLENBQUM7QUFFNUI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sR0FBVyxTQUFTLENBQUM7QUFFbEM7O0dBRUc7QUFjSCxNQUFNLE9BQU8sb0JBQW9CO0lBa0IvQjs7T0FFRztJQUNILElBQ1csTUFBTSxDQUFDLEtBQXFCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBb0IsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQTFCdEM7O1dBRUc7UUFDTyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRXBDOztXQUVHO1FBRUksVUFBSyxHQUFXLGVBQWUsQ0FBQztJQWlCRSxDQUFDO0lBRTFDOztPQUVHO0lBQ08saUJBQWlCO1FBQ3pCLE1BQU0sT0FBTyxHQUF5QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBdUIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM3RyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBdUIsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7OEdBM0NVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLGdJQzFDakMsdzFFQXNEQSxvZ0ZEckJJLHFCQUFxQiwrRUFDckIsMkJBQTJCLDBGQUMzQiwrQkFBK0IsMEZBQy9CLHVCQUF1Qjs7MkZBTWQsb0JBQW9CO2tCQWJoQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1A7d0JBQ1AscUJBQXFCO3dCQUNyQiwyQkFBMkI7d0JBQzNCLCtCQUErQjt3QkFDL0IsdUJBQXVCO3FCQUN4QixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTTsrRUFrQnhDLEtBQUs7c0JBRFgsS0FBSztnQkFPSyxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXHJcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cE1vY2tDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9tb2RlbCc7XHJcbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwnO1xyXG5pbXBvcnQgeyBBdHhNb2NrUGFyYW1Db21wb25lbnQgfSBmcm9tICcuLi9hdHgtbW9jay1wYXJhbS9hdHgtbW9jay1wYXJhbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdHhNb2NrRGVzY3JpcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9hdHgtbW9jay1kZXNjcmlwdGlvbi9hdHgtbW9jay1kZXNjcmlwdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdHhNb2NrRnVsbERlc2NyaXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYXR4LW1vY2stZnVsbC1kZXNjcmlwdGlvbi9hdHgtbW9jay1mdWxsLWRlc2NyaXB0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF0eE1vY2tNZXRob2RzQ29tcG9uZW50IH0gZnJvbSAnLi4vYXR4LW1vY2stbWV0aG9kcy9hdHgtbW9jay1tZXRob2RzLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IE9QRU46IHN0cmluZyA9IFwib3BlblwiO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5jb25zdCBERVRBSUxTOiBzdHJpbmcgPSBcImRldGFpbHNcIjtcclxuXHJcbi8qKlxyXG4gKiBBbiBlYXN5LXRvLXVzZSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyB0aGUgZG9jdW1lbnRhdGlvbiBvZiBhIGBIdHRwTW9ja0NvbmZpZ2Agb2JqZWN0LlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhdHgtbW9jay1kb2N1bWVudGF0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEF0eE1vY2tQYXJhbUNvbXBvbmVudCxcclxuICAgIEF0eE1vY2tEZXNjcmlwdGlvbkNvbXBvbmVudCxcclxuICAgIEF0eE1vY2tGdWxsRGVzY3JpcHRpb25Db21wb25lbnQsXHJcbiAgICBBdHhNb2NrTWV0aG9kc0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F0eC1tb2NrLWRvY3VtZW50YXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hdHgtbW9jay1kb2N1bWVudGF0aW9uLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR4TW9ja0RvY3VtZW50YXRpb24ge1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBjb25maWdBcGkhOiBIdHRwTW9ja0NvbmZpZztcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3BlY2lmaWVzIHRoZSB0aXRsZSBvZiB0aGUgY3VycmVudCBkaXNwbGF5LlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRpdGxlOiBzdHJpbmcgPSBcIkhUVFAgTW9jayBBUElcIjtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyBvciBzZXRzIHRoZSBgSHR0cE1vY2tDb25maWdgIG9iamVjdCBmb3Igd2hpY2ggdG8gZGlzcGxheSBkb2N1bWVudGF0aW9uLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjb25maWcodmFsdWU6IEh0dHBNb2NrQ29uZmlnKSB7XHJcbiAgICB0aGlzLmNvbmZpZ0FwaSA9IHZhbHVlO1xyXG4gICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBIdHRwTW9ja0NvbmZpZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdBcGk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxtUmVmOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB0b2dnbGVFeHBhbmRTdGF0ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRldGFpbHM6IEhUTUxEZXRhaWxzRWxlbWVudFtdID0gdGhpcy5lbG1SZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKERFVEFJTFMpO1xyXG4gICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xyXG4gICAgaWYgKHRoaXMuZXhwYW5kZWQpIHJldHVybiBkZXRhaWxzLmZvckVhY2goKGVsbTogSFRNTERldGFpbHNFbGVtZW50KSA9PiBlbG0uc2V0QXR0cmlidXRlKE9QRU4sIEVNUFRZX1NUUklORykpO1xyXG4gICAgZGV0YWlscy5mb3JFYWNoKChlbG06IEhUTUxEZXRhaWxzRWxlbWVudCkgPT4gZWxtLnJlbW92ZUF0dHJpYnV0ZShPUEVOKSk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS1cclxuICogTElDRU5TRVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxyXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4tLT5cclxuIFxyXG5AaWYgKGNvbmZpZ0FwaSkge1xyXG4gICAgPHNlY3Rpb24+XHJcbiAgICAgICAgPGgxPnt7IHRpdGxlIH19PC9oMT5cclxuICAgICAgICA8aDI+RGVzY3JpcHRpb248L2gyPlxyXG4gICAgICAgIEBpZiAoY29uZmlnQXBpLmRlc2NyaXB0aW9uIHx8IGNvbmZpZ0FwaS5vcmlnaW4pIHtcclxuICAgICAgICAgICAgPGF0eC1tb2NrLWZ1bGwtZGVzY3JpcHRpb24gW2NvbmZpZ109XCJjb25maWdBcGlcIi8+XHJcbiAgICAgICAgfVxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICAgPHNlY3Rpb24+XHJcbiAgICAgICAgPGgyPkludGVyY2VwdG9yczwvaDI+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlRXhwYW5kU3RhdGUoKVwiPnt7IGV4cGFuZGVkID8gJ0NvbGxhcHNlJyA6ICdFeHBhbmQnIH19IGFsbDwvYnV0dG9uPlxyXG4gICAgICAgIEBpZiAoY29uZmlnQXBpLmludGVyY2VwdG9ycykge1xyXG4gICAgICAgICAgICBAZm9yIChpbnRlY2VwdG9yIG9mIGNvbmZpZ0FwaS5pbnRlcmNlcHRvcnM7IHRyYWNrIGludGVjZXB0b3IpIHtcclxuICAgICAgICAgICAgICAgIDxkZXRhaWxzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdW1tYXJ5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpbnRlY2VwdG9yLmlkIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdW1tYXJ5PlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaW50ZWNlcHRvci5kZXNjcmlwdGlvbiB8fCBpbnRlY2VwdG9yLm9yaWdpbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXR4LW1vY2stZnVsbC1kZXNjcmlwdGlvbiBbY29uZmlnXT1cImludGVjZXB0b3JcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGVuZHBvaW50IG9mIGludGVjZXB0b3IuZW5kcG9pbnRzOyB0cmFjayBlbmRwb2ludDsgbGV0IGxhc3QgPSAkbGFzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImVuZHBvaW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0PnJvdXRlOjwvZHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkPjxjb2RlPnt7IGVuZHBvaW50LnJvdXRlIH19PC9jb2RlPjwvZGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChlbmRwb2ludC5kZXNjcmlwdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChlbmRwb2ludC5kZXNjcmlwdG9yLmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhdHgtbW9jay1kZXNjcmlwdGlvbiBbZGVzY3JpcHRpb25dPVwiZW5kcG9pbnQuZGVzY3JpcHRvci5kZXNjcmlwdGlvblwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChlbmRwb2ludC5kZXNjcmlwdG9yLnBhcmFtcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+UGFyYW1ldGVyczwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhdHgtbW9jay1wYXJhbSBbcGFyYW1zXT1cImVuZHBvaW50LmRlc2NyaXB0b3IucGFyYW1zXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhdHgtbW9jay1tZXRob2RzIFtlbmRwb2ludF09XCJlbmRwb2ludFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFsYXN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2RldGFpbHM+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICA8L3NlY3Rpb24+XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Pascal ECHEMANN. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
|
+
*/
|
|
8
|
+
import { Component, Input } from '@angular/core';
|
|
9
|
+
import { AtxMockDescriptionComponent } from '../atx-mock-description/atx-mock-description.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
/**
|
|
12
|
+
* @private
|
|
13
|
+
* A convenient component that displays the description and the origin of a mock config section.
|
|
14
|
+
*/
|
|
15
|
+
export class AtxMockFullDescriptionComponent {
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockFullDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: AtxMockFullDescriptionComponent, isStandalone: true, selector: "atx-mock-full-description", inputs: { config: "config" }, ngImport: i0, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n \r\n@if (config) {\r\n <div class=\"description\">\r\n @if (config.description) {\r\n <atx-mock-description [description]=\"config.description\"/>\r\n }\r\n @if (config.origin) {\r\n <dl>\r\n <dt>origin:</dt>\r\n <dd><a [href]=\"config.origin\" [title]=\"config.origin\"><code>{{ config.origin }}</code></a></dd>\r\n </dl>\r\n }\r\n </div>\r\n}\r\n", dependencies: [{ kind: "component", type: AtxMockDescriptionComponent, selector: "atx-mock-description", inputs: ["description"] }] }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockFullDescriptionComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ selector: 'atx-mock-full-description', standalone: true, imports: [
|
|
22
|
+
AtxMockDescriptionComponent
|
|
23
|
+
], template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n \r\n@if (config) {\r\n <div class=\"description\">\r\n @if (config.description) {\r\n <atx-mock-description [description]=\"config.description\"/>\r\n }\r\n @if (config.origin) {\r\n <dl>\r\n <dt>origin:</dt>\r\n <dd><a [href]=\"config.origin\" [title]=\"config.origin\"><code>{{ config.origin }}</code></a></dd>\r\n </dl>\r\n }\r\n </div>\r\n}\r\n" }]
|
|
24
|
+
}], propDecorators: { config: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}] } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR4LW1vY2stZnVsbC1kZXNjcmlwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9mcmFtZXdvcmsvbW9jay9kb2N1bWVudGF0aW9uL2NvbXBvbmVudC9hdHgtbW9jay1mdWxsLWRlc2NyaXB0aW9uL2F0eC1tb2NrLWZ1bGwtZGVzY3JpcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svZG9jdW1lbnRhdGlvbi9jb21wb25lbnQvYXR4LW1vY2stZnVsbC1kZXNjcmlwdGlvbi9hdHgtbW9jay1mdWxsLWRlc2NyaXB0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOztBQUdyRzs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sK0JBQStCOzhHQUEvQiwrQkFBK0I7a0dBQS9CLCtCQUErQixtSEN4QjVDLHVzQkFxQkEsNENEREksMkJBQTJCOzsyRkFJbEIsK0JBQStCO2tCQVIzQyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1A7d0JBQ1AsMkJBQTJCO3FCQUM1Qjs4QkFVTSxNQUFNO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcclxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcclxuICovXHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF0eE1vY2tEZXNjcmlwdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2F0eC1tb2NrLWRlc2NyaXB0aW9uL2F0eC1tb2NrLWRlc2NyaXB0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZ1bGxEZXNjcmlwdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL2J1c2luZXNzL2Z1bGwtZGVzY3JpcHRpb24udHlwZSc7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICogQSBjb252ZW5pZW50IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIHRoZSBkZXNjcmlwdGlvbiBhbmQgdGhlIG9yaWdpbiBvZiBhIG1vY2sgY29uZmlnIHNlY3Rpb24uXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F0eC1tb2NrLWZ1bGwtZGVzY3JpcHRpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQXR4TW9ja0Rlc2NyaXB0aW9uQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXR4LW1vY2stZnVsbC1kZXNjcmlwdGlvbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF0eE1vY2tGdWxsRGVzY3JpcHRpb25Db21wb25lbnQge1xyXG5cclxuICAvKipcclxuICAgKiBAcHVibGljXHJcbiAgICogVGhlIGNvbmZpZyBvYmplY3QgdGFodCBjb250YWlucyB0aGUgZGVzY3JpcHRpb24gdG8gZGlzcGxheS5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb25maWchOiBGdWxsRGVzY3JpcHRpb247XHJcbn1cclxuIiwiPCEtLVxyXG4gKiBMSUNFTlNFXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXHJcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbi0tPlxyXG4gXHJcbkBpZiAoY29uZmlnKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cclxuICAgICAgICBAaWYgKGNvbmZpZy5kZXNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICA8YXR4LW1vY2stZGVzY3JpcHRpb24gW2Rlc2NyaXB0aW9uXT1cImNvbmZpZy5kZXNjcmlwdGlvblwiLz5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmIChjb25maWcub3JpZ2luKSB7XHJcbiAgICAgICAgICAgIDxkbD5cclxuICAgICAgICAgICAgICAgIDxkdD5vcmlnaW46PC9kdD5cclxuICAgICAgICAgICAgICAgIDxkZD48YSBbaHJlZl09XCJjb25maWcub3JpZ2luXCIgW3RpdGxlXT1cImNvbmZpZy5vcmlnaW5cIj48Y29kZT57eyBjb25maWcub3JpZ2luIH19PC9jb2RlPjwvYT48L2RkPlxyXG4gICAgICAgICAgICA8L2RsPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG59XHJcbiJdfQ==
|