@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.
Files changed (61) hide show
  1. package/bundles/mosaic-list.umd.js +68 -26
  2. package/bundles/mosaic-list.umd.js.map +1 -1
  3. package/bundles/mosaic-list.umd.min.js +1 -1
  4. package/bundles/mosaic-list.umd.min.js.map +1 -1
  5. package/bundles/mosaic-select.umd.js +27 -10
  6. package/bundles/mosaic-select.umd.js.map +1 -1
  7. package/bundles/mosaic-select.umd.min.js +1 -1
  8. package/bundles/mosaic-select.umd.min.js.map +1 -1
  9. package/bundles/mosaic-splitter.umd.js +12 -6
  10. package/bundles/mosaic-splitter.umd.js.map +1 -1
  11. package/bundles/mosaic-splitter.umd.min.js +1 -1
  12. package/bundles/mosaic-splitter.umd.min.js.map +1 -1
  13. package/bundles/mosaic-toggle.umd.js +4 -5
  14. package/bundles/mosaic-toggle.umd.js.map +1 -1
  15. package/bundles/mosaic-toggle.umd.min.js +1 -1
  16. package/bundles/mosaic-toggle.umd.min.js.map +1 -1
  17. package/bundles/mosaic.umd.js +112 -48
  18. package/bundles/mosaic.umd.js.map +1 -1
  19. package/bundles/mosaic.umd.min.js +9 -9
  20. package/bundles/mosaic.umd.min.js.map +1 -1
  21. package/esm2015/list.js +64 -26
  22. package/esm2015/list.js.map +1 -1
  23. package/esm2015/mosaic.js +2 -2
  24. package/esm2015/mosaic.js.map +1 -1
  25. package/esm2015/select.js +28 -11
  26. package/esm2015/select.js.map +1 -1
  27. package/esm2015/splitter.js +12 -7
  28. package/esm2015/splitter.js.map +1 -1
  29. package/esm2015/toggle.js +4 -5
  30. package/esm2015/toggle.js.map +1 -1
  31. package/esm5/list.es5.js +68 -26
  32. package/esm5/list.es5.js.map +1 -1
  33. package/esm5/mosaic.es5.js +2 -2
  34. package/esm5/mosaic.es5.js.map +1 -1
  35. package/esm5/select.es5.js +28 -11
  36. package/esm5/select.es5.js.map +1 -1
  37. package/esm5/splitter.es5.js +12 -7
  38. package/esm5/splitter.es5.js.map +1 -1
  39. package/esm5/toggle.es5.js +4 -5
  40. package/esm5/toggle.es5.js.map +1 -1
  41. package/list/typings/index.metadata.json +1 -1
  42. package/list/typings/list-selection.component.d.ts +13 -1
  43. package/package.json +3 -3
  44. package/select/typings/index.metadata.json +1 -1
  45. package/splitter/typings/splitter.component.d.ts +1 -1
  46. package/toggle/typings/index.metadata.json +1 -1
  47. package/toggle/typings/toggle.component.d.ts +1 -1
  48. package/typings/esm5/index.metadata.json +1 -1
  49. package/typings/esm5/list/index.metadata.json +1 -1
  50. package/typings/esm5/list/list-selection.component.d.ts +13 -1
  51. package/typings/esm5/select/index.metadata.json +1 -1
  52. package/typings/esm5/splitter/splitter.component.d.ts +1 -1
  53. package/typings/esm5/toggle/index.metadata.json +1 -1
  54. package/typings/esm5/toggle/toggle.component.d.ts +1 -1
  55. package/typings/index.metadata.json +1 -1
  56. package/typings/list/index.metadata.json +1 -1
  57. package/typings/list/list-selection.component.d.ts +13 -1
  58. package/typings/select/index.metadata.json +1 -1
  59. package/typings/splitter/splitter.component.d.ts +1 -1
  60. package/typings/toggle/index.metadata.json +1 -1
  61. package/typings/toggle/toggle.component.d.ts +1 -1
