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.
Files changed (44) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/component/layout/border-layout/border-layout.component.mjs +15 -11
  3. package/esm2022/lib/component/layout/border-layout/util/border-layout-renderer.mjs +48 -15
  4. package/esm2022/lib/component/layout/border-layout-container/border-layout-container.component.mjs +2 -2
  5. package/esm2022/lib/framework/index.mjs +2 -1
  6. package/esm2022/lib/framework/mock/documentation/component/atx-mock-description/atx-mock-description.component.mjs +27 -0
  7. package/esm2022/lib/framework/mock/documentation/component/atx-mock-documentation/atx-mock-documentation.component.mjs +77 -0
  8. package/esm2022/lib/framework/mock/documentation/component/atx-mock-full-description/atx-mock-full-description.component.mjs +27 -0
  9. package/esm2022/lib/framework/mock/documentation/component/atx-mock-methods/atx-mock-methods.component.mjs +71 -0
  10. package/esm2022/lib/framework/mock/documentation/component/atx-mock-param/atx-mock-param.component.mjs +27 -0
  11. package/esm2022/lib/framework/mock/documentation/index.mjs +2 -0
  12. package/esm2022/lib/framework/mock/documentation/model/business/full-description.type.mjs +9 -0
  13. package/esm2022/lib/framework/mock/documentation/model/business/method-doc-descriptor.type.mjs +9 -0
  14. package/esm2022/lib/model/business/mock/http/http-method-mock.mjs +1 -1
  15. package/esm2022/lib/model/business/mock/http/http-mock-config.mjs +1 -1
  16. package/esm2022/lib/model/business/mock/http/http-mock-endpoint-descriptor.mjs +9 -0
  17. package/esm2022/lib/model/business/mock/http/http-mock-endpoint.mjs +1 -1
  18. package/esm2022/lib/model/business/mock/http/http-mock-interceptor.mjs +1 -1
  19. package/esm2022/lib/model/business/mock/http/http-mock-method-descriptor.mjs +9 -0
  20. package/esm2022/lib/model/business/mock/http/http-mock-parameter-descriptor.mjs +9 -0
  21. package/esm2022/lib/model/business/mock/http/index.mjs +4 -1
  22. package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +3 -3
  23. package/fesm2022/angular-toolbox.mjs +297 -28
  24. package/fesm2022/angular-toolbox.mjs.map +1 -1
  25. package/lib/component/layout/border-layout/border-layout.component.d.ts +1 -1
  26. package/lib/component/layout/border-layout/util/border-layout-renderer.d.ts +17 -1
  27. package/lib/framework/index.d.ts +1 -0
  28. package/lib/framework/mock/documentation/component/atx-mock-description/atx-mock-description.component.d.ts +14 -0
  29. package/lib/framework/mock/documentation/component/atx-mock-documentation/atx-mock-documentation.component.d.ts +43 -0
  30. package/lib/framework/mock/documentation/component/atx-mock-full-description/atx-mock-full-description.component.d.ts +15 -0
  31. package/lib/framework/mock/documentation/component/atx-mock-methods/atx-mock-methods.component.d.ts +29 -0
  32. package/lib/framework/mock/documentation/component/atx-mock-param/atx-mock-param.component.d.ts +15 -0
  33. package/lib/framework/mock/documentation/index.d.ts +1 -0
  34. package/lib/framework/mock/documentation/model/business/full-description.type.d.ts +21 -0
  35. package/lib/framework/mock/documentation/model/business/method-doc-descriptor.type.d.ts +22 -0
  36. package/lib/model/business/mock/http/http-method-mock.d.ts +5 -0
  37. package/lib/model/business/mock/http/http-mock-config.d.ts +4 -0
  38. package/lib/model/business/mock/http/http-mock-endpoint-descriptor.d.ts +21 -0
  39. package/lib/model/business/mock/http/http-mock-endpoint.d.ts +5 -0
  40. package/lib/model/business/mock/http/http-mock-interceptor.d.ts +4 -0
  41. package/lib/model/business/mock/http/http-mock-method-descriptor.d.ts +29 -0
  42. package/lib/model/business/mock/http/http-mock-parameter-descriptor.d.ts +20 -0
  43. package/lib/model/business/mock/http/index.d.ts +3 -0
  44. package/package.json +1 -1
