@ptsecurity/mosaic 11.5.0 → 11.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/_theming.scss +12 -6
  2. package/bundles/ptsecurity-mosaic-datepicker.umd.js +2 -1
  3. package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +1 -1
  4. package/bundles/ptsecurity-mosaic-datepicker.umd.min.js +1 -1
  5. package/bundles/ptsecurity-mosaic-datepicker.umd.min.js.map +1 -1
  6. package/bundles/ptsecurity-mosaic-dropdown.umd.js +18 -3
  7. package/bundles/ptsecurity-mosaic-dropdown.umd.js.map +1 -1
  8. package/bundles/ptsecurity-mosaic-dropdown.umd.min.js +1 -1
  9. package/bundles/ptsecurity-mosaic-dropdown.umd.min.js.map +1 -1
  10. package/bundles/ptsecurity-mosaic-list.umd.js +10 -2
  11. package/bundles/ptsecurity-mosaic-list.umd.js.map +1 -1
  12. package/bundles/ptsecurity-mosaic-list.umd.min.js +1 -1
  13. package/bundles/ptsecurity-mosaic-list.umd.min.js.map +1 -1
  14. package/bundles/ptsecurity-mosaic-modal.umd.js +13 -6
  15. package/bundles/ptsecurity-mosaic-modal.umd.js.map +1 -1
  16. package/bundles/ptsecurity-mosaic-modal.umd.min.js +1 -1
  17. package/bundles/ptsecurity-mosaic-modal.umd.min.js.map +1 -1
  18. package/bundles/ptsecurity-mosaic-navbar.umd.js +1 -1
  19. package/bundles/ptsecurity-mosaic-navbar.umd.js.map +1 -1
  20. package/bundles/ptsecurity-mosaic-navbar.umd.min.js +2 -2
  21. package/bundles/ptsecurity-mosaic-navbar.umd.min.js.map +1 -1
  22. package/bundles/ptsecurity-mosaic-splitter.umd.js +12 -0
  23. package/bundles/ptsecurity-mosaic-splitter.umd.js.map +1 -1
  24. package/bundles/ptsecurity-mosaic-splitter.umd.min.js +1 -1
  25. package/bundles/ptsecurity-mosaic-splitter.umd.min.js.map +1 -1
  26. package/bundles/ptsecurity-mosaic-tags.umd.js +2 -1
  27. package/bundles/ptsecurity-mosaic-tags.umd.js.map +1 -1
  28. package/bundles/ptsecurity-mosaic-tags.umd.min.js +1 -1
  29. package/bundles/ptsecurity-mosaic-tags.umd.min.js.map +1 -1
  30. package/bundles/ptsecurity-mosaic-timepicker.umd.js +3 -2
  31. package/bundles/ptsecurity-mosaic-timepicker.umd.js.map +1 -1
  32. package/bundles/ptsecurity-mosaic-timepicker.umd.min.js +1 -1
  33. package/bundles/ptsecurity-mosaic-timepicker.umd.min.js.map +1 -1
  34. package/dropdown/dropdown-item.component.d.ts +1 -0
  35. package/dropdown/ptsecurity-mosaic-dropdown.metadata.json +1 -1
  36. package/esm2015/datepicker/datepicker-input.directive.js +3 -2
  37. package/esm2015/dropdown/dropdown-item.component.js +10 -3
  38. package/esm2015/dropdown/dropdown-trigger.directive.js +10 -2
  39. package/esm2015/list/list-selection.component.js +11 -3
  40. package/esm2015/modal/modal.component.js +2 -2
  41. package/esm2015/modal/modal.service.js +13 -6
  42. package/esm2015/navbar/vertical-navbar.component.js +2 -2
  43. package/esm2015/splitter/splitter.component.js +13 -2
  44. package/esm2015/tags/tag.component.js +3 -2
  45. package/esm2015/timepicker/timepicker.directive.js +5 -4
  46. package/fesm2015/ptsecurity-mosaic-datepicker.js +2 -1
  47. package/fesm2015/ptsecurity-mosaic-datepicker.js.map +1 -1
  48. package/fesm2015/ptsecurity-mosaic-dropdown.js +18 -3
  49. package/fesm2015/ptsecurity-mosaic-dropdown.js.map +1 -1
  50. package/fesm2015/ptsecurity-mosaic-list.js +10 -2
  51. package/fesm2015/ptsecurity-mosaic-list.js.map +1 -1
  52. package/fesm2015/ptsecurity-mosaic-modal.js +13 -6
  53. package/fesm2015/ptsecurity-mosaic-modal.js.map +1 -1
  54. package/fesm2015/ptsecurity-mosaic-navbar.js +1 -1
  55. package/fesm2015/ptsecurity-mosaic-navbar.js.map +1 -1
  56. package/fesm2015/ptsecurity-mosaic-splitter.js +12 -1
  57. package/fesm2015/ptsecurity-mosaic-splitter.js.map +1 -1
  58. package/fesm2015/ptsecurity-mosaic-tags.js +2 -1
  59. package/fesm2015/ptsecurity-mosaic-tags.js.map +1 -1
  60. package/fesm2015/ptsecurity-mosaic-timepicker.js +4 -3
  61. package/fesm2015/ptsecurity-mosaic-timepicker.js.map +1 -1
  62. package/list/ptsecurity-mosaic-list.metadata.json +1 -1
  63. package/modal/ptsecurity-mosaic-modal.metadata.json +1 -1
  64. package/navbar/ptsecurity-mosaic-navbar.metadata.json +1 -1
  65. package/package.json +4 -4
  66. package/prebuilt-themes/dark-theme.css +1 -1
  67. package/prebuilt-themes/default-theme.css +1 -1
  68. package/splitter/ptsecurity-mosaic-splitter.metadata.json +1 -1
  69. package/splitter/splitter.component.d.ts +4 -1
  70. package/tags/ptsecurity-mosaic-tags.metadata.json +1 -1
  71. package/timepicker/ptsecurity-mosaic-timepicker.metadata.json +1 -1
