Browse Source

format

pull/6351/head
mohamedsalem401 1 year ago
parent
commit
2ac49bb1f9
  1. 12
      packages/core/src/common/index.ts
  2. 20
      packages/core/src/dom_components/model/Component.ts
  3. 10
      packages/core/src/dom_components/model/ComponentDynamicValueListener.ts
  4. 22
      packages/core/test/specs/data_sources/model/conditional_variables/ConditionalTraits.ts

12
packages/core/src/common/index.ts

@ -2,7 +2,7 @@ import Backbone from 'backbone';
import { HTMLParserOptions } from '../parser/config/config'; import { HTMLParserOptions } from '../parser/config/config';
export { default as $ } from '../utils/cash-dom'; export { default as $ } from '../utils/cash-dom';
interface NOOP { } interface NOOP {}
export const collectionEvents = 'add remove reset change'; export const collectionEvents = 'add remove reset change';
@ -62,7 +62,7 @@ export interface Dimensions {
width: number; width: number;
} }
export interface BoxRect extends Coordinates, Dimensions { } export interface BoxRect extends Coordinates, Dimensions {}
export type ElementRect = { export type ElementRect = {
top: number; top: number;
@ -77,13 +77,13 @@ export type CombinedModelConstructorOptions<
> = Backbone.ModelConstructorOptions<M> & E; > = Backbone.ModelConstructorOptions<M> & E;
export interface ViewOptions<TModel extends Model | undefined = Model, TElement extends Element = HTMLElement> export interface ViewOptions<TModel extends Model | undefined = Model, TElement extends Element = HTMLElement>
extends Backbone.ViewOptions<TModel, TElement> { } extends Backbone.ViewOptions<TModel, TElement> {}
export class Model<T extends ObjectHash = any, S = SetOptions, E = any> extends Backbone.Model<T, S, E> { } export class Model<T extends ObjectHash = any, S = SetOptions, E = any> extends Backbone.Model<T, S, E> {}
export class Collection<T extends Model = Model> extends Backbone.Collection<T> { } export class Collection<T extends Model = Model> extends Backbone.Collection<T> {}
export class View<T extends Model | undefined = Model, E extends Element = HTMLElement> extends Backbone.View<T, E> { } export class View<T extends Model | undefined = Model, E extends Element = HTMLElement> extends Backbone.View<T, E> {}
export type PickMatching<T, V> = { [K in keyof T as T[K] extends V ? K : never]: T[K] }; export type PickMatching<T, V> = { [K in keyof T as T[K] extends V ? K : never]: T[K] };

20
packages/core/src/dom_components/model/Component.ts

@ -54,12 +54,12 @@ import {
import { ComponentDynamicValueListener } from './ComponentDynamicValueListener'; import { ComponentDynamicValueListener } from './ComponentDynamicValueListener';
import { DynamicValueWatcher } from './DynamicValueWatcher'; import { DynamicValueWatcher } from './DynamicValueWatcher';
export interface IComponent extends ExtractMethods<Component> { } export interface IComponent extends ExtractMethods<Component> {}
export interface DynamicWatchersOptions { export interface DynamicWatchersOptions {
skipWatcherUpdates?: boolean; skipWatcherUpdates?: boolean;
} }
export interface SetAttrOptions extends SetOptions, UpdateStyleOptions, DynamicWatchersOptions { } export interface SetAttrOptions extends SetOptions, UpdateStyleOptions, DynamicWatchersOptions {}
export interface ComponentSetOptions extends SetOptions, DynamicWatchersOptions { } export interface ComponentSetOptions extends SetOptions, DynamicWatchersOptions {}
const escapeRegExp = (str: string) => { const escapeRegExp = (str: string) => {
return str.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'); return str.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');
@ -226,12 +226,12 @@ export default class Component extends StyleableModel<ComponentProperties> {
return this.frame?.getPage(); return this.frame?.getPage();
} }
preInit() { } preInit() {}
/** /**
* Hook method, called once the model is created * Hook method, called once the model is created
*/ */
init() { } init() {}
/** /**
* Hook method, called when the model has been updated (eg. updated some model's property) * Hook method, called when the model has been updated (eg. updated some model's property)
@ -239,12 +239,12 @@ export default class Component extends StyleableModel<ComponentProperties> {
* @param {*} value Property value, if triggered after some property update * @param {*} value Property value, if triggered after some property update
* @param {*} previous Property previous value, if triggered after some property update * @param {*} previous Property previous value, if triggered after some property update
*/ */
updated(property: string, value: any, previous: any) { } updated(property: string, value: any, previous: any) {}
/** /**
* Hook method, called once the model has been removed * Hook method, called once the model has been removed
*/ */
removed() { } removed() {}
em!: EditorModel; em!: EditorModel;
opt!: ComponentOptions; opt!: ComponentOptions;
@ -1575,14 +1575,14 @@ export default class Component extends StyleableModel<ComponentProperties> {
const dynamicTraitsObj = this.componentDVListener.getTraitsDefs(); const dynamicTraitsObj = this.componentDVListener.getTraitsDefs();
const keys = Object.keys(dynamicTraitsObj); const keys = Object.keys(dynamicTraitsObj);
const serializedTraits: ObjectAny[] = []; const serializedTraits: ObjectAny[] = [];
keys.forEach(key => { keys.forEach((key) => {
const traitJSON = this.getTrait(key).toJSON(); const traitJSON = this.getTrait(key).toJSON();
const traitValue = dynamicTraitsObj[key]; const traitValue = dynamicTraitsObj[key];
serializedTraits.push({ serializedTraits.push({
...traitJSON, ...traitJSON,
name: key, name: key,
value: traitValue value: traitValue,
}) });
}); });
if (serializedTraits.length > 0) { if (serializedTraits.length > 0) {
obj[dynamicAttrKey] = serializedTraits; obj[dynamicAttrKey] = serializedTraits;

10
packages/core/src/dom_components/model/ComponentDynamicValueListener.ts

@ -35,20 +35,18 @@ export class ComponentDynamicValueListener {
} }
if (Array.isArray(values[dynamicAttrKey]) && values[dynamicAttrKey].length > 0) { if (Array.isArray(values[dynamicAttrKey]) && values[dynamicAttrKey].length > 0) {
values.traits = values.traits values.traits = values.traits ? [...values[dynamicAttrKey], ...values.traits] : values[dynamicAttrKey];
? [...values[dynamicAttrKey], ...values.traits]
: values[dynamicAttrKey];
} }
if (values.traits) { if (values.traits) {
const evaluatedTraitsValues = DynamicValueWatcher.getStaticValues( const evaluatedTraitsValues = DynamicValueWatcher.getStaticValues(
values.traits.map((trait: any) => trait.value), values.traits.map((trait: any) => trait.value),
em em,
); );
props.traits = values.traits.map((trait: any, index: number) => ({ props.traits = values.traits.map((trait: any, index: number) => ({
...trait, ...trait,
value: evaluatedTraitsValues[index] value: evaluatedTraitsValues[index],
})); }));
} }
@ -80,7 +78,7 @@ export class ComponentDynamicValueListener {
} }
watchTraits(traits: (string | ObjectAny)[]) { watchTraits(traits: (string | ObjectAny)[]) {
const evaluatedTraits: { [key: string]: ObjectAny } = {} const evaluatedTraits: { [key: string]: ObjectAny } = {};
traits?.forEach((trait: any) => { traits?.forEach((trait: any) => {
if (typeof trait === 'string' || !trait.name) { if (typeof trait === 'string' || !trait.name) {
return; return;

22
packages/core/test/specs/data_sources/model/conditional_variables/ConditionalTraits.ts

@ -176,18 +176,20 @@ describe('TraitConditionalVariable', () => {
component: { component: {
components: [ components: [
{ {
[dynamicAttrKey]: [{ [dynamicAttrKey]: [
name: 'dynamicTrait', {
value: { name: 'dynamicTrait',
condition: { value: {
left: 0, condition: {
operator: '>', left: 0,
right: -1, operator: '>',
right: -1,
},
ifTrue: 'Positive',
type: 'conditional-variable',
}, },
ifTrue: 'Positive',
type: 'conditional-variable',
}, },
}], ],
type: 'text', type: 'text',
}, },
], ],

Loading…
Cancel
Save