@swimlane/ngx-datatable 16.1.1 → 19.0.0
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/README.md +1 -1
- package/assets/icons-reference.html +2 -2
- package/assets/icons.css +39 -19
- package/bundles/swimlane-ngx-datatable.umd.js +1663 -5743
- package/bundles/swimlane-ngx-datatable.umd.js.map +1 -1
- package/bundles/swimlane-ngx-datatable.umd.min.js +1 -1
- package/bundles/swimlane-ngx-datatable.umd.min.js.map +1 -1
- package/esm2015/lib/components/body/body-cell.component.js +5 -235
- package/esm2015/lib/components/body/body-group-header-template.directive.js +1 -13
- package/esm2015/lib/components/body/body-group-header.directive.js +1 -28
- package/esm2015/lib/components/body/body-row-wrapper.component.js +4 -86
- package/esm2015/lib/components/body/body-row.component.js +2 -153
- package/esm2015/lib/components/body/body.component.js +71 -303
- package/esm2015/lib/components/body/progress-bar.component.js +2 -6
- package/esm2015/lib/components/body/scroller.component.js +6 -82
- package/esm2015/lib/components/body/selection.component.js +7 -112
- package/esm2015/lib/components/body/summary/summary-row.component.js +10 -100
- package/esm2015/lib/components/columns/column-cell.directive.js +1 -13
- package/esm2015/lib/components/columns/column-header.directive.js +1 -13
- package/esm2015/lib/components/columns/column.directive.js +1 -89
- package/esm2015/lib/components/columns/tree.directive.js +1 -13
- package/esm2015/lib/components/datatable.component.js +49 -570
- package/esm2015/lib/components/footer/footer-template.directive.js +1 -13
- package/esm2015/lib/components/footer/footer.component.js +2 -41
- package/esm2015/lib/components/footer/footer.directive.js +2 -29
- package/esm2015/lib/components/footer/pager.component.js +3 -77
- package/esm2015/lib/components/header/header-cell.component.js +11 -130
- package/esm2015/lib/components/header/header.component.js +20 -193
- package/esm2015/lib/components/row-detail/row-detail-template.directive.js +1 -13
- package/esm2015/lib/components/row-detail/row-detail.directive.js +1 -29
- package/esm2015/lib/directives/draggable.directive.js +4 -72
- package/esm2015/lib/directives/long-press.directive.js +8 -88
- package/esm2015/lib/directives/orderable.directive.js +11 -104
- package/esm2015/lib/directives/resizeable.directive.js +14 -81
- package/esm2015/lib/directives/visibility.directive.js +9 -64
- package/esm2015/lib/events.js +6 -13
- package/esm2015/lib/ngx-datatable.module.js +2 -16
- package/esm2015/lib/services/column-changes.service.js +1 -18
- package/esm2015/lib/services/dimensions-helper.service.js +1 -9
- package/esm2015/lib/services/scrollbar-helper.service.js +1 -25
- package/esm2015/lib/types/click.type.js +6 -11
- package/esm2015/lib/types/column-mode.type.js +7 -12
- package/esm2015/lib/types/contextmenu.type.js +6 -11
- package/esm2015/lib/types/selection.type.js +9 -14
- package/esm2015/lib/types/sort-direction.type.js +6 -11
- package/esm2015/lib/types/sort-prop-dir.type.js +2 -15
- package/esm2015/lib/types/sort.type.js +6 -11
- package/esm2015/lib/types/table-column.type.js +2 -217
- package/esm2015/lib/utils/camel-case.js +4 -26
- package/esm2015/lib/utils/column-helper.js +1 -18
- package/esm2015/lib/utils/column-prop-getters.js +6 -21
- package/esm2015/lib/utils/column.js +1 -28
- package/esm2015/lib/utils/elm-from-point.js +3 -15
- package/esm2015/lib/utils/id.js +1 -6
- package/esm2015/lib/utils/keys.js +10 -21
- package/esm2015/lib/utils/math.js +4 -51
- package/esm2015/lib/utils/prefixes.js +5 -24
- package/esm2015/lib/utils/row-height-cache.js +6 -46
- package/esm2015/lib/utils/selection.js +1 -25
- package/esm2015/lib/utils/sort.js +9 -50
- package/esm2015/lib/utils/throttle.js +7 -41
- package/esm2015/lib/utils/translate.js +1 -17
- package/esm2015/lib/utils/tree.js +7 -56
- package/esm2015/public-api.js +56 -60
- package/esm2015/swimlane-ngx-datatable.js +2 -6
- package/fesm2015/swimlane-ngx-datatable.js +308 -3513
- package/fesm2015/swimlane-ngx-datatable.js.map +1 -1
- package/index.css +1 -1
- package/index.scss +1 -1
- package/lib/components/body/body-cell.component.d.ts +23 -14
- package/lib/components/body/body-group-header.directive.d.ts +1 -1
- package/lib/components/body/body-row-wrapper.component.d.ts +4 -2
- package/lib/components/body/body-row.component.d.ts +8 -5
- package/lib/components/body/body.component.d.ts +17 -10
- package/lib/components/columns/column.directive.d.ts +3 -3
- package/lib/components/datatable.component.d.ts +45 -38
- package/lib/components/footer/footer.component.d.ts +2 -2
- package/lib/components/footer/footer.directive.d.ts +1 -1
- package/lib/components/footer/pager.component.d.ts +7 -4
- package/lib/components/header/header-cell.component.d.ts +14 -9
- package/lib/components/header/header.component.d.ts +14 -7
- package/lib/components/row-detail/row-detail.directive.d.ts +1 -1
- package/lib/directives/long-press.directive.d.ts +2 -2
- package/lib/directives/resizeable.directive.d.ts +1 -0
- package/lib/ngx-datatable.module.d.ts +1 -1
- package/lib/services/column-changes.service.d.ts +1 -1
- package/lib/utils/throttle.d.ts +1 -1
- package/package.json +10 -13
- package/swimlane-ngx-datatable.metadata.json +1 -1
- package/themes/material.css +53 -51
- package/themes/material.scss +4 -2
- package/esm5/lib/components/body/body-cell.component.js +0 -667
- package/esm5/lib/components/body/body-group-header-template.directive.js +0 -26
- package/esm5/lib/components/body/body-group-header.directive.js +0 -109
- package/esm5/lib/components/body/body-row-wrapper.component.js +0 -181
- package/esm5/lib/components/body/body-row.component.js +0 -409
- package/esm5/lib/components/body/body.component.js +0 -1148
- package/esm5/lib/components/body/progress-bar.component.js +0 -19
- package/esm5/lib/components/body/scroller.component.js +0 -172
- package/esm5/lib/components/body/selection.component.js +0 -289
- package/esm5/lib/components/body/summary/summary-row.component.js +0 -179
- package/esm5/lib/components/columns/column-cell.directive.js +0 -24
- package/esm5/lib/components/columns/column-header.directive.js +0 -24
- package/esm5/lib/components/columns/column.directive.js +0 -167
- package/esm5/lib/components/columns/tree.directive.js +0 -24
- package/esm5/lib/components/datatable.component.js +0 -1848
- package/esm5/lib/components/footer/footer-template.directive.js +0 -24
- package/esm5/lib/components/footer/footer.component.js +0 -88
- package/esm5/lib/components/footer/footer.directive.js +0 -57
- package/esm5/lib/components/footer/pager.component.js +0 -214
- package/esm5/lib/components/header/header-cell.component.js +0 -351
- package/esm5/lib/components/header/header.component.js +0 -502
- package/esm5/lib/components/row-detail/row-detail-template.directive.js +0 -26
- package/esm5/lib/components/row-detail/row-detail.directive.js +0 -111
- package/esm5/lib/directives/draggable.directive.js +0 -194
- package/esm5/lib/directives/long-press.directive.js +0 -220
- package/esm5/lib/directives/orderable.directive.js +0 -274
- package/esm5/lib/directives/resizeable.directive.js +0 -178
- package/esm5/lib/directives/visibility.directive.js +0 -129
- package/esm5/lib/events.js +0 -14
- package/esm5/lib/ngx-datatable.module.js +0 -123
- package/esm5/lib/services/column-changes.service.js +0 -47
- package/esm5/lib/services/dimensions-helper.service.js +0 -30
- package/esm5/lib/services/scrollbar-helper.service.js +0 -60
- package/esm5/lib/types/click.type.js +0 -11
- package/esm5/lib/types/column-mode.type.js +0 -12
- package/esm5/lib/types/contextmenu.type.js +0 -11
- package/esm5/lib/types/selection.type.js +0 -14
- package/esm5/lib/types/sort-direction.type.js +0 -11
- package/esm5/lib/types/sort-prop-dir.type.js +0 -15
- package/esm5/lib/types/sort.type.js +0 -11
- package/esm5/lib/types/table-column.type.js +0 -217
- package/esm5/lib/utils/camel-case.js +0 -50
- package/esm5/lib/utils/column-helper.js +0 -145
- package/esm5/lib/utils/column-prop-getters.js +0 -111
- package/esm5/lib/utils/column.js +0 -130
- package/esm5/lib/utils/elm-from-point.js +0 -50
- package/esm5/lib/utils/id.js +0 -13
- package/esm5/lib/utils/keys.js +0 -21
- package/esm5/lib/utils/math.js +0 -271
- package/esm5/lib/utils/prefixes.js +0 -59
- package/esm5/lib/utils/row-height-cache.js +0 -264
- package/esm5/lib/utils/selection.js +0 -64
- package/esm5/lib/utils/sort.js +0 -180
- package/esm5/lib/utils/throttle.js +0 -94
- package/esm5/lib/utils/translate.js +0 -41
- package/esm5/lib/utils/tree.js +0 -157
- package/esm5/public-api.js +0 -68
- package/esm5/swimlane-ngx-datatable.js +0 -9
- package/fesm5/swimlane-ngx-datatable.js +0 -9695
- package/fesm5/swimlane-ngx-datatable.js.map +0 -1
- package/lib/test/jasmine-matchers.d.ts +0 -12
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
6
|
-
var ProgressBarComponent = /** @class */ (function () {
|
|
7
|
-
function ProgressBarComponent() {
|
|
8
|
-
}
|
|
9
|
-
ProgressBarComponent.decorators = [
|
|
10
|
-
{ type: Component, args: [{
|
|
11
|
-
selector: 'datatable-progress',
|
|
12
|
-
template: "\n <div class=\"progress-linear\" role=\"progressbar\">\n <div class=\"container\">\n <div class=\"bar\"></div>\n </div>\n </div>\n ",
|
|
13
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
14
|
-
}] }
|
|
15
|
-
];
|
|
16
|
-
return ProgressBarComponent;
|
|
17
|
-
}());
|
|
18
|
-
export { ProgressBarComponent };
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYm9keS9wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5FO0lBQUE7SUFXbUMsQ0FBQzs7Z0JBWG5DLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsOEpBTVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOztJQUNrQywyQkFBQztDQUFBLEFBWHBDLElBV29DO1NBQXZCLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YXRhYmxlLXByb2dyZXNzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtbGluZWFyXCIgcm9sZT1cInByb2dyZXNzYmFyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiYXJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc0JhckNvbXBvbmVudCB7fVxuIl19
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import { Component, Input, ElementRef, Output, EventEmitter, Renderer2, NgZone, HostBinding, ChangeDetectionStrategy } from '@angular/core';
|
|
6
|
-
var ScrollerComponent = /** @class */ (function () {
|
|
7
|
-
function ScrollerComponent(ngZone, element, renderer) {
|
|
8
|
-
this.ngZone = ngZone;
|
|
9
|
-
this.renderer = renderer;
|
|
10
|
-
this.scrollbarV = false;
|
|
11
|
-
this.scrollbarH = false;
|
|
12
|
-
this.scroll = new EventEmitter();
|
|
13
|
-
this.scrollYPos = 0;
|
|
14
|
-
this.scrollXPos = 0;
|
|
15
|
-
this.prevScrollYPos = 0;
|
|
16
|
-
this.prevScrollXPos = 0;
|
|
17
|
-
this._scrollEventListener = null;
|
|
18
|
-
this.element = element.nativeElement;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @return {?}
|
|
22
|
-
*/
|
|
23
|
-
ScrollerComponent.prototype.ngOnInit = /**
|
|
24
|
-
* @return {?}
|
|
25
|
-
*/
|
|
26
|
-
function () {
|
|
27
|
-
// manual bind so we don't always listen
|
|
28
|
-
if (this.scrollbarV || this.scrollbarH) {
|
|
29
|
-
/** @type {?} */
|
|
30
|
-
var renderer = this.renderer;
|
|
31
|
-
this.parentElement = renderer.parentNode(renderer.parentNode(this.element));
|
|
32
|
-
this._scrollEventListener = this.onScrolled.bind(this);
|
|
33
|
-
this.parentElement.addEventListener('scroll', this._scrollEventListener);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* @return {?}
|
|
38
|
-
*/
|
|
39
|
-
ScrollerComponent.prototype.ngOnDestroy = /**
|
|
40
|
-
* @return {?}
|
|
41
|
-
*/
|
|
42
|
-
function () {
|
|
43
|
-
if (this._scrollEventListener) {
|
|
44
|
-
this.parentElement.removeEventListener('scroll', this._scrollEventListener);
|
|
45
|
-
this._scrollEventListener = null;
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* @param {?} offsetY
|
|
50
|
-
* @return {?}
|
|
51
|
-
*/
|
|
52
|
-
ScrollerComponent.prototype.setOffset = /**
|
|
53
|
-
* @param {?} offsetY
|
|
54
|
-
* @return {?}
|
|
55
|
-
*/
|
|
56
|
-
function (offsetY) {
|
|
57
|
-
if (this.parentElement) {
|
|
58
|
-
this.parentElement.scrollTop = offsetY;
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* @param {?} event
|
|
63
|
-
* @return {?}
|
|
64
|
-
*/
|
|
65
|
-
ScrollerComponent.prototype.onScrolled = /**
|
|
66
|
-
* @param {?} event
|
|
67
|
-
* @return {?}
|
|
68
|
-
*/
|
|
69
|
-
function (event) {
|
|
70
|
-
var _this = this;
|
|
71
|
-
/** @type {?} */
|
|
72
|
-
var dom = (/** @type {?} */ (event.currentTarget));
|
|
73
|
-
requestAnimationFrame((/**
|
|
74
|
-
* @return {?}
|
|
75
|
-
*/
|
|
76
|
-
function () {
|
|
77
|
-
_this.scrollYPos = dom.scrollTop;
|
|
78
|
-
_this.scrollXPos = dom.scrollLeft;
|
|
79
|
-
_this.updateOffset();
|
|
80
|
-
}));
|
|
81
|
-
};
|
|
82
|
-
/**
|
|
83
|
-
* @return {?}
|
|
84
|
-
*/
|
|
85
|
-
ScrollerComponent.prototype.updateOffset = /**
|
|
86
|
-
* @return {?}
|
|
87
|
-
*/
|
|
88
|
-
function () {
|
|
89
|
-
/** @type {?} */
|
|
90
|
-
var direction;
|
|
91
|
-
if (this.scrollYPos < this.prevScrollYPos) {
|
|
92
|
-
direction = 'down';
|
|
93
|
-
}
|
|
94
|
-
else if (this.scrollYPos > this.prevScrollYPos) {
|
|
95
|
-
direction = 'up';
|
|
96
|
-
}
|
|
97
|
-
this.scroll.emit({
|
|
98
|
-
direction: direction,
|
|
99
|
-
scrollYPos: this.scrollYPos,
|
|
100
|
-
scrollXPos: this.scrollXPos
|
|
101
|
-
});
|
|
102
|
-
this.prevScrollYPos = this.scrollYPos;
|
|
103
|
-
this.prevScrollXPos = this.scrollXPos;
|
|
104
|
-
};
|
|
105
|
-
ScrollerComponent.decorators = [
|
|
106
|
-
{ type: Component, args: [{
|
|
107
|
-
selector: 'datatable-scroller',
|
|
108
|
-
template: "\n <ng-content></ng-content>\n ",
|
|
109
|
-
host: {
|
|
110
|
-
class: 'datatable-scroll'
|
|
111
|
-
},
|
|
112
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
113
|
-
}] }
|
|
114
|
-
];
|
|
115
|
-
/** @nocollapse */
|
|
116
|
-
ScrollerComponent.ctorParameters = function () { return [
|
|
117
|
-
{ type: NgZone },
|
|
118
|
-
{ type: ElementRef },
|
|
119
|
-
{ type: Renderer2 }
|
|
120
|
-
]; };
|
|
121
|
-
ScrollerComponent.propDecorators = {
|
|
122
|
-
scrollbarV: [{ type: Input }],
|
|
123
|
-
scrollbarH: [{ type: Input }],
|
|
124
|
-
scrollHeight: [{ type: HostBinding, args: ['style.height.px',] }, { type: Input }],
|
|
125
|
-
scrollWidth: [{ type: HostBinding, args: ['style.width.px',] }, { type: Input }],
|
|
126
|
-
scroll: [{ type: Output }]
|
|
127
|
-
};
|
|
128
|
-
return ScrollerComponent;
|
|
129
|
-
}());
|
|
130
|
-
export { ScrollerComponent };
|
|
131
|
-
if (false) {
|
|
132
|
-
/** @type {?} */
|
|
133
|
-
ScrollerComponent.prototype.scrollbarV;
|
|
134
|
-
/** @type {?} */
|
|
135
|
-
ScrollerComponent.prototype.scrollbarH;
|
|
136
|
-
/** @type {?} */
|
|
137
|
-
ScrollerComponent.prototype.scrollHeight;
|
|
138
|
-
/** @type {?} */
|
|
139
|
-
ScrollerComponent.prototype.scrollWidth;
|
|
140
|
-
/** @type {?} */
|
|
141
|
-
ScrollerComponent.prototype.scroll;
|
|
142
|
-
/** @type {?} */
|
|
143
|
-
ScrollerComponent.prototype.scrollYPos;
|
|
144
|
-
/** @type {?} */
|
|
145
|
-
ScrollerComponent.prototype.scrollXPos;
|
|
146
|
-
/** @type {?} */
|
|
147
|
-
ScrollerComponent.prototype.prevScrollYPos;
|
|
148
|
-
/** @type {?} */
|
|
149
|
-
ScrollerComponent.prototype.prevScrollXPos;
|
|
150
|
-
/** @type {?} */
|
|
151
|
-
ScrollerComponent.prototype.element;
|
|
152
|
-
/** @type {?} */
|
|
153
|
-
ScrollerComponent.prototype.parentElement;
|
|
154
|
-
/** @type {?} */
|
|
155
|
-
ScrollerComponent.prototype.onScrollListener;
|
|
156
|
-
/**
|
|
157
|
-
* @type {?}
|
|
158
|
-
* @private
|
|
159
|
-
*/
|
|
160
|
-
ScrollerComponent.prototype._scrollEventListener;
|
|
161
|
-
/**
|
|
162
|
-
* @type {?}
|
|
163
|
-
* @private
|
|
164
|
-
*/
|
|
165
|
-
ScrollerComponent.prototype.ngZone;
|
|
166
|
-
/**
|
|
167
|
-
* @type {?}
|
|
168
|
-
* @private
|
|
169
|
-
*/
|
|
170
|
-
ScrollerComponent.prototype.renderer;
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN3aW1sYW5lL25neC1kYXRhdGFibGUvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9ib2R5L3Njcm9sbGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNULE1BQU0sRUFHTixXQUFXLEVBQ1gsdUJBQXVCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBSXZCO0lBa0NFLDJCQUFvQixNQUFjLEVBQUUsT0FBbUIsRUFBVSxRQUFtQjtRQUFoRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQStCLGFBQVEsR0FBUixRQUFRLENBQVc7UUF2QjNFLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQVUzQixXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekQsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBS25CLHlCQUFvQixHQUFRLElBQUksQ0FBQztRQUd2QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQzs7OztJQUVELG9DQUFROzs7SUFBUjtRQUNFLHdDQUF3QztRQUN4QyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTs7Z0JBQ2hDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUTtZQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDMUU7SUFDSCxDQUFDOzs7O0lBRUQsdUNBQVc7OztJQUFYO1FBQ0UsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztTQUNsQztJQUNILENBQUM7Ozs7O0lBRUQscUNBQVM7Ozs7SUFBVCxVQUFVLE9BQWU7UUFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztTQUN4QztJQUNILENBQUM7Ozs7O0lBRUQsc0NBQVU7Ozs7SUFBVixVQUFXLEtBQWlCO1FBQTVCLGlCQU9DOztZQU5PLEdBQUcsR0FBWSxtQkFBUyxLQUFLLENBQUMsYUFBYSxFQUFBO1FBQ2pELHFCQUFxQjs7O1FBQUM7WUFDcEIsS0FBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQ2hDLEtBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQztZQUNqQyxLQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsd0NBQVk7OztJQUFaOztZQUNNLFNBQWlCO1FBQ3JCLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3pDLFNBQVMsR0FBRyxNQUFNLENBQUM7U0FDcEI7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNoRCxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixTQUFTLFdBQUE7WUFDVCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDeEMsQ0FBQzs7Z0JBdEZGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUscUNBRVQ7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxrQkFBa0I7cUJBQzFCO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7OztnQkFsQkMsTUFBTTtnQkFKTixVQUFVO2dCQUdWLFNBQVM7Ozs2QkFxQlIsS0FBSzs2QkFDTCxLQUFLOytCQUVMLFdBQVcsU0FBQyxpQkFBaUIsY0FDN0IsS0FBSzs4QkFHTCxXQUFXLFNBQUMsZ0JBQWdCLGNBQzVCLEtBQUs7eUJBR0wsTUFBTTs7SUFpRVQsd0JBQUM7Q0FBQSxBQXZGRCxJQXVGQztTQTdFWSxpQkFBaUI7OztJQUM1Qix1Q0FBcUM7O0lBQ3JDLHVDQUFxQzs7SUFFckMseUNBRXFCOztJQUVyQix3Q0FFb0I7O0lBRXBCLG1DQUF5RDs7SUFFekQsdUNBQXVCOztJQUN2Qix1Q0FBdUI7O0lBQ3ZCLDJDQUEyQjs7SUFDM0IsMkNBQTJCOztJQUMzQixvQ0FBYTs7SUFDYiwwQ0FBbUI7O0lBQ25CLDZDQUFzQjs7Ozs7SUFFdEIsaURBQXlDOzs7OztJQUU3QixtQ0FBc0I7Ozs7O0lBQXVCLHFDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIEVsZW1lbnRSZWYsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBSZW5kZXJlcjIsXG4gIE5nWm9uZSxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIEhvc3RCaW5kaW5nLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTW91c2VFdmVudCB9IGZyb20gJy4uLy4uL2V2ZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGF0YWJsZS1zY3JvbGxlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkYXRhdGFibGUtc2Nyb2xsJ1xuICB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTY3JvbGxlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgc2Nyb2xsYmFyVjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzY3JvbGxiYXJIOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKVxuICBASW5wdXQoKVxuICBzY3JvbGxIZWlnaHQ6IG51bWJlcjtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JylcbiAgQElucHV0KClcbiAgc2Nyb2xsV2lkdGg6IG51bWJlcjtcblxuICBAT3V0cHV0KCkgc2Nyb2xsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBzY3JvbGxZUG9zOiBudW1iZXIgPSAwO1xuICBzY3JvbGxYUG9zOiBudW1iZXIgPSAwO1xuICBwcmV2U2Nyb2xsWVBvczogbnVtYmVyID0gMDtcbiAgcHJldlNjcm9sbFhQb3M6IG51bWJlciA9IDA7XG4gIGVsZW1lbnQ6IGFueTtcbiAgcGFyZW50RWxlbWVudDogYW55O1xuICBvblNjcm9sbExpc3RlbmVyOiBhbnk7XG5cbiAgcHJpdmF0ZSBfc2Nyb2xsRXZlbnRMaXN0ZW5lcjogYW55ID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lLCBlbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBtYW51YWwgYmluZCBzbyB3ZSBkb24ndCBhbHdheXMgbGlzdGVuXG4gICAgaWYgKHRoaXMuc2Nyb2xsYmFyViB8fCB0aGlzLnNjcm9sbGJhckgpIHtcbiAgICAgIGNvbnN0IHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlcjtcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudCA9IHJlbmRlcmVyLnBhcmVudE5vZGUocmVuZGVyZXIucGFyZW50Tm9kZSh0aGlzLmVsZW1lbnQpKTtcbiAgICAgIHRoaXMuX3Njcm9sbEV2ZW50TGlzdGVuZXIgPSB0aGlzLm9uU2Nyb2xsZWQuYmluZCh0aGlzKTtcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLl9zY3JvbGxFdmVudExpc3RlbmVyKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc2Nyb2xsRXZlbnRMaXN0ZW5lcikge1xuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuX3Njcm9sbEV2ZW50TGlzdGVuZXIpO1xuICAgICAgdGhpcy5fc2Nyb2xsRXZlbnRMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgc2V0T2Zmc2V0KG9mZnNldFk6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhcmVudEVsZW1lbnQpIHtcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudC5zY3JvbGxUb3AgPSBvZmZzZXRZO1xuICAgIH1cbiAgfVxuXG4gIG9uU2Nyb2xsZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBkb206IEVsZW1lbnQgPSA8RWxlbWVudD5ldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLnNjcm9sbFlQb3MgPSBkb20uc2Nyb2xsVG9wO1xuICAgICAgdGhpcy5zY3JvbGxYUG9zID0gZG9tLnNjcm9sbExlZnQ7XG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlT2Zmc2V0KCk6IHZvaWQge1xuICAgIGxldCBkaXJlY3Rpb246IHN0cmluZztcbiAgICBpZiAodGhpcy5zY3JvbGxZUG9zIDwgdGhpcy5wcmV2U2Nyb2xsWVBvcykge1xuICAgICAgZGlyZWN0aW9uID0gJ2Rvd24nO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zY3JvbGxZUG9zID4gdGhpcy5wcmV2U2Nyb2xsWVBvcykge1xuICAgICAgZGlyZWN0aW9uID0gJ3VwJztcbiAgICB9XG5cbiAgICB0aGlzLnNjcm9sbC5lbWl0KHtcbiAgICAgIGRpcmVjdGlvbixcbiAgICAgIHNjcm9sbFlQb3M6IHRoaXMuc2Nyb2xsWVBvcyxcbiAgICAgIHNjcm9sbFhQb3M6IHRoaXMuc2Nyb2xsWFBvc1xuICAgIH0pO1xuXG4gICAgdGhpcy5wcmV2U2Nyb2xsWVBvcyA9IHRoaXMuc2Nyb2xsWVBvcztcbiAgICB0aGlzLnByZXZTY3JvbGxYUG9zID0gdGhpcy5zY3JvbGxYUG9zO1xuICB9XG59XG4iXX0=
|
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import * as tslib_1 from "tslib";
|
|
6
|
-
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
7
|
-
import { SelectionType } from '../../types/selection.type';
|
|
8
|
-
import { selectRowsBetween, selectRows } from '../../utils/selection';
|
|
9
|
-
import { Keys } from '../../utils/keys';
|
|
10
|
-
/**
|
|
11
|
-
* @record
|
|
12
|
-
*/
|
|
13
|
-
export function Model() { }
|
|
14
|
-
if (false) {
|
|
15
|
-
/** @type {?} */
|
|
16
|
-
Model.prototype.type;
|
|
17
|
-
/** @type {?} */
|
|
18
|
-
Model.prototype.event;
|
|
19
|
-
/** @type {?} */
|
|
20
|
-
Model.prototype.row;
|
|
21
|
-
/** @type {?} */
|
|
22
|
-
Model.prototype.rowElement;
|
|
23
|
-
/** @type {?} */
|
|
24
|
-
Model.prototype.cellElement;
|
|
25
|
-
/** @type {?} */
|
|
26
|
-
Model.prototype.cellIndex;
|
|
27
|
-
}
|
|
28
|
-
var DataTableSelectionComponent = /** @class */ (function () {
|
|
29
|
-
function DataTableSelectionComponent() {
|
|
30
|
-
this.activate = new EventEmitter();
|
|
31
|
-
this.select = new EventEmitter();
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* @param {?} event
|
|
35
|
-
* @param {?} index
|
|
36
|
-
* @param {?} row
|
|
37
|
-
* @return {?}
|
|
38
|
-
*/
|
|
39
|
-
DataTableSelectionComponent.prototype.selectRow = /**
|
|
40
|
-
* @param {?} event
|
|
41
|
-
* @param {?} index
|
|
42
|
-
* @param {?} row
|
|
43
|
-
* @return {?}
|
|
44
|
-
*/
|
|
45
|
-
function (event, index, row) {
|
|
46
|
-
var _a;
|
|
47
|
-
if (!this.selectEnabled)
|
|
48
|
-
return;
|
|
49
|
-
/** @type {?} */
|
|
50
|
-
var chkbox = this.selectionType === SelectionType.checkbox;
|
|
51
|
-
/** @type {?} */
|
|
52
|
-
var multi = this.selectionType === SelectionType.multi;
|
|
53
|
-
/** @type {?} */
|
|
54
|
-
var multiClick = this.selectionType === SelectionType.multiClick;
|
|
55
|
-
/** @type {?} */
|
|
56
|
-
var selected = [];
|
|
57
|
-
if (multi || chkbox || multiClick) {
|
|
58
|
-
if (event.shiftKey) {
|
|
59
|
-
selected = selectRowsBetween([], this.rows, index, this.prevIndex, this.getRowSelectedIdx.bind(this));
|
|
60
|
-
}
|
|
61
|
-
else if (event.ctrlKey || event.metaKey || multiClick || chkbox) {
|
|
62
|
-
selected = selectRows(tslib_1.__spread(this.selected), row, this.getRowSelectedIdx.bind(this));
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
selected = selectRows([], row, this.getRowSelectedIdx.bind(this));
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
selected = selectRows([], row, this.getRowSelectedIdx.bind(this));
|
|
70
|
-
}
|
|
71
|
-
if (typeof this.selectCheck === 'function') {
|
|
72
|
-
selected = selected.filter(this.selectCheck.bind(this));
|
|
73
|
-
}
|
|
74
|
-
this.selected.splice(0, this.selected.length);
|
|
75
|
-
(_a = this.selected).push.apply(_a, tslib_1.__spread(selected));
|
|
76
|
-
this.prevIndex = index;
|
|
77
|
-
this.select.emit({
|
|
78
|
-
selected: selected
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* @param {?} model
|
|
83
|
-
* @param {?} index
|
|
84
|
-
* @return {?}
|
|
85
|
-
*/
|
|
86
|
-
DataTableSelectionComponent.prototype.onActivate = /**
|
|
87
|
-
* @param {?} model
|
|
88
|
-
* @param {?} index
|
|
89
|
-
* @return {?}
|
|
90
|
-
*/
|
|
91
|
-
function (model, index) {
|
|
92
|
-
var type = model.type, event = model.event, row = model.row;
|
|
93
|
-
/** @type {?} */
|
|
94
|
-
var chkbox = this.selectionType === SelectionType.checkbox;
|
|
95
|
-
/** @type {?} */
|
|
96
|
-
var select = (!chkbox && (type === 'click' || type === 'dblclick')) || (chkbox && type === 'checkbox');
|
|
97
|
-
if (select) {
|
|
98
|
-
this.selectRow(event, index, row);
|
|
99
|
-
}
|
|
100
|
-
else if (type === 'keydown') {
|
|
101
|
-
if (((/** @type {?} */ (event))).keyCode === Keys.return) {
|
|
102
|
-
this.selectRow(event, index, row);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
this.onKeyboardFocus(model);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
this.activate.emit(model);
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* @param {?} model
|
|
112
|
-
* @return {?}
|
|
113
|
-
*/
|
|
114
|
-
DataTableSelectionComponent.prototype.onKeyboardFocus = /**
|
|
115
|
-
* @param {?} model
|
|
116
|
-
* @return {?}
|
|
117
|
-
*/
|
|
118
|
-
function (model) {
|
|
119
|
-
var keyCode = (/** @type {?} */ (model.event)).keyCode;
|
|
120
|
-
/** @type {?} */
|
|
121
|
-
var shouldFocus = keyCode === Keys.up || keyCode === Keys.down || keyCode === Keys.right || keyCode === Keys.left;
|
|
122
|
-
if (shouldFocus) {
|
|
123
|
-
/** @type {?} */
|
|
124
|
-
var isCellSelection = this.selectionType === SelectionType.cell;
|
|
125
|
-
if (!model.cellElement || !isCellSelection) {
|
|
126
|
-
this.focusRow(model.rowElement, keyCode);
|
|
127
|
-
}
|
|
128
|
-
else if (isCellSelection) {
|
|
129
|
-
this.focusCell(model.cellElement, model.rowElement, keyCode, model.cellIndex);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
/**
|
|
134
|
-
* @param {?} rowElement
|
|
135
|
-
* @param {?} keyCode
|
|
136
|
-
* @return {?}
|
|
137
|
-
*/
|
|
138
|
-
DataTableSelectionComponent.prototype.focusRow = /**
|
|
139
|
-
* @param {?} rowElement
|
|
140
|
-
* @param {?} keyCode
|
|
141
|
-
* @return {?}
|
|
142
|
-
*/
|
|
143
|
-
function (rowElement, keyCode) {
|
|
144
|
-
/** @type {?} */
|
|
145
|
-
var nextRowElement = this.getPrevNextRow(rowElement, keyCode);
|
|
146
|
-
if (nextRowElement)
|
|
147
|
-
nextRowElement.focus();
|
|
148
|
-
};
|
|
149
|
-
/**
|
|
150
|
-
* @param {?} rowElement
|
|
151
|
-
* @param {?} keyCode
|
|
152
|
-
* @return {?}
|
|
153
|
-
*/
|
|
154
|
-
DataTableSelectionComponent.prototype.getPrevNextRow = /**
|
|
155
|
-
* @param {?} rowElement
|
|
156
|
-
* @param {?} keyCode
|
|
157
|
-
* @return {?}
|
|
158
|
-
*/
|
|
159
|
-
function (rowElement, keyCode) {
|
|
160
|
-
/** @type {?} */
|
|
161
|
-
var parentElement = rowElement.parentElement;
|
|
162
|
-
if (parentElement) {
|
|
163
|
-
/** @type {?} */
|
|
164
|
-
var focusElement = void 0;
|
|
165
|
-
if (keyCode === Keys.up) {
|
|
166
|
-
focusElement = parentElement.previousElementSibling;
|
|
167
|
-
}
|
|
168
|
-
else if (keyCode === Keys.down) {
|
|
169
|
-
focusElement = parentElement.nextElementSibling;
|
|
170
|
-
}
|
|
171
|
-
if (focusElement && focusElement.children.length) {
|
|
172
|
-
return focusElement.children[0];
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
/**
|
|
177
|
-
* @param {?} cellElement
|
|
178
|
-
* @param {?} rowElement
|
|
179
|
-
* @param {?} keyCode
|
|
180
|
-
* @param {?} cellIndex
|
|
181
|
-
* @return {?}
|
|
182
|
-
*/
|
|
183
|
-
DataTableSelectionComponent.prototype.focusCell = /**
|
|
184
|
-
* @param {?} cellElement
|
|
185
|
-
* @param {?} rowElement
|
|
186
|
-
* @param {?} keyCode
|
|
187
|
-
* @param {?} cellIndex
|
|
188
|
-
* @return {?}
|
|
189
|
-
*/
|
|
190
|
-
function (cellElement, rowElement, keyCode, cellIndex) {
|
|
191
|
-
/** @type {?} */
|
|
192
|
-
var nextCellElement;
|
|
193
|
-
if (keyCode === Keys.left) {
|
|
194
|
-
nextCellElement = cellElement.previousElementSibling;
|
|
195
|
-
}
|
|
196
|
-
else if (keyCode === Keys.right) {
|
|
197
|
-
nextCellElement = cellElement.nextElementSibling;
|
|
198
|
-
}
|
|
199
|
-
else if (keyCode === Keys.up || keyCode === Keys.down) {
|
|
200
|
-
/** @type {?} */
|
|
201
|
-
var nextRowElement = this.getPrevNextRow(rowElement, keyCode);
|
|
202
|
-
if (nextRowElement) {
|
|
203
|
-
/** @type {?} */
|
|
204
|
-
var children = nextRowElement.getElementsByClassName('datatable-body-cell');
|
|
205
|
-
if (children.length)
|
|
206
|
-
nextCellElement = children[cellIndex];
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
if (nextCellElement)
|
|
210
|
-
nextCellElement.focus();
|
|
211
|
-
};
|
|
212
|
-
/**
|
|
213
|
-
* @param {?} row
|
|
214
|
-
* @return {?}
|
|
215
|
-
*/
|
|
216
|
-
DataTableSelectionComponent.prototype.getRowSelected = /**
|
|
217
|
-
* @param {?} row
|
|
218
|
-
* @return {?}
|
|
219
|
-
*/
|
|
220
|
-
function (row) {
|
|
221
|
-
return this.getRowSelectedIdx(row, this.selected) > -1;
|
|
222
|
-
};
|
|
223
|
-
/**
|
|
224
|
-
* @param {?} row
|
|
225
|
-
* @param {?} selected
|
|
226
|
-
* @return {?}
|
|
227
|
-
*/
|
|
228
|
-
DataTableSelectionComponent.prototype.getRowSelectedIdx = /**
|
|
229
|
-
* @param {?} row
|
|
230
|
-
* @param {?} selected
|
|
231
|
-
* @return {?}
|
|
232
|
-
*/
|
|
233
|
-
function (row, selected) {
|
|
234
|
-
var _this = this;
|
|
235
|
-
if (!selected || !selected.length)
|
|
236
|
-
return -1;
|
|
237
|
-
/** @type {?} */
|
|
238
|
-
var rowId = this.rowIdentity(row);
|
|
239
|
-
return selected.findIndex((/**
|
|
240
|
-
* @param {?} r
|
|
241
|
-
* @return {?}
|
|
242
|
-
*/
|
|
243
|
-
function (r) {
|
|
244
|
-
/** @type {?} */
|
|
245
|
-
var id = _this.rowIdentity(r);
|
|
246
|
-
return id === rowId;
|
|
247
|
-
}));
|
|
248
|
-
};
|
|
249
|
-
DataTableSelectionComponent.decorators = [
|
|
250
|
-
{ type: Component, args: [{
|
|
251
|
-
selector: 'datatable-selection',
|
|
252
|
-
template: "\n <ng-content></ng-content>\n ",
|
|
253
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
254
|
-
}] }
|
|
255
|
-
];
|
|
256
|
-
DataTableSelectionComponent.propDecorators = {
|
|
257
|
-
rows: [{ type: Input }],
|
|
258
|
-
selected: [{ type: Input }],
|
|
259
|
-
selectEnabled: [{ type: Input }],
|
|
260
|
-
selectionType: [{ type: Input }],
|
|
261
|
-
rowIdentity: [{ type: Input }],
|
|
262
|
-
selectCheck: [{ type: Input }],
|
|
263
|
-
activate: [{ type: Output }],
|
|
264
|
-
select: [{ type: Output }]
|
|
265
|
-
};
|
|
266
|
-
return DataTableSelectionComponent;
|
|
267
|
-
}());
|
|
268
|
-
export { DataTableSelectionComponent };
|
|
269
|
-
if (false) {
|
|
270
|
-
/** @type {?} */
|
|
271
|
-
DataTableSelectionComponent.prototype.rows;
|
|
272
|
-
/** @type {?} */
|
|
273
|
-
DataTableSelectionComponent.prototype.selected;
|
|
274
|
-
/** @type {?} */
|
|
275
|
-
DataTableSelectionComponent.prototype.selectEnabled;
|
|
276
|
-
/** @type {?} */
|
|
277
|
-
DataTableSelectionComponent.prototype.selectionType;
|
|
278
|
-
/** @type {?} */
|
|
279
|
-
DataTableSelectionComponent.prototype.rowIdentity;
|
|
280
|
-
/** @type {?} */
|
|
281
|
-
DataTableSelectionComponent.prototype.selectCheck;
|
|
282
|
-
/** @type {?} */
|
|
283
|
-
DataTableSelectionComponent.prototype.activate;
|
|
284
|
-
/** @type {?} */
|
|
285
|
-
DataTableSelectionComponent.prototype.select;
|
|
286
|
-
/** @type {?} */
|
|
287
|
-
DataTableSelectionComponent.prototype.prevIndex;
|
|
288
|
-
}
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bzd2ltbGFuZS9uZ3gtZGF0YXRhYmxlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYm9keS9zZWxlY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQUV4QywyQkFPQzs7O0lBTkMscUJBQWE7O0lBQ2Isc0JBQWtDOztJQUNsQyxvQkFBUzs7SUFDVCwyQkFBZ0I7O0lBQ2hCLDRCQUFpQjs7SUFDakIsMEJBQWtCOztBQUdwQjtJQUFBO1FBZVksYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQTJIM0QsQ0FBQzs7Ozs7OztJQXZIQywrQ0FBUzs7Ozs7O0lBQVQsVUFBVSxLQUFpQyxFQUFFLEtBQWEsRUFBRSxHQUFROztRQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPOztZQUUxQixNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUMsUUFBUTs7WUFDdEQsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEtBQUssYUFBYSxDQUFDLEtBQUs7O1lBQ2xELFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQyxVQUFVOztZQUM5RCxRQUFRLEdBQVUsRUFBRTtRQUV4QixJQUFJLEtBQUssSUFBSSxNQUFNLElBQUks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O1FBQ25DLE9BQU8sUUFBUSxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLENBQUM7O2dCQUNuQixFQUFFLEdBQUcsS0FBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDOUIsT0FBTyxFQUFFLEtBQUssS0FBSyxDQUFDO1FBQ3RCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0JBMUlGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUscUNBRVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzs7dUJBRUUsS0FBSzsyQkFDTCxLQUFLO2dDQUNMLEtBQUs7Z0NBQ0wsS0FBSzs4QkFDTCxLQUFLOzhCQUNMLEtBQUs7MkJBRUwsTUFBTTt5QkFDTixNQUFNOztJQTJIVCxrQ0FBQztDQUFBLEFBM0lELElBMklDO1NBcElZLDJCQUEyQjs7O0lBQ3RDLDJDQUFxQjs7SUFDckIsK0NBQXlCOztJQUN6QixvREFBZ0M7O0lBQ2hDLG9EQUFzQzs7SUFDdEMsa0RBQTBCOztJQUMxQixrREFBMEI7O0lBRTFCLCtDQUEyRDs7SUFDM0QsNkNBQXlEOztJQUV6RCxnREFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdGlvblR5cGUgfSBmcm9tICcuLi8uLi90eXBlcy9zZWxlY3Rpb24udHlwZSc7XG5pbXBvcnQgeyBzZWxlY3RSb3dzQmV0d2Vlbiwgc2VsZWN0Um93cyB9IGZyb20gJy4uLy4uL3V0aWxzL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBLZXlzIH0gZnJvbSAnLi4vLi4vdXRpbHMva2V5cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWwge1xuICB0eXBlOiBzdHJpbmc7XG4gIGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudDtcbiAgcm93OiBhbnk7XG4gIHJvd0VsZW1lbnQ6IGFueTtcbiAgY2VsbEVsZW1lbnQ6IGFueTtcbiAgY2VsbEluZGV4OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGF0YWJsZS1zZWxlY3Rpb24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlU2VsZWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcm93czogYW55W107XG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBhbnlbXTtcbiAgQElucHV0KCkgc2VsZWN0RW5hYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgc2VsZWN0aW9uVHlwZTogU2VsZWN0aW9uVHlwZTtcbiAgQElucHV0KCkgcm93SWRlbnRpdHk6IGFueTtcbiAgQElucHV0KCkgc2VsZWN0Q2hlY2s6IGFueTtcblxuICBAT3V0cHV0KCkgYWN0aXZhdGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcmV2SW5kZXg6IG51bWJlcjtcblxuICBzZWxlY3RSb3coZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50LCBpbmRleDogbnVtYmVyLCByb3c6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZWxlY3RFbmFibGVkKSByZXR1cm47XG5cbiAgICBjb25zdCBjaGtib3ggPSB0aGlzLnNlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvblR5cGUuY2hlY2tib3g7XG4gICAgY29uc3QgbXVsdGkgPSB0aGlzLnNlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvblR5cGUubXVsdGk7XG4gICAgY29uc3QgbXVsdGlDbGljayA9IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uVHlwZS5tdWx0aUNsaWNrO1xuICAgIGxldCBzZWxlY3RlZDogYW55W10gPSBbXTtcblxuICAgIGlmIChtdWx0aSB8fCBjaGtib3ggfHwgbXVsdGlDbGljaykge1xuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIHNlbGVjdGVkID0gc2VsZWN0Um93c0JldHdlZW4oW10sIHRoaXMucm93cywgaW5kZXgsIHRoaXMucHJldkluZGV4LCB0aGlzLmdldFJvd1NlbGVjdGVkSWR4LmJpbmQodGhpcykpO1xuICAgICAgfSBlbHNlIGlmIChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgbXVsdGlDbGljayB8fCBjaGtib3gpIHtcbiAgICAgICAgc2VsZWN0ZWQgPSBzZWxlY3RSb3dzKFsuLi50aGlzLnNlbGVjdGVkXSwgcm93LCB0aGlzLmdldFJvd1NlbGVjdGVkSWR4LmJpbmQodGhpcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0ZWQgPSBzZWxlY3RSb3dzKFtdLCByb3csIHRoaXMuZ2V0Um93U2VsZWN0ZWRJZHguYmluZCh0aGlzKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGVjdGVkID0gc2VsZWN0Um93cyhbXSwgcm93LCB0aGlzLmdldFJvd1NlbGVjdGVkSWR4LmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5zZWxlY3RDaGVjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgc2VsZWN0ZWQgPSBzZWxlY3RlZC5maWx0ZXIodGhpcy5zZWxlY3RDaGVjay5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkLnNwbGljZSgwLCB0aGlzLnNlbGVjdGVkLmxlbmd0aCk7XG4gICAgdGhpcy5zZWxlY3RlZC5wdXNoKC4uLnNlbGVjdGVkKTtcblxuICAgIHRoaXMucHJldkluZGV4ID0gaW5kZXg7XG5cbiAgICB0aGlzLnNlbGVjdC5lbWl0KHtcbiAgICAgIHNlbGVjdGVkXG4gICAgfSk7XG4gIH1cblxuICBvbkFjdGl2YXRlKG1vZGVsOiBNb2RlbCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHsgdHlwZSwgZXZlbnQsIHJvdyB9ID0gbW9kZWw7XG4gICAgY29uc3QgY2hrYm94ID0gdGhpcy5zZWxlY3Rpb25UeXBlID09PSBTZWxlY3Rpb25UeXBlLmNoZWNrYm94O1xuICAgIGNvbnN0IHNlbGVjdCA9ICghY2hrYm94ICYmICh0eXBlID09PSAnY2xpY2snIHx8IHR5cGUgPT09ICdkYmxjbGljaycpKSB8fCAoY2hrYm94ICYmIHR5cGUgPT09ICdjaGVja2JveCcpO1xuXG4gICAgaWYgKHNlbGVjdCkge1xuICAgICAgdGhpcy5zZWxlY3RSb3coZXZlbnQsIGluZGV4LCByb3cpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2tleWRvd24nKSB7XG4gICAgICBpZiAoKDxLZXlib2FyZEV2ZW50PmV2ZW50KS5rZXlDb2RlID09PSBLZXlzLnJldHVybikge1xuICAgICAgICB0aGlzLnNlbGVjdFJvdyhldmVudCwgaW5kZXgsIHJvdyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9uS2V5Ym9hcmRGb2N1cyhtb2RlbCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYWN0aXZhdGUuZW1pdChtb2RlbCk7XG4gIH1cblxuICBvbktleWJvYXJkRm9jdXMobW9kZWw6IE1vZGVsKTogdm9pZCB7XG4gICAgY29uc3QgeyBrZXlDb2RlIH0gPSA8S2V5Ym9hcmRFdmVudD5tb2RlbC5ldmVudDtcbiAgICBjb25zdCBzaG91bGRGb2N1cyA9IGtleUNvZGUgPT09IEtleXMudXAgfHwga2V5Q29kZSA9PT0gS2V5cy5kb3duIHx8IGtleUNvZGUgPT09IEtleXMucmlnaHQgfHwga2V5Q29kZSA9PT0gS2V5cy5sZWZ0O1xuXG4gICAgaWYgKHNob3VsZEZvY3VzKSB7XG4gICAgICBjb25zdCBpc0NlbGxTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvblR5cGUuY2VsbDtcblxuICAgICAgaWYgKCFtb2RlbC5jZWxsRWxlbWVudCB8fCAhaXNDZWxsU2VsZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuZm9jdXNSb3cobW9kZWwucm93RWxlbWVudCwga2V5Q29kZSk7XG4gICAgICB9IGVsc2UgaWYgKGlzQ2VsbFNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLmZvY3VzQ2VsbChtb2RlbC5jZWxsRWxlbWVudCwgbW9kZWwucm93RWxlbWVudCwga2V5Q29kZSwgbW9kZWwuY2VsbEluZGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb2N1c1Jvdyhyb3dFbGVtZW50OiBhbnksIGtleUNvZGU6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IG5leHRSb3dFbGVtZW50ID0gdGhpcy5nZXRQcmV2TmV4dFJvdyhyb3dFbGVtZW50LCBrZXlDb2RlKTtcbiAgICBpZiAobmV4dFJvd0VsZW1lbnQpIG5leHRSb3dFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBnZXRQcmV2TmV4dFJvdyhyb3dFbGVtZW50OiBhbnksIGtleUNvZGU6IG51bWJlcik6IGFueSB7XG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHJvd0VsZW1lbnQucGFyZW50RWxlbWVudDtcblxuICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XG4gICAgICBsZXQgZm9jdXNFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICAgIGlmIChrZXlDb2RlID09PSBLZXlzLnVwKSB7XG4gICAgICAgIGZvY3VzRWxlbWVudCA9IHBhcmVudEVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgICAgIH0gZWxzZSBpZiAoa2V5Q29kZSA9PT0gS2V5cy5kb3duKSB7XG4gICAgICAgIGZvY3VzRWxlbWVudCA9IHBhcmVudEVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgfVxuXG4gICAgICBpZiAoZm9jdXNFbGVtZW50ICYmIGZvY3VzRWxlbWVudC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZvY3VzRWxlbWVudC5jaGlsZHJlblswXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb2N1c0NlbGwoY2VsbEVsZW1lbnQ6IGFueSwgcm93RWxlbWVudDogYW55LCBrZXlDb2RlOiBudW1iZXIsIGNlbGxJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgbGV0IG5leHRDZWxsRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAoa2V5Q29kZSA9PT0gS2V5cy5sZWZ0KSB7XG4gICAgICBuZXh0Q2VsbEVsZW1lbnQgPSBjZWxsRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgIH0gZWxzZSBpZiAoa2V5Q29kZSA9PT0gS2V5cy5yaWdodCkge1xuICAgICAgbmV4dENlbGxFbGVtZW50ID0gY2VsbEVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgIH0gZWxzZSBpZiAoa2V5Q29kZSA9PT0gS2V5cy51cCB8fCBrZXlDb2RlID09PSBLZXlzLmRvd24pIHtcbiAgICAgIGNvbnN0IG5leHRSb3dFbGVtZW50ID0gdGhpcy5nZXRQcmV2TmV4dFJvdyhyb3dFbGVtZW50LCBrZXlDb2RlKTtcbiAgICAgIGlmIChuZXh0Um93RWxlbWVudCkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5leHRSb3dFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2RhdGF0YWJsZS1ib2R5LWNlbGwnKTtcbiAgICAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCkgbmV4dENlbGxFbGVtZW50ID0gY2hpbGRyZW5bY2VsbEluZGV4XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmV4dENlbGxFbGVtZW50KSBuZXh0Q2VsbEVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGdldFJvd1NlbGVjdGVkKHJvdzogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Um93U2VsZWN0ZWRJZHgocm93LCB0aGlzLnNlbGVjdGVkKSA+IC0xO1xuICB9XG5cbiAgZ2V0Um93U2VsZWN0ZWRJZHgocm93OiBhbnksIHNlbGVjdGVkOiBhbnlbXSk6IG51bWJlciB7XG4gICAgaWYgKCFzZWxlY3RlZCB8fCAhc2VsZWN0ZWQubGVuZ3RoKSByZXR1cm4gLTE7XG5cbiAgICBjb25zdCByb3dJZCA9IHRoaXMucm93SWRlbnRpdHkocm93KTtcbiAgICByZXR1cm4gc2VsZWN0ZWQuZmluZEluZGV4KHIgPT4ge1xuICAgICAgY29uc3QgaWQgPSB0aGlzLnJvd0lkZW50aXR5KHIpO1xuICAgICAgcmV0dXJuIGlkID09PSByb3dJZDtcbiAgICB9KTtcbiAgfVxufVxuIl19
|