@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-popover.js","sources":["../../../packages/mosaic/popover/popover-animations.ts","../../../packages/mosaic/popover/popover.component.ts","../../../packages/mosaic/popover/popover.component.html","../../../packages/mosaic/popover/popover-confirm.component.ts","../../../packages/mosaic/popover/popover-confirm.component.html","../../../packages/mosaic/popover/popover.module.ts","../../../packages/mosaic/popover/ptsecurity-mosaic-popover.ts"],"sourcesContent":["import {\n animate,\n AnimationTriggerMetadata,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\n\n\nexport const mcPopoverAnimations: {\n readonly popoverState: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n popoverState: trigger('state', [\n state('initial', style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })),\n transition('* => visible', animate('120ms cubic-bezier(0, 0, 0.2, 1)', style({\n opacity: 1,\n transform: 'scale(1, 1)'\n }))),\n transition('* => hidden', animate('100ms linear', style({ opacity: 0 })))\n ])\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n Overlay,\n ScrollDispatcher,\n ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { OverlayConfig } from '@angular/cdk/overlay/overlay-config';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n McPopUp,\n McPopUpTrigger,\n PopUpPlacements,\n PopUpSizes,\n PopUpTriggers,\n POSITION_TO_CSS_MAP\n} from '@ptsecurity/mosaic/core';\nimport { merge, NEVER } from 'rxjs';\n\nimport { mcPopoverAnimations } from './popover-animations';\n\n\n@Component({\n selector: 'mc-popover-component',\n templateUrl: './popover.component.html',\n preserveWhitespaces: false,\n styleUrls: ['./popover.scss'],\n host: {\n '(keydown.esc)': 'hide(0)'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [mcPopoverAnimations.popoverState]\n})\nexport class McPopoverComponent extends McPopUp {\n prefix = 'mc-popover';\n\n header: string | TemplateRef<any>;\n footer: string | TemplateRef<any>;\n\n isTrapFocus: boolean = false;\n\n constructor(changeDetectorRef: ChangeDetectorRef) {\n super(changeDetectorRef);\n }\n\n updateClassMap(placement: string, customClass: string, size: PopUpSizes) {\n super.updateClassMap(\n placement,\n customClass,\n { [`${this.prefix}_${size}`]: !!size }\n );\n }\n\n updateTrapFocus(isTrapFocus: boolean): void {\n this.isTrapFocus = isTrapFocus;\n }\n}\n\nexport const MC_POPOVER_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('mc-popover-scroll-strategy');\n\n/** @docs-private */\nexport function mcPopoverScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition({ scrollThrottle: 20 });\n}\n\n/** @docs-private */\nexport const MC_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MC_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: mcPopoverScrollStrategyFactory\n};\n\n/** Creates an error to be thrown if the user supplied an invalid popover position. */\nexport function getMcPopoverInvalidPositionError(position: string) {\n return Error(`McPopover position \"${position}\" is invalid.`);\n}\n\n\n@Directive({\n selector: '[mcPopover]',\n exportAs: 'mcPopover',\n host: {\n '[class.mc-popover_open]': 'isOpen',\n '(keydown)': 'handleKeydown($event)',\n '(touchend)': 'handleTouchend()'\n }\n})\nexport class McPopoverTrigger extends McPopUpTrigger<McPopoverComponent> {\n @Input('mcPopoverVisible')\n get popoverVisible(): boolean {\n return this.visible;\n }\n\n set popoverVisible(value: boolean) {\n super.updateVisible(value);\n }\n\n @Input('mcPopoverPlacement')\n get popoverPlacement(): PopUpPlacements {\n return this.placement;\n }\n\n set popoverPlacement(value: PopUpPlacements) {\n super.updatePlacement(value);\n }\n\n @Input('mcPopoverPlacementPriority')\n get popoverPlacementPriority() {\n return this.placementPriority;\n }\n\n set popoverPlacementPriority(value) {\n super.updatePlacementPriority(value);\n }\n\n @Input()\n get hasBackdrop(): boolean {\n return this._hasBackdrop;\n }\n\n set hasBackdrop(value: boolean) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n\n private _hasBackdrop: boolean = false;\n\n @Input('mcPopoverHeader')\n get header(): string | TemplateRef<any> {\n return this._header;\n }\n\n set header(value: string | TemplateRef<any>) {\n this._header = value;\n\n this.updateData();\n }\n\n private _header: string | TemplateRef<any>;\n\n @Input('mcPopoverContent')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(value: string | TemplateRef<any>) {\n this._content = value;\n\n this.updateData();\n }\n\n @Input('mcPopoverFooter')\n get footer(): string | TemplateRef<any> {\n return this._footer;\n }\n\n set footer(value: string | TemplateRef<any>) {\n this._footer = value;\n\n this.updateData();\n }\n\n private _footer: string | TemplateRef<any>;\n\n @Input('mcPopoverDisabled')\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n @Input('mcTrigger')\n get trigger(): string {\n return this._trigger;\n }\n\n set trigger(value: string) {\n if (value) {\n this._trigger = value;\n } else {\n this._trigger = PopUpTriggers.Click;\n }\n\n this.initListeners();\n }\n\n private _trigger: string = PopUpTriggers.Click;\n\n @Input('mcPopoverSize')\n get size(): PopUpSizes {\n return this._size;\n }\n\n set size(value: PopUpSizes) {\n if ([PopUpSizes.Small, PopUpSizes.Normal, PopUpSizes.Large].includes(value)) {\n this._size = value;\n\n this.updateClassMap();\n } else {\n this._size = PopUpSizes.Normal;\n }\n }\n\n private _size: PopUpSizes = PopUpSizes.Normal;\n\n @Input('mcPopoverClass')\n get customClass() {\n return this._customClass;\n }\n\n set customClass(value: string) {\n this._customClass = value;\n\n this.updateClassMap();\n }\n\n @Input()\n get closeOnScroll(): boolean {\n return this._closeOnScroll;\n }\n\n set closeOnScroll(value: boolean) {\n this._closeOnScroll = coerceBooleanProperty(value);\n }\n\n private _closeOnScroll: boolean = false;\n\n @Input() backdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n @Output('mcPopoverPlacementChange') placementChange = new EventEmitter();\n\n @Output('mcPopoverVisibleChange') visibleChange = new EventEmitter<boolean>();\n\n protected originSelector = '.mc-popover';\n\n protected get overlayConfig(): OverlayConfig {\n return {\n panelClass: 'mc-popover__panel',\n hasBackdrop: this.hasBackdrop,\n backdropClass: this.backdropClass\n };\n }\n\n constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(MC_POPOVER_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\n }\n\n updateData() {\n if (!this.instance) { return; }\n\n this.instance.header = this.header;\n this.instance.content = this.content;\n this.instance.footer = this.footer;\n\n this.instance.updateTrapFocus(this.trigger !== PopUpTriggers.Focus);\n\n if (this.isOpen) {\n this.updatePosition(true);\n }\n }\n\n /** Updates the position of the current popover. */\n updatePosition(reapplyPosition: boolean = false) {\n this.overlayRef = this.createOverlay();\n\n const position = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)\n .withPositions(this.getPrioritizedPositions())\n .withPush(true);\n\n if (reapplyPosition) {\n setTimeout(() => position.reapplyLastPosition());\n }\n }\n\n getOverlayHandleComponentType(): Type<McPopoverComponent> {\n return McPopoverComponent;\n }\n\n updateClassMap(newPlacement: string = this.placement) {\n if (!this.instance) { return; }\n\n this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], this.customClass, this.size);\n this.instance.markForCheck();\n }\n\n closingActions() {\n return merge(\n this.overlayRef!.backdropClick(),\n this.hasBackdrop ? NEVER : this.overlayRef!.outsidePointerEvents(),\n this.closeOnScroll ? this.scrollDispatcher.scrolled() : NEVER,\n this.overlayRef!.detachments()\n );\n }\n}\n","<div class=\"mc-popover\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"isTrapFocus\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n\n <div class=\"mc-popover__container\">\n <div class=\"mc-popover__header\" *ngIf=\"header\">\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(header)\">\n <div>{{ header }}</div>\n </ng-container>\n </div>\n\n <div class=\"mc-popover__content\" *ngIf=\"content\">\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(content)\">\n <div>{{ content }}</div>\n </ng-container>\n </div>\n\n <div class=\"mc-popover__footer\" *ngIf=\"footer\">\n <ng-container *ngIf=\"isTemplateRef(footer)\" [ngTemplateOutlet]=\"$any(footer)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(footer)\">\n <div>{{ footer }}</div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"mc-popover__arrow\" [class.mc-popover__arrow_with-footer]=\"footer\"></div>\n</div>\n","import { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n Optional,\n Output,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { mcPopoverAnimations } from './popover-animations';\nimport { MC_POPOVER_SCROLL_STRATEGY, McPopoverComponent, McPopoverTrigger } from './popover.component';\n\n\nexport const MC_POPOVER_CONFIRM_TEXT = new InjectionToken<string>('');\nexport const MC_POPOVER_CONFIRM_BUTTON_TEXT = new InjectionToken<string>('');\n\n@Component({\n selector: 'mc-popover-confirm-component',\n templateUrl: './popover-confirm.component.html',\n preserveWhitespaces: false,\n styleUrls: ['./popover.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [mcPopoverAnimations.popoverState]\n})\nexport class McPopoverConfirmComponent extends McPopoverComponent {\n themePalette = ThemePalette;\n\n onConfirm = new Subject<void>();\n confirmButtonText: string;\n\n confirmText: string;\n\n constructor(changeDetectorRef: ChangeDetectorRef) {\n super(changeDetectorRef);\n }\n}\n\n\n@Directive({\n selector: '[mcPopoverConfirm]',\n exportAs: 'mcPopoverConfirm',\n host: {\n '[class.mc-popover_open]': 'isOpen',\n '(keydown)': 'handleKeydown($event)',\n '(touchend)': 'handleTouchend()'\n }\n})\nexport class McPopoverConfirmTrigger extends McPopoverTrigger {\n @Output() confirm: EventEmitter<void> = new EventEmitter<void>();\n\n @Input('mcPopoverConfirmText')\n get confirmText(): string {\n return this._confirmText;\n }\n\n set confirmText(value: string) {\n this._confirmText = value;\n\n this.updateData();\n }\n\n private _confirmText: string;\n\n @Input('mcPopoverConfirmButtonText')\n get confirmButtonText(): string {\n return this._confirmButtonText;\n }\n\n set confirmButtonText(value: string) {\n this._confirmButtonText = value;\n\n this.updateData();\n }\n\n private _confirmButtonText: string = 'Да';\n\n constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(MC_POPOVER_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality,\n @Optional() @Inject(MC_POPOVER_CONFIRM_TEXT) confirmText: string,\n @Optional() @Inject(MC_POPOVER_CONFIRM_BUTTON_TEXT) confirmButtonText: string\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\n\n this.confirmText = confirmText || 'Вы уверены, что хотите продолжить?';\n this.confirmButtonText = confirmButtonText || 'Да';\n }\n\n updateData() {\n if (!this.instance) { return; }\n super.updateData();\n this.setupButtonEvents();\n this.instance.confirmButtonText = this.confirmButtonText;\n this.instance.confirmText = this.confirmText;\n }\n\n setupButtonEvents() {\n this.instance.onConfirm.pipe(takeUntil(this.destroyed)).subscribe(() => {\n this.confirm.emit();\n this.hide();\n });\n }\n\n getOverlayHandleComponentType() {\n return McPopoverConfirmComponent;\n }\n}\n","<div class=\"mc-popover-confirm mc-popover\"\n cdkTrapFocus=\"true\"\n cdkTrapFocusAutoCapture=\"true\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n <div class=\"mc-popover__content\">\n <div>{{ confirmText }}</div>\n <button mc-button [color]=\"themePalette.Primary\" (click)=\"onConfirm.next()\">{{confirmButtonText}}</button>\n </div>\n\n <div class=\"mc-popover__arrow\"></div>\n</div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\n\nimport { McPopoverConfirmComponent, McPopoverConfirmTrigger } from './popover-confirm.component';\nimport { MC_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER, McPopoverComponent, McPopoverTrigger } from './popover.component';\n\n\n@NgModule({\n declarations: [McPopoverComponent, McPopoverTrigger, McPopoverConfirmComponent, McPopoverConfirmTrigger],\n exports: [McPopoverComponent, McPopoverTrigger, McPopoverConfirmComponent, McPopoverConfirmTrigger],\n imports: [CommonModule, OverlayModule, McButtonModule, A11yModule],\n providers: [MC_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER],\n entryComponents: [McPopoverComponent, McPopoverConfirmComponent]\n})\nexport class McPopoverModule {}\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-popover.js","sources":["../../../packages/mosaic/popover/popover-animations.ts","../../../packages/mosaic/popover/popover.component.ts","../../../packages/mosaic/popover/popover.component.html","../../../packages/mosaic/popover/popover-confirm.component.ts","../../../packages/mosaic/popover/popover-confirm.component.html","../../../packages/mosaic/popover/popover.module.ts","../../../packages/mosaic/popover/ptsecurity-mosaic-popover.ts"],"sourcesContent":["import {\n animate,\n AnimationTriggerMetadata,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\n\n\nexport const mcPopoverAnimations: {\n readonly popoverState: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n popoverState: trigger('state', [\n state('initial', style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })),\n transition('* => visible', animate('120ms cubic-bezier(0, 0, 0.2, 1)', style({\n opacity: 1,\n transform: 'scale(1, 1)'\n }))),\n transition('* => hidden', animate('100ms linear', style({ opacity: 0 })))\n ])\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n Overlay,\n ScrollDispatcher,\n ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { OverlayConfig } from '@angular/cdk/overlay/overlay-config';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n Optional,\n Output,\n TemplateRef,\n Type,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n McPopUp,\n McPopUpTrigger,\n PopUpPlacements,\n PopUpSizes,\n PopUpTriggers,\n POSITION_TO_CSS_MAP\n} from '@ptsecurity/mosaic/core';\nimport { merge, NEVER } from 'rxjs';\n\nimport { mcPopoverAnimations } from './popover-animations';\n\n\n@Component({\n selector: 'mc-popover-component',\n templateUrl: './popover.component.html',\n preserveWhitespaces: false,\n styleUrls: ['./popover.scss'],\n host: {\n '(keydown.esc)': 'hide(0)'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [mcPopoverAnimations.popoverState]\n})\nexport class McPopoverComponent extends McPopUp {\n prefix = 'mc-popover';\n\n header: string | TemplateRef<any>;\n footer: string | TemplateRef<any>;\n\n isTrapFocus: boolean = false;\n\n constructor(changeDetectorRef: ChangeDetectorRef) {\n super(changeDetectorRef);\n }\n\n updateClassMap(placement: string, customClass: string, size: PopUpSizes) {\n super.updateClassMap(\n placement,\n customClass,\n { [`${this.prefix}_${size}`]: !!size }\n );\n }\n\n updateTrapFocus(isTrapFocus: boolean): void {\n this.isTrapFocus = isTrapFocus;\n }\n}\n\nexport const MC_POPOVER_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('mc-popover-scroll-strategy');\n\n/** @docs-private */\nexport function mcPopoverScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition({ scrollThrottle: 20 });\n}\n\n/** @docs-private */\nexport const MC_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MC_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: mcPopoverScrollStrategyFactory\n};\n\n/** Creates an error to be thrown if the user supplied an invalid popover position. */\nexport function getMcPopoverInvalidPositionError(position: string) {\n return Error(`McPopover position \"${position}\" is invalid.`);\n}\n\n\n@Directive({\n selector: '[mcPopover]',\n exportAs: 'mcPopover',\n host: {\n '[class.mc-popover_open]': 'isOpen',\n '(keydown)': 'handleKeydown($event)',\n '(touchend)': 'handleTouchend()'\n }\n})\nexport class McPopoverTrigger extends McPopUpTrigger<McPopoverComponent> {\n @Input('mcPopoverVisible')\n get popoverVisible(): boolean {\n return this.visible;\n }\n\n set popoverVisible(value: boolean) {\n super.updateVisible(value);\n }\n\n @Input('mcPopoverPlacement')\n get popoverPlacement(): PopUpPlacements {\n return this.placement;\n }\n\n set popoverPlacement(value: PopUpPlacements) {\n super.updatePlacement(value);\n }\n\n @Input('mcPopoverPlacementPriority')\n get popoverPlacementPriority() {\n return this.placementPriority;\n }\n\n set popoverPlacementPriority(value) {\n super.updatePlacementPriority(value);\n }\n\n @Input()\n get hasBackdrop(): boolean {\n return this._hasBackdrop;\n }\n\n set hasBackdrop(value: boolean) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n\n private _hasBackdrop: boolean = false;\n\n @Input('mcPopoverHeader')\n get header(): string | TemplateRef<any> {\n return this._header;\n }\n\n set header(value: string | TemplateRef<any>) {\n this._header = value;\n\n this.updateData();\n }\n\n private _header: string | TemplateRef<any>;\n\n @Input('mcPopoverContent')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(value: string | TemplateRef<any>) {\n this._content = value;\n\n this.updateData();\n }\n\n @Input('mcPopoverFooter')\n get footer(): string | TemplateRef<any> {\n return this._footer;\n }\n\n set footer(value: string | TemplateRef<any>) {\n this._footer = value;\n\n this.updateData();\n }\n\n private _footer: string | TemplateRef<any>;\n\n @Input('mcPopoverDisabled')\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n @Input('mcTrigger')\n get trigger(): string {\n return this._trigger;\n }\n\n set trigger(value: string) {\n if (value) {\n this._trigger = value;\n } else {\n this._trigger = PopUpTriggers.Click;\n }\n\n this.initListeners();\n }\n\n private _trigger: string = PopUpTriggers.Click;\n\n @Input('mcPopoverSize')\n get size(): PopUpSizes {\n return this._size;\n }\n\n set size(value: PopUpSizes) {\n if ([PopUpSizes.Small, PopUpSizes.Normal, PopUpSizes.Large].includes(value)) {\n this._size = value;\n\n this.updateClassMap();\n } else {\n this._size = PopUpSizes.Normal;\n }\n }\n\n private _size: PopUpSizes = PopUpSizes.Normal;\n\n @Input('mcPopoverClass')\n get customClass() {\n return this._customClass;\n }\n\n set customClass(value: string) {\n this._customClass = value;\n\n this.updateClassMap();\n }\n\n @Input()\n get closeOnScroll(): boolean {\n return this._closeOnScroll;\n }\n\n set closeOnScroll(value: boolean) {\n this._closeOnScroll = coerceBooleanProperty(value);\n }\n\n private _closeOnScroll: boolean = false;\n\n @Input() backdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n @Output('mcPopoverPlacementChange') placementChange = new EventEmitter();\n\n @Output('mcPopoverVisibleChange') visibleChange = new EventEmitter<boolean>();\n\n protected originSelector = '.mc-popover';\n\n protected get overlayConfig(): OverlayConfig {\n return {\n panelClass: 'mc-popover__panel',\n hasBackdrop: this.hasBackdrop,\n backdropClass: this.backdropClass\n };\n }\n\n constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(MC_POPOVER_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\n }\n\n updateData() {\n if (!this.instance) { return; }\n\n this.instance.header = this.header;\n this.instance.content = this.content;\n this.instance.footer = this.footer;\n\n this.instance.updateTrapFocus(this.trigger !== PopUpTriggers.Focus);\n\n if (this.isOpen) {\n this.updatePosition(true);\n }\n }\n\n /** Updates the position of the current popover. */\n updatePosition(reapplyPosition: boolean = false) {\n this.overlayRef = this.createOverlay();\n\n const position = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)\n .withPositions(this.getPrioritizedPositions())\n .withPush(true);\n\n if (reapplyPosition) {\n setTimeout(() => position.reapplyLastPosition());\n }\n }\n\n getOverlayHandleComponentType(): Type<McPopoverComponent> {\n return McPopoverComponent;\n }\n\n updateClassMap(newPlacement: string = this.placement) {\n if (!this.instance) { return; }\n\n this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], this.customClass, this.size);\n this.instance.markForCheck();\n }\n\n closingActions() {\n return merge(\n this.overlayRef!.backdropClick(),\n this.hasBackdrop ? NEVER : this.overlayRef!.outsidePointerEvents(),\n this.closeOnScroll ? this.scrollDispatcher.scrolled() : NEVER,\n this.overlayRef!.detachments()\n );\n }\n}\n","<div class=\"mc-popover\"\n [cdkTrapFocus]=\"isTrapFocus\"\n [cdkTrapFocusAutoCapture]=\"isTrapFocus\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n\n <div class=\"mc-popover__container\">\n <div class=\"mc-popover__header\" *ngIf=\"header\">\n <ng-container *ngIf=\"isTemplateRef(header)\" [ngTemplateOutlet]=\"$any(header)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(header)\">\n <div>{{ header }}</div>\n </ng-container>\n </div>\n\n <div class=\"mc-popover__content\"\n [ngClass]=\"{ 'mc-popover__content_padding_bottom': footer }\"\n *ngIf=\"content\">\n <ng-container *ngIf=\"isTemplateRef(content)\" [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(content)\">\n <div>{{ content }}</div>\n </ng-container>\n </div>\n\n <div class=\"mc-popover__footer\" *ngIf=\"footer\">\n <ng-container *ngIf=\"isTemplateRef(footer)\" [ngTemplateOutlet]=\"$any(footer)\"></ng-container>\n <ng-container *ngIf=\"!isTemplateRef(footer)\">\n <div>{{ footer }}</div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"mc-popover__arrow\" [class.mc-popover__arrow_with-footer]=\"footer\"></div>\n</div>\n","import { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n Optional,\n Output,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { mcPopoverAnimations } from './popover-animations';\nimport { MC_POPOVER_SCROLL_STRATEGY, McPopoverComponent, McPopoverTrigger } from './popover.component';\n\n\nexport const MC_POPOVER_CONFIRM_TEXT = new InjectionToken<string>('');\nexport const MC_POPOVER_CONFIRM_BUTTON_TEXT = new InjectionToken<string>('');\n\n@Component({\n selector: 'mc-popover-confirm-component',\n templateUrl: './popover-confirm.component.html',\n preserveWhitespaces: false,\n styleUrls: ['./popover.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [mcPopoverAnimations.popoverState]\n})\nexport class McPopoverConfirmComponent extends McPopoverComponent {\n themePalette = ThemePalette;\n\n onConfirm = new Subject<void>();\n confirmButtonText: string;\n\n confirmText: string;\n\n constructor(changeDetectorRef: ChangeDetectorRef) {\n super(changeDetectorRef);\n }\n}\n\n\n@Directive({\n selector: '[mcPopoverConfirm]',\n exportAs: 'mcPopoverConfirm',\n host: {\n '[class.mc-popover_open]': 'isOpen',\n '(keydown)': 'handleKeydown($event)',\n '(touchend)': 'handleTouchend()'\n }\n})\nexport class McPopoverConfirmTrigger extends McPopoverTrigger {\n @Output() confirm: EventEmitter<void> = new EventEmitter<void>();\n\n @Input('mcPopoverConfirmText')\n get confirmText(): string {\n return this._confirmText;\n }\n\n set confirmText(value: string) {\n this._confirmText = value;\n\n this.updateData();\n }\n\n private _confirmText: string;\n\n @Input('mcPopoverConfirmButtonText')\n get confirmButtonText(): string {\n return this._confirmButtonText;\n }\n\n set confirmButtonText(value: string) {\n this._confirmButtonText = value;\n\n this.updateData();\n }\n\n private _confirmButtonText: string = 'Да';\n\n constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n ngZone: NgZone,\n scrollDispatcher: ScrollDispatcher,\n hostView: ViewContainerRef,\n @Inject(MC_POPOVER_SCROLL_STRATEGY) scrollStrategy,\n @Optional() direction: Directionality,\n @Optional() @Inject(MC_POPOVER_CONFIRM_TEXT) confirmText: string,\n @Optional() @Inject(MC_POPOVER_CONFIRM_BUTTON_TEXT) confirmButtonText: string\n ) {\n super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);\n\n this.confirmText = confirmText || 'Вы уверены, что хотите продолжить?';\n this.confirmButtonText = confirmButtonText || 'Да';\n }\n\n updateData() {\n if (!this.instance) { return; }\n super.updateData();\n this.setupButtonEvents();\n this.instance.confirmButtonText = this.confirmButtonText;\n this.instance.confirmText = this.confirmText;\n }\n\n setupButtonEvents() {\n this.instance.onConfirm.pipe(takeUntil(this.destroyed)).subscribe(() => {\n this.confirm.emit();\n this.hide();\n });\n }\n\n getOverlayHandleComponentType() {\n return McPopoverConfirmComponent;\n }\n}\n","<div class=\"mc-popover-confirm mc-popover\"\n cdkTrapFocus=\"true\"\n cdkTrapFocusAutoCapture=\"true\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.start)=\"animationStart()\"\n (@state.done)=\"animationDone($event)\">\n <div class=\"mc-popover__content\">\n <div>{{ confirmText }}</div>\n <button mc-button [color]=\"themePalette.Primary\" (click)=\"onConfirm.next()\">{{confirmButtonText}}</button>\n </div>\n\n <div class=\"mc-popover__arrow\"></div>\n</div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\n\nimport { McPopoverConfirmComponent, McPopoverConfirmTrigger } from './popover-confirm.component';\nimport { MC_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER, McPopoverComponent, McPopoverTrigger } from './popover.component';\n\n\n@NgModule({\n declarations: [McPopoverComponent, McPopoverTrigger, McPopoverConfirmComponent, McPopoverConfirmTrigger],\n exports: [McPopoverComponent, McPopoverTrigger, McPopoverConfirmComponent, McPopoverConfirmTrigger],\n imports: [CommonModule, OverlayModule, McButtonModule, A11yModule],\n providers: [MC_POPOVER_SCROLL_STRATEGY_FACTORY_PROVIDER],\n entryComponents: [McPopoverComponent, McPopoverConfirmComponent]\n})\nexport class McPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as i1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Directive, Input, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChildren, NgModule } from '@angular/core';
4
+ import { Directive, Input, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChildren, ViewChild, NgModule } from '@angular/core';
5
5
  import { McIconModule } from '@ptsecurity/mosaic/icon';
6
6
  import { coerceNumberProperty, coerceCssPixelValue, coerceBooleanProperty } from '@angular/cdk/coercion';
7
7
 
@@ -37,32 +37,38 @@ class McGutterDirective {
37
37
  set size(size) {
38
38
  this._size = coerceNumberProperty(size);
39
39
  }
40
+ get isVertical() {
41
+ return this._direction === Direction.Vertical;
42
+ }
40
43
  ngOnInit() {
41
44
  this.setStyle("flex-basis" /* FlexBasis */, coerceCssPixelValue(this.size));
42
- this.setStyle(this.isVertical() ? "height" /* Height */ : "width" /* Width */, coerceCssPixelValue(this.size));
45
+ this.setStyle(this.isVertical ? "height" /* Height */ : "width" /* Width */, coerceCssPixelValue(this.size));
43
46
  this.setStyle("order" /* Order */, this.order);
44
- if (!this.isVertical()) {
47
+ if (!this.isVertical) {
45
48
  this.setStyle("height" /* Height */, '100%');
46
49
  }
47
50
  // fix IE issue with gutter icon. flex-direction is requied for flex alignment options
48
- this.setStyle("flex-direction" /* FlexDirection */, this.isVertical() ? 'row' : 'column');
51
+ this.setStyle("flex-direction" /* FlexDirection */, this.isVertical ? 'row' : 'column');
49
52
  }
50
- isVertical() {
51
- return this.direction === Direction.Vertical;
53
+ getPosition() {
54
+ return {
55
+ x: this.elementRef.nativeElement.offsetLeft,
56
+ y: this.elementRef.nativeElement.offsetTop
57
+ };
52
58
  }
53
59
  setStyle(property, value) {
54
60
  this.renderer.setStyle(this.elementRef.nativeElement, property, value);
55
61
  }
56
62
  }
57
63
  /** @nocollapse */ McGutterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McGutterDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
58
- /** @nocollapse */ McGutterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McGutterDirective, selector: "mc-gutter", inputs: { direction: "direction", order: "order", size: "size" }, host: { listeners: { "mousedown": "dragged = true" }, properties: { "class.mc-gutter_vertical": "isVertical()", "class.mc-gutter_dragged": "dragged" }, classAttribute: "mc-gutter" }, ngImport: i0 });
64
+ /** @nocollapse */ McGutterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McGutterDirective, selector: "mc-gutter", inputs: { direction: "direction", order: "order", size: "size" }, host: { listeners: { "mousedown": "dragged = true" }, properties: { "class.mc-gutter_vertical": "isVertical", "class.mc-gutter_dragged": "dragged" }, classAttribute: "mc-gutter" }, ngImport: i0 });
59
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McGutterDirective, decorators: [{
60
66
  type: Directive,
61
67
  args: [{
62
68
  selector: 'mc-gutter',
63
69
  host: {
64
70
  class: 'mc-gutter',
65
- '[class.mc-gutter_vertical]': 'isVertical()',
71
+ '[class.mc-gutter_vertical]': 'isVertical',
66
72
  '[class.mc-gutter_dragged]': 'dragged',
67
73
  '(mousedown)': 'dragged = true'
68
74
  }
@@ -74,6 +80,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
74
80
  }], size: [{
75
81
  type: Input
76
82
  }] } });
