cax-design-system 1.1.2 → 1.2.0
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/menu/menu.mjs +15 -342
- package/esm2022/menu/menu.module.mjs +22 -0
- package/esm2022/menu/public_api.mjs +2 -1
- package/esm2022/sidebar/sidebar.mjs +3 -3
- package/esm2022/splitter/public_api.mjs +2 -1
- package/esm2022/splitter/splitter.mjs +27 -99
- package/esm2022/splitter/splitter.module.mjs +19 -0
- package/fesm2022/cax-design-system-menu.mjs +17 -327
- package/fesm2022/cax-design-system-menu.mjs.map +1 -1
- package/fesm2022/cax-design-system-sidebar.mjs +2 -2
- package/fesm2022/cax-design-system-sidebar.mjs.map +1 -1
- package/fesm2022/cax-design-system-splitter.mjs +24 -82
- package/fesm2022/cax-design-system-splitter.mjs.map +1 -1
- package/menu/menu.d.ts +2 -12
- package/menu/menu.module.d.ts +12 -0
- package/menu/public_api.d.ts +1 -0
- package/package.json +222 -222
- package/resources/components/menu/{menu.css → menu.scss} +5 -5
- package/resources/components/sidebar/sidebar.scss +1 -1
- package/resources/components/splitter/splitter.scss +73 -0
- package/resources/themes/cax-theme.scss +25 -30
- package/splitter/public_api.d.ts +1 -0
- package/splitter/splitter.d.ts +7 -13
- package/splitter/splitter.module.d.ts +9 -0
- package/resources/components/splitter/splitter.css +0 -70
|
@@ -15,6 +15,7 @@ class Splitter {
|
|
|
15
15
|
renderer;
|
|
16
16
|
cd;
|
|
17
17
|
el;
|
|
18
|
+
gutterColor = '';
|
|
18
19
|
/**
|
|
19
20
|
* Style class of the component.
|
|
20
21
|
* @group Props
|
|
@@ -75,7 +76,7 @@ class Splitter {
|
|
|
75
76
|
set panelSizes(val) {
|
|
76
77
|
this._panelSizes = val;
|
|
77
78
|
if (this.el && this.el.nativeElement && this.panels.length > 0) {
|
|
78
|
-
let children = [...this.el.nativeElement.children[0].children].filter((child) => DomHandler.hasClass(child, '
|
|
79
|
+
let children = [...this.el.nativeElement.children[0].children].filter((child) => DomHandler.hasClass(child, 'cax-splitter-panel'));
|
|
79
80
|
let _panelSizes = [];
|
|
80
81
|
this.panels.map((panel, i) => {
|
|
81
82
|
let panelInitialSize = this.panelSizes.length - 1 >= i ? this.panelSizes[i] : null;
|
|
@@ -149,7 +150,7 @@ class Splitter {
|
|
|
149
150
|
initialized = this.restoreState();
|
|
150
151
|
}
|
|
151
152
|
if (!initialized) {
|
|
152
|
-
let children = [...this.el.nativeElement.children[0].children].filter((child) => DomHandler.hasClass(child, '
|
|
153
|
+
let children = [...this.el.nativeElement.children[0].children].filter((child) => DomHandler.hasClass(child, 'cax-splitter-panel'));
|
|
153
154
|
let _panelSizes = [];
|
|
154
155
|
this.panels.map((panel, i) => {
|
|
155
156
|
let panelInitialSize = this.panelSizes.length - 1 >= i ? this.panelSizes[i] : null;
|
|
@@ -181,10 +182,10 @@ class Splitter {
|
|
|
181
182
|
this.nextPanelSize = (100 * (this.horizontal() ? DomHandler.getOuterWidth(this.nextPanelElement, true) : DomHandler.getOuterHeight(this.nextPanelElement, true))) / this.size;
|
|
182
183
|
}
|
|
183
184
|
this.prevPanelIndex = index;
|
|
184
|
-
DomHandler.addClass(this.gutterElement, '
|
|
185
|
-
this.gutterElement.setAttribute('data-
|
|
186
|
-
DomHandler.addClass(this.containerViewChild.nativeElement, '
|
|
187
|
-
this.containerViewChild.nativeElement.setAttribute('data-
|
|
185
|
+
DomHandler.addClass(this.gutterElement, 'cax-splitter-gutter-resizing');
|
|
186
|
+
this.gutterElement.setAttribute('data-cax-gutter-resizing', 'true');
|
|
187
|
+
DomHandler.addClass(this.containerViewChild.nativeElement, 'cax-splitter-resizing');
|
|
188
|
+
this.containerViewChild.nativeElement.setAttribute('data-cax-resizing', 'true');
|
|
188
189
|
this.onResizeStart.emit({ originalEvent: event, sizes: this._panelSizes });
|
|
189
190
|
}
|
|
190
191
|
onResize(event, step, isKeyDown) {
|
|
@@ -220,8 +221,8 @@ class Splitter {
|
|
|
220
221
|
this.saveState();
|
|
221
222
|
}
|
|
222
223
|
this.onResizeEnd.emit({ originalEvent: event, sizes: this._panelSizes });
|
|
223
|
-
DomHandler.removeClass(this.gutterElement, '
|
|
224
|
-
DomHandler.removeClass(this.containerViewChild.nativeElement, '
|
|
224
|
+
DomHandler.removeClass(this.gutterElement, 'cax-splitter-gutter-resizing');
|
|
225
|
+
DomHandler.removeClass(this.containerViewChild.nativeElement, 'cax-splitter-resizing');
|
|
225
226
|
this.clear();
|
|
226
227
|
}
|
|
227
228
|
onGutterMouseDown(event, index) {
|
|
@@ -370,7 +371,7 @@ class Splitter {
|
|
|
370
371
|
isNested() {
|
|
371
372
|
if (this.el.nativeElement) {
|
|
372
373
|
let parent = this.el.nativeElement.parentElement;
|
|
373
|
-
while (parent && !DomHandler.hasClass(parent, '
|
|
374
|
+
while (parent && !DomHandler.hasClass(parent, 'cax-splitter')) {
|
|
374
375
|
parent = parent.parentElement;
|
|
375
376
|
}
|
|
376
377
|
return parent !== null;
|
|
@@ -405,7 +406,7 @@ class Splitter {
|
|
|
405
406
|
const stateString = storage.getItem(this.stateKey);
|
|
406
407
|
if (stateString) {
|
|
407
408
|
this._panelSizes = JSON.parse(stateString);
|
|
408
|
-
let children = [...this.containerViewChild.nativeElement.children].filter((child) => DomHandler.hasClass(child, '
|
|
409
|
+
let children = [...this.containerViewChild.nativeElement.children].filter((child) => DomHandler.hasClass(child, 'cax-splitter-panel'));
|
|
409
410
|
children.forEach((child, i) => {
|
|
410
411
|
child.style.flexBasis = 'calc(' + this._panelSizes[i] + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';
|
|
411
412
|
});
|
|
@@ -415,15 +416,15 @@ class Splitter {
|
|
|
415
416
|
}
|
|
416
417
|
containerClass() {
|
|
417
418
|
return {
|
|
418
|
-
'
|
|
419
|
-
'
|
|
420
|
-
'
|
|
419
|
+
'cax-splitter cax-component': true,
|
|
420
|
+
'cax-splitter-horizontal': this.layout === 'horizontal',
|
|
421
|
+
'cax-splitter-vertical': this.layout === 'vertical'
|
|
421
422
|
};
|
|
422
423
|
}
|
|
423
424
|
panelContainerClass() {
|
|
424
425
|
return {
|
|
425
|
-
'
|
|
426
|
-
'
|
|
426
|
+
'cax-splitter-panel': true,
|
|
427
|
+
'cax-splitter-panel-nested': true
|
|
427
428
|
};
|
|
428
429
|
}
|
|
429
430
|
gutterStyle() {
|
|
@@ -436,83 +437,23 @@ class Splitter {
|
|
|
436
437
|
return this.layout === 'horizontal';
|
|
437
438
|
}
|
|
438
439
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Splitter, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
439
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: Splitter, selector: "
|
|
440
|
-
<div #container [ngClass]="containerClass()" [class]="styleClass" [ngStyle]="style" [attr.data-pc-name]="'splitter'" [attr.data-p-gutter-resizing]="false" [attr.data-pc-section]="'root'">
|
|
441
|
-
<ng-template ngFor let-panel [ngForOf]="panels" let-i="index">
|
|
442
|
-
<div [ngClass]="panelContainerClass()" [class]="panelStyleClass" [ngStyle]="panelStyle" tabindex="-1" [attr.data-pc-name]="'splitter'" [attr.data-pc-section]="'root'">
|
|
443
|
-
<ng-container *ngTemplateOutlet="panel"></ng-container>
|
|
444
|
-
</div>
|
|
445
|
-
<div
|
|
446
|
-
*ngIf="i !== panels.length - 1"
|
|
447
|
-
class="p-splitter-gutter"
|
|
448
|
-
role="separator"
|
|
449
|
-
tabindex="-1"
|
|
450
|
-
(mousedown)="onGutterMouseDown($event, i)"
|
|
451
|
-
(touchstart)="onGutterTouchStart($event, i)"
|
|
452
|
-
(touchmove)="onGutterTouchMove($event)"
|
|
453
|
-
(touchend)="onGutterTouchEnd($event, i)"
|
|
454
|
-
[attr.data-p-gutter-resizing]="false"
|
|
455
|
-
[attr.data-pc-section]="'gutter'"
|
|
456
|
-
>
|
|
457
|
-
<div
|
|
458
|
-
class="p-splitter-gutter-handle"
|
|
459
|
-
tabindex="0"
|
|
460
|
-
[ngStyle]="gutterStyle()"
|
|
461
|
-
[attr.aria-orientation]="layout"
|
|
462
|
-
[attr.aria-valuenow]="prevSize"
|
|
463
|
-
[attr.data-pc-section]="'gutterhandle'"
|
|
464
|
-
(keyup)="onGutterKeyUp($event)"
|
|
465
|
-
(keydown)="onGutterKeyDown($event, i)"
|
|
466
|
-
></div>
|
|
467
|
-
</div>
|
|
468
|
-
</ng-template>
|
|
469
|
-
</div>
|
|
470
|
-
`, isInline: true, styles: ["@layer cax{.p-splitter{display:flex;flex-wrap:nowrap}.p-splitter-vertical{flex-direction:column}.p-splitter-panel{overflow:hidden;flex-grow:1}.p-splitter-panel-nested{display:flex;min-width:0}.p-splitter-panel p-splitter{flex-grow:1}.p-splitter-panel .p-splitter{flex-grow:1;border:0 none}.p-splitter-gutter{flex-grow:0;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:col-resize}.p-splitter-horizontal.p-splitter-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.p-splitter-horizontal>.p-splitter-gutter>.p-splitter-gutter-handle{height:24px;width:100%}.p-splitter-horizontal>.p-splitter-gutter{cursor:col-resize}.p-splitter-vertical.p-splitter-resizing{cursor:row-resize;-webkit-user-select:none;user-select:none}.p-splitter-vertical>.p-splitter-gutter{cursor:row-resize}.p-splitter-vertical>.p-splitter-gutter>.p-splitter-gutter-handle{width:24px;height:100%}.p-splitter-resizing .p-splitter-panel{pointer-events:none}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
440
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: Splitter, selector: "cax-splitter", inputs: { gutterColor: "gutterColor", styleClass: "styleClass", panelStyleClass: "panelStyleClass", style: "style", panelStyle: "panelStyle", stateStorage: "stateStorage", stateKey: "stateKey", layout: "layout", gutterSize: ["gutterSize", "gutterSize", numberAttribute], step: ["step", "step", numberAttribute], minSizes: "minSizes", panelSizes: "panelSizes" }, outputs: { onResizeEnd: "onResizeEnd", onResizeStart: "onResizeStart" }, host: { properties: { "class.cax-splitter-panel-nested": "nested" }, classAttribute: "cax-element" }, queries: [{ propertyName: "templates", predicate: CaxTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div #container [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\" [attr.data-pc-name]=\"'splitter'\" [attr.data-cax-gutter-resizing]=\"false\" [attr.data-pc-section]=\"'root'\">\r\n <ng-template ngFor let-panel [ngForOf]=\"panels\" let-i=\"index\">\r\n <div [ngClass]=\"panelContainerClass()\" [class]=\"panelStyleClass\" [ngStyle]=\"panelStyle\" tabindex=\"-1\" [attr.data-pc-name]=\"'splitter'\" [attr.data-pc-section]=\"'root'\">\r\n <ng-container *ngTemplateOutlet=\"panel\"></ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"i !== panels.length - 1\"\r\n class=\"cax-splitter-gutter\"\r\n role=\"separator\"\r\n tabindex=\"-1\"\r\n (mousedown)=\"onGutterMouseDown($event, i)\"\r\n (touchstart)=\"onGutterTouchStart($event, i)\"\r\n (touchmove)=\"onGutterTouchMove($event)\"\r\n (touchend)=\"onGutterTouchEnd($event, i)\"\r\n [attr.data-cax-gutter-resizing]=\"false\"\r\n [attr.data-pc-section]=\"'gutter'\"\r\n [ngStyle]=\"{'background-color': gutterColor }\"\r\n >\r\n <div\r\n class=\"cax-splitter-gutter-handle\"\r\n tabindex=\"0\"\r\n [ngStyle]=\"gutterStyle()\"\r\n [attr.aria-orientation]=\"layout\"\r\n [attr.aria-valuenow]=\"prevSize\"\r\n [attr.data-pc-section]=\"'gutterhandle'\"\r\n (keyup)=\"onGutterKeyUp($event)\"\r\n (keydown)=\"onGutterKeyDown($event, i)\"\r\n ></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n", styles: ["@layer cax{.cax-splitter{display:flex;flex-wrap:nowrap}.cax-splitter-vertical{flex-direction:column}.cax-splitter-panel{overflow:hidden;flex-grow:1}.cax-splitter-panel-nested{display:flex;min-width:0}.cax-splitter-panel cax-splitter{flex-grow:1}.cax-splitter-panel .cax-splitter{flex-grow:1;border:0 none}.cax-splitter-gutter{flex-grow:0;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:col-resize}.cax-splitter-horizontal.cax-splitter-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.cax-splitter-horizontal>.cax-splitter-gutter>.cax-splitter-gutter-handle{height:24px;width:100%}.cax-splitter-horizontal>.cax-splitter-gutter{cursor:col-resize}.cax-splitter-vertical.cax-splitter-resizing{cursor:row-resize;-webkit-user-select:none;user-select:none}.cax-splitter-vertical>.cax-splitter-gutter{cursor:row-resize}.cax-splitter-vertical>.cax-splitter-gutter>.cax-splitter-gutter-handle{width:24px;height:100%}.cax-splitter-resizing .cax-splitter-panel{pointer-events:none}.cax-splitter .gutter{background-color:var(--gutter-color, #cccccc)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
471
441
|
}
|
|
472
442
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Splitter, decorators: [{
|
|
473
443
|
type: Component,
|
|
474
|
-
args: [{ selector: '
|
|
475
|
-
<div #container [ngClass]="containerClass()" [class]="styleClass" [ngStyle]="style" [attr.data-pc-name]="'splitter'" [attr.data-p-gutter-resizing]="false" [attr.data-pc-section]="'root'">
|
|
476
|
-
<ng-template ngFor let-panel [ngForOf]="panels" let-i="index">
|
|
477
|
-
<div [ngClass]="panelContainerClass()" [class]="panelStyleClass" [ngStyle]="panelStyle" tabindex="-1" [attr.data-pc-name]="'splitter'" [attr.data-pc-section]="'root'">
|
|
478
|
-
<ng-container *ngTemplateOutlet="panel"></ng-container>
|
|
479
|
-
</div>
|
|
480
|
-
<div
|
|
481
|
-
*ngIf="i !== panels.length - 1"
|
|
482
|
-
class="p-splitter-gutter"
|
|
483
|
-
role="separator"
|
|
484
|
-
tabindex="-1"
|
|
485
|
-
(mousedown)="onGutterMouseDown($event, i)"
|
|
486
|
-
(touchstart)="onGutterTouchStart($event, i)"
|
|
487
|
-
(touchmove)="onGutterTouchMove($event)"
|
|
488
|
-
(touchend)="onGutterTouchEnd($event, i)"
|
|
489
|
-
[attr.data-p-gutter-resizing]="false"
|
|
490
|
-
[attr.data-pc-section]="'gutter'"
|
|
491
|
-
>
|
|
492
|
-
<div
|
|
493
|
-
class="p-splitter-gutter-handle"
|
|
494
|
-
tabindex="0"
|
|
495
|
-
[ngStyle]="gutterStyle()"
|
|
496
|
-
[attr.aria-orientation]="layout"
|
|
497
|
-
[attr.aria-valuenow]="prevSize"
|
|
498
|
-
[attr.data-pc-section]="'gutterhandle'"
|
|
499
|
-
(keyup)="onGutterKeyUp($event)"
|
|
500
|
-
(keydown)="onGutterKeyDown($event, i)"
|
|
501
|
-
></div>
|
|
502
|
-
</div>
|
|
503
|
-
</ng-template>
|
|
504
|
-
</div>
|
|
505
|
-
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
444
|
+
args: [{ selector: 'cax-splitter', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
506
445
|
class: 'cax-element',
|
|
507
|
-
'[class.
|
|
508
|
-
}, styles: ["@layer cax{.
|
|
446
|
+
'[class.cax-splitter-panel-nested]': 'nested'
|
|
447
|
+
}, template: "<div #container [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\" [attr.data-pc-name]=\"'splitter'\" [attr.data-cax-gutter-resizing]=\"false\" [attr.data-pc-section]=\"'root'\">\r\n <ng-template ngFor let-panel [ngForOf]=\"panels\" let-i=\"index\">\r\n <div [ngClass]=\"panelContainerClass()\" [class]=\"panelStyleClass\" [ngStyle]=\"panelStyle\" tabindex=\"-1\" [attr.data-pc-name]=\"'splitter'\" [attr.data-pc-section]=\"'root'\">\r\n <ng-container *ngTemplateOutlet=\"panel\"></ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"i !== panels.length - 1\"\r\n class=\"cax-splitter-gutter\"\r\n role=\"separator\"\r\n tabindex=\"-1\"\r\n (mousedown)=\"onGutterMouseDown($event, i)\"\r\n (touchstart)=\"onGutterTouchStart($event, i)\"\r\n (touchmove)=\"onGutterTouchMove($event)\"\r\n (touchend)=\"onGutterTouchEnd($event, i)\"\r\n [attr.data-cax-gutter-resizing]=\"false\"\r\n [attr.data-pc-section]=\"'gutter'\"\r\n [ngStyle]=\"{'background-color': gutterColor }\"\r\n >\r\n <div\r\n class=\"cax-splitter-gutter-handle\"\r\n tabindex=\"0\"\r\n [ngStyle]=\"gutterStyle()\"\r\n [attr.aria-orientation]=\"layout\"\r\n [attr.aria-valuenow]=\"prevSize\"\r\n [attr.data-pc-section]=\"'gutterhandle'\"\r\n (keyup)=\"onGutterKeyUp($event)\"\r\n (keydown)=\"onGutterKeyDown($event, i)\"\r\n ></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n", styles: ["@layer cax{.cax-splitter{display:flex;flex-wrap:nowrap}.cax-splitter-vertical{flex-direction:column}.cax-splitter-panel{overflow:hidden;flex-grow:1}.cax-splitter-panel-nested{display:flex;min-width:0}.cax-splitter-panel cax-splitter{flex-grow:1}.cax-splitter-panel .cax-splitter{flex-grow:1;border:0 none}.cax-splitter-gutter{flex-grow:0;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:col-resize}.cax-splitter-horizontal.cax-splitter-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.cax-splitter-horizontal>.cax-splitter-gutter>.cax-splitter-gutter-handle{height:24px;width:100%}.cax-splitter-horizontal>.cax-splitter-gutter{cursor:col-resize}.cax-splitter-vertical.cax-splitter-resizing{cursor:row-resize;-webkit-user-select:none;user-select:none}.cax-splitter-vertical>.cax-splitter-gutter{cursor:row-resize}.cax-splitter-vertical>.cax-splitter-gutter>.cax-splitter-gutter-handle{width:24px;height:100%}.cax-splitter-resizing .cax-splitter-panel{pointer-events:none}.cax-splitter .gutter{background-color:var(--gutter-color, #cccccc)}}\n"] }]
|
|
509
448
|
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
510
449
|
type: Inject,
|
|
511
450
|
args: [DOCUMENT]
|
|
512
451
|
}] }, { type: undefined, decorators: [{
|
|
513
452
|
type: Inject,
|
|
514
453
|
args: [PLATFORM_ID]
|
|
515
|
-
}] }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: {
|
|
454
|
+
}] }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { gutterColor: [{
|
|
455
|
+
type: Input
|
|
456
|
+
}], styleClass: [{
|
|
516
457
|
type: Input
|
|
517
458
|
}], panelStyleClass: [{
|
|
518
459
|
type: Input
|
|
@@ -547,6 +488,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
547
488
|
type: ViewChild,
|
|
548
489
|
args: ['container', { static: false }]
|
|
549
490
|
}] } });
|
|
491
|
+
|
|
550
492
|
class SplitterModule {
|
|
551
493
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: SplitterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
552
494
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: SplitterModule, declarations: [Splitter], imports: [CommonModule], exports: [Splitter, SharedModule] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cax-design-system-splitter.mjs","sources":["../../src/app/components/splitter/splitter.ts","../../src/app/components/splitter/cax-design-system-splitter.ts"],"sourcesContent":["import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Inject, Input, NgModule, Output, PLATFORM_ID, QueryList, Renderer2, ViewChild, ViewEncapsulation, numberAttribute } from '@angular/core';\nimport { CaxTemplate, SharedModule } from 'cax-design-system/api';\nimport { DomHandler } from 'cax-design-system/dom';\nimport { Nullable, VoidListener } from 'cax-design-system/ts-helpers';\nimport { SplitterResizeEndEvent, SplitterResizeStartEvent } from './splitter.interface';\n/**\n * Splitter is utilized to separate and resize panels.\n * @group Components\n */\n@Component({\n selector: 'p-splitter',\n template: `\n <div #container [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\" [attr.data-pc-name]=\"'splitter'\" [attr.data-p-gutter-resizing]=\"false\" [attr.data-pc-section]=\"'root'\">\n <ng-template ngFor let-panel [ngForOf]=\"panels\" let-i=\"index\">\n <div [ngClass]=\"panelContainerClass()\" [class]=\"panelStyleClass\" [ngStyle]=\"panelStyle\" tabindex=\"-1\" [attr.data-pc-name]=\"'splitter'\" [attr.data-pc-section]=\"'root'\">\n <ng-container *ngTemplateOutlet=\"panel\"></ng-container>\n </div>\n <div\n *ngIf=\"i !== panels.length - 1\"\n class=\"p-splitter-gutter\"\n role=\"separator\"\n tabindex=\"-1\"\n (mousedown)=\"onGutterMouseDown($event, i)\"\n (touchstart)=\"onGutterTouchStart($event, i)\"\n (touchmove)=\"onGutterTouchMove($event)\"\n (touchend)=\"onGutterTouchEnd($event, i)\"\n [attr.data-p-gutter-resizing]=\"false\"\n [attr.data-pc-section]=\"'gutter'\"\n >\n <div\n class=\"p-splitter-gutter-handle\"\n tabindex=\"0\"\n [ngStyle]=\"gutterStyle()\"\n [attr.aria-orientation]=\"layout\"\n [attr.aria-valuenow]=\"prevSize\"\n [attr.data-pc-section]=\"'gutterhandle'\"\n (keyup)=\"onGutterKeyUp($event)\"\n (keydown)=\"onGutterKeyDown($event, i)\"\n ></div>\n </div>\n </ng-template>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./splitter.css'],\n host: {\n class: 'cax-element',\n '[class.p-splitter-panel-nested]': 'nested'\n }\n})\nexport class Splitter {\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Style class of the panel.\n * @group Props\n */\n @Input() panelStyleClass: string | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Inline style of the panel.\n * @group Props\n */\n @Input() panelStyle: { [klass: string]: any } | null | undefined;\n /**\n * Defines where a stateful splitter keeps its state, valid values are 'session' for sessionStorage and 'local' for localStorage.\n * @group Props\n */\n @Input() stateStorage: string | undefined = 'session';\n /**\n * Storage identifier of a stateful Splitter.\n * @group Props\n */\n @Input() stateKey: string | undefined | null = null;\n /**\n * Orientation of the panels. Valid values are 'horizontal' and 'vertical'.\n * @group Props\n */\n @Input() layout: string | undefined = 'horizontal';\n /**\n * Size of the divider in pixels.\n * @group Props\n */\n @Input({ transform: numberAttribute }) gutterSize: number = 4;\n /**\n * Step factor to increment/decrement the size of the panels while pressing the arrow keys.\n * @group Props\n */\n @Input({ transform: numberAttribute }) step: number = 5;\n /**\n * Minimum size of the elements relative to 100%.\n * @group Props\n */\n @Input() minSizes: number[] = [];\n /**\n * Size of the elements relative to 100%.\n * @group Props\n */\n @Input() get panelSizes(): number[] {\n return this._panelSizes;\n }\n set panelSizes(val: number[]) {\n this._panelSizes = val;\n\n if (this.el && this.el.nativeElement && this.panels.length > 0) {\n let children = [...this.el.nativeElement.children[0].children].filter((child) => DomHandler.hasClass(child, 'p-splitter-panel'));\n let _panelSizes = [];\n\n this.panels.map((panel, i) => {\n let panelInitialSize = this.panelSizes.length - 1 >= i ? this.panelSizes[i] : null;\n let panelSize = panelInitialSize ?? 100 / this.panels.length;\n _panelSizes[i] = panelSize;\n children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n });\n }\n }\n /**\n * Callback to invoke when resize ends.\n * @param {SplitterResizeEndEvent} event - Custom panel resize end event\n * @group Emits\n */\n @Output() onResizeEnd: EventEmitter<SplitterResizeEndEvent> = new EventEmitter<SplitterResizeEndEvent>();\n /**\n * Callback to invoke when resize starts.\n * @param {SplitterResizeStartEvent} event - Custom panel resize start event\n * @group Emits\n */\n @Output() onResizeStart: EventEmitter<SplitterResizeStartEvent> = new EventEmitter<SplitterResizeStartEvent>();\n\n @ContentChildren(CaxTemplate) templates!: QueryList<CaxTemplate>;\n\n @ViewChild('container', { static: false }) containerViewChild: Nullable<ElementRef>;\n\n nested: boolean = false;\n\n panels: any[] = [];\n\n dragging: boolean = false;\n\n mouseMoveListener: VoidListener;\n\n mouseUpListener: VoidListener;\n\n touchMoveListener: VoidListener;\n\n touchEndListener: VoidListener;\n\n size: Nullable<number>;\n\n gutterElement: Nullable<ElementRef | HTMLElement>;\n\n startPos: Nullable<number>;\n\n prevPanelElement: Nullable<ElementRef | HTMLElement>;\n\n nextPanelElement: Nullable<ElementRef | HTMLElement>;\n\n nextPanelSize: Nullable<number>;\n\n prevPanelSize: Nullable<number>;\n\n _panelSizes: number[] = [];\n\n prevPanelIndex: Nullable<number>;\n\n timer: any;\n\n prevSize: any;\n\n private window: Window;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public cd: ChangeDetectorRef,\n private el: ElementRef\n ) {\n this.window = this.document.defaultView as Window;\n }\n\n ngOnInit() {\n this.nested = this.isNested();\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'panel':\n this.panels.push(item.template);\n break;\n default:\n this.panels.push(item.template);\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.panels && this.panels.length) {\n let initialized = false;\n if (this.isStateful()) {\n initialized = this.restoreState();\n }\n\n if (!initialized) {\n let children = [...this.el.nativeElement.children[0].children].filter((child) => DomHandler.hasClass(child, 'p-splitter-panel'));\n let _panelSizes = [];\n\n this.panels.map((panel, i) => {\n let panelInitialSize = this.panelSizes.length - 1 >= i ? this.panelSizes[i] : null;\n let panelSize = panelInitialSize || 100 / this.panels.length;\n _panelSizes[i] = panelSize;\n children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (this.panels.length - 1) * (this.gutterSize as number) + 'px)';\n });\n\n this._panelSizes = _panelSizes;\n\n this.prevSize = parseFloat(_panelSizes[0]).toFixed(4);\n }\n }\n }\n }\n\n resizeStart(event: TouchEvent | MouseEvent, index: number, isKeyDown?: boolean) {\n this.gutterElement = (event.currentTarget as HTMLElement) || (event.target as HTMLElement).parentElement;\n this.size = this.horizontal() ? DomHandler.getWidth((this.containerViewChild as ElementRef).nativeElement) : DomHandler.getHeight((this.containerViewChild as ElementRef).nativeElement);\n\n if (!isKeyDown) {\n this.dragging = true;\n this.startPos = this.horizontal() ? (event instanceof MouseEvent ? event.pageX : event.changedTouches[0].pageX) : event instanceof MouseEvent ? event.pageY : event.changedTouches[0].pageY;\n }\n\n this.prevPanelElement = this.gutterElement.previousElementSibling as HTMLElement;\n this.nextPanelElement = this.gutterElement.nextElementSibling as HTMLElement;\n\n if (isKeyDown) {\n this.prevPanelSize = this.horizontal() ? DomHandler.getOuterWidth(this.prevPanelElement, true) : DomHandler.getOuterHeight(this.prevPanelElement, true);\n this.nextPanelSize = this.horizontal() ? DomHandler.getOuterWidth(this.nextPanelElement, true) : DomHandler.getOuterHeight(this.nextPanelElement, true);\n } else {\n this.prevPanelSize = (100 * (this.horizontal() ? DomHandler.getOuterWidth(this.prevPanelElement, true) : DomHandler.getOuterHeight(this.prevPanelElement, true))) / this.size;\n this.nextPanelSize = (100 * (this.horizontal() ? DomHandler.getOuterWidth(this.nextPanelElement, true) : DomHandler.getOuterHeight(this.nextPanelElement, true))) / this.size;\n }\n\n this.prevPanelIndex = index;\n DomHandler.addClass(this.gutterElement, 'p-splitter-gutter-resizing');\n this.gutterElement.setAttribute('data-p-gutter-resizing', 'true');\n DomHandler.addClass((this.containerViewChild as ElementRef).nativeElement, 'p-splitter-resizing');\n this.containerViewChild.nativeElement.setAttribute('data-p-resizing', 'true');\n this.onResizeStart.emit({ originalEvent: event, sizes: this._panelSizes as number[] });\n }\n\n onResize(event: MouseEvent, step?: number, isKeyDown?: boolean) {\n let newPos, newPrevPanelSize, newNextPanelSize;\n\n if (isKeyDown) {\n if (this.horizontal()) {\n newPrevPanelSize = (100 * (this.prevPanelSize + step)) / this.size;\n newNextPanelSize = (100 * (this.nextPanelSize - step)) / this.size;\n } else {\n newPrevPanelSize = (100 * (this.prevPanelSize - step)) / this.size;\n newNextPanelSize = (100 * (this.nextPanelSize + step)) / this.size;\n }\n } else {\n if (this.horizontal()) newPos = (event.pageX * 100) / this.size - (this.startPos * 100) / this.size;\n else newPos = (event.pageY * 100) / this.size - (this.startPos * 100) / this.size;\n\n newPrevPanelSize = (this.prevPanelSize as number) + newPos;\n newNextPanelSize = (this.nextPanelSize as number) - newPos;\n }\n\n this.prevSize = parseFloat(newPrevPanelSize).toFixed(4);\n\n if (this.validateResize(newPrevPanelSize, newNextPanelSize)) {\n (this.prevPanelElement as HTMLElement).style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n (this.nextPanelElement as HTMLElement).style.flexBasis = 'calc(' + newNextPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n this._panelSizes[this.prevPanelIndex as number] = newPrevPanelSize;\n this._panelSizes[(this.prevPanelIndex as number) + 1] = newNextPanelSize;\n }\n }\n\n resizeEnd(event: MouseEvent | TouchEvent) {\n if (this.isStateful()) {\n this.saveState();\n }\n\n this.onResizeEnd.emit({ originalEvent: event, sizes: this._panelSizes });\n DomHandler.removeClass(this.gutterElement, 'p-splitter-gutter-resizing');\n DomHandler.removeClass((this.containerViewChild as ElementRef).nativeElement, 'p-splitter-resizing');\n this.clear();\n }\n\n onGutterMouseDown(event: MouseEvent, index: number) {\n this.resizeStart(event, index);\n this.bindMouseListeners();\n }\n\n onGutterTouchStart(event: TouchEvent, index: number) {\n if (event.cancelable) {\n this.resizeStart(event, index);\n this.bindTouchListeners();\n\n event.preventDefault();\n }\n }\n\n onGutterTouchMove(event) {\n this.onResize(event);\n event.preventDefault();\n }\n\n onGutterTouchEnd(event: TouchEvent) {\n this.resizeEnd(event);\n this.unbindTouchListeners();\n\n if (event.cancelable) event.preventDefault();\n }\n\n repeat(event, index, step) {\n this.resizeStart(event, index, true);\n this.onResize(event, step, true);\n }\n\n setTimer(event, index, step) {\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.repeat(event, index, step);\n }, 40);\n }\n\n clearTimer() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n\n onGutterKeyUp(event) {\n this.clearTimer();\n this.resizeEnd(event);\n }\n\n onGutterKeyDown(event, index) {\n switch (event.code) {\n case 'ArrowLeft': {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step * -1);\n }\n\n event.preventDefault();\n break;\n }\n\n case 'ArrowRight': {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step);\n }\n\n event.preventDefault();\n break;\n }\n\n case 'ArrowDown': {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step * -1);\n }\n\n event.preventDefault();\n break;\n }\n\n case 'ArrowUp': {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step);\n }\n\n event.preventDefault();\n break;\n }\n\n default:\n //no op\n break;\n }\n }\n\n validateResize(newPrevPanelSize: number, newNextPanelSize: number) {\n const prevPanelIndex = this.prevPanelIndex;\n if (this.minSizes.length > prevPanelIndex && this.minSizes[prevPanelIndex] && this.minSizes[prevPanelIndex] > newPrevPanelSize) {\n return false;\n }\n\n const nextPanelIndex = this.prevPanelIndex + 1;\n if (this.minSizes.length > nextPanelIndex && this.minSizes[nextPanelIndex] && this.minSizes[nextPanelIndex] > newNextPanelSize) {\n return false;\n }\n\n return true;\n }\n\n bindMouseListeners() {\n if (!this.mouseMoveListener) {\n this.mouseMoveListener = this.renderer.listen(this.document, 'mousemove', (event) => {\n this.onResize(event);\n });\n }\n\n if (!this.mouseUpListener) {\n this.mouseUpListener = this.renderer.listen(this.document, 'mouseup', (event) => {\n this.resizeEnd(event);\n this.unbindMouseListeners();\n });\n }\n }\n\n bindTouchListeners() {\n if (!this.touchMoveListener) {\n this.touchMoveListener = this.renderer.listen(this.document, 'touchmove', (event) => {\n this.onResize(event.changedTouches[0]);\n });\n }\n\n if (!this.touchEndListener) {\n this.touchEndListener = this.renderer.listen(this.document, 'touchend', (event) => {\n this.resizeEnd(event);\n this.unbindTouchListeners();\n });\n }\n }\n\n unbindMouseListeners() {\n if (this.mouseMoveListener) {\n this.mouseMoveListener();\n this.mouseMoveListener = null;\n }\n\n if (this.mouseUpListener) {\n this.mouseUpListener();\n this.mouseUpListener = null;\n }\n }\n\n unbindTouchListeners() {\n if (this.touchMoveListener) {\n this.touchMoveListener();\n this.touchMoveListener = null;\n }\n\n if (this.touchEndListener) {\n this.touchEndListener();\n this.touchEndListener = null;\n }\n }\n\n clear() {\n this.dragging = false;\n this.size = null;\n this.startPos = null;\n this.prevPanelElement = null;\n this.nextPanelElement = null;\n this.prevPanelSize = null;\n this.nextPanelSize = null;\n this.gutterElement = null;\n this.prevPanelIndex = null;\n }\n\n isNested() {\n if (this.el.nativeElement) {\n let parent = this.el.nativeElement.parentElement;\n while (parent && !DomHandler.hasClass(parent, 'p-splitter')) {\n parent = parent.parentElement;\n }\n\n return parent !== null;\n } else {\n return false;\n }\n }\n\n isStateful() {\n return this.stateKey != null;\n }\n\n getStorage() {\n if (isPlatformBrowser(this.platformId)) {\n switch (this.stateStorage) {\n case 'local':\n return this.window.localStorage;\n\n case 'session':\n return this.window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n } else {\n throw new Error('Storage is not a available by default on the server.');\n }\n }\n\n saveState() {\n this.getStorage().setItem(this.stateKey as string, JSON.stringify(this._panelSizes));\n }\n\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey as string);\n\n if (stateString) {\n this._panelSizes = JSON.parse(stateString);\n let children = [...(this.containerViewChild as ElementRef).nativeElement.children].filter((child) => DomHandler.hasClass(child, 'p-splitter-panel'));\n children.forEach((child, i) => {\n child.style.flexBasis = 'calc(' + this._panelSizes[i] + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n });\n\n return true;\n }\n\n return false;\n }\n\n containerClass() {\n return {\n 'p-splitter p-component': true,\n 'p-splitter-horizontal': this.layout === 'horizontal',\n 'p-splitter-vertical': this.layout === 'vertical'\n };\n }\n\n panelContainerClass() {\n return {\n 'p-splitter-panel': true,\n 'p-splitter-panel-nested': true\n };\n }\n\n gutterStyle() {\n if (this.horizontal()) return { width: this.gutterSize + 'px' };\n else return { height: this.gutterSize + 'px' };\n }\n\n horizontal() {\n return this.layout === 'horizontal';\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Splitter, SharedModule],\n declarations: [Splitter]\n})\nexport class SplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cax-design-system-splitter.mjs","sources":["../../src/app/components/splitter/splitter.ts","../../src/app/components/splitter/splitter.html","../../src/app/components/splitter/splitter.module.ts","../../src/app/components/splitter/cax-design-system-splitter.ts"],"sourcesContent":["import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID, QueryList, Renderer2, ViewChild, ViewEncapsulation, numberAttribute } from '@angular/core';\nimport { CaxTemplate } from 'cax-design-system/api';\nimport { DomHandler } from 'cax-design-system/dom';\nimport { Nullable, VoidListener } from 'cax-design-system/ts-helpers';\nimport { SplitterResizeEndEvent, SplitterResizeStartEvent } from './splitter.interface';\n/**\n * Splitter is utilized to separate and resize panels.\n * @group Components\n */\n@Component({\n selector: 'cax-splitter',\n templateUrl: 'splitter.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./splitter.scss'],\n host: {\n class: 'cax-element',\n '[class.cax-splitter-panel-nested]': 'nested'\n }\n})\nexport class Splitter {\n @Input() gutterColor: string = '';\n /**\n * Style class of the component.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Style class of the panel.\n * @group Props\n */\n @Input() panelStyleClass: string | undefined;\n /**\n * Inline style of the component.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * Inline style of the panel.\n * @group Props\n */\n @Input() panelStyle: { [klass: string]: any } | null | undefined;\n /**\n * Defines where a stateful splitter keeps its state, valid values are 'session' for sessionStorage and 'local' for localStorage.\n * @group Props\n */\n @Input() stateStorage: string | undefined = 'session';\n /**\n * Storage identifier of a stateful Splitter.\n * @group Props\n */\n @Input() stateKey: string | undefined | null = null;\n /**\n * Orientation of the panels. Valid values are 'horizontal' and 'vertical'.\n * @group Props\n */\n @Input() layout: string | undefined = 'horizontal';\n /**\n * Size of the divider in pixels.\n * @group Props\n */\n @Input({ transform: numberAttribute }) gutterSize: number = 4;\n /**\n * Step factor to increment/decrement the size of the panels while pressing the arrow keys.\n * @group Props\n */\n @Input({ transform: numberAttribute }) step: number = 5;\n /**\n * Minimum size of the elements relative to 100%.\n * @group Props\n */\n @Input() minSizes: number[] = [];\n /**\n * Size of the elements relative to 100%.\n * @group Props\n */\n @Input() get panelSizes(): number[] {\n return this._panelSizes;\n }\n set panelSizes(val: number[]) {\n this._panelSizes = val;\n\n if (this.el && this.el.nativeElement && this.panels.length > 0) {\n let children = [...this.el.nativeElement.children[0].children].filter((child) => DomHandler.hasClass(child, 'cax-splitter-panel'));\n let _panelSizes = [];\n\n this.panels.map((panel, i) => {\n let panelInitialSize = this.panelSizes.length - 1 >= i ? this.panelSizes[i] : null;\n let panelSize = panelInitialSize ?? 100 / this.panels.length;\n _panelSizes[i] = panelSize;\n children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n });\n }\n }\n /**\n * Callback to invoke when resize ends.\n * @param {SplitterResizeEndEvent} event - Custom panel resize end event\n * @group Emits\n */\n @Output() onResizeEnd: EventEmitter<SplitterResizeEndEvent> = new EventEmitter<SplitterResizeEndEvent>();\n /**\n * Callback to invoke when resize starts.\n * @param {SplitterResizeStartEvent} event - Custom panel resize start event\n * @group Emits\n */\n @Output() onResizeStart: EventEmitter<SplitterResizeStartEvent> = new EventEmitter<SplitterResizeStartEvent>();\n\n @ContentChildren(CaxTemplate) templates!: QueryList<CaxTemplate>;\n\n @ViewChild('container', { static: false }) containerViewChild: Nullable<ElementRef>;\n\n nested: boolean = false;\n\n panels: any[] = [];\n\n dragging: boolean = false;\n\n mouseMoveListener: VoidListener;\n\n mouseUpListener: VoidListener;\n\n touchMoveListener: VoidListener;\n\n touchEndListener: VoidListener;\n\n size: Nullable<number>;\n\n gutterElement: Nullable<ElementRef | HTMLElement>;\n\n startPos: Nullable<number>;\n\n prevPanelElement: Nullable<ElementRef | HTMLElement>;\n\n nextPanelElement: Nullable<ElementRef | HTMLElement>;\n\n nextPanelSize: Nullable<number>;\n\n prevPanelSize: Nullable<number>;\n\n _panelSizes: number[] = [];\n\n prevPanelIndex: Nullable<number>;\n\n timer: any;\n\n prevSize: any;\n\n private window: Window;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: any,\n private renderer: Renderer2,\n public cd: ChangeDetectorRef,\n private el: ElementRef\n ) {\n this.window = this.document.defaultView as Window;\n }\n\n ngOnInit() {\n this.nested = this.isNested();\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'panel':\n this.panels.push(item.template);\n break;\n default:\n this.panels.push(item.template);\n break;\n }\n });\n }\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.panels && this.panels.length) {\n let initialized = false;\n if (this.isStateful()) {\n initialized = this.restoreState();\n }\n\n if (!initialized) {\n let children = [...this.el.nativeElement.children[0].children].filter((child) => DomHandler.hasClass(child, 'cax-splitter-panel'));\n let _panelSizes = [];\n\n this.panels.map((panel, i) => {\n let panelInitialSize = this.panelSizes.length - 1 >= i ? this.panelSizes[i] : null;\n let panelSize = panelInitialSize || 100 / this.panels.length;\n _panelSizes[i] = panelSize;\n children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (this.panels.length - 1) * (this.gutterSize as number) + 'px)';\n });\n\n this._panelSizes = _panelSizes;\n\n this.prevSize = parseFloat(_panelSizes[0]).toFixed(4);\n }\n }\n }\n }\n\n resizeStart(event: TouchEvent | MouseEvent, index: number, isKeyDown?: boolean) {\n this.gutterElement = (event.currentTarget as HTMLElement) || (event.target as HTMLElement).parentElement;\n this.size = this.horizontal() ? DomHandler.getWidth((this.containerViewChild as ElementRef).nativeElement) : DomHandler.getHeight((this.containerViewChild as ElementRef).nativeElement);\n\n if (!isKeyDown) {\n this.dragging = true;\n this.startPos = this.horizontal() ? (event instanceof MouseEvent ? event.pageX : event.changedTouches[0].pageX) : event instanceof MouseEvent ? event.pageY : event.changedTouches[0].pageY;\n }\n\n this.prevPanelElement = this.gutterElement.previousElementSibling as HTMLElement;\n this.nextPanelElement = this.gutterElement.nextElementSibling as HTMLElement;\n\n if (isKeyDown) {\n this.prevPanelSize = this.horizontal() ? DomHandler.getOuterWidth(this.prevPanelElement, true) : DomHandler.getOuterHeight(this.prevPanelElement, true);\n this.nextPanelSize = this.horizontal() ? DomHandler.getOuterWidth(this.nextPanelElement, true) : DomHandler.getOuterHeight(this.nextPanelElement, true);\n } else {\n this.prevPanelSize = (100 * (this.horizontal() ? DomHandler.getOuterWidth(this.prevPanelElement, true) : DomHandler.getOuterHeight(this.prevPanelElement, true))) / this.size;\n this.nextPanelSize = (100 * (this.horizontal() ? DomHandler.getOuterWidth(this.nextPanelElement, true) : DomHandler.getOuterHeight(this.nextPanelElement, true))) / this.size;\n }\n\n this.prevPanelIndex = index;\n DomHandler.addClass(this.gutterElement, 'cax-splitter-gutter-resizing');\n this.gutterElement.setAttribute('data-cax-gutter-resizing', 'true');\n DomHandler.addClass((this.containerViewChild as ElementRef).nativeElement, 'cax-splitter-resizing');\n this.containerViewChild.nativeElement.setAttribute('data-cax-resizing', 'true');\n this.onResizeStart.emit({ originalEvent: event, sizes: this._panelSizes as number[] });\n }\n\n onResize(event: MouseEvent, step?: number, isKeyDown?: boolean) {\n let newPos, newPrevPanelSize, newNextPanelSize;\n\n if (isKeyDown) {\n if (this.horizontal()) {\n newPrevPanelSize = (100 * (this.prevPanelSize + step)) / this.size;\n newNextPanelSize = (100 * (this.nextPanelSize - step)) / this.size;\n } else {\n newPrevPanelSize = (100 * (this.prevPanelSize - step)) / this.size;\n newNextPanelSize = (100 * (this.nextPanelSize + step)) / this.size;\n }\n } else {\n if (this.horizontal()) newPos = (event.pageX * 100) / this.size - (this.startPos * 100) / this.size;\n else newPos = (event.pageY * 100) / this.size - (this.startPos * 100) / this.size;\n\n newPrevPanelSize = (this.prevPanelSize as number) + newPos;\n newNextPanelSize = (this.nextPanelSize as number) - newPos;\n }\n\n this.prevSize = parseFloat(newPrevPanelSize).toFixed(4);\n\n if (this.validateResize(newPrevPanelSize, newNextPanelSize)) {\n (this.prevPanelElement as HTMLElement).style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n (this.nextPanelElement as HTMLElement).style.flexBasis = 'calc(' + newNextPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n this._panelSizes[this.prevPanelIndex as number] = newPrevPanelSize;\n this._panelSizes[(this.prevPanelIndex as number) + 1] = newNextPanelSize;\n }\n }\n\n resizeEnd(event: MouseEvent | TouchEvent) {\n if (this.isStateful()) {\n this.saveState();\n }\n\n this.onResizeEnd.emit({ originalEvent: event, sizes: this._panelSizes });\n DomHandler.removeClass(this.gutterElement, 'cax-splitter-gutter-resizing');\n DomHandler.removeClass((this.containerViewChild as ElementRef).nativeElement, 'cax-splitter-resizing');\n this.clear();\n }\n\n onGutterMouseDown(event: MouseEvent, index: number) {\n this.resizeStart(event, index);\n this.bindMouseListeners();\n }\n\n onGutterTouchStart(event: TouchEvent, index: number) {\n if (event.cancelable) {\n this.resizeStart(event, index);\n this.bindTouchListeners();\n\n event.preventDefault();\n }\n }\n\n onGutterTouchMove(event) {\n this.onResize(event);\n event.preventDefault();\n }\n\n onGutterTouchEnd(event: TouchEvent) {\n this.resizeEnd(event);\n this.unbindTouchListeners();\n\n if (event.cancelable) event.preventDefault();\n }\n\n repeat(event, index, step) {\n this.resizeStart(event, index, true);\n this.onResize(event, step, true);\n }\n\n setTimer(event, index, step) {\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.repeat(event, index, step);\n }, 40);\n }\n\n clearTimer() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n\n onGutterKeyUp(event) {\n this.clearTimer();\n this.resizeEnd(event);\n }\n\n onGutterKeyDown(event, index) {\n switch (event.code) {\n case 'ArrowLeft': {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step * -1);\n }\n\n event.preventDefault();\n break;\n }\n\n case 'ArrowRight': {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step);\n }\n\n event.preventDefault();\n break;\n }\n\n case 'ArrowDown': {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step * -1);\n }\n\n event.preventDefault();\n break;\n }\n\n case 'ArrowUp': {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step);\n }\n\n event.preventDefault();\n break;\n }\n\n default:\n //no op\n break;\n }\n }\n\n validateResize(newPrevPanelSize: number, newNextPanelSize: number) {\n const prevPanelIndex = this.prevPanelIndex;\n if (this.minSizes.length > prevPanelIndex && this.minSizes[prevPanelIndex] && this.minSizes[prevPanelIndex] > newPrevPanelSize) {\n return false;\n }\n\n const nextPanelIndex = this.prevPanelIndex + 1;\n if (this.minSizes.length > nextPanelIndex && this.minSizes[nextPanelIndex] && this.minSizes[nextPanelIndex] > newNextPanelSize) {\n return false;\n }\n\n return true;\n }\n\n bindMouseListeners() {\n if (!this.mouseMoveListener) {\n this.mouseMoveListener = this.renderer.listen(this.document, 'mousemove', (event) => {\n this.onResize(event);\n });\n }\n\n if (!this.mouseUpListener) {\n this.mouseUpListener = this.renderer.listen(this.document, 'mouseup', (event) => {\n this.resizeEnd(event);\n this.unbindMouseListeners();\n });\n }\n }\n\n bindTouchListeners() {\n if (!this.touchMoveListener) {\n this.touchMoveListener = this.renderer.listen(this.document, 'touchmove', (event) => {\n this.onResize(event.changedTouches[0]);\n });\n }\n\n if (!this.touchEndListener) {\n this.touchEndListener = this.renderer.listen(this.document, 'touchend', (event) => {\n this.resizeEnd(event);\n this.unbindTouchListeners();\n });\n }\n }\n\n unbindMouseListeners() {\n if (this.mouseMoveListener) {\n this.mouseMoveListener();\n this.mouseMoveListener = null;\n }\n\n if (this.mouseUpListener) {\n this.mouseUpListener();\n this.mouseUpListener = null;\n }\n }\n\n unbindTouchListeners() {\n if (this.touchMoveListener) {\n this.touchMoveListener();\n this.touchMoveListener = null;\n }\n\n if (this.touchEndListener) {\n this.touchEndListener();\n this.touchEndListener = null;\n }\n }\n\n clear() {\n this.dragging = false;\n this.size = null;\n this.startPos = null;\n this.prevPanelElement = null;\n this.nextPanelElement = null;\n this.prevPanelSize = null;\n this.nextPanelSize = null;\n this.gutterElement = null;\n this.prevPanelIndex = null;\n }\n\n isNested() {\n if (this.el.nativeElement) {\n let parent = this.el.nativeElement.parentElement;\n while (parent && !DomHandler.hasClass(parent, 'cax-splitter')) {\n parent = parent.parentElement;\n }\n\n return parent !== null;\n } else {\n return false;\n }\n }\n\n isStateful() {\n return this.stateKey != null;\n }\n\n getStorage() {\n if (isPlatformBrowser(this.platformId)) {\n switch (this.stateStorage) {\n case 'local':\n return this.window.localStorage;\n\n case 'session':\n return this.window.sessionStorage;\n\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n } else {\n throw new Error('Storage is not a available by default on the server.');\n }\n }\n\n saveState() {\n this.getStorage().setItem(this.stateKey as string, JSON.stringify(this._panelSizes));\n }\n\n restoreState() {\n const storage = this.getStorage();\n const stateString = storage.getItem(this.stateKey as string);\n\n if (stateString) {\n this._panelSizes = JSON.parse(stateString);\n let children = [...(this.containerViewChild as ElementRef).nativeElement.children].filter((child) => DomHandler.hasClass(child, 'cax-splitter-panel'));\n children.forEach((child, i) => {\n child.style.flexBasis = 'calc(' + this._panelSizes[i] + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n });\n\n return true;\n }\n\n return false;\n }\n\n containerClass() {\n return {\n 'cax-splitter cax-component': true,\n 'cax-splitter-horizontal': this.layout === 'horizontal',\n 'cax-splitter-vertical': this.layout === 'vertical'\n };\n }\n\n panelContainerClass() {\n return {\n 'cax-splitter-panel': true,\n 'cax-splitter-panel-nested': true\n };\n }\n\n gutterStyle() {\n if (this.horizontal()) return { width: this.gutterSize + 'px' };\n else return { height: this.gutterSize + 'px' };\n }\n\n horizontal() {\n return this.layout === 'horizontal';\n }\n}\n","<div #container [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\" [attr.data-pc-name]=\"'splitter'\" [attr.data-cax-gutter-resizing]=\"false\" [attr.data-pc-section]=\"'root'\">\r\n <ng-template ngFor let-panel [ngForOf]=\"panels\" let-i=\"index\">\r\n <div [ngClass]=\"panelContainerClass()\" [class]=\"panelStyleClass\" [ngStyle]=\"panelStyle\" tabindex=\"-1\" [attr.data-pc-name]=\"'splitter'\" [attr.data-pc-section]=\"'root'\">\r\n <ng-container *ngTemplateOutlet=\"panel\"></ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"i !== panels.length - 1\"\r\n class=\"cax-splitter-gutter\"\r\n role=\"separator\"\r\n tabindex=\"-1\"\r\n (mousedown)=\"onGutterMouseDown($event, i)\"\r\n (touchstart)=\"onGutterTouchStart($event, i)\"\r\n (touchmove)=\"onGutterTouchMove($event)\"\r\n (touchend)=\"onGutterTouchEnd($event, i)\"\r\n [attr.data-cax-gutter-resizing]=\"false\"\r\n [attr.data-pc-section]=\"'gutter'\"\r\n [ngStyle]=\"{'background-color': gutterColor }\"\r\n >\r\n <div\r\n class=\"cax-splitter-gutter-handle\"\r\n tabindex=\"0\"\r\n [ngStyle]=\"gutterStyle()\"\r\n [attr.aria-orientation]=\"layout\"\r\n [attr.aria-valuenow]=\"prevSize\"\r\n [attr.data-pc-section]=\"'gutterhandle'\"\r\n (keyup)=\"onGutterKeyUp($event)\"\r\n (keydown)=\"onGutterKeyDown($event, i)\"\r\n ></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { Splitter } from './splitter';\n\n@NgModule({\n imports: [CommonModule],\n exports: [Splitter, SharedModule],\n declarations: [Splitter]\n})\nexport class SplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/menu/menu.d.ts
CHANGED
|
@@ -5,11 +5,6 @@ import { MenuItem, OverlayService, caxConfig, CaxTemplate } from 'cax-design-sys
|
|
|
5
5
|
import { ConnectedOverlayScrollHandler } from 'cax-design-system/dom';
|
|
6
6
|
import { Nullable, VoidListener } from 'cax-design-system/ts-helpers';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common";
|
|
9
|
-
import * as i2 from "@angular/router";
|
|
10
|
-
import * as i3 from "cax-design-system/ripple";
|
|
11
|
-
import * as i4 from "cax-design-system/tooltip";
|
|
12
|
-
import * as i5 from "cax-design-system/api";
|
|
13
8
|
export declare class SafeHtmlPipe implements PipeTransform {
|
|
14
9
|
private readonly platformId;
|
|
15
10
|
private readonly sanitizer;
|
|
@@ -26,7 +21,7 @@ export declare class MenuItemContent {
|
|
|
26
21
|
constructor(menu: Menu);
|
|
27
22
|
onItemClick(event: any, item: any): void;
|
|
28
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<MenuItemContent, never>;
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MenuItemContent, "[
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MenuItemContent, "[caxMenuItemContent]", never, { "item": { "alias": "caxMenuItemContent"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; }, { "onMenuItemClick": "onMenuItemClick"; }, never, never, false, never>;
|
|
30
25
|
}
|
|
31
26
|
/**
|
|
32
27
|
* Menu is a navigation / command component that supports dynamic and static positioning.
|
|
@@ -207,14 +202,9 @@ export declare class Menu implements OnDestroy {
|
|
|
207
202
|
hasSubMenu(): boolean;
|
|
208
203
|
isItemHidden(item: any): boolean;
|
|
209
204
|
static ɵfac: i0.ɵɵFactoryDeclaration<Menu, never>;
|
|
210
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<Menu, "
|
|
205
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Menu, "cax-menu", never, { "model": { "alias": "model"; "required": false; }; "popup": { "alias": "popup"; "required": false; }; "style": { "alias": "style"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "autoZIndex": { "alias": "autoZIndex"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "showTransitionOptions": { "alias": "showTransitionOptions"; "required": false; }; "hideTransitionOptions": { "alias": "hideTransitionOptions"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "id": { "alias": "id"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; }, { "onShow": "onShow"; "onHide": "onHide"; "onBlur": "onBlur"; "onFocus": "onFocus"; }, ["templates"], never, false, never>;
|
|
211
206
|
static ngAcceptInputType_popup: unknown;
|
|
212
207
|
static ngAcceptInputType_autoZIndex: unknown;
|
|
213
208
|
static ngAcceptInputType_baseZIndex: unknown;
|
|
214
209
|
static ngAcceptInputType_tabindex: unknown;
|
|
215
210
|
}
|
|
216
|
-
export declare class MenuModule {
|
|
217
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<MenuModule, never>;
|
|
218
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<MenuModule, [typeof Menu, typeof MenuItemContent, typeof SafeHtmlPipe], [typeof i1.CommonModule, typeof i2.RouterModule, typeof i3.RippleModule, typeof i4.TooltipModule, typeof i5.SharedModule], [typeof Menu, typeof i2.RouterModule, typeof i4.TooltipModule, typeof i5.SharedModule]>;
|
|
219
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<MenuModule>;
|
|
220
|
-
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./menu";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/router";
|
|
5
|
+
import * as i4 from "cax-design-system/ripple";
|
|
6
|
+
import * as i5 from "cax-design-system/tooltip";
|
|
7
|
+
import * as i6 from "cax-design-system/api";
|
|
8
|
+
export declare class MenuModule {
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MenuModule, never>;
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<MenuModule, [typeof i1.Menu, typeof i1.MenuItemContent, typeof i1.SafeHtmlPipe], [typeof i2.CommonModule, typeof i3.RouterModule, typeof i4.RippleModule, typeof i5.TooltipModule, typeof i6.SharedModule], [typeof i1.Menu, typeof i3.RouterModule, typeof i5.TooltipModule, typeof i6.SharedModule]>;
|
|
11
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<MenuModule>;
|
|
12
|
+
}
|
package/menu/public_api.d.ts
CHANGED