UNPKG

@handsontable/angular-wrapper

Version:

Best Data Grid for Angular with Spreadsheet Look and Feel.

108 lines 12.2 kB
import { Injectable, InjectionToken, Inject } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import * as i0 from "@angular/core"; /** * A constant representing the non-commercial and evaluation license. * */ export const NON_COMMERCIAL_LICENSE = 'non-commercial-and-evaluation'; /** * Type representing a theme name. * Possible values include predefined themes and any custom string. */ export var PredefinedTheme; (function (PredefinedTheme) { PredefinedTheme["Main"] = "ht-theme-main"; PredefinedTheme["MainDark"] = "ht-theme-main-dark"; PredefinedTheme["MainDarkAuto"] = "ht-theme-main-dark-auto"; PredefinedTheme["Horizon"] = "ht-theme-horizon"; PredefinedTheme["HorizonDark"] = "ht-theme-horizon-dark"; PredefinedTheme["HorizonDarkAuto"] = "ht-theme-horizon-dark-auto"; })(PredefinedTheme || (PredefinedTheme = {})); /** * Injection token for providing a global default configuration. */ export const HOT_GLOBAL_CONFIG = new InjectionToken('HOT_GLOBAL_CONFIG', { providedIn: 'root', factory: () => ({}) }); /** * Service for configuring Handsontable settings. * This service allows setting and retrieving global configuration. */ export class HotGlobalConfigService { /** * The default configuration object for Handsontable. * * This object is used as the initial value for the configuration BehaviorSubject. * It can be overridden by a global configuration provided through the * {@link HOT_GLOBAL_CONFIG} injection token. * * @private * @type {HotGlobalConfig} */ defaultConfig = { license: undefined, themeName: '' }; /** * A BehaviorSubject that holds the current Handsontable configuration. * * New configuration values can be emitted by calling next() on this subject. * This allows subscribers to react to configuration changes dynamically. * * @private * @type {BehaviorSubject<HotGlobalConfig>} */ configSubject = new BehaviorSubject(this.defaultConfig); /** * An Observable stream of the current Handsontable configuration. * * Components can subscribe to this observable to receive updates whenever the configuration changes. * * @returns The configuration as an observable stream. */ get config$() { return this.configSubject.asObservable(); } constructor(globalConfig) { // Merge global configuration (if provided) into defaultConfig immutably. this.defaultConfig = { ...this.defaultConfig, ...globalConfig }; this.configSubject.next(this.defaultConfig); } /** * Sets the global configuration for Handsontable. * * @param config - An object containing configuration options. * Each Handsontable instance can override this configuration by providing its own settings. */ setConfig(config) { this.configSubject.next({ ...this.defaultConfig, ...config }); } /** * Retrieves the current Handsontable configuration. * * @returns An object with the current settings. */ getConfig() { return this.configSubject.value; } /** * Resets the configuration to the default settings. * This method updates the configuration BehaviorSubject with the default configuration. */ resetConfig() { this.configSubject.next({ ...this.defaultConfig }); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HotGlobalConfigService, deps: [{ token: HOT_GLOBAL_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HotGlobalConfigService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HotGlobalConfigService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Inject, args: [HOT_GLOBAL_CONFIG] }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LWdsb2JhbC1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2hvdC10YWJsZS9zcmMvbGliL3NlcnZpY2VzL2hvdC1nbG9iYWwtY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7O0FBRWpEOztLQUVLO0FBQ0wsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsK0JBQStCLENBQUM7QUFFdEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFOLElBQVksZUFPWDtBQVBELFdBQVksZUFBZTtJQUN6Qix5Q0FBc0IsQ0FBQTtJQUN0QixrREFBK0IsQ0FBQTtJQUMvQiwyREFBd0MsQ0FBQTtJQUN4QywrQ0FBNEIsQ0FBQTtJQUM1Qix3REFBcUMsQ0FBQTtJQUNyQyxpRUFBOEMsQ0FBQTtBQUNoRCxDQUFDLEVBUFcsZUFBZSxLQUFmLGVBQWUsUUFPMUI7QUFpQ0Q7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLEVBQUU7SUFDeEYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0NBQ3BCLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7SUFFakM7Ozs7Ozs7OztPQVNHO0lBQ0ssYUFBYSxHQUFvQjtRQUN2QyxPQUFPLEVBQUUsU0FBUztRQUNsQixTQUFTLEVBQUUsRUFBRTtLQUNkLENBQUM7SUFFRjs7Ozs7Ozs7T0FRRztJQUNLLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRWpGOzs7Ozs7T0FNRztJQUNILElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsWUFDNkIsWUFBNkI7UUFFeEQseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLE1BQXVCO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7d0dBeEVVLHNCQUFzQixrQkF3Q3ZCLGlCQUFpQjs0R0F4Q2hCLHNCQUFzQixjQUZyQixNQUFNOzs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkF5Q0ksTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEEgY29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSBub24tY29tbWVyY2lhbCBhbmQgZXZhbHVhdGlvbiBsaWNlbnNlLlxuICogKi9cbmV4cG9ydCBjb25zdCBOT05fQ09NTUVSQ0lBTF9MSUNFTlNFID0gJ25vbi1jb21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uJztcblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyBhIHRoZW1lIG5hbWUuXG4gKiBQb3NzaWJsZSB2YWx1ZXMgaW5jbHVkZSBwcmVkZWZpbmVkIHRoZW1lcyBhbmQgYW55IGN1c3RvbSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBlbnVtIFByZWRlZmluZWRUaGVtZSB7XG4gIE1haW4gPSAnaHQtdGhlbWUtbWFpbicsXG4gIE1haW5EYXJrID0gJ2h0LXRoZW1lLW1haW4tZGFyaycsXG4gIE1haW5EYXJrQXV0byA9ICdodC10aGVtZS1tYWluLWRhcmstYXV0bycsXG4gIEhvcml6b24gPSAnaHQtdGhlbWUtaG9yaXpvbicsXG4gIEhvcml6b25EYXJrID0gJ2h0LXRoZW1lLWhvcml6b24tZGFyaycsXG4gIEhvcml6b25EYXJrQXV0byA9ICdodC10aGVtZS1ob3Jpem9uLWRhcmstYXV0bydcbn1cblxuZXhwb3J0IHR5cGUgVGhlbWVOYW1lID0gUHJlZGVmaW5lZFRoZW1lIHwgc3RyaW5nO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgdGhlIEhhbmRzb250YWJsZSBnbG9iYWwgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3RHbG9iYWxDb25maWcge1xuICAvKipcbiAgICogVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUuXG4gICAqL1xuICBsaWNlbnNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGhlbWUgdG8gYmUgdXNlZC5cbiAgICovXG4gIHRoZW1lTmFtZT86IFRoZW1lTmFtZTtcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIGNvZGUgdG8gYmUgdXNlZCBmb3IgbG9jYWxpemF0aW9uLlxuICAgKiBGb3IgZXhhbXBsZSwgJ2VuLVVTJywgJ3BsLVBMJywgZXRjLlxuICAgKiAqKk5vdGU6KiogVGhlIGxhbmd1YWdlIG11c3QgYmUgY2hvc2VuIGZyb20gdGhlIGxhbmd1YWdlcyBzdXBwb3J0ZWQgYnkgSGFuZHNvbnRhYmxlIGFuZCByZWdpc3RlcmVkIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIGxhbmd1YWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGF5b3V0IGRpcmVjdGlvbiBmb3IgdGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZS5cbiAgICogVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIHdoZXRoZXIgdGhlIGxheW91dCBzaG91bGQgYmUgbGVmdC10by1yaWdodCAoJ2x0cicpLCByaWdodC10by1sZWZ0ICgncnRsJyksXG4gICAqIG9yIGluaGVyaXQgdGhlIGRpcmVjdGlvbiBmcm9tIHRoZSBwYXJlbnQgZWxlbWVudCAoJ2luaGVyaXQnKS5cbiAgICovXG4gIGxheW91dERpcmVjdGlvbj86ICdsdHInIHwgJ3J0bCcgfCAnaW5oZXJpdCc7XG59XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBwcm92aWRpbmcgYSBnbG9iYWwgZGVmYXVsdCBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgSE9UX0dMT0JBTF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48SG90R2xvYmFsQ29uZmlnPignSE9UX0dMT0JBTF9DT05GSUcnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gKHt9KVxufSk7XG5cbi8qKlxuICogU2VydmljZSBmb3IgY29uZmlndXJpbmcgSGFuZHNvbnRhYmxlIHNldHRpbmdzLlxuICogVGhpcyBzZXJ2aWNlIGFsbG93cyBzZXR0aW5nIGFuZCByZXRyaWV2aW5nIGdsb2JhbCBjb25maWd1cmF0aW9uLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSG90R2xvYmFsQ29uZmlnU2VydmljZSB7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBIYW5kc29udGFibGUuXG4gICAqXG4gICAqIFRoaXMgb2JqZWN0IGlzIHVzZWQgYXMgdGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBjb25maWd1cmF0aW9uIEJlaGF2aW9yU3ViamVjdC5cbiAgICogSXQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgYSBnbG9iYWwgY29uZmlndXJhdGlvbiBwcm92aWRlZCB0aHJvdWdoIHRoZVxuICAgKiB7QGxpbmsgSE9UX0dMT0JBTF9DT05GSUd9IGluamVjdGlvbiB0b2tlbi5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHR5cGUge0hvdEdsb2JhbENvbmZpZ31cbiAgICovXG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogSG90R2xvYmFsQ29uZmlnID0ge1xuICAgIGxpY2Vuc2U6IHVuZGVmaW5lZCxcbiAgICB0aGVtZU5hbWU6ICcnXG4gIH07XG5cbiAgLyoqXG4gICAqIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgaG9sZHMgdGhlIGN1cnJlbnQgSGFuZHNvbnRhYmxlIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIE5ldyBjb25maWd1cmF0aW9uIHZhbHVlcyBjYW4gYmUgZW1pdHRlZCBieSBjYWxsaW5nIG5leHQoKSBvbiB0aGlzIHN1YmplY3QuXG4gICAqIFRoaXMgYWxsb3dzIHN1YnNjcmliZXJzIHRvIHJlYWN0IHRvIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyBkeW5hbWljYWxseS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxIb3RHbG9iYWxDb25maWc+fVxuICAgKi9cbiAgcHJpdmF0ZSBjb25maWdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIb3RHbG9iYWxDb25maWc+KHRoaXMuZGVmYXVsdENvbmZpZyk7XG5cbiAgLyoqXG4gICAqIEFuIE9ic2VydmFibGUgc3RyZWFtIG9mIHRoZSBjdXJyZW50IEhhbmRzb250YWJsZSBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBDb21wb25lbnRzIGNhbiBzdWJzY3JpYmUgdG8gdGhpcyBvYnNlcnZhYmxlIHRvIHJlY2VpdmUgdXBkYXRlcyB3aGVuZXZlciB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgY29uZmlndXJhdGlvbiBhcyBhbiBvYnNlcnZhYmxlIHN0cmVhbS5cbiAgICovXG4gIGdldCBjb25maWckKCk6IE9ic2VydmFibGU8SG90R2xvYmFsQ29uZmlnPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoSE9UX0dMT0JBTF9DT05GSUcpIGdsb2JhbENvbmZpZzogSG90R2xvYmFsQ29uZmlnXG4gICkge1xuICAgIC8vIE1lcmdlIGdsb2JhbCBjb25maWd1cmF0aW9uIChpZiBwcm92aWRlZCkgaW50byBkZWZhdWx0Q29uZmlnIGltbXV0YWJseS5cbiAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uZ2xvYmFsQ29uZmlnIH07XG4gICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQodGhpcy5kZWZhdWx0Q29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvbiBmb3IgSGFuZHNvbnRhYmxlLlxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKiAgICAgICAgICAgICAgICAgRWFjaCBIYW5kc29udGFibGUgaW5zdGFuY2UgY2FuIG92ZXJyaWRlIHRoaXMgY29uZmlndXJhdGlvbiBieSBwcm92aWRpbmcgaXRzIG93biBzZXR0aW5ncy5cbiAgICovXG4gIHNldENvbmZpZyhjb25maWc6IEhvdEdsb2JhbENvbmZpZykge1xuICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IEhhbmRzb250YWJsZSBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCB0aGUgY3VycmVudCBzZXR0aW5ncy5cbiAgICovXG4gIGdldENvbmZpZygpOiBIb3RHbG9iYWxDb25maWcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N1YmplY3QudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBjb25maWd1cmF0aW9uIHRvIHRoZSBkZWZhdWx0IHNldHRpbmdzLlxuICAgKiBUaGlzIG1ldGhvZCB1cGRhdGVzIHRoZSBjb25maWd1cmF0aW9uIEJlaGF2aW9yU3ViamVjdCB3aXRoIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZXNldENvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh7IC4uLnRoaXMuZGVmYXVsdENvbmZpZyB9KTtcbiAgfVxufVxuIl19