@ptsecurity/mosaic 12.2.2 → 12.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/_theming.scss +14 -150
  2. package/bundles/ptsecurity-mosaic-button.umd.js +2 -2
  3. package/bundles/ptsecurity-mosaic-core.umd.js +0 -2
  4. package/bundles/ptsecurity-mosaic-core.umd.js.map +1 -1
  5. package/bundles/ptsecurity-mosaic-datepicker.umd.js +8 -1
  6. package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +1 -1
  7. package/bundles/ptsecurity-mosaic-form-field.umd.js +2 -2
  8. package/bundles/ptsecurity-mosaic-form-field.umd.js.map +1 -1
  9. package/bundles/ptsecurity-mosaic-list.umd.js +14 -19
  10. package/bundles/ptsecurity-mosaic-list.umd.js.map +1 -1
  11. package/bundles/ptsecurity-mosaic-popover.umd.js +2 -2
  12. package/bundles/ptsecurity-mosaic-popover.umd.js.map +1 -1
  13. package/bundles/ptsecurity-mosaic-splitter.umd.js +217 -30
  14. package/bundles/ptsecurity-mosaic-splitter.umd.js.map +1 -1
  15. package/bundles/ptsecurity-mosaic-tags.umd.js +52 -47
  16. package/bundles/ptsecurity-mosaic-tags.umd.js.map +1 -1
  17. package/bundles/ptsecurity-mosaic-tree-select.umd.js +1 -0
  18. package/bundles/ptsecurity-mosaic-tree-select.umd.js.map +1 -1
  19. package/bundles/ptsecurity-mosaic-tree.umd.js +3 -3
  20. package/bundles/ptsecurity-mosaic-tree.umd.js.map +1 -1
  21. package/esm2015/button/button.component.js +2 -2
  22. package/esm2015/core/pop-up/pop-up-trigger.js +1 -3
  23. package/esm2015/datepicker/datepicker-input.directive.js +9 -2
  24. package/esm2015/form-field/cleaner.js +3 -3
  25. package/esm2015/list/list-selection.component.js +15 -20
  26. package/esm2015/popover/popover-confirm.component.js +2 -2
  27. package/esm2015/popover/popover.component.js +2 -2
  28. package/esm2015/splitter/splitter.component.js +179 -32
  29. package/esm2015/splitter/splitter.module.js +4 -2
  30. package/esm2015/tags/tag.component.js +51 -48
  31. package/esm2015/tree/toggle.js +3 -3
  32. package/esm2015/tree/tree-option.component.js +2 -2
  33. package/esm2015/tree-select/tree-select.component.js +2 -1
  34. package/fesm2015/ptsecurity-mosaic-button.js +2 -2
  35. package/fesm2015/ptsecurity-mosaic-core.js +0 -2
  36. package/fesm2015/ptsecurity-mosaic-core.js.map +1 -1
  37. package/fesm2015/ptsecurity-mosaic-datepicker.js +8 -1
  38. package/fesm2015/ptsecurity-mosaic-datepicker.js.map +1 -1
  39. package/fesm2015/ptsecurity-mosaic-form-field.js +2 -2
  40. package/fesm2015/ptsecurity-mosaic-form-field.js.map +1 -1
  41. package/fesm2015/ptsecurity-mosaic-list.js +14 -19
  42. package/fesm2015/ptsecurity-mosaic-list.js.map +1 -1
  43. package/fesm2015/ptsecurity-mosaic-popover.js +2 -2
  44. package/fesm2015/ptsecurity-mosaic-popover.js.map +1 -1
  45. package/fesm2015/ptsecurity-mosaic-splitter.js +181 -32
  46. package/fesm2015/ptsecurity-mosaic-splitter.js.map +1 -1
  47. package/fesm2015/ptsecurity-mosaic-tags.js +50 -47
  48. package/fesm2015/ptsecurity-mosaic-tags.js.map +1 -1
  49. package/fesm2015/ptsecurity-mosaic-tree-select.js +1 -0
  50. package/fesm2015/ptsecurity-mosaic-tree-select.js.map +1 -1
  51. package/fesm2015/ptsecurity-mosaic-tree.js +3 -3
  52. package/fesm2015/ptsecurity-mosaic-tree.js.map +1 -1
  53. package/package.json +4 -4
  54. package/prebuilt-themes/dark-theme.css +1 -1
  55. package/prebuilt-themes/default-theme.css +1 -1
  56. package/splitter/splitter.component.d.ts +41 -3
  57. package/splitter/splitter.module.d.ts +1 -1
  58. package/tags/tag.component.d.ts +20 -20
  59. package/tree/toggle.d.ts +1 -1
  60. package/tree/tree-option.component.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-splitter.js","sources":["../../../packages/mosaic/splitter/splitter.component.ts","../../../packages/mosaic/splitter/splitter.component.html","../../../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","<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","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":[],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-splitter.js","sources":["../../../packages/mosaic/splitter/splitter.component.ts","../../../packages/mosaic/splitter/splitter.component.html","../../../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 ViewChild,\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 Top = 'top',\n Left = 'left',\n Cursor = 'cursor'\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 get isVertical(): boolean {\n return this._direction === Direction.Vertical;\n }\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 getPosition(): IPoint {\n return {\n x: this.elementRef.nativeElement.offsetLeft,\n y: this.elementRef.nativeElement.offsetTop\n };\n }\n\n private setStyle(property: StyleProperty, value: string | number): void {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: 'mc-gutter-ghost',\n host: {\n class: 'mc-gutter-ghost',\n '[class.mc-gutter-ghost_vertical]': 'isVertical',\n '[class.mc-gutter-ghost_visible]': 'visible'\n }\n})\nexport class McGutterGhostDirective {\n @Input() visible: boolean;\n\n get x(): number {\n return this._x;\n }\n\n @Input()\n set x(x: number) {\n this._x = x;\n this.setStyle(StyleProperty.Left, coerceCssPixelValue(x));\n }\n\n private _x: number = 0;\n\n get y(): number {\n return this._y;\n }\n\n @Input()\n set y(y: number) {\n this._y = y;\n this.setStyle(StyleProperty.Top, coerceCssPixelValue(y));\n }\n\n private _y: number = 0;\n\n\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n this.updateDimensions();\n }\n\n private _direction: Direction = Direction.Vertical;\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n this.updateDimensions();\n }\n\n private _size: number = 6;\n\n get isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n private updateDimensions(): void {\n this.setStyle(this.isVertical ? StyleProperty.Width : StyleProperty.Height, '100%');\n this.setStyle(this.isVertical ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n }\n\n private setStyle(property: StyleProperty, value: string | number): void {\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 @ViewChild(McGutterGhostDirective) ghost: McGutterGhostDirective;\n\n get isDragging(): boolean {\n return this._isDragging;\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 useGhost(): boolean {\n return this._useGhost;\n }\n\n @Input()\n set useGhost(useGhost: boolean) {\n this._useGhost = coerceBooleanProperty(useGhost);\n }\n\n private _useGhost: 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 get resizing(): boolean {\n return this._resizing;\n }\n\n private _resizing: boolean = false;\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 startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n let currentGutter: McGutterDirective | undefined;\n\n if (this.useGhost) {\n // tslint:disable-next-line:no-magic-numbers\n const gutterOrder = leftAreaIndex * 2 + 1;\n currentGutter = this.gutters.find((gutter: McGutterDirective) => gutter.order === gutterOrder);\n\n if (currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n\n this.ghost.direction = currentGutter.direction;\n this.ghost.size = currentGutter.size;\n this.ghost.x = gutterPosition.x;\n this.ghost.y = gutterPosition.y;\n\n this.ghost.visible = true;\n this.setStyle(StyleProperty.Cursor, currentGutter.direction === Direction.Vertical ? 'row-resize' : 'col-resize');\n }\n } else {\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n item.area.disableFlex();\n item.area.setSize(size);\n });\n }\n\n\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mouseup',\n () => this.onMouseUp(leftArea, rightArea, currentGutter)\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, currentGutter)\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 private onMouseMove(event: MouseEvent,\n startPoint: IPoint,\n leftArea: IArea,\n rightArea: IArea,\n currentGutter: McGutterDirective | undefined) {\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 if (this.useGhost && currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const leftPos = leftArea.area.getPosition();\n const rightPos = rightArea.area.getPosition();\n const rightMin = rightArea.area.getMinSize() || 0;\n const leftMin = leftArea.area.getMinSize() || 0;\n\n const key = this.isVertical() ? 'y' : 'x';\n\n const minPos = leftPos[key] - leftMin;\n\n const maxPos = rightPos[key] + (rightArea.area.getSize() || 0) - rightMin - currentGutter.size;\n\n const newPos = gutterPosition[key] - offset;\n\n this.ghost[key] = newPos < minPos ? minPos : Math.min(newPos, maxPos);\n\n } else {\n this.resizeAreas(leftArea, rightArea, offset);\n }\n }\n\n private resizeAreas(leftArea: IArea, rightArea: IArea, sizeOffset: number): void {\n const newLeftAreaSize = leftArea.initialSize - sizeOffset;\n const newRightAreaSize = rightArea.initialSize + sizeOffset;\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(leftArea: IArea,\n rightArea: IArea,\n currentGutter: McGutterDirective | undefined) {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n if (this.useGhost && currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const offset = this.ghost.direction === Direction.Vertical ?\n gutterPosition.y - this.ghost.y :\n gutterPosition.x - this.ghost.x;\n this.resizeAreas(leftArea, rightArea, offset);\n this.ghost.visible = false;\n this.setStyle(StyleProperty.Cursor, 'unset');\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 '[class.mc-splitter-area_resizing]': 'isResizing()'\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 isResizing(): boolean {\n return this.splitter.isDragging;\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 (!isNaN(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 getPosition(): IPoint {\n return {\n x: this.elementRef.nativeElement.offsetLeft,\n y: this.elementRef.nativeElement.offsetTop\n };\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","<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\n<mc-gutter-ghost *ngIf=\"useGhost\"></mc-gutter-ghost>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport {\n McGutterDirective,\n McGutterGhostDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n} 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 McGutterGhostDirective,\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":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { PlatformModule } from '@angular/cdk/platform';
2
2
  import * as i4 from '@angular/common';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { InjectionToken, Directive, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChildren, ContentChild, forwardRef, Output, Input, Optional, Inject, Self, NgModule } from '@angular/core';
5
+ import { InjectionToken, Directive, forwardRef, Inject, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChildren, ContentChild, Output, Input, Optional, Self, NgModule } from '@angular/core';
6
6
  import { SPACE, BACKSPACE, DELETE, HOME, END, ENTER, TAB, COMMA, hasModifierKey } from '@ptsecurity/cdk/keycodes';
7
7
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
8
8
  import * as i3 from '@angular/forms';
@@ -59,6 +59,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
59
59
  host: { class: 'mc-tag-trailing-icon' }
60
60
  }]
