@ng-matero/extensions 12.3.0 → 12.5.1
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/_all-color.scss +47 -0
- package/_all-theme.scss +5 -3
- package/_index.scss +4 -2
- package/_theming.scss +4 -2
- package/alert/_alert-theme.import.scss +2 -2
- package/alert/_alert-theme.scss +38 -17
- package/alert/alert.component.d.ts +6 -6
- package/alert/alert.component.scss +2 -1
- package/alert/mtxAlert.metadata.json +1 -1
- package/bundles/extensions.umd.js +21 -10
- package/bundles/extensions.umd.js.map +1 -1
- package/bundles/mtxAlert.umd.js +32 -14
- package/bundles/mtxAlert.umd.js.map +1 -1
- package/bundles/mtxButton.umd.js +36 -5
- package/bundles/mtxButton.umd.js.map +1 -1
- package/bundles/mtxCheckboxGroup.umd.js +10 -1
- package/bundles/mtxCheckboxGroup.umd.js.map +1 -1
- package/bundles/mtxColorPicker.umd.js +10 -1
- package/bundles/mtxColorPicker.umd.js.map +1 -1
- package/bundles/mtxColumnResize.umd.js +55 -6
- package/bundles/mtxColumnResize.umd.js.map +1 -1
- package/bundles/mtxCore.umd.js +10 -1
- package/bundles/mtxCore.umd.js.map +1 -1
- package/bundles/mtxDatetimepicker.umd.js +139 -32
- package/bundles/mtxDatetimepicker.umd.js.map +1 -1
- package/bundles/mtxDialog.umd.js +17 -2
- package/bundles/mtxDialog.umd.js.map +1 -1
- package/bundles/mtxFormGroup.umd.js +10 -1
- package/bundles/mtxFormGroup.umd.js.map +1 -1
- package/bundles/mtxGrid.umd.js +92 -12
- package/bundles/mtxGrid.umd.js.map +1 -1
- package/bundles/mtxLoader.umd.js +37 -8
- package/bundles/mtxLoader.umd.js.map +1 -1
- package/bundles/mtxPipes.umd.js +2 -0
- package/bundles/mtxPipes.umd.js.map +1 -1
- package/bundles/mtxPopover.umd.js +27 -3
- package/bundles/mtxPopover.umd.js.map +1 -1
- package/bundles/mtxProgress.umd.js +31 -4
- package/bundles/mtxProgress.umd.js.map +1 -1
- package/bundles/mtxSelect.umd.js +107 -13
- package/bundles/mtxSelect.umd.js.map +1 -1
- package/bundles/mtxSlider.umd.js +1551 -0
- package/bundles/mtxSlider.umd.js.map +1 -0
- package/bundles/mtxSplit.umd.js +23 -6
- package/bundles/mtxSplit.umd.js.map +1 -1
- package/bundles/mtxText3d.umd.js +10 -1
- package/bundles/mtxText3d.umd.js.map +1 -1
- package/bundles/mtxTooltip.umd.js +18 -2
- package/bundles/mtxTooltip.umd.js.map +1 -1
- package/button/button-loading.directive.d.ts +9 -2
- package/button/mtxButton.metadata.json +1 -1
- package/datetimepicker/_datetimepicker-theme.import.scss +4 -2
- package/datetimepicker/_datetimepicker-theme.scss +101 -29
- package/datetimepicker/calendar-body.scss +0 -3
- package/datetimepicker/calendar.d.ts +10 -3
- package/datetimepicker/calendar.scss +5 -22
- package/datetimepicker/clock.scss +0 -2
- package/datetimepicker/datetimepicker-content.scss +2 -2
- package/datetimepicker/datetimepicker-input.d.ts +5 -3
- package/datetimepicker/datetimepicker-toggle.d.ts +2 -0
- package/datetimepicker/datetimepicker.d.ts +13 -3
- package/datetimepicker/mtxDatetimepicker.metadata.json +1 -1
- package/esm2015/alert/alert.component.js +25 -11
- package/esm2015/alert/alert.module.js +2 -1
- package/esm2015/button/button-loading.directive.js +31 -8
- package/esm2015/button/button.module.js +2 -1
- package/esm2015/checkbox-group/checkbox-group.component.js +10 -2
- package/esm2015/checkbox-group/checkbox-group.module.js +2 -1
- package/esm2015/color-picker/color-picker.component.js +10 -2
- package/esm2015/color-picker/color-picker.module.js +2 -1
- package/esm2015/column-resize/column-resize-directives/column-resize-flex.js +9 -2
- package/esm2015/column-resize/column-resize-directives/column-resize.js +9 -2
- package/esm2015/column-resize/column-resize-module.js +2 -1
- package/esm2015/column-resize/column-resize-notifier.js +10 -2
- package/esm2015/column-resize/column-resize.js +2 -1
- package/esm2015/column-resize/column-size-store.js +2 -1
- package/esm2015/column-resize/event-dispatcher.js +9 -2
- package/esm2015/column-resize/overlay-handle.js +2 -1
- package/esm2015/column-resize/resizable.js +2 -1
- package/esm2015/column-resize/resize-strategy.js +18 -3
- package/esm2015/core/datetime/datetime.module.js +3 -1
- package/esm2015/core/datetime/native-datetime-adapter.js +9 -2
- package/esm2015/datetimepicker/calendar-body.js +5 -3
- package/esm2015/datetimepicker/calendar.js +31 -12
- package/esm2015/datetimepicker/clock.js +11 -3
- package/esm2015/datetimepicker/datetimepicker-input.js +12 -4
- package/esm2015/datetimepicker/datetimepicker-toggle.js +11 -3
- package/esm2015/datetimepicker/datetimepicker.js +30 -8
- package/esm2015/datetimepicker/datetimepicker.module.js +2 -1
- package/esm2015/datetimepicker/month-view.js +11 -3
- package/esm2015/datetimepicker/multi-year-view.js +11 -3
- package/esm2015/datetimepicker/year-view.js +11 -3
- package/esm2015/dialog/dialog.component.js +9 -2
- package/esm2015/dialog/dialog.js +9 -2
- package/esm2015/dialog/dialog.module.js +2 -1
- package/esm2015/extensions-experimental.module.js +2 -1
- package/esm2015/extensions.module.js +6 -3
- package/esm2015/form-group/form-group.component.js +10 -2
- package/esm2015/form-group/form-group.module.js +2 -1
- package/esm2015/grid/cell-selection.directive.js +62 -0
- package/esm2015/{data-grid → grid}/cell.component.js +10 -2
- package/esm2015/{data-grid → grid}/column-menu.component.js +3 -1
- package/esm2015/grid/column-resize/column-resize-directives/column-resize-flex.js +47 -0
- package/esm2015/grid/column-resize/column-resize-directives/column-resize.js +47 -0
- package/esm2015/grid/column-resize/column-resize-directives/common.js +34 -0
- package/esm2015/grid/column-resize/column-resize-module.js +36 -0
- package/esm2015/grid/column-resize/overlay-handle.js +68 -0
- package/esm2015/grid/column-resize/resizable-directives/common.js +29 -0
- package/esm2015/grid/column-resize/resizable-directives/resizable.js +75 -0
- package/esm2015/grid/column-resize/resize-strategy.js +45 -0
- package/esm2015/grid/expansion-toggle.directive.js +62 -0
- package/esm2015/{data-grid → grid}/grid.component.js +10 -2
- package/esm2015/grid/grid.interface.js +2 -0
- package/esm2015/grid/grid.module.js +69 -0
- package/esm2015/grid/grid.service.js +50 -0
- package/esm2015/grid/mtxGrid.js +5 -0
- package/esm2015/grid/public-api.js +17 -0
- package/esm2015/loader/loader.component.js +26 -5
- package/esm2015/loader/loader.module.js +2 -1
- package/esm2015/pipes/pipes.module.js +2 -1
- package/esm2015/pipes/to-observable.pipe.js +2 -1
- package/esm2015/popover/popover-module.js +2 -1
- package/esm2015/popover/popover-target.js +9 -2
- package/esm2015/popover/popover-trigger.js +10 -2
- package/esm2015/popover/popover.js +10 -2
- package/esm2015/progress/progress.component.js +20 -1
- package/esm2015/progress/progress.module.js +2 -1
- package/esm2015/public-api.js +4 -3
- package/esm2015/select/option.component.js +10 -2
- package/esm2015/select/select.component.js +10 -2
- package/esm2015/select/select.module.js +2 -1
- package/esm2015/select/templates.directive.js +89 -12
- package/esm2015/slider/mtxSlider.js +5 -0
- package/esm2015/slider/public-api.js +3 -0
- package/esm2015/slider/slider-module.js +15 -0
- package/esm2015/slider/slider.js +1115 -0
- package/esm2015/split/interface.js +2 -0
- package/esm2015/split/mtxSplit.js +5 -0
- package/esm2015/split/public-api.js +6 -0
- package/esm2015/split/split-pane.directive.js +156 -0
- package/esm2015/split/split.component.js +620 -0
- package/esm2015/split/split.module.js +15 -0
- package/esm2015/split/utils.js +227 -0
- package/esm2015/text3d/text3d.component.js +10 -2
- package/esm2015/text3d/text3d.module.js +2 -1
- package/esm2015/tooltip/tooltip-module.js +2 -1
- package/esm2015/tooltip/tooltip.js +18 -3
- package/extensions.metadata.json +1 -1
- package/fesm2015/extensions.js +9 -4
- package/fesm2015/extensions.js.map +1 -1
- package/fesm2015/mtxAlert.js +25 -10
- package/fesm2015/mtxAlert.js.map +1 -1
- package/fesm2015/mtxButton.js +31 -7
- package/fesm2015/mtxButton.js.map +1 -1
- package/fesm2015/mtxCheckboxGroup.js +10 -1
- package/fesm2015/mtxCheckboxGroup.js.map +1 -1
- package/fesm2015/mtxColorPicker.js +10 -1
- package/fesm2015/mtxColorPicker.js.map +1 -1
- package/fesm2015/mtxColumnResize.js +55 -6
- package/fesm2015/mtxColumnResize.js.map +1 -1
- package/fesm2015/mtxCore.js +10 -1
- package/fesm2015/mtxCore.js.map +1 -1
- package/fesm2015/mtxDatetimepicker.js +120 -29
- package/fesm2015/mtxDatetimepicker.js.map +1 -1
- package/fesm2015/mtxDialog.js +17 -2
- package/fesm2015/mtxDialog.js.map +1 -1
- package/fesm2015/mtxFormGroup.js +10 -1
- package/fesm2015/mtxFormGroup.js.map +1 -1
- package/fesm2015/mtxGrid.js +90 -10
- package/fesm2015/mtxGrid.js.map +1 -1
- package/fesm2015/mtxLoader.js +26 -4
- package/fesm2015/mtxLoader.js.map +1 -1
- package/fesm2015/mtxPipes.js +2 -0
- package/fesm2015/mtxPipes.js.map +1 -1
- package/fesm2015/mtxPopover.js +27 -3
- package/fesm2015/mtxPopover.js.map +1 -1
- package/fesm2015/mtxProgress.js +20 -0
- package/fesm2015/mtxProgress.js.map +1 -1
- package/fesm2015/mtxSelect.js +107 -13
- package/fesm2015/mtxSelect.js.map +1 -1
- package/fesm2015/mtxSlider.js +1134 -0
- package/fesm2015/mtxSlider.js.map +1 -0
- package/fesm2015/mtxSplit.js +21 -4
- package/fesm2015/mtxSplit.js.map +1 -1
- package/fesm2015/mtxText3d.js +10 -1
- package/fesm2015/mtxText3d.js.map +1 -1
- package/fesm2015/mtxTooltip.js +18 -2
- package/fesm2015/mtxTooltip.js.map +1 -1
- package/form-group/_form-group-theme.import.scss +2 -2
- package/form-group/_form-group-theme.scss +46 -22
- package/form-group/form-group.component.d.ts +2 -0
- package/grid/_grid-theme.import.scss +2 -0
- package/grid/_grid-theme.scss +114 -0
- package/{data-grid → grid}/cell-selection.directive.d.ts +0 -0
- package/{data-grid → grid}/cell.component.d.ts +0 -0
- package/{data-grid → grid}/cell.component.scss +0 -0
- package/{data-grid → grid}/column-menu.component.d.ts +0 -0
- package/{data-grid → grid}/column-menu.component.scss +0 -0
- package/{data-grid → grid}/column-resize/_column-resize.scss +19 -13
- package/{data-grid → grid}/column-resize/column-resize-directives/column-resize-flex.d.ts +0 -0
- package/{data-grid → grid}/column-resize/column-resize-directives/column-resize.d.ts +0 -0
- package/{data-grid → grid}/column-resize/column-resize-directives/common.d.ts +0 -0
- package/{data-grid → grid}/column-resize/column-resize-module.d.ts +0 -0
- package/{data-grid → grid}/column-resize/overlay-handle.d.ts +0 -0
- package/{data-grid → grid}/column-resize/resizable-directives/common.d.ts +0 -0
- package/{data-grid → grid}/column-resize/resizable-directives/resizable.d.ts +0 -0
- package/{data-grid → grid}/column-resize/resize-strategy.d.ts +0 -0
- package/{data-grid → grid}/expansion-toggle.directive.d.ts +0 -0
- package/{data-grid → grid}/grid.component.d.ts +0 -0
- package/{data-grid → grid}/grid.component.scss +0 -0
- package/{data-grid → grid}/grid.interface.d.ts +0 -0
- package/{data-grid → grid}/grid.module.d.ts +0 -0
- package/{data-grid → grid}/grid.service.d.ts +0 -0
- package/{data-grid → grid}/mtxGrid.d.ts +0 -0
- package/{data-grid → grid}/mtxGrid.metadata.json +1 -1
- package/{data-grid → grid}/package.json +2 -2
- package/{data-grid → grid}/public-api.d.ts +0 -0
- package/loader/_loader-theme.import.scss +2 -2
- package/loader/_loader-theme.scss +30 -6
- package/loader/loader.component.d.ts +9 -2
- package/loader/mtxLoader.metadata.json +1 -1
- package/package.json +3 -3
- package/popover/_popover-theme.import.scss +2 -2
- package/popover/_popover-theme.scss +32 -8
- package/progress/_progress-theme.import.scss +2 -2
- package/progress/_progress-theme.scss +33 -8
- package/progress/mtxProgress.metadata.json +1 -1
- package/progress/progress.component.d.ts +9 -2
- package/public-api.d.ts +3 -2
- package/select/_select-theme.import.scss +2 -2
- package/select/_select-theme.scss +55 -31
- package/slider/_slider-theme.import.scss +2 -0
- package/slider/_slider-theme.scss +233 -0
- package/{split-pane/mtxSplit.d.ts → slider/mtxSlider.d.ts} +0 -0
- package/slider/mtxSlider.metadata.json +1 -0
- package/slider/package.json +11 -0
- package/slider/public-api.d.ts +2 -0
- package/slider/slider-module.d.ts +2 -0
- package/slider/slider.d.ts +274 -0
- package/slider/slider.scss +513 -0
- package/split/_split-theme.import.scss +2 -0
- package/split/_split-theme.scss +41 -0
- package/{split-pane → split}/interface.d.ts +0 -0
- package/split/mtxSplit.d.ts +4 -0
- package/split/mtxSplit.metadata.json +1 -0
- package/{split-pane → split}/package.json +2 -2
- package/{split-pane → split}/public-api.d.ts +0 -0
- package/{split-pane → split}/split-pane.directive.d.ts +0 -0
- package/{split-pane → split}/split.component.d.ts +0 -0
- package/{split-pane → split}/split.component.scss +3 -2
- package/{split-pane → split}/split.module.d.ts +0 -0
- package/{split-pane → split}/utils.d.ts +0 -0
- package/text3d/_text3d-theme.import.scss +2 -2
- package/text3d/_text3d-theme.scss +32 -7
- package/tooltip/_tooltip-theme.import.scss +2 -2
- package/tooltip/_tooltip-theme.scss +32 -15
- package/data-grid/_grid-theme.import.scss +0 -2
- package/data-grid/_grid-theme.scss +0 -90
- package/esm2015/data-grid/cell-selection.directive.js +0 -54
- package/esm2015/data-grid/column-resize/column-resize-directives/column-resize-flex.js +0 -40
- package/esm2015/data-grid/column-resize/column-resize-directives/column-resize.js +0 -40
- package/esm2015/data-grid/column-resize/column-resize-directives/common.js +0 -34
- package/esm2015/data-grid/column-resize/column-resize-module.js +0 -34
- package/esm2015/data-grid/column-resize/overlay-handle.js +0 -61
- package/esm2015/data-grid/column-resize/resizable-directives/common.js +0 -29
- package/esm2015/data-grid/column-resize/resizable-directives/resizable.js +0 -67
- package/esm2015/data-grid/column-resize/resize-strategy.js +0 -38
- package/esm2015/data-grid/expansion-toggle.directive.js +0 -54
- package/esm2015/data-grid/grid.interface.js +0 -2
- package/esm2015/data-grid/grid.module.js +0 -68
- package/esm2015/data-grid/grid.service.js +0 -43
- package/esm2015/data-grid/mtxGrid.js +0 -5
- package/esm2015/data-grid/public-api.js +0 -17
- package/esm2015/split-pane/interface.js +0 -2
- package/esm2015/split-pane/mtxSplit.js +0 -5
- package/esm2015/split-pane/public-api.js +0 -6
- package/esm2015/split-pane/split-pane.directive.js +0 -148
- package/esm2015/split-pane/split.component.js +0 -612
- package/esm2015/split-pane/split.module.js +0 -14
- package/esm2015/split-pane/utils.js +0 -227
- package/split-pane/_split-theme.import.scss +0 -2
- package/split-pane/_split-theme.scss +0 -17
- package/split-pane/mtxSplit.metadata.json +0 -1
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { MtxSplitComponent } from './split.component';
|
|
4
|
-
import { MtxSplitPaneDirective } from './split-pane.directive';
|
|
5
|
-
export class MtxSplitModule {
|
|
6
|
-
}
|
|
7
|
-
MtxSplitModule.decorators = [
|
|
8
|
-
{ type: NgModule, args: [{
|
|
9
|
-
imports: [CommonModule],
|
|
10
|
-
declarations: [MtxSplitComponent, MtxSplitPaneDirective],
|
|
11
|
-
exports: [MtxSplitComponent, MtxSplitPaneDirective],
|
|
12
|
-
},] }
|
|
13
|
-
];
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcGxpdC1wYW5lL3NwbGl0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU8vRCxNQUFNLE9BQU8sY0FBYzs7O1lBTDFCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLFlBQVksRUFBRSxDQUFDLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDO2dCQUN4RCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQzthQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBNdHhTcGxpdENvbXBvbmVudCB9IGZyb20gJy4vc3BsaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXR4U3BsaXRQYW5lRGlyZWN0aXZlIH0gZnJvbSAnLi9zcGxpdC1wYW5lLmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW010eFNwbGl0Q29tcG9uZW50LCBNdHhTcGxpdFBhbmVEaXJlY3RpdmVdLFxyXG4gIGV4cG9ydHM6IFtNdHhTcGxpdENvbXBvbmVudCwgTXR4U3BsaXRQYW5lRGlyZWN0aXZlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE10eFNwbGl0TW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
export function getPointFromEvent(event) {
|
|
2
|
-
// TouchEvent
|
|
3
|
-
if (event.changedTouches !== undefined &&
|
|
4
|
-
event.changedTouches.length > 0) {
|
|
5
|
-
return {
|
|
6
|
-
x: event.changedTouches[0].clientX,
|
|
7
|
-
y: event.changedTouches[0].clientY,
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
// MouseEvent
|
|
11
|
-
// tslint:disable-next-line: one-line
|
|
12
|
-
else if (event.clientX !== undefined &&
|
|
13
|
-
event.clientY !== undefined) {
|
|
14
|
-
return {
|
|
15
|
-
x: event.clientX,
|
|
16
|
-
y: event.clientY,
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
export function getElementPixelSize(elRef, direction) {
|
|
22
|
-
const rect = elRef.nativeElement.getBoundingClientRect();
|
|
23
|
-
return direction === 'horizontal' ? rect.width : rect.height;
|
|
24
|
-
}
|
|
25
|
-
export function getInputBoolean(v) {
|
|
26
|
-
return typeof v === 'boolean' ? v : v === 'false' ? false : true;
|
|
27
|
-
}
|
|
28
|
-
export function getInputPositiveNumber(v, defaultValue) {
|
|
29
|
-
if (v === null || v === undefined) {
|
|
30
|
-
return defaultValue;
|
|
31
|
-
}
|
|
32
|
-
v = Number(v);
|
|
33
|
-
return !isNaN(v) && v >= 0 ? v : defaultValue;
|
|
34
|
-
}
|
|
35
|
-
export function isUserSizesValid(unit, sizes) {
|
|
36
|
-
// All sizes have to be not null and total should be 100
|
|
37
|
-
if (unit === 'percent') {
|
|
38
|
-
const total = sizes.reduce((_total, s) => (s !== null ? _total + s : _total), 0);
|
|
39
|
-
return sizes.every(s => s !== null) && total && total > 99.9 && total < 100.1;
|
|
40
|
-
}
|
|
41
|
-
// A size at null is mandatory but only one.
|
|
42
|
-
if (unit === 'pixel') {
|
|
43
|
-
return sizes.filter(s => s === null).length === 1;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
export function getAreaMinSize(a) {
|
|
47
|
-
if (a.size === null) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
if (a.component.lockSize === true) {
|
|
51
|
-
return a.size;
|
|
52
|
-
}
|
|
53
|
-
if (a.component.minSize === null) {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
if (a.component.minSize > a.size) {
|
|
57
|
-
return a.size;
|
|
58
|
-
}
|
|
59
|
-
return a.component.minSize;
|
|
60
|
-
}
|
|
61
|
-
export function getAreaMaxSize(a) {
|
|
62
|
-
if (a.size === null) {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
if (a.component.lockSize === true) {
|
|
66
|
-
return a.size;
|
|
67
|
-
}
|
|
68
|
-
if (a.component.maxSize === null) {
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
if (a.component.maxSize < a.size) {
|
|
72
|
-
return a.size;
|
|
73
|
-
}
|
|
74
|
-
return a.component.maxSize;
|
|
75
|
-
}
|
|
76
|
-
export function getGutterSideAbsorptionCapacity(unit, sideAreas, pixels, allAreasSizePixel) {
|
|
77
|
-
return sideAreas.reduce((acc, area) => {
|
|
78
|
-
const res = getAreaAbsorptionCapacity(unit, area, acc.remain, allAreasSizePixel);
|
|
79
|
-
acc.list.push(res);
|
|
80
|
-
acc.remain = res && res.pixelRemain;
|
|
81
|
-
return acc;
|
|
82
|
-
}, { remain: pixels, list: [] });
|
|
83
|
-
}
|
|
84
|
-
function getAreaAbsorptionCapacity(unit, areaSnapshot, pixels, allAreasSizePixel) {
|
|
85
|
-
// No pain no gain
|
|
86
|
-
if (pixels === 0) {
|
|
87
|
-
return {
|
|
88
|
-
areaSnapshot,
|
|
89
|
-
pixelAbsorb: 0,
|
|
90
|
-
percentAfterAbsorption: areaSnapshot.sizePercentAtStart,
|
|
91
|
-
pixelRemain: 0,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
// Area start at zero and need to be reduced, not possible
|
|
95
|
-
if (areaSnapshot.sizePixelAtStart === 0 && pixels < 0) {
|
|
96
|
-
return {
|
|
97
|
-
areaSnapshot,
|
|
98
|
-
pixelAbsorb: 0,
|
|
99
|
-
percentAfterAbsorption: 0,
|
|
100
|
-
pixelRemain: pixels,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
if (unit === 'percent') {
|
|
104
|
-
return getAreaAbsorptionCapacityPercent(areaSnapshot, pixels, allAreasSizePixel);
|
|
105
|
-
}
|
|
106
|
-
if (unit === 'pixel') {
|
|
107
|
-
return getAreaAbsorptionCapacityPixel(areaSnapshot, pixels, allAreasSizePixel);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
function getAreaAbsorptionCapacityPercent(areaSnapshot, pixels, allAreasSizePixel) {
|
|
111
|
-
const tempPixelSize = areaSnapshot.sizePixelAtStart + pixels;
|
|
112
|
-
const tempPercentSize = (tempPixelSize / allAreasSizePixel) * 100;
|
|
113
|
-
// ENLARGE AREA
|
|
114
|
-
if (pixels > 0) {
|
|
115
|
-
// If maxSize & newSize bigger than it > absorb to max and return remaining pixels
|
|
116
|
-
if (areaSnapshot.area.maxSize !== null && tempPercentSize > areaSnapshot.area.maxSize) {
|
|
117
|
-
// Use area.area.maxSize as newPercentSize and return calculate pixels remaining
|
|
118
|
-
const maxSizePixel = (areaSnapshot.area.maxSize / 100) * allAreasSizePixel;
|
|
119
|
-
return {
|
|
120
|
-
areaSnapshot,
|
|
121
|
-
pixelAbsorb: maxSizePixel,
|
|
122
|
-
percentAfterAbsorption: areaSnapshot.area.maxSize,
|
|
123
|
-
pixelRemain: areaSnapshot.sizePixelAtStart + pixels - maxSizePixel,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
areaSnapshot,
|
|
128
|
-
pixelAbsorb: pixels,
|
|
129
|
-
percentAfterAbsorption: tempPercentSize > 100 ? 100 : tempPercentSize,
|
|
130
|
-
pixelRemain: 0,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
// REDUCE AREA
|
|
134
|
-
// tslint:disable-next-line: one-line
|
|
135
|
-
else if (pixels < 0) {
|
|
136
|
-
// If minSize & newSize smaller than it > absorb to min and return remaining pixels
|
|
137
|
-
if (areaSnapshot.area.minSize !== null && tempPercentSize < areaSnapshot.area.minSize) {
|
|
138
|
-
// Use area.area.minSize as newPercentSize and return calculate pixels remaining
|
|
139
|
-
const minSizePixel = (areaSnapshot.area.minSize / 100) * allAreasSizePixel;
|
|
140
|
-
return {
|
|
141
|
-
areaSnapshot,
|
|
142
|
-
pixelAbsorb: minSizePixel,
|
|
143
|
-
percentAfterAbsorption: areaSnapshot.area.minSize,
|
|
144
|
-
pixelRemain: areaSnapshot.sizePixelAtStart + pixels - minSizePixel,
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
// If reduced under zero > return remaining pixels
|
|
148
|
-
// tslint:disable-next-line: one-line
|
|
149
|
-
else if (tempPercentSize < 0) {
|
|
150
|
-
// Use 0 as newPercentSize and return calculate pixels remaining
|
|
151
|
-
return {
|
|
152
|
-
areaSnapshot,
|
|
153
|
-
pixelAbsorb: -areaSnapshot.sizePixelAtStart,
|
|
154
|
-
percentAfterAbsorption: 0,
|
|
155
|
-
pixelRemain: pixels + areaSnapshot.sizePixelAtStart,
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
return {
|
|
159
|
-
areaSnapshot,
|
|
160
|
-
pixelAbsorb: pixels,
|
|
161
|
-
percentAfterAbsorption: tempPercentSize,
|
|
162
|
-
pixelRemain: 0,
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
function getAreaAbsorptionCapacityPixel(areaSnapshot, pixels, containerSizePixel) {
|
|
167
|
-
const tempPixelSize = areaSnapshot.sizePixelAtStart + pixels;
|
|
168
|
-
// ENLARGE AREA
|
|
169
|
-
if (pixels > 0) {
|
|
170
|
-
// If maxSize & newSize bigger than it > absorb to max and return remaining pixels
|
|
171
|
-
if (areaSnapshot.area.maxSize !== null && tempPixelSize > areaSnapshot.area.maxSize) {
|
|
172
|
-
return {
|
|
173
|
-
areaSnapshot,
|
|
174
|
-
pixelAbsorb: areaSnapshot.area.maxSize - areaSnapshot.sizePixelAtStart,
|
|
175
|
-
percentAfterAbsorption: -1,
|
|
176
|
-
pixelRemain: tempPixelSize - areaSnapshot.area.maxSize,
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
return {
|
|
180
|
-
areaSnapshot,
|
|
181
|
-
pixelAbsorb: pixels,
|
|
182
|
-
percentAfterAbsorption: -1,
|
|
183
|
-
pixelRemain: 0,
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
// REDUCE AREA
|
|
187
|
-
// tslint:disable-next-line: one-line
|
|
188
|
-
else if (pixels < 0) {
|
|
189
|
-
// If minSize & newSize smaller than it > absorb to min and return remaining pixels
|
|
190
|
-
if (areaSnapshot.area.minSize !== null && tempPixelSize < areaSnapshot.area.minSize) {
|
|
191
|
-
return {
|
|
192
|
-
areaSnapshot,
|
|
193
|
-
pixelAbsorb: areaSnapshot.area.minSize + pixels - tempPixelSize,
|
|
194
|
-
percentAfterAbsorption: -1,
|
|
195
|
-
pixelRemain: tempPixelSize - areaSnapshot.area.minSize,
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
// If reduced under zero > return remaining pixels
|
|
199
|
-
// tslint:disable-next-line: one-line
|
|
200
|
-
else if (tempPixelSize < 0) {
|
|
201
|
-
return {
|
|
202
|
-
areaSnapshot,
|
|
203
|
-
pixelAbsorb: -areaSnapshot.sizePixelAtStart,
|
|
204
|
-
percentAfterAbsorption: -1,
|
|
205
|
-
pixelRemain: pixels + areaSnapshot.sizePixelAtStart,
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
return {
|
|
209
|
-
areaSnapshot,
|
|
210
|
-
pixelAbsorb: pixels,
|
|
211
|
-
percentAfterAbsorption: -1,
|
|
212
|
-
pixelRemain: 0,
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
export function updateAreaSize(unit, item) {
|
|
217
|
-
if (unit === 'percent') {
|
|
218
|
-
item.areaSnapshot.area.size = item.percentAfterAbsorption;
|
|
219
|
-
}
|
|
220
|
-
else if (unit === 'pixel') {
|
|
221
|
-
// Update size except for the wildcard size area
|
|
222
|
-
if (item.areaSnapshot.area.size !== null) {
|
|
223
|
-
item.areaSnapshot.area.size = item.areaSnapshot.sizePixelAtStart + item.pixelAbsorb;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9leHRlbnNpb25zL3NwbGl0LXBhbmUvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQThCO0lBQzlELGFBQWE7SUFDYixJQUNHLEtBQW9CLENBQUMsY0FBYyxLQUFLLFNBQVM7UUFDakQsS0FBb0IsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDL0M7UUFDQSxPQUFPO1lBQ0wsQ0FBQyxFQUFHLEtBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87WUFDbEQsQ0FBQyxFQUFHLEtBQW9CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87U0FDbkQsQ0FBQztLQUNIO0lBQ0QsYUFBYTtJQUNiLHFDQUFxQztTQUNoQyxJQUNGLEtBQW9CLENBQUMsT0FBTyxLQUFLLFNBQVM7UUFDMUMsS0FBb0IsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUMzQztRQUNBLE9BQU87WUFDTCxDQUFDLEVBQUcsS0FBb0IsQ0FBQyxPQUFPO1lBQ2hDLENBQUMsRUFBRyxLQUFvQixDQUFDLE9BQU87U0FDakMsQ0FBQztLQUNIO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxLQUFpQixFQUNqQixTQUFvQztJQUVwQyxNQUFNLElBQUksR0FBSSxLQUFLLENBQUMsYUFBNkIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBRTFFLE9BQU8sU0FBUyxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUMvRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxDQUFNO0lBQ3BDLE9BQU8sT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FB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VSxjQUFjLENBQUMsSUFBeUIsRUFBRSxJQUFvQztJQUM1RixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztLQUMzRDtTQUFNLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtRQUMzQixnREFBZ0Q7UUFDaEQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDckY7S0FDRjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIE10eFNwbGl0QXJlYSxcclxuICBNdHhTcGxpdFBvaW50LFxyXG4gIE10eFNwbGl0QXJlYVNuYXBzaG90LFxyXG4gIE10eFNwbGl0U2lkZUFic29ycHRpb25DYXBhY2l0eSxcclxuICBNdHhTcGxpdEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHksXHJcbn0gZnJvbSAnLi9pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvaW50RnJvbUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IE10eFNwbGl0UG9pbnQgfCBudWxsIHtcclxuICAvLyBUb3VjaEV2ZW50XHJcbiAgaWYgKFxyXG4gICAgKGV2ZW50IGFzIFRvdWNoRXZlbnQpLmNoYW5nZWRUb3VjaGVzICE9PSB1bmRlZmluZWQgJiZcclxuICAgIChldmVudCBhcyBUb3VjaEV2ZW50KS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPiAwXHJcbiAgKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB4OiAoZXZlbnQgYXMgVG91Y2hFdmVudCkuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCxcclxuICAgICAgeTogKGV2ZW50IGFzIFRvdWNoRXZlbnQpLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFksXHJcbiAgICB9O1xyXG4gIH1cclxuICAvLyBNb3VzZUV2ZW50XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBvbmUtbGluZVxyXG4gIGVsc2UgaWYgKFxyXG4gICAgKGV2ZW50IGFzIE1vdXNlRXZlbnQpLmNsaWVudFggIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgKGV2ZW50IGFzIE1vdXNlRXZlbnQpLmNsaWVudFkgIT09IHVuZGVmaW5lZFxyXG4gICkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgeDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpLmNsaWVudFgsXHJcbiAgICAgIHk6IChldmVudCBhcyBNb3VzZUV2ZW50KS5jbGllbnRZLFxyXG4gICAgfTtcclxuICB9XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50UGl4ZWxTaXplKFxyXG4gIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gIGRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xyXG4pOiBudW1iZXIge1xyXG4gIGNvbnN0IHJlY3QgPSAoZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gIHJldHVybiBkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IHJlY3Qud2lkdGggOiByZWN0LmhlaWdodDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0Qm9vbGVhbih2OiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gdHlwZW9mIHYgPT09ICdib29sZWFuJyA/IHYgOiB2ID09PSAnZmFsc2UnID8gZmFsc2UgOiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5wdXRQb3NpdGl2ZU51bWJlcjxUPih2OiBhbnksIGRlZmF1bHRWYWx1ZTogVCk6IG51bWJlciB8IFQge1xyXG4gIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHYgPSBOdW1iZXIodik7XHJcbiAgcmV0dXJuICFpc05hTih2KSAmJiB2ID49IDAgPyB2IDogZGVmYXVsdFZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNVc2VyU2l6ZXNWYWxpZChcclxuICB1bml0OiAncGVyY2VudCcgfCAncGl4ZWwnLFxyXG4gIHNpemVzOiBBcnJheTxudW1iZXI+XHJcbik6IGJvb2xlYW4gfCBudW1iZXIgfCB2b2lkIHtcclxuICAvLyBBbGwgc2l6ZXMgaGF2ZSB0byBiZSBub3QgbnVsbCBhbmQgdG90YWwgc2hvdWxkIGJlIDEwMFxyXG4gIGlmICh1bml0ID09PSAncGVyY2VudCcpIHtcclxuICAgIGNvbnN0IHRvdGFsID0gc2l6ZXMucmVkdWNlKChfdG90YWwsIHMpID0+IChzICE9PSBudWxsID8gX3RvdGFsICsgcyA6IF90b3RhbCksIDApO1xyXG4gICAgcmV0dXJuIHNpemVzLmV2ZXJ5KHMgPT4gcyAhPT0gbnVsbCkgJiYgdG90YWwgJiYgdG90YWwgPiA5OS45ICYmIHRvdGFsIDwgMTAwLjE7XHJcbiAgfVxyXG5cclxuICAvLyBBIHNpemUgYXQgbnVsbCBpcyBtYW5kYXRvcnkgYnV0IG9ubHkgb25lLlxyXG4gIGlmICh1bml0ID09PSAncGl4ZWwnKSB7XHJcbiAgICByZXR1cm4gc2l6ZXMuZmlsdGVyKHMgPT4gcyA9PT0gbnVsbCkubGVuZ3RoID09PSAxO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFyZWFNaW5TaXplKGE6IE10eFNwbGl0QXJlYSk6IG51bGwgfCBudW1iZXIge1xyXG4gIGlmIChhLnNpemUgPT09IG51bGwpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50LmxvY2tTaXplID09PSB0cnVlKSB7XHJcbiAgICByZXR1cm4gYS5zaXplO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50Lm1pblNpemUgPT09IG51bGwpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50Lm1pblNpemUgPiBhLnNpemUpIHtcclxuICAgIHJldHVybiBhLnNpemU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gYS5jb21wb25lbnQubWluU2l6ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFyZWFNYXhTaXplKGE6IE10eFNwbGl0QXJlYSk6IG51bGwgfCBudW1iZXIge1xyXG4gIGlmIChhLnNpemUgPT09IG51bGwpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50LmxvY2tTaXplID09PSB0cnVlKSB7XHJcbiAgICByZXR1cm4gYS5zaXplO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50Lm1heFNpemUgPT09IG51bGwpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaWYgKGEuY29tcG9uZW50Lm1heFNpemUgPCBhLnNpemUpIHtcclxuICAgIHJldHVybiBhLnNpemU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gYS5jb21wb25lbnQubWF4U2l6ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEd1dHRlclNpZGVBYnNvcnB0aW9uQ2FwYWNpdHkoXHJcbiAgdW5pdDogJ3BlcmNlbnQnIHwgJ3BpeGVsJyxcclxuICBzaWRlQXJlYXM6IEFycmF5PE10eFNwbGl0QXJlYVNuYXBzaG90PixcclxuICBwaXhlbHM6IG51bWJlcixcclxuICBhbGxBcmVhc1NpemVQaXhlbDogbnVtYmVyXHJcbik6IE10eFNwbGl0U2lkZUFic29ycHRpb25DYXBhY2l0eSB7XHJcbiAgcmV0dXJuIHNpZGVBcmVhcy5yZWR1Y2UoXHJcbiAgICAoYWNjOiBhbnksIGFyZWEpID0+IHtcclxuICAgICAgY29uc3QgcmVzID0gZ2V0QXJlYUFic29ycHRpb25DYXBhY2l0eSh1bml0LCBhcmVhLCBhY2MucmVtYWluLCBhbGxBcmVhc1NpemVQaXhlbCk7XHJcbiAgICAgIGFjYy5saXN0LnB1c2gocmVzKTtcclxuICAgICAgYWNjLnJlbWFpbiA9IHJlcyAmJiByZXMucGl4ZWxSZW1haW47XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LFxyXG4gICAgeyByZW1haW46IHBpeGVscywgbGlzdDogW10gfVxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkoXHJcbiAgdW5pdDogJ3BlcmNlbnQnIHwgJ3BpeGVsJyxcclxuICBhcmVhU25hcHNob3Q6IE10eFNwbGl0QXJlYVNuYXBzaG90LFxyXG4gIHBpeGVsczogbnVtYmVyLFxyXG4gIGFsbEFyZWFzU2l6ZVBpeGVsOiBudW1iZXJcclxuKTogTXR4U3BsaXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5IHwgdm9pZCB7XHJcbiAgLy8gTm8gcGFpbiBubyBnYWluXHJcbiAgaWYgKHBpeGVscyA9PT0gMCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgYXJlYVNuYXBzaG90LFxyXG4gICAgICBwaXhlbEFic29yYjogMCxcclxuICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogYXJlYVNuYXBzaG90LnNpemVQZXJjZW50QXRTdGFydCxcclxuICAgICAgcGl4ZWxSZW1haW46IDAsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gQXJlYSBzdGFydCBhdCB6ZXJvIGFuZCBuZWVkIHRvIGJlIHJlZHVjZWQsIG5vdCBwb3NzaWJsZVxyXG4gIGlmIChhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCA9PT0gMCAmJiBwaXhlbHMgPCAwKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgIHBpeGVsQWJzb3JiOiAwLFxyXG4gICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAwLFxyXG4gICAgICBwaXhlbFJlbWFpbjogcGl4ZWxzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGlmICh1bml0ID09PSAncGVyY2VudCcpIHtcclxuICAgIHJldHVybiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5UGVyY2VudChhcmVhU25hcHNob3QsIHBpeGVscywgYWxsQXJlYXNTaXplUGl4ZWwpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHVuaXQgPT09ICdwaXhlbCcpIHtcclxuICAgIHJldHVybiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5UGl4ZWwoYXJlYVNuYXBzaG90LCBwaXhlbHMsIGFsbEFyZWFzU2l6ZVBpeGVsKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHlQZXJjZW50KFxyXG4gIGFyZWFTbmFwc2hvdDogTXR4U3BsaXRBcmVhU25hcHNob3QsXHJcbiAgcGl4ZWxzOiBudW1iZXIsXHJcbiAgYWxsQXJlYXNTaXplUGl4ZWw6IG51bWJlclxyXG4pOiBNdHhTcGxpdEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkgfCB2b2lkIHtcclxuICBjb25zdCB0ZW1wUGl4ZWxTaXplID0gYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHM7XHJcbiAgY29uc3QgdGVtcFBlcmNlbnRTaXplID0gKHRlbXBQaXhlbFNpemUgLyBhbGxBcmVhc1NpemVQaXhlbCkgKiAxMDA7XHJcblxyXG4gIC8vIEVOTEFSR0UgQVJFQVxyXG5cclxuICBpZiAocGl4ZWxzID4gMCkge1xyXG4gICAgLy8gSWYgbWF4U2l6ZSAmIG5ld1NpemUgYmlnZ2VyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWF4IGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVsc1xyXG4gICAgaWYgKGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgIT09IG51bGwgJiYgdGVtcFBlcmNlbnRTaXplID4gYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSkge1xyXG4gICAgICAvLyBVc2UgYXJlYS5hcmVhLm1heFNpemUgYXMgbmV3UGVyY2VudFNpemUgYW5kIHJldHVybiBjYWxjdWxhdGUgcGl4ZWxzIHJlbWFpbmluZ1xyXG4gICAgICBjb25zdCBtYXhTaXplUGl4ZWwgPSAoYXJlYVNuYXBzaG90LmFyZWEubWF4U2l6ZSAvIDEwMCkgKiBhbGxBcmVhc1NpemVQaXhlbDtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgcGl4ZWxBYnNvcmI6IG1heFNpemVQaXhlbCxcclxuICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiBhcmVhU25hcHNob3QuYXJlYS5tYXhTaXplLFxyXG4gICAgICAgIHBpeGVsUmVtYWluOiBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIHBpeGVscyAtIG1heFNpemVQaXhlbCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgcGl4ZWxBYnNvcmI6IHBpeGVscyxcclxuICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogdGVtcFBlcmNlbnRTaXplID4gMTAwID8gMTAwIDogdGVtcFBlcmNlbnRTaXplLFxyXG4gICAgICBwaXhlbFJlbWFpbjogMCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBSRURVQ0UgQVJFQVxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogb25lLWxpbmVcclxuICBlbHNlIGlmIChwaXhlbHMgPCAwKSB7XHJcbiAgICAvLyBJZiBtaW5TaXplICYgbmV3U2l6ZSBzbWFsbGVyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWluIGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVsc1xyXG4gICAgaWYgKGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgIT09IG51bGwgJiYgdGVtcFBlcmNlbnRTaXplIDwgYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSkge1xyXG4gICAgICAvLyBVc2UgYXJlYS5hcmVhLm1pblNpemUgYXMgbmV3UGVyY2VudFNpemUgYW5kIHJldHVybiBjYWxjdWxhdGUgcGl4ZWxzIHJlbWFpbmluZ1xyXG4gICAgICBjb25zdCBtaW5TaXplUGl4ZWwgPSAoYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSAvIDEwMCkgKiBhbGxBcmVhc1NpemVQaXhlbDtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgcGl4ZWxBYnNvcmI6IG1pblNpemVQaXhlbCxcclxuICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiBhcmVhU25hcHNob3QuYXJlYS5taW5TaXplLFxyXG4gICAgICAgIHBpeGVsUmVtYWluOiBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIHBpeGVscyAtIG1pblNpemVQaXhlbCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIC8vIElmIHJlZHVjZWQgdW5kZXIgemVybyA+IHJldHVybiByZW1haW5pbmcgcGl4ZWxzXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG9uZS1saW5lXHJcbiAgICBlbHNlIGlmICh0ZW1wUGVyY2VudFNpemUgPCAwKSB7XHJcbiAgICAgIC8vIFVzZSAwIGFzIG5ld1BlcmNlbnRTaXplIGFuZCByZXR1cm4gY2FsY3VsYXRlIHBpeGVscyByZW1haW5pbmdcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgcGl4ZWxBYnNvcmI6IC1hcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAwLFxyXG4gICAgICAgIHBpeGVsUmVtYWluOiBwaXhlbHMgKyBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgcGl4ZWxBYnNvcmI6IHBpeGVscyxcclxuICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogdGVtcFBlcmNlbnRTaXplLFxyXG4gICAgICBwaXhlbFJlbWFpbjogMCxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRBcmVhQWJzb3JwdGlvbkNhcGFjaXR5UGl4ZWwoXHJcbiAgYXJlYVNuYXBzaG90OiBNdHhTcGxpdEFyZWFTbmFwc2hvdCxcclxuICBwaXhlbHM6IG51bWJlcixcclxuICBjb250YWluZXJTaXplUGl4ZWw6IG51bWJlclxyXG4pOiBNdHhTcGxpdEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkgfCB2b2lkIHtcclxuICBjb25zdCB0ZW1wUGl4ZWxTaXplID0gYXJlYVNuYXBzaG90LnNpemVQaXhlbEF0U3RhcnQgKyBwaXhlbHM7XHJcblxyXG4gIC8vIEVOTEFSR0UgQVJFQVxyXG5cclxuICBpZiAocGl4ZWxzID4gMCkge1xyXG4gICAgLy8gSWYgbWF4U2l6ZSAmIG5ld1NpemUgYmlnZ2VyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWF4IGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVsc1xyXG4gICAgaWYgKGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgIT09IG51bGwgJiYgdGVtcFBpeGVsU2l6ZSA+IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgcGl4ZWxBYnNvcmI6IGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUgLSBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgICBwZXJjZW50QWZ0ZXJBYnNvcnB0aW9uOiAtMSxcclxuICAgICAgICBwaXhlbFJlbWFpbjogdGVtcFBpeGVsU2l6ZSAtIGFyZWFTbmFwc2hvdC5hcmVhLm1heFNpemUsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgIHBpeGVsQWJzb3JiOiBwaXhlbHMsXHJcbiAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICBwaXhlbFJlbWFpbjogMCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBSRURVQ0UgQVJFQVxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogb25lLWxpbmVcclxuICBlbHNlIGlmIChwaXhlbHMgPCAwKSB7XHJcbiAgICAvLyBJZiBtaW5TaXplICYgbmV3U2l6ZSBzbWFsbGVyIHRoYW4gaXQgPiBhYnNvcmIgdG8gbWluIGFuZCByZXR1cm4gcmVtYWluaW5nIHBpeGVsc1xyXG4gICAgaWYgKGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgIT09IG51bGwgJiYgdGVtcFBpeGVsU2l6ZSA8IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcmVhU25hcHNob3QsXHJcbiAgICAgICAgcGl4ZWxBYnNvcmI6IGFyZWFTbmFwc2hvdC5hcmVhLm1pblNpemUgKyBwaXhlbHMgLSB0ZW1wUGl4ZWxTaXplLFxyXG4gICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICAgIHBpeGVsUmVtYWluOiB0ZW1wUGl4ZWxTaXplIC0gYXJlYVNuYXBzaG90LmFyZWEubWluU2l6ZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIC8vIElmIHJlZHVjZWQgdW5kZXIgemVybyA+IHJldHVybiByZW1haW5pbmcgcGl4ZWxzXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG9uZS1saW5lXHJcbiAgICBlbHNlIGlmICh0ZW1wUGl4ZWxTaXplIDwgMCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgICBwaXhlbEFic29yYjogLWFyZWFTbmFwc2hvdC5zaXplUGl4ZWxBdFN0YXJ0LFxyXG4gICAgICAgIHBlcmNlbnRBZnRlckFic29ycHRpb246IC0xLFxyXG4gICAgICAgIHBpeGVsUmVtYWluOiBwaXhlbHMgKyBhcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFyZWFTbmFwc2hvdCxcclxuICAgICAgcGl4ZWxBYnNvcmI6IHBpeGVscyxcclxuICAgICAgcGVyY2VudEFmdGVyQWJzb3JwdGlvbjogLTEsXHJcbiAgICAgIHBpeGVsUmVtYWluOiAwLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVBcmVhU2l6ZSh1bml0OiAncGVyY2VudCcgfCAncGl4ZWwnLCBpdGVtOiBNdHhTcGxpdEFyZWFBYnNvcnB0aW9uQ2FwYWNpdHkpIHtcclxuICBpZiAodW5pdCA9PT0gJ3BlcmNlbnQnKSB7XHJcbiAgICBpdGVtLmFyZWFTbmFwc2hvdC5hcmVhLnNpemUgPSBpdGVtLnBlcmNlbnRBZnRlckFic29ycHRpb247XHJcbiAgfSBlbHNlIGlmICh1bml0ID09PSAncGl4ZWwnKSB7XHJcbiAgICAvLyBVcGRhdGUgc2l6ZSBleGNlcHQgZm9yIHRoZSB3aWxkY2FyZCBzaXplIGFyZWFcclxuICAgIGlmIChpdGVtLmFyZWFTbmFwc2hvdC5hcmVhLnNpemUgIT09IG51bGwpIHtcclxuICAgICAgaXRlbS5hcmVhU25hcHNob3QuYXJlYS5zaXplID0gaXRlbS5hcmVhU25hcHNob3Quc2l6ZVBpeGVsQXRTdGFydCArIGl0ZW0ucGl4ZWxBYnNvcmI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
@use 'sass:map';
|
|
2
|
-
@use '~@angular/material' as mat;
|
|
3
|
-
|
|
4
|
-
@mixin theme($theme) {
|
|
5
|
-
$accent: map.get($theme, accent);
|
|
6
|
-
$foreground: map.get($theme, foreground);
|
|
7
|
-
|
|
8
|
-
.mtx-split {
|
|
9
|
-
> .mtx-split-gutter {
|
|
10
|
-
background-color: rgba(mat.get-color-from-palette($foreground, divider), .24);
|
|
11
|
-
|
|
12
|
-
&:hover {
|
|
13
|
-
background-color: mat.get-color-from-palette($accent);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"MtxSplitPoint":{"__symbolic":"interface"},"MtxSplitArea":{"__symbolic":"interface"},"MtxSplitSnapshot":{"__symbolic":"interface"},"MtxSplitAreaSnapshot":{"__symbolic":"interface"},"MtxSplitSideAbsorptionCapacity":{"__symbolic":"interface"},"MtxSplitAreaAbsorptionCapacity":{"__symbolic":"interface"},"MtxSplitOutputData":{"__symbolic":"interface"},"MtxSplitOutputAreaSizes":{"__symbolic":"interface"},"getPointFromEvent":{"__symbolic":"function"},"getElementPixelSize":{"__symbolic":"function"},"getInputBoolean":{"__symbolic":"function","parameters":["v"],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":45,"character":9,"module":"./utils"},"right":"boolean"},"thenExpression":{"__symbolic":"reference","name":"v"},"elseExpression":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"v"},"right":"false"},"thenExpression":false,"elseExpression":true}}},"getInputPositiveNumber":{"__symbolic":"function"},"isUserSizesValid":{"__symbolic":"function"},"getAreaMinSize":{"__symbolic":"function"},"getAreaMaxSize":{"__symbolic":"function"},"getGutterSideAbsorptionCapacity":{"__symbolic":"function","parameters":["unit","sideAreas","pixels","allAreasSizePixel"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"sideAreas"},"member":"reduce"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":120,"character":4,"module":"./utils"},{"remain":{"__symbolic":"reference","name":"pixels"},"list":[]}]}},"updateAreaSize":{"__symbolic":"function"},"MtxSplitModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":7,"character":12}],"declarations":[{"__symbolic":"reference","name":"MtxSplitComponent"},{"__symbolic":"reference","name":"MtxSplitPaneDirective"}],"exports":[{"__symbolic":"reference","name":"MtxSplitComponent"},{"__symbolic":"reference","name":"MtxSplitPaneDirective"}]}]}],"members":{}},"MtxSplitComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":70,"character":1},"arguments":[{"selector":"mtx-split","exportAs":"mtxSplit","host":{"class":"mtx-split"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":76,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":77,"character":19},"member":"OnPush"},"template":"<ng-content></ng-content>\r\n<ng-template ngFor [ngForOf]=\"displayedAreas\" let-index=\"index\" let-last=\"last\">\r\n <div #gutterEls class=\"mtx-split-gutter\"\r\n *ngIf=\"last === false\"\r\n [style.flex-basis.px]=\"gutterSize\"\r\n [style.order]=\"index * 2 + 1\"\r\n (mousedown)=\"startDragging($event, index * 2 + 1, index + 1)\"\r\n (touchstart)=\"startDragging($event, index * 2 + 1, index + 1)\"\r\n (mouseup)=\"clickGutter($event, index + 1)\"\r\n (touchend)=\"clickGutter($event, index + 1)\">\r\n <div class=\"mtx-split-gutter-handle\"></div>\r\n </div>\r\n</ng-template>\r\n","styles":[".mtx-split{display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;overflow:hidden;width:100%;height:100%}.mtx-split>.mtx-split-gutter{position:relative;display:flex;flex-grow:0;flex-shrink:0;align-items:center;justify-content:center}.mtx-split>.mtx-split-gutter>.mtx-split-gutter-handle{position:absolute;opacity:0}.mtx-split>.mtx-split-pane{flex-grow:0;flex-shrink:0;overflow-x:hidden;overflow-y:auto}.mtx-split>.mtx-split-pane.mtx-split-pane-hidden{flex:0 1 0!important;overflow-x:hidden;overflow-y:hidden}.mtx-split.mtx-split-horizontal{flex-direction:row}.mtx-split.mtx-split-horizontal>.mtx-split-gutter{flex-direction:row;height:100%;cursor:col-resize}.mtx-split.mtx-split-horizontal>.mtx-split-gutter>.mtx-split-gutter-handle{width:11px;height:100%;left:-5px;right:5px}.mtx-split.mtx-split-horizontal>.mtx-split-pane{height:100%}.mtx-split.mtx-split-vertical{flex-direction:column}.mtx-split.mtx-split-vertical>.mtx-split-gutter{flex-direction:column;width:100%;cursor:row-resize}.mtx-split.mtx-split-vertical>.mtx-split-gutter>.mtx-split-gutter-handle{width:100%;height:11px;top:-5px;bottom:5px}.mtx-split.mtx-split-vertical>.mtx-split-pane{width:100%}.mtx-split.mtx-split-vertical>.mtx-split-pane.mtx-split-pane-hidden{max-width:0}.mtx-split.mtx-split-disabled>.mtx-split-gutter{cursor:default}.mtx-split.mtx-split-disabled>.mtx-split-gutter .mtx-split-gutter-handle{background-image:none}.mtx-split.mtx-split-transition.mtx-split-init:not(.mtx-dragging)>.mtx-split-gutter,.mtx-split.mtx-split-transition.mtx-split-init:not(.mtx-dragging)>.mtx-split-pane{transition:flex-basis .3s}\n"]}]}],"members":{"direction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"unit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"gutterSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":124,"character":3}}]}],"gutterStep":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":138,"character":3}}]}],"restrictMove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":150,"character":3}}]}],"useTransition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":162,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":180,"character":3}}]}],"dir":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":198,"character":3}}]}],"gutterDblClickDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":212,"character":3}}]}],"dragStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":222,"character":3}}]}],"dragEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":223,"character":3}}]}],"gutterClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":224,"character":3}}]}],"gutterDblClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":225,"character":3}}]}],"transitionEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":228,"character":3}}]}],"gutterEls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":248,"character":3},"arguments":["gutterEls"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":251,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":252,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":253,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":254,"character":22}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"getNbGutters":[{"__symbolic":"method"}],"addArea":[{"__symbolic":"method"}],"removeArea":[{"__symbolic":"method"}],"updateArea":[{"__symbolic":"method"}],"showArea":[{"__symbolic":"method"}],"hideArea":[{"__symbolic":"method"}],"getVisibleAreaSizes":[{"__symbolic":"method"}],"setVisibleAreaSizes":[{"__symbolic":"method"}],"build":[{"__symbolic":"method"}],"refreshStyleSizes":[{"__symbolic":"method"}],"clickGutter":[{"__symbolic":"method"}],"startDragging":[{"__symbolic":"method"}],"dragEvent":[{"__symbolic":"method"}],"stopDragging":[{"__symbolic":"method"}],"notify":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"MtxSplitPaneDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"mtx-split-pane, [mtx-split-pane]","exportAs":"mtxSplitPane"}]}],"members":{"order":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"size":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"minSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"maxSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"lockSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":82,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":104,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":105,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":106,"character":22},{"__symbolic":"reference","name":"MtxSplitComponent"}]}],"ngOnInit":[{"__symbolic":"method"}],"setStyleOrder":[{"__symbolic":"method"}],"setStyleFlex":[{"__symbolic":"method"}],"lockEvents":[{"__symbolic":"method"}],"unlockEvents":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}},"origins":{"MtxSplitPoint":"./interface","MtxSplitArea":"./interface","MtxSplitSnapshot":"./interface","MtxSplitAreaSnapshot":"./interface","MtxSplitSideAbsorptionCapacity":"./interface","MtxSplitAreaAbsorptionCapacity":"./interface","MtxSplitOutputData":"./interface","MtxSplitOutputAreaSizes":"./interface","getPointFromEvent":"./utils","getElementPixelSize":"./utils","getInputBoolean":"./utils","getInputPositiveNumber":"./utils","isUserSizesValid":"./utils","getAreaMinSize":"./utils","getAreaMaxSize":"./utils","getGutterSideAbsorptionCapacity":"./utils","updateAreaSize":"./utils","MtxSplitModule":"./split.module","MtxSplitComponent":"./split.component","MtxSplitPaneDirective":"./split-pane.directive"},"importAs":"@ng-matero/extensions/split-pane"}
|