@progress/kendo-angular-inputs 11.3.0-develop.1 → 11.3.0-develop.11

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.
@@ -10,14 +10,14 @@ import { take, filter, concatMap, startWith, takeUntil, skip, debounceTime, thro
10
10
  import * as i1 from '@progress/kendo-angular-l10n';
11
11
  import { ComponentMessages, LocalizationService, L10N_PREFIX, RTL } from '@progress/kendo-angular-l10n';
12
12
  import * as i3 from '@progress/kendo-angular-common';
13
- import { Keys, guid, hasObservers, anyChanged, isDocumentAvailable, KendoInput, isChanged, DraggableModule, EventsModule, ResizeSensorModule, PreventableEvent, findFocusableChild, parseCSSClassNames, closest as closest$1 } from '@progress/kendo-angular-common';
13
+ import { Keys, guid, hasObservers, anyChanged, isDocumentAvailable, KendoInput, isChanged, DraggableModule, EventsModule, ResizeSensorModule, isSafari, PreventableEvent, findFocusableChild, parseCSSClassNames, closest as closest$1 } from '@progress/kendo-angular-common';
14
14
  import { validatePackage } from '@progress/kendo-licensing';
15
15
  import { caretAltUpIcon, caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon, checkIcon, exclamationCircleIcon, xIcon, caretAltExpandIcon, xCircleIcon, dropletSlashIcon, dropletSliderIcon, paletteIcon, hyperlinkOpenIcon } from '@progress/kendo-svg-icons';
16
16
  import * as i2 from '@progress/kendo-angular-buttons';
17
17
  import { ButtonModule } from '@progress/kendo-angular-buttons';
18
18
  import * as i1$1 from '@angular/common';
19
19
  import { CommonModule } from '@angular/common';
20
- import { browser, mobileOS, detectDesktopBrowser, detectMobileOS } from '@progress/kendo-common';
20
+ import { browser, mobileOS } from '@progress/kendo-common';
21
21
  import * as i1$2 from '@progress/kendo-angular-intl';
22
22
  import * as i2$1 from '@progress/kendo-angular-icons';
23
23
  import { IconsModule } from '@progress/kendo-angular-icons';
@@ -538,8 +538,8 @@ const packageMetadata = {
538
538
  name: '@progress/kendo-angular-inputs',
539
539
  productName: 'Kendo UI for Angular',
540
540
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
541
- publishDate: 1676463662,
542
- version: '11.3.0-develop.1',
541
+ publishDate: 1677599249,
542
+ version: '11.3.0-develop.11',
543
543
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
544
544
  };
545
545
 
@@ -6071,16 +6071,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
6071
6071
  }]
6072
6072
  }] });
6073
6073
 
