Browse Source

TS PasteComponent

ts-style-manager
Artur Arseniev 4 years ago
parent
commit
87ff5c52a0
  1. 10
      src/commands/view/PasteComponent.ts

10
src/commands/view/PasteComponent.js → src/commands/view/PasteComponent.ts

@ -1,9 +1,11 @@
import { isArray, contains } from 'underscore';
import Component from '../../dom_components/model/Component';
import { CustomCommand } from './CommandAbstract';
export default {
run(ed, s, opts = {}) {
const em = ed.getModel();
const clp = em.get('clipboard');
const clp: Component[] = em.get('clipboard');
const lastSelected = ed.getSelected();
if (clp && lastSelected) {
@ -16,11 +18,13 @@ export default {
const addOpts = { at, action: opts.action || 'paste-component' };
if (contains(clp, selected) && selected.get('copyable')) {
// @ts-ignore
added = collection.add(selected.clone(), addOpts);
} else {
const copyable = clp.filter(cop => cop.get('copyable'));
const pasteable = copyable.filter(cop => ed.Components.canMove(selected.parent(), cop).result);
const pasteable = copyable.filter(cop => ed.Components.canMove(selected.parent()!, cop).result);
added = collection.add(
// @ts-ignore
pasteable.map(cop => cop.clone()),
addOpts
);
@ -33,4 +37,4 @@ export default {
lastSelected.emitUpdate();
}
},
};
} as CustomCommand;
Loading…
Cancel
Save