@@ -586,8 +586,8 @@ class AbstractVersionManager {
586
586
  const ATX_VERSION_CONFIG = {
587
587
  major: 1,
588
588
  minor: 4,
589
- patch: 0,
590
- buildTimestamp: 1727357519168
589
+ patch: 2,
590
+ buildTimestamp: 1728546812271
591
591
  };
592
592
  /**
593
593
  * The public service that exposes the current version of the Angular Toolbox library.
@@ -1332,6 +1332,30 @@ var DropdownEventType;
1332
1332
  * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
1333
1333
  */
1334
1334
 
1335
+ /**
1336
+ * @license
1337
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
1338
+ *
1339
+ * Use of this source code is governed by an MIT-style license that can be found in
1340
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
1341
+ */
1342
+
1343
+ /**
1344
+ * @license
1345
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
1346
+ *
1347
+ * Use of this source code is governed by an MIT-style license that can be found in
1348
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
1349
+ */
1350
+
1351
+ /**
1352
+ * @license
1353
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
1354
+ *
1355
+ * Use of this source code is governed by an MIT-style license that can be found in
1356
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
1357
+ */
1358
+
1335
1359
  /**
1336
1360
  * @license
1337
1361
  * Copyright Pascal ECHEMANN. All Rights Reserved.
@@ -7835,6 +7859,215 @@ const httpMockFactory = () => {
7835
7859
  return new XhrProxyFactoryImpl(inject(HttpMockService), inject(HttpMockLoggingService));
7836
7860
  };
7837
7861
 
7862
+ /**
7863
+ * @license
7864
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
7865
+ *
7866
+ * Use of this source code is governed by an MIT-style license that can be
7867
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7868
+ */
7869
+ /**
7870
+ * @private
7871
+ * Displays documentation for HTTP fragment parameters, or query parameters.
7872
+ */
7873
+ class AtxMockParamComponent {
7874
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockParamComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7875
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: AtxMockParamComponent, isStandalone: true, selector: "atx-mock-param", inputs: { params: "params" }, 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 (params) {\r\n <div class=\"atx-mock-param-container\">\r\n @for (param of params; track param) {\r\n <dl class=\"param\">\r\n <dt><code>{{ param.ref }}</code></dt>\r\n <dd [innerHTML]=\"param.description | safeHtml\"></dd>\r\n </dl>\r\n }\r\n </div>\r\n}\r\n", styles: [".param dt{font-weight:400;min-width:70px}.param dt:before{padding-right:.2em;content:\"-\"}\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: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] }); }
7876
+ }
7877
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockParamComponent, decorators: [{
7878
+ type: Component,
7879
+ args: [{ selector: 'atx-mock-param', standalone: true, imports: [
7880
+ SafeHtmlPipe
7881
+ ], 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 (params) {\r\n <div class=\"atx-mock-param-container\">\r\n @for (param of params; track param) {\r\n <dl class=\"param\">\r\n <dt><code>{{ param.ref }}</code></dt>\r\n <dd [innerHTML]=\"param.description | safeHtml\"></dd>\r\n </dl>\r\n }\r\n </div>\r\n}\r\n", styles: [".param dt{font-weight:400;min-width:70px}.param dt:before{padding-right:.2em;content:\"-\"}\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"] }]
7882
+ }], propDecorators: { params: [{
7883
+ type: Input
7884
+ }] } });
7885
+
7886
+ /**
7887
+ * @license
7888
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
7889
+ *
7890
+ * Use of this source code is governed by an MIT-style license that can be
7891
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7892
+ */
7893
+ /**
7894
+ * @private
7895
+ * A conmponent that renders mock config description ppoperties.
7896
+ */
7897
+ class AtxMockDescriptionComponent {
7898
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7899
+ 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" }] }); }
7900
+ }
7901
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockDescriptionComponent, decorators: [{
7902
+ type: Component,
7903
+ args: [{ selector: 'atx-mock-description', standalone: true, imports: [
7904
+ SafeHtmlPipe
7905
+ ], 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" }]
7906
+ }], propDecorators: { description: [{
7907
+ type: Input
7908
+ }] } });
7909
+
7910
+ /**
7911
+ * @license
7912
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
7913
+ *
7914
+ * Use of this source code is governed by an MIT-style license that can be
7915
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7916
+ */
7917
+ /**
7918
+ * @private
7919
+ * A convenient component that displays the description and the origin of a mock config section.
7920
+ */
7921
+ class AtxMockFullDescriptionComponent {
7922
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockFullDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7923
+ 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"] }] }); }
7924
+ }
7925
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockFullDescriptionComponent, decorators: [{
7926
+ type: Component,
7927
+ args: [{ selector: 'atx-mock-full-description', standalone: true, imports: [
7928
+ AtxMockDescriptionComponent
7929
+ ], 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" }]
7930
+ }], propDecorators: { config: [{
7931
+ type: Input
7932
+ }] } });
7933
+
7934
+ /**
7935
+ * @license
7936
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
7937
+ *
7938
+ * Use of this source code is governed by an MIT-style license that can be
7939
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
7940
+ */
7941
+ /**
7942
+ * @private
7943
+ */
7944
+ const ROUTE = "route";
7945
+ /**
7946
+ * @private
7947
+ */
7948
+ const DESCRIPTOR = "descriptor";
7949
+ /**
7950
+ * @private
7951
+ * A convenient component that allows to display documentation for HTTP methods of an endpoint.
7952
+ */
7953
+ class AtxMockMethodsComponent {
7954
+ constructor() {
7955
+ /**
7956
+ * @private
7957
+ */
7958
+ this.methods = [];
7959
+ }
7960
+ /**
7961
+ * @private
7962
+ * The endpoint for which to show HTTP methods documentation.
7963
+ */
7964
+ set endpoint(value) {
7965
+ this._endpoint = value;
7966
+ this.methods = this.initMethodList(value);
7967
+ }
7968
+ get endpoint() {
7969
+ return this._endpoint;
7970
+ }
7971
+ /**
7972
+ * @private
7973
+ */
7974
+ initMethodList(endpoint) {
7975
+ const keys = Object.keys(endpoint);
7976
+ const methods = [];
7977
+ keys.forEach(key => {
7978
+ if (key !== ROUTE && key !== DESCRIPTOR) {
7979
+ const mock = endpoint[key];
7980
+ methods.push({
7981
+ method: key,
7982
+ descriptor: mock.descriptor
7983
+ });
7984
+ }
7985
+ });
7986
+ return methods;
7987
+ }
7988
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockMethodsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7989
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: AtxMockMethodsComponent, isStandalone: true, selector: "atx-mock-methods", inputs: { endpoint: "endpoint" }, 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 (methods.length) {\r\n <h3>Methods</h3>\r\n <ul>\r\n @for (item of methods; track item; let last = $last) {\r\n <li>\r\n <span>{{ item.method }}</span>\r\n @if (item.descriptor) {\r\n <div class=\"method-descriptor\">\r\n @if (item.descriptor.description) {\r\n <atx-mock-description [description]=\"item.descriptor.description\"/>\r\n }\r\n @if (item.descriptor.payload) {\r\n <dl>\r\n <dt>payload:</dt>\r\n <dd [innerHTML]=\"item.descriptor.payload\"></dd>\r\n </dl>\r\n }\r\n @if (item.descriptor.body) {\r\n <dl>\r\n <dt>body:</dt>\r\n <dd [innerHTML]=\"item.descriptor.body\"></dd>\r\n </dl>\r\n }\r\n @if (item.descriptor.queryParams) {\r\n <h4>Query Parameters</h4>\r\n <atx-mock-param [params]=\"item.descriptor.queryParams\"/>\r\n }\r\n </div>\r\n \r\n }\r\n </li>\r\n @if (!last) {\r\n <hr>\r\n }\r\n }\r\n </ul>\r\n}\r\n", dependencies: [{ kind: "component", type: AtxMockParamComponent, selector: "atx-mock-param", inputs: ["params"] }, { kind: "component", type: AtxMockDescriptionComponent, selector: "atx-mock-description", inputs: ["description"] }] }); }
7990
+ }
7991
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockMethodsComponent, decorators: [{
7992
+ type: Component,
7993
+ args: [{ selector: 'atx-mock-methods', standalone: true, imports: [
7994
+ AtxMockParamComponent,
7995
+ AtxMockDescriptionComponent
7996
+ ], 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 (methods.length) {\r\n <h3>Methods</h3>\r\n <ul>\r\n @for (item of methods; track item; let last = $last) {\r\n <li>\r\n <span>{{ item.method }}</span>\r\n @if (item.descriptor) {\r\n <div class=\"method-descriptor\">\r\n @if (item.descriptor.description) {\r\n <atx-mock-description [description]=\"item.descriptor.description\"/>\r\n }\r\n @if (item.descriptor.payload) {\r\n <dl>\r\n <dt>payload:</dt>\r\n <dd [innerHTML]=\"item.descriptor.payload\"></dd>\r\n </dl>\r\n }\r\n @if (item.descriptor.body) {\r\n <dl>\r\n <dt>body:</dt>\r\n <dd [innerHTML]=\"item.descriptor.body\"></dd>\r\n </dl>\r\n }\r\n @if (item.descriptor.queryParams) {\r\n <h4>Query Parameters</h4>\r\n <atx-mock-param [params]=\"item.descriptor.queryParams\"/>\r\n }\r\n </div>\r\n \r\n }\r\n </li>\r\n @if (!last) {\r\n <hr>\r\n }\r\n }\r\n </ul>\r\n}\r\n" }]
7997
+ }], propDecorators: { endpoint: [{
7998
+ type: Input
7999
+ }] } });
8000
+
8001
+ /**
8002
+ * @license
8003
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
8004
+ *
8005
+ * Use of this source code is governed by an MIT-style license that can be
8006
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
8007
+ */
8008
+ /**
8009
+ * @private
8010
+ */
8011
+ const OPEN = "open";
8012
+ /**
8013
+ * @private
8014
+ */
8015
+ const DETAILS = "details";
8016
+ /**
8017
+ * An easy-to-use component that displays the documentation of a `HttpMockConfig` object.
8018
+ */
8019
+ class AtxMockDocumentation {
8020
+ /**
8021
+ * Gets or sets the `HttpMockConfig` object for which to display documentation.
8022
+ */
8023
+ set config(value) {
8024
+ this.configApi = value;
8025
+ this.expanded = false;
8026
+ }
8027
+ get config() {
8028
+ return this.configApi;
8029
+ }
8030
+ /**
8031
+ * @private
8032
+ */
8033
+ constructor(elmRef) {
8034
+ this.elmRef = elmRef;
8035
+ /**
8036
+ * @private
8037
+ */
8038
+ this.expanded = false;
8039
+ /**
8040
+ * Specifies the title of the current display.
8041
+ */
8042
+ this.title = "HTTP Mock API";
8043
+ }
8044
+ /**
8045
+ * @private
8046
+ */
8047
+ toggleExpandState() {
8048
+ const details = this.elmRef.nativeElement.querySelectorAll(DETAILS);
8049
+ this.expanded = !this.expanded;
8050
+ if (this.expanded)
8051
+ return details.forEach((elm) => elm.setAttribute(OPEN, EMPTY_STRING));
8052
+ details.forEach((elm) => elm.removeAttribute(OPEN));
8053
+ }
8054
+ 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 }); }
8055
+ 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 }); }
8056
+ }
8057
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AtxMockDocumentation, decorators: [{
8058
+ type: Component,
8059
+ args: [{ selector: 'atx-mock-documentation', standalone: true, imports: [
8060
+ AtxMockParamComponent,
8061
+ AtxMockDescriptionComponent,
8062
+ AtxMockFullDescriptionComponent,
8063
+ AtxMockMethodsComponent
8064
+ ], 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"] }]
8065
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { title: [{
8066
+ type: Input
8067
+ }], config: [{
8068
+ type: Input
8069
+ }] } });
8070
+
7838
8071
  /**
7839
8072
  * @license
7840
8073
  * Copyright Pascal ECHEMANN. All Rights Reserved.
@@ -8556,11 +8789,11 @@ class BorderLayoutContainer {
8556
8789
  this.resizable = true;
8557
8790
  }
8558
8791
  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 }); }
8559
- 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"] }); }
8792
+ 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"] }); }
8560
8793
  }
8561
8794
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayoutContainer, decorators: [{
8562
8795
  type: Component,
8563
- 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"] }]
8796
+ 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"] }]
8564
8797
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{
8565
8798
  type: HostBinding,
8566
8799
  args: ['class']
@@ -8809,17 +9042,26 @@ class BorderLayoutRenderer extends IdentifiableComponent {
8809
9042
  /**
8810
9043
  * @private
8811
9044
  */
8812
- constructor(subscribeSvc) {
9045
+ constructor(subscribeSvc, document) {
8813
9046
  super();
8814
9047
  this.subscribeSvc = subscribeSvc;
9048
+ this.document = document;
8815
9049
  /**
8816
9050
  * Emits events each time the user starts, or stops dragging handle.
8817
9051
  */
8818
- this.userAction = new EventEmitter(false);
9052
+ this.userAction = new EventEmitter();
8819
9053
  /**
8820
9054
  * @private
8821
9055
  */
8822
9056
  this.containerList = [];
9057
+ /**
9058
+ * @private
9059
+ */
9060
+ this.storedStopHandler = null;
9061
+ /**
9062
+ * @private
9063
+ */
9064
+ this.storedMoveHandler = null;
8823
9065
  this.boundsManager = new BorderLayoutBoundsManager();
8824
9066
  }
8825
9067
  /**
@@ -8866,12 +9108,17 @@ class BorderLayoutRenderer extends IdentifiableComponent {
8866
9108
  * Makes this object elligible for garbage collection.
8867
9109
  */
8868
9110
  destroy() {
9111
+ if (this.storedStopHandler) {
9112
+ this.document.removeEventListener(MOUSEMOVE, this.storedMoveHandler);
9113
+ this.document.removeEventListener(MOUSEUP, this.storedStopHandler);
9114
+ this.deleteStoredHandlers();
9115
+ }
8869
9116
  this.subscribeSvc.clearAll(this);
8870
- this.containerList.length = 0;
8871
- this.containerList = null;
8872
9117
  this.lytContainerElm = null;
8873
9118
  this.boundsManager.destroy();
8874
9119
  this.boundsManager = null;
9120
+ this.containerList.length = 0;
9121
+ this.containerList = null;
8875
9122
  }
8876
9123
  /**
8877
9124
  * Forces the layout of all `BorderLayoutContainer` objects associated with the main container.
@@ -8914,32 +9161,36 @@ class BorderLayoutRenderer extends IdentifiableComponent {
8914
9161
  const region = constraints.region;
8915
9162
  const minSize = constraints.minSize;
8916
9163
  const maxSize = constraints.maxSize;
9164
+ const doc = this.document;
8917
9165
  let size = 0;
8918
9166
  this.boundsManager.setOrigin(bounds.x, bounds.y);
8919
9167
  let resizeMethod = this.boundsManager.getResizeMethod(region);
8920
9168
  container.selected = true;
8921
9169
  const onMoveHandler = (event) => {
8922
- event.preventDefault();
8923
9170
  event.stopPropagation();
9171
+ event.preventDefault();
8924
9172
  size = resizeMethod(event, width, height, minSize, maxSize);
8925
9173
  container.setSize(size);
8926
9174
  this.render(width);
8927
9175
  this.fireEvent(container, LayoutDragEventType.DRAGGING);
8928
9176
  };
8929
9177
  const onStopHandler = (event) => {
8930
- event.preventDefault();
8931
9178
  event.stopPropagation();
8932
- lytNativeElm.removeEventListener(MOUSEMOVE, onMoveHandler);
8933
- lytNativeElm.removeEventListener(MOUSEUP, onStopHandler);
9179
+ event.preventDefault();
9180
+ doc.removeEventListener(MOUSEMOVE, onMoveHandler);
9181
+ doc.removeEventListener(MOUSEUP, onStopHandler);
9182
+ this.deleteStoredHandlers();
8934
9183
  container.selected = false;
8935
9184
  size = resizeMethod(event, width, height, minSize, maxSize);
8936
9185
  container.setSize(size);
8937
9186
  this.render(width);
8938
9187
  this.fireEvent(container, LayoutDragEventType.DRAG_STOP);
8939
9188
  };
8940
- lytNativeElm.addEventListener(MOUSEMOVE, onMoveHandler);
8941
- lytNativeElm.addEventListener(MOUSEUP, onStopHandler);
9189
+ this.storedMoveHandler = onMoveHandler;
9190
+ this.storedStopHandler = onStopHandler;
8942
9191
  this.fireEvent(container, LayoutDragEventType.DRAG_START);
9192
+ doc.addEventListener(MOUSEMOVE, onMoveHandler);
9193
+ doc.addEventListener(MOUSEUP, onStopHandler);
8943
9194
  }
8944
9195
  /**
8945
9196
  * @private
@@ -8957,32 +9208,47 @@ class BorderLayoutRenderer extends IdentifiableComponent {
8957
9208
  const bottom = bounds.bottom;
8958
9209
  const left = bounds.left;
8959
9210
  const right = bounds.right;
8960
- this.containerList.forEach((cont) => {
9211
+ const cList = this.containerList;
9212
+ let cursor = cList.length - 1;
9213
+ while (cursor >= 0) {
9214
+ const cont = cList[cursor];
8961
9215
  const r = cont.constraints.region;
9216
+ cursor--;
8962
9217
  if (r === LayoutRegion.WEST) {
8963
9218
  cont.setTopPos(top);
8964
9219
  cont.setRightPos(width - left);
8965
9220
  cont.setBottomPos(bottom - top);
8966
- return;
9221
+ continue;
8967
9222
  }
8968
9223
  if (r === LayoutRegion.CENTER) {
8969
9224
  cont.setTopPos(top);
8970
9225
  cont.setLeftPos(left);
8971
9226
  cont.setRightPos(right - left);
8972
9227
  cont.setBottomPos(bottom - top);
8973
- return;
9228
+ continue;
8974
9229
  }
8975
9230
  if (r === LayoutRegion.EAST) {
8976
9231
  cont.setTopPos(top);
8977
9232
  cont.setLeftPos(width - (right - left));
8978
9233
  cont.setBottomPos(bottom - top);
9234
+ continue;
8979
9235
  }
8980
- });
9236
+ }
9237
+ ;
8981
9238
  }
9239
+ /**
9240
+ * @private
9241
+ */
8982
9242
  checkLytContainer() {
8983
9243
  if (!this.lytContainerElm)
8984
9244
  throw new ReferenceError(LAYOUT_ERR_MSG);
8985
9245
  }
9246
+ /**
9247
+ * @private
9248
+ */
9249
+ deleteStoredHandlers() {
9250
+ this.storedMoveHandler = this.storedStopHandler = null;
9251
+ }
8986
9252
  }
8987
9253
 
8988
9254
  /**
@@ -9014,22 +9280,22 @@ class BorderLayout extends IdentifiableComponent {
9014
9280
  /**
9015
9281
  * @private
9016
9282
  */
9017
- constructor(subscribeSvc) {
9283
+ constructor(subscribeSvc, document) {
9018
9284
  super();
9019
9285
  this.subscribeSvc = subscribeSvc;
9020
9286
  /**
9021
9287
  * Emits events each time the user starts dragging a region handle.
9022
9288
  */
9023
- this.dragStart = new EventEmitter(false);
9289
+ this.dragStart = new EventEmitter();
9024
9290
  /**
9025
9291
  * Emits events each time the user stops dragging a region handle.
9026
9292
  */
9027
- this.dragStop = new EventEmitter(false);
9293
+ this.dragStop = new EventEmitter();
9028
9294
  /**
9029
9295
  * Emits events each time the user is dragging a region handle.
9030
9296
  */
9031
- this.dragging = new EventEmitter(false);
9032
- this.renderer = new BorderLayoutRenderer(subscribeSvc);
9297
+ this.dragging = new EventEmitter();
9298
+ this.renderer = new BorderLayoutRenderer(subscribeSvc, document);
9033
9299
  subscribeSvc.register(this, this.renderer.userAction.subscribe((event) => {
9034
9300
  event.layout = this;
9035
9301
  if (event.type === LayoutDragEventType.DRAGGING) {
@@ -9081,13 +9347,16 @@ class BorderLayout extends IdentifiableComponent {
9081
9347
  resizeRegion(region, size) {
9082
9348
  this.renderer.resizeRegion(region, size);
9083
9349
  }
9084
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayout, deps: [{ token: SubscriptionService }], target: i0.ɵɵFactoryTarget.Component }); }
9085
- 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,.atx-border-layout *{box-sizing:border-box}.atx-border-layout .content{height:100%;width:100%;overflow:auto}.atx-border-layout .drag{position:absolute;border:2px solid black}:host ::ng-deep .atx-handle{position:absolute}:host ::ng-deep .atx-handle:hover,:host ::ng-deep .atx-handle.atx-handle-selected{background-color:var(--atx-handle-color, #469afa)}:host ::ng-deep .north{position:absolute;z-index:10;top:0;left:0;right:0}:host ::ng-deep .north .atx-handle{left:0;right:0;bottom:0;height:4px;cursor:ns-resize}:host ::ng-deep .west{position:absolute;z-index:5;left:0;height:unset!important}:host ::ng-deep .west .atx-handle{right:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host ::ng-deep .east{position:absolute;z-index:5;right:0;height:unset!important}:host ::ng-deep .east .atx-handle{left:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host ::ng-deep .south{position:absolute;z-index:10;bottom:0;left:0;right:0}:host ::ng-deep .south .atx-handle{left:0;right:0;top:0;height:4px;cursor:ns-resize}:host ::ng-deep .center{position:absolute}\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"] }); }
9350
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayout, deps: [{ token: SubscriptionService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
9351
+ 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"] }); }
9086
9352
  }
9087
9353
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: BorderLayout, decorators: [{
9088
9354
  type: Component,
9089
- 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,.atx-border-layout *{box-sizing:border-box}.atx-border-layout .content{height:100%;width:100%;overflow:auto}.atx-border-layout .drag{position:absolute;border:2px solid black}:host ::ng-deep .atx-handle{position:absolute}:host ::ng-deep .atx-handle:hover,:host ::ng-deep .atx-handle.atx-handle-selected{background-color:var(--atx-handle-color, #469afa)}:host ::ng-deep .north{position:absolute;z-index:10;top:0;left:0;right:0}:host ::ng-deep .north .atx-handle{left:0;right:0;bottom:0;height:4px;cursor:ns-resize}:host ::ng-deep .west{position:absolute;z-index:5;left:0;height:unset!important}:host ::ng-deep .west .atx-handle{right:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host ::ng-deep .east{position:absolute;z-index:5;right:0;height:unset!important}:host ::ng-deep .east .atx-handle{left:0;bottom:0;top:0;width:4px;cursor:ew-resize}:host ::ng-deep .south{position:absolute;z-index:10;bottom:0;left:0;right:0}:host ::ng-deep .south .atx-handle{left:0;right:0;top:0;height:4px;cursor:ns-resize}:host ::ng-deep .center{position:absolute}\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"] }]
9090
- }], ctorParameters: () => [{ type: SubscriptionService }], propDecorators: { dragStart: [{
9355
+ 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"] }]
9356
+ }], ctorParameters: () => [{ type: SubscriptionService }, { type: Document, decorators: [{
9357
+ type: Inject,
9358
+ args: [DOCUMENT]
9359
+ }] }], propDecorators: { dragStart: [{
9091
9360
  type: Output
9092
9361
  }], dragStop: [{
9093
9362
  type: Output
@@ -9406,5 +9675,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
9406
9675
  * Generated bundle index. Do not edit.
9407
9676
  */
9408
9677
 
9409
- export { APP_PRIDGE_REF, ATX_LOGGER_CONFIG, AbstractLogger, AbstractSubscriptionManager, AbstractVersionManager, AbstractWindowService, AnchorLinklDirective, AngularToolboxLogoComponent, AngularToolboxModule, AngularToolboxVersionService, AppBridgeError, AppBridgeService, ArrayList, ArrayListEvent, ArrayListEventType, AtxHttpMockConsoleService, AtxMonitoringConsoleComponent, BIGINT, BOOLEAN, BUTTON_ROLE, BorderLayout, BorderLayoutContainer, ButtonRoleDirective, CSS_PROP, ConsoleLogConnector, ContentRendererDirective, DARK_MODE_CONFIG, DEFAULT_LOG_CONNECTOR, DarkModeService, DefaultLogConnector, DropdownComponent, DropdownEvent, DropdownEventType, EMPTY_STRING, FEATURES, FUNCTION, FetchClient, FetchClientBuilder, FetchClientResponseType, HTTP_MOCKING_FRAMEWORK_CONFIG, HTTP_MOCK_MAX_DELAY, HTTP_MOCK_SERVICE, HtmlLogConnector, HttpHeadersMockBuilder, HttpMock, HttpMockLoggingService, HttpMockProductionPolicy, HttpMockService, HttpMockServiceError, HttpResponseMockBuilder, HttpStatusText, HttpStatusTextFinder, IdentifiableComponent, IntegrityError, LINK_ROLE, LOG_CONFIG_STRING, LOG_ERROR_STRING, LOG_INFO_STRING, LOG_WARNING_STRING, LayoutDragEvent, LayoutDragEventType, LayoutRegion, LogBuilder, LogImpl, LogLevel, LogUtil, LoggerService, NUMBER, NavigateToUrlDirective, OBJECT, STORAGE_KEY, STRING, SYMBOL, SafeHtmlPipe, ScrollService, SubscriptionError, SubscriptionService, UNDEFINED, Uuid, VERSION_CONFIG, VersionService, VersionUtil, WindowFeatureState, WindowService, WindowTarget, httpHeadersMock, httpMockFactory, httpResponseMock };
9678
+ export { APP_PRIDGE_REF, ATX_LOGGER_CONFIG, AbstractLogger, AbstractSubscriptionManager, AbstractVersionManager, AbstractWindowService, AnchorLinklDirective, AngularToolboxLogoComponent, AngularToolboxModule, AngularToolboxVersionService, AppBridgeError, AppBridgeService, ArrayList, ArrayListEvent, ArrayListEventType, AtxHttpMockConsoleService, AtxMockDocumentation, AtxMonitoringConsoleComponent, BIGINT, BOOLEAN, BUTTON_ROLE, BorderLayout, BorderLayoutContainer, ButtonRoleDirective, CSS_PROP, ConsoleLogConnector, ContentRendererDirective, DARK_MODE_CONFIG, DEFAULT_LOG_CONNECTOR, DarkModeService, DefaultLogConnector, DropdownComponent, DropdownEvent, DropdownEventType, EMPTY_STRING, FEATURES, FUNCTION, FetchClient, FetchClientBuilder, FetchClientResponseType, HTTP_MOCKING_FRAMEWORK_CONFIG, HTTP_MOCK_MAX_DELAY, HTTP_MOCK_SERVICE, HtmlLogConnector, HttpHeadersMockBuilder, HttpMock, HttpMockLoggingService, HttpMockProductionPolicy, HttpMockService, HttpMockServiceError, HttpResponseMockBuilder, HttpStatusText, HttpStatusTextFinder, IdentifiableComponent, IntegrityError, LINK_ROLE, LOG_CONFIG_STRING, LOG_ERROR_STRING, LOG_INFO_STRING, LOG_WARNING_STRING, LayoutDragEvent, LayoutDragEventType, LayoutRegion, LogBuilder, LogImpl, LogLevel, LogUtil, LoggerService, NUMBER, NavigateToUrlDirective, OBJECT, STORAGE_KEY, STRING, SYMBOL, SafeHtmlPipe, ScrollService, SubscriptionError, SubscriptionService, UNDEFINED, Uuid, VERSION_CONFIG, VersionService, VersionUtil, WindowFeatureState, WindowService, WindowTarget, httpHeadersMock, httpMockFactory, httpResponseMock };
9410
9679
  //# sourceMappingURL=angular-toolbox.mjs.map