package/esm2015/toggle.js CHANGED
@@ -127,8 +127,10 @@ class McToggleComponent extends McToggleMixinBase {
127
127
  * @param {?} event
128
128
  * @return {?}
129
129
  */
130
- onInteractionEvent(event) {
130
+ onChangeEvent(event) {
131
131
  event.stopPropagation();
132
+ this.updateModelValue();
133
+ this.emitChangeEvent();
132
134
  }
133
135
  /**
134
136
  * @return {?}
@@ -142,8 +144,6 @@ class McToggleComponent extends McToggleMixinBase {
142
144
  */
143
145
  onInputClick(event) {
144
146
  event.stopPropagation();
145
- this.updateModelValue();
146
- this.emitChangeEvent();
147
147
  }
148
148
  /**
149
149
  * @param {?} value
@@ -179,7 +179,6 @@ class McToggleComponent extends McToggleMixinBase {
179
179
  */
180
180
  updateModelValue() {
181
181
  this._checked = !this.checked;
182
- this.onChangeCallback(this.checked);
183
182
  this.onTouchedCallback();
184
183
  }
185
184
  /**
@@ -199,7 +198,7 @@ McToggleComponent.decorators = [
199
198
  { type: Component, args: [{
200
199
  selector: 'mc-toggle',
201
200
  exportAs: 'mcToggle',
202
- template: "<label [attr.for]=\"inputId\" class=\"mc-toggle-layout\" #label><div class=\"mc-toggle__container\" [class.left]=\"labelPosition === 'left'\"><input #input type=\"checkbox\" class=\"mc-toggle-input cdk-visually-hidden\" [id]=\"inputId\" [checked]=\"checked\" [attr.value]=\"value\" [disabled]=\"disabled\" [attr.name]=\"name\" [tabIndex]=\"tabIndex\" [attr.aria-label]=\"ariaLabel || null\" [attr.aria-labelledby]=\"ariaLabelledby\" [attr.aria-checked]=\"getAriaChecked()\" (click)=\"onInputClick($event)\" (change)=\"onInteractionEvent($event)\"><div class=\"mc-toggle-bar-container\"><div class=\"mc-toggle__focus-frame\"></div><div class=\"mc-toggle-bar\"><div class=\"mc-toggle__circle\" [@switch]=\"checked\"></div></div></div><div class=\"mc-toggle__content\" [class.left]=\"labelPosition === 'left'\" [class.right]=\"labelPosition === 'right'\"><span class=\"mc-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\"><ng-content></ng-content></span></div></div></label>",
201
+ template: "<label [attr.for]=\"inputId\" class=\"mc-toggle-layout\"><div class=\"mc-toggle__container\" [class.left]=\"labelPosition === 'left'\"><input #input type=\"checkbox\" role=\"switch\" class=\"mc-toggle-input cdk-visually-hidden\" [id]=\"inputId\" [checked]=\"checked\" [attr.value]=\"value\" [disabled]=\"disabled\" [attr.name]=\"name\" [tabIndex]=\"tabIndex\" [attr.aria-label]=\"ariaLabel || null\" [attr.aria-labelledby]=\"ariaLabelledby\" [attr.aria-checked]=\"getAriaChecked()\" (click)=\"onInputClick($event)\" (change)=\"onChangeEvent($event)\"><div class=\"mc-toggle-bar-container\"><div class=\"mc-toggle__focus-frame\"></div><div class=\"mc-toggle-bar\"><div class=\"mc-toggle__circle\" [@switch]=\"checked\"></div></div></div><div class=\"mc-toggle__content\" [class.left]=\"labelPosition === 'left'\" [class.right]=\"labelPosition === 'right'\"><span class=\"mc-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\"><ng-content></ng-content></span></div></div></label>",
203
202
  styles: [".mc-toggle{display:inline-block}.mc-toggle .mc-toggle-layout{cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mc-toggle .mc-toggle-bar{position:relative;border-width:1px;border-style:solid}.mc-toggle .mc-toggle-bar.mc-toggle-label-position-left{order:1}.mc-toggle .mc-toggle-bar-container{position:relative}.mc-toggle__container{display:flex;align-items:center;position:relative}.mc-toggle__container.left{flex-direction:row-reverse}.mc-toggle__content.left{margin-right:8px}.mc-toggle__content.right{margin-left:8px}.mc-toggle__circle{position:absolute;border-width:1px;border-style:solid;border-radius:100%;margin-top:-1px;margin-left:-1px;transform:translateX(-1px)}.mc-toggle__focus-frame{position:absolute;top:0;left:0;z-index:1}.mc-toggle:not(.mc-toggle_small) .mc-toggle-bar{height:16px;width:28px;border-radius:9px}.mc-toggle:not(.mc-toggle_small) .mc-toggle__focus-frame{border-radius:9px;height:16px;width:28px}.mc-toggle:not(.mc-toggle_small) .mc-toggle__circle{height:16px;width:16px}.mc-toggle.mc-toggle_small .mc-toggle-bar{height:14px;width:24px;border-radius:8px}.mc-toggle.mc-toggle_small .mc-toggle__focus-frame{border-radius:8px;height:14px;width:24px}.mc-toggle.mc-toggle_small .mc-toggle__circle{height:14px;width:14px}.mc-toggle:not(.mc-disabled){cursor:pointer}"],
204
203
  providers: [
205
204
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/**
@@ -1 +1 @@
1
- {"version":3,"file":"toggle.js","sources":["../../../packages/mosaic/toggle/toggle.module.ts","../../../packages/mosaic/toggle/toggle.component.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { A11yModule } from '@ptsecurity/cdk/a11y';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\n\nimport { McToggleComponent } from './toggle.component';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, McCommonModule],\n exports: [McToggleComponent],\n declarations: [McToggleComponent]\n})\nexport class McToggleModule {\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n Attribute,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n ElementRef, EventEmitter, forwardRef,\n Input, Output, ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusMonitor } from '@ptsecurity/cdk/a11y';\nimport {\n ThemePalette,\n CanColor, CanColorCtor,\n CanDisable, CanDisableCtor,\n HasTabIndex, HasTabIndexCtor,\n mixinColor,\n mixinDisabled,\n mixinTabIndex\n} from '@ptsecurity/mosaic/core';\n\n\nlet nextUniqueId = 0;\n\ntype ToggleLabelPositionType = 'left' | 'right';\n\nexport class McToggleBase {\n // tslint:disable-next-line: naming-convention\n constructor(public _elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line: naming-convention\nexport const McToggleMixinBase:\n HasTabIndexCtor &\n CanDisableCtor &\n CanColorCtor &\n typeof McToggleBase = mixinTabIndex(mixinColor(mixinDisabled(McToggleBase), ThemePalette.Primary));\n\nexport class McToggleChange {\n source: McToggleComponent;\n checked: boolean;\n}\n\n@Component({\n selector: 'mc-toggle',\n exportAs: 'mcToggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.css'],\n providers: [\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => McToggleComponent), multi: true}\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled', 'color', 'tabIndex'],\n host: {\n class: 'mc-toggle',\n '[id]': 'id',\n '[attr.id]': 'id',\n '[class.mc-disabled]': 'disabled',\n '[class.mc-toggle_off]': '!checked'\n },\n animations: [\n trigger('switch', [\n state('true' , style({ left: '50%' })),\n state('false', style({ left: '1px' })),\n transition('true <=> false', animate('150ms'))\n ])\n ]\n})\nexport class McToggleComponent extends McToggleMixinBase\n implements ControlValueAccessor, CanColor, CanDisable, HasTabIndex {\n\n @ViewChild('input', {static: false}) inputElement: ElementRef;\n\n @Input() labelPosition: ToggleLabelPositionType = 'right';\n\n @Input('aria-label') ariaLabel: string = '';\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n @Input() id: string;\n\n get inputId(): string {\n return `${this.id || this.uniqueId}-input`;\n }\n\n @Input() name: string | null = null;\n\n @Input() value: string;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n if (value !== this._disabled) {\n this._disabled = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n get checked() {\n return this._checked;\n }\n\n @Input()\n set checked(value: boolean) {\n if (value !== this._checked) {\n this._checked = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n @Output() readonly change: EventEmitter<McToggleChange> =\n new EventEmitter<McToggleChange>();\n\n private uniqueId: string = `mc-toggle-${++nextUniqueId}`;\n\n // tslint:disable-next-line:naming-convention\n constructor(public _elementRef: ElementRef,\n private _focusMonitor: FocusMonitor,\n private _changeDetectorRef: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string\n ) {\n super(_elementRef);\n\n this.id = this.uniqueId;\n\n this.tabIndex = parseInt(tabIndex) || 0;\n\n this._focusMonitor.monitor(this._elementRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n\n focus(): void {\n this._focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\n }\n\n getAriaChecked(): boolean {\n return this.checked;\n }\n\n onInteractionEvent(event: Event) {\n event.stopPropagation();\n }\n\n onLabelTextChange() {\n this._changeDetectorRef.markForCheck();\n }\n\n onInputClick(event: MouseEvent) {\n event.stopPropagation();\n this.updateModelValue();\n this.emitChangeEvent();\n }\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n // tslint:disable-next-line:no-empty\n private onTouchedCallback = () => {};\n\n // tslint:disable-next-line:no-empty\n private onChangeCallback = (_: any) => {};\n\n private updateModelValue() {\n this._checked = !this.checked;\n this.onChangeCallback(this.checked);\n this.onTouchedCallback();\n }\n\n private emitChangeEvent() {\n const event = new McToggleChange();\n event.source = this;\n event.checked = this.checked;\n\n this.onChangeCallback(this.checked);\n this.change.emit(event);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toggle.js","sources":["../../../packages/mosaic/toggle/toggle.module.ts","../../../packages/mosaic/toggle/toggle.component.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { A11yModule } from '@ptsecurity/cdk/a11y';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\n\nimport { McToggleComponent } from './toggle.component';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, McCommonModule],\n exports: [McToggleComponent],\n declarations: [McToggleComponent]\n})\nexport class McToggleModule {\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n Attribute,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n ElementRef, EventEmitter, forwardRef,\n Input, Output, ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusMonitor } from '@ptsecurity/cdk/a11y';\nimport {\n ThemePalette,\n CanColor, CanColorCtor,\n CanDisable, CanDisableCtor,\n HasTabIndex, HasTabIndexCtor,\n mixinColor,\n mixinDisabled,\n mixinTabIndex\n} from '@ptsecurity/mosaic/core';\n\n\nlet nextUniqueId = 0;\n\ntype ToggleLabelPositionType = 'left' | 'right';\n\nexport class McToggleBase {\n // tslint:disable-next-line: naming-convention\n constructor(public _elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line: naming-convention\nexport const McToggleMixinBase:\n HasTabIndexCtor &\n CanDisableCtor &\n CanColorCtor &\n typeof McToggleBase = mixinTabIndex(mixinColor(mixinDisabled(McToggleBase), ThemePalette.Primary));\n\nexport class McToggleChange {\n source: McToggleComponent;\n checked: boolean;\n}\n\n@Component({\n selector: 'mc-toggle',\n exportAs: 'mcToggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.css'],\n providers: [\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => McToggleComponent), multi: true}\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled', 'color', 'tabIndex'],\n host: {\n class: 'mc-toggle',\n '[id]': 'id',\n '[attr.id]': 'id',\n '[class.mc-disabled]': 'disabled',\n '[class.mc-toggle_off]': '!checked'\n },\n animations: [\n trigger('switch', [\n state('true' , style({ left: '50%' })),\n state('false', style({ left: '1px' })),\n transition('true <=> false', animate('150ms'))\n ])\n ]\n})\nexport class McToggleComponent extends McToggleMixinBase\n implements ControlValueAccessor, CanColor, CanDisable, HasTabIndex {\n\n @ViewChild('input', {static: false}) inputElement: ElementRef;\n\n @Input() labelPosition: ToggleLabelPositionType = 'right';\n\n @Input('aria-label') ariaLabel: string = '';\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n @Input() id: string;\n\n get inputId(): string {\n return `${this.id || this.uniqueId}-input`;\n }\n\n @Input() name: string | null = null;\n\n @Input() value: string;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n if (value !== this._disabled) {\n this._disabled = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n get checked() {\n return this._checked;\n }\n\n @Input()\n set checked(value: boolean) {\n if (value !== this._checked) {\n this._checked = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n @Output() readonly change: EventEmitter<McToggleChange> =\n new EventEmitter<McToggleChange>();\n\n private uniqueId: string = `mc-toggle-${++nextUniqueId}`;\n\n // tslint:disable-next-line:naming-convention\n constructor(public _elementRef: ElementRef,\n private _focusMonitor: FocusMonitor,\n private _changeDetectorRef: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string\n ) {\n super(_elementRef);\n\n this.id = this.uniqueId;\n\n this.tabIndex = parseInt(tabIndex) || 0;\n\n this._focusMonitor.monitor(this._elementRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n\n focus(): void {\n this._focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\n }\n\n getAriaChecked(): boolean {\n return this.checked;\n }\n\n onChangeEvent(event: Event) {\n event.stopPropagation();\n\n this.updateModelValue();\n this.emitChangeEvent();\n }\n\n onLabelTextChange() {\n this._changeDetectorRef.markForCheck();\n }\n\n onInputClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n // tslint:disable-next-line:no-empty\n private onTouchedCallback = () => {};\n\n // tslint:disable-next-line:no-empty\n private onChangeCallback = (_: any) => {};\n\n private updateModelValue() {\n this._checked = !this.checked;\n this.onTouchedCallback();\n }\n\n private emitChangeEvent() {\n const event = new McToggleChange();\n event.source = this;\n event.checked = this.checked;\n\n this.onChangeCallback(this.checked);\n this.change.emit(event);\n }\n}\n"],"names":[],"mappings":"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"}
package/esm5/list.es5.js CHANGED
@@ -35,9 +35,32 @@ var McListOption = /** @class */ (function () {
35
35
  this.hasFocus = false;
36
36
  this.onFocus = new Subject();
37
37
  this.onBlur = new Subject();
38
+ /**
39
+ * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`
40
+ * in the first cycle.
41
+ */
42
+ this.inputsInitialized = false;
38
43
  this._disabled = false;
39
44
  this._selected = false;
40
45
  }
46
+ Object.defineProperty(McListOption.prototype, "value", {
47
+ get: /**
48
+ * @return {?}
49
+ */
50
+ function () { return this._value; },
51
+ set: /**
52
+ * @param {?} newValue
53
+ * @return {?}
54
+ */
55
+ function (newValue) {
56
+ if (this.selected && newValue !== this.value && this.inputsInitialized) {
57
+ this.selected = false;
58
+ }
59
+ this._value = newValue;
60
+ },
61
+ enumerable: true,
62
+ configurable: true
63
+ });
41
64
  Object.defineProperty(McListOption.prototype, "disabled", {
42
65
  get: /**
43
66
  * @return {?}
@@ -118,24 +141,32 @@ var McListOption = /** @class */ (function () {
118
141
  */
119
142
  function () {
120
143
  var _this = this;
121
- if (this._selected) {
122
- // List options that are selected at initialization can't be reported properly to the form
123
- // control. This is because it takes some time until the selection-list knows about all
124
- // available options. Also it can happen that the ControlValueAccessor has an initial value
125
- // that should be used instead. Deferring the value change report to the next tick ensures
126
- // that the form control value is not being overwritten.
127
- /** @type {?} */
128
- var wasSelected_1 = this._selected;
129
- Promise.resolve().then((/**
130
- * @return {?}
131
- */
132
- function () {
133
- if (_this._selected || wasSelected_1) {
134
- _this.selected = true;
135
- _this.changeDetector.markForCheck();
136
- }
137
- }));
144
+ /** @type {?} */
145
+ var list = this.listSelection;
146
+ if (list._value && list._value.some((/**
147
+ * @param {?} value
148
+ * @return {?}
149
+ */
150
+ function (value) { return list.compareWith(value, _this._value); }))) {
151
+ this.setSelected(true);
138
152
  }
153
+ /** @type {?} */
154
+ var wasSelected = this._selected;
155
+ // List options that are selected at initialization can't be reported properly to the form
156
+ // control. This is because it takes some time until the selection-list knows about all
157
+ // available options. Also it can happen that the ControlValueAccessor has an initial value
158
+ // that should be used instead. Deferring the value change report to the next tick ensures
159
+ // that the form control value is not being overwritten.
160
+ Promise.resolve().then((/**
161
+ * @return {?}
162
+ */
163
+ function () {
164
+ if (_this._selected || wasSelected) {
165
+ _this.selected = true;
166
+ _this.changeDetector.markForCheck();
167
+ }
168
+ }));
169
+ this.inputsInitialized = true;
139
170
  };
140
171
  /**
141
172
  * @return {?}
@@ -354,6 +385,17 @@ var McListSelection = /** @class */ (function (_super) {
354
385
  * Emits whenever the component is destroyed.
355
386
  */
356
387
  _this.destroyed = new Subject();
388
+ /**
389
+ * Function used for comparing an option against the selected value when determining which
390
+ * options should appear as selected. The first argument is the value of an options. The second
391
+ * one is a value from the selected value. A boolean must be returned.
392
+ */
393
+ _this.compareWith = (/**
394
+ * @param {?} a1
395
+ * @param {?} a2
396
+ * @return {?}
397
+ */
398
+ function (a1, a2) { return a1 === a2; });
357
399
  // View to model callback that should be called if the list or its options lost focus.
358
400
  // tslint:disable-next-line:no-empty
359
401
  _this.onTouched = (/**
@@ -375,7 +417,6 @@ var McListSelection = /** @class */ (function (_super) {
375
417
  _this.multipleMode = MultipleMode.CHECKBOX;
376
418
  }
377
419
  if (_this.multipleMode === MultipleMode.CHECKBOX) {
378
- _this.autoSelect = false;
379
420
  _this.noUnselect = false;
380
421
  }
381
422
  _this._tabIndex = parseInt(tabIndex) || 0;
@@ -475,9 +516,8 @@ var McListSelection = /** @class */ (function (_super) {
475
516
  _this.changeDetectorRef.markForCheck();
476
517
  }));
477
518
  }));
478
- if (this.tempValues) {
479
- this.setOptionsFromValues(this.tempValues);
480
- this.tempValues = null;
519
+ if (this._value) {
520
+ this.setOptionsFromValues(this._value);
481
521
  }
482
522
  this.selectionModel.changed
483
523
  .pipe(takeUntil(this.destroyed))
@@ -713,12 +753,10 @@ var McListSelection = /** @class */ (function (_super) {
713
753
  * @return {?}
714
754
  */
715
755
  function (values) {
756
+ this._value = values;
716
757
  if (this.options) {
717
758
  this.setOptionsFromValues(values || []);
718
759
  }
719
- else {
720
- this.tempValues = values;
721
- }
722
760
  };
723
761
  // Implemented as part of ControlValueAccessor.
724
762
  // Implemented as part of ControlValueAccessor.
@@ -912,7 +950,10 @@ var McListSelection = /** @class */ (function (_super) {
912
950
  */
913
951
  function () {
914
952
  if (this.options) {
915
- this.onChange(this.getSelectedOptionValues());
953
+ /** @type {?} */
954
+ var value = this.getSelectedOptionValues();
955
+ this.onChange(value);
956
+ this._value = value;
916
957
  }
917
958
  };
918
959
  // Emits a change event if the selected state of an option changed.
@@ -1143,7 +1184,8 @@ var McListSelection = /** @class */ (function (_super) {
1143
1184
  options: [{ type: ContentChildren, args: [McListOption, { descendants: true },] }],
1144
1185
  horizontal: [{ type: Input }],
1145
1186
  tabIndex: [{ type: Input }],
1146
- selectionChange: [{ type: Output }]
1187
+ selectionChange: [{ type: Output }],
1188
+ compareWith: [{ type: Input }]
1147
1189
  };
1148
1190
  return McListSelection;
1149
1191
  }(McListSelectionMixinBase));
@@ -1 +1 @@
1
- {"version":3,"file":"list.es5.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":["tslib_1.__extends"],"mappings":"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"}
1
+ {"version":3,"file":"list.es5.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":["tslib_1.__extends"],"mappings":"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"}
@@ -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
- var VERSION = new Version('8.5.3');
50
+ var VERSION = new Version('8.5.7');
51
51
 
52
52
  export { VERSION };
53
53
  //# sourceMappingURL=mosaic.es5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mosaic.es5.js","sources":["../../packages/mosaic/version.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\n\n/** Current version. */\nexport const VERSION = new Version('8.5.3');\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
1
+ {"version":3,"file":"mosaic.es5.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,IAAa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
@@ -17,7 +17,7 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
17
17
  import { SelectionModel } from '@angular/cdk/collections';
18
18
  import { NG_VALIDATORS, NgForm, FormGroupDirective, NgControl, NgModel, FormControlName } from '@angular/forms';
19
19
  import { ActiveDescendantKeyManager } from '@ptsecurity/cdk/a11y';
20
- import { ESCAPE, HOME, END, PAGE_UP, PAGE_DOWN, ENTER, SPACE, A, DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW } from '@ptsecurity/cdk/keycodes';
20
+ import { ESCAPE, SPACE, HOME, END, PAGE_UP, PAGE_DOWN, ENTER, A, DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW } from '@ptsecurity/cdk/keycodes';
21
21
  import { McInput } from '@ptsecurity/mosaic/input';
22
22
  import { Subject, defer, merge, Subscription } from 'rxjs';
23
23
  import { take, switchMap, filter, map, distinctUntilChanged, takeUntil, startWith } from 'rxjs/operators';
@@ -92,11 +92,16 @@ var McSelectSearch = /** @class */ (function () {
92
92
  if (!this.input.ngControl) {
93
93
  throw Error('McSelectSearch does not work without ngControl');
94
94
  }
95
- this.searchChangesSubscription = (/** @type {?} */ (this.input.ngControl.valueChanges)).subscribe((/**
95
+ Promise.resolve().then((/**
96
96
  * @return {?}
97
97
  */
98
98
  function () {
99
- _this.isSearchChanged = true;
99
+ _this.searchChangesSubscription = (/** @type {?} */ (_this.input.ngControl.valueChanges)).subscribe((/**
100
+ * @return {?}
101
+ */
102
+ function () {
103
+ _this.isSearchChanged = true;
104
+ }));
100
105
  }));
101
106
  };
102
107
  /**
@@ -124,6 +129,14 @@ var McSelectSearch = /** @class */ (function () {
124
129
  event.stopPropagation();
125
130
  }
126
131
  }
132
+ // tslint:disable-next-line:deprecation
133
+ if ([SPACE, HOME, END].some((/**
134
+ * @param {?} keyCode
135
+ * @return {?}
136
+ */
137
+ function (keyCode) { return keyCode === event.keyCode; }))) {
138
+ event.stopPropagation();
139
+ }
127
140
  };
128
141
  McSelectSearch.decorators = [
129
142
  { type: Directive, args: [{
@@ -937,13 +950,14 @@ var McSelect = /** @class */ (function (_super) {
937
950
  * @return {?}
938
951
  */
939
952
  function (event) {
940
- if (!this.disabled) {
941
- if (this.panelOpen) {
942
- this.handleOpenKeydown(event);
943
- }
944
- else {
945
- this.handleClosedKeydown(event);
946
- }
953
+ if (this.disabled) {
954
+ return;
955
+ }
956
+ if (this.panelOpen) {
957
+ this.handleOpenKeydown(event);
958
+ }
959
+ else {
960
+ this.handleClosedKeydown(event);
947
961
  }
948
962
  };
949
963
  /**
@@ -1332,6 +1346,9 @@ var McSelect = /** @class */ (function (_super) {
1332
1346
  manager.activeItemIndex !== previouslyFocusedIndex) {
1333
1347
  manager.activeItem.selectViaInteraction();
1334
1348
  }
1349
+ if (this.search) {
1350
+ this.search.focus();
1351
+ }
1335
1352
  }
1336
1353
  };
1337
1354
  /**
@@ -1523,7 +1540,7 @@ var McSelect = /** @class */ (function (_super) {
1523
1540
  Promise.resolve().then((/**
1524
1541
  * @return {?}
1525
1542
  */
1526
- function () { return _this.keyManager.setFirstItemActive(); }));
1543
+ function () { return _this.keyManager.updateActiveItem(0); }));
1527
1544
  _this.search.isSearchChanged = false;
1528
1545
  }
1529
1546
  if (event.isUserInput && !_this.multiple && _this._panelOpen) {