@ptsecurity/mosaic 11.4.5 → 11.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_theming.scss +368 -61
- package/_visual.scss +130 -8
- package/bundles/ptsecurity-mosaic-datepicker.umd.js +2 -1
- package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-datepicker.umd.min.js +1 -1
- package/bundles/ptsecurity-mosaic-datepicker.umd.min.js.map +1 -1
- package/bundles/ptsecurity-mosaic-design-tokens.umd.js +226 -15
- package/bundles/ptsecurity-mosaic-design-tokens.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-design-tokens.umd.min.js +1 -1
- package/bundles/ptsecurity-mosaic-design-tokens.umd.min.js.map +1 -1
- package/bundles/ptsecurity-mosaic-dropdown.umd.js +1 -1
- package/bundles/ptsecurity-mosaic-dropdown.umd.min.js +2 -2
- package/bundles/ptsecurity-mosaic-dropdown.umd.min.js.map +1 -1
- package/bundles/ptsecurity-mosaic-list.umd.js +10 -2
- package/bundles/ptsecurity-mosaic-list.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-list.umd.min.js +1 -1
- package/bundles/ptsecurity-mosaic-list.umd.min.js.map +1 -1
- package/bundles/ptsecurity-mosaic-navbar.umd.js +2 -2
- package/bundles/ptsecurity-mosaic-navbar.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-navbar.umd.min.js +2 -2
- package/bundles/ptsecurity-mosaic-navbar.umd.min.js.map +1 -1
- package/bundles/ptsecurity-mosaic-timepicker.umd.js +1 -1
- package/bundles/ptsecurity-mosaic-timepicker.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-timepicker.umd.min.js +1 -1
- package/bundles/ptsecurity-mosaic-timepicker.umd.min.js.map +1 -1
- package/design-tokens/ptsecurity-mosaic-design-tokens.metadata.json +1 -1
- package/design-tokens/tokens/components/badge.json5 +177 -7
- package/design-tokens/tokens/components/tooltip.json5 +1 -1
- package/design-tokens/tokens/properties/typography.json5 +16 -0
- package/design-tokens/tokens.d.ts +114 -8
- package/dropdown/ptsecurity-mosaic-dropdown.metadata.json +1 -1
- package/esm2015/datepicker/datepicker-input.directive.js +3 -2
- package/esm2015/design-tokens/tokens.js +115 -10
- package/esm2015/dropdown/dropdown-item.component.js +1 -1
- package/esm2015/list/list-selection.component.js +11 -3
- package/esm2015/navbar/navbar.component.js +1 -1
- package/esm2015/navbar/vertical-navbar.component.js +2 -2
- package/esm2015/timepicker/timepicker.directive.js +3 -3
- package/fesm2015/ptsecurity-mosaic-datepicker.js +2 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-design-tokens.js +115 -10
- package/fesm2015/ptsecurity-mosaic-design-tokens.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dropdown.js +1 -1
- package/fesm2015/ptsecurity-mosaic-list.js +10 -2
- package/fesm2015/ptsecurity-mosaic-list.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-navbar.js +2 -2
- package/fesm2015/ptsecurity-mosaic-navbar.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-timepicker.js +2 -2
- package/fesm2015/ptsecurity-mosaic-timepicker.js.map +1 -1
- package/list/ptsecurity-mosaic-list.metadata.json +1 -1
- package/navbar/ptsecurity-mosaic-navbar.metadata.json +1 -1
- package/package.json +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
- package/timepicker/ptsecurity-mosaic-timepicker.metadata.json +1 -1
@@ -213,7 +213,7 @@ McDropdownItem.decorators = [
|
|
213
213
|
},
|
214
214
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
215
215
|
encapsulation: ViewEncapsulation.None,
|
216
|
-
styles: [".mc-dropdown-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;position:relative;box-sizing:border-box;width:100%;border:1px solid transparent;outline:none;padding:0;text-align:left;white-space:nowrap}.mc-dropdown-item:not([disabled]){cursor:pointer}.mc-dropdown-item .mc-dropdown-item__caption{margin-top:4px}.mc-dropdown-item.mc-dropdown-item_with-icon .mc-dropdown-item__caption{margin-left:24px}.mc-dropdown-item .docs-navbar-version__num{margin-right:4px}.mc-dropdown-item-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:var(--mc-dropdown-item-size-padding,5px 15px)}.mc-dropdown-item-wrapper [mc-icon]{padding:var(--mc-dropdown-item-size-icon-padding,0 8px 2px 0)}.mc-dropdown-trigger__icon{margin-left:auto;padding-right:var(--dropdown-trigger-size-icon-padding-right,8px)}.mc-dropdown__group-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:var(--mc-dropdown-item-size-padding,6px 15px)}.mc-dropdown__group-header.mc-dropdown__group-header_small{padding:var(--mc-dropdown-item-size-padding,8px 15px)}.mc-dropdown__divider{height:var(--mc-dropdown-
|
216
|
+
styles: [".mc-dropdown-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;position:relative;box-sizing:border-box;width:100%;border:1px solid transparent;outline:none;padding:0;text-align:left;white-space:nowrap}.mc-dropdown-item:not([disabled]){cursor:pointer}.mc-dropdown-item .mc-dropdown-item__caption{margin-top:4px}.mc-dropdown-item.mc-dropdown-item_with-icon .mc-dropdown-item__caption{margin-left:24px}.mc-dropdown-item .docs-navbar-version__num{margin-right:4px}.mc-dropdown-item-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:var(--mc-dropdown-item-size-padding,5px 15px)}.mc-dropdown-item-wrapper [mc-icon]{padding:var(--mc-dropdown-item-size-icon-padding,0 8px 2px 0)}.mc-dropdown-trigger__icon{margin-left:auto;padding-right:var(--dropdown-trigger-size-icon-padding-right,8px)}.mc-dropdown__group-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:var(--mc-dropdown-item-size-padding,6px 15px)}.mc-dropdown__group-header.mc-dropdown__group-header_small{padding:var(--mc-dropdown-item-size-padding,8px 15px)}.mc-dropdown__divider{height:var(--mc-dropdown-divider-size-height,1px);margin:var(--mc-dropdown-divider-size-margin,4px 0)}"]
|
217
217
|
},] }
|
218
218
|
];
|
219
219
|
/** @nocollapse */
|
@@ -119,7 +119,11 @@ class McListOption {
|
|
119
119
|
this.changeDetector.markForCheck();
|
120
120
|
}
|
121
121
|
getHeight() {
|
122
|
-
|
122
|
+
const clientRects = this.elementRef.nativeElement.getClientRects();
|
123
|
+
if (clientRects.length) {
|
124
|
+
return clientRects[0].height;
|
125
|
+
}
|
126
|
+
return 0;
|
123
127
|
}
|
124
128
|
handleClick($event) {
|
125
129
|
if (this.disabled) {
|
@@ -447,7 +451,11 @@ class McListSelection extends McListSelectionMixinBase {
|
|
447
451
|
return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);
|
448
452
|
}
|
449
453
|
getHeight() {
|
450
|
-
|
454
|
+
const clientRects = this.elementRef.nativeElement.getClientRects();
|
455
|
+
if (clientRects.length) {
|
456
|
+
return clientRects[0].height;
|
457
|
+
}
|
458
|
+
return 0;
|
451
459
|
}
|
452
460
|
// Removes an option from the selection list and updates the active item.
|
453
461
|
removeOptionFromList(option) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ptsecurity-mosaic-list.js","sources":["../../../packages/mosaic/list/list-selection.component.ts","../../../packages/mosaic/list/list.component.ts","../../../packages/mosaic/list/list.module.ts","../../../packages/mosaic/list/ptsecurity-mosaic-list.ts"],"sourcesContent":["/* tslint:disable:no-empty */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n ViewEncapsulation,\n ChangeDetectorRef,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n NgZone,\n Optional\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusKeyManager, IFocusableOption } from '@ptsecurity/cdk/a11y';\nimport {\n DOWN_ARROW,\n END,\n ENTER,\n hasModifierKey,\n HOME,\n PAGE_DOWN,\n PAGE_UP,\n SPACE,\n TAB,\n UP_ARROW\n} from '@ptsecurity/cdk/keycodes';\nimport {\n McLine,\n CanDisable,\n mixinDisabled,\n toBoolean,\n CanDisableCtor,\n HasTabIndexCtor,\n mixinTabIndex,\n HasTabIndex,\n MultipleMode,\n McOptgroup\n} from '@ptsecurity/mosaic/core';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { startWith, take, takeUntil } from 'rxjs/operators';\n\n\n// tslint:disable-next-line:naming-convention\nexport interface McOptionEvent {\n option: McListOption;\n}\n\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n */\n@Component({\n exportAs: 'mcListOption',\n selector: 'mc-list-option',\n host: {\n class: 'mc-list-option mc-no-select',\n '[class.mc-selected]': 'selected',\n '[class.mc-focused]': 'hasFocus',\n '[class.mc-disabled]': 'disabled',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(focusin)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'handleClick($event)'\n },\n templateUrl: 'list-option.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McListOption implements OnDestroy, OnInit, IFocusableOption {\n hasFocus: boolean = false;\n\n readonly onFocus = new Subject<McOptionEvent>();\n\n readonly onBlur = new Subject<McOptionEvent>();\n\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n @ViewChild('text', { static: false }) text: ElementRef;\n\n // Whether the label should appear before or after the checkbox. Defaults to 'after'\n @Input() checkboxPosition: 'before' | 'after';\n\n /**\n * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\n * in the first cycle.\n */\n private inputsInitialized = false;\n\n @Input()\n get value(): any { return this._value; }\n set value(newValue: any) {\n if (this.selected && newValue !== this.value && this.inputsInitialized) {\n this.selected = false;\n }\n\n this._value = newValue;\n }\n private _value: any;\n\n @Input()\n get disabled() {\n const listSelectionDisabled = this.listSelection && this.listSelection.disabled;\n const groupDisabled = this.group && this.group.disabled;\n\n return listSelectionDisabled || groupDisabled || this._disabled;\n }\n\n set disabled(value: any) {\n const newValue = toBoolean(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;\n }\n\n set showCheckbox(value: any) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n @Input()\n get selected(): boolean {\n return this.listSelection.selectionModel && this.listSelection.selectionModel.isSelected(this) || false;\n }\n\n set selected(value: boolean) {\n const isSelected = toBoolean(value);\n\n if (isSelected !== this._selected) {\n this.setSelected(isSelected);\n\n this.listSelection.reportValueChange();\n }\n }\n\n private _selected = false;\n\n get tabIndex(): any {\n return this.disabled ? null : -1;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n private ngZone: NgZone,\n @Inject(forwardRef(() => McListSelection)) public listSelection: McListSelection,\n @Optional() readonly group: McOptgroup\n ) {}\n\n ngOnInit() {\n const list = this.listSelection;\n\n if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {\n this.setSelected(true);\n }\n\n const wasSelected = this._selected;\n\n // List options that are selected at initialization can't be reported properly to the form\n // control. This is because it takes some time until the selection-list knows about all\n // available options. Also it can happen that the ControlValueAccessor has an initial value\n // that should be used instead. Deferring the value change report to the next tick ensures\n // that the form control value is not being overwritten.\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this.changeDetector.markForCheck();\n }\n });\n\n this.inputsInitialized = true;\n }\n\n ngOnDestroy(): void {\n if (this.selected) {\n // We have to delay this until the next tick in order\n // to avoid changed after checked errors.\n Promise.resolve().then(() => this.selected = false);\n }\n\n this.listSelection.removeOptionFromList(this);\n }\n\n toggle(): void {\n this.selected = !this.selected;\n }\n\n getLabel() {\n return this.text ? this.text.nativeElement.textContent : '';\n }\n\n setSelected(selected: boolean) {\n if (this._selected === selected || !this.listSelection.selectionModel) { return; }\n\n this._selected = selected;\n\n if (selected) {\n this.listSelection.selectionModel.select(this);\n } else {\n this.listSelection.selectionModel.deselect(this);\n }\n\n this.changeDetector.markForCheck();\n }\n\n getHeight(): number {\n return this.elementRef.nativeElement.getClientRects()[0].height;\n }\n\n handleClick($event) {\n if (this.disabled) { return; }\n\n this.listSelection.setSelectedOptionsByClick(\n this, hasModifierKey($event, 'shiftKey'), hasModifierKey($event, 'ctrlKey')\n );\n }\n\n focus() {\n if (!this.hasFocus) {\n this.elementRef.nativeElement.focus();\n\n this.onFocus.next({ option: this });\n\n Promise.resolve().then(() => {\n this.hasFocus = true;\n\n this.changeDetector.markForCheck();\n });\n }\n }\n\n blur(): void {\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this.hasFocus = false;\n\n this.onBlur.next({ option: this });\n });\n });\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n\n\nexport const MC_SELECTION_LIST_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McListSelection),\n multi: true\n};\n\nexport class McListSelectionChange {\n constructor(public source: McListSelection, public option: McListOption) {}\n}\n\n\nexport class McListSelectionBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McListSelectionMixinBase: CanDisableCtor & HasTabIndexCtor & typeof McListSelectionBase\n = mixinTabIndex(mixinDisabled(McListSelectionBase));\n\n@Component({\n exportAs: 'mcListSelection',\n selector: 'mc-list-selection',\n template: `\n <div [attr.tabindex]=\"tabIndex\"\n (focus)=\"focus()\"\n (blur)=\"blur()\">\n <ng-content></ng-content>\n </div>`,\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n class: 'mc-list-selection',\n\n '[attr.tabindex]': '-1',\n '[attr.disabled]': 'disabled || null',\n\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'updateScrollSize()'\n },\n providers: [MC_SELECTION_LIST_VALUE_ACCESSOR],\n preserveWhitespaces: false\n})\nexport class McListSelection extends McListSelectionMixinBase implements CanDisable, HasTabIndex, AfterContentInit,\n ControlValueAccessor {\n\n keyManager: FocusKeyManager<McListOption>;\n\n @ContentChildren(McListOption, { descendants: true }) options: QueryList<McListOption>;\n\n @Input()\n get autoSelect(): boolean {\n return this._autoSelect;\n }\n\n set autoSelect(value: boolean) {\n this._autoSelect = coerceBooleanProperty(value);\n }\n\n private _autoSelect: boolean = true;\n\n @Input()\n get noUnselectLast(): boolean {\n return this._noUnselectLast;\n }\n\n set noUnselectLast(value: boolean) {\n this._noUnselectLast = coerceBooleanProperty(value);\n }\n\n private _noUnselectLast: boolean = true;\n\n multipleMode: MultipleMode | null;\n\n get multiple(): boolean {\n return !!this.multipleMode;\n }\n\n @Input() horizontal: boolean = false;\n\n @Input()\n get tabIndex(): any {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this.userTabIndex = value;\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n userTabIndex: number | null = null;\n\n get showCheckbox(): boolean {\n return this.multipleMode === MultipleMode.CHECKBOX;\n }\n\n // Emits a change event whenever the selected state of an option changes.\n @Output() readonly selectionChange: EventEmitter<McListSelectionChange> = new EventEmitter<McListSelectionChange>();\n\n selectionModel: SelectionModel<McListOption>;\n\n get optionFocusChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onFocus));\n }\n\n get optionBlurChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onBlur));\n }\n\n // tslint:disable-next-line:orthodox-getter-and-setter naming-convention\n _value: string[] | null;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroyed = new Subject<void>();\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode\n ) {\n super(elementRef);\n\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\n this.multipleMode = multiple;\n } else if (multiple !== null) {\n this.multipleMode = MultipleMode.CHECKBOX;\n }\n\n if (this.multipleMode === MultipleMode.CHECKBOX) {\n this.autoSelect = false;\n this.noUnselectLast = false;\n }\n\n this.selectionModel = new SelectionModel<McListOption>(this.multiple);\n }\n\n /**\n * Function used for comparing an option against the selected value when determining which\n * options should appear as selected. The first argument is the value of an options. The second\n * one is a value from the selected value. A boolean must be returned.\n */\n @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\n\n ngAfterContentInit(): void {\n this.horizontal = toBoolean(this.horizontal);\n\n this.keyManager = new FocusKeyManager<McListOption>(this.options)\n .withTypeAhead()\n .withVerticalOrientation(!this.horizontal)\n .withHorizontalOrientation(this.horizontal ? 'ltr' : null);\n\n this.keyManager.tabOut\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => {\n this._tabIndex = -1;\n\n setTimeout(() => {\n this._tabIndex = this.userTabIndex || 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n if (this._value) {\n this.setOptionsFromValues(this._value);\n }\n\n this.selectionModel.changed\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n for (const item of event.added) { item.selected = true; }\n\n for (const item of event.removed) { item.selected = false; }\n });\n\n this.options.changes\n .pipe(startWith(null), takeUntil(this.destroyed))\n .subscribe(() => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n });\n\n this.updateScrollSize();\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n\n this.destroyed.complete();\n }\n\n focus(): void {\n if (this.options.length === 0) { return; }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedOption()) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n }\n\n selectAll() {\n this.options.forEach((option) => option.setSelected(true));\n\n this.reportValueChange();\n }\n\n deselectAll() {\n this.options.forEach((option) => option.setSelected(false));\n\n this.reportValueChange();\n }\n\n updateScrollSize(): void {\n if (this.horizontal || !this.options.first) { return; }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));\n }\n\n setSelectedOptionsByClick(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n\n this.selectionModel.toggle(option);\n } else if (this.autoSelect) {\n this.selectionModel.clear();\n this.selectionModel.toggle(option);\n } else {\n this.selectionModel.toggle(option);\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptionsByKey(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n } else {\n if (this.multipleMode === MultipleMode.KEYBOARD || !this.multiple) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n }\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptions(option: McListOption): void {\n const selectedOptionState = option.selected;\n\n let fromIndex = this.keyManager.previousActiveItemIndex;\n let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;\n\n if (toIndex === fromIndex) { return; }\n\n if (fromIndex > toIndex) {\n [fromIndex, toIndex] = [toIndex, fromIndex];\n }\n\n this.options\n .toArray()\n .slice(fromIndex, toIndex + 1)\n .filter((item) => !item.disabled)\n .forEach((renderedOption) => {\n const isLastRenderedOption = renderedOption === this.keyManager.activeItem;\n\n if (isLastRenderedOption && renderedOption.selected && this.noUnselectLast) { return; }\n\n renderedOption.setSelected(!selectedOptionState);\n });\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(values: string[]): void {\n this._value = values;\n\n if (this.options) {\n this.setOptionsFromValues(values || []);\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as a part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n if (this.options) {\n this.options.forEach((option) => option.disabled = isDisabled);\n }\n }\n\n getSelectedOptionValues(): string[] {\n return this.options.filter((option) => option.selected).map((option) => option.value);\n }\n\n // Toggles the selected state of the currently focused option.\n toggleFocusedOption(): void {\n const focusedIndex = this.keyManager.activeItemIndex;\n\n if (focusedIndex != null && this.isValidIndex(focusedIndex)) {\n const focusedOption: McListOption = this.options.toArray()[focusedIndex];\n\n if (focusedOption && this.canDeselectLast(focusedOption)) {\n focusedOption.toggle();\n\n // Emit a change event because the focused option changed its state through user interaction.\n this.emitChangeEvent(focusedOption);\n }\n }\n }\n\n canDeselectLast(listOption: McListOption): boolean {\n return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n return this.elementRef.nativeElement.getClientRects()[0].height;\n }\n\n // View to model callback that should be called if the list or its options lost focus.\n // tslint:disable-next-line:no-empty\n onTouched: () => void = () => {};\n\n // Removes an option from the selection list and updates the active item.\n removeOptionFromList(option: McListOption) {\n if (option.hasFocus) {\n const optionIndex = this.getOptionIndex(option);\n\n // Check whether the option is the last item\n if (optionIndex > 0) {\n this.keyManager.setPreviousItemActive();\n } else if (optionIndex === 0 && this.options.length > 1) {\n this.keyManager.setNextItemActive();\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n switch (keyCode) {\n case SPACE:\n case ENTER:\n this.toggleFocusedOption();\n\n break;\n\n case TAB:\n this.keyManager.tabOut.next();\n\n return;\n\n case DOWN_ARROW:\n this.keyManager.setNextItemActive();\n\n break;\n case UP_ARROW:\n this.keyManager.setPreviousItemActive();\n\n break;\n case HOME:\n this.keyManager.setFirstItemActive();\n\n break;\n case END:\n this.keyManager.setLastItemActive();\n\n break;\n case PAGE_UP:\n this.keyManager.setPreviousPageItemActive();\n\n break;\n case PAGE_DOWN:\n this.keyManager.setNextPageItemActive();\n\n break;\n default:\n return;\n }\n\n event.preventDefault();\n\n this.setSelectedOptionsByKey(\n this.keyManager.activeItem as McListOption,\n hasModifierKey(event, 'shiftKey'),\n hasModifierKey(event, 'ctrlKey')\n );\n }\n\n // Reports a value change to the ControlValueAccessor\n reportValueChange() {\n if (this.options) {\n const value = this.getSelectedOptionValues();\n this.onChange(value);\n this._value = value;\n }\n }\n\n // Emits a change event if the selected state of an option changed.\n emitChangeEvent(option: McListOption) {\n this.selectionChange.emit(new McListSelectionChange(this, option));\n }\n\n protected updateTabIndex(): void {\n this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);\n }\n\n private resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n private dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges\n .subscribe((event) => {\n const index: number = this.options.toArray().indexOf(event.option);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges\n .subscribe(() => this.blur());\n }\n\n /** Checks whether any of the options is focused. */\n private hasFocusedOption() {\n return this.options.some((option) => option.hasFocus);\n }\n\n // Returns the option with the specified value.\n private getOptionByValue(value: string): McListOption | undefined {\n return this.options.find((option) => option.value === value);\n }\n\n // Sets the selected options based on the specified values.\n private setOptionsFromValues(values: string[]) {\n this.options.forEach((option) => option.setSelected(false));\n\n values\n .map((value) => this.getOptionByValue(value))\n .filter(Boolean)\n .forEach((option) => option!.setSelected(true));\n }\n\n /**\n * Utility to ensure all indexes are valid.\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of options.\n */\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.options.length;\n }\n\n // Returns the index of the specified list option.\n private getOptionIndex(option: McListOption): number {\n return this.options.toArray().indexOf(option);\n }\n\n // View to model callback that should be called whenever the selected options change.\n private onChange: (value: any) => void = (_: any) => {};\n}\n","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\nimport {\n AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, ElementRef, QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\n\n\n@Component({\n selector: 'mc-list',\n host: { class: 'mc-list' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McList {}\n\n\n@Component({\n selector: 'mc-list-item, a[mc-list-item]',\n host: {\n class: 'mc-list-item',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()'\n },\n templateUrl: './list-item.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McListItem implements AfterContentInit {\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit() {\n // tslint:disable-next-line:no-unused-expression\n new McLineSetter(this.lines, this.elementRef);\n }\n\n handleFocus() {\n this.elementRef.nativeElement.classList.add('mc-focused');\n }\n\n handleBlur() {\n this.elementRef.nativeElement.classList.remove('mc-focused');\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McListSelection, McListOption } from './list-selection.component';\nimport { McList, McListItem } from './list.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n McPseudoCheckboxModule,\n McLineModule,\n McOptionModule\n ],\n exports: [\n McList,\n McListSelection,\n McListItem,\n McListOption,\n McOptionModule\n ],\n declarations: [\n McList,\n McListSelection,\n McListItem,\n McListOption\n ]\n})\nexport class McListModule {}\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-list.js","sources":["../../../packages/mosaic/list/list-selection.component.ts","../../../packages/mosaic/list/list.component.ts","../../../packages/mosaic/list/list.module.ts","../../../packages/mosaic/list/ptsecurity-mosaic-list.ts"],"sourcesContent":["/* tslint:disable:no-empty */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n ViewEncapsulation,\n ChangeDetectorRef,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n NgZone,\n Optional\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusKeyManager, IFocusableOption } from '@ptsecurity/cdk/a11y';\nimport {\n DOWN_ARROW,\n END,\n ENTER,\n hasModifierKey,\n HOME,\n PAGE_DOWN,\n PAGE_UP,\n SPACE,\n TAB,\n UP_ARROW\n} from '@ptsecurity/cdk/keycodes';\nimport {\n McLine,\n CanDisable,\n mixinDisabled,\n toBoolean,\n CanDisableCtor,\n HasTabIndexCtor,\n mixinTabIndex,\n HasTabIndex,\n MultipleMode,\n McOptgroup\n} from '@ptsecurity/mosaic/core';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { startWith, take, takeUntil } from 'rxjs/operators';\n\n\n// tslint:disable-next-line:naming-convention\nexport interface McOptionEvent {\n option: McListOption;\n}\n\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n */\n@Component({\n exportAs: 'mcListOption',\n selector: 'mc-list-option',\n host: {\n class: 'mc-list-option mc-no-select',\n '[class.mc-selected]': 'selected',\n '[class.mc-focused]': 'hasFocus',\n '[class.mc-disabled]': 'disabled',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(focusin)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'handleClick($event)'\n },\n templateUrl: 'list-option.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McListOption implements OnDestroy, OnInit, IFocusableOption {\n hasFocus: boolean = false;\n\n readonly onFocus = new Subject<McOptionEvent>();\n\n readonly onBlur = new Subject<McOptionEvent>();\n\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n @ViewChild('text', { static: false }) text: ElementRef;\n\n // Whether the label should appear before or after the checkbox. Defaults to 'after'\n @Input() checkboxPosition: 'before' | 'after';\n\n /**\n * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\n * in the first cycle.\n */\n private inputsInitialized = false;\n\n @Input()\n get value(): any { return this._value; }\n set value(newValue: any) {\n if (this.selected && newValue !== this.value && this.inputsInitialized) {\n this.selected = false;\n }\n\n this._value = newValue;\n }\n private _value: any;\n\n @Input()\n get disabled() {\n const listSelectionDisabled = this.listSelection && this.listSelection.disabled;\n const groupDisabled = this.group && this.group.disabled;\n\n return listSelectionDisabled || groupDisabled || this._disabled;\n }\n\n set disabled(value: any) {\n const newValue = toBoolean(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;\n }\n\n set showCheckbox(value: any) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n @Input()\n get selected(): boolean {\n return this.listSelection.selectionModel && this.listSelection.selectionModel.isSelected(this) || false;\n }\n\n set selected(value: boolean) {\n const isSelected = toBoolean(value);\n\n if (isSelected !== this._selected) {\n this.setSelected(isSelected);\n\n this.listSelection.reportValueChange();\n }\n }\n\n private _selected = false;\n\n get tabIndex(): any {\n return this.disabled ? null : -1;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n private ngZone: NgZone,\n @Inject(forwardRef(() => McListSelection)) public listSelection: McListSelection,\n @Optional() readonly group: McOptgroup\n ) {}\n\n ngOnInit() {\n const list = this.listSelection;\n\n if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {\n this.setSelected(true);\n }\n\n const wasSelected = this._selected;\n\n // List options that are selected at initialization can't be reported properly to the form\n // control. This is because it takes some time until the selection-list knows about all\n // available options. Also it can happen that the ControlValueAccessor has an initial value\n // that should be used instead. Deferring the value change report to the next tick ensures\n // that the form control value is not being overwritten.\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this.changeDetector.markForCheck();\n }\n });\n\n this.inputsInitialized = true;\n }\n\n ngOnDestroy(): void {\n if (this.selected) {\n // We have to delay this until the next tick in order\n // to avoid changed after checked errors.\n Promise.resolve().then(() => this.selected = false);\n }\n\n this.listSelection.removeOptionFromList(this);\n }\n\n toggle(): void {\n this.selected = !this.selected;\n }\n\n getLabel() {\n return this.text ? this.text.nativeElement.textContent : '';\n }\n\n setSelected(selected: boolean) {\n if (this._selected === selected || !this.listSelection.selectionModel) { return; }\n\n this._selected = selected;\n\n if (selected) {\n this.listSelection.selectionModel.select(this);\n } else {\n this.listSelection.selectionModel.deselect(this);\n }\n\n this.changeDetector.markForCheck();\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n if (clientRects.length) {\n return clientRects[0].height;\n }\n\n return 0;\n }\n\n handleClick($event) {\n if (this.disabled) { return; }\n\n this.listSelection.setSelectedOptionsByClick(\n this, hasModifierKey($event, 'shiftKey'), hasModifierKey($event, 'ctrlKey')\n );\n }\n\n focus() {\n if (!this.hasFocus) {\n this.elementRef.nativeElement.focus();\n\n this.onFocus.next({ option: this });\n\n Promise.resolve().then(() => {\n this.hasFocus = true;\n\n this.changeDetector.markForCheck();\n });\n }\n }\n\n blur(): void {\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this.hasFocus = false;\n\n this.onBlur.next({ option: this });\n });\n });\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n\n\nexport const MC_SELECTION_LIST_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McListSelection),\n multi: true\n};\n\nexport class McListSelectionChange {\n constructor(public source: McListSelection, public option: McListOption) {}\n}\n\n\nexport class McListSelectionBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McListSelectionMixinBase: CanDisableCtor & HasTabIndexCtor & typeof McListSelectionBase\n = mixinTabIndex(mixinDisabled(McListSelectionBase));\n\n@Component({\n exportAs: 'mcListSelection',\n selector: 'mc-list-selection',\n template: `\n <div [attr.tabindex]=\"tabIndex\"\n (focus)=\"focus()\"\n (blur)=\"blur()\">\n <ng-content></ng-content>\n </div>`,\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n class: 'mc-list-selection',\n\n '[attr.tabindex]': '-1',\n '[attr.disabled]': 'disabled || null',\n\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'updateScrollSize()'\n },\n providers: [MC_SELECTION_LIST_VALUE_ACCESSOR],\n preserveWhitespaces: false\n})\nexport class McListSelection extends McListSelectionMixinBase implements CanDisable, HasTabIndex, AfterContentInit,\n ControlValueAccessor {\n\n keyManager: FocusKeyManager<McListOption>;\n\n @ContentChildren(McListOption, { descendants: true }) options: QueryList<McListOption>;\n\n @Input()\n get autoSelect(): boolean {\n return this._autoSelect;\n }\n\n set autoSelect(value: boolean) {\n this._autoSelect = coerceBooleanProperty(value);\n }\n\n private _autoSelect: boolean = true;\n\n @Input()\n get noUnselectLast(): boolean {\n return this._noUnselectLast;\n }\n\n set noUnselectLast(value: boolean) {\n this._noUnselectLast = coerceBooleanProperty(value);\n }\n\n private _noUnselectLast: boolean = true;\n\n multipleMode: MultipleMode | null;\n\n get multiple(): boolean {\n return !!this.multipleMode;\n }\n\n @Input() horizontal: boolean = false;\n\n @Input()\n get tabIndex(): any {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this.userTabIndex = value;\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n userTabIndex: number | null = null;\n\n get showCheckbox(): boolean {\n return this.multipleMode === MultipleMode.CHECKBOX;\n }\n\n // Emits a change event whenever the selected state of an option changes.\n @Output() readonly selectionChange: EventEmitter<McListSelectionChange> = new EventEmitter<McListSelectionChange>();\n\n selectionModel: SelectionModel<McListOption>;\n\n get optionFocusChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onFocus));\n }\n\n get optionBlurChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onBlur));\n }\n\n // tslint:disable-next-line:orthodox-getter-and-setter naming-convention\n _value: string[] | null;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroyed = new Subject<void>();\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode\n ) {\n super(elementRef);\n\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\n this.multipleMode = multiple;\n } else if (multiple !== null) {\n this.multipleMode = MultipleMode.CHECKBOX;\n }\n\n if (this.multipleMode === MultipleMode.CHECKBOX) {\n this.autoSelect = false;\n this.noUnselectLast = false;\n }\n\n this.selectionModel = new SelectionModel<McListOption>(this.multiple);\n }\n\n /**\n * Function used for comparing an option against the selected value when determining which\n * options should appear as selected. The first argument is the value of an options. The second\n * one is a value from the selected value. A boolean must be returned.\n */\n @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\n\n ngAfterContentInit(): void {\n this.horizontal = toBoolean(this.horizontal);\n\n this.keyManager = new FocusKeyManager<McListOption>(this.options)\n .withTypeAhead()\n .withVerticalOrientation(!this.horizontal)\n .withHorizontalOrientation(this.horizontal ? 'ltr' : null);\n\n this.keyManager.tabOut\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => {\n this._tabIndex = -1;\n\n setTimeout(() => {\n this._tabIndex = this.userTabIndex || 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n if (this._value) {\n this.setOptionsFromValues(this._value);\n }\n\n this.selectionModel.changed\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n for (const item of event.added) { item.selected = true; }\n\n for (const item of event.removed) { item.selected = false; }\n });\n\n this.options.changes\n .pipe(startWith(null), takeUntil(this.destroyed))\n .subscribe(() => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n });\n\n this.updateScrollSize();\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n\n this.destroyed.complete();\n }\n\n focus(): void {\n if (this.options.length === 0) { return; }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedOption()) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n }\n\n selectAll() {\n this.options.forEach((option) => option.setSelected(true));\n\n this.reportValueChange();\n }\n\n deselectAll() {\n this.options.forEach((option) => option.setSelected(false));\n\n this.reportValueChange();\n }\n\n updateScrollSize(): void {\n if (this.horizontal || !this.options.first) { return; }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));\n }\n\n setSelectedOptionsByClick(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n\n this.selectionModel.toggle(option);\n } else if (this.autoSelect) {\n this.selectionModel.clear();\n this.selectionModel.toggle(option);\n } else {\n this.selectionModel.toggle(option);\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptionsByKey(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n } else {\n if (this.multipleMode === MultipleMode.KEYBOARD || !this.multiple) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n }\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptions(option: McListOption): void {\n const selectedOptionState = option.selected;\n\n let fromIndex = this.keyManager.previousActiveItemIndex;\n let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;\n\n if (toIndex === fromIndex) { return; }\n\n if (fromIndex > toIndex) {\n [fromIndex, toIndex] = [toIndex, fromIndex];\n }\n\n this.options\n .toArray()\n .slice(fromIndex, toIndex + 1)\n .filter((item) => !item.disabled)\n .forEach((renderedOption) => {\n const isLastRenderedOption = renderedOption === this.keyManager.activeItem;\n\n if (isLastRenderedOption && renderedOption.selected && this.noUnselectLast) { return; }\n\n renderedOption.setSelected(!selectedOptionState);\n });\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(values: string[]): void {\n this._value = values;\n\n if (this.options) {\n this.setOptionsFromValues(values || []);\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as a part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n if (this.options) {\n this.options.forEach((option) => option.disabled = isDisabled);\n }\n }\n\n getSelectedOptionValues(): string[] {\n return this.options.filter((option) => option.selected).map((option) => option.value);\n }\n\n // Toggles the selected state of the currently focused option.\n toggleFocusedOption(): void {\n const focusedIndex = this.keyManager.activeItemIndex;\n\n if (focusedIndex != null && this.isValidIndex(focusedIndex)) {\n const focusedOption: McListOption = this.options.toArray()[focusedIndex];\n\n if (focusedOption && this.canDeselectLast(focusedOption)) {\n focusedOption.toggle();\n\n // Emit a change event because the focused option changed its state through user interaction.\n this.emitChangeEvent(focusedOption);\n }\n }\n }\n\n canDeselectLast(listOption: McListOption): boolean {\n return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n if (clientRects.length) {\n return clientRects[0].height;\n }\n\n return 0;\n }\n\n // View to model callback that should be called if the list or its options lost focus.\n // tslint:disable-next-line:no-empty\n onTouched: () => void = () => {};\n\n // Removes an option from the selection list and updates the active item.\n removeOptionFromList(option: McListOption) {\n if (option.hasFocus) {\n const optionIndex = this.getOptionIndex(option);\n\n // Check whether the option is the last item\n if (optionIndex > 0) {\n this.keyManager.setPreviousItemActive();\n } else if (optionIndex === 0 && this.options.length > 1) {\n this.keyManager.setNextItemActive();\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n switch (keyCode) {\n case SPACE:\n case ENTER:\n this.toggleFocusedOption();\n\n break;\n\n case TAB:\n this.keyManager.tabOut.next();\n\n return;\n\n case DOWN_ARROW:\n this.keyManager.setNextItemActive();\n\n break;\n case UP_ARROW:\n this.keyManager.setPreviousItemActive();\n\n break;\n case HOME:\n this.keyManager.setFirstItemActive();\n\n break;\n case END:\n this.keyManager.setLastItemActive();\n\n break;\n case PAGE_UP:\n this.keyManager.setPreviousPageItemActive();\n\n break;\n case PAGE_DOWN:\n this.keyManager.setNextPageItemActive();\n\n break;\n default:\n return;\n }\n\n event.preventDefault();\n\n this.setSelectedOptionsByKey(\n this.keyManager.activeItem as McListOption,\n hasModifierKey(event, 'shiftKey'),\n hasModifierKey(event, 'ctrlKey')\n );\n }\n\n // Reports a value change to the ControlValueAccessor\n reportValueChange() {\n if (this.options) {\n const value = this.getSelectedOptionValues();\n this.onChange(value);\n this._value = value;\n }\n }\n\n // Emits a change event if the selected state of an option changed.\n emitChangeEvent(option: McListOption) {\n this.selectionChange.emit(new McListSelectionChange(this, option));\n }\n\n protected updateTabIndex(): void {\n this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);\n }\n\n private resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n private dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges\n .subscribe((event) => {\n const index: number = this.options.toArray().indexOf(event.option);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges\n .subscribe(() => this.blur());\n }\n\n /** Checks whether any of the options is focused. */\n private hasFocusedOption() {\n return this.options.some((option) => option.hasFocus);\n }\n\n // Returns the option with the specified value.\n private getOptionByValue(value: string): McListOption | undefined {\n return this.options.find((option) => option.value === value);\n }\n\n // Sets the selected options based on the specified values.\n private setOptionsFromValues(values: string[]) {\n this.options.forEach((option) => option.setSelected(false));\n\n values\n .map((value) => this.getOptionByValue(value))\n .filter(Boolean)\n .forEach((option) => option!.setSelected(true));\n }\n\n /**\n * Utility to ensure all indexes are valid.\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of options.\n */\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.options.length;\n }\n\n // Returns the index of the specified list option.\n private getOptionIndex(option: McListOption): number {\n return this.options.toArray().indexOf(option);\n }\n\n // View to model callback that should be called whenever the selected options change.\n private onChange: (value: any) => void = (_: any) => {};\n}\n","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\nimport {\n AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, ElementRef, QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\n\n\n@Component({\n selector: 'mc-list',\n host: { class: 'mc-list' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McList {}\n\n\n@Component({\n selector: 'mc-list-item, a[mc-list-item]',\n host: {\n class: 'mc-list-item',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()'\n },\n templateUrl: './list-item.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McListItem implements AfterContentInit {\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit() {\n // tslint:disable-next-line:no-unused-expression\n new McLineSetter(this.lines, this.elementRef);\n }\n\n handleFocus() {\n this.elementRef.nativeElement.classList.add('mc-focused');\n }\n\n handleBlur() {\n this.elementRef.nativeElement.classList.remove('mc-focused');\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McListSelection, McListOption } from './list-selection.component';\nimport { McList, McListItem } from './list.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n McPseudoCheckboxModule,\n McLineModule,\n McOptionModule\n ],\n exports: [\n McList,\n McListSelection,\n McListItem,\n McListOption,\n McOptionModule\n ],\n declarations: [\n McList,\n McListSelection,\n McListItem,\n McListOption\n ]\n})\nexport class McListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -288,7 +288,7 @@ McNavbar.decorators = [
|
|
288
288
|
},
|
289
289
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
290
290
|
encapsulation: ViewEncapsulation.None,
|
291
|
-
styles: [".mc-navbar{position:relative}.mc-navbar,.mc-navbar-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.mc-navbar-container{flex-shrink:0}", ".mc-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mc-navbar-item{position:relative;display:flex;align-items:center;height:var(--mc-navbar-item-size-height,48px);padding-left:var(--mc-navbar-item-size-padding,16px);padding-right:var(--mc-navbar-item-size-padding,16px)}.mc-navbar-item .mc-icon{min-width:16px;min-height:16px}.mc-navbar-item
|
291
|
+
styles: [".mc-navbar{position:relative}.mc-navbar,.mc-navbar-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.mc-navbar-container{flex-shrink:0}", ".mc-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mc-navbar-item{position:relative;display:flex;align-items:center;height:var(--mc-navbar-item-size-height,48px);padding-left:var(--mc-navbar-item-size-padding,16px);padding-right:var(--mc-navbar-item-size-padding,16px)}.mc-navbar-item .mc-icon{min-width:16px;min-height:16px}.mc-navbar-item .mc-badge{position:absolute}.mc-navbar-item.mc-horizontal .mc-icon+.mc-navbar-title,.mc-navbar-item.mc-horizontal .mc-navbar-title+.mc-icon{padding-left:var(--mc-navbar-size-icon-margin,4px)}.mc-navbar-item.mc-horizontal.mc-navbar-item_collapsed .mc-navbar-title{display:none}.mc-navbar-item.mc-horizontal .mc-badge{top:8px;right:8px}.mc-navbar-item.mc-vertical .mc-navbar-title{padding-left:26px}.mc-navbar-item.mc-vertical .mc-icon+.mc-navbar-title,.mc-navbar-item.mc-vertical .mc-navbar-title+.mc-icon{padding-left:var(--mc-vertical-navbar-size-icon-margin,10px)}.mc-navbar-item.mc-vertical.mc-opened .mc-badge{right:16px}.mc-navbar-item.mc-vertical.mc-closed .mc-badge{top:8px;right:8px}.mc-navbar-item.mc-vertical.mc-closed .mc-navbar-title{display:none}.mc-navbar-item.mc-vertical.mc-closed.mc-navbar-item_button{padding-left:8px;padding-right:8px}.mc-navbar-item.mc-navbar-item_button .mc-icon-button{flex:1}.mc-navbar-item.mc-navbar-item_button .mc-icon-button .mc-button-wrapper{justify-content:center}.mc-navbar-item.mc-navbar-item_button .mc-icon-button .mc-button-wrapper .mc-icon.mc-icon_left{margin-left:unset}.mc-navbar-item.mc-navbar-item_button .mc-icon-button .mc-button-wrapper .mc-icon.mc-icon_right{margin-right:unset}a.mc-navbar-item,a.mc-navbar-title{text-decoration:none}", ".mc-navbar-logo{display:flex}.mc-navbar-brand{position:relative;display:flex;align-items:center}.mc-navbar-brand .mc-navbar-title{cursor:pointer}a.mc-navbar-brand{text-decoration:none}.mc-navbar-brand.mc-horizontal{height:var(--mc-navbar-item-size-height,48px);padding-right:var(--mc-navbar-brand-size-margin-right,24px)}.mc-navbar-brand.mc-horizontal .mc-navbar-title{padding-left:var(--mc-navbar-brand-size-padding,12px);padding-right:0}.mc-navbar-brand.mc-vertical{flex-direction:column}.mc-navbar-brand.mc-vertical .mc-navbar-logo{flex-direction:column;height:var(--mc-navbar-item-size-height,48px)}.mc-navbar-brand.mc-vertical .mc-navbar-title{display:flex;align-items:center;height:var(--mc-navbar-item-size-height,48px);padding-left:0}.mc-navbar-brand.mc-vertical.mc-opened{align-items:unset}.mc-navbar-brand.mc-vertical.mc-opened .mc-navbar-item{position:absolute;top:0;right:0}.mc-navbar-brand.mc-vertical.mc-opened .mc-navbar-logo{padding-left:16px;justify-content:flex-end}.mc-navbar-brand.mc-vertical.mc-opened .mc-navbar-title{padding-left:16px}.mc-navbar-brand.mc-vertical.mc-closed{padding:0}.mc-navbar-brand.mc-vertical.mc-closed .mc-navbar-logo{align-items:center;justify-content:center;width:48px}.mc-navbar-brand.mc-vertical.mc-closed .mc-navbar-title{display:none}", ".mc-navbar-divider{display:block}.mc-navbar-divider.mc-vertical{height:1px;margin:8px 16px}.mc-navbar-divider.mc-vertical.mc-closed{margin-right:10px;margin-left:10px}.mc-navbar-divider.mc-horizontal{width:1px;height:28px;margin-left:8px;margin-right:8px}"]
|
292
292
|
},] }
|
293
293
|
];
|
294
294
|
/** @nocollapse */
|
@@ -356,7 +356,7 @@ McVerticalNavbar.decorators = [
|
|
356
356
|
animations: [toggleVerticalNavbarAnimation()],
|
357
357
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
358
358
|
encapsulation: ViewEncapsulation.None,
|
359
|
-
styles: [".mc-vertical-navbar{display:flex;flex-direction:column}.mc-vertical-navbar .mc-navbar-container{flex-direction:column;align-items:unset}.mc-vertical-navbar.mc-opened{width:var(--mc-vertical-navbar-size-states-opened-width,240px)}.mc-vertical-navbar.mc-closed{width:var(--mc-vertical-navbar-size-states-closed-width,48px)}"]
|
359
|
+
styles: [".mc-vertical-navbar{display:flex;flex-direction:column}.mc-vertical-navbar .mc-navbar-container{flex-direction:column;align-items:unset}.mc-vertical-navbar.mc-opened{width:var(--mc-vertical-navbar-size-states-opened-width,240px)}.mc-vertical-navbar.mc-closed{width:var(--mc-vertical-navbar-size-states-closed-width,48px)}", ".mc-navbar-title{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mc-navbar-item{position:relative;display:flex;align-items:center;height:var(--mc-navbar-item-size-height,48px);padding-left:var(--mc-navbar-item-size-padding,16px);padding-right:var(--mc-navbar-item-size-padding,16px)}.mc-navbar-item .mc-icon{min-width:16px;min-height:16px}.mc-navbar-item .mc-badge{position:absolute}.mc-navbar-item.mc-horizontal .mc-icon+.mc-navbar-title,.mc-navbar-item.mc-horizontal .mc-navbar-title+.mc-icon{padding-left:var(--mc-navbar-size-icon-margin,4px)}.mc-navbar-item.mc-horizontal.mc-navbar-item_collapsed .mc-navbar-title{display:none}.mc-navbar-item.mc-horizontal .mc-badge{top:8px;right:8px}.mc-navbar-item.mc-vertical .mc-navbar-title{padding-left:26px}.mc-navbar-item.mc-vertical .mc-icon+.mc-navbar-title,.mc-navbar-item.mc-vertical .mc-navbar-title+.mc-icon{padding-left:var(--mc-vertical-navbar-size-icon-margin,10px)}.mc-navbar-item.mc-vertical.mc-opened .mc-badge{right:16px}.mc-navbar-item.mc-vertical.mc-closed .mc-badge{top:8px;right:8px}.mc-navbar-item.mc-vertical.mc-closed .mc-navbar-title{display:none}.mc-navbar-item.mc-vertical.mc-closed.mc-navbar-item_button{padding-left:8px;padding-right:8px}.mc-navbar-item.mc-navbar-item_button .mc-icon-button{flex:1}.mc-navbar-item.mc-navbar-item_button .mc-icon-button .mc-button-wrapper{justify-content:center}.mc-navbar-item.mc-navbar-item_button .mc-icon-button .mc-button-wrapper .mc-icon.mc-icon_left{margin-left:unset}.mc-navbar-item.mc-navbar-item_button .mc-icon-button .mc-button-wrapper .mc-icon.mc-icon_right{margin-right:unset}a.mc-navbar-item,a.mc-navbar-title{text-decoration:none}", ".mc-navbar-logo{display:flex}.mc-navbar-brand{position:relative;display:flex;align-items:center}.mc-navbar-brand .mc-navbar-title{cursor:pointer}a.mc-navbar-brand{text-decoration:none}.mc-navbar-brand.mc-horizontal{height:var(--mc-navbar-item-size-height,48px);padding-right:var(--mc-navbar-brand-size-margin-right,24px)}.mc-navbar-brand.mc-horizontal .mc-navbar-title{padding-left:var(--mc-navbar-brand-size-padding,12px);padding-right:0}.mc-navbar-brand.mc-vertical{flex-direction:column}.mc-navbar-brand.mc-vertical .mc-navbar-logo{flex-direction:column;height:var(--mc-navbar-item-size-height,48px)}.mc-navbar-brand.mc-vertical .mc-navbar-title{display:flex;align-items:center;height:var(--mc-navbar-item-size-height,48px);padding-left:0}.mc-navbar-brand.mc-vertical.mc-opened{align-items:unset}.mc-navbar-brand.mc-vertical.mc-opened .mc-navbar-item{position:absolute;top:0;right:0}.mc-navbar-brand.mc-vertical.mc-opened .mc-navbar-logo{padding-left:16px;justify-content:flex-end}.mc-navbar-brand.mc-vertical.mc-opened .mc-navbar-title{padding-left:16px}.mc-navbar-brand.mc-vertical.mc-closed{padding:0}.mc-navbar-brand.mc-vertical.mc-closed .mc-navbar-logo{align-items:center;justify-content:center;width:48px}.mc-navbar-brand.mc-vertical.mc-closed .mc-navbar-title{display:none}", ".mc-navbar-divider{display:block}.mc-navbar-divider.mc-vertical{height:1px;margin:8px 16px}.mc-navbar-divider.mc-vertical.mc-closed{margin-right:10px;margin-left:10px}.mc-navbar-divider.mc-horizontal{width:1px;height:28px;margin-left:8px;margin-right:8px}"]
|
360
360
|
},] }
|
361
361
|
];
|
362
362
|
McVerticalNavbar.propDecorators = {
|
@@ -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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"}
|
@@ -5,7 +5,7 @@ import { forwardRef, EventEmitter, Directive, ElementRef, Renderer2, Optional, I
|
|
5
5
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, Validators, FormsModule } from '@angular/forms';
|
6
6
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
7
7
|
import { DateAdapter } from '@ptsecurity/cdk/datetime';
|
8
|
-
import { isLetterKey, hasModifierKey, isVerticalMovement, isHorizontalMovement, DELETE, BACKSPACE, SPACE, HOME, PAGE_UP, END, PAGE_DOWN, UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW } from '@ptsecurity/cdk/keycodes';
|
8
|
+
import { isLetterKey, hasModifierKey, isVerticalMovement, isHorizontalMovement, DELETE, BACKSPACE, TAB, SPACE, HOME, PAGE_UP, END, PAGE_DOWN, UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW } from '@ptsecurity/cdk/keycodes';
|
9
9
|
import { validationTooltipShowDelay, validationTooltipHideDelay } from '@ptsecurity/mosaic/core';
|
10
10
|
import { McFormFieldControl } from '@ptsecurity/mosaic/form-field';
|
11
11
|
import '@ptsecurity/mosaic/tooltip';
|
@@ -300,7 +300,7 @@ class McTimepicker {
|
|
300
300
|
}
|
301
301
|
else if ((hasModifierKey(event) && (isVerticalMovement(keyCode) || isHorizontalMovement(keyCode))) ||
|
302
302
|
event.ctrlKey || event.metaKey ||
|
303
|
-
[DELETE, BACKSPACE].includes(keyCode)) {
|
303
|
+
[DELETE, BACKSPACE, TAB].includes(keyCode)) {
|
304
304
|
noop();
|
305
305
|
}
|
306
306
|
else if (keyCode === SPACE) {
|