@handsontable/angular
Version:
Best Data Grid for Angular with Spreadsheet Look and Feel.
50 lines • 7.22 kB
JavaScript
import { Injectable } from '@angular/core';
import Handsontable from 'handsontable/base';
import * as i0 from "@angular/core";
const AVAILABLE_OPTIONS = Object.keys(Handsontable.DefaultSettings);
const AVAILABLE_HOOKS = Handsontable.hooks.getRegistered();
export class HotSettingsResolver {
mergeSettings(component) {
const isSettingsObject = 'settings' in component && (typeof component['settings'] === 'object');
const mergedSettings = isSettingsObject ? component['settings'] : {};
const options = AVAILABLE_HOOKS.concat(AVAILABLE_OPTIONS);
options.forEach(key => {
const isHook = AVAILABLE_HOOKS.indexOf(key) > -1;
let option;
if (isSettingsObject && isHook) {
option = component['settings'][key];
}
if (component[key] !== void 0) {
option = component[key];
}
if (option === void 0) {
return;
}
else if (('ngZone' in component) && (typeof option === 'function' && isHook)) {
mergedSettings[key] = function (...args) {
return component.ngZone.run(() => option.apply(this, args));
};
}
else {
mergedSettings[key] = option;
}
});
return mergedSettings;
}
prepareChanges(changes) {
const result = {};
const parameters = Object.keys(changes);
parameters.forEach((param) => {
if (changes.hasOwnProperty(param)) {
result[param] = changes[param].currentValue;
}
});
return result;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HotSettingsResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HotSettingsResolver });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HotSettingsResolver, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXNldHRpbmdzLXJlc29sdmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ob3QtdGFibGUvc3JjL2xpYi9ob3Qtc2V0dGluZ3MtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUcxRCxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQzs7QUFFN0MsTUFBTSxpQkFBaUIsR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUM5RSxNQUFNLGVBQWUsR0FBYSxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0FBR3JFLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsYUFBYSxDQUFDLFNBQTZFO1FBRXpGLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxJQUFJLFNBQVMsSUFBSSxDQUFDLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sY0FBYyxHQUE4QixnQkFBZ0IsQ0FBQyxDQUFDLENBQUUsU0FBK0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZILE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUxRCxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxNQUFNLENBQUM7WUFFWCxJQUFJLGdCQUFnQixJQUFJLE1BQU0sRUFBRTtnQkFDOUIsTUFBTSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQztZQUVELElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3pCO1lBRUQsSUFBSSxNQUFNLEtBQUssS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLE9BQU87YUFFUjtpQkFBTSxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLE1BQU0sQ0FBQyxFQUFFO2dCQUM5RSxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBUyxHQUFHLElBQVM7b0JBQ3pDLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDOUQsQ0FBQyxDQUFDO2FBRUg7aUJBQU07Z0JBQ0wsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFzQjtRQUNuQyxNQUFNLE1BQU0sR0FBOEIsRUFBRSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbEQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUM7YUFDN0M7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7d0dBOUNVLG1CQUFtQjs0R0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSG90VGFibGVDb21wb25lbnQgfSBmcm9tICcuL2hvdC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG90Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9ob3QtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgSGFuZHNvbnRhYmxlIGZyb20gJ2hhbmRzb250YWJsZS9iYXNlJztcblxuY29uc3QgQVZBSUxBQkxFX09QVElPTlM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoSGFuZHNvbnRhYmxlLkRlZmF1bHRTZXR0aW5ncyk7XG5jb25zdCBBVkFJTEFCTEVfSE9PS1M6IHN0cmluZ1tdID0gSGFuZHNvbnRhYmxlLmhvb2tzLmdldFJlZ2lzdGVyZWQoKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEhvdFNldHRpbmdzUmVzb2x2ZXIge1xuICBtZXJnZVNldHRpbmdzKGNvbXBvbmVudDogSG90Q29sdW1uQ29tcG9uZW50IHwgSG90VGFibGVDb21wb25lbnQgfCBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzKTpcbiAgICBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzIHwgSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzIHtcbiAgICBjb25zdCBpc1NldHRpbmdzT2JqZWN0ID0gJ3NldHRpbmdzJyBpbiBjb21wb25lbnQgJiYgKHR5cGVvZiBjb21wb25lbnRbJ3NldHRpbmdzJ10gPT09ICdvYmplY3QnKTtcbiAgICBjb25zdCBtZXJnZWRTZXR0aW5nczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyA9IGlzU2V0dGluZ3NPYmplY3QgPyAoY29tcG9uZW50IGFzIEhvdFRhYmxlQ29tcG9uZW50KVsnc2V0dGluZ3MnXSA6IHt9O1xuICAgIGNvbnN0IG9wdGlvbnMgPSBBVkFJTEFCTEVfSE9PS1MuY29uY2F0KEFWQUlMQUJMRV9PUFRJT05TKTtcblxuICAgIG9wdGlvbnMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgaXNIb29rID0gQVZBSUxBQkxFX0hPT0tTLmluZGV4T2Yoa2V5KSA+IC0xO1xuICAgICAgbGV0IG9wdGlvbjtcblxuICAgICAgaWYgKGlzU2V0dGluZ3NPYmplY3QgJiYgaXNIb29rKSB7XG4gICAgICAgIG9wdGlvbiA9IGNvbXBvbmVudFsnc2V0dGluZ3MnXVtrZXldO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29tcG9uZW50W2tleV0gIT09IHZvaWQgMCkge1xuICAgICAgICBvcHRpb24gPSBjb21wb25lbnRba2V5XTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbiA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHJldHVybjtcblxuICAgICAgfSBlbHNlIGlmICgoJ25nWm9uZScgaW4gY29tcG9uZW50KSAmJiAodHlwZW9mIG9wdGlvbiA9PT0gJ2Z1bmN0aW9uJyAmJiBpc0hvb2spKSB7XG4gICAgICAgIG1lcmdlZFNldHRpbmdzW2tleV0gPSBmdW5jdGlvbiguLi5hcmdzOiBhbnkpIHtcbiAgICAgICAgICByZXR1cm4gY29tcG9uZW50Lm5nWm9uZS5ydW4oKCkgPT4gb3B0aW9uLmFwcGx5KHRoaXMsIGFyZ3MpKTtcbiAgICAgICAgfTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVyZ2VkU2V0dGluZ3Nba2V5XSA9IG9wdGlvbjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtZXJnZWRTZXR0aW5ncztcbiAgfVxuXG4gIHByZXBhcmVDaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzIHtcbiAgICBjb25zdCByZXN1bHQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3MgPSB7fTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGNoYW5nZXMpO1xuXG4gICAgcGFyYW1ldGVycy5mb3JFYWNoKChwYXJhbSkgPT4ge1xuICAgICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkocGFyYW0pKSB7XG4gICAgICAgIHJlc3VsdFtwYXJhbV0gPSBjaGFuZ2VzW3BhcmFtXS5jdXJyZW50VmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=