6074
- /**
6075
- * @hidden
6076
- *
6077
- * Returns true if the used browser is Safari.
6078
- */
6079
- const isSafari = (userAgent) => {
6080
- const desktopBrowser = detectDesktopBrowser(userAgent);
6081
- const mobileOS = detectMobileOS(userAgent);
6082
- return (desktopBrowser && desktopBrowser.safari) || (mobileOS && mobileOS.browser === 'mobilesafari');
6083
- };
6084
6074
  /**
6085
6075
  * @hidden
6086
6076
  *
@@ -8642,6 +8632,11 @@ class ColorInputComponent {
8642
8632
  this.hex = parseColor(color, 'hex', this.opacity);
8643
8633
  this.valueChange.emit(color);
8644
8634
  }
8635
+ focusDragHandle(event) {
8636
+ event.preventDefault();
8637
+ event.stopImmediatePropagation();
8638
+ this.tabOut.emit();
8639
+ }
8645
8640
  handleHexValueChange(hex) {
8646
8641
  this.hex = hex;
8647
8642
  const color = parseColor(hex, 'rgba', this.opacity);
@@ -8682,7 +8677,7 @@ class ColorInputComponent {
8682
8677
  }
8683
8678
  }
8684
8679
  ColorInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColorInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
8685
- ColorInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColorInputComponent, selector: "kendo-colorinput", inputs: { focusableId: "focusableId", formatView: "formatView", tabindex: "tabindex", value: "value", opacity: "opacity", disabled: "disabled", readonly: "readonly" }, outputs: { valueChange: "valueChange", tabOut: "tabOut" }, host: { properties: { "class.k-colorgradient-inputs": "this.colorInputClass", "class.k-hstack": "this.colorInputClass" } }, viewQueries: [{ propertyName: "opacityInput", first: true, predicate: ["opacityInput"], descendants: true }, { propertyName: "hexInput", first: true, predicate: ["hexInput"], descendants: true }, { propertyName: "blueInput", first: true, predicate: ["blueInput"], descendants: true }, { propertyName: "toggleFormatButton", first: true, predicate: ["toggleFormatButton"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: `
8680
+ ColorInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColorInputComponent, selector: "kendo-colorinput", inputs: { focusableId: "focusableId", formatView: "formatView", tabindex: "tabindex", value: "value", opacity: "opacity", disabled: "disabled", readonly: "readonly" }, outputs: { valueChange: "valueChange", tabOut: "tabOut" }, host: { properties: { "class.k-colorgradient-inputs": "this.colorInputClass", "class.k-hstack": "this.colorInputClass" } }, viewQueries: [{ propertyName: "opacityInput", first: true, predicate: ["opacityInput"], descendants: true }, { propertyName: "hexInput", first: true, predicate: ["hexInput"], descendants: true }, { propertyName: "blueInput", first: true, predicate: ["blue"], descendants: true }, { propertyName: "toggleFormatButton", first: true, predicate: ["toggleFormatButton"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: `
8686
8681
  <div class="k-vstack">
8687
8682
  <button
8688
8683
  kendoButton
@@ -8710,7 +8705,7 @@ ColorInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8710
8705
  (blur)="handleHexInputBlur()"
8711
8706
  (input)="handleHexValueChange(hexInput.value)"
8712
8707
  [tabindex]="tabindex.toString()"
8713
- (keydown.tab)="$event.preventDefault(); tabOut.emit();"
8708
+ (keydown.tab)="focusDragHandle($event)"
8714
8709
  />
8715
8710
  <label [for]="focusableId" class="k-colorgradient-input-label">HEX</label>
8716
8711
  </div>
@@ -8794,7 +8789,7 @@ ColorInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
8794
8789
  [decimals]="2"
8795
8790
  (blur)="handleRgbaInputBlur()"
8796
8791
  (valueChange)="handleRgbaValueChange()"
8797
- (keydown.tab)="$event.preventDefault(); tabOut.emit();">
8792
+ (keydown.tab)="focusDragHandle($event)">
8798
8793
  </kendo-numerictextbox>
8799
8794
  <label [for]="alpha.focusableId" class="k-colorgradient-input-label">A</label>
8800
8795
  </div>
@@ -8832,7 +8827,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8832
8827
  (blur)="handleHexInputBlur()"
8833
8828
  (input)="handleHexValueChange(hexInput.value)"
8834
8829
  [tabindex]="tabindex.toString()"
8835
- (keydown.tab)="$event.preventDefault(); tabOut.emit();"
8830
+ (keydown.tab)="focusDragHandle($event)"
8836
8831
  />
8837
8832
  <label [for]="focusableId" class="k-colorgradient-input-label">HEX</label>
8838
8833
  </div>
@@ -8916,7 +8911,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8916
8911
  [decimals]="2"
8917
8912
  (blur)="handleRgbaInputBlur()"
8918
8913
  (valueChange)="handleRgbaValueChange()"
8919
- (keydown.tab)="$event.preventDefault(); tabOut.emit();">
8914
+ (keydown.tab)="focusDragHandle($event)">
8920
8915
  </kendo-numerictextbox>
8921
8916
  <label [for]="alpha.focusableId" class="k-colorgradient-input-label">A</label>
8922
8917
  </div>
@@ -8955,7 +8950,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
8955
8950
  args: ['hexInput']
8956
8951
  }], blueInput: [{
8957
8952
  type: ViewChild,
8958
- args: ['blueInput']
8953
+ args: ['blue']
8959
8954
  }], toggleFormatButton: [{
8960
8955
  type: ViewChild,
8961
8956
  args: ['toggleFormatButton', { static: false, read: ElementRef }]
@@ -9565,7 +9560,6 @@ class ColorGradientComponent {
9565
9560
  reset() {
9566
9561
  this.handleValueChange(undefined);
9567
9562
  this.updateUI();
9568
- this.host.nativeElement.focus();
9569
9563
  }
9570
9564
  /**
9571
9565
  * @hidden
@@ -10365,6 +10359,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10365
10359
  type: Injectable
10366
10360
  }] });
10367
10361
 
10362
+ /* eslint-disable @typescript-eslint/no-explicit-any */
10368
10363
  const DEFAULT_TILE_SIZE = 24;
10369
10364
  const DEFAULT_COLUMNS_COUNT = 10;
10370
10365
  const DEFAULT_PRESET = 'office';
@@ -10440,6 +10435,7 @@ class ColorPaletteComponent {
10440
10435
  */
10441
10436
  this.uniqueId = guid();
10442
10437
  this._tabindex = 0;
10438
+ this.subs = new Subscription();
10443
10439
  this.notifyNgTouched = () => { };
10444
10440
  this.notifyNgChanged = () => { };
10445
10441
  validatePackage(packageMetadata);
@@ -10546,6 +10542,10 @@ class ColorPaletteComponent {
10546
10542
  this.palette = this.palette || defaultPreset;
10547
10543
  this.setRows();
10548
10544
  }
10545
+ const elem = this.host.nativeElement;
10546
+ this.subs.add(this.renderer.listen(elem, 'keydown', event => this.handleKeydown(event)));
10547
+ this.subs.add(this.renderer.listen(elem, 'focus', () => this.handleFocus()));
10548
+ this.subs.add(this.renderer.listen(elem, 'blur', () => this.handleHostBlur()));
10549
10549
  }
