@progress/kendo-angular-inputs 8.0.0-dev.202201101634 → 8.0.0-dev.202201121416

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 (28) hide show
  1. package/dist/cdn/js/kendo-angular-inputs.js +1 -1
  2. package/dist/cdn/main.js +1 -1
  3. package/dist/es/colorpicker/color-gradient.component.js +3 -0
  4. package/dist/es/colorpicker/color-palette.component.js +6 -3
  5. package/dist/es/colorpicker/colorpicker.component.js +188 -48
  6. package/dist/es/colorpicker/flatcolorpicker.component.js +7 -4
  7. package/dist/es/package-metadata.js +1 -1
  8. package/dist/es/radiobutton/radiobutton.directive.js +3 -0
  9. package/dist/es2015/colorpicker/color-gradient.component.js +3 -0
  10. package/dist/es2015/colorpicker/color-palette.component.d.ts +1 -1
  11. package/dist/es2015/colorpicker/color-palette.component.js +6 -3
  12. package/dist/es2015/colorpicker/colorpicker.component.d.ts +18 -6
  13. package/dist/es2015/colorpicker/colorpicker.component.js +167 -69
  14. package/dist/es2015/colorpicker/flatcolorpicker.component.d.ts +2 -2
  15. package/dist/es2015/colorpicker/flatcolorpicker.component.js +7 -4
  16. package/dist/es2015/index.metadata.json +1 -1
  17. package/dist/es2015/package-metadata.js +1 -1
  18. package/dist/es2015/radiobutton/radiobutton.directive.js +3 -0
  19. package/dist/fesm2015/index.js +204 -104
  20. package/dist/fesm5/index.js +228 -86
  21. package/dist/npm/colorpicker/color-gradient.component.js +3 -0
  22. package/dist/npm/colorpicker/color-palette.component.js +6 -3
  23. package/dist/npm/colorpicker/colorpicker.component.js +187 -47
  24. package/dist/npm/colorpicker/flatcolorpicker.component.js +7 -4
  25. package/dist/npm/package-metadata.js +1 -1
  26. package/dist/npm/radiobutton/radiobutton.directive.js +3 -0
  27. package/dist/systemjs/kendo-angular-inputs.js +1 -1
  28. package/package.json +1 -1
@@ -8,7 +8,7 @@ import { NgControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, RadioControlValueAccessor
8
8
  import { Subscription, fromEvent, interval, merge, BehaviorSubject, Subject } from 'rxjs';
9
9
  import { take, filter, concatMap, startWith, takeUntil, skip, debounceTime, throttleTime } from 'rxjs/operators';
10
10
  import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages, MessageService } from '@progress/kendo-angular-l10n';
11
- import { Keys, guid, hasObservers, anyChanged, isDocumentAvailable, KendoInput, isChanged, DraggableModule, EventsModule, ResizeSensorModule, PreventableEvent } from '@progress/kendo-angular-common';
11
+ import { Keys, guid, hasObservers, anyChanged, isDocumentAvailable, KendoInput, isChanged, DraggableModule, EventsModule, ResizeSensorModule, PreventableEvent, closest } from '@progress/kendo-angular-common';
12
12
  import { validatePackage } from '@progress/kendo-licensing';
13
13
  import { browser, mobileOS, detectDesktopBrowser, detectMobileOS } from '@progress/kendo-common';
14
14
  import { IntlService } from '@progress/kendo-angular-intl';
