@syncfusion/ej2-splitbuttons 20.2.36 → 20.2.45
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/CHANGELOG.md +12 -0
- package/dist/ej2-splitbuttons.umd.min.js +2 -2
- package/dist/ej2-splitbuttons.umd.min.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es2015.js +21 -2
- package/dist/es6/ej2-splitbuttons.es2015.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es5.js +21 -2
- package/dist/es6/ej2-splitbuttons.es5.js.map +1 -1
- package/dist/global/ej2-splitbuttons.min.js +2 -2
- package/dist/global/ej2-splitbuttons.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +7 -7
- package/src/drop-down-button/drop-down-button-model.d.ts +7 -0
- package/src/drop-down-button/drop-down-button.d.ts +7 -0
- package/src/drop-down-button/drop-down-button.js +21 -2
- package/styles/bootstrap-dark.css +5 -5
- package/styles/bootstrap4.css +1 -1
- package/styles/button-group/fluent-dark.css +15 -15
- package/styles/fluent-dark.css +40 -40
- package/styles/highcontrast.css +2 -2
- package/styles/progress-button/_bootstrap-dark-definition.scss +5 -5
- package/styles/progress-button/_bootstrap4-definition.scss +1 -1
- package/styles/progress-button/_highcontrast-definition.scss +1 -1
- package/styles/progress-button/bootstrap-dark.css +5 -5
- package/styles/progress-button/bootstrap4.css +1 -1
- package/styles/progress-button/fluent-dark.css +25 -25
- package/styles/progress-button/highcontrast.css +2 -2
- package/dist/ts/button-group/button-group.ts +0 -84
- package/dist/ts/common/common.ts +0 -203
- package/dist/ts/drop-down-button/drop-down-button.ts +0 -806
- package/dist/ts/progress-button/progress-button.ts +0 -689
- package/dist/ts/split-button/split-button.ts +0 -501
|
@@ -320,14 +320,14 @@
|
|
|
320
320
|
stroke: #fff;
|
|
321
321
|
}
|
|
322
322
|
.e-progress-btn.e-primary .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-primary.e-outline:hover .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-primary.e-outline:focus .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-primary.e-flat:hover .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-primary.e-flat:focus .e-spinner-pane .e-spinner-inner svg {
|
|
323
|
-
fill: #
|
|
324
|
-
stroke: #
|
|
323
|
+
fill: #1b1a19;
|
|
324
|
+
stroke: #1b1a19;
|
|
325
325
|
}
|
|
326
326
|
.e-progress-btn.e-primary .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-primary.e-outline:hover .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-primary.e-outline:focus .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-primary.e-flat:hover .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-primary.e-flat:focus .e-spinner-pane .e-spinner-inner svg .e-path-circle {
|
|
327
|
-
stroke: rgba(
|
|
327
|
+
stroke: rgba(27, 26, 25, 0.7);
|
|
328
328
|
}
|
|
329
329
|
.e-progress-btn.e-primary .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-primary.e-outline:hover .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-primary.e-outline:focus .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-primary.e-flat:hover .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-primary.e-flat:focus .e-spinner-pane .e-spinner-inner svg .e-path-arc {
|
|
330
|
-
stroke: #
|
|
330
|
+
stroke: #1b1a19;
|
|
331
331
|
}
|
|
332
332
|
.e-progress-btn.e-primary.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-primary.e-outline:hover.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-primary.e-outline:focus.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-primary.e-flat:hover.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-primary.e-flat:focus.e-flat .e-spinner-pane .e-spinner-inner svg {
|
|
333
333
|
fill: #0078d4;
|
|
@@ -340,14 +340,14 @@
|
|
|
340
340
|
stroke: #0078d4;
|
|
341
341
|
}
|
|
342
342
|
.e-progress-btn.e-success .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-success.e-outline:hover .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-success.e-outline:focus .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-success.e-flat:hover .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-success.e-flat:focus .e-spinner-pane .e-spinner-inner svg {
|
|
343
|
-
fill: #
|
|
344
|
-
stroke: #
|
|
343
|
+
fill: #1b1a19;
|
|
344
|
+
stroke: #1b1a19;
|
|
345
345
|
}
|
|
346
346
|
.e-progress-btn.e-success .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-success.e-outline:hover .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-success.e-outline:focus .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-success.e-flat:hover .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-success.e-flat:focus .e-spinner-pane .e-spinner-inner svg .e-path-circle {
|
|
347
|
-
stroke: rgba(
|
|
347
|
+
stroke: rgba(27, 26, 25, 0.7);
|
|
348
348
|
}
|
|
349
349
|
.e-progress-btn.e-success .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-success.e-outline:hover .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-success.e-outline:focus .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-success.e-flat:hover .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-success.e-flat:focus .e-spinner-pane .e-spinner-inner svg .e-path-arc {
|
|
350
|
-
stroke: #
|
|
350
|
+
stroke: #1b1a19;
|
|
351
351
|
}
|
|
352
352
|
.e-progress-btn.e-success.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-success.e-outline:hover.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-success.e-outline:focus.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-success.e-flat:hover.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-success.e-flat:focus.e-flat .e-spinner-pane .e-spinner-inner svg {
|
|
353
353
|
fill: #0b6a0b;
|
|
@@ -360,14 +360,14 @@
|
|
|
360
360
|
stroke: #0b6a0b;
|
|
361
361
|
}
|
|
362
362
|
.e-progress-btn.e-info .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-info.e-outline:hover .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-info.e-outline:focus .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-info.e-flat:hover .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-info.e-flat:focus .e-spinner-pane .e-spinner-inner svg {
|
|
363
|
-
fill: #
|
|
364
|
-
stroke: #
|
|
363
|
+
fill: #1b1a19;
|
|
364
|
+
stroke: #1b1a19;
|
|
365
365
|
}
|
|
366
366
|
.e-progress-btn.e-info .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-info.e-outline:hover .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-info.e-outline:focus .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-info.e-flat:hover .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-info.e-flat:focus .e-spinner-pane .e-spinner-inner svg .e-path-circle {
|
|
367
|
-
stroke: rgba(
|
|
367
|
+
stroke: rgba(27, 26, 25, 0.7);
|
|
368
368
|
}
|
|
369
369
|
.e-progress-btn.e-info .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-info.e-outline:hover .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-info.e-outline:focus .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-info.e-flat:hover .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-info.e-flat:focus .e-spinner-pane .e-spinner-inner svg .e-path-arc {
|
|
370
|
-
stroke: #
|
|
370
|
+
stroke: #1b1a19;
|
|
371
371
|
}
|
|
372
372
|
.e-progress-btn.e-info.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-info.e-outline:hover.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-info.e-outline:focus.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-info.e-flat:hover.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-info.e-flat:focus.e-flat .e-spinner-pane .e-spinner-inner svg {
|
|
373
373
|
fill: #038387;
|
|
@@ -380,14 +380,14 @@
|
|
|
380
380
|
stroke: #038387;
|
|
381
381
|
}
|
|
382
382
|
.e-progress-btn.e-warning .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-warning.e-outline:hover .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-warning.e-outline:focus .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-warning.e-flat:hover .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-warning.e-flat:focus .e-spinner-pane .e-spinner-inner svg {
|
|
383
|
-
fill: #
|
|
384
|
-
stroke: #
|
|
383
|
+
fill: #1b1a19;
|
|
384
|
+
stroke: #1b1a19;
|
|
385
385
|
}
|
|
386
386
|
.e-progress-btn.e-warning .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-warning.e-outline:hover .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-warning.e-outline:focus .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-warning.e-flat:hover .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-warning.e-flat:focus .e-spinner-pane .e-spinner-inner svg .e-path-circle {
|
|
387
|
-
stroke: rgba(
|
|
387
|
+
stroke: rgba(27, 26, 25, 0.7);
|
|
388
388
|
}
|
|
389
389
|
.e-progress-btn.e-warning .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-warning.e-outline:hover .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-warning.e-outline:focus .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-warning.e-flat:hover .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-warning.e-flat:focus .e-spinner-pane .e-spinner-inner svg .e-path-arc {
|
|
390
|
-
stroke: #
|
|
390
|
+
stroke: #1b1a19;
|
|
391
391
|
}
|
|
392
392
|
.e-progress-btn.e-warning.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-warning.e-outline:hover.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-warning.e-outline:focus.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-warning.e-flat:hover.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-warning.e-flat:focus.e-flat .e-spinner-pane .e-spinner-inner svg {
|
|
393
393
|
fill: #ca5010;
|
|
@@ -400,14 +400,14 @@
|
|
|
400
400
|
stroke: #ca5010;
|
|
401
401
|
}
|
|
402
402
|
.e-progress-btn.e-danger .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-danger.e-outline:hover .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-danger.e-outline:focus .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-danger.e-flat:hover .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-danger.e-flat:focus .e-spinner-pane .e-spinner-inner svg {
|
|
403
|
-
fill: #
|
|
404
|
-
stroke: #
|
|
403
|
+
fill: #1b1a19;
|
|
404
|
+
stroke: #1b1a19;
|
|
405
405
|
}
|
|
406
406
|
.e-progress-btn.e-danger .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-danger.e-outline:hover .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-danger.e-outline:focus .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-danger.e-flat:hover .e-spinner-pane .e-spinner-inner svg .e-path-circle, .e-progress-btn.e-danger.e-flat:focus .e-spinner-pane .e-spinner-inner svg .e-path-circle {
|
|
407
|
-
stroke: rgba(
|
|
407
|
+
stroke: rgba(27, 26, 25, 0.7);
|
|
408
408
|
}
|
|
409
409
|
.e-progress-btn.e-danger .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-danger.e-outline:hover .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-danger.e-outline:focus .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-danger.e-flat:hover .e-spinner-pane .e-spinner-inner svg .e-path-arc, .e-progress-btn.e-danger.e-flat:focus .e-spinner-pane .e-spinner-inner svg .e-path-arc {
|
|
410
|
-
stroke: #
|
|
410
|
+
stroke: #1b1a19;
|
|
411
411
|
}
|
|
412
412
|
.e-progress-btn.e-danger.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-danger.e-outline:hover.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-danger.e-outline:focus.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-danger.e-flat:hover.e-flat .e-spinner-pane .e-spinner-inner svg, .e-progress-btn.e-danger.e-flat:focus.e-flat .e-spinner-pane .e-spinner-inner svg {
|
|
413
413
|
fill: #d13438;
|
|
@@ -496,19 +496,19 @@
|
|
|
496
496
|
}
|
|
497
497
|
|
|
498
498
|
*.e-flat.e-primary .e-progress {
|
|
499
|
-
background-color: rgba(
|
|
499
|
+
background-color: rgba(27, 26, 25, 0.2);
|
|
500
500
|
}
|
|
501
501
|
*.e-flat.e-success .e-progress {
|
|
502
|
-
background-color: rgba(
|
|
502
|
+
background-color: rgba(27, 26, 25, 0.2);
|
|
503
503
|
}
|
|
504
504
|
*.e-flat.e-info .e-progress {
|
|
505
|
-
background-color: rgba(
|
|
505
|
+
background-color: rgba(27, 26, 25, 0.2);
|
|
506
506
|
}
|
|
507
507
|
*.e-flat.e-warning .e-progress {
|
|
508
|
-
background-color: rgba(
|
|
508
|
+
background-color: rgba(27, 26, 25, 0.2);
|
|
509
509
|
}
|
|
510
510
|
*.e-flat.e-danger .e-progress {
|
|
511
|
-
background-color: rgba(
|
|
511
|
+
background-color: rgba(27, 26, 25, 0.2);
|
|
512
512
|
}
|
|
513
513
|
|
|
514
514
|
*.e-outline:not(:focus).e-primary .e-progress {
|
|
@@ -488,11 +488,11 @@
|
|
|
488
488
|
*.e-success .e-progress,
|
|
489
489
|
*.e-danger .e-progress,
|
|
490
490
|
*.e-info .e-progress {
|
|
491
|
-
background-color: rgba(
|
|
491
|
+
background-color: rgba(255, 255, 255, 0.2);
|
|
492
492
|
}
|
|
493
493
|
|
|
494
494
|
*.e-warning .e-progress {
|
|
495
|
-
background-color: rgba(
|
|
495
|
+
background-color: rgba(255, 255, 255, 0.2);
|
|
496
496
|
}
|
|
497
497
|
|
|
498
498
|
*.e-flat.e-primary .e-progress {
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';
|
|
2
|
-
import { ButtonModel, Button } from '@syncfusion/ej2-buttons';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Initialize ButtonGroup CSS component with specified properties.
|
|
6
|
-
* ```html
|
|
7
|
-
* <div id='buttongroup'>
|
|
8
|
-
* <button></button>
|
|
9
|
-
* <button></button>
|
|
10
|
-
* <button></button>
|
|
11
|
-
* </div>
|
|
12
|
-
* ```
|
|
13
|
-
* ```typescript
|
|
14
|
-
* createButtonGroup('#buttongroup', {
|
|
15
|
-
* cssClass: 'e-outline',
|
|
16
|
-
* buttons: [
|
|
17
|
-
* { content: 'Day' },
|
|
18
|
-
* { content: 'Week' },
|
|
19
|
-
* { content: 'Work Week'}
|
|
20
|
-
* ]
|
|
21
|
-
* });
|
|
22
|
-
* ```
|
|
23
|
-
*
|
|
24
|
-
* @param {string} selector
|
|
25
|
-
* @param {CreateButtonGroupModel} options
|
|
26
|
-
* @returns HTMLElement
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Creates button group.
|
|
31
|
-
*
|
|
32
|
-
* @param {string} selector - Specifies the selector.
|
|
33
|
-
* @param {CreateButtonGroupModel} options - Specifies the button group model.
|
|
34
|
-
* @param {Function} createElement - Specifies the element.
|
|
35
|
-
* @returns {HTMLElement} - Button group element.
|
|
36
|
-
*/
|
|
37
|
-
export function createButtonGroup(selector: string, options: CreateButtonGroupModel = {}, createElement?: Function): HTMLElement {
|
|
38
|
-
let child: Element;
|
|
39
|
-
let btnElem: Element;
|
|
40
|
-
let nextChild: Element;
|
|
41
|
-
let btnModel: ButtonModel | null;
|
|
42
|
-
if (isNullOrUndefined(createElement)) {
|
|
43
|
-
createElement = internalCreateElement;
|
|
44
|
-
}
|
|
45
|
-
const wrapper: HTMLElement = document.querySelector(selector) as HTMLElement;
|
|
46
|
-
addClass([wrapper], ['e-btn-group', 'e-css']);
|
|
47
|
-
wrapper.setAttribute('role', 'group');
|
|
48
|
-
const childs: HTMLCollection = wrapper.children;
|
|
49
|
-
options.buttons = options.buttons || [] as ButtonModel[];
|
|
50
|
-
for (let i: number = 0, j: number = 0; j < childs.length; i++, j++) {
|
|
51
|
-
child = childs[j];
|
|
52
|
-
btnModel = options.buttons[i];
|
|
53
|
-
if (btnModel !== null) {
|
|
54
|
-
if (child.tagName === 'BUTTON') {
|
|
55
|
-
btnElem = child;
|
|
56
|
-
} else {
|
|
57
|
-
btnElem = createElement('label');
|
|
58
|
-
nextChild = childs[j + 1];
|
|
59
|
-
if (nextChild) {
|
|
60
|
-
wrapper.insertBefore(btnElem, nextChild);
|
|
61
|
-
} else {
|
|
62
|
-
wrapper.appendChild(btnElem);
|
|
63
|
-
}
|
|
64
|
-
if (child.id) {
|
|
65
|
-
btnElem.setAttribute('for', child.id);
|
|
66
|
-
}
|
|
67
|
-
if (btnModel && btnModel.disabled) {
|
|
68
|
-
(child as HTMLInputElement).disabled = true;
|
|
69
|
-
}
|
|
70
|
-
j++;
|
|
71
|
-
}
|
|
72
|
-
if (options.cssClass && btnModel && !btnModel.cssClass) {
|
|
73
|
-
btnModel.cssClass = options.cssClass;
|
|
74
|
-
}
|
|
75
|
-
new Button(btnModel || {}, btnElem as HTMLButtonElement);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return wrapper;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export interface CreateButtonGroupModel {
|
|
82
|
-
cssClass?: string;
|
|
83
|
-
buttons?: (ButtonModel | null)[];
|
|
84
|
-
}
|
package/dist/ts/common/common.ts
DELETED
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import { ChildProperty, extend, deleteObject, Property, BaseEventArgs, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';
|
|
2
|
-
import { ItemModel } from './common-model';
|
|
3
|
-
/**
|
|
4
|
-
* Defines the icon position of Split Button.
|
|
5
|
-
*/
|
|
6
|
-
export type SplitButtonIconPosition = 'Left' | 'Top';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @param {Object} props - Specifies the properties
|
|
10
|
-
* @param {string[]} model - Specifies the model
|
|
11
|
-
* @returns {Object} Component Model
|
|
12
|
-
*/
|
|
13
|
-
export function getModel(props: Object, model: string[]): Object {
|
|
14
|
-
|
|
15
|
-
const obj: Object = extend({}, props);
|
|
16
|
-
for (const prop of Object.keys(obj)) {
|
|
17
|
-
if ((model).indexOf(prop) < 0) {
|
|
18
|
-
deleteObject(obj, prop);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return obj as Object;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** @hidden
|
|
26
|
-
* @param {HTMLElement} ul - Specifies the UL element
|
|
27
|
-
* @param {number} keyCode - Specifies the keycode
|
|
28
|
-
* @returns {void}
|
|
29
|
-
*/
|
|
30
|
-
export function upDownKeyHandler(ul: HTMLElement, keyCode: number): void {
|
|
31
|
-
const defaultIdx: number = keyCode === 40 ? 0 : ul.childElementCount - 1;
|
|
32
|
-
let liIdx: number = defaultIdx;
|
|
33
|
-
let li: Element;
|
|
34
|
-
const selectedLi: Element = ul.querySelector('.e-selected');
|
|
35
|
-
if (selectedLi) { selectedLi.classList.remove('e-selected'); }
|
|
36
|
-
for (let i: number = 0, len: number = ul.children.length; i < len; i++) {
|
|
37
|
-
if (ul.children[i].classList.contains('e-focused')) {
|
|
38
|
-
li = ul.children[i];
|
|
39
|
-
liIdx = i;
|
|
40
|
-
li.classList.remove('e-focused');
|
|
41
|
-
if (keyCode === 40) {
|
|
42
|
-
liIdx++;
|
|
43
|
-
} else {
|
|
44
|
-
liIdx--;
|
|
45
|
-
}
|
|
46
|
-
if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {
|
|
47
|
-
liIdx = defaultIdx;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
li = ul.children[liIdx];
|
|
52
|
-
liIdx = isValidLI(ul, li, liIdx, keyCode);
|
|
53
|
-
if (liIdx !== -1) {
|
|
54
|
-
addClass([ul.children[liIdx]], 'e-focused');
|
|
55
|
-
(ul.children[liIdx] as HTMLElement).focus();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Get Valid LI element
|
|
61
|
-
*
|
|
62
|
-
* @param {HTMLElement} ul - Specifies the UL element
|
|
63
|
-
* @param {Element} li - Specifies the LI element
|
|
64
|
-
* @param {number} index - Specifies the index
|
|
65
|
-
* @param {number} keyCode - Specifies the keycode
|
|
66
|
-
* @param {number} count - Specifies the count
|
|
67
|
-
* @returns {number} - Index
|
|
68
|
-
*/
|
|
69
|
-
function isValidLI(ul: HTMLElement, li: Element, index: number, keyCode: number, count: number = 0): number {
|
|
70
|
-
if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {
|
|
71
|
-
if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {
|
|
72
|
-
index = keyCode === 40 ? 0 : ul.childElementCount - 1;
|
|
73
|
-
} else {
|
|
74
|
-
if (keyCode === 40) {
|
|
75
|
-
index++;
|
|
76
|
-
} else {
|
|
77
|
-
index--;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
li = ul.children[index];
|
|
82
|
-
if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {
|
|
83
|
-
count++;
|
|
84
|
-
if (count === ul.childElementCount) {
|
|
85
|
-
return index = -1;
|
|
86
|
-
}
|
|
87
|
-
index = isValidLI(ul, li, index, keyCode, count);
|
|
88
|
-
}
|
|
89
|
-
return index;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/** @hidden
|
|
93
|
-
* @param {HTMLElement} popup - Specifies the popup element.
|
|
94
|
-
* @returns {void}
|
|
95
|
-
*/
|
|
96
|
-
export function setBlankIconStyle(popup: HTMLElement): void {
|
|
97
|
-
const blankIconList: HTMLElement[] = [].slice.call(popup.getElementsByClassName('e-blank-icon'));
|
|
98
|
-
if (!blankIconList.length) { return; }
|
|
99
|
-
let iconLi: HTMLElement = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)') as HTMLElement;
|
|
100
|
-
if (isNullOrUndefined(iconLi)) {return; }
|
|
101
|
-
if (iconLi.classList.contains('e-url')) { iconLi = iconLi.querySelector('.e-menu-url'); }
|
|
102
|
-
const icon: HTMLElement = iconLi.querySelector('.e-menu-icon') as HTMLElement;
|
|
103
|
-
let cssProp: { padding: string, margin: string };
|
|
104
|
-
const enableRtl: boolean = popup.classList.contains('e-rtl');
|
|
105
|
-
if (enableRtl) {
|
|
106
|
-
cssProp = { padding: 'paddingRight', margin: 'marginLeft' };
|
|
107
|
-
} else {
|
|
108
|
-
cssProp = { padding: 'paddingLeft', margin: 'marginRight' };
|
|
109
|
-
}
|
|
110
|
-
/* eslint-disable */
|
|
111
|
-
let size: string = `${parseInt(getComputedStyle(icon).fontSize, 10) + parseInt(
|
|
112
|
-
(enableRtl ? (getComputedStyle(icon) as any)[cssProp.margin] : (getComputedStyle(icon) as any)[cssProp.margin]), 10)
|
|
113
|
-
+ parseInt(getComputedStyle(iconLi).paddingLeft, 10)}px`;
|
|
114
|
-
blankIconList.forEach((li: HTMLElement): void => {
|
|
115
|
-
if (li.classList.contains('e-url')) {
|
|
116
|
-
((li.querySelector('.e-menu-url') as HTMLElement).style as any)[cssProp.padding] = size;
|
|
117
|
-
} else {
|
|
118
|
-
(li.style as any)[cssProp.padding] = size;
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
/* eslint-enable */
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Defines the items of Split Button/DropDownButton.
|
|
126
|
-
*/
|
|
127
|
-
export class Item extends ChildProperty<Item> {
|
|
128
|
-
/**
|
|
129
|
-
* Defines class/multiple classes separated by a space for the item that is used to include an icon.
|
|
130
|
-
* Action item can include font icon and sprite image.
|
|
131
|
-
*
|
|
132
|
-
* @default ''
|
|
133
|
-
*/
|
|
134
|
-
@Property('')
|
|
135
|
-
public iconCss: string;
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Specifies the id for item.
|
|
139
|
-
*
|
|
140
|
-
* @default ''
|
|
141
|
-
*/
|
|
142
|
-
@Property('')
|
|
143
|
-
public id: string;
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Specifies separator between the items. Separator are horizontal lines used to group action items.
|
|
147
|
-
*
|
|
148
|
-
* @default false
|
|
149
|
-
*/
|
|
150
|
-
@Property(false)
|
|
151
|
-
public separator: boolean;
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Specifies text for item.
|
|
155
|
-
*
|
|
156
|
-
* @default ''
|
|
157
|
-
*/
|
|
158
|
-
@Property('')
|
|
159
|
-
public text: string;
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Specifies url for item that creates the anchor link to navigate to the url provided.
|
|
163
|
-
*
|
|
164
|
-
* @default ''
|
|
165
|
-
*/
|
|
166
|
-
@Property('')
|
|
167
|
-
public url: string;
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Used to enable or disable the item.
|
|
171
|
-
*
|
|
172
|
-
* @default false
|
|
173
|
-
*/
|
|
174
|
-
@Property(false)
|
|
175
|
-
public disabled: boolean;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Interface for before item render / select event.
|
|
180
|
-
*/
|
|
181
|
-
export interface MenuEventArgs extends BaseEventArgs {
|
|
182
|
-
element: HTMLElement;
|
|
183
|
-
item: ItemModel;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Interface for before open / close event.
|
|
188
|
-
*/
|
|
189
|
-
export interface BeforeOpenCloseMenuEventArgs extends BaseEventArgs {
|
|
190
|
-
element: HTMLElement;
|
|
191
|
-
items: ItemModel[];
|
|
192
|
-
event: Event;
|
|
193
|
-
cancel?: boolean;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Interface for open/close event.
|
|
198
|
-
*/
|
|
199
|
-
export interface OpenCloseMenuEventArgs extends BaseEventArgs {
|
|
200
|
-
element: HTMLElement;
|
|
201
|
-
items: ItemModel[];
|
|
202
|
-
parentItem?: ItemModel;
|
|
203
|
-
}
|