igniteui-angular 19.2.7 → 19.2.8
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/igniteui-angular.mjs +142 -92
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/core/styles/components/grid/_excel-filtering-theme.scss +1 -1
- package/lib/core/styles/components/input/_input-group-component.scss +2 -1
- package/lib/core/styles/components/input/_input-group-theme.scss +53 -5
- package/lib/core/styles/components/label/_label-theme.scss +4 -1
- package/lib/core/styles/components/radio/_radio-component.scss +12 -0
- package/lib/core/styles/components/radio/_radio-theme.scss +30 -8
- package/lib/directives/radio/radio-group.directive.d.ts +33 -15
- package/lib/directives/tooltip/tooltip.directive.d.ts +11 -2
- package/package.json +1 -1
- package/styles/igniteui-angular-dark.css +1 -1
- package/styles/igniteui-angular.css +1 -1
- package/styles/igniteui-bootstrap-dark.css +1 -1
- package/styles/igniteui-bootstrap-light.css +1 -1
- package/styles/igniteui-dark-green.css +1 -1
- package/styles/igniteui-fluent-dark-excel.css +1 -1
- package/styles/igniteui-fluent-dark-word.css +1 -1
- package/styles/igniteui-fluent-dark.css +1 -1
- package/styles/igniteui-fluent-light-excel.css +1 -1
- package/styles/igniteui-fluent-light-word.css +1 -1
- package/styles/igniteui-fluent-light.css +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-angular-dark.css.map +1 -1
- package/styles/maps/igniteui-angular.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
- package/styles/maps/igniteui-dark-green.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-light.css.map +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, HostListener, Input, Directive, EventEmitter, InjectionToken, isDevMode, inject, PLATFORM_ID, Inject, ElementRef, ViewContainerRef, createComponent, HostBinding, Output, Self, Optional, booleanAttribute, SecurityContext, DestroyRef, Component, ContentChild, ContentChildren, RendererStyleFlags2, Pipe, ViewChild, LOCALE_ID, forwardRef, Host,
|
|
2
|
+
import { Injectable, HostListener, Input, Directive, EventEmitter, InjectionToken, isDevMode, inject, PLATFORM_ID, Inject, ElementRef, ViewContainerRef, createComponent, HostBinding, Output, Self, Optional, booleanAttribute, SecurityContext, DestroyRef, Component, ContentChild, ContentChildren, RendererStyleFlags2, Pipe, ViewChild, contentChildren, QueryList, signal, effect, LOCALE_ID, forwardRef, Host, ViewChildren, TemplateRef, ChangeDetectionStrategy, SimpleChange, ChangeDetectorRef, NgZone, SkipSelf, CUSTOM_ELEMENTS_SCHEMA, reflectComponentType, NgModule } from '@angular/core';
|
|
3
3
|
import * as i4 from '@angular/forms';
|
|
4
4
|
import { NgModel, NgControl, FormControlName, NG_VALUE_ACCESSOR, Validators, NG_VALIDATORS, FormGroup, FormsModule, RequiredValidator, MinValidator, MaxValidator, EmailValidator, MinLengthValidator, MaxLengthValidator, PatternValidator, FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
-
import { Observable, NEVER, Subject, fromEvent, BehaviorSubject, interval, animationFrameScheduler, noop, merge, Subscription, timer, sampleTime, filter as filter$1, pipe } from 'rxjs';
|
|
6
|
-
import { takeUntil, filter, throttle, throttleTime, first as first$2,
|
|
5
|
+
import { Observable, NEVER, Subject, fromEvent, BehaviorSubject, interval, animationFrameScheduler, noop, takeUntil as takeUntil$1, merge, Subscription, timer, sampleTime, filter as filter$1, pipe } from 'rxjs';
|
|
6
|
+
import { takeUntil, filter, throttle, throttleTime, first as first$2, take, debounce, tap, switchMap, skipLast, debounceTime, map, shareReplay, takeWhile, timeout, pluck } from 'rxjs/operators';
|
|
7
7
|
import { isPlatformBrowser, formatDate as formatDate$1, CurrencyPipe, FormatWidth, getLocaleDateFormat, formatPercent, formatNumber, getLocaleCurrencyCode, DatePipe, getLocaleDateTimeFormat, DOCUMENT, NgTemplateOutlet, NgClass, TitleCasePipe, getLocaleFirstDayOfWeek, NgStyle, getLocaleCurrencySymbol, formatCurrency as formatCurrency$1, getLocaleNumberFormat, NumberFormatStyle, DecimalPipe, PercentPipe, getCurrencySymbol, AsyncPipe } from '@angular/common';
|
|
8
8
|
import { mergeWith, isEqual as isEqual$1 } from 'lodash-es';
|
|
9
9
|
import { strToU8, zip } from 'fflate';
|
|
@@ -19195,6 +19195,19 @@ let nextId = 0;
|
|
|
19195
19195
|
* ```
|
|
19196
19196
|
*/
|
|
19197
19197
|
class IgxRadioGroupDirective {
|
|
19198
|
+
/**
|
|
19199
|
+
* Returns reference to the child radio buttons.
|
|
19200
|
+
*
|
|
19201
|
+
* @example
|
|
19202
|
+
* ```typescript
|
|
19203
|
+
* let radioButtons = this.radioGroup.radioButtons;
|
|
19204
|
+
* ```
|
|
19205
|
+
*/
|
|
19206
|
+
get radioButtons() {
|
|
19207
|
+
const buttons = Array.from(this._radioButtons());
|
|
19208
|
+
this._radioButtonsList.reset(buttons);
|
|
19209
|
+
return this._radioButtonsList;
|
|
19210
|
+
}
|
|
19198
19211
|
/**
|
|
19199
19212
|
* Sets/gets the `value` attribute.
|
|
19200
19213
|
*
|
|
@@ -19283,6 +19296,26 @@ class IgxRadioGroupDirective {
|
|
|
19283
19296
|
this._invalid = value;
|
|
19284
19297
|
this._setRadioButtonsInvalid();
|
|
19285
19298
|
}
|
|
19299
|
+
/**
|
|
19300
|
+
* A css class applied to the component if any of the
|
|
19301
|
+
* child radio buttons labelPosition is set to `before`.
|
|
19302
|
+
*
|
|
19303
|
+
* @hidden
|
|
19304
|
+
* @internal
|
|
19305
|
+
*/
|
|
19306
|
+
get labelBefore() {
|
|
19307
|
+
return this._radioButtons().some((radio) => radio.labelPosition === 'before');
|
|
19308
|
+
}
|
|
19309
|
+
/**
|
|
19310
|
+
* A css class applied to the component if all
|
|
19311
|
+
* child radio buttons are disabled.
|
|
19312
|
+
*
|
|
19313
|
+
* @hidden
|
|
19314
|
+
* @internal
|
|
19315
|
+
*/
|
|
19316
|
+
get disabled() {
|
|
19317
|
+
return this._radioButtons().every((radio) => radio.disabled);
|
|
19318
|
+
}
|
|
19286
19319
|
handleClick(event) {
|
|
19287
19320
|
event.stopPropagation();
|
|
19288
19321
|
if (this.selected) {
|
|
@@ -19291,7 +19324,7 @@ class IgxRadioGroupDirective {
|
|
|
19291
19324
|
}
|
|
19292
19325
|
handleKeyDown(event) {
|
|
19293
19326
|
const { key } = event;
|
|
19294
|
-
const buttons = this.
|
|
19327
|
+
const buttons = this._radioButtons().filter(radio => !radio.disabled);
|
|
19295
19328
|
const checked = buttons.find((radio) => radio.checked);
|
|
19296
19329
|
if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) {
|
|
19297
19330
|
let index = checked ? buttons.indexOf(checked) : -1;
|
|
@@ -19357,60 +19390,12 @@ class IgxRadioGroupDirective {
|
|
|
19357
19390
|
set alignment(value) {
|
|
19358
19391
|
this.vertical = value === RadioGroupAlignment.vertical;
|
|
19359
19392
|
}
|
|
19360
|
-
/**
|
|
19361
|
-
* @hidden
|
|
19362
|
-
* @internal
|
|
19363
|
-
*/
|
|
19364
|
-
ngAfterContentInit() {
|
|
19365
|
-
// The initial value can possibly be set by NgModel and it is possible that
|
|
19366
|
-
// the OnInit of the NgModel occurs after the OnInit of this class.
|
|
19367
|
-
this._isInitialized = true;
|
|
19368
|
-
this.radioButtons.changes.pipe(startWith(0), takeUntil(this.destroy$)).subscribe(() => {
|
|
19369
|
-
this.queryChange$.next();
|
|
19370
|
-
setTimeout(() => this._initRadioButtons());
|
|
19371
|
-
});
|
|
19372
|
-
if (this.ngControl) {
|
|
19373
|
-
this.radioButtons.forEach((button) => {
|
|
19374
|
-
if (this.ngControl.disabled) {
|
|
19375
|
-
button.disabled = this.ngControl.disabled;
|
|
19376
|
-
}
|
|
19377
|
-
});
|
|
19378
|
-
}
|
|
19379
|
-
}
|
|
19380
|
-
/**
|
|
19381
|
-
* @hidden
|
|
19382
|
-
* @internal
|
|
19383
|
-
*/
|
|
19384
|
-
ngAfterViewInit() {
|
|
19385
|
-
if (this.ngControl) {
|
|
19386
|
-
this.ngControl.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
19387
|
-
this.invalid = false;
|
|
19388
|
-
});
|
|
19389
|
-
if (this.ngControl.control.validator || this.ngControl.control.asyncValidator) {
|
|
19390
|
-
this._required = this.ngControl?.control?.hasValidator(Validators.required);
|
|
19391
|
-
}
|
|
19392
|
-
}
|
|
19393
|
-
if (this.radioButtons) {
|
|
19394
|
-
this.radioButtons.forEach((button) => {
|
|
19395
|
-
button.blurRadio
|
|
19396
|
-
.pipe(takeUntil(this.destroy$))
|
|
19397
|
-
.subscribe(() => {
|
|
19398
|
-
this.updateValidityOnBlur();
|
|
19399
|
-
});
|
|
19400
|
-
fromEvent(button.nativeElement, 'keyup')
|
|
19401
|
-
.pipe(takeUntil(this.destroy$))
|
|
19402
|
-
.subscribe((event) => {
|
|
19403
|
-
this.updateOnKeyUp(event);
|
|
19404
|
-
});
|
|
19405
|
-
});
|
|
19406
|
-
}
|
|
19407
|
-
}
|
|
19408
19393
|
/**
|
|
19409
19394
|
* @hidden
|
|
19410
19395
|
* @internal
|
|
19411
19396
|
*/
|
|
19412
19397
|
updateValidityOnBlur() {
|
|
19413
|
-
this.
|
|
19398
|
+
this._radioButtons().forEach((button) => {
|
|
19414
19399
|
button.focused = false;
|
|
19415
19400
|
if (button.invalid) {
|
|
19416
19401
|
this.invalid = true;
|
|
@@ -19422,9 +19407,9 @@ class IgxRadioGroupDirective {
|
|
|
19422
19407
|
* @internal
|
|
19423
19408
|
*/
|
|
19424
19409
|
updateOnKeyUp(event) {
|
|
19425
|
-
const checked = this.
|
|
19410
|
+
const checked = this._radioButtons().find(x => x.checked);
|
|
19426
19411
|
if (event.key === "Tab") {
|
|
19427
|
-
this.
|
|
19412
|
+
this._radioButtons().forEach((radio) => {
|
|
19428
19413
|
if (radio === checked) {
|
|
19429
19414
|
checked.focused = true;
|
|
19430
19415
|
}
|
|
@@ -19437,10 +19422,10 @@ class IgxRadioGroupDirective {
|
|
|
19437
19422
|
_updateTabIndex() {
|
|
19438
19423
|
// Needed so that the keyboard navigation of a radio group
|
|
19439
19424
|
// placed inside a dialog works properly
|
|
19440
|
-
if (this.
|
|
19441
|
-
const checked = this.
|
|
19425
|
+
if (this._radioButtons) {
|
|
19426
|
+
const checked = this._radioButtons().find(x => x.checked);
|
|
19442
19427
|
if (checked) {
|
|
19443
|
-
this.
|
|
19428
|
+
this._radioButtons().forEach((button) => {
|
|
19444
19429
|
checked.nativeElement.tabIndex = 0;
|
|
19445
19430
|
if (button !== checked) {
|
|
19446
19431
|
button.nativeElement.tabIndex = -1;
|
|
@@ -19481,8 +19466,8 @@ class IgxRadioGroupDirective {
|
|
|
19481
19466
|
* @internal
|
|
19482
19467
|
*/
|
|
19483
19468
|
registerOnTouched(fn) {
|
|
19484
|
-
if (this.
|
|
19485
|
-
this.
|
|
19469
|
+
if (this._radioButtons) {
|
|
19470
|
+
this._radioButtons().forEach((button) => {
|
|
19486
19471
|
button.registerOnTouched(fn);
|
|
19487
19472
|
});
|
|
19488
19473
|
}
|
|
@@ -19499,6 +19484,8 @@ class IgxRadioGroupDirective {
|
|
|
19499
19484
|
this.ngControl = ngControl;
|
|
19500
19485
|
this._directionality = _directionality;
|
|
19501
19486
|
this.cdr = cdr;
|
|
19487
|
+
this._radioButtons = contentChildren(IgxRadioComponent, { descendants: true });
|
|
19488
|
+
this._radioButtonsList = new QueryList();
|
|
19502
19489
|
/**
|
|
19503
19490
|
* An event that is emitted after the radio group `value` is changed.
|
|
19504
19491
|
*
|
|
@@ -19553,7 +19540,7 @@ class IgxRadioGroupDirective {
|
|
|
19553
19540
|
* @hidden
|
|
19554
19541
|
* @internal
|
|
19555
19542
|
*/
|
|
19556
|
-
this._isInitialized = false;
|
|
19543
|
+
this._isInitialized = signal(false);
|
|
19557
19544
|
/**
|
|
19558
19545
|
* @hidden
|
|
19559
19546
|
* @internal
|
|
@@ -19577,31 +19564,72 @@ class IgxRadioGroupDirective {
|
|
|
19577
19564
|
if (this.ngControl !== null) {
|
|
19578
19565
|
this.ngControl.valueAccessor = this;
|
|
19579
19566
|
}
|
|
19567
|
+
effect(() => {
|
|
19568
|
+
this.initialize();
|
|
19569
|
+
Promise.resolve().then(() => {
|
|
19570
|
+
this.setRadioButtons();
|
|
19571
|
+
});
|
|
19572
|
+
});
|
|
19580
19573
|
}
|
|
19581
19574
|
/**
|
|
19582
19575
|
* @hidden
|
|
19583
19576
|
* @internal
|
|
19584
19577
|
*/
|
|
19585
|
-
|
|
19586
|
-
|
|
19587
|
-
|
|
19588
|
-
|
|
19589
|
-
|
|
19590
|
-
|
|
19591
|
-
|
|
19592
|
-
|
|
19593
|
-
|
|
19578
|
+
initialize() {
|
|
19579
|
+
// The initial value can possibly be set by NgModel and it is possible that
|
|
19580
|
+
// the OnInit of the NgModel occurs after the OnInit of this class.
|
|
19581
|
+
this._isInitialized.set(true);
|
|
19582
|
+
if (this.ngControl) {
|
|
19583
|
+
this.ngControl.statusChanges
|
|
19584
|
+
.pipe(takeUntil$1(this.destroy$))
|
|
19585
|
+
.subscribe(() => {
|
|
19586
|
+
this.invalid = false;
|
|
19587
|
+
});
|
|
19588
|
+
if (this.ngControl.control.validator || this.ngControl.control.asyncValidator) {
|
|
19589
|
+
this._required = this.ngControl?.control?.hasValidator(Validators.required);
|
|
19590
|
+
}
|
|
19591
|
+
this._radioButtons().forEach((button) => {
|
|
19592
|
+
if (this.ngControl.disabled) {
|
|
19593
|
+
button.disabled = this.ngControl.disabled;
|
|
19594
19594
|
}
|
|
19595
|
-
button.change.pipe(takeUntil(button.destroy$), takeUntil(this.destroy$), takeUntil(this.queryChange$)).subscribe((ev) => this._selectedRadioButtonChanged(ev));
|
|
19596
19595
|
});
|
|
19597
19596
|
}
|
|
19598
19597
|
}
|
|
19598
|
+
/**
|
|
19599
|
+
* @hidden
|
|
19600
|
+
* @internal
|
|
19601
|
+
*/
|
|
19602
|
+
setRadioButtons() {
|
|
19603
|
+
this._radioButtons().forEach((button) => {
|
|
19604
|
+
button.name = this._name;
|
|
19605
|
+
button.required = this._required;
|
|
19606
|
+
if (button.value === this._value) {
|
|
19607
|
+
button.checked = true;
|
|
19608
|
+
this._selected = button;
|
|
19609
|
+
this.cdr.markForCheck();
|
|
19610
|
+
}
|
|
19611
|
+
this._setRadioButtonEvents(button);
|
|
19612
|
+
});
|
|
19613
|
+
}
|
|
19614
|
+
/**
|
|
19615
|
+
* @hidden
|
|
19616
|
+
* @internal
|
|
19617
|
+
*/
|
|
19618
|
+
_setRadioButtonEvents(button) {
|
|
19619
|
+
button.change.pipe(takeUntil$1(button.destroy$), takeUntil$1(this.destroy$), takeUntil$1(this.queryChange$)).subscribe((ev) => this._selectedRadioButtonChanged(ev));
|
|
19620
|
+
button.blurRadio
|
|
19621
|
+
.pipe(takeUntil$1(this.destroy$))
|
|
19622
|
+
.subscribe(() => this.updateValidityOnBlur());
|
|
19623
|
+
fromEvent(button.nativeElement, 'keyup')
|
|
19624
|
+
.pipe(takeUntil$1(this.destroy$))
|
|
19625
|
+
.subscribe((event) => this.updateOnKeyUp(event));
|
|
19626
|
+
}
|
|
19599
19627
|
/**
|
|
19600
19628
|
* @hidden
|
|
19601
19629
|
* @internal
|
|
19602
19630
|
*/
|
|
19603
19631
|
_selectedRadioButtonChanged(args) {
|
|
19604
|
-
this.
|
|
19632
|
+
this._radioButtons().forEach((button) => {
|
|
19605
19633
|
button.checked = button.id === args.owner.id;
|
|
19606
19634
|
if (button.checked && button.ngControl) {
|
|
19607
19635
|
this.invalid = button.ngControl.invalid;
|
|
@@ -19622,8 +19650,8 @@ class IgxRadioGroupDirective {
|
|
|
19622
19650
|
* @internal
|
|
19623
19651
|
*/
|
|
19624
19652
|
_setRadioButtonNames() {
|
|
19625
|
-
if (this.
|
|
19626
|
-
this.
|
|
19653
|
+
if (this._radioButtons) {
|
|
19654
|
+
this._radioButtons().forEach((button) => {
|
|
19627
19655
|
button.name = this._name;
|
|
19628
19656
|
});
|
|
19629
19657
|
}
|
|
@@ -19633,8 +19661,8 @@ class IgxRadioGroupDirective {
|
|
|
19633
19661
|
* @internal
|
|
19634
19662
|
*/
|
|
19635
19663
|
_selectRadioButton() {
|
|
19636
|
-
if (this.
|
|
19637
|
-
this.
|
|
19664
|
+
if (this._radioButtons) {
|
|
19665
|
+
this._radioButtons().forEach((button) => {
|
|
19638
19666
|
if (this._value === null) {
|
|
19639
19667
|
// no value - uncheck all radio buttons
|
|
19640
19668
|
if (button.checked) {
|
|
@@ -19666,8 +19694,8 @@ class IgxRadioGroupDirective {
|
|
|
19666
19694
|
* @internal
|
|
19667
19695
|
*/
|
|
19668
19696
|
_setRadioButtonsRequired() {
|
|
19669
|
-
if (this.
|
|
19670
|
-
this.
|
|
19697
|
+
if (this._radioButtons) {
|
|
19698
|
+
this._radioButtons().forEach((button) => {
|
|
19671
19699
|
button.required = this._required;
|
|
19672
19700
|
});
|
|
19673
19701
|
}
|
|
@@ -19677,14 +19705,14 @@ class IgxRadioGroupDirective {
|
|
|
19677
19705
|
* @internal
|
|
19678
19706
|
*/
|
|
19679
19707
|
_setRadioButtonsInvalid() {
|
|
19680
|
-
if (this.
|
|
19681
|
-
this.
|
|
19708
|
+
if (this._radioButtons) {
|
|
19709
|
+
this._radioButtons().forEach((button) => {
|
|
19682
19710
|
button.invalid = this._invalid;
|
|
19683
19711
|
});
|
|
19684
19712
|
}
|
|
19685
19713
|
}
|
|
19686
19714
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IgxRadioGroupDirective, deps: [{ token: i4.NgControl, optional: true, self: true }, { token: IgxDirectionality }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
19687
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
19715
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.5", type: IgxRadioGroupDirective, isStandalone: true, selector: "igx-radio-group, [igxRadioGroup]", inputs: { value: "value", name: "name", required: ["required", "required", booleanAttribute], selected: "selected", invalid: ["invalid", "invalid", booleanAttribute], alignment: "alignment" }, outputs: { change: "change" }, host: { listeners: { "click": "handleClick($event)", "keydown": "handleKeyDown($event)" }, properties: { "class.igx-radio-group": "this.cssClass", "class.igx-radio-group--vertical": "this.vertical", "class.igx-radio-group--before": "this.labelBefore", "class.igx-radio-group--disabled": "this.disabled" } }, queries: [{ propertyName: "_radioButtons", predicate: IgxRadioComponent, descendants: true, isSignal: true }], exportAs: ["igxRadioGroup"], ngImport: i0 }); }
|
|
19688
19716
|
}
|
|
19689
19717
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IgxRadioGroupDirective, decorators: [{
|
|
19690
19718
|
type: Directive,
|
|
@@ -19697,10 +19725,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
19697
19725
|
type: Optional
|
|
19698
19726
|
}, {
|
|
19699
19727
|
type: Self
|
|
19700
|
-
}] }, { type: IgxDirectionality }, { type: i0.ChangeDetectorRef }], propDecorators: {
|
|
19701
|
-
type: ContentChildren,
|
|
19702
|
-
args: [IgxRadioComponent, { descendants: true }]
|
|
19703
|
-
}], value: [{
|
|
19728
|
+
}] }, { type: IgxDirectionality }, { type: i0.ChangeDetectorRef }], propDecorators: { value: [{
|
|
19704
19729
|
type: Input
|
|
19705
19730
|
}], name: [{
|
|
19706
19731
|
type: Input
|
|
@@ -19720,6 +19745,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
19720
19745
|
}], vertical: [{
|
|
19721
19746
|
type: HostBinding,
|
|
19722
19747
|
args: ['class.igx-radio-group--vertical']
|
|
19748
|
+
}], labelBefore: [{
|
|
19749
|
+
type: HostBinding,
|
|
19750
|
+
args: ['class.igx-radio-group--before']
|
|
19751
|
+
}], disabled: [{
|
|
19752
|
+
type: HostBinding,
|
|
19753
|
+
args: ['class.igx-radio-group--disabled']
|
|
19723
19754
|
}], handleClick: [{
|
|
19724
19755
|
type: HostListener,
|
|
19725
19756
|
args: ['click', ['$event']]
|
|
@@ -20908,6 +20939,21 @@ class IgxTooltipDirective extends IgxToggleDirective {
|
|
|
20908
20939
|
* Returns whether open time out has started
|
|
20909
20940
|
*/
|
|
20910
20941
|
this.toBeShown = false;
|
|
20942
|
+
this._destroy$ = new Subject();
|
|
20943
|
+
this.onDocumentTouchStart = this.onDocumentTouchStart.bind(this);
|
|
20944
|
+
this.overlayService.opening.pipe(takeUntil$1(this._destroy$)).subscribe(() => {
|
|
20945
|
+
document.addEventListener('touchstart', this.onDocumentTouchStart, { passive: true });
|
|
20946
|
+
});
|
|
20947
|
+
this.overlayService.closed.pipe(takeUntil$1(this._destroy$)).subscribe(() => {
|
|
20948
|
+
document.removeEventListener('touchstart', this.onDocumentTouchStart);
|
|
20949
|
+
});
|
|
20950
|
+
}
|
|
20951
|
+
/** @hidden */
|
|
20952
|
+
ngOnDestroy() {
|
|
20953
|
+
super.ngOnDestroy();
|
|
20954
|
+
document.removeEventListener('touchstart', this.onDocumentTouchStart);
|
|
20955
|
+
this._destroy$.next(true);
|
|
20956
|
+
this._destroy$.complete();
|
|
20911
20957
|
}
|
|
20912
20958
|
/**
|
|
20913
20959
|
* If there is open animation in progress this method will finish is.
|
|
@@ -20951,6 +20997,9 @@ class IgxTooltipDirective extends IgxToggleDirective {
|
|
|
20951
20997
|
overlaySettings.positionStrategy.settings.closeAnimation = animation;
|
|
20952
20998
|
}
|
|
20953
20999
|
}
|
|
21000
|
+
onDocumentTouchStart(event) {
|
|
21001
|
+
this.tooltipTarget?.onDocumentTouchStart(event);
|
|
21002
|
+
}
|
|
20954
21003
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IgxTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxOverlayService }, { token: IgxNavigationService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20955
21004
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.5", type: IgxTooltipDirective, isStandalone: true, selector: "[igxTooltip]", inputs: { context: "context", id: "id" }, host: { properties: { "class.igx-tooltip--hidden": "this.hiddenClass", "class.igx-tooltip": "this.defaultClass", "attr.id": "this.id", "attr.role": "this.role" } }, exportAs: ["tooltip"], usesInheritance: true, ngImport: i0 }); }
|
|
20956
21005
|
}
|
|
@@ -21164,6 +21213,7 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
|
|
|
21164
21213
|
if (shouldReturn) {
|
|
21165
21214
|
return;
|
|
21166
21215
|
}
|
|
21216
|
+
this.target.tooltipTarget = this;
|
|
21167
21217
|
const showingArgs = { target: this, tooltip: this.target, cancel: false };
|
|
21168
21218
|
this.tooltipShow.emit(showingArgs);
|
|
21169
21219
|
if (showingArgs.cancel) {
|
|
@@ -21229,18 +21279,23 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
|
|
|
21229
21279
|
this._overlayDefaults.closeOnOutsideClick = false;
|
|
21230
21280
|
this._overlayDefaults.closeOnEscape = true;
|
|
21231
21281
|
this.target.closing.pipe(takeUntil(this.destroy$)).subscribe((event) => {
|
|
21282
|
+
if (this.target.tooltipTarget !== this) {
|
|
21283
|
+
return;
|
|
21284
|
+
}
|
|
21232
21285
|
const hidingArgs = { target: this, tooltip: this.target, cancel: false };
|
|
21233
21286
|
this.tooltipHide.emit(hidingArgs);
|
|
21234
21287
|
if (hidingArgs.cancel) {
|
|
21235
21288
|
event.cancel = true;
|
|
21236
21289
|
}
|
|
21237
21290
|
});
|
|
21291
|
+
this.nativeElement.addEventListener('touchstart', this.onTouchStart = this.onTouchStart.bind(this), { passive: true });
|
|
21238
21292
|
}
|
|
21239
21293
|
/**
|
|
21240
21294
|
* @hidden
|
|
21241
21295
|
*/
|
|
21242
21296
|
ngOnDestroy() {
|
|
21243
21297
|
this.hideTooltip();
|
|
21298
|
+
this.nativeElement.removeEventListener('touchstart', this.onTouchStart);
|
|
21244
21299
|
this.destroy$.next();
|
|
21245
21300
|
this.destroy$.complete();
|
|
21246
21301
|
}
|
|
@@ -21258,6 +21313,7 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
|
|
|
21258
21313
|
this.target.forceClose(this.mergedOverlaySettings);
|
|
21259
21314
|
this.target.toBeHidden = false;
|
|
21260
21315
|
}
|
|
21316
|
+
this.target.tooltipTarget = this;
|
|
21261
21317
|
const showingArgs = { target: this, tooltip: this.target, cancel: false };
|
|
21262
21318
|
this.tooltipShow.emit(showingArgs);
|
|
21263
21319
|
if (showingArgs.cancel) {
|
|
@@ -21325,7 +21381,7 @@ class IgxTooltipTargetDirective extends IgxToggleActionDirective {
|
|
|
21325
21381
|
return false;
|
|
21326
21382
|
}
|
|
21327
21383
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IgxTooltipTargetDirective, deps: [{ token: i0.ElementRef }, { token: IgxNavigationService, optional: true }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21328
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.5", type: IgxTooltipTargetDirective, isStandalone: true, selector: "[igxTooltipTarget]", inputs: { showDelay: "showDelay", hideDelay: "hideDelay", tooltipDisabled: ["tooltipDisabled", "tooltipDisabled", booleanAttribute], target: ["igxTooltipTarget", "target"], tooltip: "tooltip" }, outputs: { tooltipShow: "tooltipShow", tooltipHide: "tooltipHide" }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()"
|
|
21384
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.5", type: IgxTooltipTargetDirective, isStandalone: true, selector: "[igxTooltipTarget]", inputs: { showDelay: "showDelay", hideDelay: "hideDelay", tooltipDisabled: ["tooltipDisabled", "tooltipDisabled", booleanAttribute], target: ["igxTooltipTarget", "target"], tooltip: "tooltip" }, outputs: { tooltipShow: "tooltipShow", tooltipHide: "tooltipHide" }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, exportAs: ["tooltipTarget"], usesInheritance: true, ngImport: i0 }); }
|
|
21329
21385
|
}
|
|
21330
21386
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: IgxTooltipTargetDirective, decorators: [{
|
|
21331
21387
|
type: Directive,
|
|
@@ -21361,12 +21417,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
|
|
|
21361
21417
|
}], onMouseLeave: [{
|
|
21362
21418
|
type: HostListener,
|
|
21363
21419
|
args: ['mouseleave']
|
|
21364
|
-
}], onTouchStart: [{
|
|
21365
|
-
type: HostListener,
|
|
21366
|
-
args: ['touchstart']
|
|
21367
|
-
}], onDocumentTouchStart: [{
|
|
21368
|
-
type: HostListener,
|
|
21369
|
-
args: ['document:touchstart', ['$event']]
|
|
21370
21420
|
}] } });
|
|
21371
21421
|
|
|
21372
21422
|
/* NOTE: Tooltip directives collection for ease-of-use import in standalone components scenario */
|