From a62f92739482ce94823eae52aeb2cc5e1c1207fd Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sun, 16 Jun 2024 14:52:47 +0400 Subject: [PATCH] Update TS --- src/common/index.ts | 2 +- src/css_composer/index.ts | 5 +++-- src/dom_components/model/Component.ts | 13 +++++++------ src/domain_abstract/model/StyleableModel.ts | 6 ++++-- src/navigator/index.ts | 2 +- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/common/index.ts b/src/common/index.ts index 7adcc4978..57c000ce6 100644 --- a/src/common/index.ts +++ b/src/common/index.ts @@ -5,7 +5,7 @@ interface NOOP {} export type Debounced = Function & { cancel(): void }; -export type SetOptions = Backbone.ModelSetOptions & { avoidStore?: boolean; inline?: boolean }; +export type SetOptions = Backbone.ModelSetOptions & { avoidStore?: boolean }; export type AddOptions = Backbone.AddOptions & { temporary?: boolean; action?: string }; diff --git a/src/css_composer/index.ts b/src/css_composer/index.ts index f09134030..e6a866a9e 100644 --- a/src/css_composer/index.ts +++ b/src/css_composer/index.ts @@ -39,6 +39,7 @@ import { ItemManagerModule } from '../abstract/Module'; import EditorModel from '../editor/model/Editor'; import Component from '../dom_components/model/Component'; import { ObjectAny, PrevToNewIdMap } from '../common'; +import { UpdateStyleOptions } from '../domain_abstract/model/StyleableModel'; /** @private */ interface RuleOptions { @@ -53,7 +54,7 @@ interface RuleOptions { } /** @private */ -interface SetRuleOptions extends RuleOptions { +interface SetRuleOptions extends RuleOptions, UpdateStyleOptions { /** * If the rule exists already, merge passed styles instead of replacing them. */ @@ -61,7 +62,7 @@ interface SetRuleOptions extends RuleOptions { } /** @private */ -export interface GetSetRuleOptions { +export interface GetSetRuleOptions extends UpdateStyleOptions { state?: string; mediaText?: string; addOpts?: ObjectAny; diff --git a/src/dom_components/model/Component.ts b/src/dom_components/model/Component.ts index 29810df29..aca0c7d94 100644 --- a/src/dom_components/model/Component.ts +++ b/src/dom_components/model/Component.ts @@ -12,7 +12,7 @@ import { keys, } from 'underscore'; import { shallowDiff, capitalize, isEmptyObj, isObject, toLowerCase } from '../../utils/mixins'; -import StyleableModel, { StyleProps } from '../../domain_abstract/model/StyleableModel'; +import StyleableModel, { StyleProps, UpdateStyleOptions } from '../../domain_abstract/model/StyleableModel'; import { Model } from 'backbone'; import Components from './Components'; import Selector from '../../selector_manager/model/Selector'; @@ -22,7 +22,6 @@ import EditorModel from '../../editor/model/Editor'; import { AddComponentsOption, ComponentAdd, - ComponentAddType, ComponentDefinition, ComponentDefinitionDefined, ComponentOptions, @@ -44,6 +43,8 @@ import ItemView from '../../navigator/view/ItemView'; export interface IComponent extends ExtractMethods {} +export interface SetAttrOptions extends SetOptions, UpdateStyleOptions {} + const escapeRegExp = (str: string) => { return str.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'); }; @@ -541,7 +542,7 @@ export default class Component extends StyleableModel { * Emit changes for each updated attribute * @private */ - attrUpdated(m: any, v: any, opts: any = {}) { + attrUpdated(m: any, v: any, opts: SetAttrOptions = {}) { const attrs = this.get('attributes')!; // Handle classes const classes = attrs.class; @@ -570,7 +571,7 @@ export default class Component extends StyleableModel { * @example * component.setAttributes({ id: 'test', 'data-key': 'value' }); */ - setAttributes(attrs: ObjectAny, opts: SetOptions = {}) { + setAttributes(attrs: ObjectAny, opts: SetAttrOptions = {}) { this.set('attributes', { ...attrs }, opts); return this; } @@ -583,7 +584,7 @@ export default class Component extends StyleableModel { * @example * component.addAttributes({ 'data-key': 'value' }); */ - addAttributes(attrs: ObjectAny, opts: SetOptions = {}) { + addAttributes(attrs: ObjectAny, opts: SetAttrOptions = {}) { return this.setAttributes( { ...this.getAttributes({ noClass: true }), @@ -643,7 +644,7 @@ export default class Component extends StyleableModel { * @example * component.setStyle({ color: 'red' }); */ - setStyle(prop: StyleProps = {}, opts: any = {}) { + setStyle(prop: StyleProps = {}, opts: UpdateStyleOptions = {}) { const { opt, em } = this; if (avoidInline(em) && !opt.temporary && !opts.inline) { diff --git a/src/domain_abstract/model/StyleableModel.ts b/src/domain_abstract/model/StyleableModel.ts index a6b450860..811c8466f 100644 --- a/src/domain_abstract/model/StyleableModel.ts +++ b/src/domain_abstract/model/StyleableModel.ts @@ -1,14 +1,16 @@ import { isArray, isString, keys } from 'underscore'; -import { Model, ObjectAny, ObjectHash } from '../../common'; +import { Model, ObjectAny, ObjectHash, SetOptions } from '../../common'; import ParserHtml from '../../parser/model/ParserHtml'; import Selectors from '../../selector_manager/model/Selectors'; import { shallowDiff } from '../../utils/mixins'; export type StyleProps = Record; -export type UpdateStyleOptions = ObjectAny & { +export type UpdateStyleOptions = SetOptions & { partial?: boolean; addStyle?: StyleProps; + inline?: boolean; + noEvent?: boolean; }; const parserHtml = ParserHtml(); diff --git a/src/navigator/index.ts b/src/navigator/index.ts index 13d2c428b..76c7ff471 100644 --- a/src/navigator/index.ts +++ b/src/navigator/index.ts @@ -195,7 +195,7 @@ export default class LayerManager extends Module { style.display = 'none'; } - component.setStyle(style, styleOpts); + component.setStyle(style, styleOpts as any); this.updateLayer(component); this.em.trigger('component:toggled'); // Updates Style Manager #2938 }