Browse Source

Update Component.replaceWith

pull/5524/head
Artur Arseniev 3 years ago
parent
commit
ae1107a0a1
  1. 12
      src/dom_components/model/Component.ts

12
src/dom_components/model/Component.ts

@ -503,16 +503,18 @@ export default class Component extends StyleableModel<ComponentProperties> {
/**
* Replace a component with another one
* @param {String|Component} el Component or HTML string
* @return {Component|Array<Component>} New added component/s
* @param {Object} [opts={}] Options for the append action
* @returns {Array<Component>} New replaced components
* @example
* component.replaceWith('<div>Some new content</div>');
* // -> Component
* const result = component.replaceWith('<div>Some new content</div>');
* // result -> [Component]
*/
replaceWith(el: Component | String) {
replaceWith<C extends Component = Component>(el: ComponentAdd, opts: AddOptions = {}): C[] {
const coll = this.collection;
const at = coll.indexOf(this);
coll.remove(this);
return coll.add(el, { at });
const result = coll.add(el, { ...opts, at });
return isArray(result) ? result : [result];
}
/**

Loading…
Cancel
Save