61
61
  }] });
62
+ /**
63
+ *
64
+ * Example:
65
+ *
66
+ * `<mc-tag>
67
+ * <mc-icon mcTagRemove>cancel</mc-icon>
68
+ * </mc-tag>`
69
+ *
70
+ * You *may* use a custom icon, but you may need to override the `mc-tag-remove` positioning
71
+ * styles to properly center the icon within the tag.
72
+ */
73
+ class McTagRemove {
74
+ constructor(parentTag) {
75
+ this.parentTag = parentTag;
76
+ }
77
+ focus($event) {
78
+ $event.stopPropagation();
79
+ }
80
+ /** Calls the parent tag's public `remove()` method if applicable. */
81
+ handleClick(event) {
82
+ if (this.parentTag.removable) {
83
+ this.parentTag.hasFocus = true;
84
+ this.parentTag.remove();
85
+ }
86
+ // We need to stop event propagation because otherwise the event will bubble up to the
87
+ // form field and cause the `onContainerClick` method to be invoked. This method would then
88
+ // reset the focused tag that has been focused after tag removal. Usually the parent
89
+ // the parent click listener of the `McTag` would prevent propagation, but it can happen
90
+ // that the tag is being removed before the event bubbles up.
91
+ event.stopPropagation();
92
+ }
93
+ }
94
+ /** @nocollapse */ McTagRemove.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTagRemove, deps: [{ token: forwardRef(() => McTag) }], target: i0.ɵɵFactoryTarget.Directive });
95
+ /** @nocollapse */ McTagRemove.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McTagRemove, selector: "[mcTagRemove]", host: { listeners: { "click": "handleClick($event)", "focus": "focus($event)" }, properties: { "attr.tabindex": "-1" }, classAttribute: "mc-tag-remove mc-tag-trailing-icon" }, ngImport: i0 });
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTagRemove, decorators: [{
97
+ type: Directive,
98
+ args: [{
99
+ selector: '[mcTagRemove]',
100
+ host: {
101
+ class: 'mc-tag-remove mc-tag-trailing-icon',
102
+ '[attr.tabindex]': '-1',
103
+ '(click)': 'handleClick($event)',
104
+ '(focus)': 'focus($event)'
105
+ }
106
+ }]
107
+ }], ctorParameters: function () { return [{ type: McTag, decorators: [{
108
+ type: Inject,
109
+ args: [forwardRef(() => McTag)]
110
+ }] }]; } });
62
111
  class McTagBase {
63
112
  // tslint:disable-next-line:naming-convention
64
113
  constructor(_elementRef) {
@@ -348,52 +397,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
348
397
  }], disabled: [{
349
398
  type: Input
350
399
  }] } });
