@progress/kendo-angular-common 21.4.1 → 22.0.0-develop.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/progress-kendo-angular-common.mjs +34 -34
- package/package.json +5 -7
- package/esm2022/adornments/prefix.directive.mjs +0 -53
- package/esm2022/adornments/separator-orientation.mjs +0 -5
- package/esm2022/adornments/separator.component.mjs +0 -70
- package/esm2022/adornments/suffix.directive.mjs +0 -59
- package/esm2022/adornments.mjs +0 -7
- package/esm2022/directives.mjs +0 -68
- package/esm2022/dom-queries/closest-by-selector.mjs +0 -20
- package/esm2022/dom-queries/closest-in-scope.mjs +0 -13
- package/esm2022/dom-queries/closest.mjs +0 -10
- package/esm2022/dom-queries/contains.mjs +0 -13
- package/esm2022/dom-queries/find-element.mjs +0 -22
- package/esm2022/dom-queries/find-focusable-child.mjs +0 -9
- package/esm2022/dom-queries/find-focusable.mjs +0 -9
- package/esm2022/dom-queries/has-classes.mjs +0 -9
- package/esm2022/dom-queries/is-focusable-with-tab-key.mjs +0 -14
- package/esm2022/dom-queries/is-focusable.mjs +0 -14
- package/esm2022/dom-queries/is-visible.mjs +0 -12
- package/esm2022/dom-queries/matches-classes.mjs +0 -6
- package/esm2022/dom-queries/matches-node-name.mjs +0 -11
- package/esm2022/dom-queries/rtl-scroll-position.mjs +0 -17
- package/esm2022/dom-queries.mjs +0 -18
- package/esm2022/draggable/draggable.directive.mjs +0 -68
- package/esm2022/draggable.mjs +0 -5
- package/esm2022/enums/keys.mjs +0 -75
- package/esm2022/enums.mjs +0 -5
- package/esm2022/events/events-outside-angular.directive.mjs +0 -58
- package/esm2022/events.mjs +0 -5
- package/esm2022/index.mjs +0 -24
- package/esm2022/localization/replace-message-placeholder.mjs +0 -8
- package/esm2022/preventable-event.mjs +0 -22
- package/esm2022/progress-kendo-angular-common.mjs +0 -8
- package/esm2022/resize-sensor/compat.service.mjs +0 -103
- package/esm2022/resize-sensor/observer.service.mjs +0 -41
- package/esm2022/resize-sensor/resize-batch.service.mjs +0 -69
- package/esm2022/resize-sensor/resize-sensor.component.mjs +0 -71
- package/esm2022/resize-sensor/resize.service.mjs +0 -65
- package/esm2022/resize-sensor.mjs +0 -8
- package/esm2022/template-context/index.mjs +0 -5
- package/esm2022/template-context/template-context.directive.mjs +0 -37
- package/esm2022/toggle-button-tab-stop/toggle-button-tab-stop.directive.mjs +0 -262
- package/esm2022/toggle-button-tab-stop/toggle-button-tab-stop.mjs +0 -10
- package/esm2022/toggle-button-tab-stop.mjs +0 -6
- package/esm2022/tokens.mjs +0 -6
- package/esm2022/utils/any-changed.mjs +0 -9
- package/esm2022/utils/detect-browser.mjs +0 -28
- package/esm2022/utils/focusable-selectors.mjs +0 -20
- package/esm2022/utils/forms-utils.mjs +0 -13
- package/esm2022/utils/getter.mjs +0 -27
- package/esm2022/utils/guid.mjs +0 -29
- package/esm2022/utils/has-observers.mjs +0 -8
- package/esm2022/utils/html-attributes.mjs +0 -49
- package/esm2022/utils/is-changed.mjs +0 -10
- package/esm2022/utils/is-document-available.mjs +0 -8
- package/esm2022/utils/keys-normalizer.mjs +0 -95
- package/esm2022/utils/ng-class-parser.mjs +0 -78
- package/esm2022/utils/objects-equal.mjs +0 -12
- package/esm2022/utils/process-css-value.mjs +0 -23
- package/esm2022/utils/scrollbar-width.service.mjs +0 -43
- package/esm2022/utils/setter.mjs +0 -28
- package/esm2022/utils.mjs +0 -14
- package/esm2022/watermark/index.mjs +0 -6
- package/esm2022/watermark/utils.mjs +0 -58
- package/esm2022/watermark/validation.mjs +0 -22
- package/esm2022/watermark/watermark.component.mjs +0 -116
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { EventEmitter,
|
|
6
|
+
import { EventEmitter, Output, Input, Directive, Injectable, Component, ViewChild, HostBinding, Optional, isDevMode } from '@angular/core';
|
|
7
7
|
import { detectDesktopBrowser, detectMobileOS } from '@progress/kendo-common';
|
|
8
8
|
import { take, auditTime } from 'rxjs/operators';
|
|
9
9
|
import { Draggable } from '@progress/kendo-draggable';
|
|
@@ -283,10 +283,10 @@ class DraggableDirective {
|
|
|
283
283
|
this.draggable = undefined;
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
287
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
286
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
287
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: DraggableDirective, isStandalone: true, selector: "[kendoDraggable]", inputs: { enableDrag: "enableDrag" }, outputs: { kendoPress: "kendoPress", kendoDrag: "kendoDrag", kendoRelease: "kendoRelease" }, usesOnChanges: true, ngImport: i0 });
|
|
288
288
|
}
|
|
289
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DraggableDirective, decorators: [{
|
|
290
290
|
type: Directive,
|
|
291
291
|
args: [{
|
|
292
292
|
selector: '[kendoDraggable]',
|
|
@@ -468,10 +468,10 @@ class EventsOutsideAngularDirective {
|
|
|
468
468
|
this.subscriptions = null;
|
|
469
469
|
}
|
|
470
470
|
}
|
|
471
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
472
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
471
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: EventsOutsideAngularDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
472
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: EventsOutsideAngularDirective, isStandalone: true, selector: "[kendoEventsOutsideAngular]", inputs: { events: ["kendoEventsOutsideAngular", "events"], scope: "scope" }, ngImport: i0 });
|
|
473
473
|
}
|
|
474
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
474
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: EventsOutsideAngularDirective, decorators: [{
|
|
475
475
|
type: Directive,
|
|
476
476
|
args: [{
|
|
477
477
|
selector: '[kendoEventsOutsideAngular]',
|
|
@@ -732,10 +732,10 @@ class ResizeBatchService {
|
|
|
732
732
|
this.scheduled = [];
|
|
733
733
|
this.unsubscribe();
|
|
734
734
|
}
|
|
735
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
736
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
735
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ResizeBatchService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
736
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ResizeBatchService, providedIn: 'root' });
|
|
737
737
|
}
|
|
738
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
738
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ResizeBatchService, decorators: [{
|
|
739
739
|
type: Injectable,
|
|
740
740
|
args: [{
|
|
741
741
|
providedIn: 'root'
|
|
@@ -787,10 +787,10 @@ class ResizeSensorComponent {
|
|
|
787
787
|
acceptSize(size) {
|
|
788
788
|
this.resizeService.acceptSize(size);
|
|
789
789
|
}
|
|
790
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
791
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
790
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ResizeSensorComponent, deps: [{ token: ResizeBatchService }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
791
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: ResizeSensorComponent, isStandalone: true, selector: "kendo-resize-sensor", inputs: { rateLimit: "rateLimit" }, outputs: { resize: "resize" }, ngImport: i0, template: '', isInline: true });
|
|
792
792
|
}
|
|
793
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
793
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ResizeSensorComponent, decorators: [{
|
|
794
794
|
type: Component,
|
|
795
795
|
args: [{
|
|
796
796
|
selector: 'kendo-resize-sensor',
|
|
@@ -1125,8 +1125,8 @@ class WatermarkOverlayComponent {
|
|
|
1125
1125
|
get isBannerRendered() {
|
|
1126
1126
|
return isDocumentAvailable() && !!this.banner?.nativeElement;
|
|
1127
1127
|
}
|
|
1128
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1129
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1128
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: WatermarkOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1129
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: WatermarkOverlayComponent, isStandalone: true, selector: "div[kendoWatermarkOverlay]", inputs: { licenseMessage: "licenseMessage" }, host: { properties: { "style": "this.watermarkStyle" } }, viewQueries: [{ propertyName: "banner", first: true, predicate: ["banner"], descendants: true }], ngImport: i0, template: `
|
|
1130
1130
|
@if (isOpen && bannerMounted) {
|
|
1131
1131
|
<div #banner [ngStyle]="bannerStyles">
|
|
1132
1132
|
<span [ngStyle]="{ display: 'flex', alignSelf: 'center', marginRight: '8px' }">
|
|
@@ -1154,7 +1154,7 @@ class WatermarkOverlayComponent {
|
|
|
1154
1154
|
}
|
|
1155
1155
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
1156
1156
|
}
|
|
1157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: WatermarkOverlayComponent, decorators: [{
|
|
1158
1158
|
type: Component,
|
|
1159
1159
|
args: [{
|
|
1160
1160
|
selector: 'div[kendoWatermarkOverlay]',
|
|
@@ -1249,10 +1249,10 @@ class PrefixTemplateDirective {
|
|
|
1249
1249
|
constructor(templateRef) {
|
|
1250
1250
|
this.templateRef = templateRef;
|
|
1251
1251
|
}
|
|
1252
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1253
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1252
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PrefixTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1253
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: PrefixTemplateDirective, isStandalone: true, selector: "[kendoPrefixTemplate]", inputs: { showSeparator: "showSeparator" }, ngImport: i0 });
|
|
1254
1254
|
}
|
|
1255
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PrefixTemplateDirective, decorators: [{
|
|
1256
1256
|
type: Directive,
|
|
1257
1257
|
args: [{
|
|
1258
1258
|
selector: '[kendoPrefixTemplate]',
|
|
@@ -1303,10 +1303,10 @@ class SuffixTemplateDirective {
|
|
|
1303
1303
|
constructor(templateRef) {
|
|
1304
1304
|
this.templateRef = templateRef;
|
|
1305
1305
|
}
|
|
1306
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1307
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1306
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SuffixTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1307
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: SuffixTemplateDirective, isStandalone: true, selector: "[kendoSuffixTemplate]", inputs: { showSeparator: "showSeparator" }, ngImport: i0 });
|
|
1308
1308
|
}
|
|
1309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SuffixTemplateDirective, decorators: [{
|
|
1310
1310
|
type: Directive,
|
|
1311
1311
|
args: [{
|
|
1312
1312
|
selector: '[kendoSuffixTemplate]',
|
|
@@ -1360,10 +1360,10 @@ class SeparatorComponent {
|
|
|
1360
1360
|
* @hidden
|
|
1361
1361
|
*/
|
|
1362
1362
|
hostClass = true;
|
|
1363
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1364
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1363
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1364
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: SeparatorComponent, isStandalone: true, selector: "kendo-separator", inputs: { orientation: "orientation" }, host: { properties: { "class.k-input-separator-vertical": "this.vertical", "class.k-input-separator-horizontal": "this.horizontal", "class.k-input-separator": "this.hostClass" } }, ngImport: i0, template: ``, isInline: true });
|
|
1365
1365
|
}
|
|
1366
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1366
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SeparatorComponent, decorators: [{
|
|
1367
1367
|
type: Component,
|
|
1368
1368
|
args: [{
|
|
1369
1369
|
selector: 'kendo-separator',
|
|
@@ -1429,10 +1429,10 @@ class ScrollbarWidthService {
|
|
|
1429
1429
|
document.body.style.setProperty(propName, `${scrollbarWidth()}px`);
|
|
1430
1430
|
}
|
|
1431
1431
|
}
|
|
1432
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1433
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1432
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ScrollbarWidthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1433
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ScrollbarWidthService, providedIn: 'root' });
|
|
1434
1434
|
}
|
|
1435
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1435
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ScrollbarWidthService, decorators: [{
|
|
1436
1436
|
type: Injectable,
|
|
1437
1437
|
args: [{
|
|
1438
1438
|
providedIn: 'root'
|
|
@@ -1680,10 +1680,10 @@ class ToggleButtonTabStopDirective {
|
|
|
1680
1680
|
this.observer.observe(mainFocusableElement, mutationConfig);
|
|
1681
1681
|
});
|
|
1682
1682
|
}
|
|
1683
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1684
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1683
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToggleButtonTabStopDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: MultiTabStop }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1684
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: ToggleButtonTabStopDirective, isStandalone: true, selector: "[kendoToggleButtonTabStop]", inputs: { active: ["kendoToggleButtonTabStop", "active"], toggleButtonAriaLabel: "toggleButtonAriaLabel" }, usesOnChanges: true, ngImport: i0 });
|
|
1685
1685
|
}
|
|
1686
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1686
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ToggleButtonTabStopDirective, decorators: [{
|
|
1687
1687
|
type: Directive,
|
|
1688
1688
|
args: [{
|
|
1689
1689
|
selector: '[kendoToggleButtonTabStop]',
|
|
@@ -1714,10 +1714,10 @@ class TemplateContextDirective {
|
|
|
1714
1714
|
constructor(viewContainerRef) {
|
|
1715
1715
|
this.viewContainerRef = viewContainerRef;
|
|
1716
1716
|
}
|
|
1717
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1718
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1717
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TemplateContextDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1718
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: TemplateContextDirective, isStandalone: true, selector: "[templateContext]", inputs: { templateContext: "templateContext" }, ngImport: i0 });
|
|
1719
1719
|
}
|
|
1720
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1720
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TemplateContextDirective, decorators: [{
|
|
1721
1721
|
type: Directive,
|
|
1722
1722
|
args: [{
|
|
1723
1723
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-common",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "22.0.0-develop.1",
|
|
4
4
|
"description": "Kendo UI for Angular - Utility Package",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"Progress"
|
|
15
15
|
],
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@angular/animations": "
|
|
18
|
-
"@angular/common": "
|
|
19
|
-
"@angular/core": "
|
|
17
|
+
"@angular/animations": "19 - 21",
|
|
18
|
+
"@angular/common": "19 - 21",
|
|
19
|
+
"@angular/core": "19 - 21",
|
|
20
20
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@progress/kendo-common": "^1.0.1",
|
|
24
24
|
"@progress/kendo-draggable": "^3.0.2",
|
|
25
25
|
"tslib": "^2.3.1",
|
|
26
|
-
"@progress/kendo-angular-schematics": "
|
|
26
|
+
"@progress/kendo-angular-schematics": "22.0.0-develop.1"
|
|
27
27
|
},
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public"
|
|
@@ -36,8 +36,6 @@
|
|
|
36
36
|
},
|
|
37
37
|
".": {
|
|
38
38
|
"types": "./index.d.ts",
|
|
39
|
-
"esm2022": "./esm2022/progress-kendo-angular-common.mjs",
|
|
40
|
-
"esm": "./esm2022/progress-kendo-angular-common.mjs",
|
|
41
39
|
"default": "./fesm2022/progress-kendo-angular-common.mjs"
|
|
42
40
|
}
|
|
43
41
|
},
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Directive, Input, Optional, TemplateRef } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Specifies the adornments in the prefix container of the [Inputs](slug:adornments_textbox#toc-prefix-adornments) and [DropDowns](slug:adornments_multiselect#toc-prefix-adornments).
|
|
9
|
-
* ```html
|
|
10
|
-
* <kendo-textbox>
|
|
11
|
-
* <ng-template kendoPrefixTemplate>
|
|
12
|
-
* <button kendoButton look="clear" icon="image"></button>
|
|
13
|
-
* </ng-template>
|
|
14
|
-
* </kendo-textbox>
|
|
15
|
-
*
|
|
16
|
-
* <kendo-multiselect [data]="data" [(ngModel)]="value">
|
|
17
|
-
* <ng-template kendoPrefixTemplate>
|
|
18
|
-
* <button kendoButton look="clear" icon="image"></button>
|
|
19
|
-
* </ng-template>
|
|
20
|
-
* </kendo-multiselect>
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export class PrefixTemplateDirective {
|
|
24
|
-
templateRef;
|
|
25
|
-
/**
|
|
26
|
-
* Sets the `showSeparator` attribute of the `prefixTemplate`.
|
|
27
|
-
*
|
|
28
|
-
* @default false
|
|
29
|
-
*/
|
|
30
|
-
set showSeparator(value) {
|
|
31
|
-
this._showSeparator = value;
|
|
32
|
-
}
|
|
33
|
-
get showSeparator() {
|
|
34
|
-
return this._showSeparator;
|
|
35
|
-
}
|
|
36
|
-
_showSeparator = false;
|
|
37
|
-
constructor(templateRef) {
|
|
38
|
-
this.templateRef = templateRef;
|
|
39
|
-
}
|
|
40
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PrefixTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
41
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: PrefixTemplateDirective, isStandalone: true, selector: "[kendoPrefixTemplate]", inputs: { showSeparator: "showSeparator" }, ngImport: i0 });
|
|
42
|
-
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PrefixTemplateDirective, decorators: [{
|
|
44
|
-
type: Directive,
|
|
45
|
-
args: [{
|
|
46
|
-
selector: '[kendoPrefixTemplate]',
|
|
47
|
-
standalone: true
|
|
48
|
-
}]
|
|
49
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
|
|
50
|
-
type: Optional
|
|
51
|
-
}] }], propDecorators: { showSeparator: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}] } });
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
export {};
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Specifies a separator in the content of the [Inputs]({% slug adornments_textbox %}#toc-separator) and [DropDowns]({% slug adornments_multiselect %}#toc-separator).
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts-no-run
|
|
11
|
-
* _@Component({
|
|
12
|
-
* selector: 'my-app',
|
|
13
|
-
* template: `
|
|
14
|
-
* <kendo-textbox>
|
|
15
|
-
* <ng-template kendoSuffixTemplate>
|
|
16
|
-
* <button kendoButton look="clear" icon="image"></button>
|
|
17
|
-
* <kendo-separator></kendo-separator>
|
|
18
|
-
* <button kendoButton look="clear" icon="image"></button>
|
|
19
|
-
* </ng-template>
|
|
20
|
-
* </kendo-textbox>
|
|
21
|
-
* `
|
|
22
|
-
* })
|
|
23
|
-
* class AppComponent {}
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export class SeparatorComponent {
|
|
27
|
-
/**
|
|
28
|
-
* Specifies the orientation of the separator. Applicable for the adornments of the [`TextAreaComponent`](slug:api_inputs_textareacomponent).
|
|
29
|
-
*
|
|
30
|
-
* @default 'vertical'
|
|
31
|
-
*/
|
|
32
|
-
orientation = 'vertical';
|
|
33
|
-
/**
|
|
34
|
-
* @hidden
|
|
35
|
-
*/
|
|
36
|
-
get vertical() {
|
|
37
|
-
return this.orientation === 'vertical';
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @hidden
|
|
41
|
-
*/
|
|
42
|
-
get horizontal() {
|
|
43
|
-
return this.orientation === 'horizontal';
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* @hidden
|
|
47
|
-
*/
|
|
48
|
-
hostClass = true;
|
|
49
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SeparatorComponent, isStandalone: true, selector: "kendo-separator", inputs: { orientation: "orientation" }, host: { properties: { "class.k-input-separator-vertical": "this.vertical", "class.k-input-separator-horizontal": "this.horizontal", "class.k-input-separator": "this.hostClass" } }, ngImport: i0, template: ``, isInline: true });
|
|
51
|
-
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SeparatorComponent, decorators: [{
|
|
53
|
-
type: Component,
|
|
54
|
-
args: [{
|
|
55
|
-
selector: 'kendo-separator',
|
|
56
|
-
template: ``,
|
|
57
|
-
standalone: true
|
|
58
|
-
}]
|
|
59
|
-
}], propDecorators: { orientation: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}], vertical: [{
|
|
62
|
-
type: HostBinding,
|
|
63
|
-
args: ['class.k-input-separator-vertical']
|
|
64
|
-
}], horizontal: [{
|
|
65
|
-
type: HostBinding,
|
|
66
|
-
args: ['class.k-input-separator-horizontal']
|
|
67
|
-
}], hostClass: [{
|
|
68
|
-
type: HostBinding,
|
|
69
|
-
args: ['class.k-input-separator']
|
|
70
|
-
}] } });
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Directive, Input, Optional, TemplateRef } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Represents the directive for suffix adornments in the Inputs and DropDowns components.
|
|
9
|
-
*
|
|
10
|
-
* Use the `kendoSuffixTemplate` directive to add custom content to the suffix container.
|
|
11
|
-
*
|
|
12
|
-
* * See [Inputs Suffix Adornments](slug:adornments_textbox#toc-suffix-adornments)
|
|
13
|
-
* * See [DropDowns Suffix Adornments](slug:adornments_multiselect#toc-suffix-adornments)
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```html
|
|
17
|
-
* <kendo-textbox>
|
|
18
|
-
* <ng-template kendoSuffixTemplate>
|
|
19
|
-
* <button kendoButton look="clear" icon="image"></button>
|
|
20
|
-
* </ng-template>
|
|
21
|
-
* </kendo-textbox>
|
|
22
|
-
* <kendo-multiselect [data]="data" [(ngModel)]="value">
|
|
23
|
-
* <ng-template kendoSuffixTemplate>
|
|
24
|
-
* <button kendoButton look="clear" icon="image"></button>
|
|
25
|
-
* </ng-template>
|
|
26
|
-
* </kendo-multiselect>
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export class SuffixTemplateDirective {
|
|
30
|
-
templateRef;
|
|
31
|
-
/**
|
|
32
|
-
* Sets the `showSeparator` attribute of the `suffixTemplate`.
|
|
33
|
-
*
|
|
34
|
-
* @default false
|
|
35
|
-
*/
|
|
36
|
-
set showSeparator(value) {
|
|
37
|
-
this._showSeparator = value;
|
|
38
|
-
}
|
|
39
|
-
get showSeparator() {
|
|
40
|
-
return this._showSeparator;
|
|
41
|
-
}
|
|
42
|
-
_showSeparator = false;
|
|
43
|
-
constructor(templateRef) {
|
|
44
|
-
this.templateRef = templateRef;
|
|
45
|
-
}
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuffixTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
47
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: SuffixTemplateDirective, isStandalone: true, selector: "[kendoSuffixTemplate]", inputs: { showSeparator: "showSeparator" }, ngImport: i0 });
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SuffixTemplateDirective, decorators: [{
|
|
50
|
-
type: Directive,
|
|
51
|
-
args: [{
|
|
52
|
-
selector: '[kendoSuffixTemplate]',
|
|
53
|
-
standalone: true
|
|
54
|
-
}]
|
|
55
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
|
|
56
|
-
type: Optional
|
|
57
|
-
}] }], propDecorators: { showSeparator: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}] } });
|
package/esm2022/adornments.mjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
export { PrefixTemplateDirective } from './adornments/prefix.directive';
|
|
6
|
-
export { SuffixTemplateDirective } from './adornments/suffix.directive';
|
|
7
|
-
export { SeparatorComponent } from './adornments/separator.component';
|
package/esm2022/directives.mjs
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { PrefixTemplateDirective } from "./adornments/prefix.directive";
|
|
6
|
-
import { SeparatorComponent } from "./adornments/separator.component";
|
|
7
|
-
import { SuffixTemplateDirective } from "./adornments/suffix.directive";
|
|
8
|
-
import { DraggableDirective } from "./draggable/draggable.directive";
|
|
9
|
-
import { EventsOutsideAngularDirective } from "./events/events-outside-angular.directive";
|
|
10
|
-
import { ResizeSensorComponent } from "./resize-sensor/resize-sensor.component";
|
|
11
|
-
import { TemplateContextDirective } from "./template-context/template-context.directive";
|
|
12
|
-
import { ToggleButtonTabStopDirective } from "./toggle-button-tab-stop/toggle-button-tab-stop.directive";
|
|
13
|
-
import { WatermarkOverlayComponent } from "./watermark/watermark.component";
|
|
14
|
-
/**
|
|
15
|
-
* @hidden
|
|
16
|
-
*/
|
|
17
|
-
export const KENDO_ADORNMENTS = [
|
|
18
|
-
PrefixTemplateDirective,
|
|
19
|
-
SuffixTemplateDirective,
|
|
20
|
-
SeparatorComponent
|
|
21
|
-
];
|
|
22
|
-
/**
|
|
23
|
-
* @hidden
|
|
24
|
-
*/
|
|
25
|
-
export const KENDO_COMMON = [
|
|
26
|
-
...KENDO_ADORNMENTS,
|
|
27
|
-
DraggableDirective,
|
|
28
|
-
EventsOutsideAngularDirective,
|
|
29
|
-
ResizeSensorComponent,
|
|
30
|
-
ToggleButtonTabStopDirective,
|
|
31
|
-
WatermarkOverlayComponent,
|
|
32
|
-
];
|
|
33
|
-
/**
|
|
34
|
-
* @hidden
|
|
35
|
-
*/
|
|
36
|
-
export const KENDO_DRAGGABLE = [
|
|
37
|
-
DraggableDirective
|
|
38
|
-
];
|
|
39
|
-
/**
|
|
40
|
-
* @hidden
|
|
41
|
-
*/
|
|
42
|
-
export const KENDO_EVENTS = [
|
|
43
|
-
EventsOutsideAngularDirective
|
|
44
|
-
];
|
|
45
|
-
/**
|
|
46
|
-
* @hidden
|
|
47
|
-
*/
|
|
48
|
-
export const KENDO_RESIZESENSOR = [
|
|
49
|
-
ResizeSensorComponent
|
|
50
|
-
];
|
|
51
|
-
/**
|
|
52
|
-
* @hidden
|
|
53
|
-
*/
|
|
54
|
-
export const KENDO_TOGGLEBUTTONTABSTOP = [
|
|
55
|
-
ToggleButtonTabStopDirective
|
|
56
|
-
];
|
|
57
|
-
/**
|
|
58
|
-
* @hidden
|
|
59
|
-
*/
|
|
60
|
-
export const KENDO_WATERMARK = [
|
|
61
|
-
WatermarkOverlayComponent
|
|
62
|
-
];
|
|
63
|
-
/**
|
|
64
|
-
* @hidden
|
|
65
|
-
*/
|
|
66
|
-
export const KENDO_TEMPLATE_CONTEXT = [
|
|
67
|
-
TemplateContextDirective
|
|
68
|
-
];
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
export function closestBySelector(element, selector) {
|
|
6
|
-
if (element.closest) {
|
|
7
|
-
return element.closest(selector);
|
|
8
|
-
}
|
|
9
|
-
const matches = Element.prototype.matches ?
|
|
10
|
-
(el, sel) => el.matches(sel)
|
|
11
|
-
: (el, sel) => el.msMatchesSelector(sel);
|
|
12
|
-
let node = element;
|
|
13
|
-
while (node && !isDocumentNode(node)) {
|
|
14
|
-
if (matches(node, selector)) {
|
|
15
|
-
return node;
|
|
16
|
-
}
|
|
17
|
-
node = node.parentNode;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
const isDocumentNode = (container) => container.nodeType === 9;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
export const closestInScope = (node, predicate, scope) => {
|
|
6
|
-
while (node && node !== scope && !predicate(node)) {
|
|
7
|
-
node = node.parentNode;
|
|
8
|
-
}
|
|
9
|
-
if (node !== scope) {
|
|
10
|
-
return node;
|
|
11
|
-
}
|
|
12
|
-
return undefined;
|
|
13
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
export const closest = (node, predicate) => {
|
|
6
|
-
while (node && !predicate(node)) {
|
|
7
|
-
node = node.parentNode;
|
|
8
|
-
}
|
|
9
|
-
return node;
|
|
10
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { closest } from './closest';
|
|
6
|
-
export const contains = (parent, node, matchSelf = false) => {
|
|
7
|
-
const outside = !closest(node, (child) => child === parent);
|
|
8
|
-
if (outside) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
const el = closest(node, (child) => child === node);
|
|
12
|
-
return el && (matchSelf || el !== parent);
|
|
13
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
export const findElement = (node, predicate, matchSelf = true) => {
|
|
6
|
-
if (!node) {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
if (matchSelf && predicate(node)) {
|
|
10
|
-
return node;
|
|
11
|
-
}
|
|
12
|
-
node = node.firstChild;
|
|
13
|
-
while (node) {
|
|
14
|
-
if (node.nodeType === 1) {
|
|
15
|
-
const element = findElement(node, predicate);
|
|
16
|
-
if (element) {
|
|
17
|
-
return element;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
node = node.nextSibling;
|
|
21
|
-
}
|
|
22
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { findElement } from './find-element';
|
|
6
|
-
import { isFocusableWithTabKey } from './is-focusable-with-tab-key';
|
|
7
|
-
export const findFocusableChild = (element, checkVisibility = true) => {
|
|
8
|
-
return findElement(element, (node) => isFocusableWithTabKey(node, checkVisibility), false);
|
|
9
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { findElement } from './find-element';
|
|
6
|
-
import { isFocusableWithTabKey } from './is-focusable-with-tab-key';
|
|
7
|
-
export const findFocusable = (element, checkVisibility = true) => {
|
|
8
|
-
return findElement(element, (node) => isFocusableWithTabKey(node, checkVisibility));
|
|
9
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
const toClassList = (classNames) => String(classNames).trim().split(' ');
|
|
6
|
-
export const hasClasses = (element, classNames) => {
|
|
7
|
-
const namesList = toClassList(classNames);
|
|
8
|
-
return Boolean(toClassList(element.className).find((className) => namesList.indexOf(className) >= 0));
|
|
9
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { isFocusable } from './is-focusable';
|
|
6
|
-
import { isVisible } from './is-visible';
|
|
7
|
-
export const isFocusableWithTabKey = (element, checkVisibility = true) => {
|
|
8
|
-
if (!isFocusable(element)) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
const tabIndex = element.getAttribute('tabIndex');
|
|
12
|
-
const visible = !checkVisibility || isVisible(element);
|
|
13
|
-
return visible && tabIndex !== '-1';
|
|
14
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**-----------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
|
-
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
-
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
const focusableRegex = /^(?:a|input|select|option|textarea|button|object)$/i;
|
|
6
|
-
export const isFocusable = (element) => {
|
|
7
|
-
if (!element.tagName) {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
const tagName = element.tagName.toLowerCase();
|
|
11
|
-
const hasTabIndex = Boolean(element.getAttribute('tabIndex'));
|
|
12
|
-
const focusable = !element.disabled && focusableRegex.test(tagName);
|
|
13
|
-
return focusable || hasTabIndex;
|
|
14
|
-
};
|