From 8cf735291b868839b758b9d4c3f6333eea8050f1 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Fri, 4 Oct 2024 21:08:18 +0400 Subject: [PATCH] Update all configs in modules to avoid objects by reference --- packages/core/src/asset_manager/config/config.ts | 4 ++-- packages/core/src/asset_manager/index.ts | 4 ++-- packages/core/src/block_manager/config/config.ts | 4 ++-- packages/core/src/block_manager/index.ts | 4 ++-- packages/core/src/canvas/config/config.ts | 4 ++-- packages/core/src/canvas/index.ts | 4 ++-- packages/core/src/code_manager/config/config.ts | 4 ++-- packages/core/src/code_manager/index.ts | 4 ++-- packages/core/src/commands/config/config.ts | 4 ++-- packages/core/src/commands/index.ts | 4 ++-- packages/core/src/css_composer/config/config.ts | 4 ++-- packages/core/src/css_composer/index.ts | 4 ++-- packages/core/src/device_manager/config/config.ts | 4 ++-- packages/core/src/device_manager/index.ts | 4 ++-- packages/core/src/dom_components/config/config.ts | 6 ++++-- packages/core/src/dom_components/index.ts | 11 +++-------- packages/core/src/editor/config/config.ts | 4 ++-- packages/core/src/editor/index.ts | 3 ++- packages/core/src/i18n/config.ts | 4 ++-- packages/core/src/i18n/index.ts | 4 ++-- packages/core/src/keymaps/config.ts | 4 ++-- packages/core/src/keymaps/index.ts | 4 ++-- packages/core/src/modal_dialog/config/config.ts | 4 ++-- packages/core/src/modal_dialog/index.ts | 4 ++-- packages/core/src/navigator/config/config.ts | 4 ++-- packages/core/src/navigator/index.ts | 4 ++-- packages/core/src/panels/config/config.ts | 4 ++-- packages/core/src/panels/index.ts | 9 ++------- packages/core/src/parser/config/config.ts | 4 ++-- packages/core/src/parser/index.ts | 4 ++-- .../core/src/rich_text_editor/config/config.ts | 4 ++-- packages/core/src/rich_text_editor/index.ts | 4 ++-- .../core/src/selector_manager/config/config.ts | 4 ++-- packages/core/src/selector_manager/index.ts | 5 ++--- packages/core/src/storage_manager/config/config.ts | 4 ++-- packages/core/src/storage_manager/index.ts | 4 ++-- packages/core/src/style_manager/config/config.ts | 6 ++++-- packages/core/src/style_manager/index.ts | 4 ++-- packages/core/src/trait_manager/config/config.ts | 4 ++-- packages/core/src/trait_manager/index.ts | 4 ++-- packages/core/src/undo_manager/config.ts | 4 ++-- packages/core/src/undo_manager/index.ts | 4 ++-- .../navigator/view/{ItemView.js => ItemView.ts} | 14 +++++++------- 43 files changed, 96 insertions(+), 102 deletions(-) rename packages/core/test/specs/navigator/view/{ItemView.js => ItemView.ts} (72%) diff --git a/packages/core/src/asset_manager/config/config.ts b/packages/core/src/asset_manager/config/config.ts index 09c5def67..34ca1c593 100644 --- a/packages/core/src/asset_manager/config/config.ts +++ b/packages/core/src/asset_manager/config/config.ts @@ -141,7 +141,7 @@ export interface AssetManagerConfig { dropzoneContent?: string; } -const config: AssetManagerConfig = { +const config: () => AssetManagerConfig = () => ({ assets: [], noAssets: '', stylePrefix: 'am-', @@ -163,6 +163,6 @@ const config: AssetManagerConfig = { dropzone: false, openAssetsOnDrop: true, dropzoneContent: '', -}; +}); export default config; diff --git a/packages/core/src/asset_manager/index.ts b/packages/core/src/asset_manager/index.ts index b6d547531..cfee7a7b4 100644 --- a/packages/core/src/asset_manager/index.ts +++ b/packages/core/src/asset_manager/index.ts @@ -37,7 +37,7 @@ import { ItemManagerModule } from '../abstract/Module'; import { AddOptions, RemoveOptions } from '../common'; import EditorModel from '../editor/model/Editor'; import { ProjectData } from '../storage_manager'; -import defaults, { AssetManagerConfig } from './config/config'; +import defConfig, { AssetManagerConfig } from './config/config'; import Asset from './model/Asset'; import Assets from './model/Assets'; import AssetsEvents, { AssetOpenOptions } from './types'; @@ -66,7 +66,7 @@ export default class AssetManager extends ItemManagerModule BlockManagerConfig = () => ({ appendTo: '', blocks: [], appendOnClick: false, custom: false, -}; +}); export default config; diff --git a/packages/core/src/block_manager/index.ts b/packages/core/src/block_manager/index.ts index eb3a5ecdb..a134e11fe 100644 --- a/packages/core/src/block_manager/index.ts +++ b/packages/core/src/block_manager/index.ts @@ -31,7 +31,7 @@ import { ItemManagerModule } from '../abstract/Module'; import FrameView from '../canvas/view/FrameView'; import Component from '../dom_components/model/Component'; import EditorModel from '../editor/model/Editor'; -import defaults, { BlockManagerConfig } from './config/config'; +import defConfig, { BlockManagerConfig } from './config/config'; import Block, { BlockProperties } from './model/Block'; import Blocks from './model/Blocks'; import Categories from '../abstract/ModuleCategories'; @@ -61,7 +61,7 @@ export default class BlockManager extends ItemManagerModule CanvasConfig = () => ({ stylePrefix: 'cv-', scripts: [], styles: [], @@ -107,6 +107,6 @@ const config: CanvasConfig = { `, notTextable: ['button', 'a', 'input[type=checkbox]', 'input[type=radio]'], allowExternalDrop: true, -}; +}); export default config; diff --git a/packages/core/src/canvas/index.ts b/packages/core/src/canvas/index.ts index ae2b5fa4e..c3c84fa1f 100644 --- a/packages/core/src/canvas/index.ts +++ b/packages/core/src/canvas/index.ts @@ -35,7 +35,7 @@ import Component from '../dom_components/model/Component'; import ComponentView from '../dom_components/view/ComponentView'; import EditorModel from '../editor/model/Editor'; import { getElement, getViewEl } from '../utils/mixins'; -import defaults, { CanvasConfig } from './config/config'; +import defConfig, { CanvasConfig } from './config/config'; import Canvas from './model/Canvas'; import CanvasSpot, { CanvasSpotBuiltInTypes, CanvasSpotProps } from './model/CanvasSpot'; import CanvasSpots from './model/CanvasSpots'; @@ -76,7 +76,7 @@ export default class CanvasModule extends Module { * @private */ constructor(em: EditorModel) { - super(em, 'Canvas', defaults); + super(em, 'Canvas', defConfig()); this.canvas = new Canvas(this); this.spots = new CanvasSpots(this); diff --git a/packages/core/src/code_manager/config/config.ts b/packages/core/src/code_manager/config/config.ts index 2d0379e78..44c3e2e89 100644 --- a/packages/core/src/code_manager/config/config.ts +++ b/packages/core/src/code_manager/config/config.ts @@ -12,9 +12,9 @@ export interface CodeManagerConfig { optsCodeViewer?: Record; } -const config: CodeManagerConfig = { +const config: () => CodeManagerConfig = () => ({ stylePrefix: 'cm-', optsCodeViewer: {}, -}; +}); export default config; diff --git a/packages/core/src/code_manager/index.ts b/packages/core/src/code_manager/index.ts index e987bfd5f..2e6102f56 100644 --- a/packages/core/src/code_manager/index.ts +++ b/packages/core/src/code_manager/index.ts @@ -18,7 +18,7 @@ * @module CodeManager */ import { isUndefined } from 'underscore'; -import defaults, { CodeManagerConfig } from './config/config'; +import defConfig, { CodeManagerConfig } from './config/config'; import gHtml from './model/HtmlGenerator'; import gCss from './model/CssGenerator'; import gJson from './model/JsonGenerator'; @@ -39,7 +39,7 @@ export default class CodeManagerModule extends Module CommandsConfig = () => ({ stylePrefix: 'com-', defaults: {}, strict: true, -}; +}); export default config; diff --git a/packages/core/src/commands/index.ts b/packages/core/src/commands/index.ts index 3db755134..0cd98354c 100644 --- a/packages/core/src/commands/index.ts +++ b/packages/core/src/commands/index.ts @@ -37,7 +37,7 @@ import { isFunction, includes } from 'underscore'; import CommandAbstract, { Command, CommandOptions, CommandObject, CommandFunction } from './view/CommandAbstract'; -import defaults, { CommandsConfig } from './config/config'; +import defConfig, { CommandsConfig } from './config/config'; import { Module } from '../abstract'; import Component, { eventDrag } from '../dom_components/model/Component'; import Editor from '../editor/model/Editor'; @@ -107,7 +107,7 @@ export default class CommandsModule extends Module; // TODO } -const config: CssComposerConfig = { +const config: () => CssComposerConfig = () => ({ stylePrefix: 'css-', rules: [], -}; +}); export default config; diff --git a/packages/core/src/css_composer/index.ts b/packages/core/src/css_composer/index.ts index 0e226663a..d3783eeb9 100644 --- a/packages/core/src/css_composer/index.ts +++ b/packages/core/src/css_composer/index.ts @@ -31,7 +31,7 @@ import { isArray, isString, isUndefined } from 'underscore'; import { isObject } from '../utils/mixins'; import Selectors from '../selector_manager/model/Selectors'; import Selector from '../selector_manager/model/Selector'; -import defaults, { CssComposerConfig } from './config/config'; +import defConfig, { CssComposerConfig } from './config/config'; import CssRule, { CssRuleJSON, CssRuleProperties } from './model/CssRule'; import CssRules from './model/CssRules'; import CssRulesView from './view/CssRulesView'; @@ -85,7 +85,7 @@ export default class CssComposer extends ItemManagerModule DeviceManagerConfig = () => ({ default: '', devices: [ { @@ -52,6 +52,6 @@ const config: DeviceManagerConfig = { widthMedia: '480px', }, ], -}; +}); export default config; diff --git a/packages/core/src/device_manager/index.ts b/packages/core/src/device_manager/index.ts index bd0c3d1ff..a0d1a3668 100644 --- a/packages/core/src/device_manager/index.ts +++ b/packages/core/src/device_manager/index.ts @@ -35,7 +35,7 @@ import { isString } from 'underscore'; import { ItemManagerModule } from '../abstract/Module'; import EditorModel from '../editor/model/Editor'; -import defaults, { DeviceManagerConfig } from './config/config'; +import defConfig, { DeviceManagerConfig } from './config/config'; import Device, { DeviceProperties } from './model/Device'; import Devices from './model/Devices'; import DevicesView from './view/DevicesView'; @@ -74,7 +74,7 @@ export default class DeviceManager extends ItemManagerModule< storageKey = ''; constructor(em: EditorModel) { - super(em, 'DeviceManager', new Devices(), deviceEvents, defaults); + super(em, 'DeviceManager', new Devices(), deviceEvents, defConfig()); this.devices = this.all; this.config.devices?.forEach((device) => this.add(device, { silent: true })); this.select(this.config.default || this.devices.at(0)); diff --git a/packages/core/src/dom_components/config/config.ts b/packages/core/src/dom_components/config/config.ts index e184c03a2..a7bff2d54 100644 --- a/packages/core/src/dom_components/config/config.ts +++ b/packages/core/src/dom_components/config/config.ts @@ -62,7 +62,7 @@ export interface DomComponentsConfig { useFrameDoc?: boolean; } -export default { +const config: () => DomComponentsConfig = () => ({ stylePrefix: 'comp-', components: [], draggableComponents: true, @@ -87,4 +87,6 @@ export default { 'track', 'wbr', ], -} as DomComponentsConfig; +}); + +export default config; diff --git a/packages/core/src/dom_components/index.ts b/packages/core/src/dom_components/index.ts index 8e987c5a4..008a0380a 100644 --- a/packages/core/src/dom_components/index.ts +++ b/packages/core/src/dom_components/index.ts @@ -55,10 +55,10 @@ */ import { debounce, isArray, isBoolean, isEmpty, isFunction, isString, isSymbol, result } from 'underscore'; import { ItemManagerModule } from '../abstract/Module'; -import { AddOptions, ObjectAny } from '../common'; +import { ObjectAny } from '../common'; import EditorModel from '../editor/model/Editor'; import { isComponent } from '../utils/mixins'; -import defaults, { DomComponentsConfig } from './config/config'; +import defConfig, { DomComponentsConfig } from './config/config'; import Component, { IComponent, keyUpdate, keyUpdateInside } from './model/Component'; import ComponentComment from './model/ComponentComment'; import ComponentFrame from './model/ComponentFrame'; @@ -334,7 +334,7 @@ export default class ComponentManager extends ItemManagerModule EditorConfig = () => ({ stylePrefix: 'gjs-', components: '', style: '', @@ -506,6 +506,6 @@ const config: EditorConfig = { textViewCode: 'Code', keepUnusedStyles: false, customUI: false, -}; +}); export default config; diff --git a/packages/core/src/editor/index.ts b/packages/core/src/editor/index.ts index 9d9bdc8e5..2ea4967b3 100644 --- a/packages/core/src/editor/index.ts +++ b/packages/core/src/editor/index.ts @@ -89,7 +89,7 @@ import TraitManager from '../trait_manager'; import UndoManagerModule from '../undo_manager'; import UtilsModule from '../utils'; import html from '../utils/html'; -import defaults, { EditorConfig, EditorConfigKeys } from './config/config'; +import defConfig, { EditorConfig, EditorConfigKeys } from './config/config'; import EditorModel, { EditorLoadOptions } from './model/Editor'; import EditorView from './view/EditorView'; @@ -132,6 +132,7 @@ export default class Editor implements IBaseModule { config: EditorConfigType; constructor(config: EditorConfig = {}, opts: any = {}) { + const defaults = defConfig(); this.config = { ...defaults, ...config, diff --git a/packages/core/src/i18n/config.ts b/packages/core/src/i18n/config.ts index 13e562cec..89ef27b24 100644 --- a/packages/core/src/i18n/config.ts +++ b/packages/core/src/i18n/config.ts @@ -37,13 +37,13 @@ export interface I18nConfig { messagesAdd?: Record; } -const config: I18nConfig = { +const config: () => I18nConfig = () => ({ locale: 'en', localeFallback: 'en', detectLocale: true, debug: false, messages: { en }, messagesAdd: undefined, -}; +}); export default config; diff --git a/packages/core/src/i18n/index.ts b/packages/core/src/i18n/index.ts index 231084c07..b964fb3ac 100644 --- a/packages/core/src/i18n/index.ts +++ b/packages/core/src/i18n/index.ts @@ -27,7 +27,7 @@ import { isUndefined, isString } from 'underscore'; import { Module } from '../abstract'; import EditorModel from '../editor/model/Editor'; import { hasWin, deepMerge } from '../utils/mixins'; -import defaults, { I18nConfig } from './config'; +import defConfig, { I18nConfig } from './config'; import I18nEvents, { Messages } from './types'; export default class I18nModule extends Module { @@ -39,7 +39,7 @@ export default class I18nModule extends Module & { opts?: KeymapOptions }>; } -const config: KeymapsConfig = { +const config: () => KeymapsConfig = () => ({ defaults: { 'core:undo': { keys: '⌘+z, ctrl+z', @@ -66,6 +66,6 @@ const config: KeymapsConfig = { opts: { prevent: true }, }, }, -}; +}); export default config; diff --git a/packages/core/src/keymaps/index.ts b/packages/core/src/keymaps/index.ts index 244b3e8a4..ce0b0659f 100644 --- a/packages/core/src/keymaps/index.ts +++ b/packages/core/src/keymaps/index.ts @@ -48,7 +48,7 @@ import { hasWin } from '../utils/mixins'; import keymaster from '../utils/keymaster'; import { Module } from '../abstract'; import EditorModel from '../editor/model/Editor'; -import defaults, { Keymap, KeymapOptions, KeymapsConfig } from './config'; +import defConfig, { Keymap, KeymapOptions, KeymapsConfig } from './config'; export type KeymapEvent = 'keymap:add' | 'keymap:remove' | 'keymap:emit' | `keymap:emit:${string}`; @@ -59,7 +59,7 @@ export default class KeymapsModule extends Module; constructor(em: EditorModel) { - super(em, 'Keymaps', defaults); + super(em, 'Keymaps', defConfig()); this.keymaps = {}; } diff --git a/packages/core/src/modal_dialog/config/config.ts b/packages/core/src/modal_dialog/config/config.ts index 9a4f6a995..c917e56f7 100644 --- a/packages/core/src/modal_dialog/config/config.ts +++ b/packages/core/src/modal_dialog/config/config.ts @@ -26,13 +26,13 @@ export interface ModalConfig { extend?: Record; } -const config: ModalConfig = { +const config: () => ModalConfig = () => ({ stylePrefix: 'mdl-', title: '', content: '', backdrop: true, custom: false, extend: {}, -}; +}); export default config; diff --git a/packages/core/src/modal_dialog/index.ts b/packages/core/src/modal_dialog/index.ts index f6112592c..36670c5c8 100644 --- a/packages/core/src/modal_dialog/index.ts +++ b/packages/core/src/modal_dialog/index.ts @@ -38,7 +38,7 @@ import { Module } from '../abstract'; import EditorView from '../editor/view/EditorView'; import EditorModel from '../editor/model/Editor'; import { createText } from '../utils/dom'; -import defaults, { ModalConfig } from './config/config'; +import defConfig, { ModalConfig } from './config/config'; import ModalM from './model/Modal'; import ModalView from './view/ModalView'; import { EventHandler } from '../common'; @@ -54,7 +54,7 @@ export default class ModalModule extends Module { * @private */ constructor(em: EditorModel) { - super(em, 'Modal', defaults); + super(em, 'Modal', defConfig()); this.model = new ModalM(this); this.model.on('change:open', (m: ModalM, enable: boolean) => { diff --git a/packages/core/src/navigator/config/config.ts b/packages/core/src/navigator/config/config.ts index ad31fa1a9..4c5f932c2 100644 --- a/packages/core/src/navigator/config/config.ts +++ b/packages/core/src/navigator/config/config.ts @@ -108,7 +108,7 @@ export interface LayerManagerConfig { extend?: Record; } -const config: LayerManagerConfig = { +const config: () => LayerManagerConfig = () => ({ stylePrefix: '', appendTo: '', sortable: true, @@ -124,6 +124,6 @@ const config: LayerManagerConfig = { onInit: () => {}, onRender: () => {}, extend: {}, -}; +}); export default config; diff --git a/packages/core/src/navigator/index.ts b/packages/core/src/navigator/index.ts index 01cf4a029..ad659580d 100644 --- a/packages/core/src/navigator/index.ts +++ b/packages/core/src/navigator/index.ts @@ -45,7 +45,7 @@ import Module from '../abstract/Module'; import Component from '../dom_components/model/Component'; import EditorModel from '../editor/model/Editor'; import { hasWin, isComponent, isDef } from '../utils/mixins'; -import defaults, { LayerManagerConfig } from './config/config'; +import defConfig, { LayerManagerConfig } from './config/config'; import View from './view/ItemView'; import { ComponentsEvents } from '../dom_components/types'; @@ -91,7 +91,7 @@ export default class LayerManager extends Module { events = events; constructor(em: EditorModel) { - super(em, 'LayerManager', defaults); + super(em, 'LayerManager', defConfig()); bindAll(this, 'componentChanged', '__onRootChange', '__onComponent'); this.model = new ModuleModel(this, { opened: {} }); // @ts-ignore diff --git a/packages/core/src/panels/config/config.ts b/packages/core/src/panels/config/config.ts index c8bfcc444..a227f6f75 100644 --- a/packages/core/src/panels/config/config.ts +++ b/packages/core/src/panels/config/config.ts @@ -34,7 +34,7 @@ export interface PanelsConfig { defaults?: PanelProps[]; } -const config: PanelsConfig = { +const config: () => PanelsConfig = () => ({ stylePrefix: 'pn-', defaults: [ { @@ -109,6 +109,6 @@ const config: PanelsConfig = { ], }, ], -}; +}); export default config; diff --git a/packages/core/src/panels/index.ts b/packages/core/src/panels/index.ts index fca2283b5..76614c833 100644 --- a/packages/core/src/panels/index.ts +++ b/packages/core/src/panels/index.ts @@ -27,7 +27,7 @@ */ import { Module } from '../abstract'; import EditorModel from '../editor/model/Editor'; -import defaults, { PanelsConfig } from './config/config'; +import defConfig, { PanelsConfig } from './config/config'; import Panel, { PanelProperties } from './model/Panel'; import Panels from './model/Panels'; import PanelsView from './view/PanelsView'; @@ -42,13 +42,8 @@ export default class PanelManager extends Module { * @private */ constructor(em: EditorModel) { - super(em, 'Panels', defaults); + super(em, 'Panels', defConfig()); this.panels = new Panels(this, this.config.defaults!); - for (var name in defaults) { - //@ts-ignore - if (!(name in this.config)) this.config[name] = defaults[name]; - } - return this; } /** diff --git a/packages/core/src/parser/config/config.ts b/packages/core/src/parser/config/config.ts index eb0d86ed6..2074fd721 100644 --- a/packages/core/src/parser/config/config.ts +++ b/packages/core/src/parser/config/config.ts @@ -110,7 +110,7 @@ export interface ParserConfig { optionsHtml?: HTMLParserOptions; } -const config: ParserConfig = { +const config: () => ParserConfig = () => ({ textTags: ['br', 'b', 'i', 'u', 'a', 'ul', 'ol'], textTypes: ['text', 'textnode', 'comment'], parserCss: undefined, @@ -122,6 +122,6 @@ const config: ParserConfig = { allowUnsafeAttrValue: false, keepEmptyTextNodes: false, }, -}; +}); export default config; diff --git a/packages/core/src/parser/index.ts b/packages/core/src/parser/index.ts index c7c8b6048..e4ec87f41 100644 --- a/packages/core/src/parser/index.ts +++ b/packages/core/src/parser/index.ts @@ -26,7 +26,7 @@ */ import { Module } from '../abstract'; import EditorModel from '../editor/model/Editor'; -import defaults, { HTMLParserOptions, ParserConfig } from './config/config'; +import defConfig, { HTMLParserOptions, ParserConfig } from './config/config'; import ParserCss from './model/ParserCss'; import ParserHtml from './model/ParserHtml'; @@ -35,7 +35,7 @@ export default class ParserModule extends Module; constructor(em: EditorModel) { - super(em, 'Parser', defaults); + super(em, 'Parser', defConfig()); const { config } = this; this.parserCss = ParserCss(em, config); this.parserHtml = ParserHtml(em, config); diff --git a/packages/core/src/rich_text_editor/config/config.ts b/packages/core/src/rich_text_editor/config/config.ts index 62bac7e6b..961d108f0 100644 --- a/packages/core/src/rich_text_editor/config/config.ts +++ b/packages/core/src/rich_text_editor/config/config.ts @@ -80,11 +80,11 @@ export interface RichTextEditorConfig { custom?: boolean; } -const config: RichTextEditorConfig = { +const config: () => RichTextEditorConfig = () => ({ stylePrefix: 'rte-', adjustToolbar: true, actions: ['bold', 'italic', 'underline', 'strikethrough', 'link', 'wrap'], custom: false, -}; +}); export default config; diff --git a/packages/core/src/rich_text_editor/index.ts b/packages/core/src/rich_text_editor/index.ts index 48d48f8e6..f7ea78d24 100644 --- a/packages/core/src/rich_text_editor/index.ts +++ b/packages/core/src/rich_text_editor/index.ts @@ -44,7 +44,7 @@ import ComponentView from '../dom_components/view/ComponentView'; import EditorModel from '../editor/model/Editor'; import { createEl, cx, on, removeEl } from '../utils/dom'; import { hasWin, isDef } from '../utils/mixins'; -import defaults, { CustomRTE, RichTextEditorConfig } from './config/config'; +import defConfig, { CustomRTE, RichTextEditorConfig } from './config/config'; import RichTextEditor, { RichTextEditorAction } from './model/RichTextEditor'; import CanvasEvents from '../canvas/types'; import { ComponentsEvents } from '../dom_components/types'; @@ -87,7 +87,7 @@ export default class RichTextEditorModule extends Module SelectorManagerConfig = () => ({ stylePrefix: 'clm-', appendTo: '', selectors: [], @@ -148,6 +148,6 @@ const config: SelectorManagerConfig = { '', componentFirst: false, custom: false, -}; +}); export default config; diff --git a/packages/core/src/selector_manager/index.ts b/packages/core/src/selector_manager/index.ts index 78a363db8..e8905df40 100644 --- a/packages/core/src/selector_manager/index.ts +++ b/packages/core/src/selector_manager/index.ts @@ -76,7 +76,7 @@ import { isString, debounce, isObject, isArray, bindAll } from 'underscore'; import { isComponent, isRule } from '../utils/mixins'; import { Model, Collection, RemoveOptions, SetOptions, Debounced } from '../common'; -import defaults, { SelectorManagerConfig } from './config/config'; +import defConfig, { SelectorManagerConfig } from './config/config'; import Selector from './model/Selector'; import Selectors from './model/Selectors'; import State from './model/State'; @@ -86,7 +86,6 @@ import Component from '../dom_components/model/Component'; import { ItemManagerModule } from '../abstract/Module'; import { StyleModuleParam } from '../style_manager'; import StyleableModel from '../domain_abstract/model/StyleableModel'; -import CssRule from '../css_composer/model/CssRule'; import { ComponentsEvents } from '../dom_components/types'; export type SelectorEvent = 'selector:add' | 'selector:remove' | 'selector:update' | 'selector:state' | 'selector'; @@ -138,7 +137,7 @@ export default class SelectorManager extends ItemManagerModule StorageManagerConfig = () => ({ id: 'gjs-', type: 'local', autosave: true, @@ -103,6 +103,6 @@ const config: StorageManagerConfig = { onLoad: (result) => result, }, }, -}; +}); export default config; diff --git a/packages/core/src/storage_manager/index.ts b/packages/core/src/storage_manager/index.ts index 4db8dbfe6..272d42f45 100644 --- a/packages/core/src/storage_manager/index.ts +++ b/packages/core/src/storage_manager/index.ts @@ -42,7 +42,7 @@ import { isEmpty, isFunction } from 'underscore'; import { Module } from '../abstract'; -import defaults, { StorageManagerConfig } from './config/config'; +import defConfig, { StorageManagerConfig } from './config/config'; import LocalStorage from './model/LocalStorage'; import RemoteStorage from './model/RemoteStorage'; import EditorModel from '../editor/model/Editor'; @@ -65,7 +65,7 @@ export default class StorageManager extends Module< events = StorageEvents; constructor(em: EditorModel) { - super(em, 'StorageManager', defaults); + super(em, 'StorageManager', defConfig()); const { config } = this; if (config._disable) config.type = undefined; this.storages = {}; diff --git a/packages/core/src/style_manager/config/config.ts b/packages/core/src/style_manager/config/config.ts index 5dffb171d..f8462567c 100644 --- a/packages/core/src/style_manager/config/config.ts +++ b/packages/core/src/style_manager/config/config.ts @@ -66,7 +66,7 @@ export interface StyleManagerConfig { pStylePrefix?: string; } -export default { +const config: () => StyleManagerConfig = () => ({ sectors: [ { name: 'General', @@ -128,4 +128,6 @@ export default { showComputed: true, clearProperties: true, avoidComputed: ['width', 'height'], -} as StyleManagerConfig; +}); + +export default config; diff --git a/packages/core/src/style_manager/index.ts b/packages/core/src/style_manager/index.ts index 331568607..998394775 100644 --- a/packages/core/src/style_manager/index.ts +++ b/packages/core/src/style_manager/index.ts @@ -66,7 +66,7 @@ import { isUndefined, isArray, isString, debounce, bindAll } from 'underscore'; import { isComponent } from '../utils/mixins'; import { AddOptions, Debounced, Model } from '../common'; -import defaults, { StyleManagerConfig } from './config/config'; +import defConfig, { StyleManagerConfig } from './config/config'; import Sector, { SectorProperties } from './model/Sector'; import Sectors from './model/Sectors'; import Properties from './model/Properties'; @@ -157,7 +157,7 @@ export default class StyleManager extends ItemManagerModule< * @private */ constructor(em: EditorModel) { - super(em, 'StyleManager', new Sectors([], { em }), stylesEvents, defaults); + super(em, 'StyleManager', new Sectors([], { em }), stylesEvents, defConfig()); bindAll(this, '__clearStateTarget'); const c = this.config; const ppfx = c.pStylePrefix; diff --git a/packages/core/src/trait_manager/config/config.ts b/packages/core/src/trait_manager/config/config.ts index 1b403c4f3..bd149d1ea 100644 --- a/packages/core/src/trait_manager/config/config.ts +++ b/packages/core/src/trait_manager/config/config.ts @@ -22,11 +22,11 @@ export interface TraitManagerConfig { optionsTarget?: Record[]; } -const config: TraitManagerConfig = { +const config: () => TraitManagerConfig = () => ({ stylePrefix: 'trt-', appendTo: '', optionsTarget: [{ value: false }, { value: '_blank' }], custom: false, -}; +}); export default config; diff --git a/packages/core/src/trait_manager/index.ts b/packages/core/src/trait_manager/index.ts index 69193fa3e..31a4a3cc9 100644 --- a/packages/core/src/trait_manager/index.ts +++ b/packages/core/src/trait_manager/index.ts @@ -33,7 +33,7 @@ import { Module } from '../abstract'; import { Model } from '../common'; import Component from '../dom_components/model/Component'; import EditorModel from '../editor/model/Editor'; -import defaults from './config/config'; +import defConfig from './config/config'; import { CustomTrait, TraitCustomData, @@ -81,7 +81,7 @@ export default class TraitManager extends Module { * @private */ constructor(em: EditorModel) { - super(em, 'TraitManager', defaults as any); + super(em, 'TraitManager', defConfig() as any); const { state, config, events } = this; const ppfx = config.pStylePrefix; ppfx && (config.stylePrefix = `${ppfx}${config.stylePrefix}`); diff --git a/packages/core/src/undo_manager/config.ts b/packages/core/src/undo_manager/config.ts index 7be4ecf74..b86804223 100644 --- a/packages/core/src/undo_manager/config.ts +++ b/packages/core/src/undo_manager/config.ts @@ -11,9 +11,9 @@ export interface UndoManagerConfig { trackSelection?: boolean; } -const config: UndoManagerConfig = { +const config: () => UndoManagerConfig = () => ({ maximumStackLength: 500, trackSelection: true, -}; +}); export default config; diff --git a/packages/core/src/undo_manager/index.ts b/packages/core/src/undo_manager/index.ts index 598891365..7e60aa5c0 100644 --- a/packages/core/src/undo_manager/index.ts +++ b/packages/core/src/undo_manager/index.ts @@ -28,7 +28,7 @@ import UndoManager from 'backbone-undo'; import { isArray, isBoolean, isEmpty, unique, times } from 'underscore'; import { Module } from '../abstract'; import EditorModel from '../editor/model/Editor'; -import defaults, { UndoManagerConfig } from './config'; +import defConfig, { UndoManagerConfig } from './config'; export interface UndoGroup { index: number; @@ -47,7 +47,7 @@ export default class UndoManagerModule extends Module { - let itemView; + let itemView: ItemView; - const isVisible = (itemView) => { + const isVisible = (itemView: ItemView) => { return itemView.module.isVisible(itemView.model); }; @@ -16,8 +16,8 @@ describe('ItemView', () => { itemView = new ItemView({ model: new defCmp({}, { em }), module: em.get('LayerManager'), - config: { ...config, em }, - }); + config: { ...defConfig(), em }, + } as any); }); describe('.isVisible', () => {