351
- /**
352
- *
353
- * Example:
354
- *
355
- * `<mc-tag>
356
- * <mc-icon mcTagRemove>cancel</mc-icon>
357
- * </mc-tag>`
358
- *
359
- * You *may* use a custom icon, but you may need to override the `mc-tag-remove` positioning
360
- * styles to properly center the icon within the tag.
361
- */
362
- class McTagRemove {
363
- constructor(parentTag) {
364
- this.parentTag = parentTag;
365
- }
366
- focus($event) {
367
- $event.stopPropagation();
368
- }
369
- /** Calls the parent tag's public `remove()` method if applicable. */
370
- handleClick(event) {
371
- if (this.parentTag.removable) {
372
- this.parentTag.hasFocus = true;
373
- this.parentTag.remove();
374
- }
375
- // We need to stop event propagation because otherwise the event will bubble up to the
376
- // form field and cause the `onContainerClick` method to be invoked. This method would then
377
- // reset the focused tag that has been focused after tag removal. Usually the parent
378
- // the parent click listener of the `McTag` would prevent propagation, but it can happen
379
- // that the tag is being removed before the event bubbles up.
380
- event.stopPropagation();
381
- }
382
- }
383
- /** @nocollapse */ McTagRemove.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTagRemove, deps: [{ token: McTag }], target: i0.ɵɵFactoryTarget.Directive });
384
- /** @nocollapse */ McTagRemove.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McTagRemove, selector: "[mcTagRemove]", host: { listeners: { "click": "handleClick($event)", "focus": "focus($event)" }, properties: { "attr.tabindex": "-1" }, classAttribute: "mc-tag-remove mc-tag-trailing-icon" }, ngImport: i0 });
385
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTagRemove, decorators: [{
386
- type: Directive,
387
- args: [{
388
- selector: '[mcTagRemove]',
389
- host: {
390
- class: 'mc-tag-remove mc-tag-trailing-icon',
391
- '[attr.tabindex]': '-1',
392
- '(click)': 'handleClick($event)',
393
- '(focus)': 'focus($event)'
394
- }
395
- }]
396
- }], ctorParameters: function () { return [{ type: McTag }]; } });
397
400
 
398
401
  class McTagListBase {
399
402
  constructor(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl) {