10550
10550
  ngAfterViewInit() {
10551
10551
  this.setHostElementAriaLabel();
@@ -10556,6 +10556,7 @@ class ColorPaletteComponent {
10556
10556
  }
10557
10557
  }
10558
10558
  ngOnDestroy() {
10559
+ this.subs.unsubscribe();
10559
10560
  if (this.dynamicRTLSubscription) {
10560
10561
  this.dynamicRTLSubscription.unsubscribe();
10561
10562
  }
@@ -10699,7 +10700,8 @@ class ColorPaletteComponent {
10699
10700
  this.focusedCell = this.selectedCell;
10700
10701
  }
10701
10702
  selectCell(value) {
10702
- this.selectedCell = this.service.getCellCoordsFor(value);
10703
+ const parsedColor = parseColor(value, 'hex');
10704
+ this.selectedCell = this.service.getCellCoordsFor(parsedColor);
10703
10705
  this.focusedCell = this.selectedCell;
10704
10706
  }
10705
10707
  setRows() {
@@ -10729,7 +10731,7 @@ class ColorPaletteComponent {
10729
10731
  }
10730
10732
  }
10731
10733
  ColorPaletteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColorPaletteComponent, deps: [{ token: i0.ElementRef }, { token: ColorPaletteService }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
10732
- ColorPaletteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColorPaletteComponent, selector: "kendo-colorpalette", inputs: { id: "id", format: "format", value: "value", columns: "columns", palette: "palette", tabindex: "tabindex", disabled: "disabled", readonly: "readonly", tileSize: "tileSize" }, outputs: { selectionChange: "selectionChange", valueChange: "valueChange", cellSelection: "cellSelection" }, host: { listeners: { "keydown": "handleKeydown($event)", "focus": "handleFocus($event)", "blur": "handleHostBlur()" }, properties: { "attr.dir": "this.direction", "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant", "attr.id": "this.paletteId", "attr.tabindex": "this.hostTabindex", "class.k-colorpalette": "this.hostClasses", "attr.aria-disabled": "this.disabledClass", "class.k-disabled": "this.disabledClass", "attr.aria-readonly": "this.readonlyAttribute" } }, providers: [
10734
+ ColorPaletteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColorPaletteComponent, selector: "kendo-colorpalette", inputs: { id: "id", format: "format", value: "value", columns: "columns", palette: "palette", tabindex: "tabindex", disabled: "disabled", readonly: "readonly", tileSize: "tileSize" }, outputs: { selectionChange: "selectionChange", valueChange: "valueChange", cellSelection: "cellSelection" }, host: { properties: { "attr.dir": "this.direction", "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant", "attr.id": "this.paletteId", "attr.tabindex": "this.hostTabindex", "class.k-colorpalette": "this.hostClasses", "attr.aria-disabled": "this.disabledClass", "class.k-disabled": "this.disabledClass", "attr.aria-readonly": "this.readonlyAttribute" } }, providers: [
10733
10735
  {
10734
10736
  multi: true,
10735
10737
  provide: NG_VALUE_ACCESSOR,
@@ -10761,7 +10763,7 @@ ColorPaletteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
10761
10763
  role="gridcell"
10762
10764
  [class.k-selected]="selectedCell?.row === rowIndex && selectedCell?.col === colIndex"
10763
10765
  [class.k-focus]="focusInComponent && focusedCell?.row === rowIndex && focusedCell?.col === colIndex"
10764
- [attr.aria-selected]="selectedCell?.row === rowIndex && selectedCell?.col === colIndex"
10766
+ [attr.aria-selected]="selectedCell?.row === rowIndex && selectedCell?.col === colIndex ? 'true' : undefined"
10765
10767
  [attr.aria-label]="color"
10766
10768
  class="k-colorpalette-tile"
10767
10769
  [id]="'k-' + rowIndex + '-' + colIndex + '-' + uniqueId"
@@ -10817,7 +10819,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10817
10819
  role="gridcell"
10818
10820
  [class.k-selected]="selectedCell?.row === rowIndex && selectedCell?.col === colIndex"
10819
10821
  [class.k-focus]="focusInComponent && focusedCell?.row === rowIndex && focusedCell?.col === colIndex"
10820
- [attr.aria-selected]="selectedCell?.row === rowIndex && selectedCell?.col === colIndex"
10822
+ [attr.aria-selected]="selectedCell?.row === rowIndex && selectedCell?.col === colIndex ? 'true' : undefined"
10821
10823
  [attr.aria-label]="color"
10822
10824
  class="k-colorpalette-tile"
10823
10825
  [id]="'k-' + rowIndex + '-' + colIndex + '-' + uniqueId"
@@ -10887,15 +10889,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
10887
10889
  }], readonlyAttribute: [{
10888
10890
  type: HostBinding,
10889
10891
  args: ['attr.aria-readonly']
10890
- }], handleKeydown: [{
10891
- type: HostListener,
10892
- args: ['keydown', ['$event']]
10893
- }], handleFocus: [{
10894
- type: HostListener,
10895
- args: ['focus', ['$event']]
10896
- }], handleHostBlur: [{
10897
- type: HostListener,
10898
- args: ['blur']
10899
10892
  }] } });
