@handsontable/angular 12.4.0 → 13.0.0-next-4dc1066-20230615
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/bundles/handsontable-angular.umd.js +818 -1353
- package/bundles/handsontable-angular.umd.js.map +1 -1
- package/esm2015/handsontable-angular.js +2 -7
- package/esm2015/lib/hot-column.component.js +88 -157
- package/esm2015/lib/hot-settings-resolver.service.js +16 -52
- package/esm2015/lib/hot-table-registerer.service.js +7 -25
- package/esm2015/lib/hot-table.component.js +649 -1025
- package/esm2015/lib/hot-table.module.js +21 -26
- package/esm2015/public-api.js +9 -0
- package/fesm2015/handsontable-angular.js +772 -1286
- package/fesm2015/handsontable-angular.js.map +1 -1
- package/handsontable-angular.d.ts +2 -1
- package/lib/hot-column.component.d.ts +3 -0
- package/lib/hot-settings-resolver.service.d.ts +6 -1
- package/lib/hot-table-registerer.service.d.ts +3 -0
- package/lib/hot-table.component.d.ts +18 -3
- package/lib/hot-table.module.d.ts +6 -0
- package/package.json +1 -1
- package/bundles/handsontable-angular.umd.min.js +0 -31
- package/bundles/handsontable-angular.umd.min.js.map +0 -1
- package/esm2015/public_api.js +0 -14
- package/esm5/handsontable-angular.js +0 -10
- package/esm5/lib/hot-column.component.js +0 -185
- package/esm5/lib/hot-settings-resolver.service.js +0 -103
- package/esm5/lib/hot-table-registerer.service.js +0 -62
- package/esm5/lib/hot-table.component.js +0 -1148
- package/esm5/lib/hot-table.module.js +0 -45
- package/esm5/public_api.js +0 -14
- package/fesm5/handsontable-angular.js +0 -1542
- package/fesm5/handsontable-angular.js.map +0 -1
- package/handsontable-angular.metadata.json +0 -1
- /package/{public_api.d.ts → public-api.d.ts} +0 -0
|
@@ -1,34 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/hot-settings-resolver.service.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
1
|
import { Injectable } from '@angular/core';
|
|
7
2
|
import Handsontable from 'handsontable/base';
|
|
8
|
-
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
9
4
|
const AVAILABLE_OPTIONS = Object.keys(Handsontable.DefaultSettings);
|
|
10
|
-
/** @type {?} */
|
|
11
5
|
const AVAILABLE_HOOKS = Handsontable.hooks.getRegistered();
|
|
12
6
|
export class HotSettingsResolver {
|
|
13
|
-
/**
|
|
14
|
-
* @param {?} component
|
|
15
|
-
* @return {?}
|
|
16
|
-
*/
|
|
17
7
|
mergeSettings(component) {
|
|
18
|
-
|
|
19
|
-
const isSettingsObject = typeof component['settings'] === 'object';
|
|
20
|
-
/** @type {?} */
|
|
8
|
+
const isSettingsObject = 'settings' in component && (typeof component['settings'] === 'object');
|
|
21
9
|
const mergedSettings = isSettingsObject ? component['settings'] : {};
|
|
22
|
-
/** @type {?} */
|
|
23
10
|
const options = AVAILABLE_HOOKS.concat(AVAILABLE_OPTIONS);
|
|
24
|
-
options.forEach(
|
|
25
|
-
* @param {?} key
|
|
26
|
-
* @return {?}
|
|
27
|
-
*/
|
|
28
|
-
key => {
|
|
29
|
-
/** @type {?} */
|
|
11
|
+
options.forEach(key => {
|
|
30
12
|
const isHook = AVAILABLE_HOOKS.indexOf(key) > -1;
|
|
31
|
-
/** @type {?} */
|
|
32
13
|
let option;
|
|
33
14
|
if (isSettingsObject && isHook) {
|
|
34
15
|
option = component['settings'][key];
|
|
@@ -39,48 +20,31 @@ export class HotSettingsResolver {
|
|
|
39
20
|
if (option === void 0) {
|
|
40
21
|
return;
|
|
41
22
|
}
|
|
42
|
-
else if (typeof option === 'function' && isHook) {
|
|
43
|
-
mergedSettings[key] = (
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
*/
|
|
47
|
-
function (...args) {
|
|
48
|
-
return component._ngZone.run((/**
|
|
49
|
-
* @return {?}
|
|
50
|
-
*/
|
|
51
|
-
() => {
|
|
52
|
-
return option.apply(this, args);
|
|
53
|
-
}));
|
|
54
|
-
});
|
|
23
|
+
else if (('ngZone' in component) && (typeof option === 'function' && isHook)) {
|
|
24
|
+
mergedSettings[key] = function (...args) {
|
|
25
|
+
return component.ngZone.run(() => option.apply(this, args));
|
|
26
|
+
};
|
|
55
27
|
}
|
|
56
28
|
else {
|
|
57
29
|
mergedSettings[key] = option;
|
|
58
30
|
}
|
|
59
|
-
})
|
|
31
|
+
});
|
|
60
32
|
return mergedSettings;
|
|
61
33
|
}
|
|
62
|
-
/**
|
|
63
|
-
* @param {?} changes
|
|
64
|
-
* @return {?}
|
|
65
|
-
*/
|
|
66
34
|
prepareChanges(changes) {
|
|
67
|
-
/** @type {?} */
|
|
68
35
|
const result = {};
|
|
69
|
-
/** @type {?} */
|
|
70
36
|
const parameters = Object.keys(changes);
|
|
71
|
-
parameters.forEach((
|
|
72
|
-
* @param {?} param
|
|
73
|
-
* @return {?}
|
|
74
|
-
*/
|
|
75
|
-
(param) => {
|
|
37
|
+
parameters.forEach((param) => {
|
|
76
38
|
if (changes.hasOwnProperty(param)) {
|
|
77
39
|
result[param] = changes[param].currentValue;
|
|
78
40
|
}
|
|
79
|
-
})
|
|
41
|
+
});
|
|
80
42
|
return result;
|
|
81
43
|
}
|
|
82
44
|
}
|
|
83
|
-
HotSettingsResolver
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
45
|
+
HotSettingsResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HotSettingsResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
+
HotSettingsResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HotSettingsResolver });
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HotSettingsResolver, decorators: [{
|
|
48
|
+
type: Injectable
|
|
49
|
+
}] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXNldHRpbmdzLXJlc29sdmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ob3QtdGFibGUvc3JjL2xpYi9ob3Qtc2V0dGluZ3MtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUcxRCxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQzs7QUFFN0MsTUFBTSxpQkFBaUIsR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUM5RSxNQUFNLGVBQWUsR0FBYSxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0FBR3JFLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsYUFBYSxDQUFDLFNBQTZFO1FBRXpGLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxJQUFJLFNBQVMsSUFBSSxDQUFDLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sY0FBYyxHQUE4QixnQkFBZ0IsQ0FBQyxDQUFDLENBQUUsU0FBK0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZILE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUxRCxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxNQUFNLENBQUM7WUFFWCxJQUFJLGdCQUFnQixJQUFJLE1BQU0sRUFBRTtnQkFDOUIsTUFBTSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQztZQUVELElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3pCO1lBRUQsSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLE9BQU87YUFFUjtpQkFBTSxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLE1BQU0sQ0FBQyxFQUFFO2dCQUM5RSxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBUyxHQUFHLElBQVM7b0JBQ3pDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDOUQsQ0FBQyxDQUFDO2FBRUg7aUJBQU07Z0JBQ0wsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFzQjtRQUNuQyxNQUFNLE1BQU0sR0FBOEIsRUFBRSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbEQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUM7YUFDN0M7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O2lIQTlDVSxtQkFBbUI7cUhBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSG90VGFibGVDb21wb25lbnQgfSBmcm9tICcuL2hvdC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG90Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9ob3QtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgSGFuZHNvbnRhYmxlIGZyb20gJ2hhbmRzb250YWJsZS9iYXNlJztcblxuY29uc3QgQVZBSUxBQkxFX09QVElPTlM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoSGFuZHNvbnRhYmxlLkRlZmF1bHRTZXR0aW5ncyk7XG5jb25zdCBBVkFJTEFCTEVfSE9PS1M6IHN0cmluZ1tdID0gSGFuZHNvbnRhYmxlLmhvb2tzLmdldFJlZ2lzdGVyZWQoKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEhvdFNldHRpbmdzUmVzb2x2ZXIge1xuICBtZXJnZVNldHRpbmdzKGNvbXBvbmVudDogSG90Q29sdW1uQ29tcG9uZW50IHwgSG90VGFibGVDb21wb25lbnQgfCBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzKTpcbiAgICBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzIHwgSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzIHtcbiAgICBjb25zdCBpc1NldHRpbmdzT2JqZWN0ID0gJ3NldHRpbmdzJyBpbiBjb21wb25lbnQgJiYgKHR5cGVvZiBjb21wb25lbnRbJ3NldHRpbmdzJ10gPT09ICdvYmplY3QnKTtcbiAgICBjb25zdCBtZXJnZWRTZXR0aW5nczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyA9IGlzU2V0dGluZ3NPYmplY3QgPyAoY29tcG9uZW50IGFzIEhvdFRhYmxlQ29tcG9uZW50KVsnc2V0dGluZ3MnXSA6IHt9O1xuICAgIGNvbnN0IG9wdGlvbnMgPSBBVkFJTEFCTEVfSE9PS1MuY29uY2F0KEFWQUlMQUJMRV9PUFRJT05TKTtcblxuICAgIG9wdGlvbnMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgaXNIb29rID0gQVZBSUxBQkxFX0hPT0tTLmluZGV4T2Yoa2V5KSA+IC0xO1xuICAgICAgbGV0IG9wdGlvbjtcblxuICAgICAgaWYgKGlzU2V0dGluZ3NPYmplY3QgJiYgaXNIb29rKSB7XG4gICAgICAgIG9wdGlvbiA9IGNvbXBvbmVudFsnc2V0dGluZ3MnXVtrZXldO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29tcG9uZW50W2tleV0gIT09IHZvaWQgMCkge1xuICAgICAgICBvcHRpb24gPSBjb21wb25lbnRba2V5XTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbiA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHJldHVybjtcblxuICAgICAgfSBlbHNlIGlmICgoJ25nWm9uZScgaW4gY29tcG9uZW50KSAmJiAodHlwZW9mIG9wdGlvbiA9PT0gJ2Z1bmN0aW9uJyAmJiBpc0hvb2spKSB7XG4gICAgICAgIG1lcmdlZFNldHRpbmdzW2tleV0gPSBmdW5jdGlvbiguLi5hcmdzOiBhbnkpIHtcbiAgICAgICAgICByZXR1cm4gY29tcG9uZW50Lm5nWm9uZS5ydW4oKCkgPT4gb3B0aW9uLmFwcGx5KHRoaXMsIGFyZ3MpKTtcbiAgICAgICAgfTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVyZ2VkU2V0dGluZ3Nba2V5XSA9IG9wdGlvbjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtZXJnZWRTZXR0aW5ncztcbiAgfVxuXG4gIHByZXBhcmVDaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzIHtcbiAgICBjb25zdCByZXN1bHQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3MgPSB7fTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGNoYW5nZXMpO1xuXG4gICAgcGFyYW1ldGVycy5mb3JFYWNoKChwYXJhbSkgPT4ge1xuICAgICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkocGFyYW0pKSB7XG4gICAgICAgIHJlc3VsdFtwYXJhbV0gPSBjaGFuZ2VzW3BhcmFtXS5jdXJyZW50VmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
|
|
@@ -1,21 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/hot-table-registerer.service.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
1
|
import { Injectable } from '@angular/core';
|
|
7
|
-
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
8
3
|
const instances = new Map();
|
|
9
|
-
/** @type {?} */
|
|
10
4
|
export const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +
|
|
11
5
|
' used properly.';
|
|
12
6
|
export class HotTableRegisterer {
|
|
13
|
-
/**
|
|
14
|
-
* @param {?} id
|
|
15
|
-
* @return {?}
|
|
16
|
-
*/
|
|
17
7
|
getInstance(id) {
|
|
18
|
-
/** @type {?} */
|
|
19
8
|
const hotInstance = instances.get(id);
|
|
20
9
|
if (hotInstance.isDestroyed) {
|
|
21
10
|
console.warn(HOT_DESTROYED_WARNING);
|
|
@@ -23,23 +12,16 @@ export class HotTableRegisterer {
|
|
|
23
12
|
}
|
|
24
13
|
return hotInstance;
|
|
25
14
|
}
|
|
26
|
-
/**
|
|
27
|
-
* @param {?} id
|
|
28
|
-
* @param {?} instance
|
|
29
|
-
* @return {?}
|
|
30
|
-
*/
|
|
31
15
|
registerInstance(id, instance) {
|
|
32
16
|
return instances.set(id, instance);
|
|
33
17
|
}
|
|
34
|
-
/**
|
|
35
|
-
* @param {?} id
|
|
36
|
-
* @return {?}
|
|
37
|
-
*/
|
|
38
18
|
removeInstance(id) {
|
|
39
19
|
return instances.delete(id);
|
|
40
20
|
}
|
|
41
21
|
}
|
|
42
|
-
HotTableRegisterer
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
22
|
+
HotTableRegisterer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HotTableRegisterer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
|
+
HotTableRegisterer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HotTableRegisterer });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HotTableRegisterer, decorators: [{
|
|
25
|
+
type: Injectable
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLXJlZ2lzdGVyZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2hvdC10YWJsZS9zcmMvbGliL2hvdC10YWJsZS1yZWdpc3RlcmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7QUFFbEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsK0VBQStFO0lBQ2xILGlCQUFpQixDQUFDO0FBR3BCLE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsV0FBVyxDQUFDLEVBQVU7UUFDM0IsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0QyxJQUFJLFdBQVcsQ0FBQyxXQUFXLEVBQUU7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBRXBDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBVSxFQUFFLFFBQXNCO1FBQ3hELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxFQUFVO1FBQzlCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDOztnSEFuQlUsa0JBQWtCO29IQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBIYW5kc29udGFibGUgZnJvbSAnaGFuZHNvbnRhYmxlL2Jhc2UnO1xuXG5jb25zdCBpbnN0YW5jZXMgPSBuZXcgTWFwPHN0cmluZywgSGFuZHNvbnRhYmxlPigpO1xuXG5leHBvcnQgY29uc3QgSE9UX0RFU1RST1lFRF9XQVJOSU5HID0gJ1RoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgYm91bmQgdG8gdGhpcyBjb21wb25lbnQgd2FzIGRlc3Ryb3llZCBhbmQgY2Fubm90IGJlJyArXG4gICcgdXNlZCBwcm9wZXJseS4nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSG90VGFibGVSZWdpc3RlcmVyIHtcbiAgcHVibGljIGdldEluc3RhbmNlKGlkOiBzdHJpbmcpOiBIYW5kc29udGFibGUge1xuICAgIGNvbnN0IGhvdEluc3RhbmNlID0gaW5zdGFuY2VzLmdldChpZCk7XG5cbiAgICBpZiAoaG90SW5zdGFuY2UuaXNEZXN0cm95ZWQpIHtcbiAgICAgIGNvbnNvbGUud2FybihIT1RfREVTVFJPWUVEX1dBUk5JTkcpO1xuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gaG90SW5zdGFuY2U7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJJbnN0YW5jZShpZDogc3RyaW5nLCBpbnN0YW5jZTogSGFuZHNvbnRhYmxlKTogTWFwPHN0cmluZywgSGFuZHNvbnRhYmxlPiB7XG4gICAgcmV0dXJuIGluc3RhbmNlcy5zZXQoaWQsIGluc3RhbmNlKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVJbnN0YW5jZShpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGluc3RhbmNlcy5kZWxldGUoaWQpO1xuICB9XG59XG4iXX0=
|