import { OdsConfig } from './ods-config'; import { odsSetup } from './ods-setup'; import { OdsWindowConfig } from './ods-window-config'; import { DeepRequired } from '../types/ods-deep-required'; /** * description of all properties globally managed into window by the `ODS` system. * * @example enable log before ODS initialization via HTML * ```html * * ``` * * @example enable log before ODS initialization via typescript * ```typescript * // eslint-disable-next-line no-var * declare var window: OdsWindow; * !window.ods && (window.ods = { config: { logging: { active: true } } }); * ``` * * @example managing log directly in the browser via javascript * ```javascript * // via the property * window.ods.config.logging.active = true; * // via the public method * window.ods.latest.logging(true); * ``` * * * @example use the `ODS` embedded logger via javascript * ```html * * ``` * * * WARNING: MUST BE RETRO COMPATIBLE for all ODS versions */ export interface OdsWindow extends Window { ods?: OdsWindowConfig; odsSetup?: typeof odsSetup; } export interface OdsWindowFilled extends OdsWindow { ods: Required & { config: DeepRequired; }; }