10900
10893
 
10901
10894
  /* eslint-disable @typescript-eslint/no-explicit-any */
@@ -10946,7 +10939,7 @@ class FlatColorPickerHeaderComponent {
10946
10939
  onHeaderTabOut(ev, index) {
10947
10940
  if (index === 0) {
10948
10941
  ev.preventDefault();
10949
- this.tabOut.emit();
10942
+ this.tabOut.emit(ev);
10950
10943
  }
10951
10944
  }
10952
10945
  }
@@ -10955,7 +10948,9 @@ FlatColorPickerHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
10955
10948
  <div class="k-coloreditor-header-actions k-hstack">
10956
10949
  <div
10957
10950
  *ngIf="viewButtons"
10958
- class="k-button-group k-button-group-flat">
10951
+ class="k-button-group k-button-group-flat"
10952
+ role="group"
10953
+ >
10959
10954
  <button
10960
10955
  *ngFor="let view of views; let i = index;"
10961
10956
  kendoButton
@@ -11014,7 +11009,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11014
11009
  <div class="k-coloreditor-header-actions k-hstack">
11015
11010
  <div
11016
11011
  *ngIf="viewButtons"
11017
- class="k-button-group k-button-group-flat">
11012
+ class="k-button-group k-button-group-flat"
11013
+ role="group"
11014
+ >
11018
11015
  <button
11019
11016
  *ngFor="let view of views; let i = index;"
11020
11017
  kendoButton
@@ -11397,15 +11394,6 @@ class FlatColorPickerComponent {
11397
11394
  }
11398
11395
  return this.activeView === 'gradient' ? this.gradient : this.palette;
11399
11396
  }
11400
- /**
11401
- * @hidden
11402
- */
11403
- get lastFocusable() {
11404
- if (this.preview) {
11405
- return this.footer.lastButton.nativeElement;
11406
- }
11407
- return this.activeView === 'gradient' ? this.gradient : this.palette;
11408
- }
11409
11397
  ngOnInit() {
11410
11398
  this.selection = this.value;
11411
11399
  this.control = this.injector.get(NgControl, null);
@@ -11433,6 +11421,30 @@ class FlatColorPickerComponent {
11433
11421
  }
11434
11422
  this.subscriptions.unsubscribe();
11435
11423
  }
11424
+ /**
11425
+ * @hidden
11426
+ */
11427
+ focusFirstHeaderButton() {
11428
+ if (this.gradientElement.nativeElement === document.activeElement) {
11429
+ if (this.headerHasContent && !this.preview) {
11430
+ const firstHeaderButton = this.headerElement.nativeElement.querySelector('.k-button');
11431
+ firstHeaderButton.focus();
11432
+ }
11433
+ }
11434
+ }
11435
+ /**
11436
+ * @hidden
11437
+ */
11438
+ lastFocusable(event) {
11439
+ if (this.preview) {
11440
+ this.footer.lastButton.nativeElement.focus();
11441
+ return;
11442
+ }
11443
+ event.stopImmediatePropagation();
11444
+ const gradient = this.gradientElement?.nativeElement;
11445
+ const palette = this.palette?.host.nativeElement;
11446
+ this.activeView === 'gradient' ? gradient.focus() : palette.focus();
11447
+ }
11436
11448
  /**
11437
11449
  * @hidden
11438
11450
  */
