@ptsecurity/mosaic 8.5.3 → 8.5.7
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/bundles/mosaic-list.umd.js +68 -26
- package/bundles/mosaic-list.umd.js.map +1 -1
- package/bundles/mosaic-list.umd.min.js +1 -1
- package/bundles/mosaic-list.umd.min.js.map +1 -1
- package/bundles/mosaic-select.umd.js +27 -10
- package/bundles/mosaic-select.umd.js.map +1 -1
- package/bundles/mosaic-select.umd.min.js +1 -1
- package/bundles/mosaic-select.umd.min.js.map +1 -1
- package/bundles/mosaic-splitter.umd.js +12 -6
- package/bundles/mosaic-splitter.umd.js.map +1 -1
- package/bundles/mosaic-splitter.umd.min.js +1 -1
- package/bundles/mosaic-splitter.umd.min.js.map +1 -1
- package/bundles/mosaic-toggle.umd.js +4 -5
- package/bundles/mosaic-toggle.umd.js.map +1 -1
- package/bundles/mosaic-toggle.umd.min.js +1 -1
- package/bundles/mosaic-toggle.umd.min.js.map +1 -1
- package/bundles/mosaic.umd.js +112 -48
- package/bundles/mosaic.umd.js.map +1 -1
- package/bundles/mosaic.umd.min.js +9 -9
- package/bundles/mosaic.umd.min.js.map +1 -1
- package/esm2015/list.js +64 -26
- package/esm2015/list.js.map +1 -1
- package/esm2015/mosaic.js +2 -2
- package/esm2015/mosaic.js.map +1 -1
- package/esm2015/select.js +28 -11
- package/esm2015/select.js.map +1 -1
- package/esm2015/splitter.js +12 -7
- package/esm2015/splitter.js.map +1 -1
- package/esm2015/toggle.js +4 -5
- package/esm2015/toggle.js.map +1 -1
- package/esm5/list.es5.js +68 -26
- package/esm5/list.es5.js.map +1 -1
- package/esm5/mosaic.es5.js +2 -2
- package/esm5/mosaic.es5.js.map +1 -1
- package/esm5/select.es5.js +28 -11
- package/esm5/select.es5.js.map +1 -1
- package/esm5/splitter.es5.js +12 -7
- package/esm5/splitter.es5.js.map +1 -1
- package/esm5/toggle.es5.js +4 -5
- package/esm5/toggle.es5.js.map +1 -1
- package/list/typings/index.metadata.json +1 -1
- package/list/typings/list-selection.component.d.ts +13 -1
- package/package.json +3 -3
- package/select/typings/index.metadata.json +1 -1
- package/splitter/typings/splitter.component.d.ts +1 -1
- package/toggle/typings/index.metadata.json +1 -1
- package/toggle/typings/toggle.component.d.ts +1 -1
- package/typings/esm5/index.metadata.json +1 -1
- package/typings/esm5/list/index.metadata.json +1 -1
- package/typings/esm5/list/list-selection.component.d.ts +13 -1
- package/typings/esm5/select/index.metadata.json +1 -1
- package/typings/esm5/splitter/splitter.component.d.ts +1 -1
- package/typings/esm5/toggle/index.metadata.json +1 -1
- package/typings/esm5/toggle/toggle.component.d.ts +1 -1
- package/typings/index.metadata.json +1 -1
- package/typings/list/index.metadata.json +1 -1
- package/typings/list/list-selection.component.d.ts +13 -1
- package/typings/select/index.metadata.json +1 -1
- package/typings/splitter/splitter.component.d.ts +1 -1
- package/typings/toggle/index.metadata.json +1 -1
- package/typings/toggle/toggle.component.d.ts +1 -1
package/esm2015/list.js
CHANGED
@@ -41,9 +41,28 @@ class McListOption {
|
|
41
41
|
this.hasFocus = false;
|
42
42
|
this.onFocus = new Subject();
|
43
43
|
this.onBlur = new Subject();
|
44
|
+
/**
|
45
|
+
* This is set to true after the first OnChanges cycle so we don't clear the value of `selected`
|
46
|
+
* in the first cycle.
|
47
|
+
*/
|
48
|
+
this.inputsInitialized = false;
|
44
49
|
this._disabled = false;
|
45
50
|
this._selected = false;
|
46
51
|
}
|
52
|
+
/**
|
53
|
+
* @return {?}
|
54
|
+
*/
|
55
|
+
get value() { return this._value; }
|
56
|
+
/**
|
57
|
+
* @param {?} newValue
|
58
|
+
* @return {?}
|
59
|
+
*/
|
60
|
+
set value(newValue) {
|
61
|
+
if (this.selected && newValue !== this.value && this.inputsInitialized) {
|
62
|
+
this.selected = false;
|
63
|
+
}
|
64
|
+
this._value = newValue;
|
65
|
+
}
|
47
66
|
/**
|
48
67
|
* @return {?}
|
49
68
|
*/
|
@@ -104,24 +123,32 @@ class McListOption {
|
|
104
123
|
* @return {?}
|
105
124
|
*/
|
106
125
|
ngOnInit() {
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
Promise.resolve().then((/**
|
116
|
-
* @return {?}
|
117
|
-
*/
|
118
|
-
() => {
|
119
|
-
if (this._selected || wasSelected) {
|
120
|
-
this.selected = true;
|
121
|
-
this.changeDetector.markForCheck();
|
122
|
-
}
|
123
|
-
}));
|
126
|
+
/** @type {?} */
|
127
|
+
const list = this.listSelection;
|
128
|
+
if (list._value && list._value.some((/**
|
129
|
+
* @param {?} value
|
130
|
+
* @return {?}
|
131
|
+
*/
|
132
|
+
(value) => list.compareWith(value, this._value)))) {
|
133
|
+
this.setSelected(true);
|
124
134
|
}
|
135
|
+
/** @type {?} */
|
136
|
+
const wasSelected = this._selected;
|
137
|
+
// List options that are selected at initialization can't be reported properly to the form
|
138
|
+
// control. This is because it takes some time until the selection-list knows about all
|
139
|
+
// available options. Also it can happen that the ControlValueAccessor has an initial value
|
140
|
+
// that should be used instead. Deferring the value change report to the next tick ensures
|
141
|
+
// that the form control value is not being overwritten.
|
142
|
+
Promise.resolve().then((/**
|
143
|
+
* @return {?}
|
144
|
+
*/
|
145
|
+
() => {
|
146
|
+
if (this._selected || wasSelected) {
|
147
|
+
this.selected = true;
|
148
|
+
this.changeDetector.markForCheck();
|
149
|
+
}
|
150
|
+
}));
|
151
|
+
this.inputsInitialized = true;
|
125
152
|
}
|
126
153
|
/**
|
127
154
|
* @return {?}
|
@@ -314,6 +341,17 @@ class McListSelection extends McListSelectionMixinBase {
|
|
314
341
|
* Emits whenever the component is destroyed.
|
315
342
|
*/
|
316
343
|
this.destroyed = new Subject();
|
344
|
+
/**
|
345
|
+
* Function used for comparing an option against the selected value when determining which
|
346
|
+
* options should appear as selected. The first argument is the value of an options. The second
|
347
|
+
* one is a value from the selected value. A boolean must be returned.
|
348
|
+
*/
|
349
|
+
this.compareWith = (/**
|
350
|
+
* @param {?} a1
|
351
|
+
* @param {?} a2
|
352
|
+
* @return {?}
|
353
|
+
*/
|
354
|
+
(a1, a2) => a1 === a2);
|
317
355
|
// View to model callback that should be called if the list or its options lost focus.
|
318
356
|
// tslint:disable-next-line:no-empty
|
319
357
|
this.onTouched = (/**
|
@@ -335,7 +373,6 @@ class McListSelection extends McListSelectionMixinBase {
|
|
335
373
|
this.multipleMode = MultipleMode.CHECKBOX;
|
336
374
|
}
|
337
375
|
if (this.multipleMode === MultipleMode.CHECKBOX) {
|
338
|
-
this.autoSelect = false;
|
339
376
|
this.noUnselect = false;
|
340
377
|
}
|
341
378
|
this._tabIndex = parseInt(tabIndex) || 0;
|
@@ -410,9 +447,8 @@ class McListSelection extends McListSelectionMixinBase {
|
|
410
447
|
this.changeDetectorRef.markForCheck();
|
411
448
|
}));
|
412
449
|
}));
|
413
|
-
if (this.
|
414
|
-
this.setOptionsFromValues(this.
|
415
|
-
this.tempValues = null;
|
450
|
+
if (this._value) {
|
451
|
+
this.setOptionsFromValues(this._value);
|
416
452
|
}
|
417
453
|
this.selectionModel.changed
|
418
454
|
.pipe(takeUntil(this.destroyed))
|
@@ -603,12 +639,10 @@ class McListSelection extends McListSelectionMixinBase {
|
|
603
639
|
* @return {?}
|
604
640
|
*/
|
605
641
|
writeValue(values) {
|
642
|
+
this._value = values;
|
606
643
|
if (this.options) {
|
607
644
|
this.setOptionsFromValues(values || []);
|
608
645
|
}
|
609
|
-
else {
|
610
|
-
this.tempValues = values;
|
611
|
-
}
|
612
646
|
}
|
613
647
|
// Implemented as part of ControlValueAccessor.
|
614
648
|
/**
|
@@ -748,7 +782,10 @@ class McListSelection extends McListSelectionMixinBase {
|
|
748
782
|
*/
|
749
783
|
reportValueChange() {
|
750
784
|
if (this.options) {
|
751
|
-
|
785
|
+
/** @type {?} */
|
786
|
+
const value = this.getSelectedOptionValues();
|
787
|
+
this.onChange(value);
|
788
|
+
this._value = value;
|
752
789
|
}
|
753
790
|
}
|
754
791
|
// Emits a change event if the selected state of an option changed.
|
@@ -914,7 +951,8 @@ McListSelection.propDecorators = {
|
|
914
951
|
options: [{ type: ContentChildren, args: [McListOption, { descendants: true },] }],
|
915
952
|
horizontal: [{ type: Input }],
|
916
953
|
tabIndex: [{ type: Input }],
|
917
|
-
selectionChange: [{ type: Output }]
|
954
|
+
selectionChange: [{ type: Output }],
|
955
|
+
compareWith: [{ type: Input }]
|
918
956
|
};
|
919
957
|
|
920
958
|
/**
|
package/esm2015/list.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"list.js","sources":["../../../packages/mosaic/list/list.module.ts","../../../packages/mosaic/list/list.component.ts","../../../packages/mosaic/list/list-selection.component.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { A11yModule } from '@ptsecurity/cdk/a11y';\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McListSelection, McListOption } from './list-selection.component';\nimport { McList, McListItem, McListSubheaderCssStyler } 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 McListSubheaderCssStyler\n ],\n declarations: [\n McList,\n McListSelection,\n McListItem,\n McListOption,\n McListSubheaderCssStyler\n ]\n})\nexport class McListModule {}\n","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\nimport {\n AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, Directive, ElementRef, QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\n\n\nexport class McListBase {}\n\n@Component({\n selector: 'mc-list',\n host: { class: 'mc-list' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McList extends McListBase {}\n\n\n/**\n * Directive whose purpose is to add the mc- CSS styling to this selector.\n * @docs-private\n */\n@Directive({\n selector: '[mc-subheader], [mcSubheader]',\n host: { class: 'mc-subheader' }\n})\nexport class McListSubheaderCssStyler {}\n\n\n// Boilerplate for applying mixins to McListItem.\nexport class McListItemBase {}\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 extends McListItemBase implements AfterContentInit {\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n private lineSetter: McLineSetter;\n\n constructor(private _element: ElementRef) {\n super();\n }\n\n ngAfterContentInit() {\n this.lineSetter = new McLineSetter(this.lines, this._element);\n }\n\n handleFocus() {\n this._element.nativeElement.classList.add('mc-focused');\n }\n\n handleBlur() {\n this._element.nativeElement.classList.remove('mc-focused');\n }\n\n getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n}\n","/* 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 '[attr.tabindex]': 'tabIndex',\n\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 '(focus)': '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 @Input() value: any;\n\n @Input()\n get disabled() {\n return (this.listSelection && this.listSelection.disabled) || (this.group && this.group.disabled) ||\n 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 if (this._selected) {\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 const wasSelected = this._selected;\n\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this.changeDetector.markForCheck();\n }\n });\n }\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\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: '<ng-content></ng-content>',\n styleUrls: ['./list.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n '[attr.tabindex]': 'tabIndex',\n\n class: 'mc-list-selection',\n\n '(focus)': 'focus()',\n '(blur)': 'blur()',\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 autoSelect: boolean;\n noUnselect: boolean;\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._tabIndex;\n }\n\n set tabIndex(value: any) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\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 // Used for storing the values that were assigned before the options were initialized.\n private tempValues: 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 private element: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string,\n @Attribute('auto-select') autoSelect: string,\n @Attribute('no-unselect') noUnselect: string,\n @Attribute('multiple') multiple: string\n ) {\n super();\n\n this.autoSelect = autoSelect === null ? true : toBoolean(autoSelect);\n this.noUnselect = noUnselect === null ? true : toBoolean(noUnselect);\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.noUnselect = false;\n }\n\n this._tabIndex = parseInt(tabIndex) || 0;\n\n this.selectionModel = new SelectionModel<McListOption>(this.multiple);\n }\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 = 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n if (this.tempValues) {\n this.setOptionsFromValues(this.tempValues);\n this.tempValues = null;\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 {\n if (this.autoSelect) {\n if (this.multipleMode !== MultipleMode.KEYBOARD) {\n this.selectionModel.toggle(option);\n }\n\n if (this.multipleMode === MultipleMode.KEYBOARD || !this.multiple) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n }\n }\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\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.noUnselect) { return; }\n\n renderedOption.setSelected(!selectedOptionState);\n });\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(values: string[]): void {\n if (this.options) {\n this.setOptionsFromValues(values || []);\n } else {\n this.tempValues = 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.noUnselect && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n return this.element.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 this.onChange(this.getSelectedOptionValues());\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.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"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"list.js","sources":["../../../packages/mosaic/list/list.module.ts","../../../packages/mosaic/list/list.component.ts","../../../packages/mosaic/list/list-selection.component.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { A11yModule } from '@ptsecurity/cdk/a11y';\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McListSelection, McListOption } from './list-selection.component';\nimport { McList, McListItem, McListSubheaderCssStyler } 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 McListSubheaderCssStyler\n ],\n declarations: [\n McList,\n McListSelection,\n McListItem,\n McListOption,\n McListSubheaderCssStyler\n ]\n})\nexport class McListModule {}\n","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\nimport {\n AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, Directive, ElementRef, QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\n\n\nexport class McListBase {}\n\n@Component({\n selector: 'mc-list',\n host: { class: 'mc-list' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McList extends McListBase {}\n\n\n/**\n * Directive whose purpose is to add the mc- CSS styling to this selector.\n * @docs-private\n */\n@Directive({\n selector: '[mc-subheader], [mcSubheader]',\n host: { class: 'mc-subheader' }\n})\nexport class McListSubheaderCssStyler {}\n\n\n// Boilerplate for applying mixins to McListItem.\nexport class McListItemBase {}\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 extends McListItemBase implements AfterContentInit {\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n private lineSetter: McLineSetter;\n\n constructor(private _element: ElementRef) {\n super();\n }\n\n ngAfterContentInit() {\n this.lineSetter = new McLineSetter(this.lines, this._element);\n }\n\n handleFocus() {\n this._element.nativeElement.classList.add('mc-focused');\n }\n\n handleBlur() {\n this._element.nativeElement.classList.remove('mc-focused');\n }\n\n getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n}\n","/* 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 '[attr.tabindex]': 'tabIndex',\n\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 '(focus)': '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 return (this.listSelection && this.listSelection.disabled) || (this.group && this.group.disabled) ||\n 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\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: '<ng-content></ng-content>',\n styleUrls: ['./list.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n '[attr.tabindex]': 'tabIndex',\n\n class: 'mc-list-selection',\n\n '(focus)': 'focus()',\n '(blur)': 'blur()',\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 autoSelect: boolean;\n noUnselect: boolean;\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._tabIndex;\n }\n\n set tabIndex(value: any) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\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 private element: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string,\n @Attribute('auto-select') autoSelect: string,\n @Attribute('no-unselect') noUnselect: string,\n @Attribute('multiple') multiple: string\n ) {\n super();\n\n this.autoSelect = autoSelect === null ? true : toBoolean(autoSelect);\n this.noUnselect = noUnselect === null ? true : toBoolean(noUnselect);\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.noUnselect = false;\n }\n\n this._tabIndex = parseInt(tabIndex) || 0;\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 = 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 {\n if (this.autoSelect) {\n if (this.multipleMode !== MultipleMode.KEYBOARD) {\n this.selectionModel.toggle(option);\n }\n\n if (this.multipleMode === MultipleMode.KEYBOARD || !this.multiple) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n }\n }\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\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.noUnselect) { 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.noUnselect && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n return this.element.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.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"],"names":[],"mappings":"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"}
|
package/esm2015/mosaic.js
CHANGED
@@ -34,7 +34,7 @@ export { MC_TEXTAREA_VALUE_ACCESSOR, McTextarea, McTextareaBase, McTextareaMixin
|
|
34
34
|
export { ARROW_DOWN_KEYCODE, ARROW_LEFT_KEYCODE, ARROW_RIGHT_KEYCODE, ARROW_UP_KEYCODE, DEFAULT_TIME_FORMAT, HOURS_MINUTES_REGEXP, HOURS_MINUTES_SECONDS_REGEXP, HOURS_ONLY_REGEXP, HOURS_PER_DAY, MINUTES_PER_HOUR, McTimepicker, McTimepickerBase, McTimepickerMixinBase, McTimepickerModule, SECONDS_PER_MINUTE, TIMEFORMAT_PLACEHOLDERS, TimeFormats, TimeParts } from '@ptsecurity/mosaic/timepicker';
|
35
35
|
export { McSidebar, McSidebarClosed, McSidebarModule, McSidebarOpened, SidebarPositions, ɵa2 } from '@ptsecurity/mosaic/sidebar';
|
36
36
|
export { MC_SIDEPANEL_DATA, MC_SIDEPANEL_DEFAULT_OPTIONS, MC_SIDEPANEL_WITH_INDENT, MC_SIDEPANEL_WITH_SHADOW, McSidepanelConfig, McSidepanelContainerComponent, McSidepanelModule, McSidepanelPosition, McSidepanelRef, McSidepanelService, ɵa20, ɵb20, ɵc20, ɵd20, ɵe20, ɵf20, ɵg20 } from '@ptsecurity/mosaic/sidepanel';
|
37
|
-
export { McGutterDirective, McSplitterAreaDirective, McSplitterComponent, McSplitterModule } from '@ptsecurity/mosaic/splitter';
|
37
|
+
export { Direction, McGutterDirective, McSplitterAreaDirective, McSplitterComponent, McSplitterModule } from '@ptsecurity/mosaic/splitter';
|
38
38
|
export { McToggleBase, McToggleChange, McToggleComponent, McToggleMixinBase, McToggleModule } from '@ptsecurity/mosaic/toggle';
|
39
39
|
export { MC_TOOLTIP_SCROLL_STRATEGY, MC_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, McToolTipModule, McTooltip, McTooltipComponent, getMcTooltipInvalidPositionError, mcTooltipScrollStrategyFactory } from '@ptsecurity/mosaic/tooltip';
|
40
40
|
export { McVerticalNavbar, McVerticalNavbarHeader, McVerticalNavbarItem, McVerticalNavbarItemBadge, McVerticalNavbarItemIcon, McVerticalNavbarMixinBase, McVerticalNavbarModule, McVerticalNavbarTitle, ɵa22 } from '@ptsecurity/mosaic/vertical-navbar';
|
@@ -47,7 +47,7 @@ export { McVerticalNavbar, McVerticalNavbarHeader, McVerticalNavbarItem, McVerti
|
|
47
47
|
* Current version.
|
48
48
|
* @type {?}
|
49
49
|
*/
|
50
|
-
const VERSION = new Version('8.5.
|
50
|
+
const VERSION = new Version('8.5.7');
|
51
51
|
|
52
52
|
export { VERSION };
|
53
53
|
//# sourceMappingURL=mosaic.js.map
|
package/esm2015/mosaic.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mosaic.js","sources":["../../packages/mosaic/version.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\n\n/** Current version. */\nexport const VERSION = new Version('8.5.
|
1
|
+
{"version":3,"file":"mosaic.js","sources":["../../packages/mosaic/version.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\n\n/** Current version. */\nexport const VERSION = new Version('8.5.7');\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
|
package/esm2015/select.js
CHANGED
@@ -16,7 +16,7 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
16
16
|
import { SelectionModel } from '@angular/cdk/collections';
|
17
17
|
import { NG_VALIDATORS, NgForm, FormGroupDirective, NgControl, NgModel, FormControlName } from '@angular/forms';
|
18
18
|
import { ActiveDescendantKeyManager } from '@ptsecurity/cdk/a11y';
|
19
|
-
import { ESCAPE, HOME, END, PAGE_UP, PAGE_DOWN, ENTER,
|
19
|
+
import { ESCAPE, SPACE, HOME, END, PAGE_UP, PAGE_DOWN, ENTER, A, DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW } from '@ptsecurity/cdk/keycodes';
|
20
20
|
import { McInput } from '@ptsecurity/mosaic/input';
|
21
21
|
import { Subscription, Subject, defer, merge } from 'rxjs';
|
22
22
|
import { take, switchMap, filter, map, distinctUntilChanged, takeUntil, startWith } from 'rxjs/operators';
|
@@ -90,11 +90,16 @@ class McSelectSearch {
|
|
90
90
|
if (!this.input.ngControl) {
|
91
91
|
throw Error('McSelectSearch does not work without ngControl');
|
92
92
|
}
|
93
|
-
|
93
|
+
Promise.resolve().then((/**
|
94
94
|
* @return {?}
|
95
95
|
*/
|
96
96
|
() => {
|
97
|
-
this.
|
97
|
+
this.searchChangesSubscription = (/** @type {?} */ (this.input.ngControl.valueChanges)).subscribe((/**
|
98
|
+
* @return {?}
|
99
|
+
*/
|
100
|
+
() => {
|
101
|
+
this.isSearchChanged = true;
|
102
|
+
}));
|
98
103
|
}));
|
99
104
|
}
|
100
105
|
/**
|
@@ -115,6 +120,14 @@ class McSelectSearch {
|
|
115
120
|
event.stopPropagation();
|
116
121
|
}
|
117
122
|
}
|
123
|
+
// tslint:disable-next-line:deprecation
|
124
|
+
if ([SPACE, HOME, END].some((/**
|
125
|
+
* @param {?} keyCode
|
126
|
+
* @return {?}
|
127
|
+
*/
|
128
|
+
(keyCode) => keyCode === event.keyCode))) {
|
129
|
+
event.stopPropagation();
|
130
|
+
}
|
118
131
|
}
|
119
132
|
}
|
120
133
|
McSelectSearch.decorators = [
|
@@ -758,13 +771,14 @@ class McSelect extends McSelectMixinBase {
|
|
758
771
|
* @return {?}
|
759
772
|
*/
|
760
773
|
handleKeydown(event) {
|
761
|
-
if (
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
774
|
+
if (this.disabled) {
|
775
|
+
return;
|
776
|
+
}
|
777
|
+
if (this.panelOpen) {
|
778
|
+
this.handleOpenKeydown(event);
|
779
|
+
}
|
780
|
+
else {
|
781
|
+
this.handleClosedKeydown(event);
|
768
782
|
}
|
769
783
|
}
|
770
784
|
/**
|
@@ -1059,6 +1073,9 @@ class McSelect extends McSelectMixinBase {
|
|
1059
1073
|
manager.activeItemIndex !== previouslyFocusedIndex) {
|
1060
1074
|
manager.activeItem.selectViaInteraction();
|
1061
1075
|
}
|
1076
|
+
if (this.search) {
|
1077
|
+
this.search.focus();
|
1078
|
+
}
|
1062
1079
|
}
|
1063
1080
|
}
|
1064
1081
|
/**
|
@@ -1206,7 +1223,7 @@ class McSelect extends McSelectMixinBase {
|
|
1206
1223
|
Promise.resolve().then((/**
|
1207
1224
|
* @return {?}
|
1208
1225
|
*/
|
1209
|
-
() => this.keyManager.
|
1226
|
+
() => this.keyManager.updateActiveItem(0)));
|
1210
1227
|
this.search.isSearchChanged = false;
|
1211
1228
|
}
|
1212
1229
|
if (event.isUserInput && !this.multiple && this._panelOpen) {
|