igniteui-angular 20.0.5 → 20.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/igniteui-angular.mjs +317 -249
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/index.d.ts +43 -17
- package/lib/core/styles/components/calendar/_calendar-theme.scss +33 -5
- package/migrations/migration-collection.json +5 -0
- package/migrations/update-20_0_6/index.d.ts +3 -0
- package/migrations/update-20_0_6/index.js +106 -0
- package/package.json +2 -2
- package/schematics/tsconfig.tsbuildinfo +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
package/index.d.ts
CHANGED
|
@@ -11063,9 +11063,10 @@ declare class CheckboxBaseDirective implements AfterViewInit {
|
|
|
11063
11063
|
* </igx-radio>
|
|
11064
11064
|
* ```
|
|
11065
11065
|
*/
|
|
11066
|
-
declare class IgxRadioComponent extends CheckboxBaseDirective implements AfterViewInit, ControlValueAccessor, EditorProvider {
|
|
11066
|
+
declare class IgxRadioComponent extends CheckboxBaseDirective implements AfterViewInit, OnDestroy, ControlValueAccessor, EditorProvider {
|
|
11067
11067
|
/** @hidden @internal */
|
|
11068
11068
|
blurRadio: EventEmitter<any>;
|
|
11069
|
+
private radioGroup;
|
|
11069
11070
|
/**
|
|
11070
11071
|
* Returns the class of the radio component.
|
|
11071
11072
|
* ```typescript
|
|
@@ -11167,6 +11168,16 @@ declare class IgxRadioComponent extends CheckboxBaseDirective implements AfterVi
|
|
|
11167
11168
|
* @hidden
|
|
11168
11169
|
*/
|
|
11169
11170
|
onBlur(): void;
|
|
11171
|
+
/**
|
|
11172
|
+
* @hidden
|
|
11173
|
+
* @internal
|
|
11174
|
+
*/
|
|
11175
|
+
ngAfterViewInit(): void;
|
|
11176
|
+
/**
|
|
11177
|
+
* @hidden
|
|
11178
|
+
* @internal
|
|
11179
|
+
*/
|
|
11180
|
+
ngOnDestroy(): void;
|
|
11170
11181
|
static ɵfac: i0.ɵɵFactoryDeclaration<IgxRadioComponent, never>;
|
|
11171
11182
|
static ɵcmp: i0.ɵɵComponentDeclaration<IgxRadioComponent, "igx-radio", never, { "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
11172
11183
|
static ngAcceptInputType_checked: unknown;
|
|
@@ -11664,13 +11675,25 @@ declare class IgxRadioGroupDirective implements ControlValueAccessor, OnDestroy,
|
|
|
11664
11675
|
* @internal
|
|
11665
11676
|
*/
|
|
11666
11677
|
private _setRadioButtonsRequired;
|
|
11678
|
+
/**
|
|
11679
|
+
* Registers a radio button with this radio group.
|
|
11680
|
+
* This method is called by radio button components when they are created.
|
|
11681
|
+
* @hidden @internal
|
|
11682
|
+
*/
|
|
11683
|
+
_addRadioButton(radioButton: IgxRadioComponent): void;
|
|
11684
|
+
/**
|
|
11685
|
+
* Unregisters a radio button from this radio group.
|
|
11686
|
+
* This method is called by radio button components when they are destroyed.
|
|
11687
|
+
* @hidden @internal
|
|
11688
|
+
*/
|
|
11689
|
+
_removeRadioButton(radioButton: IgxRadioComponent): void;
|
|
11667
11690
|
/**
|
|
11668
11691
|
* @hidden
|
|
11669
11692
|
* @internal
|
|
11670
11693
|
*/
|
|
11671
11694
|
private _setRadioButtonsInvalid;
|
|
11672
11695
|
static ɵfac: i0.ɵɵFactoryDeclaration<IgxRadioGroupDirective, [{ optional: true; self: true; }, null, null]>;
|
|
11673
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<IgxRadioGroupDirective, "igx-radio-group, [igxRadioGroup]", ["igxRadioGroup"], { "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "alignment": { "alias": "alignment"; "required": false; }; }, { "change": "change"; },
|
|
11696
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<IgxRadioGroupDirective, "igx-radio-group, [igxRadioGroup]", ["igxRadioGroup"], { "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "alignment": { "alias": "alignment"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
|
|
11674
11697
|
static ngAcceptInputType_required: unknown;
|
|
11675
11698
|
static ngAcceptInputType_invalid: unknown;
|
|
11676
11699
|
}
|
|
@@ -12372,7 +12395,9 @@ declare class IgxDateTimeEditorDirective extends IgxMaskDirective implements OnC
|
|
|
12372
12395
|
* ```
|
|
12373
12396
|
*/
|
|
12374
12397
|
validationFailed: EventEmitter<IgxDateTimeEditorEventArgs>;
|
|
12398
|
+
private readonly SCROLL_THRESHOLD;
|
|
12375
12399
|
private _inputFormat;
|
|
12400
|
+
private _scrollAccumulator;
|
|
12376
12401
|
private _displayFormat;
|
|
12377
12402
|
private _oldValue;
|
|
12378
12403
|
private _dateValue;
|
|
@@ -19086,11 +19111,6 @@ interface IgxComboBase {
|
|
|
19086
19111
|
interface IComboFilteringOptions {
|
|
19087
19112
|
/** Defines filtering case-sensitivity */
|
|
19088
19113
|
caseSensitive?: boolean;
|
|
19089
|
-
/**
|
|
19090
|
-
* Defines whether filtering is allowed
|
|
19091
|
-
* @deprecated in version 18.2.0. Use the `disableFiltering` property instead.
|
|
19092
|
-
*/
|
|
19093
|
-
filterable?: boolean;
|
|
19094
19114
|
/** Defines optional key to filter against complex list items. Default to displayKey if provided.*/
|
|
19095
19115
|
filteringKey?: string;
|
|
19096
19116
|
}
|
|
@@ -19117,6 +19137,11 @@ declare abstract class IgxComboBaseDirective implements IgxComboBase, AfterViewC
|
|
|
19117
19137
|
* ```
|
|
19118
19138
|
*/
|
|
19119
19139
|
showSearchCaseIcon: boolean;
|
|
19140
|
+
/**
|
|
19141
|
+
* Enables/disables filtering in the list. The default is `false`.
|
|
19142
|
+
*/
|
|
19143
|
+
get disableFiltering(): boolean;
|
|
19144
|
+
set disableFiltering(value: boolean);
|
|
19120
19145
|
/**
|
|
19121
19146
|
* Set custom overlay settings that control how the combo's list of items is displayed.
|
|
19122
19147
|
* Set:
|
|
@@ -19720,6 +19745,7 @@ declare abstract class IgxComboBaseDirective implements IgxComboBase, AfterViewC
|
|
|
19720
19745
|
protected compareCollator: Intl.Collator;
|
|
19721
19746
|
protected computedStyles: any;
|
|
19722
19747
|
private _id;
|
|
19748
|
+
private _disableFiltering;
|
|
19723
19749
|
private _type;
|
|
19724
19750
|
private _dataType;
|
|
19725
19751
|
private _itemHeight;
|
|
@@ -19854,8 +19880,9 @@ declare abstract class IgxComboBaseDirective implements IgxComboBase, AfterViewC
|
|
|
19854
19880
|
protected abstract setSelection(newSelection: Set<any>, event?: Event): void;
|
|
19855
19881
|
protected abstract createDisplayText(newSelection: any[], oldSelection: any[]): any;
|
|
19856
19882
|
static ɵfac: i0.ɵɵFactoryDeclaration<IgxComboBaseDirective, [null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
19857
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<IgxComboBaseDirective, never, never, { "showSearchCaseIcon": { "alias": "showSearchCaseIcon"; "required": false; }; "overlaySettings": { "alias": "overlaySettings"; "required": false; }; "id": { "alias": "id"; "required": false; }; "width": { "alias": "width"; "required": false; }; "allowCustomValues": { "alias": "allowCustomValues"; "required": false; }; "itemsMaxHeight": { "alias": "itemsMaxHeight"; "required": false; }; "itemHeight": { "alias": "itemHeight"; "required": false; }; "itemsWidth": { "alias": "itemsWidth"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "data": { "alias": "data"; "required": false; }; "valueKey": { "alias": "valueKey"; "required": false; }; "displayKey": { "alias": "displayKey"; "required": false; }; "groupKey": { "alias": "groupKey"; "required": false; }; "groupSortingDirection": { "alias": "groupSortingDirection"; "required": false; }; "filterFunction": { "alias": "filterFunction"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "resourceStrings": { "alias": "resourceStrings"; "required": false; }; "filteringOptions": { "alias": "filteringOptions"; "required": false; }; }, { "opening": "opening"; "opened": "opened"; "closing": "closing"; "closed": "closed"; "addition": "addition"; "searchInputUpdate": "searchInputUpdate"; "dataPreLoad": "dataPreLoad"; }, ["itemTemplate", "headerTemplate", "footerTemplate", "headerItemTemplate", "addItemTemplate", "emptyTemplate", "toggleIconTemplate", "clearIconTemplate", "label", "prefixes", "suffixes"], never, true, never>;
|
|
19883
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<IgxComboBaseDirective, never, never, { "showSearchCaseIcon": { "alias": "showSearchCaseIcon"; "required": false; }; "disableFiltering": { "alias": "disableFiltering"; "required": false; }; "overlaySettings": { "alias": "overlaySettings"; "required": false; }; "id": { "alias": "id"; "required": false; }; "width": { "alias": "width"; "required": false; }; "allowCustomValues": { "alias": "allowCustomValues"; "required": false; }; "itemsMaxHeight": { "alias": "itemsMaxHeight"; "required": false; }; "itemHeight": { "alias": "itemHeight"; "required": false; }; "itemsWidth": { "alias": "itemsWidth"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "data": { "alias": "data"; "required": false; }; "valueKey": { "alias": "valueKey"; "required": false; }; "displayKey": { "alias": "displayKey"; "required": false; }; "groupKey": { "alias": "groupKey"; "required": false; }; "groupSortingDirection": { "alias": "groupSortingDirection"; "required": false; }; "filterFunction": { "alias": "filterFunction"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "resourceStrings": { "alias": "resourceStrings"; "required": false; }; "filteringOptions": { "alias": "filteringOptions"; "required": false; }; }, { "opening": "opening"; "opened": "opened"; "closing": "closing"; "closed": "closed"; "addition": "addition"; "searchInputUpdate": "searchInputUpdate"; "dataPreLoad": "dataPreLoad"; }, ["itemTemplate", "headerTemplate", "footerTemplate", "headerItemTemplate", "addItemTemplate", "emptyTemplate", "toggleIconTemplate", "clearIconTemplate", "label", "prefixes", "suffixes"], never, true, never>;
|
|
19858
19884
|
static ngAcceptInputType_showSearchCaseIcon: unknown;
|
|
19885
|
+
static ngAcceptInputType_disableFiltering: unknown;
|
|
19859
19886
|
static ngAcceptInputType_allowCustomValues: unknown;
|
|
19860
19887
|
static ngAcceptInputType_disabled: unknown;
|
|
19861
19888
|
}
|
|
@@ -20093,11 +20120,6 @@ declare class IgxComboComponent extends IgxComboBaseDirective implements AfterVi
|
|
|
20093
20120
|
* When `false`, the combo's list item container will be focused instead
|
|
20094
20121
|
*/
|
|
20095
20122
|
autoFocusSearch: boolean;
|
|
20096
|
-
/**
|
|
20097
|
-
* Enables/disables filtering in the list. The default is `false`.
|
|
20098
|
-
*/
|
|
20099
|
-
get disableFiltering(): boolean;
|
|
20100
|
-
set disableFiltering(value: boolean);
|
|
20101
20123
|
/**
|
|
20102
20124
|
* Defines the placeholder value for the combo dropdown search field
|
|
20103
20125
|
*
|
|
@@ -20130,7 +20152,6 @@ declare class IgxComboComponent extends IgxComboBaseDirective implements AfterVi
|
|
|
20130
20152
|
set filteredData(val: any[] | null);
|
|
20131
20153
|
protected _prevInputValue: string;
|
|
20132
20154
|
private _displayText;
|
|
20133
|
-
private _disableFiltering;
|
|
20134
20155
|
constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, selectionService: IgxSelectionAPIService, comboAPI: IgxComboAPIService, document: any, _inputGroupType: IgxInputGroupType, _injector: Injector, _iconService?: IgxIconService);
|
|
20135
20156
|
onArrowDown(event: Event): void;
|
|
20136
20157
|
/** @hidden @internal */
|
|
@@ -20228,9 +20249,8 @@ declare class IgxComboComponent extends IgxComboBaseDirective implements AfterVi
|
|
|
20228
20249
|
/** Returns a string that should be populated in the combo's text box */
|
|
20229
20250
|
private concatDisplayText;
|
|
20230
20251
|
static ɵfac: i0.ɵɵFactoryDeclaration<IgxComboComponent, [null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
20231
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IgxComboComponent, "igx-combo", never, { "autoFocusSearch": { "alias": "autoFocusSearch"; "required": false; }; "
|
|
20252
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IgxComboComponent, "igx-combo", never, { "autoFocusSearch": { "alias": "autoFocusSearch"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; }, { "selectionChanging": "selectionChanging"; }, never, ["[igxLabel]", "igx-prefix,[igxPrefix]", "igx-hint, [igxHint]", "igx-suffix,[igxSuffix]"], true, never>;
|
|
20232
20253
|
static ngAcceptInputType_autoFocusSearch: unknown;
|
|
20233
|
-
static ngAcceptInputType_disableFiltering: unknown;
|
|
20234
20254
|
}
|
|
20235
20255
|
|
|
20236
20256
|
/**
|
|
@@ -25948,7 +25968,7 @@ declare class IgxExcelStyleDefaultExpressionComponent implements AfterViewInit {
|
|
|
25948
25968
|
onConditionsChanged(eventArgs: any): void;
|
|
25949
25969
|
getCondition(value: string): IFilteringOperation;
|
|
25950
25970
|
getConditionFriendlyName(name: string): string;
|
|
25951
|
-
|
|
25971
|
+
updateSearchValueOnBlur(eventArgs: any): void;
|
|
25952
25972
|
onLogicOperatorButtonClicked(eventArgs: any, buttonIndex: number): void;
|
|
25953
25973
|
onLogicOperatorKeyDown(eventArgs: KeyboardEvent, buttonIndex: number): void;
|
|
25954
25974
|
onRemoveButtonClick(): void;
|
|
@@ -40964,6 +40984,12 @@ declare class IgxItemListDirective implements OnInit, OnDestroy {
|
|
|
40964
40984
|
tabindex: number;
|
|
40965
40985
|
type: string;
|
|
40966
40986
|
isActive: boolean;
|
|
40987
|
+
private readonly SCROLL_THRESHOLD;
|
|
40988
|
+
private readonly PAN_THRESHOLD;
|
|
40989
|
+
/**
|
|
40990
|
+
* accumulates wheel scrolls and triggers a change action above SCROLL_THRESHOLD
|
|
40991
|
+
*/
|
|
40992
|
+
private scrollAccumulator;
|
|
40967
40993
|
constructor(timePicker: IgxTimePickerBase, elementRef: ElementRef, touchManager: HammerGesturesManager);
|
|
40968
40994
|
get defaultCSS(): boolean;
|
|
40969
40995
|
get hourCSS(): boolean;
|
|
@@ -157,6 +157,8 @@
|
|
|
157
157
|
/// @param {List} $border-radius [null] - The border radius used for the calendar.
|
|
158
158
|
/// @param {List} $date-border-radius [null] - The border radius used for the date.
|
|
159
159
|
/// @param {List} $date-range-border-radius [null] - The border radius used for the date range selection.
|
|
160
|
+
/// @param {List} $date-current-border-radius [null] - The border radius used for the current date .
|
|
161
|
+
/// @param {List} $date-special-border-radius [null] - The border radius used for the special date.
|
|
160
162
|
/// @param {List} $ym-border-radius [null] - The border radius used for the month/year.
|
|
161
163
|
///
|
|
162
164
|
/// @param {Color} $actions-divider-color [null] - The border color used for the date-picker actions divider.
|
|
@@ -310,6 +312,8 @@
|
|
|
310
312
|
$date-border-radius: null,
|
|
311
313
|
$week-number-border-radius: null,
|
|
312
314
|
$date-range-border-radius: null,
|
|
315
|
+
$date-current-border-radius: null,
|
|
316
|
+
$date-special-border-radius: null,
|
|
313
317
|
$ym-border-radius: null,
|
|
314
318
|
|
|
315
319
|
$actions-divider-color: null,
|
|
@@ -330,6 +334,22 @@
|
|
|
330
334
|
$theme: digest-schema($calendar-schema);
|
|
331
335
|
$variant: map.get($schema, '_meta', 'theme');
|
|
332
336
|
|
|
337
|
+
@if not($date-range-border-radius) and $date-border-radius {
|
|
338
|
+
$date-range-border-radius: $date-border-radius;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
@if not($date-border-radius) and $date-range-border-radius {
|
|
342
|
+
$date-border-radius: $date-range-border-radius;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
@if not($date-current-border-radius) and $date-border-radius {
|
|
346
|
+
$date-current-border-radius: $date-border-radius;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
@if not($date-special-border-radius) and $date-border-radius {
|
|
350
|
+
$date-special-border-radius: $date-border-radius;
|
|
351
|
+
}
|
|
352
|
+
|
|
333
353
|
//base start
|
|
334
354
|
@if not($header-foreground) and $header-background {
|
|
335
355
|
$header-foreground: adaptive-contrast(var(--header-background));
|
|
@@ -1031,6 +1051,8 @@
|
|
|
1031
1051
|
border-radius: $border-radius,
|
|
1032
1052
|
date-border-radius: $date-border-radius,
|
|
1033
1053
|
date-range-border-radius: $date-range-border-radius,
|
|
1054
|
+
date-current-border-radius: $date-current-border-radius,
|
|
1055
|
+
date-special-border-radius: $date-special-border-radius,
|
|
1034
1056
|
ym-border-radius: $ym-border-radius,
|
|
1035
1057
|
week-number-border-radius: $week-number-border-radius,
|
|
1036
1058
|
date-border-color: $date-border-color,
|
|
@@ -1827,13 +1849,12 @@
|
|
|
1827
1849
|
position: absolute;
|
|
1828
1850
|
z-index: 0;
|
|
1829
1851
|
border: $border-size solid transparent;
|
|
1852
|
+
border-radius: calc(var-get($theme, 'date-special-border-radius') - $border-size);
|
|
1830
1853
|
|
|
1831
1854
|
@if $variant == 'fluent' {
|
|
1832
|
-
border-radius: 50%;
|
|
1833
1855
|
width: $date-inner-size;
|
|
1834
1856
|
height: $date-inner-size;
|
|
1835
1857
|
} @else {
|
|
1836
|
-
border-radius: inherit;
|
|
1837
1858
|
// By default initial size of the inner element is the same as the date size
|
|
1838
1859
|
width: $date-size;
|
|
1839
1860
|
height: $date-size;
|
|
@@ -1964,6 +1985,7 @@
|
|
|
1964
1985
|
background: var-get($theme, 'date-special-range-hover-background');
|
|
1965
1986
|
|
|
1966
1987
|
@if $variant == 'indigo' {
|
|
1988
|
+
// stylelint-disable-next-line
|
|
1967
1989
|
&::after {
|
|
1968
1990
|
border-color: var-get($theme, 'date-special-hover-border-color');
|
|
1969
1991
|
}
|
|
@@ -2041,9 +2063,13 @@
|
|
|
2041
2063
|
z-index: -1;
|
|
2042
2064
|
width: $date-inner-size;
|
|
2043
2065
|
height: $date-inner-size;
|
|
2044
|
-
border-radius:
|
|
2066
|
+
border-radius: calc(var-get($theme, 'date-current-border-radius') - ($border-size * 2));
|
|
2045
2067
|
background: var-get($theme, 'date-current-background');
|
|
2046
2068
|
}
|
|
2069
|
+
|
|
2070
|
+
&::after {
|
|
2071
|
+
border-radius: calc(var-get($theme, 'date-current-border-radius') - $border-size);
|
|
2072
|
+
}
|
|
2047
2073
|
}
|
|
2048
2074
|
|
|
2049
2075
|
@if $variant == 'indigo' {
|
|
@@ -2089,8 +2115,8 @@
|
|
|
2089
2115
|
&::after {
|
|
2090
2116
|
border-color: var-get($theme, 'date-special-border-color');
|
|
2091
2117
|
|
|
2092
|
-
@if $variant == 'bootstrap' {
|
|
2093
|
-
border-radius: $date-size;
|
|
2118
|
+
@if $variant == 'bootstrap' or $variant == 'fluent' {
|
|
2119
|
+
border-radius: calc(var-get($theme, 'date-special-border-radius') - ($border-size * 2));
|
|
2094
2120
|
}
|
|
2095
2121
|
}
|
|
2096
2122
|
|
|
@@ -2232,6 +2258,7 @@
|
|
|
2232
2258
|
}
|
|
2233
2259
|
|
|
2234
2260
|
&:hover {
|
|
2261
|
+
// stylelint-disable-next-line
|
|
2235
2262
|
&::after {
|
|
2236
2263
|
border-color: var-get($theme, 'date-selected-special-hover-border-color');
|
|
2237
2264
|
}
|
|
@@ -2343,6 +2370,7 @@
|
|
|
2343
2370
|
}
|
|
2344
2371
|
|
|
2345
2372
|
&:hover {
|
|
2373
|
+
// stylelint-disable-next-line
|
|
2346
2374
|
&::after {
|
|
2347
2375
|
border-color: var-get($theme, 'date-current-hover-border-color');
|
|
2348
2376
|
}
|
|
@@ -236,6 +236,11 @@
|
|
|
236
236
|
"version": "20.0.2",
|
|
237
237
|
"description": "Updates Ignite UI for Angular from v20.0.0 to v20.0.2",
|
|
238
238
|
"factory": "./update-20_0_2"
|
|
239
|
+
},
|
|
240
|
+
"migration-48": {
|
|
241
|
+
"version": "20.0.6",
|
|
242
|
+
"description": "Updates Ignite UI for Angular from v20.0.2 to v20.0.6",
|
|
243
|
+
"factory": "./update-20_0_6"
|
|
239
244
|
}
|
|
240
245
|
}
|
|
241
246
|
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const compiler_1 = require("@angular/compiler");
|
|
13
|
+
const UpdateChanges_1 = require("../common/UpdateChanges");
|
|
14
|
+
const util_1 = require("../common/util");
|
|
15
|
+
const import_helper_js_1 = require("igniteui-angular/migrations/common/import-helper.js");
|
|
16
|
+
const version = '20.0.6';
|
|
17
|
+
exports.default = () => (host, context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
context.logger.info(`Applying migration for Ignite UI for Angular to version ${version}`);
|
|
19
|
+
const { HtmlParser } = yield (0, import_helper_js_1.nativeImport)('@angular/compiler');
|
|
20
|
+
const update = new UpdateChanges_1.UpdateChanges(__dirname, host, context);
|
|
21
|
+
const changes = new Map();
|
|
22
|
+
const parser = new HtmlParser();
|
|
23
|
+
const warnMsg = "Manual migration needed: please use 'disableFiltering' instead of filteringOptions.filterable." +
|
|
24
|
+
"Since it has been deprecated.'";
|
|
25
|
+
const applyChanges = () => {
|
|
26
|
+
for (const [path, fileChanges] of changes.entries()) {
|
|
27
|
+
let content = host.read(path).toString();
|
|
28
|
+
fileChanges.sort((a, b) => b.position - a.position).forEach(c => {
|
|
29
|
+
content = c.apply(content);
|
|
30
|
+
});
|
|
31
|
+
host.overwrite(path, content);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const addChange = (path, change) => {
|
|
35
|
+
if (!changes.has(path)) {
|
|
36
|
+
changes.set(path, []);
|
|
37
|
+
}
|
|
38
|
+
changes.get(path).push(change);
|
|
39
|
+
};
|
|
40
|
+
const COMBO_TAGS = ['igx-simple-combo', 'igx-combo'];
|
|
41
|
+
for (const path of update.templateFiles) {
|
|
42
|
+
const nodes = (0, util_1.findElementNodes)((0, util_1.parseFile)(parser, host, path), COMBO_TAGS);
|
|
43
|
+
for (const node of nodes) {
|
|
44
|
+
if (!(node instanceof compiler_1.Element))
|
|
45
|
+
continue;
|
|
46
|
+
const hasDisableFiltering = node.attrs.some(a => a.name.includes('disableFiltering'));
|
|
47
|
+
const attr = node.attrs.find(a => a.name === '[filteringOptions]');
|
|
48
|
+
if (!attr)
|
|
49
|
+
continue;
|
|
50
|
+
const attrVal = attr.value.trim();
|
|
51
|
+
const offset = (0, util_1.getSourceOffset)(node);
|
|
52
|
+
const file = offset.file;
|
|
53
|
+
let replacementText = '';
|
|
54
|
+
if (attrVal.startsWith('{')) {
|
|
55
|
+
// inline object literal
|
|
56
|
+
const normalized = attrVal
|
|
57
|
+
.replace(/'/g, '"')
|
|
58
|
+
.replace(/([{,]\s*)(\w+)\s*:/g, '$1"$2":');
|
|
59
|
+
const parsed = JSON.parse(normalized);
|
|
60
|
+
const filterable = parsed.filterable;
|
|
61
|
+
if (filterable === false && !hasDisableFiltering) {
|
|
62
|
+
replacementText += `[disableFiltering]="true"`;
|
|
63
|
+
}
|
|
64
|
+
const remaining = Object.assign({}, parsed);
|
|
65
|
+
delete remaining.filterable;
|
|
66
|
+
const remainingProps = Object.entries(remaining)
|
|
67
|
+
.map(([k, v]) => `${k}: ${JSON.stringify(v)}`)
|
|
68
|
+
.join(', ');
|
|
69
|
+
if (remainingProps.length > 0) {
|
|
70
|
+
replacementText += ` [filteringOptions]="{ ${remainingProps} }"`;
|
|
71
|
+
}
|
|
72
|
+
// Replace whole [filteringOptions] attribute
|
|
73
|
+
const match = node.sourceSpan.toString().match(/\[filteringOptions\]="([^"]+)"/);
|
|
74
|
+
if (match) {
|
|
75
|
+
const attrText = match[0];
|
|
76
|
+
const attrPos = file.content.indexOf(attrText, offset.startTag.start);
|
|
77
|
+
addChange(file.url, new util_1.FileChange(attrPos, replacementText, attrText, 'replace'));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// log for manual TS edit
|
|
82
|
+
const comment = `\n<!-- ${warnMsg} -->\n`;
|
|
83
|
+
addChange(file.url, new util_1.FileChange(offset.startTag.end, comment));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
applyChanges();
|
|
88
|
+
for (const path of update.tsFiles) {
|
|
89
|
+
const content = host.read(path).toString();
|
|
90
|
+
const lines = content.split('\n');
|
|
91
|
+
const newLines = [];
|
|
92
|
+
let modified = false;
|
|
93
|
+
for (const line of lines) {
|
|
94
|
+
if (/\.filteringOptions\.filterable\s*=/.test(line) ||
|
|
95
|
+
/\.filteringOptions\s*=/.test(line)) {
|
|
96
|
+
newLines.push('// ' + warnMsg);
|
|
97
|
+
modified = true;
|
|
98
|
+
}
|
|
99
|
+
newLines.push(line);
|
|
100
|
+
}
|
|
101
|
+
if (modified) {
|
|
102
|
+
host.overwrite(path, newLines.join('\n'));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
update.applyChanges();
|
|
106
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "igniteui-angular",
|
|
3
|
-
"version": "20.0.
|
|
3
|
+
"version": "20.0.7",
|
|
4
4
|
"description": "Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps",
|
|
5
5
|
"author": "Infragistics",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"tslib": "^2.3.0",
|
|
74
74
|
"igniteui-trial-watermark": "^3.1.0",
|
|
75
75
|
"lodash-es": "^4.17.21",
|
|
76
|
-
"igniteui-theming": "^
|
|
76
|
+
"igniteui-theming": "^19.1.2",
|
|
77
77
|
"@igniteui/material-icons-extended": "^3.1.0"
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|