@@ -93,6 +93,7 @@
93
93
  this.changeDetectorRef = changeDetectorRef;
94
94
  this.ngZone = ngZone;
95
95
  this.renderer = renderer;
96
+ this.gutterPositionChange = new core.EventEmitter();
96
97
  this.areas = [];
97
98
  this.isDragging = false;
98
99
  this.areaPositionDivider = 2;
@@ -253,6 +254,7 @@
253
254
  }
254
255
  this.isDragging = false;
255
256
  this.updateGutter();
257
+ this.gutterPositionChange.emit();
256
258
  };
257
259
  McSplitterComponent.prototype.setStyle = function (property, value) {
258
260
  this.renderer.setStyle(this.elementRef.nativeElement, property, value);
@@ -281,6 +283,7 @@
281
283
  { type: core.Renderer2 }
282
284
  ]; };
283
285
  McSplitterComponent.propDecorators = {
286
+ gutterPositionChange: [{ type: core.Output }],
284
287
  gutters: [{ type: core.ViewChildren, args: [McGutterDirective,] }],
285
288
  hideGutters: [{ type: core.Input }],
286
289
  direction: [{ type: core.Input }],
@@ -292,11 +295,13 @@
292
295
  this.elementRef = elementRef;
293
296
  this.renderer = renderer;
294
297
  this.splitter = splitter;
298
+ this.sizeChange = new core.EventEmitter();
295
299
  }
296
300
  McSplitterAreaDirective.prototype.disableFlex = function () {
297
301
  this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');
298
302
  };
299
303
  McSplitterAreaDirective.prototype.ngOnInit = function () {
304
+ var _this = this;
300
305
  this.splitter.addArea(this);
301
306
  this.removeStyle("max-width" /* MaxWidth */);
302
307
  if (this.splitter.direction === exports.Direction.Vertical) {
@@ -307,6 +312,7 @@
307
312
  this.setStyle("height" /* Height */, '100%');
308
313
  this.removeStyle("width" /* Width */);
309
314
  }
315
+ this.splitter.gutterPositionChange.subscribe(function () { return _this.emitSizeChange(); });
310
316
  };
311
317
  McSplitterAreaDirective.prototype.ngOnDestroy = function () {
312
318
  this.splitter.removeArea(this);
@@ -351,6 +357,9 @@
351
357
  McSplitterAreaDirective.prototype.removeStyle = function (style) {
352
358
  this.renderer.removeStyle(this.elementRef.nativeElement, style);
353
359
  };
360
+ McSplitterAreaDirective.prototype.emitSizeChange = function () {
361
+ this.sizeChange.emit(this.getSize());
362
+ };
354
363
  return McSplitterAreaDirective;
355
364
  }());
356
365
  McSplitterAreaDirective.decorators = [
@@ -367,6 +376,9 @@
367
376
  { type: core.Renderer2 },
368
377
  { type: McSplitterComponent }
369
378
  ]; };
379
+ McSplitterAreaDirective.propDecorators = {
380
+ sizeChange: [{ type: core.Output }]
381
+ };
370
382
 