@@ -11515,8 +11527,6 @@ class FlatColorPickerComponent {
11515
11527
  */
11516
11528
  onClearButtonClick() {
11517
11529
  this.resetInnerComponentValue();
11518
- this.internalNavigation = false;
11519
- this.host.nativeElement.focus();
11520
11530
  this.clearButtonClick.emit();
11521
11531
  }
11522
11532
  /**
@@ -11706,7 +11716,7 @@ FlatColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
11706
11716
  hexInputPlaceholder="HEX">
11707
11717
  </ng-container>
11708
11718
  <div kendoFlatColorPickerHeader
11709
- [innerTabIndex]="this.innerTabIndex"
11719
+ [innerTabIndex]="innerTabIndex"
11710
11720
  *ngIf="headerHasContent"
11711
11721
  #header
11712
11722
  [clearButton]="clearButton"
@@ -11718,7 +11728,7 @@ FlatColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
11718
11728
  (clearButtonClick)="onClearButtonClick()"
11719
11729
  (viewChange)="onViewChange($event)"
11720
11730
  (valuePaneClick)="resetSelection($event)"
11721
- (tabOut)="lastFocusable.focus()"></div>
11731
+ (tabOut)="lastFocusable($event)"></div>
11722
11732
  <div class="k-coloreditor-views k-vstack">
11723
11733
  <kendo-colorgradient #gradient
11724
11734
  [tabindex]="innerTabIndex"
@@ -11731,6 +11741,7 @@ FlatColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
11731
11741
  [gradientSliderSmallStep]="gradientSettings.gradientSliderSmallStep"
11732
11742
  [gradientSliderStep]="gradientSettings.gradientSliderStep"
11733
11743
  [readonly]="readonly"
11744
+ (keydown.tab)="focusFirstHeaderButton()"
11734
11745
  (valueChange)="handleValueChange($event)"
11735
11746
  ></kendo-colorgradient>
11736
11747
  <kendo-colorpalette #palette
@@ -11829,7 +11840,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11829
11840
  hexInputPlaceholder="HEX">
11830
11841
  </ng-container>
11831
11842
  <div kendoFlatColorPickerHeader
11832
- [innerTabIndex]="this.innerTabIndex"
11843
+ [innerTabIndex]="innerTabIndex"
11833
11844
  *ngIf="headerHasContent"
11834
11845
  #header
11835
11846
  [clearButton]="clearButton"
@@ -11841,7 +11852,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11841
11852
  (clearButtonClick)="onClearButtonClick()"
11842
11853
  (viewChange)="onViewChange($event)"
11843
11854
  (valuePaneClick)="resetSelection($event)"
11844
- (tabOut)="lastFocusable.focus()"></div>
11855
+ (tabOut)="lastFocusable($event)"></div>
11845
11856
  <div class="k-coloreditor-views k-vstack">
11846
11857
  <kendo-colorgradient #gradient
11847
11858
  [tabindex]="innerTabIndex"
@@ -11854,6 +11865,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
11854
11865
  [gradientSliderSmallStep]="gradientSettings.gradientSliderSmallStep"
11855
11866
  [gradientSliderStep]="gradientSettings.gradientSliderStep"
11856
11867
  [readonly]="readonly"
11868
+ (keydown.tab)="focusFirstHeaderButton()"
11857
11869
  (valueChange)="handleValueChange($event)"
11858
11870
  ></kendo-colorgradient>
11859
11871
  <kendo-colorpalette #palette
@@ -12434,6 +12446,7 @@ class ColorPickerComponent {
12434
12446
  open = isPresent(open) ? open : !this.isOpen;
12435
12447
  if (open) {
12436
12448
  this.openPopup();
12449
+ this.focusFirstElement();
12437
12450
  }
12438
12451
  }
12439
12452
  /**
@@ -12564,9 +12577,9 @@ class ColorPickerComponent {
12564
12577
  focusFirstElement() {
12565
12578
  this.ngZone.onStable.pipe(take(1)).subscribe(() => {
12566
12579
  if (this.flatColorPicker) {
12567
- const gradient = this.flatColorPicker.gradient;
12568
- const elementToFocus = gradient ? gradient.gradientDragHandle :
12569
- this.flatColorPicker.palette.host;
12580
+ const gradientDragHandle = this.flatColorPicker.gradient?.gradientDragHandle;
12581
+ const palette = this.flatColorPicker.palette?.host;
12582
+ const elementToFocus = gradientDragHandle ? gradientDragHandle : palette;
12570
12583
  elementToFocus.nativeElement.focus();
12571
12584
  }
12572
12585
  });
@@ -12760,7 +12773,6 @@ ColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
12760
12773
  kendoButton
12761
12774
  tabindex="-1"
12762
12775
  type="button"
12763
- role="none"
12764
12776
  icon="caret-alt-down"
12765
12777
  [svgIcon]="arrowDownIcon"
12766
12778
  aria-hidden="true"
@@ -12884,7 +12896,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
12884
12896
  kendoButton
12885
12897
  tabindex="-1"
12886
12898
  type="button"
12887
- role="none"
12888
12899
  icon="caret-alt-down"
12889
12900
  [svgIcon]="arrowDownIcon"
12890
12901
  aria-hidden="true"
@@ -13942,6 +13953,8 @@ class SignatureOpenEvent extends PreventableEvent {
13942
13953
  }
13943
13954
 
13944
13955
  const noop = () => { };
13956
+ let _id = 0;
13957
+ const nextId = () => 'k-signature-focusable-' + _id++;
13945
13958
  const FOCUSED_CLASS = 'k-focus';
13946
13959
  const DEFAULT_SIZE = 'medium';
13947
13960
  const DEFAULT_ROUNDED = 'medium';
@@ -13964,6 +13977,10 @@ class SignatureComponent {
13964
13977
  this.cd = cd;
13965
13978
  this.localization = localization;
13966
13979
  this.staticHostClasses = true;
13980
+ /**
13981
+ * @hidden
13982
+ */
13983
+ this.focusableId = nextId();
13967
13984
  /**
13968
13985
  * Sets the read-only state of the Signature.
13969
13986
  *
@@ -14242,7 +14259,10 @@ class SignatureComponent {
14242
14259
  return;
14243
14260
  }
14244
14261
  this.applyHostClasses();
14245
- this.readThemeColors();
14262
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
14263
+ this.readThemeColors();
14264
+ this.instance.setOptions(this.options);
14265
+ });
14246
14266
  this.ngZone.runOutsideAngular(() => {
14247
14267
  const element = this.canvas.nativeElement;
14248
14268
  this.instance = new SignaturePad(element, {
@@ -14254,6 +14274,11 @@ class SignatureComponent {
14254
14274
  if (this.value) {
14255
14275
  this.instance.loadImage(this.value);
14256
14276
  }
14277
+ if (this.maximized) {
14278
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
14279
+ this.minimizeButton?.nativeElement.focus();
14280
+ });
14281
+ }
14257
14282
  this.addEventListeners();
14258
14283
  });
14259
14284
  }
@@ -14335,7 +14360,9 @@ class SignatureComponent {
14335
14360
  this.close.next(args);
14336
14361
  if (!args.isDefaultPrevented()) {
14337
14362
  this.isOpen = false;
14338
- this.maximizeButton?.nativeElement.focus();
14363
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
14364
+ (this.maximizeButton || this.element)?.nativeElement?.focus();
14365
+ });
14339
14366
  }
14340
14367
  }
14341
14368
  /**
@@ -14507,11 +14534,11 @@ class SignatureComponent {
14507
14534
  }
14508
14535
  }
14509
14536
  SignatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SignatureComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
14510
- SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SignatureComponent, selector: "kendo-signature", inputs: { readonly: "readonly", disabled: "disabled", width: "width", height: "height", value: "value", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", color: "color", backgroundColor: "backgroundColor", strokeWidth: "strokeWidth", smooth: "smooth", maximizable: "maximizable", maximized: "maximized", popupScale: "popupScale", exportScale: "exportScale", parentLocalization: "parentLocalization", hideLine: "hideLine" }, outputs: { valueChange: "valueChange", open: "open", close: "close", onFocus: "focus", onBlur: "blur", minimize: "minimize" }, host: { properties: { "class.k-signature": "this.staticHostClasses", "class.k-input": "this.staticHostClasses", "attr.dir": "this.direction", "class.k-readonly": "this.readonly", "class.k-disabled": "this.disabled", "style.width.px": "this.width", "style.height.px": "this.height" } }, providers: [
14537
+ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: SignatureComponent, selector: "kendo-signature", inputs: { focusableId: "focusableId", readonly: "readonly", disabled: "disabled", width: "width", height: "height", value: "value", tabindex: "tabindex", size: "size", rounded: "rounded", fillMode: "fillMode", color: "color", backgroundColor: "backgroundColor", strokeWidth: "strokeWidth", smooth: "smooth", maximizable: "maximizable", maximized: "maximized", popupScale: "popupScale", exportScale: "exportScale", parentLocalization: "parentLocalization", hideLine: "hideLine" }, outputs: { valueChange: "valueChange", open: "open", close: "close", onFocus: "focus", onBlur: "blur", minimize: "minimize" }, host: { properties: { "class.k-signature": "this.staticHostClasses", "class.k-input": "this.staticHostClasses", "attr.dir": "this.direction", "class.k-readonly": "this.readonly", "class.k-disabled": "this.disabled", "style.width.px": "this.width", "style.height.px": "this.height" } }, providers: [
14511
14538
  LocalizationService,
14512
14539
  { provide: L10N_PREFIX, useValue: 'kendo.signature' },
14513
14540
  { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SignatureComponent) }
14514
- ], viewQueries: [{ propertyName: "maximizeButton", first: true, predicate: ["maximizeButton"], descendants: true, read: ElementRef }, { propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }], exportAs: ["kendoSignature"], usesOnChanges: true, ngImport: i0, template: `
14541
+ ], viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }, { propertyName: "minimizeButton", first: true, predicate: ["minimize"], descendants: true, read: ElementRef }, { propertyName: "maximizeButton", first: true, predicate: ["maximize"], descendants: true, read: ElementRef }], exportAs: ["kendoSignature"], usesOnChanges: true, ngImport: i0, template: `
14515
14542
  <ng-container kendoSignatureLocalizedMessages
14516
14543
  i18n-clear="kendo.signature.clear|The message for the Clear button."
14517
14544
  clear="Clear"
@@ -14523,10 +14550,19 @@ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
14523
14550
  canvasLabel="Signature canvas">
14524
14551
  </ng-container>
14525
14552
 
14553
+ <div
14554
+ #canvas
14555
+ class="k-signature-canvas"
14556
+ [attr.tabindex]="tabindex"
14557
+ [id]="focusableId"
14558
+ role="img"
14559
+ [attr.aria-label]="canvasLabel"
14560
+ ></div>
14561
+
14526
14562
  <div class="k-signature-actions k-signature-actions-top">
14527
14563
  <button
14564
+ #maximize
14528
14565
  *ngIf="showMaximize"
14529
- #maximizeButton
14530
14566
  kendoButton
14531
14567
  class="k-signature-action k-signature-maximize"
14532
14568
  icon="hyperlink-open"
@@ -14538,6 +14574,7 @@ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
14538
14574
  [title]="maximizeTitle">
14539
14575
  </button>
14540
14576
  <button
14577
+ #minimize
14541
14578
  *ngIf="showMinimize"
14542
14579
  kendoButton
14543
14580
  class="k-signature-action k-signature-minimize k-rotate-180"
@@ -14550,13 +14587,6 @@ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
14550
14587
  [title]="minimizeTitle">
14551
14588
  </button>
14552
14589
  </div>
14553
- <div
14554
- #canvas
14555
- class="k-signature-canvas"
14556
- [attr.tabindex]="tabindex"
14557
- role="img"
14558
- [attr.aria-label]="canvasLabel"
14559
- ></div>
14560
14590
  <div
14561
14591
  *ngIf="!hideLine"
14562
14592
  class="k-signature-line"
@@ -14600,10 +14630,11 @@ SignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
14600
14630
  [width]="popupWidth"
14601
14631
  [height]="popupHeight"
14602
14632
  [popupScale]="popupScale"
14633
+ [exportScale]="(1 / popupScale) * exportScale"
14603
14634
  [parentLocalization]="localization">
14604
14635
  </kendo-signature>
14605
14636
  </kendo-dialog>
14606
- `, isInline: true, components: [{ type: i2.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i3$1.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: SignatureComponent, selector: "kendo-signature", inputs: ["readonly", "disabled", "width", "height", "value", "tabindex", "size", "rounded", "fillMode", "color", "backgroundColor", "strokeWidth", "smooth", "maximizable", "maximized", "popupScale", "exportScale", "parentLocalization", "hideLine"], outputs: ["valueChange", "open", "close", "focus", "blur", "minimize"], exportAs: ["kendoSignature"] }], directives: [{ type: LocalizedSignatureMessagesDirective, selector: "[kendoSignatureLocalizedMessages]" }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14637
+ `, isInline: true, components: [{ type: i2.Button, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i3$1.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: SignatureComponent, selector: "kendo-signature", inputs: ["focusableId", "readonly", "disabled", "width", "height", "value", "tabindex", "size", "rounded", "fillMode", "color", "backgroundColor", "strokeWidth", "smooth", "maximizable", "maximized", "popupScale", "exportScale", "parentLocalization", "hideLine"], outputs: ["valueChange", "open", "close", "focus", "blur", "minimize"], exportAs: ["kendoSignature"] }], directives: [{ type: LocalizedSignatureMessagesDirective, selector: "[kendoSignatureLocalizedMessages]" }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14607
14638
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: SignatureComponent, decorators: [{
14608
14639
  type: Component,
14609
14640
  args: [{
@@ -14627,10 +14658,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14627
14658
  canvasLabel="Signature canvas">
14628
14659
  </ng-container>
14629
14660
 
14661
+ <div
14662
+ #canvas
14663
+ class="k-signature-canvas"
14664
+ [attr.tabindex]="tabindex"
14665
+ [id]="focusableId"
14666
+ role="img"
14667
+ [attr.aria-label]="canvasLabel"
14668
+ ></div>
14669
+
14630
14670
  <div class="k-signature-actions k-signature-actions-top">
14631
14671
  <button
14672
+ #maximize
14632
14673
  *ngIf="showMaximize"
14633
- #maximizeButton
14634
14674
  kendoButton
14635
14675
  class="k-signature-action k-signature-maximize"
14636
14676
  icon="hyperlink-open"
@@ -14642,6 +14682,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14642
14682
  [title]="maximizeTitle">
14643
14683
  </button>
14644
14684
  <button
14685
+ #minimize
14645
14686
  *ngIf="showMinimize"
14646
14687
  kendoButton
14647
14688
  class="k-signature-action k-signature-minimize k-rotate-180"
@@ -14654,13 +14695,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14654
14695
  [title]="minimizeTitle">
14655
14696
  </button>
14656
14697
  </div>
14657
- <div
14658
- #canvas
14659
- class="k-signature-canvas"
14660
- [attr.tabindex]="tabindex"
14661
- role="img"
14662
- [attr.aria-label]="canvasLabel"
14663
- ></div>
14664
14698
  <div
14665
14699
  *ngIf="!hideLine"
14666
14700
  class="k-signature-line"
@@ -14704,6 +14738,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14704
14738
  [width]="popupWidth"
14705
14739
  [height]="popupHeight"
14706
14740
  [popupScale]="popupScale"
14741
+ [exportScale]="(1 / popupScale) * exportScale"
14707
14742
  [parentLocalization]="localization">
14708
14743
  </kendo-signature>
14709
14744
  </kendo-dialog>
@@ -14715,12 +14750,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14715
14750
  }, {
14716
14751
  type: HostBinding,
14717
14752
  args: ['class.k-input']
14753
+ }], focusableId: [{
14754
+ type: Input
14718
14755
  }], direction: [{
14719
14756
  type: HostBinding,
14720
14757
  args: ['attr.dir']
14721
- }], maximizeButton: [{
14722
- type: ViewChild,
14723
- args: ['maximizeButton', { read: ElementRef }]
14724
14758
  }], readonly: [{
14725
14759
  type: HostBinding,
14726
14760
  args: ['class.k-readonly']
@@ -14788,6 +14822,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14788
14822
  }], canvas: [{
14789
14823
  type: ViewChild,
14790
14824
  args: ['canvas']
14825
+ }], minimizeButton: [{
14826
+ type: ViewChild,
14827
+ args: ['minimize', { read: ElementRef }]
14828
+ }], maximizeButton: [{
14829
+ type: ViewChild,
14830
+ args: ['maximize', { read: ElementRef }]
14791
14831
  }] } });
14792
14832
 
14793
14833
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-inputs",
3
- "version": "11.3.0-develop.1",
3
+ "version": "11.3.0-develop.11",
4
4
  "description": "Kendo UI for Angular Inputs Package - Everything you need to build professional form functionality (Checkbox, ColorGradient, ColorPalette, ColorPicker, FlatColorPicker, FormField, MaskedTextBox, NumericTextBox, RadioButton, RangeSlider, Slider, Switch, TextArea, and TextBox Components)",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -33,19 +33,19 @@
33
33
  "@angular/platform-browser": "13 - 15",
34
34
  "@progress/kendo-drawing": "^1.17.2",
35
35
  "@progress/kendo-licensing": "^1.0.2",
36
- "@progress/kendo-angular-buttons": "11.3.0-develop.1",
37
- "@progress/kendo-angular-common": "11.3.0-develop.1",
38
- "@progress/kendo-angular-dialog": "11.3.0-develop.1",
39
- "@progress/kendo-angular-intl": "11.3.0-develop.1",
40
- "@progress/kendo-angular-l10n": "11.3.0-develop.1",
41
- "@progress/kendo-angular-popup": "11.3.0-develop.1",
42
- "@progress/kendo-angular-icons": "11.3.0-develop.1",
36
+ "@progress/kendo-angular-buttons": "11.3.0-develop.11",
37
+ "@progress/kendo-angular-common": "11.3.0-develop.11",
38
+ "@progress/kendo-angular-dialog": "11.3.0-develop.11",
39
+ "@progress/kendo-angular-intl": "11.3.0-develop.11",
40
+ "@progress/kendo-angular-l10n": "11.3.0-develop.11",
41
+ "@progress/kendo-angular-popup": "11.3.0-develop.11",
42
+ "@progress/kendo-angular-icons": "11.3.0-develop.11",
43
43
  "rxjs": "^6.5.3 || ^7.0.0",
44
- "@progress/kendo-angular-upload": "11.3.0-develop.1"
44
+ "@progress/kendo-angular-upload": "11.3.0-develop.11"
45
45
  },
46
46
  "dependencies": {
47
47
  "tslib": "^2.3.1",
48
- "@progress/kendo-angular-schematics": "11.3.0-develop.1",
48
+ "@progress/kendo-angular-schematics": "11.3.0-develop.11",
49
49
  "@progress/kendo-common": "^0.2.2",
50
50
  "@progress/kendo-draggable": "^3.0.0",
51
51
  "@progress/kendo-inputs-common": "^3.1.0"
package/shared/utils.d.ts CHANGED
@@ -2,12 +2,6 @@
2
2
  * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- /**
6
- * @hidden
7
- *
8
- * Returns true if the used browser is Safari.
9
- */
10
- export declare const isSafari: (userAgent: any) => boolean;
11
5
  /**
12
6
  * @hidden
13
7
  *