@@ -516,7 +516,7 @@ var containsFocus = function (hostElement, contender) {
516
516
  /**
517
517
  * @hidden
518
518
  */
519
- var closest = function (node, predicate) {
519
+ var closest$1 = function (node, predicate) {
520
520
  while (node && !predicate(node)) {
521
521
  node = node.parentNode;
522
522
  }
@@ -530,7 +530,7 @@ var packageMetadata = {
530
530
  name: '@progress/kendo-angular-inputs',
531
531
  productName: 'Kendo UI for Angular',
532
532
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
533
- publishDate: 1641832234,
533
+ publishDate: 1641996688,
534
534
  version: '',
535
535
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
536
536
  };
@@ -6237,7 +6237,7 @@ var TextBoxComponent = /** @class */ (function () {
6237
6237
  return;
6238
6238
  }
6239
6239
  if (tabbing) {
6240
- var closestTextbox = closest(args.relatedTarget, function (element) { return element === _this.hostElement.nativeElement; });
6240
+ var closestTextbox = closest$1(args.relatedTarget, function (element) { return element === _this.hostElement.nativeElement; });
6241
6241
  if (!closestTextbox) {
6242
6242
  _this.handleBlur();
6243
6243
  }
@@ -7251,7 +7251,7 @@ var TextAreaComponent = /** @class */ (function (_super) {
7251
7251
  return;
7252
7252
  }
7253
7253
  if (tabbing) {
7254
- var closestTextbox = closest(args.relatedTarget, function (element) { return element === _this.hostElement.nativeElement; });
7254
+ var closestTextbox = closest$1(args.relatedTarget, function (element) { return element === _this.hostElement.nativeElement; });
7255
7255
  if (!closestTextbox) {
7256
7256
  _this.handleBlur();
7257
7257
  }
@@ -8435,6 +8435,7 @@ var ColorGradientComponent = /** @class */ (function () {
8435
8435
  this.updateValues = new Subject();
8436
8436
  this.notifyNgChanged = function () { };
8437
8437
  this.notifyNgTouched = function () { };
8438
+ validatePackage(packageMetadata);
8438
8439
  this.dynamicRTLSubscription = localizationService.changes.subscribe(function (_a) {
8439
8440
  var rtl = _a.rtl;
8440
8441
  _this.direction = rtl ? 'rtl' : 'ltr';
@@ -9014,6 +9015,32 @@ var ColorGradientComponent = /** @class */ (function () {
9014
9015
  return ColorGradientComponent;
9015
9016
  }());
9016
9017
 
9018
+ /**
9019
+ * @hidden
9020
+ */
9021
+ var ColorPaletteLocalizationService = /** @class */ (function (_super) {
9022
+ __extends(ColorPaletteLocalizationService, _super);
9023
+ function ColorPaletteLocalizationService(prefix, messageService, _rtl, flatColorPickerLocalization) {
9024
+ var _this = _super.call(this, prefix, messageService, _rtl) || this;
9025
+ _this.flatColorPickerLocalization = flatColorPickerLocalization;
9026
+ return _this;
9027
+ }
9028
+ ColorPaletteLocalizationService.prototype.get = function (shortKey) {
9029
+ if (this.flatColorPickerLocalization) {
9030
+ return this.flatColorPickerLocalization.get(shortKey);
9031
+ }
9032
+ return _super.prototype.get.call(this, shortKey);
9033
+ };
9034
+ ColorPaletteLocalizationService = __decorate([
9035
+ __param(0, Inject(L10N_PREFIX)),
9036
+ __param(1, Optional()),
9037
+ __param(2, Optional()), __param(2, Inject(RTL)),
9038
+ __param(3, Optional()), __param(3, Inject(FlatColorPickerLocalizationService)),
9039
+ __metadata("design:paramtypes", [String, MessageService, Boolean, FlatColorPickerLocalizationService])
9040
+ ], ColorPaletteLocalizationService);
9041
+ return ColorPaletteLocalizationService;
9042
+ }(LocalizationService));
9043
+
9017
9044
  /**
9018
9045
  * @hidden
9019
9046
  */
@@ -9074,32 +9101,6 @@ var ColorPaletteService = /** @class */ (function () {
9074
9101
  return ColorPaletteService;
9075
9102
  }());
9076
9103
 
9077
- /**
9078
- * @hidden
9079
- */
9080
- var ColorPaletteLocalizationService = /** @class */ (function (_super) {
9081
- __extends(ColorPaletteLocalizationService, _super);
9082
- function ColorPaletteLocalizationService(prefix, messageService, _rtl, flatColorPickerLocalization) {
9083
- var _this = _super.call(this, prefix, messageService, _rtl) || this;
9084
- _this.flatColorPickerLocalization = flatColorPickerLocalization;
9085
- return _this;
9086
- }
9087
- ColorPaletteLocalizationService.prototype.get = function (shortKey) {
9088
- if (this.flatColorPickerLocalization) {
9089
- return this.flatColorPickerLocalization.get(shortKey);
9090
- }
9091
- return _super.prototype.get.call(this, shortKey);
9092
- };
9093
- ColorPaletteLocalizationService = __decorate([
9094
- __param(0, Inject(L10N_PREFIX)),
9095
- __param(1, Optional()),
9096
- __param(2, Optional()), __param(2, Inject(RTL)),
9097
- __param(3, Optional()), __param(3, Inject(FlatColorPickerLocalizationService)),
9098
- __metadata("design:paramtypes", [String, MessageService, Boolean, FlatColorPickerLocalizationService])
9099
- ], ColorPaletteLocalizationService);
9100
- return ColorPaletteLocalizationService;
9101
- }(LocalizationService));
9102
-
9103
9104
  var DEFAULT_TILE_SIZE = 24;
9104
9105
  var DEFAULT_COLUMNS_COUNT = 10;
9105
9106
  var DEFAULT_PRESET$1 = 'office';
@@ -9173,6 +9174,7 @@ var ColorPaletteComponent = /** @class */ (function () {
9173
9174
  this._tabindex = 0;
9174
9175
  this.notifyNgTouched = function () { };
9175
9176
  this.notifyNgChanged = function () { };
9177
+ validatePackage(packageMetadata);
9176
9178
  this.dynamicRTLSubscription = localizationService.changes.subscribe(function (_a) {
9177
9179
  var rtl = _a.rtl;
9178
9180
  _this.direction = rtl ? 'rtl' : 'ltr';
@@ -9731,10 +9733,10 @@ var FlatColorPickerActionButtonsComponent = /** @class */ (function () {
9731
9733
  * through a gradient that renders an hsv canvas. It supports previewing the selected color, reverting it to its previous state or clearing it completely.
9732
9734
  */
9733
9735
  var FlatColorPickerComponent = /** @class */ (function () {
9734
- function FlatColorPickerComponent(service, host, localizationService, cdr, renderer, ngZone) {
9736
+ function FlatColorPickerComponent(host, service, localizationService, cdr, renderer, ngZone) {
9735
9737
  var _this = this;
9736
- this.service = service;
9737
9738
  this.host = host;
9739
+ this.service = service;
9738
9740
  this.localizationService = localizationService;
9739
9741
  this.cdr = cdr;
9740
9742
  this.renderer = renderer;
@@ -9817,6 +9819,7 @@ var FlatColorPickerComponent = /** @class */ (function () {
9817
9819
  this.subscriptions = new Subscription();
9818
9820
  this.notifyNgChanged = function () { };
9819
9821
  this.notifyNgTouched = function () { };
9822
+ validatePackage(packageMetadata);
9820
9823
  this.dynamicRTLSubscription = this.localizationService.changes.subscribe(function (_a) {
9821
9824
  var rtl = _a.rtl;
9822
9825
  _this.direction = rtl ? 'rtl' : 'ltr';
@@ -10248,8 +10251,8 @@ var FlatColorPickerComponent = /** @class */ (function () {
10248
10251
  ],
10249
10252
  template: "\n <ng-container kendoFlatColorPickerLocalizedMessages\n i18n-flatColorPickerNoColor=\"kendo.flatcolorpicker.flatColorPickerNoColor|The aria-label applied to the FlatColorPicker component when the value is empty.\"\n flatColorPickerNoColor=\"Flatcolorpicker no color chosen\"\n i18n-colorGradientNoColor=\"kendo.flatcolorpicker.colorGradientNoColor|The aria-label applied to the ColorGradient component when the value is empty.\"\n colorGradientNoColor=\"Colorgradient no color chosen\"\n i18n-colorPaletteNoColor=\"kendo.flatcolorpicker.colorPaletteNoColor|The aria-label applied to the ColorPalette component when the value is empty.\"\n colorPaletteNoColor=\"Colorpalette no color chosen\"\n i18n-colorGradientHandle=\"kendo.flatcolorpicker.colorGradientHandle|The title for the gradient color drag handle chooser.\"\n colorGradientHandle=\"Choose color\"\n i18n-clearButton=\"kendo.flatcolorpicker.clearButton|The title for the clear button.\"\n clearButton=\"Clear value\"\n i18n-hueSliderHandle=\"kendo.flatcolorpicker.hueSliderHandle|The title for the hue slider handle.\"\n hueSliderHandle=\"Set hue\"\n i18n-opacitySliderHandle=\"kendo.flatcolorpicker.opacitySliderHandle|The title for the opacity slider handle.\"\n opacitySliderHandle=\"Set opacity\"\n i18n-contrastRatio=\"kendo.flatcolorpicker.contrastRatio|The contrast ratio message for the contrast tool.\"\n contrastRatio=\"Contrast ratio\"\n i18n-previewColor=\"kendo.flatcolorpicker.previewColor|The message for the color preview pane.\"\n previewColor=\"Color preview\"\n i18n-revertSelection=\"kendo.flatcolorpicker.revertSelection|The message for the selected color pane.\"\n revertSelection=\"Revert selection\"\n i18n-gradientView=\"kendo.flatcolorpicker.gradientView|The message for the gradient view button.\"\n gradientView=\"Gradient view\"\n i18n-paletteView=\"kendo.flatcolorpicker.paletteView|The message for the palette view button.\"\n paletteView=\"Palette view\"\n i18n-formatButton=\"kendo.flatcolorpicker.formatButton|The message for the input format toggle button.\"\n formatButton=\"Change color format\"\n i18n-applyButton=\"kendo.flatcolorpicker.applyButton|The message for the Apply action button.\"\n applyButton=\"Apply\"\n i18n-cancelButton=\"kendo.flatcolorpicker.cancelButton|The message for the Cancel action button.\"\n cancelButton=\"Cancel\">\n </ng-container>\n <div kendoFlatColorPickerHeader\n *ngIf=\"headerHasContent\"\n #header\n [clearButton]=\"clearButton\"\n [activeView]=\"activeView\"\n [views]=\"views\"\n [value]=\"value\"\n [selection]=\"selection\"\n [preview]=\"preview\"\n (clearButtonClick)=\"onClearButtonClick()\"\n (viewChange)=\"onViewChange($event)\"\n (valuePaneClick)=\"resetSelection($event)\">\n </div>\n <div class=\"k-coloreditor-views k-vstack\">\n <kendo-colorgradient #gradient\n *ngIf=\"activeView === 'gradient'\"\n [tabindex]=\"null\"\n [value]=\"selection\"\n [format]=\"format\"\n [opacity]=\"gradientSettings.opacity\"\n [delay]=\"gradientSettings.delay\"\n [contrastTool]=\"gradientSettings.contrastTool\"\n [readonly]=\"readonly\"\n (valueChange)=\"handleValueChange($event)\"\n >\n </kendo-colorgradient>\n <kendo-colorpalette #palette\n *ngIf=\"activeView === 'palette'\"\n kendoFocusOnDomReady\n [palette]=\"paletteSettings.palette\"\n [columns]=\"paletteSettings.columns\"\n [tileSize]=\"paletteSettings.tileSize\"\n [format]=\"format\"\n [value]=\"selection\"\n (valueChange)=\"handleValueChange($event)\"\n >\n </kendo-colorpalette>\n </div>\n <div kendoFlatColorPickerActionButtons *ngIf=\"preview\"\n #footer\n [ngClass]=\"'k-justify-content-' + actionsLayout\"\n (actionButtonClick)=\"onAction($event)\">\n </div>\n"
10250
10253
  }),
10251
- __metadata("design:paramtypes", [FlatColorPickerService,
10252
- ElementRef,
10254
+ __metadata("design:paramtypes", [ElementRef,
10255
+ FlatColorPickerService,
10253
10256
  LocalizationService,
10254
10257
  ChangeDetectorRef,
10255
10258
  Renderer2,
@@ -10258,7 +10261,7 @@ var FlatColorPickerComponent = /** @class */ (function () {
10258
10261
  return FlatColorPickerComponent;
10259
10262
  }());
10260
10263
 
10261
- var serial$2 = 0;
10264
+ var DOM_FOCUS_EVENTS = ['focus', 'blur'];
10262
10265
  /**
10263
10266
  * Represents the [Kendo UI ColorPicker component for Angular]({% slug overview_colorpicker %}).
10264
10267
  *
@@ -10275,10 +10278,7 @@ var ColorPickerComponent = /** @class */ (function () {
10275
10278
  this.ngZone = ngZone;
10276
10279
  this.renderer = renderer;
10277
10280
  this.hostClasses = true;
10278
- /**
10279
- * @hidden
10280
- */
10281
- this.focusableId = "k-colorpicker-" + serial$2++;
10281
+ this.role = 'listbox';
10282
10282
  /**
10283
10283
  * Specifies the views that will be rendered in the popup.
10284
10284
  * By default both the gradient and palette views will be rendered.
@@ -10374,6 +10374,10 @@ var ColorPickerComponent = /** @class */ (function () {
10374
10374
  * Used to provide a two-way binding for the `activeView` property.
10375
10375
  */
10376
10376
  this.activeViewChange = new EventEmitter();
10377
+ /**
10378
+ * Indicates whether the ColorPicker wrapper is focused.
10379
+ */
10380
+ this.isFocused = false;
10377
10381
  this._tabindex = 0;
10378
10382
  this._popupSettings = { animate: true };
10379
10383
  this._paletteSettings = {};
@@ -10381,8 +10385,10 @@ var ColorPickerComponent = /** @class */ (function () {
10381
10385
  this._size = 'medium';
10382
10386
  this._rounded = 'medium';
10383
10387
  this._fillMode = 'solid';
10388
+ this.subscriptions = new Subscription();
10384
10389
  this.notifyNgTouched = function () { };
10385
10390
  this.notifyNgChanged = function () { };
10391
+ this.domFocusListener = function (event) { return event.stopImmediatePropagation(); };
10386
10392
  validatePackage(packageMetadata);
10387
10393
  this.dynamicRTLSubscription = this.localizationService.changes.subscribe(function (_a) {
10388
10394
  var rtl = _a.rtl;
@@ -10390,6 +10396,41 @@ var ColorPickerComponent = /** @class */ (function () {
10390
10396
  });
10391
10397
  }
10392
10398
  ColorPickerComponent_1 = ColorPickerComponent;
10399
+ Object.defineProperty(ColorPickerComponent.prototype, "focusedClass", {
10400
+ get: function () {
10401
+ return this.isFocused;
10402
+ },
10403
+ enumerable: true,
10404
+ configurable: true
10405
+ });
10406
+ Object.defineProperty(ColorPickerComponent.prototype, "disabledClass", {
10407
+ get: function () {
10408
+ return this.disabled;
10409
+ },
10410
+ enumerable: true,
10411
+ configurable: true
10412
+ });
10413
+ Object.defineProperty(ColorPickerComponent.prototype, "ariaReadonly", {
10414
+ get: function () {
10415
+ return this.readonly;
10416
+ },
10417
+ enumerable: true,
10418
+ configurable: true
10419
+ });
10420
+ Object.defineProperty(ColorPickerComponent.prototype, "ariaExpanded", {
10421
+ get: function () {
10422
+ return this.isOpen;
10423
+ },
10424
+ enumerable: true,
10425
+ configurable: true
10426
+ });
10427
+ Object.defineProperty(ColorPickerComponent.prototype, "hostTabindex", {
10428
+ get: function () {
10429
+ return this.tabindex;
10430
+ },
10431
+ enumerable: true,
10432
+ configurable: true
10433
+ });
10393
10434
  Object.defineProperty(ColorPickerComponent.prototype, "view", {
10394
10435
  get: function () {
10395
10436
  return (this.views && this.views.length > 0) ? this.views[0] : null;
@@ -10579,6 +10620,9 @@ var ColorPickerComponent = /** @class */ (function () {
10579
10620
  stylingInputs.forEach(function (input) {
10580
10621
  _this.handleClasses(_this[input], input);
10581
10622
  });
10623
+ this.setHostElementAriaLabel();
10624
+ this.handleHostId();
10625
+ this.initDomEvents();
10582
10626
  };
10583
10627
  ColorPickerComponent.prototype.ngOnChanges = function (changes) {
10584
10628
  if (changes.format && changes.format.currentValue === 'name') {
@@ -10588,23 +10632,18 @@ var ColorPickerComponent = /** @class */ (function () {
10588
10632
  this.format = 'rgba';
10589
10633
  this.value = parseColor$1(this.value, this.format, this.gradientSettings.opacity);
10590
10634
  }
10635
+ if (isChanged('value', changes)) {
10636
+ this.setHostElementAriaLabel();
10637
+ }
10591
10638
  };
10592
10639
  ColorPickerComponent.prototype.ngOnDestroy = function () {
10593
10640
  this.closePopup();
10594
10641
  if (this.dynamicRTLSubscription) {
10595
10642
  this.dynamicRTLSubscription.unsubscribe();
10596
10643
  }
10644
+ this.subscriptions.unsubscribe();
10645
+ this.handleDomEvents('remove', DOM_FOCUS_EVENTS);
10597
10646
  };
10598
- Object.defineProperty(ColorPickerComponent.prototype, "colorPickerAriaLabel", {
10599
- /**
10600
- * @hidden
10601
- */
10602
- get: function () {
10603
- return this.value ? this.value : this.localizationService.get('colorPickerNoColor');
10604
- },
10605
- enumerable: true,
10606
- configurable: true
10607
- });
10608
10647
  /**
10609
10648
  * @hidden
10610
10649
  */
@@ -10615,55 +10654,74 @@ var ColorPickerComponent = /** @class */ (function () {
10615
10654
  * @hidden
10616
10655
  */
10617
10656
  ColorPickerComponent.prototype.togglePopup = function () {
10618
- this.toggleWithEvents(!this.isOpen);
10619
10657
  this.focus();
10658
+ this.toggleWithEvents(!this.isOpen);
10620
10659
  };
10621
10660
  /**
10622
10661
  * @hidden
10623
10662
  */
10624
- ColorPickerComponent.prototype.handleActiveColorClick = function () {
10663
+ ColorPickerComponent.prototype.handleWrapperClick = function (event) {
10664
+ var _this = this;
10665
+ if (this.disabled) {
10666
+ return;
10667
+ }
10625
10668
  this.focus();
10626
- var event = new ActiveColorClickEvent(this.value);
10627
- this.activeColorClick.emit(event);
10628
- if (!event.isOpenPrevented() || this.isOpen) {
10629
- this.togglePopup();
10669
+ if (closest(event.target, function (element) { return element === _this.activeColor.nativeElement; })) {
10670
+ var event_1 = new ActiveColorClickEvent(this.value);
10671
+ this.activeColorClick.emit(event_1);
10672
+ if (!event_1.isOpenPrevented() || this.isOpen) {
10673
+ this.toggleWithEvents(!this.isOpen);
10674
+ }
10675
+ return;
10630
10676
  }
10677
+ this.toggleWithEvents(!this.isOpen);
10631
10678
  };
10632
10679
  /**
10633
10680
  * Focuses the wrapper of the ColorPicker.
10634
10681
  */
10635
10682
  ColorPickerComponent.prototype.focus = function () {
10636
- if (this.disabled) {
10637
- return;
10638
- }
10639
- this.wrapper.nativeElement.focus();
10683
+ this.isFocused = true;
10684
+ this.host.nativeElement.focus();
10640
10685
  };
10641
10686
  /**
10642
10687
  * @hidden
10643
10688
  */
10644
10689
  ColorPickerComponent.prototype.handleWrapperFocus = function () {
10690
+ var _this = this;
10645
10691
  if (this.isFocused) {
10646
10692
  return;
10647
10693
  }
10648
- this.isFocused = true;
10649
- this.onFocus.emit();
10694
+ this.ngZone.run(function () {
10695
+ _this.focus();
10696
+ _this.onFocus.emit();
10697
+ });
10650
10698
  };
10651
10699
  /**
10652
10700
  * Blurs the ColorPicker.
10653
10701
  */
10654
10702
  ColorPickerComponent.prototype.blur = function () {
10655
- this.wrapper.nativeElement.blur();
10703
+ this.isFocused = false;
10704
+ this.host.nativeElement.blur();
10705
+ this.notifyNgTouched();
10656
10706
  };
10657
10707
  /**
10658
10708
  * @hidden
10659
10709
  */
10660
10710
  ColorPickerComponent.prototype.handleWrapperBlur = function () {
10711
+ var _this = this;
10661
10712
  if (this.isOpen) {
10662
10713
  return;
10663
10714
  }
10664
- this.isFocused = false;
10665
- this.onBlur.emit();
10666
- this.notifyNgTouched();
10715
+ this.ngZone.run(function () {
10716
+ _this.onBlur.emit();
10717
+ _this.isFocused = false;
10718
+ });
10719
+ };
10720
+ /**
10721
+ * @hidden
10722
+ */
10723
+ ColorPickerComponent.prototype.arrowButtonMouseDown = function (ev) {
10724
+ ev.preventDefault();
10667
10725
  };
10668
10726
  /**
10669
10727
  * Clears the value of the ColorPicker.
@@ -10673,6 +10731,7 @@ var ColorPickerComponent = /** @class */ (function () {
10673
10731
  return;
10674
10732
  }
10675
10733
  this._value = undefined;
10734
+ this.setHostElementAriaLabel();
10676
10735
  this.notifyNgChanged(undefined);
10677
10736
  };
10678
10737
  /**
@@ -10700,6 +10759,7 @@ var ColorPickerComponent = /** @class */ (function () {
10700
10759
  if (valueChange) {
10701
10760
  this.value = parsedColor;
10702
10761
  this.valueChange.emit(parsedColor);
10762
+ this.setHostElementAriaLabel();
10703
10763
  this.notifyNgChanged(parsedColor);
10704
10764
  }
10705
10765
  };
@@ -10744,9 +10804,12 @@ var ColorPickerComponent = /** @class */ (function () {
10744
10804
  * @hidden
10745
10805
  */
10746
10806
  ColorPickerComponent.prototype.handleWrapperKeyDown = function (event) {
10807
+ var _this = this;
10747
10808
  if (event.keyCode === Keys.ArrowDown || event.keyCode === Keys.Enter) {
10748
10809
  event.preventDefault();
10749
- this.toggleWithEvents(true);
10810
+ this.ngZone.run(function () {
10811
+ _this.toggleWithEvents(true);
10812
+ });
10750
10813
  }
10751
10814
  };
10752
10815
  /**
@@ -10755,14 +10818,14 @@ var ColorPickerComponent = /** @class */ (function () {
10755
10818
  ColorPickerComponent.prototype.handlePopupKeyDown = function (event) {
10756
10819
  if (event.keyCode === Keys.Escape) {
10757
10820
  this.toggleWithEvents(false);
10758
- this.wrapper.nativeElement.focus();
10821
+ this.host.nativeElement.focus();
10759
10822
  }
10760
10823
  if (event.keyCode === Keys.Tab) {
10761
10824
  var currentElement = event.shiftKey ? this.firstFocusableElement.nativeElement : this.lastFocusableElement.nativeElement;
10762
10825
  var nextElement = event.shiftKey ? this.lastFocusableElement.nativeElement : this.firstFocusableElement.nativeElement;
10763
10826
  if (event.target === currentElement) {
10764
10827
  event.preventDefault();
10765
- nextElement.nativeElement.focus();
10828
+ nextElement.focus();
10766
10829
  }
10767
10830
  }
10768
10831
  };
@@ -10773,6 +10836,10 @@ var ColorPickerComponent = /** @class */ (function () {
10773
10836
  ColorPickerComponent.prototype.isEmpty = function () {
10774
10837
  return false;
10775
10838
  };
10839
+ ColorPickerComponent.prototype.setHostElementAriaLabel = function () {
10840
+ var ariaLabelValue = "" + (this.value ? this.value : this.localizationService.get('colorPickerNoColor'));
10841
+ this.renderer.setAttribute(this.host.nativeElement, 'aria-label', ariaLabelValue);
10842
+ };
10776
10843
  ColorPickerComponent.prototype.handleClasses = function (value, input) {
10777
10844
  var elem = this.host.nativeElement;
10778
10845
  var classes = getStylingClasses('picker', input, this[input], value);
@@ -10784,9 +10851,10 @@ var ColorPickerComponent = /** @class */ (function () {
10784
10851
  }
10785
10852
  };
10786
10853
  ColorPickerComponent.prototype.popupBlurInvalid = function (ev) {
10787
- var focusInPopupElement = this.popupRef.popupElement.contains(ev.relatedTarget);
10788
- var wrapperClicked = ev.relatedTarget === this.wrapper.nativeElement;
10789
- return !this.isFocused || wrapperClicked || focusInPopupElement;
10854
+ var _this = this;
10855
+ var focusInFlatColorPickerElement = this.popupRef.popupElement.contains(ev.relatedTarget);
10856
+ var hostClicked = closest(ev.relatedTarget, function (element) { return element === _this.host.nativeElement; });
10857
+ return hostClicked || focusInFlatColorPickerElement;
10790
10858
  };
10791
10859
  ColorPickerComponent.prototype.toggleWithEvents = function (open) {
10792
10860
  var sameState = this.isOpen === open;
@@ -10811,12 +10879,12 @@ var ColorPickerComponent = /** @class */ (function () {
10811
10879
  };
10812
10880
  ColorPickerComponent.prototype.focusFirstElement = function () {
10813
10881
  var _this = this;
10814
- this.ngZone.runOutsideAngular(function () {
10815
- setTimeout(function () {
10882
+ this.ngZone.onStable.pipe(take(1)).subscribe(function () {
10883
+ if (_this.flatColorPicker) {
10816
10884
  var elementToFocus = _this.flatColorPicker.gradient ? _this.flatColorPicker.gradient.gradientDragHandle :
10817
10885
  _this.flatColorPicker.palette.host;
10818
10886
  elementToFocus.nativeElement.focus();
10819
- });
10887
+ }
10820
10888
  });
10821
10889
  };
10822
10890
  ColorPickerComponent.prototype.openPopup = function () {
@@ -10825,7 +10893,7 @@ var ColorPickerComponent = /** @class */ (function () {
10825
10893
  var anchorPosition = { horizontal: horizontalAlign, vertical: "bottom" };
10826
10894
  var popupPosition = { horizontal: horizontalAlign, vertical: "top" };
10827
10895
  this.popupRef = this.popupService.open({
10828
- anchor: this.wrapper,
10896
+ anchor: this.activeColor,
10829
10897
  animate: this.popupSettings.animate,
10830
10898
  appendTo: this.popupSettings.appendTo,
10831
10899
  popupAlign: popupPosition,
@@ -10837,7 +10905,7 @@ var ColorPickerComponent = /** @class */ (function () {
10837
10905
  this.popupRef.popupAnchorViewportLeave.subscribe(function () {
10838
10906
  _this.toggleWithEvents(false);
10839
10907
  if (!_this.isOpen) {
10840
- _this.wrapper.nativeElement.focus({
10908
+ _this.host.nativeElement.focus({
10841
10909
  preventScroll: true
10842
10910
  });
10843
10911
  }
@@ -10873,6 +10941,53 @@ var ColorPickerComponent = /** @class */ (function () {
10873
10941
  enumerable: true,
10874
10942
  configurable: true
10875
10943
  });
10944
+ ColorPickerComponent.prototype.handleDomEvents = function (action, events) {
10945
+ var _this = this;
10946
+ var hostElement = this.host.nativeElement;
10947
+ events.forEach(function (ev) { return hostElement[action + "EventListener"](ev, _this.domFocusListener, true); });
10948
+ };
10949
+ ColorPickerComponent.prototype.initDomEvents = function () {
10950
+ var _this = this;
10951
+ if (!this.host) {
10952
+ return;
10953
+ }
10954
+ var hostElement = this.host.nativeElement;
10955
+ this.ngZone.runOutsideAngular(function () {
10956
+ _this.subscriptions.add(_this.renderer.listen(hostElement, 'focusin', function () {
10957
+ _this.handleWrapperFocus();
10958
+ }));
10959
+ _this.subscriptions.add(_this.renderer.listen(hostElement, 'focusout', function (event) {
10960
+ var closestPopup = _this.popupRef ?
10961
+ closest(event.relatedTarget, function (element) { return element === _this.flatColorPicker.host.nativeElement; }) :
10962
+ false;
10963
+ var closestWrapper = closest(event.relatedTarget, function (element) { return element === _this.host.nativeElement; });
10964
+ if (!closestPopup && !closestWrapper) {
10965
+ _this.handleWrapperBlur();
10966
+ }
10967
+ }));
10968
+ _this.handleDomEvents('add', DOM_FOCUS_EVENTS);
10969
+ _this.subscriptions.add(_this.renderer.listen(hostElement, 'keydown', function (event) {
10970
+ _this.handleWrapperKeyDown(event);
10971
+ }));
10972
+ _this.subscriptions.add(_this.renderer.listen(hostElement, 'click', function (event) {
10973
+ _this.ngZone.run(function () {
10974
+ _this.handleWrapperClick(event);
10975
+ });
10976
+ }));
10977
+ });
10978
+ };
10979
+ ColorPickerComponent.prototype.handleHostId = function () {
10980
+ var hostElement = this.host.nativeElement;
10981
+ var existingId = hostElement.getAttribute('id');
10982
+ if (existingId) {
10983
+ this.focusableId = existingId;
10984
+ }
10985
+ else {
10986
+ var id = "k-" + guid();
10987
+ hostElement.setAttribute('id', id);
10988
+ this.focusableId = id;
10989
+ }
10990
+ };
10876
10991
  var ColorPickerComponent_1;
10877
10992
  __decorate([
10878
10993
  HostBinding('class.k-colorpicker'),
@@ -10880,14 +10995,40 @@ var ColorPickerComponent = /** @class */ (function () {
10880
10995
  HostBinding('class.k-picker'),
10881
10996
  __metadata("design:type", Boolean)
10882
10997
  ], ColorPickerComponent.prototype, "hostClasses", void 0);
10998
+ __decorate([
10999
+ HostBinding('class.k-focus'),
11000
+ __metadata("design:type", Boolean),
11001
+ __metadata("design:paramtypes", [])
11002
+ ], ColorPickerComponent.prototype, "focusedClass", null);
11003
+ __decorate([
11004
+ HostBinding('attr.aria-disabled'),
11005
+ HostBinding('class.k-disabled'),
11006
+ __metadata("design:type", Boolean),
11007
+ __metadata("design:paramtypes", [])
11008
+ ], ColorPickerComponent.prototype, "disabledClass", null);
11009
+ __decorate([
11010
+ HostBinding('attr.aria-readonly'),
11011
+ __metadata("design:type", Boolean),
11012
+ __metadata("design:paramtypes", [])
11013
+ ], ColorPickerComponent.prototype, "ariaReadonly", null);
11014
+ __decorate([
11015
+ HostBinding('attr.aria-expanded'),
11016
+ __metadata("design:type", Boolean),
11017
+ __metadata("design:paramtypes", [])
11018
+ ], ColorPickerComponent.prototype, "ariaExpanded", null);
11019
+ __decorate([
11020
+ HostBinding('attr.tabindex'),
11021
+ __metadata("design:type", Number),
11022
+ __metadata("design:paramtypes", [])
11023
+ ], ColorPickerComponent.prototype, "hostTabindex", null);
10883
11024
  __decorate([
10884
11025
  HostBinding('attr.dir'),
10885
11026
  __metadata("design:type", String)
10886
11027
  ], ColorPickerComponent.prototype, "direction", void 0);
10887
11028
  __decorate([
10888
- Input(),
11029
+ HostBinding('attr.role'),
10889
11030
  __metadata("design:type", String)
10890
- ], ColorPickerComponent.prototype, "focusableId", void 0);
11031
+ ], ColorPickerComponent.prototype, "role", void 0);
10891
11032
  __decorate([
10892
11033
  Input(),
10893
11034
  __metadata("design:type", Array)
@@ -11010,9 +11151,9 @@ var ColorPickerComponent = /** @class */ (function () {
11010
11151
  __metadata("design:type", ViewContainerRef)
11011
11152
  ], ColorPickerComponent.prototype, "container", void 0);
11012
11153
  __decorate([
11013
- ViewChild('wrapper', { static: true }),
11154
+ ViewChild('activeColor', { static: true }),
11014
11155
  __metadata("design:type", ElementRef)
11015
- ], ColorPickerComponent.prototype, "wrapper", void 0);
11156
+ ], ColorPickerComponent.prototype, "activeColor", void 0);
11016
11157
  __decorate([
11017
11158
  ViewChild('popupTemplate', { static: true }),
11018
11159
  __metadata("design:type", TemplateRef)
@@ -11043,7 +11184,7 @@ var ColorPickerComponent = /** @class */ (function () {
11043
11184
  useValue: 'kendo.colorpicker'
11044
11185
  }
11045
11186
  ],
11046
- template: "\n <ng-container kendoColorPickerLocalizedMessages\n i18n-colorPickerNoColor=\"kendo.colorpicker.colorPickerNoColor|The aria-label applied to the ColorPicker component when the value is empty.\"\n colorPickerNoColor=\"Colorpicker no color chosen\"\n i18n-flatColorPickerNoColor=\"kendo.colorpicker.flatColorPickerNoColor|The aria-label applied to the FlatColorPicker component when the value is empty.\"\n flatColorPickerNoColor=\"Flatcolorpicker no color chosen\"\n i18n-colorGradientNoColor=\"kendo.colorpicker.colorGradientNoColor|The aria-label applied to the ColorGradient component when the value is empty.\"\n colorGradientNoColor=\"Colorgradient no color chosen\"\n i18n-colorPaletteNoColor=\"kendo.colorpicker.colorPaletteNoColor|The aria-label applied to the ColorPalette component when the value is empty.\"\n colorPaletteNoColor=\"Colorpalette no color chosen\"\n i18n-colorGradientHandle=\"kendo.colorpicker.colorGradientHandle|The title for the gradient color drag handle chooser.\"\n colorGradientHandle=\"Choose color\"\n i18n-clearButton=\"kendo.colorpicker.clearButton|The title for the clear button.\"\n clearButton=\"Clear value\"\n i18n-hueSliderHandle=\"kendo.colorpicker.hueSliderHandle|The title for the hue slider handle.\"\n hueSliderHandle=\"Set hue\"\n i18n-opacitySliderHandle=\"kendo.colorpicker.opacitySliderHandle|The title for the opacity slider handle.\"\n opacitySliderHandle=\"Set opacity\"\n i18n-contrastRatio=\"kendo.colorpicker.contrastRatio|The contrast ratio message for the contrast tool.\"\n contrastRatio=\"Contrast ratio\"\n i18n-previewColor=\"kendo.colorpicker.previewColor|The message for the color preview pane.\"\n previewColor=\"Color preview\"\n i18n-revertSelection=\"kendo.colorpicker.revertSelection|The message for the selected color pane.\"\n revertSelection=\"Revert selection\"\n i18n-gradientView=\"kendo.colorpicker.gradientView|The message for the gradient view button.\"\n gradientView=\"Gradient view\"\n i18n-paletteView=\"kendo.colorpicker.paletteView|The message for the palette view button.\"\n paletteView=\"Palette view\"\n i18n-formatButton=\"kendo.colorpicker.formatButton|The message for the input format toggle button.\"\n formatButton=\"Change color format\"\n i18n-applyButton=\"kendo.colorpicker.applyButton|The message for the Apply action button.\"\n applyButton=\"Apply\"\n i18n-cancelButton=\"kendo.colorpicker.cancelButton|The message for the Cancel action button.\"\n cancelButton=\"Cancel\">\n </ng-container>\n <span\n #wrapper\n [ngClass]=\"{\n 'k-input-inner': true,\n 'k-disabled': this.disabled,\n 'k-focus': this.isFocused\n }\"\n role=\"listbox\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-readonly]=\"readonly\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-label]=\"colorPickerAriaLabel\"\n [id]=\"focusableId\"\n [attr.tabindex]=\"tabindex\"\n (focus)=\"handleWrapperFocus()\"\n (blur)=\"handleWrapperBlur()\"\n (mousedown)=\"$event.preventDefault()\"\n (keydown)=\"handleWrapperKeyDown($event)\"\n >\n <span\n class=\"k-value-icon k-color-preview\"\n [ngClass]=\"{'k-icon-color-preview': iconStyles, 'k-no-color': !value}\"\n (click)=\"handleActiveColorClick()\">\n <span *ngIf=\"iconClass || icon\" class=\"k-color-preview-icon k-icon\" [ngClass]=\"iconStyles\"></span>\n <span class=\"k-color-preview-mask\" [style.background-color]=\"value\"></span>\n </span>\n </span>\n <button\n type=\"button\"\n class=\"k-input-button k-button k-button-md k-button-solid k-button-solid-base k-icon-button\"\n [attr.aria-label]=\"colorPickerAriaLabel\"\n (click)=\"togglePopup()\">\n <span class=\"k-button-icon k-icon k-i-arrow-s\"></span>\n </button>\n <ng-template #popupTemplate>\n <kendo-flatcolorpicker\n #flatColorPicker\n [value]=\"value\"\n [format]=\"format\"\n [views]=\"views\"\n [activeView]=\"activeView\"\n [actionsLayout]=\"actionsLayout\"\n [preview]=\"preview\"\n [gradientSettings]=\"gradientSettings\"\n [paletteSettings]=\"paletteSettings\"\n [clearButton]=\"clearButton\"\n (focusout)=\"handlePopupBlur($event)\"\n (cancel)=\"handleCancelEvent($event)\"\n (valueChange)=\"handleValueChange($event)\"\n (keydown)=\"handlePopupKeyDown($event)\"\n (activeViewChange)=\"activeViewChange.emit($event)\"\n (actionButtonClick)=\"togglePopup()\">\n </kendo-flatcolorpicker>\n </ng-template>\n <ng-container #container></ng-container>\n "
11187
+ template: "\n <ng-container kendoColorPickerLocalizedMessages\n i18n-colorPickerNoColor=\"kendo.colorpicker.colorPickerNoColor|The aria-label applied to the ColorPicker component when the value is empty.\"\n colorPickerNoColor=\"Colorpicker no color chosen\"\n i18n-flatColorPickerNoColor=\"kendo.colorpicker.flatColorPickerNoColor|The aria-label applied to the FlatColorPicker component when the value is empty.\"\n flatColorPickerNoColor=\"Flatcolorpicker no color chosen\"\n i18n-colorGradientNoColor=\"kendo.colorpicker.colorGradientNoColor|The aria-label applied to the ColorGradient component when the value is empty.\"\n colorGradientNoColor=\"Colorgradient no color chosen\"\n i18n-colorPaletteNoColor=\"kendo.colorpicker.colorPaletteNoColor|The aria-label applied to the ColorPalette component when the value is empty.\"\n colorPaletteNoColor=\"Colorpalette no color chosen\"\n i18n-colorGradientHandle=\"kendo.colorpicker.colorGradientHandle|The title for the gradient color drag handle chooser.\"\n colorGradientHandle=\"Choose color\"\n i18n-clearButton=\"kendo.colorpicker.clearButton|The title for the clear button.\"\n clearButton=\"Clear value\"\n i18n-hueSliderHandle=\"kendo.colorpicker.hueSliderHandle|The title for the hue slider handle.\"\n hueSliderHandle=\"Set hue\"\n i18n-opacitySliderHandle=\"kendo.colorpicker.opacitySliderHandle|The title for the opacity slider handle.\"\n opacitySliderHandle=\"Set opacity\"\n i18n-contrastRatio=\"kendo.colorpicker.contrastRatio|The contrast ratio message for the contrast tool.\"\n contrastRatio=\"Contrast ratio\"\n i18n-previewColor=\"kendo.colorpicker.previewColor|The message for the color preview pane.\"\n previewColor=\"Color preview\"\n i18n-revertSelection=\"kendo.colorpicker.revertSelection|The message for the selected color pane.\"\n revertSelection=\"Revert selection\"\n i18n-gradientView=\"kendo.colorpicker.gradientView|The message for the gradient view button.\"\n gradientView=\"Gradient view\"\n i18n-paletteView=\"kendo.colorpicker.paletteView|The message for the palette view button.\"\n paletteView=\"Palette view\"\n i18n-formatButton=\"kendo.colorpicker.formatButton|The message for the input format toggle button.\"\n formatButton=\"Change color format\"\n i18n-applyButton=\"kendo.colorpicker.applyButton|The message for the Apply action button.\"\n applyButton=\"Apply\"\n i18n-cancelButton=\"kendo.colorpicker.cancelButton|The message for the Cancel action button.\"\n cancelButton=\"Cancel\">\n </ng-container>\n <span #activeColor class=\"k-input-inner\">\n <span\n class=\"k-value-icon k-color-preview\"\n [ngClass]=\"{'k-icon-color-preview': iconStyles, 'k-no-color': !value}\">\n <span *ngIf=\"iconClass || icon\" class=\"k-color-preview-icon k-icon\" [ngClass]=\"iconStyles\"></span>\n <span class=\"k-color-preview-mask\" [style.background-color]=\"value\"></span>\n </span>\n </span>\n <button\n #arrowButton\n tabindex=\"-1\"\n role=\"button\"\n class=\"k-input-button k-button k-button-md k-button-solid k-button-solid-base k-icon-button\">\n <span class=\"k-button-icon k-icon k-i-arrow-s\"></span>\n </button>\n <ng-template #popupTemplate>\n <kendo-flatcolorpicker\n #flatColorPicker\n [value]=\"value\"\n [format]=\"format\"\n [views]=\"views\"\n [activeView]=\"activeView\"\n [actionsLayout]=\"actionsLayout\"\n [preview]=\"preview\"\n [gradientSettings]=\"gradientSettings\"\n [paletteSettings]=\"paletteSettings\"\n [clearButton]=\"clearButton\"\n (cancel)=\"handleCancelEvent($event)\"\n (focusout)=\"handlePopupBlur($event)\"\n (valueChange)=\"handleValueChange($event)\"\n (keydown)=\"handlePopupKeyDown($event)\"\n (activeViewChange)=\"activeViewChange.emit($event)\"\n (actionButtonClick)=\"togglePopup()\">\n </kendo-flatcolorpicker>\n </ng-template>\n <ng-container #container></ng-container>\n "
11047
11188
  }),
11048
11189
  __metadata("design:paramtypes", [ElementRef,
11049
11190
  PopupService,
@@ -11644,6 +11785,7 @@ var RadioButtonDirective = /** @class */ (function () {
11644
11785
  this.hostElement = hostElement;
11645
11786
  this.kendoClass = true;
11646
11787
  this._size = 'medium';
11788
+ validatePackage(packageMetadata);
11647
11789
  }
11648
11790
  Object.defineProperty(RadioButtonDirective.prototype, "size", {
11649
11791
  get: function () {
@@ -11746,7 +11888,7 @@ var RadioButtonModule = /** @class */ (function () {
11746
11888
  return RadioButtonModule;
11747
11889
  }());
11748
11890
 
11749
- var serial$3 = 0;
11891
+ var serial$2 = 0;
11750
11892
  /**
11751
11893
  * Represents an error message that will be shown underneath
11752
11894
  * a Kendo control or native HTML form-bound component after a validation.
@@ -11765,7 +11907,7 @@ var ErrorComponent = /** @class */ (function () {
11765
11907
  /**
11766
11908
  * @hidden
11767
11909
  */
11768
- this.id = "kendo-error-" + serial$3++;
11910
+ this.id = "kendo-error-" + serial$2++;
11769
11911
  this.roleAttribute = 'alert';
11770
11912
  }
11771
11913
  Object.defineProperty(ErrorComponent.prototype, "startClass", {
@@ -11825,7 +11967,7 @@ var ErrorComponent = /** @class */ (function () {
11825
11967
  return ErrorComponent;
11826
11968
  }());
11827
11969
 
11828
- var serial$4 = 0;
11970
+ var serial$3 = 0;
11829
11971
  /**
11830
11972
  * Represents a hint message that will be shown underneath a form-bound component.
11831
11973
  */
@@ -11842,7 +11984,7 @@ var HintComponent = /** @class */ (function () {
11842
11984
  /**
11843
11985
  * @hidden
11844
11986
  */
11845
- this.id = "kendo-hint-" + serial$4++;
11987
+ this.id = "kendo-hint-" + serial$3++;
11846
11988
  this.hostClass = true;
11847
11989
  }
11848
11990
  Object.defineProperty(HintComponent.prototype, "startClass", {