371
383
  var McSplitterModule = /** @class */ (function () {
372
384
  function McSplitterModule() {
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-splitter.umd.js","sources":["../../../packages/mosaic/splitter/splitter.component.ts","../../../packages/mosaic/splitter/splitter.module.ts","../../../packages/mosaic/splitter/ptsecurity-mosaic-splitter.ts"],"sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\n\ninterface IArea {\n area: McSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n\n@Directive({\n selector: 'mc-gutter',\n host: {\n class: 'mc-gutter',\n '[class.mc-gutter_vertical]': 'isVertical()',\n '[class.mc-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class McGutterDirective implements OnInit {\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n get order(): number {\n return this._order;\n }\n\n @Input()\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n dragged: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical() ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical()) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is requied for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'row' : 'column');\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n\n@Component({\n selector: 'mc-splitter',\n exportAs: 'mcSplitter',\n host: {\n class: 'mc-splitter'\n },\n preserveWhitespaces: false,\n styleUrls: ['splitter.scss'],\n templateUrl: './splitter.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McSplitterComponent implements OnInit {\n readonly areas: IArea[] = [];\n\n @ViewChildren(McGutterDirective) gutters: QueryList<McGutterDirective>;\n\n private isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n @Input()\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n @Input()\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n addArea(area: McSplitterAreaDirective): void {\n const index: number = this.areas.length;\n const order: number = index * this.areaPositionDivider;\n const size: number = area.getSize();\n\n area.setOrder(order);\n\n this.areas.push({\n area,\n index,\n order,\n initialSize: size\n });\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) { return; }\n\n event.preventDefault();\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n item.area.disableFlex();\n item.area.setSize(size);\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mouseup',\n () => this.onMouseUp()\n )\n );\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mousemove',\n (e: MouseEvent) => this.onMouseMove(e, startPoint, leftArea, rightArea)\n )\n );\n });\n\n this.isDragging = true;\n }\n\n removeArea(area: McSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private updateGutter(): void {\n this.gutters.forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n\n }\n\n private onMouseMove(event: MouseEvent, startPoint: IPoint, leftArea: IArea, rightArea: IArea) {\n if (!this.isDragging || this.disabled) { return; }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical()\n ? startPoint.y - endPoint.y\n : startPoint.x - endPoint.x;\n\n const newLeftAreaSize = leftArea.initialSize - offset;\n const newRightAreaSize = rightArea.initialSize + offset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize <= minLeftAreaSize || newRightAreaSize <= minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp() {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n\n this.isDragging = false;\n\n this.updateGutter();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[mc-splitter-area]',\n host: {\n class: 'mc-splitter-area'\n }\n})\nexport class McSplitterAreaDirective implements OnInit, OnDestroy {\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private splitter: McSplitterComponent\n ) {}\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngOnInit(): void {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (size) {\n const sz = coerceNumberProperty(size);\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(sz));\n }\n }\n\n getSize(): number {\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getMinSize(): number {\n const styles = getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.MinHeight\n : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.OffsetHeight\n : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.Height\n : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McGutterDirective, McSplitterAreaDirective, McSplitterComponent } from './splitter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n McIconModule\n ],\n exports: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ],\n declarations: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ]\n})\nexport class McSplitterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Direction","coerceNumberProperty","coerceCssPixelValue","Directive","ElementRef","Renderer2","Input","coerceBooleanProperty","Component","ViewEncapsulation","ChangeDetectionStrategy","ChangeDetectorRef","NgZone","ViewChildren","NgModule","CommonModule","McIconModule"],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-splitter.umd.js","sources":["../../../packages/mosaic/splitter/splitter.component.ts","../../../packages/mosaic/splitter/splitter.module.ts","../../../packages/mosaic/splitter/ptsecurity-mosaic-splitter.ts"],"sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\n\ninterface IArea {\n area: McSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n@Directive({\n selector: 'mc-gutter',\n host: {\n class: 'mc-gutter',\n '[class.mc-gutter_vertical]': 'isVertical()',\n '[class.mc-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class McGutterDirective implements OnInit {\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n get order(): number {\n return this._order;\n }\n\n @Input()\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n dragged: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical() ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical()) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is requied for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'row' : 'column');\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n\n@Component({\n selector: 'mc-splitter',\n exportAs: 'mcSplitter',\n host: {\n class: 'mc-splitter'\n },\n preserveWhitespaces: false,\n styleUrls: ['splitter.scss'],\n templateUrl: './splitter.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McSplitterComponent implements OnInit {\n @Output() gutterPositionChange: EventEmitter<void> = new EventEmitter<void>();\n\n readonly areas: IArea[] = [];\n\n @ViewChildren(McGutterDirective) gutters: QueryList<McGutterDirective>;\n\n private isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n @Input()\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n @Input()\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n addArea(area: McSplitterAreaDirective): void {\n const index: number = this.areas.length;\n const order: number = index * this.areaPositionDivider;\n const size: number = area.getSize();\n\n area.setOrder(order);\n\n this.areas.push({\n area,\n index,\n order,\n initialSize: size\n });\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) { return; }\n\n event.preventDefault();\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n item.area.disableFlex();\n item.area.setSize(size);\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mouseup',\n () => this.onMouseUp()\n )\n );\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mousemove',\n (e: MouseEvent) => this.onMouseMove(e, startPoint, leftArea, rightArea)\n )\n );\n });\n\n this.isDragging = true;\n }\n\n removeArea(area: McSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private updateGutter(): void {\n this.gutters.forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n\n }\n\n private onMouseMove(event: MouseEvent, startPoint: IPoint, leftArea: IArea, rightArea: IArea) {\n if (!this.isDragging || this.disabled) { return; }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical()\n ? startPoint.y - endPoint.y\n : startPoint.x - endPoint.x;\n\n const newLeftAreaSize = leftArea.initialSize - offset;\n const newRightAreaSize = rightArea.initialSize + offset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize <= minLeftAreaSize || newRightAreaSize <= minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp() {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n\n this.isDragging = false;\n\n this.updateGutter();\n\n this.gutterPositionChange.emit();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[mc-splitter-area]',\n host: {\n class: 'mc-splitter-area'\n }\n})\nexport class McSplitterAreaDirective implements OnInit, OnDestroy {\n @Output() sizeChange: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private splitter: McSplitterComponent\n ) {}\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngOnInit(): void {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n\n this.splitter.gutterPositionChange.subscribe(() => this.emitSizeChange());\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (size) {\n const sz = coerceNumberProperty(size);\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(sz));\n }\n }\n\n getSize(): number {\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getMinSize(): number {\n const styles = getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.MinHeight\n : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.OffsetHeight\n : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.Height\n : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n\n private emitSizeChange(): void {\n this.sizeChange.emit(this.getSize());\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McGutterDirective, McSplitterAreaDirective, McSplitterComponent } from './splitter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n McIconModule\n ],\n exports: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ],\n declarations: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ]\n})\nexport class McSplitterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Direction","coerceNumberProperty","coerceCssPixelValue","Directive","ElementRef","Renderer2","Input","EventEmitter","coerceBooleanProperty","Component","ViewEncapsulation","ChangeDetectionStrategy","ChangeDetectorRef","NgZone","Output","ViewChildren","NgModule","CommonModule","McIconModule"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("@ptsecurity/mosaic/icon"),require("@angular/cdk/coercion")):"function"==typeof define&&define.amd?define("@ptsecurity/mosaic/splitter",["exports","@angular/common","@angular/core","@ptsecurity/mosaic/icon","@angular/cdk/coercion"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).ptsecurity=e.ptsecurity||{},e.ptsecurity.mosaic=e.ptsecurity.mosaic||{},e.ptsecurity.mosaic.splitter={}),e.ng.common,e.ng.core,e.ptsecurity.mosaic.icon,e.ng.cdk.coercion)}(this,(function(e,t,i,r,n){"use strict";var o;e.Direction=void 0,(o=e.Direction||(e.Direction={})).Horizontal="horizontal",o.Vertical="vertical";var s=function(){function t(t,i){this.elementRef=t,this.renderer=i,this._direction=e.Direction.Vertical,this._order=0,this._size=6,this.dragged=!1}return Object.defineProperty(t.prototype,"direction",{get:function(){return this._direction},set:function(e){this._direction=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"order",{get:function(){return this._order},set:function(e){this._order=n.coerceNumberProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"size",{get:function(){return this._size},set:function(e){this._size=n.coerceNumberProperty(e)},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){this.setStyle("flex-basis",n.coerceCssPixelValue(this.size)),this.setStyle(this.isVertical()?"height":"width",n.coerceCssPixelValue(this.size)),this.setStyle("order",this.order),this.isVertical()||this.setStyle("height","100%"),this.setStyle("flex-direction",this.isVertical()?"row":"column")},t.prototype.isVertical=function(){return this.direction===e.Direction.Vertical},t.prototype.setStyle=function(e,t){this.renderer.setStyle(this.elementRef.nativeElement,e,t)},t}();s.decorators=[{type:i.Directive,args:[{selector:"mc-gutter",host:{class:"mc-gutter","[class.mc-gutter_vertical]":"isVertical()","[class.mc-gutter_dragged]":"dragged","(mousedown)":"dragged = true"}}]}],s.ctorParameters=function(){return[{type:i.ElementRef},{type:i.Renderer2}]},s.propDecorators={direction:[{type:i.Input}],order:[{type:i.Input}],size:[{type:i.Input}]};var c=function(){function t(e,t,i,r){this.elementRef=e,this.changeDetectorRef=t,this.ngZone=i,this.renderer=r,this.areas=[],this.isDragging=!1,this.areaPositionDivider=2,this.listeners=[],this._hideGutters=!1,this._disabled=!1,this._gutterSize=6}return Object.defineProperty(t.prototype,"hideGutters",{get:function(){return this._hideGutters},set:function(e){this._hideGutters=n.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"direction",{get:function(){return this._direction},set:function(e){this._direction=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=n.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"gutterSize",{get:function(){return this._gutterSize},set:function(e){var t=n.coerceNumberProperty(e);this._gutterSize=t>0?t:this.gutterSize},enumerable:!1,configurable:!0}),t.prototype.addArea=function(e){var t=this.areas.length,i=t*this.areaPositionDivider,r=e.getSize();e.setOrder(i),this.areas.push({area:e,index:t,order:i,initialSize:r})},t.prototype.ngOnInit=function(){this.direction||(this.direction=e.Direction.Horizontal),this.setStyle("flex-direction",this.isVertical()?"column":"row")},t.prototype.onMouseDown=function(e,t,i){var r=this;if(!this.disabled){e.preventDefault();var n=this.areas[t],o=this.areas[i],s={x:e.screenX,y:e.screenY};n.initialSize=n.area.getSize(),o.initialSize=o.area.getSize(),this.areas.forEach((function(e){var t=e.area.getSize();e.area.disableFlex(),e.area.setSize(t)})),this.ngZone.runOutsideAngular((function(){r.listeners.push(r.renderer.listen("document","mouseup",(function(){return r.onMouseUp()})))})),this.ngZone.runOutsideAngular((function(){r.listeners.push(r.renderer.listen("document","mousemove",(function(e){return r.onMouseMove(e,s,n,o)})))})),this.isDragging=!0}},t.prototype.removeArea=function(e){var t=-1;this.areas.some((function(i,r){return i.area===e&&(t=r,!0)})),-1!==t&&this.areas.splice(t,1)},t.prototype.isVertical=function(){return this.direction===e.Direction.Vertical},t.prototype.updateGutter=function(){var e=this;this.gutters.forEach((function(t){t.dragged&&(t.dragged=!1,e.changeDetectorRef.detectChanges())}))},t.prototype.onMouseMove=function(e,t,i,r){if(this.isDragging&&!this.disabled){var n=e.screenX,o=e.screenY,s=this.isVertical()?t.y-o:t.x-n,c=i.initialSize-s,a=r.initialSize+s,l=i.area.getMinSize(),u=r.area.getMinSize();c<=l||a<=u||(c<=0?(i.area.setSize(0),r.area.setSize(r.initialSize+i.initialSize)):a<=0?(i.area.setSize(r.initialSize+i.initialSize),r.area.setSize(0)):(i.area.setSize(c),r.area.setSize(a)))}},t.prototype.onMouseUp=function(){for(;this.listeners.length>0;){var e=this.listeners.pop();e&&e()}this.isDragging=!1,this.updateGutter()},t.prototype.setStyle=function(e,t){this.renderer.setStyle(this.elementRef.nativeElement,e,t)},t}();c.decorators=[{type:i.Component,args:[{selector:"mc-splitter",exportAs:"mcSplitter",host:{class:"mc-splitter"},preserveWhitespaces:!1,template:'<ng-content></ng-content>\n\n<ng-template ngFor let-area [ngForOf]="areas" let-index="index" let-last="last">\n <mc-gutter *ngIf="last === false"\n [direction]="direction"\n [attr.disabled]="disabled || null"\n [style.display]="hideGutters ? \'none\' : \'flex\'"\n [size]="gutterSize"\n [order]="index * 2 + 1"\n (mousedown)="onMouseDown($event, index, index + 1)">\n </mc-gutter>\n</ng-template>\n',encapsulation:i.ViewEncapsulation.None,changeDetection:i.ChangeDetectionStrategy.OnPush,styles:[".mc-splitter{display:flex;flex-wrap:nowrap;align-items:stretch}.mc-gutter,.mc-splitter,.mc-splitter .mc-splitter-area{overflow:hidden}.mc-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center}.mc-gutter.mc-gutter_vertical>.mc-icon{transform:rotate(90deg)}"]}]}],c.ctorParameters=function(){return[{type:i.ElementRef},{type:i.ChangeDetectorRef},{type:i.NgZone},{type:i.Renderer2}]},c.propDecorators={gutters:[{type:i.ViewChildren,args:[s]}],hideGutters:[{type:i.Input}],direction:[{type:i.Input}],disabled:[{type:i.Input}],gutterSize:[{type:i.Input}]};var a=function(){function t(e,t,i){this.elementRef=e,this.renderer=t,this.splitter=i}return t.prototype.disableFlex=function(){this.renderer.removeStyle(this.elementRef.nativeElement,"flex")},t.prototype.ngOnInit=function(){this.splitter.addArea(this),this.removeStyle("max-width"),this.splitter.direction===e.Direction.Vertical?(this.setStyle("width","100%"),this.removeStyle("height")):(this.setStyle("height","100%"),this.removeStyle("width"))},t.prototype.ngOnDestroy=function(){this.splitter.removeArea(this)},t.prototype.setOrder=function(e){this.setStyle("order",e)},t.prototype.setSize=function(e){if(e){var t=n.coerceNumberProperty(e);this.setStyle(this.getSizeProperty(),n.coerceCssPixelValue(t))}},t.prototype.getSize=function(){return this.elementRef.nativeElement[this.getOffsetSizeProperty()]},t.prototype.getMinSize=function(){var e=getComputedStyle(this.elementRef.nativeElement);return parseFloat(e[this.getMinSizeProperty()])},t.prototype.isVertical=function(){return this.splitter.direction===e.Direction.Vertical},t.prototype.getMinSizeProperty=function(){return this.isVertical()?"min-height":"minWidth"},t.prototype.getOffsetSizeProperty=function(){return this.isVertical()?"offsetHeight":"offsetWidth"},t.prototype.getSizeProperty=function(){return this.isVertical()?"height":"width"},t.prototype.setStyle=function(e,t){this.renderer.setStyle(this.elementRef.nativeElement,e,t)},t.prototype.removeStyle=function(e){this.renderer.removeStyle(this.elementRef.nativeElement,e)},t}();a.decorators=[{type:i.Directive,args:[{selector:"[mc-splitter-area]",host:{class:"mc-splitter-area"}}]}],a.ctorParameters=function(){return[{type:i.ElementRef},{type:i.Renderer2},{type:c}]};var l=function(){};l.decorators=[{type:i.NgModule,args:[{imports:[t.CommonModule,r.McIconModule],exports:[s,a,c],declarations:[s,a,c]}]}],e.McGutterDirective=s,e.McSplitterAreaDirective=a,e.McSplitterComponent=c,e.McSplitterModule=l,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("@ptsecurity/mosaic/icon"),require("@angular/cdk/coercion")):"function"==typeof define&&define.amd?define("@ptsecurity/mosaic/splitter",["exports","@angular/common","@angular/core","@ptsecurity/mosaic/icon","@angular/cdk/coercion"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).ptsecurity=e.ptsecurity||{},e.ptsecurity.mosaic=e.ptsecurity.mosaic||{},e.ptsecurity.mosaic.splitter={}),e.ng.common,e.ng.core,e.ptsecurity.mosaic.icon,e.ng.cdk.coercion)}(this,(function(e,t,i,r,n){"use strict";var o;e.Direction=void 0,(o=e.Direction||(e.Direction={})).Horizontal="horizontal",o.Vertical="vertical";var s=function(){function t(t,i){this.elementRef=t,this.renderer=i,this._direction=e.Direction.Vertical,this._order=0,this._size=6,this.dragged=!1}return Object.defineProperty(t.prototype,"direction",{get:function(){return this._direction},set:function(e){this._direction=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"order",{get:function(){return this._order},set:function(e){this._order=n.coerceNumberProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"size",{get:function(){return this._size},set:function(e){this._size=n.coerceNumberProperty(e)},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){this.setStyle("flex-basis",n.coerceCssPixelValue(this.size)),this.setStyle(this.isVertical()?"height":"width",n.coerceCssPixelValue(this.size)),this.setStyle("order",this.order),this.isVertical()||this.setStyle("height","100%"),this.setStyle("flex-direction",this.isVertical()?"row":"column")},t.prototype.isVertical=function(){return this.direction===e.Direction.Vertical},t.prototype.setStyle=function(e,t){this.renderer.setStyle(this.elementRef.nativeElement,e,t)},t}();s.decorators=[{type:i.Directive,args:[{selector:"mc-gutter",host:{class:"mc-gutter","[class.mc-gutter_vertical]":"isVertical()","[class.mc-gutter_dragged]":"dragged","(mousedown)":"dragged = true"}}]}],s.ctorParameters=function(){return[{type:i.ElementRef},{type:i.Renderer2}]},s.propDecorators={direction:[{type:i.Input}],order:[{type:i.Input}],size:[{type:i.Input}]};var a=function(){function t(e,t,r,n){this.elementRef=e,this.changeDetectorRef=t,this.ngZone=r,this.renderer=n,this.gutterPositionChange=new i.EventEmitter,this.areas=[],this.isDragging=!1,this.areaPositionDivider=2,this.listeners=[],this._hideGutters=!1,this._disabled=!1,this._gutterSize=6}return Object.defineProperty(t.prototype,"hideGutters",{get:function(){return this._hideGutters},set:function(e){this._hideGutters=n.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"direction",{get:function(){return this._direction},set:function(e){this._direction=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=n.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"gutterSize",{get:function(){return this._gutterSize},set:function(e){var t=n.coerceNumberProperty(e);this._gutterSize=t>0?t:this.gutterSize},enumerable:!1,configurable:!0}),t.prototype.addArea=function(e){var t=this.areas.length,i=t*this.areaPositionDivider,r=e.getSize();e.setOrder(i),this.areas.push({area:e,index:t,order:i,initialSize:r})},t.prototype.ngOnInit=function(){this.direction||(this.direction=e.Direction.Horizontal),this.setStyle("flex-direction",this.isVertical()?"column":"row")},t.prototype.onMouseDown=function(e,t,i){var r=this;if(!this.disabled){e.preventDefault();var n=this.areas[t],o=this.areas[i],s={x:e.screenX,y:e.screenY};n.initialSize=n.area.getSize(),o.initialSize=o.area.getSize(),this.areas.forEach((function(e){var t=e.area.getSize();e.area.disableFlex(),e.area.setSize(t)})),this.ngZone.runOutsideAngular((function(){r.listeners.push(r.renderer.listen("document","mouseup",(function(){return r.onMouseUp()})))})),this.ngZone.runOutsideAngular((function(){r.listeners.push(r.renderer.listen("document","mousemove",(function(e){return r.onMouseMove(e,s,n,o)})))})),this.isDragging=!0}},t.prototype.removeArea=function(e){var t=-1;this.areas.some((function(i,r){return i.area===e&&(t=r,!0)})),-1!==t&&this.areas.splice(t,1)},t.prototype.isVertical=function(){return this.direction===e.Direction.Vertical},t.prototype.updateGutter=function(){var e=this;this.gutters.forEach((function(t){t.dragged&&(t.dragged=!1,e.changeDetectorRef.detectChanges())}))},t.prototype.onMouseMove=function(e,t,i,r){if(this.isDragging&&!this.disabled){var n=e.screenX,o=e.screenY,s=this.isVertical()?t.y-o:t.x-n,a=i.initialSize-s,c=r.initialSize+s,u=i.area.getMinSize(),l=r.area.getMinSize();a<=u||c<=l||(a<=0?(i.area.setSize(0),r.area.setSize(r.initialSize+i.initialSize)):c<=0?(i.area.setSize(r.initialSize+i.initialSize),r.area.setSize(0)):(i.area.setSize(a),r.area.setSize(c)))}},t.prototype.onMouseUp=function(){for(;this.listeners.length>0;){var e=this.listeners.pop();e&&e()}this.isDragging=!1,this.updateGutter(),this.gutterPositionChange.emit()},t.prototype.setStyle=function(e,t){this.renderer.setStyle(this.elementRef.nativeElement,e,t)},t}();a.decorators=[{type:i.Component,args:[{selector:"mc-splitter",exportAs:"mcSplitter",host:{class:"mc-splitter"},preserveWhitespaces:!1,template:'<ng-content></ng-content>\n\n<ng-template ngFor let-area [ngForOf]="areas" let-index="index" let-last="last">\n <mc-gutter *ngIf="last === false"\n [direction]="direction"\n [attr.disabled]="disabled || null"\n [style.display]="hideGutters ? \'none\' : \'flex\'"\n [size]="gutterSize"\n [order]="index * 2 + 1"\n (mousedown)="onMouseDown($event, index, index + 1)">\n </mc-gutter>\n</ng-template>\n',encapsulation:i.ViewEncapsulation.None,changeDetection:i.ChangeDetectionStrategy.OnPush,styles:[".mc-splitter{display:flex;flex-wrap:nowrap;align-items:stretch}.mc-gutter,.mc-splitter,.mc-splitter .mc-splitter-area{overflow:hidden}.mc-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center}.mc-gutter.mc-gutter_vertical>.mc-icon{transform:rotate(90deg)}"]}]}],a.ctorParameters=function(){return[{type:i.ElementRef},{type:i.ChangeDetectorRef},{type:i.NgZone},{type:i.Renderer2}]},a.propDecorators={gutterPositionChange:[{type:i.Output}],gutters:[{type:i.ViewChildren,args:[s]}],hideGutters:[{type:i.Input}],direction:[{type:i.Input}],disabled:[{type:i.Input}],gutterSize:[{type:i.Input}]};var c=function(){function t(e,t,r){this.elementRef=e,this.renderer=t,this.splitter=r,this.sizeChange=new i.EventEmitter}return t.prototype.disableFlex=function(){this.renderer.removeStyle(this.elementRef.nativeElement,"flex")},t.prototype.ngOnInit=function(){var t=this;this.splitter.addArea(this),this.removeStyle("max-width"),this.splitter.direction===e.Direction.Vertical?(this.setStyle("width","100%"),this.removeStyle("height")):(this.setStyle("height","100%"),this.removeStyle("width")),this.splitter.gutterPositionChange.subscribe((function(){return t.emitSizeChange()}))},t.prototype.ngOnDestroy=function(){this.splitter.removeArea(this)},t.prototype.setOrder=function(e){this.setStyle("order",e)},t.prototype.setSize=function(e){if(e){var t=n.coerceNumberProperty(e);this.setStyle(this.getSizeProperty(),n.coerceCssPixelValue(t))}},t.prototype.getSize=function(){return this.elementRef.nativeElement[this.getOffsetSizeProperty()]},t.prototype.getMinSize=function(){var e=getComputedStyle(this.elementRef.nativeElement);return parseFloat(e[this.getMinSizeProperty()])},t.prototype.isVertical=function(){return this.splitter.direction===e.Direction.Vertical},t.prototype.getMinSizeProperty=function(){return this.isVertical()?"min-height":"minWidth"},t.prototype.getOffsetSizeProperty=function(){return this.isVertical()?"offsetHeight":"offsetWidth"},t.prototype.getSizeProperty=function(){return this.isVertical()?"height":"width"},t.prototype.setStyle=function(e,t){this.renderer.setStyle(this.elementRef.nativeElement,e,t)},t.prototype.removeStyle=function(e){this.renderer.removeStyle(this.elementRef.nativeElement,e)},t.prototype.emitSizeChange=function(){this.sizeChange.emit(this.getSize())},t}();c.decorators=[{type:i.Directive,args:[{selector:"[mc-splitter-area]",host:{class:"mc-splitter-area"}}]}],c.ctorParameters=function(){return[{type:i.ElementRef},{type:i.Renderer2},{type:a}]},c.propDecorators={sizeChange:[{type:i.Output}]};var u=function(){};u.decorators=[{type:i.NgModule,args:[{imports:[t.CommonModule,r.McIconModule],exports:[s,c,a],declarations:[s,c,a]}]}],e.McGutterDirective=s,e.McSplitterAreaDirective=c,e.McSplitterComponent=a,e.McSplitterModule=u,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=ptsecurity-mosaic-splitter.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/mosaic/splitter/splitter.component.ts","../../../packages/mosaic/splitter/splitter.module.ts"],"names":["Direction","McGutterDirective","elementRef","renderer","this","_direction","Vertical","_order","_size","dragged","Object","defineProperty","prototype","direction","order","coerceNumberProperty","size","ngOnInit","setStyle","coerceCssPixelValue","isVertical","property","value","nativeElement","Directive","args","selector","host","class","[class.mc-gutter_vertical]","[class.mc-gutter_dragged]","(mousedown)","ElementRef","Renderer2","Input","McSplitterComponent","changeDetectorRef","ngZone","areas","isDragging","areaPositionDivider","listeners","_hideGutters","_disabled","_gutterSize","coerceBooleanProperty","disabled","gutterSize","addArea","area","index","length","getSize","setOrder","push","initialSize","Horizontal","onMouseDown","event","leftAreaIndex","rightAreaIndex","_this","preventDefault","leftArea","rightArea","startPoint","x","screenX","y","screenY","forEach","item","disableFlex","setSize","runOutsideAngular","listen","onMouseUp","e","onMouseMove","removeArea","indexToRemove","some","splice","updateGutter","gutters","gutter","detectChanges","endPoint","offset","newLeftAreaSize","newRightAreaSize","minLeftAreaSize","getMinSize","minRightAreaSize","unsubscribe","pop","Component","exportAs","preserveWhitespaces","template","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","NgZone","ViewChildren","McSplitterAreaDirective","splitter","removeStyle","ngOnDestroy","sz","getSizeProperty","getOffsetSizeProperty","styles","getComputedStyle","parseFloat","getMinSizeProperty","style","NgModule","imports","CommonModule","McIconModule","exports","declarations"],"mappings":"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","sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\n\ninterface IArea {\n area: McSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n\n@Directive({\n selector: 'mc-gutter',\n host: {\n class: 'mc-gutter',\n '[class.mc-gutter_vertical]': 'isVertical()',\n '[class.mc-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class McGutterDirective implements OnInit {\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n get order(): number {\n return this._order;\n }\n\n @Input()\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n dragged: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical() ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical()) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is requied for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'row' : 'column');\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n\n@Component({\n selector: 'mc-splitter',\n exportAs: 'mcSplitter',\n host: {\n class: 'mc-splitter'\n },\n preserveWhitespaces: false,\n styleUrls: ['splitter.scss'],\n templateUrl: './splitter.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McSplitterComponent implements OnInit {\n readonly areas: IArea[] = [];\n\n @ViewChildren(McGutterDirective) gutters: QueryList<McGutterDirective>;\n\n private isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n @Input()\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n @Input()\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n addArea(area: McSplitterAreaDirective): void {\n const index: number = this.areas.length;\n const order: number = index * this.areaPositionDivider;\n const size: number = area.getSize();\n\n area.setOrder(order);\n\n this.areas.push({\n area,\n index,\n order,\n initialSize: size\n });\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) { return; }\n\n event.preventDefault();\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n item.area.disableFlex();\n item.area.setSize(size);\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mouseup',\n () => this.onMouseUp()\n )\n );\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mousemove',\n (e: MouseEvent) => this.onMouseMove(e, startPoint, leftArea, rightArea)\n )\n );\n });\n\n this.isDragging = true;\n }\n\n removeArea(area: McSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private updateGutter(): void {\n this.gutters.forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n\n }\n\n private onMouseMove(event: MouseEvent, startPoint: IPoint, leftArea: IArea, rightArea: IArea) {\n if (!this.isDragging || this.disabled) { return; }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical()\n ? startPoint.y - endPoint.y\n : startPoint.x - endPoint.x;\n\n const newLeftAreaSize = leftArea.initialSize - offset;\n const newRightAreaSize = rightArea.initialSize + offset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize <= minLeftAreaSize || newRightAreaSize <= minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp() {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n\n this.isDragging = false;\n\n this.updateGutter();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[mc-splitter-area]',\n host: {\n class: 'mc-splitter-area'\n }\n})\nexport class McSplitterAreaDirective implements OnInit, OnDestroy {\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private splitter: McSplitterComponent\n ) {}\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngOnInit(): void {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (size) {\n const sz = coerceNumberProperty(size);\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(sz));\n }\n }\n\n getSize(): number {\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getMinSize(): number {\n const styles = getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.MinHeight\n : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.OffsetHeight\n : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.Height\n : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McGutterDirective, McSplitterAreaDirective, McSplitterComponent } from './splitter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n McIconModule\n ],\n exports: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ],\n declarations: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ]\n})\nexport class McSplitterModule {\n}\n"]}
1
+ {"version":3,"sources":["../../../packages/mosaic/splitter/splitter.component.ts","../../../packages/mosaic/splitter/splitter.module.ts"],"names":["Direction","McGutterDirective","elementRef","renderer","this","_direction","Vertical","_order","_size","dragged","Object","defineProperty","prototype","direction","order","coerceNumberProperty","size","ngOnInit","setStyle","coerceCssPixelValue","isVertical","property","value","nativeElement","Directive","args","selector","host","class","[class.mc-gutter_vertical]","[class.mc-gutter_dragged]","(mousedown)","ElementRef","Renderer2","Input","McSplitterComponent","changeDetectorRef","ngZone","gutterPositionChange","EventEmitter","areas","isDragging","areaPositionDivider","listeners","_hideGutters","_disabled","_gutterSize","coerceBooleanProperty","disabled","gutterSize","addArea","area","index","length","getSize","setOrder","push","initialSize","Horizontal","onMouseDown","event","leftAreaIndex","rightAreaIndex","_this","preventDefault","leftArea","rightArea","startPoint","x","screenX","y","screenY","forEach","item","disableFlex","setSize","runOutsideAngular","listen","onMouseUp","e","onMouseMove","removeArea","indexToRemove","some","splice","updateGutter","gutters","gutter","detectChanges","endPoint","offset","newLeftAreaSize","newRightAreaSize","minLeftAreaSize","getMinSize","minRightAreaSize","unsubscribe","pop","emit","Component","exportAs","preserveWhitespaces","template","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","NgZone","Output","ViewChildren","McSplitterAreaDirective","splitter","sizeChange","removeStyle","subscribe","emitSizeChange","ngOnDestroy","sz","getSizeProperty","getOffsetSizeProperty","styles","getComputedStyle","parseFloat","getMinSizeProperty","style","NgModule","imports","CommonModule","McIconModule","exports","declarations"],"mappings":"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","sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\n\ninterface IArea {\n area: McSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n@Directive({\n selector: 'mc-gutter',\n host: {\n class: 'mc-gutter',\n '[class.mc-gutter_vertical]': 'isVertical()',\n '[class.mc-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class McGutterDirective implements OnInit {\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n get order(): number {\n return this._order;\n }\n\n @Input()\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n dragged: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical() ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical()) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is requied for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'row' : 'column');\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n\n@Component({\n selector: 'mc-splitter',\n exportAs: 'mcSplitter',\n host: {\n class: 'mc-splitter'\n },\n preserveWhitespaces: false,\n styleUrls: ['splitter.scss'],\n templateUrl: './splitter.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McSplitterComponent implements OnInit {\n @Output() gutterPositionChange: EventEmitter<void> = new EventEmitter<void>();\n\n readonly areas: IArea[] = [];\n\n @ViewChildren(McGutterDirective) gutters: QueryList<McGutterDirective>;\n\n private isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n @Input()\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n @Input()\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n addArea(area: McSplitterAreaDirective): void {\n const index: number = this.areas.length;\n const order: number = index * this.areaPositionDivider;\n const size: number = area.getSize();\n\n area.setOrder(order);\n\n this.areas.push({\n area,\n index,\n order,\n initialSize: size\n });\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) { return; }\n\n event.preventDefault();\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n item.area.disableFlex();\n item.area.setSize(size);\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mouseup',\n () => this.onMouseUp()\n )\n );\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mousemove',\n (e: MouseEvent) => this.onMouseMove(e, startPoint, leftArea, rightArea)\n )\n );\n });\n\n this.isDragging = true;\n }\n\n removeArea(area: McSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private updateGutter(): void {\n this.gutters.forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n\n }\n\n private onMouseMove(event: MouseEvent, startPoint: IPoint, leftArea: IArea, rightArea: IArea) {\n if (!this.isDragging || this.disabled) { return; }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical()\n ? startPoint.y - endPoint.y\n : startPoint.x - endPoint.x;\n\n const newLeftAreaSize = leftArea.initialSize - offset;\n const newRightAreaSize = rightArea.initialSize + offset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize <= minLeftAreaSize || newRightAreaSize <= minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp() {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n\n this.isDragging = false;\n\n this.updateGutter();\n\n this.gutterPositionChange.emit();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[mc-splitter-area]',\n host: {\n class: 'mc-splitter-area'\n }\n})\nexport class McSplitterAreaDirective implements OnInit, OnDestroy {\n @Output() sizeChange: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private splitter: McSplitterComponent\n ) {}\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngOnInit(): void {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n\n this.splitter.gutterPositionChange.subscribe(() => this.emitSizeChange());\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (size) {\n const sz = coerceNumberProperty(size);\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(sz));\n }\n }\n\n getSize(): number {\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getMinSize(): number {\n const styles = getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.MinHeight\n : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.OffsetHeight\n : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.Height\n : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n\n private emitSizeChange(): void {\n this.sizeChange.emit(this.getSize());\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McGutterDirective, McSplitterAreaDirective, McSplitterComponent } from './splitter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n McIconModule\n ],\n exports: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ],\n declarations: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ]\n})\nexport class McSplitterModule {\n}\n"]}
@@ -893,6 +893,7 @@
893
893
  '[class.mc-selected]': 'selected',
894
894
  '[class.mc-focused]': 'hasFocus',
895
895
  '[class.mc-tag-with-avatar]': 'avatar',
896
+ '[class.mc-tag-with-icon]': 'contentChildren',
896
897
  '[class.mc-tag-with-trailing-icon]': 'trailingIcon || removeIcon',
897
898
  '[class.mc-disabled]': 'disabled',
898
899
  '(click)': 'handleClick($event)',
@@ -902,7 +903,7 @@
902
903
  },
903
904
  changeDetection: core.ChangeDetectionStrategy.OnPush,
904
905
  encapsulation: core.ViewEncapsulation.None,
905
- styles: [".mc-tag{position:relative;display:inline-block;overflow:hidden;margin:var(--mc-tags-size-margin,2px);height:var(--mc-tags-size-height,24px);border-width:var(--mc-tags-size-border-width,1px);border-style:solid;border-radius:var(--mc-tags-size-border-radius,4px);cursor:default;outline:none;box-sizing:border-box}.mc-tag.mc-left-icon{padding-left:var(--mc-tags-size-icon-padding,3px)}.mc-tag.mc-right-icon{padding-right:var(--mc-tags-size-icon-padding,3px)}.mc-tag__wrapper{display:flex;align-items:center;height:100%;flex:1 1 100%}.mc-tag__wrapper .mc-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--mc-tags-size-height,24px);height:var(--mc-tags-size-height,24px)}.mc-tag__wrapper .mc-icon_left{margin-right:var(--mc-tags-size-icon-padding,3px)}.mc-tag__wrapper .mc-icon_right{margin-left:var(--mc-tags-size-icon-padding,3px)}.mc-tag-overlay{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;pointer-events:none;border-radius:inherit}.mc-tag__text{margin-left:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}"]
906
+ styles: [".mc-tag{position:relative;display:inline-block;overflow:hidden;margin:var(--mc-tags-size-margin,2px);height:var(--mc-tags-size-height,24px);border-width:var(--mc-tags-size-border-width,1px);border-style:solid;border-radius:var(--mc-tags-size-border-radius,4px);cursor:default;outline:none;box-sizing:border-box}.mc-tag.mc-left-icon{padding-left:var(--mc-tags-size-icon-padding,3px)}.mc-tag.mc-right-icon{padding-right:var(--mc-tags-size-icon-padding,3px)}.mc-tag .mc-tag__text{margin-left:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mc-tag:not(.mc-tag-with-icon) .mc-tag__text{margin-right:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px))}.mc-tag__wrapper{display:flex;align-items:center;height:100%;flex:1 1 100%}.mc-tag__wrapper .mc-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--mc-tags-size-height,24px);height:var(--mc-tags-size-height,24px)}.mc-tag__wrapper .mc-icon_left{margin-right:var(--mc-tags-size-icon-padding,3px)}.mc-tag__wrapper .mc-icon_right{margin-left:var(--mc-tags-size-icon-padding,3px)}.mc-tag-overlay{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;pointer-events:none;border-radius:inherit}"]
906
907
  },] }
907
908
  ];
908
909
  /** @nocollapse */