Skip to content

Commit e742aaf

Browse files
authored
Merge branch 'master' into igniteui-angular-6589
2 parents 3929b6b + 9df51fc commit e742aaf

File tree

12 files changed

+255
-103
lines changed

12 files changed

+255
-103
lines changed

projects/igniteui-angular/src/lib/core/styles/components/input/_input-group-component.scss

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@
314314

315315
@include e(label) {
316316
@extend %form-group-label--box !optional;
317+
@extend %form-group-label--border !optional;
317318
}
318319

319320
@include e(textarea) {
@@ -325,6 +326,28 @@
325326
}
326327
}
327328

329+
@include mx(border, filled) {
330+
@include e(label) {
331+
@extend %form-group-label-float !optional;
332+
@extend %form-group-label--float-border !optional;
333+
}
334+
}
335+
336+
@include mx(border, focused) {
337+
@include e(label) {
338+
@extend %form-group-label--float !optional;
339+
@extend %form-group-label--float-border !optional;
340+
}
341+
}
342+
343+
@include mx(border, placeholder) {
344+
@include e(label) {
345+
@extend %form-group-label--float !optional;
346+
@extend %form-group-label--float-border !optional;
347+
}
348+
}
349+
350+
328351
@include mx(border, cosy) {
329352
@extend %form-group-display--no-margin-cosy !optional;
330353

@@ -341,6 +364,30 @@
341364
}
342365
}
343366

367+
@include mx(border, cosy, filled) {
368+
@include e(label) {
369+
@extend %form-group-label--float !optional;
370+
@extend %form-group-label--float-border !optional;
371+
@extend %form-group-label--float-border-cosy !optional;
372+
}
373+
}
374+
375+
@include mx(border, cosy, focused) {
376+
@include e(label) {
377+
@extend %form-group-label--float !optional;
378+
@extend %form-group-label--float-border !optional;
379+
@extend %form-group-label--float-border-cosy !optional;
380+
}
381+
}
382+
383+
@include mx(border, cosy, placeholder) {
384+
@include e(label) {
385+
@extend %form-group-label--float !optional;
386+
@extend %form-group-label--float-border !optional;
387+
@extend %form-group-label--float-border-cosy !optional;
388+
}
389+
}
390+
344391
@include mx(border, compact) {
345392
@extend %form-group-display--no-margin-compact !optional;
346393

@@ -357,6 +404,30 @@
357404
}
358405
}
359406

407+
@include mx(border, compact, filled) {
408+
@include e(label) {
409+
@extend %form-group-label--float !optional;
410+
@extend %form-group-label--float-border !optional;
411+
@extend %form-group-label--float-border-compact !optional;
412+
}
413+
}
414+
415+
@include mx(border, compact, focused) {
416+
@include e(label) {
417+
@extend %form-group-label--float !optional;
418+
@extend %form-group-label--float-border !optional;
419+
@extend %form-group-label--float-border-compact !optional;
420+
}
421+
}
422+
423+
@include mx(border, compact, placeholder) {
424+
@include e(label) {
425+
@extend %form-group-label--float !optional;
426+
@extend %form-group-label--float-border !optional;
427+
@extend %form-group-label--float-border-compact !optional;
428+
}
429+
}
430+
360431
@include mx(valid, border) {
361432
@include e(bundle) {
362433
@extend %form-group-bundle-border--success !optional;
@@ -379,6 +450,10 @@
379450
@include e(bundle) {
380451
@extend %form-group-bundle-border--disabled !optional;
381452
}
453+
454+
@include e(label) {
455+
@extend %form-group-label--float-border-disabled !optional;
456+
}
382457
}
383458

384459
// Fluent Theme Start //

projects/igniteui-angular/src/lib/core/styles/components/input/_input-group-theme.scss

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,10 @@
114114
$input-prefix-color: null,
115115
$input-prefix-background: null,
116116
$input-suffix-color: null,
117-
$input-suffix-background: null
117+
$input-suffix-background: null,
118+
119+
$label-floated-background: null,
120+
$label-floated-disabled-background: null
118121
) {
119122
$name: 'igx-input-group';
120123
$input-group-schema: ();
@@ -234,6 +237,8 @@
234237
input-suffix-color: $input-suffix-color,
235238
input-suffix-background: $input-suffix-background,
236239

240+
label-floated-background: $label-floated-background,
241+
label-floated-disabled-background: $label-floated-disabled-background,
237242
focused-shadow-color: $focused-shadow-color,
238243
success-shadow-color: $success-shadow-color,
239244
error-shadow-color: $error-shadow-color,
@@ -477,10 +482,6 @@
477482
box-shadow: inset 0 0 0 1px --var($theme, 'border-color');
478483
border-radius: --var($theme, 'border-border-radius');
479484
background: --var($theme, 'border-background');
480-
481-
%form-group-label--box + %form-group-input--box {
482-
transform: translateY(0);
483-
}
484485
}
485486

