@ptsecurity/mosaic 11.5.0 → 11.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/_theming.scss +12 -6
  2. package/bundles/ptsecurity-mosaic-datepicker.umd.js +2 -1
  3. package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +1 -1
  4. package/bundles/ptsecurity-mosaic-datepicker.umd.min.js +1 -1
  5. package/bundles/ptsecurity-mosaic-datepicker.umd.min.js.map +1 -1
  6. package/bundles/ptsecurity-mosaic-dropdown.umd.js +18 -3
  7. package/bundles/ptsecurity-mosaic-dropdown.umd.js.map +1 -1
  8. package/bundles/ptsecurity-mosaic-dropdown.umd.min.js +1 -1
  9. package/bundles/ptsecurity-mosaic-dropdown.umd.min.js.map +1 -1
  10. package/bundles/ptsecurity-mosaic-list.umd.js +10 -2
  11. package/bundles/ptsecurity-mosaic-list.umd.js.map +1 -1
  12. package/bundles/ptsecurity-mosaic-list.umd.min.js +1 -1
  13. package/bundles/ptsecurity-mosaic-list.umd.min.js.map +1 -1
  14. package/bundles/ptsecurity-mosaic-modal.umd.js +13 -6
  15. package/bundles/ptsecurity-mosaic-modal.umd.js.map +1 -1
  16. package/bundles/ptsecurity-mosaic-modal.umd.min.js +1 -1
  17. package/bundles/ptsecurity-mosaic-modal.umd.min.js.map +1 -1
  18. package/bundles/ptsecurity-mosaic-navbar.umd.js +1 -1
  19. package/bundles/ptsecurity-mosaic-navbar.umd.js.map +1 -1
  20. package/bundles/ptsecurity-mosaic-navbar.umd.min.js +2 -2
  21. package/bundles/ptsecurity-mosaic-navbar.umd.min.js.map +1 -1
  22. package/bundles/ptsecurity-mosaic-splitter.umd.js +12 -0
  23. package/bundles/ptsecurity-mosaic-splitter.umd.js.map +1 -1
  24. package/bundles/ptsecurity-mosaic-splitter.umd.min.js +1 -1
  25. package/bundles/ptsecurity-mosaic-splitter.umd.min.js.map +1 -1
  26. package/bundles/ptsecurity-mosaic-tags.umd.js +2 -1
  27. package/bundles/ptsecurity-mosaic-tags.umd.js.map +1 -1
  28. package/bundles/ptsecurity-mosaic-tags.umd.min.js +1 -1
  29. package/bundles/ptsecurity-mosaic-tags.umd.min.js.map +1 -1
  30. package/bundles/ptsecurity-mosaic-timepicker.umd.js +3 -2
  31. package/bundles/ptsecurity-mosaic-timepicker.umd.js.map +1 -1
  32. package/bundles/ptsecurity-mosaic-timepicker.umd.min.js +1 -1
  33. package/bundles/ptsecurity-mosaic-timepicker.umd.min.js.map +1 -1
  34. package/dropdown/dropdown-item.component.d.ts +1 -0
  35. package/dropdown/ptsecurity-mosaic-dropdown.metadata.json +1 -1
  36. package/esm2015/datepicker/datepicker-input.directive.js +3 -2
  37. package/esm2015/dropdown/dropdown-item.component.js +10 -3
  38. package/esm2015/dropdown/dropdown-trigger.directive.js +10 -2
  39. package/esm2015/list/list-selection.component.js +11 -3
  40. package/esm2015/modal/modal.component.js +2 -2
  41. package/esm2015/modal/modal.service.js +13 -6
  42. package/esm2015/navbar/vertical-navbar.component.js +2 -2
  43. package/esm2015/splitter/splitter.component.js +13 -2
  44. package/esm2015/tags/tag.component.js +3 -2
  45. package/esm2015/timepicker/timepicker.directive.js +5 -4
  46. package/fesm2015/ptsecurity-mosaic-datepicker.js +2 -1
  47. package/fesm2015/ptsecurity-mosaic-datepicker.js.map +1 -1
  48. package/fesm2015/ptsecurity-mosaic-dropdown.js +18 -3
  49. package/fesm2015/ptsecurity-mosaic-dropdown.js.map +1 -1
  50. package/fesm2015/ptsecurity-mosaic-list.js +10 -2
  51. package/fesm2015/ptsecurity-mosaic-list.js.map +1 -1
  52. package/fesm2015/ptsecurity-mosaic-modal.js +13 -6
  53. package/fesm2015/ptsecurity-mosaic-modal.js.map +1 -1
  54. package/fesm2015/ptsecurity-mosaic-navbar.js +1 -1
  55. package/fesm2015/ptsecurity-mosaic-navbar.js.map +1 -1
  56. package/fesm2015/ptsecurity-mosaic-splitter.js +12 -1
  57. package/fesm2015/ptsecurity-mosaic-splitter.js.map +1 -1
  58. package/fesm2015/ptsecurity-mosaic-tags.js +2 -1
  59. package/fesm2015/ptsecurity-mosaic-tags.js.map +1 -1
  60. package/fesm2015/ptsecurity-mosaic-timepicker.js +4 -3
  61. package/fesm2015/ptsecurity-mosaic-timepicker.js.map +1 -1
  62. package/list/ptsecurity-mosaic-list.metadata.json +1 -1
  63. package/modal/ptsecurity-mosaic-modal.metadata.json +1 -1
  64. package/navbar/ptsecurity-mosaic-navbar.metadata.json +1 -1
  65. package/package.json +4 -4
  66. package/prebuilt-themes/dark-theme.css +1 -1
  67. package/prebuilt-themes/default-theme.css +1 -1
  68. package/splitter/ptsecurity-mosaic-splitter.metadata.json +1 -1
  69. package/splitter/splitter.component.d.ts +4 -1
  70. package/tags/ptsecurity-mosaic-tags.metadata.json +1 -1
  71. package/timepicker/ptsecurity-mosaic-timepicker.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-navbar.js","sources":["../../../packages/mosaic/navbar/navbar-item.component.ts","../../../packages/mosaic/navbar/navbar.component.ts","../../../packages/mosaic/navbar/vertical-navbar.animation.ts","../../../packages/mosaic/navbar/vertical-navbar.component.ts","../../../packages/mosaic/navbar/navbar.module.ts","../../../packages/mosaic/navbar/ptsecurity-mosaic-navbar.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { McButtonCssStyler } from '@ptsecurity/mosaic/button';\nimport { CanDisable, CanDisableCtor, mixinDisabled } from '@ptsecurity/mosaic/core';\nimport { McIcon } from '@ptsecurity/mosaic/icon';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n\n@Directive({\n selector: 'mc-navbar-logo, [mc-navbar-logo]',\n host: {\n class: 'mc-navbar-logo',\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport class McNavbarLogo {\n readonly hovered = new Subject<boolean>();\n}\n\n\n@Directive({\n selector: 'mc-navbar-title, [mc-navbar-title]',\n host: {\n class: 'mc-navbar-title',\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport class McNavbarTitle implements AfterContentInit {\n readonly hovered = new Subject<boolean>();\n\n outerElementWidth: number;\n\n get text(): string {\n return this.elementRef.nativeElement.innerText;\n }\n\n constructor(private elementRef: ElementRef) {}\n\n getOuterElementWidth(): number {\n const { width, marginLeft, marginRight } = window.getComputedStyle(this.elementRef.nativeElement);\n\n return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item) || 0, 0);\n }\n\n ngAfterContentInit(): void {\n this.outerElementWidth = this.getOuterElementWidth();\n }\n}\n\n\n@Directive({\n selector: 'mc-navbar-brand, [mc-navbar-brand]',\n host: {\n class: 'mc-navbar-brand',\n '[class.mc-hovered]': 'hovered'\n }\n})\nexport class McNavbarBrand implements AfterContentInit, OnDestroy {\n @ContentChild(McNavbarLogo) logo: McNavbarLogo;\n @ContentChild(McNavbarTitle) title: McNavbarTitle;\n\n hovered = false;\n\n private destroyed = new Subject<void>();\n\n ngAfterContentInit(): void {\n merge(\n this.logo.hovered,\n this.title.hovered\n )\n .pipe(takeUntil(this.destroyed))\n .subscribe((value: boolean) => this.hovered = value);\n }\n\n ngOnDestroy(): void {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\n\n\n@Directive({\n selector: 'mc-navbar-divider',\n host: {\n class: 'mc-navbar-divider'\n }\n})\nexport class McNavbarDivider {}\n\n\n@Directive({\n selector: 'mc-navbar-item, [mc-navbar-item], mc-navbar-divider, mc-navbar-brand, [mc-navbar-brand]',\n host: {\n '[class.mc-vertical]': 'vertical',\n '[class.mc-horizontal]': 'horizontal',\n '[class.mc-opened]': 'vertical && !closed',\n '[class.mc-closed]': 'vertical && closed'\n }\n})\nexport class McNavbarItemBase {\n @ContentChild(McButtonCssStyler) button: McButtonCssStyler;\n\n vertical: boolean;\n horizontal: boolean;\n\n closed: boolean;\n\n constructor(public elementRef: ElementRef) {}\n\n getOuterElementWidth(): number {\n const { width, marginLeft, marginRight } = window.getComputedStyle(this.elementRef.nativeElement);\n\n return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item), 0);\n }\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McNavbarMixinBase: CanDisableCtor & typeof McNavbarItemBase = mixinDisabled(McNavbarItemBase);\n\n\n@Component({\n selector: 'mc-navbar-item, [mc-navbar-item]',\n exportAs: 'mcNavbarItem',\n template: `<ng-content></ng-content>`,\n host: {\n class: 'mc-navbar-item',\n '[class.mc-navbar-item_collapsed]': 'collapsed',\n '[class.mc-navbar-item_button]': 'button',\n\n '[attr.title]': 'collapsedTitle',\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null'\n },\n inputs: ['disabled'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McNavbarItem extends McNavbarMixinBase implements OnDestroy, CanDisable, AfterContentInit {\n @ContentChild(McButtonCssStyler) button: McButtonCssStyler;\n @ContentChild(McNavbarTitle) title: McNavbarTitle;\n @ContentChild(McIcon) icon: McIcon;\n\n\n @Input()\n get collapsable(): boolean {\n return this._collapsable;\n }\n\n set collapsable(value: boolean) {\n this._collapsable = coerceBooleanProperty(value);\n }\n\n private _collapsable: boolean = true;\n\n @Input() collapsed = false;\n\n get collapsedTitle(): string | null {\n return this.collapsed ? (this._collapsedTitle || this.title.text) : null;\n }\n\n @Input()\n set collapsedTitle(value: string | null) {\n this._collapsedTitle = value;\n }\n\n private _collapsedTitle: string | null = null;\n\n get tabIndex(): number {\n return this.disabled || this.button ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value != null ? coerceNumberProperty(value) : 0;\n }\n\n private _tabIndex: number = 0;\n\n constructor(private focusMonitor: FocusMonitor, public elementRef: ElementRef) {\n super(elementRef);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n ngAfterContentInit(): void {\n if (this.button) { return; }\n\n this.focusMonitor.monitor(this.elementRef, true);\n }\n\n getTitleWidth(): number {\n return this.title.outerElementWidth;\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n OnDestroy,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { McNavbarItem, McNavbarItemBase } from './navbar-item.component';\n\n\nexport type McNavbarContainerPositionType = 'left' | 'right';\n\n\n@Directive({\n selector: 'mc-navbar-container',\n host: {\n class: 'mc-navbar-container'\n }\n})\nexport class McNavbarContainer {}\n\n@Component({\n selector: 'mc-navbar',\n template: `<ng-content select=\"[mc-navbar-container], mc-navbar-container\"></ng-content>`,\n styleUrls: [\n './navbar.scss',\n './navbar-item.scss',\n './navbar-brand.scss',\n './navbar-divider.scss'\n ],\n host: {\n class: 'mc-navbar',\n '(window:resize)': 'resizeStream.next($event)'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McNavbar implements AfterViewInit, AfterContentInit, OnDestroy {\n @ContentChildren(McNavbarItemBase, { descendants: true }) navbarBaseItems: QueryList<McNavbarItemBase>;\n\n @ContentChildren(McNavbarItem, { descendants: true }) navbarItems: QueryList<McNavbarItem>;\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly resizeDebounceInterval: number = 100;\n\n private get width(): number {\n return this.elementRef.nativeElement.getBoundingClientRect().width;\n }\n\n private get totalItemsWidth(): number {\n return this.navbarBaseItems\n .reduce((acc, item) => acc + item.getOuterElementWidth(), 0);\n }\n\n private get collapsableItems(): McNavbarItem[] {\n return this.navbarItems\n .toArray()\n .filter((item) => item.icon && item.title && item.collapsable)\n .reverse();\n }\n\n private resizeSubscription: Subscription;\n\n constructor(private elementRef: ElementRef) {\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.resizeDebounceInterval))\n .subscribe(this.updateCollapsed);\n }\n\n ngAfterContentInit(): void {\n this.setItemsState();\n\n this.navbarBaseItems.changes\n .subscribe(this.setItemsState);\n }\n\n ngAfterViewInit(): void {\n // Note: this wait is required for loading and rendering fonts for icons;\n // unfortunately we cannot control font rendering\n setTimeout(this.updateCollapsed);\n }\n\n ngOnDestroy() {\n this.resizeSubscription.unsubscribe();\n }\n\n updateCollapsed = () => {\n const collapseDelta = this.totalItemsWidth - this.width;\n\n const needCollapse = collapseDelta > 0;\n\n if (needCollapse) {\n this.collapseItems(collapseDelta);\n } else {\n this.unCollapseItems(collapseDelta);\n }\n }\n\n private collapseItems(collapseDelta: number) {\n let delta = collapseDelta;\n\n const unCollapsedItems = this.collapsableItems\n .filter((item) => !item.collapsed);\n\n for (const item of unCollapsedItems) {\n item.collapsed = true;\n delta -= item.getTitleWidth();\n\n if (delta < 0) { break; }\n }\n }\n\n private unCollapseItems(collapseDelta: number) {\n let delta = collapseDelta;\n\n this.collapsableItems\n .filter((item) => item.collapsed)\n .forEach((item) => {\n if (delta + item.getTitleWidth() < 0) {\n item.collapsed = false;\n delta += item.getTitleWidth();\n }\n });\n }\n\n private setItemsState = () => {\n Promise.resolve().then(() => this.navbarBaseItems?.forEach((item) => item.horizontal = true));\n }\n}\n","import { animate, AnimationTriggerMetadata, style, transition, trigger, state } from '@angular/animations';\nimport {\n VerticalNavbarSizeStatesClosedWidth as closedWidth,\n VerticalNavbarSizeStatesOpenedWidth as openedWidth\n} from '@ptsecurity/mosaic/design-tokens';\n\n\nexport function toggleVerticalNavbarAnimation(): AnimationTriggerMetadata {\n return trigger('toggle', [\n state('0', style({ width: `var(--mc-vertical-navbar-size-states-closed-width, ${closedWidth})` })),\n state('1', style({ width: `var(--mc-vertical-navbar-size-states-opened-width, ${openedWidth})` })),\n transition('0 <=> 1', animate('200ms cubic-bezier(0, 1, 0.5, 1)'))\n ]);\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { CanDisableCtor, HasTabIndexCtor, mixinDisabled, mixinTabIndex } from '@ptsecurity/mosaic/core';\nimport { McIcon } from '@ptsecurity/mosaic/icon';\n\nimport { McNavbarItemBase } from './navbar-item.component';\nimport { toggleVerticalNavbarAnimation } from './vertical-navbar.animation';\n\n\n@Component({\n selector: 'mc-vertical-navbar',\n exportAs: 'McVerticalNavbar',\n template: `\n <ng-content select=\"[mc-navbar-container], mc-navbar-container\"></ng-content>\n <ng-content select=\"[mc-navbar-toggle], mc-navbar-toggle\"></ng-content>\n `,\n styleUrls: ['./vertical-navbar.scss'],\n host: {\n class: 'mc-vertical-navbar',\n '[class.mc-closed]': '!expanded',\n '[class.mc-opened]': 'expanded',\n '[@toggle]': 'expanded'\n },\n animations: [toggleVerticalNavbarAnimation()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McVerticalNavbar implements AfterContentInit {\n get expanded() {\n return this._expanded;\n }\n\n @Input()\n set expanded(value: boolean) {\n this._expanded = coerceBooleanProperty(value);\n\n this.setClosedStateForItems(value);\n }\n\n private _expanded: boolean = false;\n\n @ContentChildren(McNavbarItemBase, { descendants: true }) navbarBaseItems: QueryList<McNavbarItemBase>;\n\n toggle(): void {\n this.expanded = !this.expanded;\n }\n\n ngAfterContentInit(): void {\n this.setItemsState();\n this.setClosedStateForItems(this.expanded);\n\n this.navbarBaseItems.changes\n .subscribe(this.setItemsState);\n }\n\n private setClosedStateForItems(value: boolean) {\n this.navbarBaseItems?.forEach((item) => {\n item.closed = !value;\n setTimeout(() => item.button?.updateClassModifierForIcons());\n });\n }\n\n private setItemsState = () => {\n Promise.resolve().then(() => this.navbarBaseItems?.forEach((item) => item.vertical = true));\n }\n}\n\nexport class McNavbarToggleBase {\n // tslint:disable-next-line:naming-convention\n constructor(public _elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McNavbarToggleMixinBase: HasTabIndexCtor & CanDisableCtor &\n typeof McNavbarToggleBase = mixinTabIndex(mixinDisabled(McNavbarToggleBase));\n\n@Component({\n selector: 'mc-navbar-toggle',\n template: `\n <i mc-icon\n [class.mc-angle-left-M_16]=\"mcNavbar.expanded\"\n [class.mc-angle-right-M_16]=\"!mcNavbar.expanded\"\n *ngIf=\"!customIcon\">\n </i>\n\n <ng-content select=\"[mc-icon]\"></ng-content>\n <ng-content select=\"mc-navbar-title\" *ngIf=\"mcNavbar.expanded\"></ng-content>\n `,\n styleUrls: ['./navbar.scss'],\n host: {\n class: 'mc-navbar-item mc-navbar-toggle mc-vertical',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null'\n },\n inputs: ['tabIndex'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McNavbarToggle extends McNavbarToggleMixinBase {\n @ContentChild(McIcon) customIcon: McIcon;\n\n constructor(\n public mcNavbar: McVerticalNavbar,\n private focusMonitor: FocusMonitor,\n private elementRef: ElementRef\n ) {\n super(elementRef);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n ngAfterContentInit(): void {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport {\n McNavbarItemBase,\n McNavbarBrand,\n McNavbarDivider,\n McNavbarItem,\n McNavbarLogo,\n McNavbarTitle\n} from './navbar-item.component';\nimport { McNavbar, McNavbarContainer } from './navbar.component';\nimport { McNavbarToggle, McVerticalNavbar } from './vertical-navbar.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n McIconModule\n ],\n exports: [\n McNavbar,\n McNavbarContainer,\n McNavbarTitle,\n McNavbarItem,\n McNavbarBrand,\n McNavbarLogo,\n McNavbarToggle,\n McVerticalNavbar,\n McNavbarDivider,\n McNavbarItemBase\n ],\n declarations: [\n McNavbar,\n McNavbarContainer,\n McNavbarTitle,\n McNavbarItem,\n McNavbarBrand,\n McNavbarLogo,\n McNavbarToggle,\n McVerticalNavbar,\n McNavbarDivider,\n McNavbarItemBase\n ]\n})\nexport class McNavbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {toggleVerticalNavbarAnimation as ɵa} from './vertical-navbar.animation';"],"names":["closedWidth","openedWidth"],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-navbar.js","sources":["../../../packages/mosaic/navbar/navbar-item.component.ts","../../../packages/mosaic/navbar/navbar.component.ts","../../../packages/mosaic/navbar/vertical-navbar.animation.ts","../../../packages/mosaic/navbar/vertical-navbar.component.ts","../../../packages/mosaic/navbar/navbar.module.ts","../../../packages/mosaic/navbar/ptsecurity-mosaic-navbar.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { McButtonCssStyler } from '@ptsecurity/mosaic/button';\nimport { CanDisable, CanDisableCtor, mixinDisabled } from '@ptsecurity/mosaic/core';\nimport { McIcon } from '@ptsecurity/mosaic/icon';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n\n@Directive({\n selector: 'mc-navbar-logo, [mc-navbar-logo]',\n host: {\n class: 'mc-navbar-logo',\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport class McNavbarLogo {\n readonly hovered = new Subject<boolean>();\n}\n\n\n@Directive({\n selector: 'mc-navbar-title, [mc-navbar-title]',\n host: {\n class: 'mc-navbar-title',\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport class McNavbarTitle implements AfterContentInit {\n readonly hovered = new Subject<boolean>();\n\n outerElementWidth: number;\n\n get text(): string {\n return this.elementRef.nativeElement.innerText;\n }\n\n constructor(private elementRef: ElementRef) {}\n\n getOuterElementWidth(): number {\n const { width, marginLeft, marginRight } = window.getComputedStyle(this.elementRef.nativeElement);\n\n return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item) || 0, 0);\n }\n\n ngAfterContentInit(): void {\n this.outerElementWidth = this.getOuterElementWidth();\n }\n}\n\n\n@Directive({\n selector: 'mc-navbar-brand, [mc-navbar-brand]',\n host: {\n class: 'mc-navbar-brand',\n '[class.mc-hovered]': 'hovered'\n }\n})\nexport class McNavbarBrand implements AfterContentInit, OnDestroy {\n @ContentChild(McNavbarLogo) logo: McNavbarLogo;\n @ContentChild(McNavbarTitle) title: McNavbarTitle;\n\n hovered = false;\n\n private destroyed = new Subject<void>();\n\n ngAfterContentInit(): void {\n merge(\n this.logo.hovered,\n this.title.hovered\n )\n .pipe(takeUntil(this.destroyed))\n .subscribe((value: boolean) => this.hovered = value);\n }\n\n ngOnDestroy(): void {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\n\n\n@Directive({\n selector: 'mc-navbar-divider',\n host: {\n class: 'mc-navbar-divider'\n }\n})\nexport class McNavbarDivider {}\n\n\n@Directive({\n selector: 'mc-navbar-item, [mc-navbar-item], mc-navbar-divider, mc-navbar-brand, [mc-navbar-brand]',\n host: {\n '[class.mc-vertical]': 'vertical',\n '[class.mc-horizontal]': 'horizontal',\n '[class.mc-opened]': 'vertical && !closed',\n '[class.mc-closed]': 'vertical && closed'\n }\n})\nexport class McNavbarItemBase {\n @ContentChild(McButtonCssStyler) button: McButtonCssStyler;\n\n vertical: boolean;\n horizontal: boolean;\n\n closed: boolean;\n\n constructor(public elementRef: ElementRef) {}\n\n getOuterElementWidth(): number {\n const { width, marginLeft, marginRight } = window.getComputedStyle(this.elementRef.nativeElement);\n\n return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item), 0);\n }\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McNavbarMixinBase: CanDisableCtor & typeof McNavbarItemBase = mixinDisabled(McNavbarItemBase);\n\n\n@Component({\n selector: 'mc-navbar-item, [mc-navbar-item]',\n exportAs: 'mcNavbarItem',\n template: `<ng-content></ng-content>`,\n host: {\n class: 'mc-navbar-item',\n '[class.mc-navbar-item_collapsed]': 'collapsed',\n '[class.mc-navbar-item_button]': 'button',\n\n '[attr.title]': 'collapsedTitle',\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null'\n },\n inputs: ['disabled'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McNavbarItem extends McNavbarMixinBase implements OnDestroy, CanDisable, AfterContentInit {\n @ContentChild(McButtonCssStyler) button: McButtonCssStyler;\n @ContentChild(McNavbarTitle) title: McNavbarTitle;\n @ContentChild(McIcon) icon: McIcon;\n\n\n @Input()\n get collapsable(): boolean {\n return this._collapsable;\n }\n\n set collapsable(value: boolean) {\n this._collapsable = coerceBooleanProperty(value);\n }\n\n private _collapsable: boolean = true;\n\n @Input() collapsed = false;\n\n get collapsedTitle(): string | null {\n return this.collapsed ? (this._collapsedTitle || this.title.text) : null;\n }\n\n @Input()\n set collapsedTitle(value: string | null) {\n this._collapsedTitle = value;\n }\n\n private _collapsedTitle: string | null = null;\n\n get tabIndex(): number {\n return this.disabled || this.button ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value != null ? coerceNumberProperty(value) : 0;\n }\n\n private _tabIndex: number = 0;\n\n constructor(private focusMonitor: FocusMonitor, public elementRef: ElementRef) {\n super(elementRef);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n ngAfterContentInit(): void {\n if (this.button) { return; }\n\n this.focusMonitor.monitor(this.elementRef, true);\n }\n\n getTitleWidth(): number {\n return this.title.outerElementWidth;\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n OnDestroy,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { McNavbarItem, McNavbarItemBase } from './navbar-item.component';\n\n\nexport type McNavbarContainerPositionType = 'left' | 'right';\n\n\n@Directive({\n selector: 'mc-navbar-container',\n host: {\n class: 'mc-navbar-container'\n }\n})\nexport class McNavbarContainer {}\n\n@Component({\n selector: 'mc-navbar',\n template: `<ng-content select=\"[mc-navbar-container], mc-navbar-container\"></ng-content>`,\n styleUrls: [\n './navbar.scss',\n './navbar-item.scss',\n './navbar-brand.scss',\n './navbar-divider.scss'\n ],\n host: {\n class: 'mc-navbar',\n '(window:resize)': 'resizeStream.next($event)'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McNavbar implements AfterViewInit, AfterContentInit, OnDestroy {\n @ContentChildren(McNavbarItemBase, { descendants: true }) navbarBaseItems: QueryList<McNavbarItemBase>;\n\n @ContentChildren(McNavbarItem, { descendants: true }) navbarItems: QueryList<McNavbarItem>;\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly resizeDebounceInterval: number = 100;\n\n private get width(): number {\n return this.elementRef.nativeElement.getBoundingClientRect().width;\n }\n\n private get totalItemsWidth(): number {\n return this.navbarBaseItems\n .reduce((acc, item) => acc + item.getOuterElementWidth(), 0);\n }\n\n private get collapsableItems(): McNavbarItem[] {\n return this.navbarItems\n .toArray()\n .filter((item) => item.icon && item.title && item.collapsable)\n .reverse();\n }\n\n private resizeSubscription: Subscription;\n\n constructor(private elementRef: ElementRef) {\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.resizeDebounceInterval))\n .subscribe(this.updateCollapsed);\n }\n\n ngAfterContentInit(): void {\n this.setItemsState();\n\n this.navbarBaseItems.changes\n .subscribe(this.setItemsState);\n }\n\n ngAfterViewInit(): void {\n // Note: this wait is required for loading and rendering fonts for icons;\n // unfortunately we cannot control font rendering\n setTimeout(this.updateCollapsed);\n }\n\n ngOnDestroy() {\n this.resizeSubscription.unsubscribe();\n }\n\n updateCollapsed = () => {\n const collapseDelta = this.totalItemsWidth - this.width;\n\n const needCollapse = collapseDelta > 0;\n\n if (needCollapse) {\n this.collapseItems(collapseDelta);\n } else {\n this.unCollapseItems(collapseDelta);\n }\n }\n\n private collapseItems(collapseDelta: number) {\n let delta = collapseDelta;\n\n const unCollapsedItems = this.collapsableItems\n .filter((item) => !item.collapsed);\n\n for (const item of unCollapsedItems) {\n item.collapsed = true;\n delta -= item.getTitleWidth();\n\n if (delta < 0) { break; }\n }\n }\n\n private unCollapseItems(collapseDelta: number) {\n let delta = collapseDelta;\n\n this.collapsableItems\n .filter((item) => item.collapsed)\n .forEach((item) => {\n if (delta + item.getTitleWidth() < 0) {\n item.collapsed = false;\n delta += item.getTitleWidth();\n }\n });\n }\n\n private setItemsState = () => {\n Promise.resolve().then(() => this.navbarBaseItems?.forEach((item) => item.horizontal = true));\n }\n}\n","import { animate, AnimationTriggerMetadata, style, transition, trigger, state } from '@angular/animations';\nimport {\n VerticalNavbarSizeStatesClosedWidth as closedWidth,\n VerticalNavbarSizeStatesOpenedWidth as openedWidth\n} from '@ptsecurity/mosaic/design-tokens';\n\n\nexport function toggleVerticalNavbarAnimation(): AnimationTriggerMetadata {\n return trigger('toggle', [\n state('0', style({ width: `var(--mc-vertical-navbar-size-states-closed-width, ${closedWidth})` })),\n state('1', style({ width: `var(--mc-vertical-navbar-size-states-opened-width, ${openedWidth})` })),\n transition('0 <=> 1', animate('200ms cubic-bezier(0, 1, 0.5, 1)'))\n ]);\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { CanDisableCtor, HasTabIndexCtor, mixinDisabled, mixinTabIndex } from '@ptsecurity/mosaic/core';\nimport { McIcon } from '@ptsecurity/mosaic/icon';\n\nimport { McNavbarItemBase } from './navbar-item.component';\nimport { toggleVerticalNavbarAnimation } from './vertical-navbar.animation';\n\n\n@Component({\n selector: 'mc-vertical-navbar',\n exportAs: 'McVerticalNavbar',\n template: `\n <ng-content select=\"[mc-navbar-container], mc-navbar-container\"></ng-content>\n <ng-content select=\"[mc-navbar-toggle], mc-navbar-toggle\"></ng-content>\n `,\n styleUrls: [\n './vertical-navbar.scss',\n './navbar-item.scss',\n './navbar-brand.scss',\n './navbar-divider.scss'\n ],\n host: {\n class: 'mc-vertical-navbar',\n '[class.mc-closed]': '!expanded',\n '[class.mc-opened]': 'expanded',\n '[@toggle]': 'expanded'\n },\n animations: [toggleVerticalNavbarAnimation()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McVerticalNavbar implements AfterContentInit {\n get expanded() {\n return this._expanded;\n }\n\n @Input()\n set expanded(value: boolean) {\n this._expanded = coerceBooleanProperty(value);\n\n this.setClosedStateForItems(value);\n }\n\n private _expanded: boolean = false;\n\n @ContentChildren(McNavbarItemBase, { descendants: true }) navbarBaseItems: QueryList<McNavbarItemBase>;\n\n toggle(): void {\n this.expanded = !this.expanded;\n }\n\n ngAfterContentInit(): void {\n this.setItemsState();\n this.setClosedStateForItems(this.expanded);\n\n this.navbarBaseItems.changes\n .subscribe(this.setItemsState);\n }\n\n private setClosedStateForItems(value: boolean) {\n this.navbarBaseItems?.forEach((item) => {\n item.closed = !value;\n setTimeout(() => item.button?.updateClassModifierForIcons());\n });\n }\n\n private setItemsState = () => {\n Promise.resolve().then(() => this.navbarBaseItems?.forEach((item) => item.vertical = true));\n }\n}\n\nexport class McNavbarToggleBase {\n // tslint:disable-next-line:naming-convention\n constructor(public _elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McNavbarToggleMixinBase: HasTabIndexCtor & CanDisableCtor &\n typeof McNavbarToggleBase = mixinTabIndex(mixinDisabled(McNavbarToggleBase));\n\n@Component({\n selector: 'mc-navbar-toggle',\n template: `\n <i mc-icon\n [class.mc-angle-left-M_16]=\"mcNavbar.expanded\"\n [class.mc-angle-right-M_16]=\"!mcNavbar.expanded\"\n *ngIf=\"!customIcon\">\n </i>\n\n <ng-content select=\"[mc-icon]\"></ng-content>\n <ng-content select=\"mc-navbar-title\" *ngIf=\"mcNavbar.expanded\"></ng-content>\n `,\n styleUrls: ['./navbar.scss'],\n host: {\n class: 'mc-navbar-item mc-navbar-toggle mc-vertical',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null'\n },\n inputs: ['tabIndex'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McNavbarToggle extends McNavbarToggleMixinBase {\n @ContentChild(McIcon) customIcon: McIcon;\n\n constructor(\n public mcNavbar: McVerticalNavbar,\n private focusMonitor: FocusMonitor,\n private elementRef: ElementRef\n ) {\n super(elementRef);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n ngAfterContentInit(): void {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport {\n McNavbarItemBase,\n McNavbarBrand,\n McNavbarDivider,\n McNavbarItem,\n McNavbarLogo,\n McNavbarTitle\n} from './navbar-item.component';\nimport { McNavbar, McNavbarContainer } from './navbar.component';\nimport { McNavbarToggle, McVerticalNavbar } from './vertical-navbar.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n McIconModule\n ],\n exports: [\n McNavbar,\n McNavbarContainer,\n McNavbarTitle,\n McNavbarItem,\n McNavbarBrand,\n McNavbarLogo,\n McNavbarToggle,\n McVerticalNavbar,\n McNavbarDivider,\n McNavbarItemBase\n ],\n declarations: [\n McNavbar,\n McNavbarContainer,\n McNavbarTitle,\n McNavbarItem,\n McNavbarBrand,\n McNavbarLogo,\n McNavbarToggle,\n McVerticalNavbar,\n McNavbarDivider,\n McNavbarItemBase\n ]\n})\nexport class McNavbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {toggleVerticalNavbarAnimation as ɵa} from './vertical-navbar.animation';"],"names":["closedWidth","openedWidth"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Directive, ElementRef, Renderer2, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, NgZone, ViewChildren, NgModule } from '@angular/core';
2
+ import { Directive, ElementRef, Renderer2, Input, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, NgZone, Output, ViewChildren, NgModule } from '@angular/core';
3
3
  import { McIconModule } from '@ptsecurity/mosaic/icon';
4
4
  import { coerceNumberProperty, coerceCssPixelValue, coerceBooleanProperty } from '@angular/cdk/coercion';
5
5
 
@@ -79,6 +79,7 @@ class McSplitterComponent {
79
79
  this.changeDetectorRef = changeDetectorRef;
80
80
  this.ngZone = ngZone;
81
81
  this.renderer = renderer;
82
+ this.gutterPositionChange = new EventEmitter();
82
83
  this.areas = [];
83
84
  this.isDragging = false;
84
85
  this.areaPositionDivider = 2;
@@ -221,6 +222,7 @@ class McSplitterComponent {
221
222
  }
222
223
  this.isDragging = false;
223
224
  this.updateGutter();
225
+ this.gutterPositionChange.emit();
224
226
  }
225
227
  setStyle(property, value) {
226
228
  this.renderer.setStyle(this.elementRef.nativeElement, property, value);
@@ -248,6 +250,7 @@ McSplitterComponent.ctorParameters = () => [
248
250
  { type: Renderer2 }
249
251
  ];
250
252
  McSplitterComponent.propDecorators = {
253
+ gutterPositionChange: [{ type: Output }],
251
254
  gutters: [{ type: ViewChildren, args: [McGutterDirective,] }],
252
255
  hideGutters: [{ type: Input }],
253
256
  direction: [{ type: Input }],
@@ -259,6 +262,7 @@ class McSplitterAreaDirective {
259
262
  this.elementRef = elementRef;
260
263
  this.renderer = renderer;
261
264
  this.splitter = splitter;
265
+ this.sizeChange = new EventEmitter();
262
266
  }
263
267
  disableFlex() {
264
268
  this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');
@@ -274,6 +278,7 @@ class McSplitterAreaDirective {
274
278
  this.setStyle("height" /* Height */, '100%');
275
279
  this.removeStyle("width" /* Width */);
276
280
  }
281
+ this.splitter.gutterPositionChange.subscribe(() => this.emitSizeChange());
277
282
  }
278
283
  ngOnDestroy() {
279
284
  this.splitter.removeArea(this);
@@ -318,6 +323,9 @@ class McSplitterAreaDirective {
318
323
  removeStyle(style) {
319
324
  this.renderer.removeStyle(this.elementRef.nativeElement, style);
320
325
  }
326
+ emitSizeChange() {
327
+ this.sizeChange.emit(this.getSize());
328
+ }
321
329
  }
322
330
  McSplitterAreaDirective.decorators = [
323
331
  { type: Directive, args: [{
@@ -333,6 +341,9 @@ McSplitterAreaDirective.ctorParameters = () => [
333
341
  { type: Renderer2 },
334
342
  { type: McSplitterComponent }
335
343
  ];
344
+ McSplitterAreaDirective.propDecorators = {
345
+ sizeChange: [{ type: Output }]
346
+ };
336
347
 
337
348
  class McSplitterModule {
338
349
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-splitter.js","sources":["../../../packages/mosaic/splitter/splitter.component.ts","../../../packages/mosaic/splitter/splitter.module.ts","../../../packages/mosaic/splitter/ptsecurity-mosaic-splitter.ts"],"sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\n\ninterface IArea {\n area: McSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n\n@Directive({\n selector: 'mc-gutter',\n host: {\n class: 'mc-gutter',\n '[class.mc-gutter_vertical]': 'isVertical()',\n '[class.mc-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class McGutterDirective implements OnInit {\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n get order(): number {\n return this._order;\n }\n\n @Input()\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n dragged: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical() ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical()) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is requied for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'row' : 'column');\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n\n@Component({\n selector: 'mc-splitter',\n exportAs: 'mcSplitter',\n host: {\n class: 'mc-splitter'\n },\n preserveWhitespaces: false,\n styleUrls: ['splitter.scss'],\n templateUrl: './splitter.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McSplitterComponent implements OnInit {\n readonly areas: IArea[] = [];\n\n @ViewChildren(McGutterDirective) gutters: QueryList<McGutterDirective>;\n\n private isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n @Input()\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n @Input()\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n addArea(area: McSplitterAreaDirective): void {\n const index: number = this.areas.length;\n const order: number = index * this.areaPositionDivider;\n const size: number = area.getSize();\n\n area.setOrder(order);\n\n this.areas.push({\n area,\n index,\n order,\n initialSize: size\n });\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) { return; }\n\n event.preventDefault();\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n item.area.disableFlex();\n item.area.setSize(size);\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mouseup',\n () => this.onMouseUp()\n )\n );\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mousemove',\n (e: MouseEvent) => this.onMouseMove(e, startPoint, leftArea, rightArea)\n )\n );\n });\n\n this.isDragging = true;\n }\n\n removeArea(area: McSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private updateGutter(): void {\n this.gutters.forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n\n }\n\n private onMouseMove(event: MouseEvent, startPoint: IPoint, leftArea: IArea, rightArea: IArea) {\n if (!this.isDragging || this.disabled) { return; }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical()\n ? startPoint.y - endPoint.y\n : startPoint.x - endPoint.x;\n\n const newLeftAreaSize = leftArea.initialSize - offset;\n const newRightAreaSize = rightArea.initialSize + offset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize <= minLeftAreaSize || newRightAreaSize <= minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp() {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n\n this.isDragging = false;\n\n this.updateGutter();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[mc-splitter-area]',\n host: {\n class: 'mc-splitter-area'\n }\n})\nexport class McSplitterAreaDirective implements OnInit, OnDestroy {\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private splitter: McSplitterComponent\n ) {}\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngOnInit(): void {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (size) {\n const sz = coerceNumberProperty(size);\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(sz));\n }\n }\n\n getSize(): number {\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getMinSize(): number {\n const styles = getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.MinHeight\n : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.OffsetHeight\n : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.Height\n : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McGutterDirective, McSplitterAreaDirective, McSplitterComponent } from './splitter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n McIconModule\n ],\n exports: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ],\n declarations: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ]\n})\nexport class McSplitterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-splitter.js","sources":["../../../packages/mosaic/splitter/splitter.component.ts","../../../packages/mosaic/splitter/splitter.module.ts","../../../packages/mosaic/splitter/ptsecurity-mosaic-splitter.ts"],"sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\n\ninterface IArea {\n area: McSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n@Directive({\n selector: 'mc-gutter',\n host: {\n class: 'mc-gutter',\n '[class.mc-gutter_vertical]': 'isVertical()',\n '[class.mc-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class McGutterDirective implements OnInit {\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n get order(): number {\n return this._order;\n }\n\n @Input()\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n get size(): number {\n return this._size;\n }\n\n @Input()\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n dragged: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical() ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical()) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is requied for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'row' : 'column');\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n\n@Component({\n selector: 'mc-splitter',\n exportAs: 'mcSplitter',\n host: {\n class: 'mc-splitter'\n },\n preserveWhitespaces: false,\n styleUrls: ['splitter.scss'],\n templateUrl: './splitter.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McSplitterComponent implements OnInit {\n @Output() gutterPositionChange: EventEmitter<void> = new EventEmitter<void>();\n\n readonly areas: IArea[] = [];\n\n @ViewChildren(McGutterDirective) gutters: QueryList<McGutterDirective>;\n\n private isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n @Input()\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n get direction(): Direction {\n return this._direction;\n }\n\n @Input()\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n @Input()\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n addArea(area: McSplitterAreaDirective): void {\n const index: number = this.areas.length;\n const order: number = index * this.areaPositionDivider;\n const size: number = area.getSize();\n\n area.setOrder(order);\n\n this.areas.push({\n area,\n index,\n order,\n initialSize: size\n });\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) { return; }\n\n event.preventDefault();\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n item.area.disableFlex();\n item.area.setSize(size);\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mouseup',\n () => this.onMouseUp()\n )\n );\n });\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen(\n 'document',\n 'mousemove',\n (e: MouseEvent) => this.onMouseMove(e, startPoint, leftArea, rightArea)\n )\n );\n });\n\n this.isDragging = true;\n }\n\n removeArea(area: McSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private updateGutter(): void {\n this.gutters.forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n\n }\n\n private onMouseMove(event: MouseEvent, startPoint: IPoint, leftArea: IArea, rightArea: IArea) {\n if (!this.isDragging || this.disabled) { return; }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical()\n ? startPoint.y - endPoint.y\n : startPoint.x - endPoint.x;\n\n const newLeftAreaSize = leftArea.initialSize - offset;\n const newRightAreaSize = rightArea.initialSize + offset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize <= minLeftAreaSize || newRightAreaSize <= minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp() {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n\n this.isDragging = false;\n\n this.updateGutter();\n\n this.gutterPositionChange.emit();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[mc-splitter-area]',\n host: {\n class: 'mc-splitter-area'\n }\n})\nexport class McSplitterAreaDirective implements OnInit, OnDestroy {\n @Output() sizeChange: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private splitter: McSplitterComponent\n ) {}\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngOnInit(): void {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n\n this.splitter.gutterPositionChange.subscribe(() => this.emitSizeChange());\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (size) {\n const sz = coerceNumberProperty(size);\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(sz));\n }\n }\n\n getSize(): number {\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getMinSize(): number {\n const styles = getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.MinHeight\n : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.OffsetHeight\n : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical()\n ? StyleProperty.Height\n : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n\n private emitSizeChange(): void {\n this.sizeChange.emit(this.getSize());\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McGutterDirective, McSplitterAreaDirective, McSplitterComponent } from './splitter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n McIconModule\n ],\n exports: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ],\n declarations: [\n McGutterDirective,\n McSplitterAreaDirective,\n McSplitterComponent\n ]\n})\nexport class McSplitterModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -294,6 +294,7 @@ McTag.decorators = [
294
294
  '[class.mc-selected]': 'selected',
295
295
  '[class.mc-focused]': 'hasFocus',
296
296
  '[class.mc-tag-with-avatar]': 'avatar',
297
+ '[class.mc-tag-with-icon]': 'contentChildren',
297
298
  '[class.mc-tag-with-trailing-icon]': 'trailingIcon || removeIcon',
298
299
  '[class.mc-disabled]': 'disabled',
299
300
  '(click)': 'handleClick($event)',
@@ -303,7 +304,7 @@ McTag.decorators = [
303
304
  },
304
305
  changeDetection: ChangeDetectionStrategy.OnPush,
305
306
  encapsulation: ViewEncapsulation.None,
306
- styles: [".mc-tag{position:relative;display:inline-block;overflow:hidden;margin:var(--mc-tags-size-margin,2px);height:var(--mc-tags-size-height,24px);border-width:var(--mc-tags-size-border-width,1px);border-style:solid;border-radius:var(--mc-tags-size-border-radius,4px);cursor:default;outline:none;box-sizing:border-box}.mc-tag.mc-left-icon{padding-left:var(--mc-tags-size-icon-padding,3px)}.mc-tag.mc-right-icon{padding-right:var(--mc-tags-size-icon-padding,3px)}.mc-tag__wrapper{display:flex;align-items:center;height:100%;flex:1 1 100%}.mc-tag__wrapper .mc-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--mc-tags-size-height,24px);height:var(--mc-tags-size-height,24px)}.mc-tag__wrapper .mc-icon_left{margin-right:var(--mc-tags-size-icon-padding,3px)}.mc-tag__wrapper .mc-icon_right{margin-left:var(--mc-tags-size-icon-padding,3px)}.mc-tag-overlay{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;pointer-events:none;border-radius:inherit}.mc-tag__text{margin-left:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}"]
307
+ styles: [".mc-tag{position:relative;display:inline-block;overflow:hidden;margin:var(--mc-tags-size-margin,2px);height:var(--mc-tags-size-height,24px);border-width:var(--mc-tags-size-border-width,1px);border-style:solid;border-radius:var(--mc-tags-size-border-radius,4px);cursor:default;outline:none;box-sizing:border-box}.mc-tag.mc-left-icon{padding-left:var(--mc-tags-size-icon-padding,3px)}.mc-tag.mc-right-icon{padding-right:var(--mc-tags-size-icon-padding,3px)}.mc-tag .mc-tag__text{margin-left:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mc-tag:not(.mc-tag-with-icon) .mc-tag__text{margin-right:calc(var(--mc-tags-size-text-margin, 8px) - var(--mc-tags-size-border-width, 1px))}.mc-tag__wrapper{display:flex;align-items:center;height:100%;flex:1 1 100%}.mc-tag__wrapper .mc-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--mc-tags-size-height,24px);height:var(--mc-tags-size-height,24px)}.mc-tag__wrapper .mc-icon_left{margin-right:var(--mc-tags-size-icon-padding,3px)}.mc-tag__wrapper .mc-icon_right{margin-left:var(--mc-tags-size-icon-padding,3px)}.mc-tag-overlay{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;pointer-events:none;border-radius:inherit}"]
307
308
  },] }
308
309
  ];
309
310
  /** @nocollapse */