83
+ class McGutterGhostDirective {
84
+ constructor(elementRef, renderer) {
85
+ this.elementRef = elementRef;
86
+ this.renderer = renderer;
87
+ this._x = 0;
88
+ this._y = 0;
89
+ this._direction = Direction.Vertical;
90
+ this._size = 6;
91
+ }
92
+ get x() {
93
+ return this._x;
94
+ }
95
+ set x(x) {
96
+ this._x = x;
97
+ this.setStyle("left" /* Left */, coerceCssPixelValue(x));
98
+ }
99
+ get y() {
100
+ return this._y;
101
+ }
102
+ set y(y) {
103
+ this._y = y;
104
+ this.setStyle("top" /* Top */, coerceCssPixelValue(y));
105
+ }
106
+ get direction() {
107
+ return this._direction;
108
+ }
109
+ set direction(direction) {
110
+ this._direction = direction;
111
+ this.updateDimensions();
112
+ }
113
+ get size() {
114
+ return this._size;
115
+ }
116
+ set size(size) {
117
+ this._size = coerceNumberProperty(size);
118
+ this.updateDimensions();
119
+ }
120
+ get isVertical() {
121
+ return this.direction === Direction.Vertical;
122
+ }
123
+ updateDimensions() {
124
+ this.setStyle(this.isVertical ? "width" /* Width */ : "height" /* Height */, '100%');
125
+ this.setStyle(this.isVertical ? "height" /* Height */ : "width" /* Width */, coerceCssPixelValue(this.size));
126
+ }
127
+ setStyle(property, value) {
128
+ this.renderer.setStyle(this.elementRef.nativeElement, property, value);
129
+ }
130
+ }
131
+ /** @nocollapse */ McGutterGhostDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McGutterGhostDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
132
+ /** @nocollapse */ McGutterGhostDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McGutterGhostDirective, selector: "mc-gutter-ghost", inputs: { visible: "visible", x: "x", y: "y", direction: "direction", size: "size" }, host: { properties: { "class.mc-gutter-ghost_vertical": "isVertical", "class.mc-gutter-ghost_visible": "visible" }, classAttribute: "mc-gutter-ghost" }, ngImport: i0 });
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McGutterGhostDirective, decorators: [{
134
+ type: Directive,
135
+ args: [{
136
+ selector: 'mc-gutter-ghost',
137
+ host: {
138
+ class: 'mc-gutter-ghost',
139
+ '[class.mc-gutter-ghost_vertical]': 'isVertical',
140
+ '[class.mc-gutter-ghost_visible]': 'visible'
141
+ }
142
+ }]
143
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { visible: [{
144
+ type: Input
145
+ }], x: [{
146
+ type: Input
147
+ }], y: [{
148
+ type: Input
149
+ }], direction: [{
150
+ type: Input
151
+ }], size: [{
152
+ type: Input
153
+ }] } });
77
154
  class McSplitterComponent {
78
155
  constructor(elementRef, changeDetectorRef, ngZone, renderer) {
79
156
  this.elementRef = elementRef;
@@ -82,12 +159,17 @@ class McSplitterComponent {
82
159
  this.renderer = renderer;
83
160
  this.gutterPositionChange = new EventEmitter();
84
161
  this.areas = [];
85
- this.isDragging = false;
162
+ this._isDragging = false;
86
163
  this.areaPositionDivider = 2;
87
164
  this.listeners = [];
88
165
  this._hideGutters = false;
89
166
  this._disabled = false;
167
+ this._useGhost = false;
90
168
  this._gutterSize = 6;
169
+ this._resizing = false;
170
+ }
171
+ get isDragging() {
172
+ return this._isDragging;
91
173
  }
92
174
  get hideGutters() {
93
175
  return this._hideGutters;
@@ -107,6 +189,12 @@ class McSplitterComponent {
107
189
  set disabled(disabled) {
108
190
  this._disabled = coerceBooleanProperty(disabled);
109
191
  }
192
+ get useGhost() {
193
+ return this._useGhost;
194
+ }
195
+ set useGhost(useGhost) {
196
+ this._useGhost = coerceBooleanProperty(useGhost);
197
+ }
110
198
  get gutterSize() {
111
199
  return this._gutterSize;
112
200
  }
@@ -114,6 +202,9 @@ class McSplitterComponent {
114
202
  const size = coerceNumberProperty(gutterSize);
115
203
  this._gutterSize = size > 0 ? size : this.gutterSize;
116
204
  }
205
+ get resizing() {
206
+ return this._resizing;
207
+ }
117
208
  addArea(area) {
118
209
  const index = this.areas.length;
119
210
  const order = index * this.areaPositionDivider;
@@ -137,26 +228,41 @@ class McSplitterComponent {
137
228
  return;
138
229
  }
139
230
  event.preventDefault();
140
- const leftArea = this.areas[leftAreaIndex];
141
- const rightArea = this.areas[rightAreaIndex];
142
231
  const startPoint = {
143
232
  x: event.screenX,
144
233
  y: event.screenY
145
234
  };
235
+ const leftArea = this.areas[leftAreaIndex];
236
+ const rightArea = this.areas[rightAreaIndex];
146
237
  leftArea.initialSize = leftArea.area.getSize();
147
238
  rightArea.initialSize = rightArea.area.getSize();
148
- this.areas.forEach((item) => {
149
- const size = item.area.getSize();
150
- item.area.disableFlex();
151
- item.area.setSize(size);
152
- });
153
- this.ngZone.runOutsideAngular(() => {
154
- this.listeners.push(this.renderer.listen('document', 'mouseup', () => this.onMouseUp()));
155
- });
239
+ let currentGutter;
240
+ if (this.useGhost) {
241
+ // tslint:disable-next-line:no-magic-numbers
242
+ const gutterOrder = leftAreaIndex * 2 + 1;
243
+ currentGutter = this.gutters.find((gutter) => gutter.order === gutterOrder);
244
+ if (currentGutter) {
245
+ const gutterPosition = currentGutter.getPosition();
246
+ this.ghost.direction = currentGutter.direction;
247
+ this.ghost.size = currentGutter.size;
248
+ this.ghost.x = gutterPosition.x;
249
+ this.ghost.y = gutterPosition.y;
250
+ this.ghost.visible = true;
251
+ this.setStyle("cursor" /* Cursor */, currentGutter.direction === Direction.Vertical ? 'row-resize' : 'col-resize');
252
+ }
253
+ }
254
+ else {
255
+ this.areas.forEach((item) => {
256
+ const size = item.area.getSize();
257
+ item.area.disableFlex();
258
+ item.area.setSize(size);
259
+ });
260
+ }
261
+ this.listeners.push(this.renderer.listen('document', 'mouseup', () => this.onMouseUp(leftArea, rightArea, currentGutter)));
156
262
  this.ngZone.runOutsideAngular(() => {
157
- this.listeners.push(this.renderer.listen('document', 'mousemove', (e) => this.onMouseMove(e, startPoint, leftArea, rightArea)));
263
+ this.listeners.push(this.renderer.listen('document', 'mousemove', (e) => this.onMouseMove(e, startPoint, leftArea, rightArea, currentGutter)));
158
264
  });
159
- this.isDragging = true;
265
+ this._isDragging = true;
160
266
  }
161
267
  removeArea(area) {
162
268
  let indexToRemove = -1;
@@ -183,7 +289,7 @@ class McSplitterComponent {
183
289
  }
184
290
  });
185
291
  }
186
- onMouseMove(event, startPoint, leftArea, rightArea) {
292
+ onMouseMove(event, startPoint, leftArea, rightArea, currentGutter) {
187
293
  if (!this.isDragging || this.disabled) {
188
294
  return;
189
295
  }
@@ -194,11 +300,28 @@ class McSplitterComponent {
194
300
  const offset = this.isVertical()
195
301
  ? startPoint.y - endPoint.y
196
302
  : startPoint.x - endPoint.x;
197
- const newLeftAreaSize = leftArea.initialSize - offset;
198
- const newRightAreaSize = rightArea.initialSize + offset;
303
+ if (this.useGhost && currentGutter) {
304
+ const gutterPosition = currentGutter.getPosition();
305
+ const leftPos = leftArea.area.getPosition();
306
+ const rightPos = rightArea.area.getPosition();
307
+ const rightMin = rightArea.area.getMinSize() || 0;
308
+ const leftMin = leftArea.area.getMinSize() || 0;
309
+ const key = this.isVertical() ? 'y' : 'x';
310
+ const minPos = leftPos[key] - leftMin;
311
+ const maxPos = rightPos[key] + (rightArea.area.getSize() || 0) - rightMin - currentGutter.size;
312
+ const newPos = gutterPosition[key] - offset;
313
+ this.ghost[key] = newPos < minPos ? minPos : Math.min(newPos, maxPos);
314
+ }
315
+ else {
316
+ this.resizeAreas(leftArea, rightArea, offset);
317
+ }
318
+ }
319
+ resizeAreas(leftArea, rightArea, sizeOffset) {
320
+ const newLeftAreaSize = leftArea.initialSize - sizeOffset;
321
+ const newRightAreaSize = rightArea.initialSize + sizeOffset;
199
322
  const minLeftAreaSize = leftArea.area.getMinSize();
200
323
  const minRightAreaSize = rightArea.area.getMinSize();
201
- if (newLeftAreaSize <= minLeftAreaSize || newRightAreaSize <= minRightAreaSize) {
324
+ if (newLeftAreaSize < minLeftAreaSize || newRightAreaSize < minRightAreaSize) {
202
325
  return;
203
326
  }
204
327
  else if (newLeftAreaSize <= 0) {
@@ -214,14 +337,23 @@ class McSplitterComponent {
214
337
  rightArea.area.setSize(newRightAreaSize);
215
338
  }
216
339
  }
217
- onMouseUp() {
340
+ onMouseUp(leftArea, rightArea, currentGutter) {
218
341
  while (this.listeners.length > 0) {
219
342
  const unsubscribe = this.listeners.pop();
220
343
  if (unsubscribe) {
221
344
  unsubscribe();
222
345
  }
223
346
  }
224
- this.isDragging = false;
347
+ if (this.useGhost && currentGutter) {
348
+ const gutterPosition = currentGutter.getPosition();
349
+ const offset = this.ghost.direction === Direction.Vertical ?
350
+ gutterPosition.y - this.ghost.y :
351
+ gutterPosition.x - this.ghost.x;
352
+ this.resizeAreas(leftArea, rightArea, offset);
353
+ this.ghost.visible = false;
354
+ this.setStyle("cursor" /* Cursor */, 'unset');
355
+ }
356
+ this._isDragging = false;
225
357
  this.updateGutter();
226
358
  this.gutterPositionChange.emit();
227
359
  }
@@ -230,7 +362,7 @@ class McSplitterComponent {
230
362
  }
231
363
  }
232
364
  /** @nocollapse */ McSplitterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McSplitterComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
233
- /** @nocollapse */ McSplitterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: McSplitterComponent, selector: "mc-splitter", inputs: { hideGutters: "hideGutters", direction: "direction", disabled: "disabled", gutterSize: "gutterSize" }, outputs: { gutterPositionChange: "gutterPositionChange" }, host: { classAttribute: "mc-splitter" }, viewQueries: [{ propertyName: "gutters", predicate: McGutterDirective, descendants: true }], exportAs: ["mcSplitter"], ngImport: i0, 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", styles: [".mc-splitter{display:flex;flex-wrap:nowrap;align-items:stretch;overflow:hidden}.mc-splitter .mc-splitter-area{overflow:hidden}.mc-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;overflow:hidden}.mc-gutter.mc-gutter_vertical>.mc-icon{transform:rotate(90deg)}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: McGutterDirective, selector: "mc-gutter", inputs: ["direction", "order", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
365
+ /** @nocollapse */ McSplitterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: McSplitterComponent, selector: "mc-splitter", inputs: { hideGutters: "hideGutters", direction: "direction", disabled: "disabled", useGhost: "useGhost", gutterSize: "gutterSize" }, outputs: { gutterPositionChange: "gutterPositionChange" }, host: { classAttribute: "mc-splitter" }, viewQueries: [{ propertyName: "ghost", first: true, predicate: McGutterGhostDirective, descendants: true }, { propertyName: "gutters", predicate: McGutterDirective, descendants: true }], exportAs: ["mcSplitter"], ngImport: i0, 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\n<mc-gutter-ghost *ngIf=\"useGhost\"></mc-gutter-ghost>\n", styles: [".mc-splitter{display:flex;position:relative;flex-wrap:nowrap;align-items:stretch;overflow:hidden}.mc-splitter .mc-splitter-area{overflow:hidden}.mc-splitter .mc-splitter-area_resizing{pointer-events:none}.mc-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;overflow:hidden}.mc-gutter.mc-gutter_vertical>.mc-icon{transform:rotate(90deg)}.mc-gutter-ghost{position:absolute;z-index:999;display:none;overflow:hidden}.mc-gutter-ghost.mc-gutter-ghost_vertical>.mc-icon{transform:rotate(90deg)}.mc-gutter-ghost.mc-gutter-ghost_visible{display:block}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: McGutterDirective, selector: "mc-gutter", inputs: ["direction", "order", "size"] }, { type: McGutterGhostDirective, selector: "mc-gutter-ghost", inputs: ["visible", "x", "y", "direction", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
234
366
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McSplitterComponent, decorators: [{
235
367
  type: Component,
236
368
  args: [{
@@ -250,12 +382,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
250
382
  }], gutters: [{
251
383
  type: ViewChildren,
252
384
  args: [McGutterDirective]
385
+ }], ghost: [{
386
+ type: ViewChild,
387
+ args: [McGutterGhostDirective]
253
388
  }], hideGutters: [{
254
389
  type: Input
255
390
  }], direction: [{
256
391
  type: Input
257
392
  }], disabled: [{
258
393
  type: Input
394
+ }], useGhost: [{
395
+ type: Input
259
396
  }], gutterSize: [{
260
397
  type: Input
261
398
  }] } });
@@ -266,6 +403,9 @@ class McSplitterAreaDirective {
266
403
  this.splitter = splitter;
267
404
  this.sizeChange = new EventEmitter();
268
405
  }
406
+ isResizing() {
407
+ return this.splitter.isDragging;
408
+ }
269
409
  disableFlex() {
270
410
  this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');
271
411
  }
@@ -289,7 +429,7 @@ class McSplitterAreaDirective {
289
429
  this.setStyle("order" /* Order */, order);
290
430
  }
291
431
  setSize(size) {
292
- if (size) {
432
+ if (!isNaN(size)) {
293
433
  const sz = coerceNumberProperty(size);
294
434
  this.setStyle(this.getSizeProperty(), coerceCssPixelValue(sz));
295
435
  }
@@ -297,6 +437,12 @@ class McSplitterAreaDirective {
297
437
  getSize() {
298
438
  return this.elementRef.nativeElement[this.getOffsetSizeProperty()];
299
439
  }
440
+ getPosition() {
441
+ return {
442
+ x: this.elementRef.nativeElement.offsetLeft,
443
+ y: this.elementRef.nativeElement.offsetTop
444
+ };
445
+ }
300
446
  getMinSize() {
301
447
  const styles = getComputedStyle(this.elementRef.nativeElement);
302
448
  return parseFloat(styles[this.getMinSizeProperty()]);
@@ -330,13 +476,14 @@ class McSplitterAreaDirective {
330
476
  }
331
477
  }
332
478
  /** @nocollapse */ McSplitterAreaDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McSplitterAreaDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: McSplitterComponent }], target: i0.ɵɵFactoryTarget.Directive });
333
- /** @nocollapse */ McSplitterAreaDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McSplitterAreaDirective, selector: "[mc-splitter-area]", outputs: { sizeChange: "sizeChange" }, host: { classAttribute: "mc-splitter-area" }, ngImport: i0 });
479
+ /** @nocollapse */ McSplitterAreaDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McSplitterAreaDirective, selector: "[mc-splitter-area]", outputs: { sizeChange: "sizeChange" }, host: { properties: { "class.mc-splitter-area_resizing": "isResizing()" }, classAttribute: "mc-splitter-area" }, ngImport: i0 });
334
480
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McSplitterAreaDirective, decorators: [{
335
481
  type: Directive,
336
482
  args: [{
337
483
  selector: '[mc-splitter-area]',
338
484
  host: {
339
- class: 'mc-splitter-area'
485
+ class: 'mc-splitter-area',
486
+ '[class.mc-splitter-area_resizing]': 'isResizing()'
340
487
  }
341
488
  }]
342
489
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: McSplitterComponent }]; }, propDecorators: { sizeChange: [{
@@ -347,6 +494,7 @@ class McSplitterModule {
347
494
  }
348
495
  /** @nocollapse */ McSplitterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McSplitterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
349
496
  /** @nocollapse */ McSplitterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McSplitterModule, declarations: [McGutterDirective,
497
+ McGutterGhostDirective,
350
498
  McSplitterAreaDirective,
351
499
  McSplitterComponent], imports: [CommonModule,
352
500
  McIconModule], exports: [McGutterDirective,
@@ -370,6 +518,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
370
518
  ],
371
519
  declarations: [
372
520
  McGutterDirective,
521
+ McGutterGhostDirective,
373
522
  McSplitterAreaDirective,
374
523
  McSplitterComponent
375
524
  ]
@@ -380,5 +529,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
380
529
  * Generated bundle index. Do not edit.
381
530
  */
382
531
 
383
- export { Direction, McGutterDirective, McSplitterAreaDirective, McSplitterComponent, McSplitterModule };
532
+ export { Direction, McGutterDirective, McGutterGhostDirective, McSplitterAreaDirective, McSplitterComponent, McSplitterModule };
384
533
  //# sourceMappingURL=ptsecurity-mosaic-splitter.js.map