486487
%form-group-bundle--border-cosy {
@@ -803,7 +804,7 @@
803804
%form-group-label {
804805
@include ellipsis();
805806
position: absolute;
806-
width: 100%;
807+
// width: 100%;
807808
transform: translateY(50%); /* 8px, base is 16px */
808809
line-height: 1 !important;
809810
height: rem(18px);
@@ -825,12 +826,35 @@
825826
transform: translateY(0);
826827
}
827828

829+
%form-group-label--border {
830+
padding: 0 rem(4px);
831+
transition: all $transition-timing;
832+
}
833+
828834
%form-group-label--float {
829835
overflow: visible;
830836
transform: translateY(-50%) scale(.75);
831837
margin-top: auto;
832838
}
833839

840+
%form-group-label--float-border {
841+
// width: auto;
842+
transform: translateY(-130%) scale(.75);
843+
background: --var($theme, 'label-floated-background', inherit);
844+
}
845+
846+
%form-group-label--float-border-disabled {
847+
background: --var($theme, 'label-floated-disabled-background', inherit);
848+
}
849+
850+
%form-group-label--float-border-cosy {
851+
transform: translateY(-115%) scale(.75);
852+
}
853+
854+
%form-group-label--float-border-compact {
855+
transform: translateY(-105%) scale(.75);
856+
}
857+
834858
%form-group-label--fixed {
835859
transition: color $transition-timing;
836860
}

projects/igniteui-angular/src/lib/core/styles/themes/_palettes.scss

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,17 @@
4747
/// @requires igx-palette
4848
$default-palette: igx-palette($primary: #09f, $secondary: #e41c77) !default;
4949

50+
51+
/// Default dark palette
52+
/// @type {Map}
53+
/// @group palettes
54+
$default-dark-palette: extend(
55+
$default-palette,
56+
(
57+
surface: (500: #222)
58+
)
59+
) !default;
60+
5061
/// Global Overlay Color
5162
/// @group palettes
5263
/// @type Color
@@ -77,14 +88,33 @@ $green-palette: igx-palette(
7788
$secondary: #72da67
7889
) !default;
7990

80-
/// Red palette
91+
/// Dark green palette,
92+
/// @type {Map}
93+
/// @group palettes
94+
$green-dark-palette: extend(
95+
$green-palette,
96+
(
97+
surface: (500: #222)
98+
)
99+
) !default;
100+
101+
/// Purple palette
81102
/// @type {Map}
82103
/// @group palettes
83104
$purple-palette: igx-palette(
84105
$primary: #00b4d6,
85106
$secondary: #514590
86107
) !default;
87108

109+
/// Dark purple palette
110+
/// @type {Map}
111+
/// @group palettes
112+
$purple-dark-palette: extend(
113+
$purple-palette,
114+
(
115+
surface: (500: #333)
116+
)
117+
) !default;
88118

89119
/// Fluent Excel palette
90120
/// @type {Map}
@@ -97,6 +127,16 @@ $fluent-excel-palette: igx-palette(
97127
$error: #a80000
98128
) !default;
99129

130+
/// Fluent Excel dark palette
131+
/// @type {Map}
132+
/// @group palettes
133+
$fluent-excel-dark-palette: extend(
134+
$fluent-excel-palette,
135+
(
136+
surface: (500: #222)
137+
)
138+
) !default;
139+
100140
/// Fluent Word palette
101141
/// @type {Map}
102142
/// @group palettes
@@ -105,7 +145,17 @@ $fluent-word-palette: igx-palette(
105145
$secondary: #2b579a,
106146
$success: #107c10,
107147
$warn: #797673,
108-
$error: #a80000
148+
$error: #a80000,
149+
) !default;
150+
151+
/// Fluent Word dark palette
152+
/// @type {Map}
153+
/// @group palettes
154+
$fluent-word-dark-palette: extend(
155+
$fluent-word-palette,
156+
(
157+
surface: (500: #222)
158+
)
109159
) !default;
110160

111161
/// Bootstrap palette
@@ -121,3 +171,13 @@ $bootstrap-palette: igx-palette(
121171
$surface: #f8f9fa
122172
) !default;
123173

174+
/// Bootstrap dark palette
175+
/// @type {Map}
176+
/// @group palettes
177+
$bootstrap-dark-palette: extend(
178+
$bootstrap-palette,
179+
(
180+
surface: (500: #333)
181+
)
182+
) !default;
183+

projects/igniteui-angular/src/lib/core/styles/themes/schemas/light/_input-group.scss

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@
5252
/// @prop {Number} box-border-radius [.2 .2 0 0] - The border radius fraction, between 0-1 to be used for box input .
5353
/// @prop {Number} border-border-radius [.2] - The border radius fraction, between 0-1 to be used for border input .
5454
/// @prop {Number} search-border-radius [.2] - The border radius fraction, between 0-1 to be used for search input .
55+
/// @prop {Color} label-floated-background [igx-color: surface] - The background color of the label when floated for input of type border.
56+
/// @prop {Color} label-floated-disabled-background [igx-color: surface] - The background color of the label when floated for input group of type border in its disabled state.
5557
///
5658
/// @requires {function} extend
5759
/// @requires {map} $_default-shape-input-group
@@ -138,7 +140,7 @@ $_light-input-group: extend(
138140

139141
disabled-border-color: (
140142
igx-color: ('grays', 500),
141-
rgba: .06
143+
rgba: .12
142144
),
143145

144146
box-background: (
@@ -151,8 +153,14 @@ $_light-input-group: extend(
151153

152154
border-background: transparent,
153155

154-
border-disabled-background: (
155-
igx-color: ('grays', 100)
156+
border-disabled-background: transparent,
157+
158+
label-floated-background: (
159+
igx-color: surface
160+
),
161+
162+
label-floated-disabled-background: (
163+
igx-color: surface
156164
),
157165

158166
search-background: #fff,

projects/igniteui-angular/src/lib/grids/api.service.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ import { IgxCell, IgxRow } from './selection/selection.service';
1414
import { GridType } from './common/grid.interface';
1515
import { ColumnType } from './common/column.interface';
1616
import { IRowToggleEventArgs } from './common/events';
17+
import {
18+
ROW_COLLAPSE_KEYS, ROW_EXPAND_KEYS
19+
} from '../core/utils';
20+
import { first, debounceTime } from 'rxjs/operators';
1721
/**
1822
*@hidden
1923
*/
@@ -578,6 +582,12 @@ export class GridBaseAPIService <T extends IgxGridBaseDirective & GridType> {
578582
if (grid.rowEditable) {
579583
grid.endEdit(true);
580584
}
585+
const eventKey = event && (event as any).key ? (event as any).key.toLowerCase() : null;
586+
if (eventKey && this.isToggleKey(eventKey)) {
587+
(this.grid as any).zone.onStable.pipe(debounceTime(30)).pipe(first()).subscribe(() => {
588+
this.focusActiveCell(rowID);
589+
});
590+
}
581591
}
582592

583593
public get_rec_by_id(rowID) {
@@ -588,4 +598,20 @@ export class GridBaseAPIService <T extends IgxGridBaseDirective & GridType> {
588598
return this.grid.expansionStates.get(rowID) !== expanded;
589599
}
590600

601+
private isToggleKey(key: string): boolean {
602+
return ROW_COLLAPSE_KEYS.has(key) || ROW_EXPAND_KEYS.has(key);
603+
}
604+
605+
private focusActiveCell(rowID) {
606+
// persist focused cell
607+
const isVirtualized = !this.grid.verticalScrollContainer.dc.instance.notVirtual;
608+
const el = this.grid.selectionService.activeElement;
609+
if (isVirtualized && el) {
610+
const cell = this.get_cell_by_key(rowID, this.grid.visibleColumns[el.column].field);
611+
if (cell) {
612+
cell.nativeElement.focus();
613+
}
614+
}
615+
}
616+
591617
}

projects/igniteui-angular/src/lib/grids/grid-base.directive.ts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3400,7 +3400,6 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
34003400
this.expansionStatesChange.emit(this._expansionStates);
34013401
if (this.gridAPI.grid) {
34023402
this.cdr.detectChanges();
3403-
this._focusActiveCell();
34043403
}
34053404
}
34063405

@@ -6257,16 +6256,4 @@ export class IgxGridBaseDirective extends DisplayDensityBase implements
62576256
advancedFilteringDialog.closeDialog();
62586257
}
62596258
}
6260-
6261-
protected _focusActiveCell() {
6262-
// persist focused cell
6263-
const isVirtualized = !this.verticalScrollContainer.dc.instance.notVirtual;
6264-
const el = this.selectionService.activeElement;
6265-
if (isVirtualized && el) {
6266-
const cell = this.gridAPI.get_cell_by_visible_index(el.row, el.column);
6267-
if (cell) {
6268-
cell.nativeElement.focus();
6269-
}
6270-
}
6271-
}
62726259
}

0 commit comments

Comments
 (0)