MCPcopy
hub / github.com/GrapesJS/grapesjs / add

Method add

packages/core/src/dom_components/model/Components.ts:322–347  ·  view source on GitHub ↗
(models: unknown, opt: AddComponentOptions = {})

Source from the content-addressed store, hash-verified

320 add(models: ComponentAddType[], opt?: AddComponentOptions): Component[];
321 add(models: ComponentAdd, opt?: AddComponentOptions): Component | Component[];
322 add(models: unknown, opt: AddComponentOptions = {}): unknown {
323 if (models == undefined) return;
324
325 opt.keepIds = [...(opt.keepIds || []), ...getComponentIds(opt.previousModels)];
326
327 if (isString(models)) {
328 models = this.parseString(models, opt)!;
329 } else if (isArray(models)) {
330 // Avoid "Cannot assign to read only property '0' of object '[object Array]'
331 models = [...models];
332 (models as any).forEach((item: string, index: number) => {
333 if (isString(item)) {
334 const nodes = this.parseString(item, opt);
335 (models as any)[index] = isArray(nodes) && !nodes.length ? null : nodes;
336 }
337 });
338 }
339
340 const processedModels = (isArray(models) ? models : [models])
341 .filter(Boolean)
342 .map((model: any) => this.processDef(model));
343
344 models = isArray(models) ? flatten(processedModels as any, 1) : processedModels[0];
345
346 return super.add(models as any, opt);
347 }
348
349 /**
350 * Process component definition.

Callers 15

initComponentsMethod · 0.95
postLoadMethod · 0.45
loadMethod · 0.45
addComponentMethod · 0.45
addTypeMethod · 0.45
addSymbolMethod · 0.45
updateSymbolCompsFunction · 0.45
cloneCssRulesMethod · 0.45
constructorMethod · 0.45
__postAddMethod · 0.45
replaceWithMethod · 0.45
addClassMethod · 0.45

Calls 4

parseStringMethod · 0.95
processDefMethod · 0.95
getComponentIdsFunction · 0.85
isStringFunction · 0.50

Tested by

no test coverage detected