Browse Source

Merge branch 'dev' into feat/cli-mono-repo

feat/cli-mono-repo
danstarns 2 years ago
parent
commit
e9cad9a897
  1. 2
      .github/workflows/quality.yml
  2. 6
      packages/core/src/commands/view/SelectComponent.ts
  3. 8
      packages/core/src/dom_components/types.ts
  4. 5
      packages/core/src/editor/model/Editor.ts
  5. 9
      packages/core/src/utils/Sorter.ts

2
.github/workflows/quality.yml

@ -15,8 +15,6 @@ jobs:
run: pnpm lint
- name: Format Check
run: pnpm format:check
- name: Build
run: pnpm build
- name: Test
run: pnpm test
- name: Docs

6
packages/core/src/commands/view/SelectComponent.ts

@ -326,8 +326,10 @@ export default {
*/
select(model: Component, event = {}) {
if (!model) return;
this.editor.select(model, { event, useValid: true });
this.initResize(model);
const { em } = this;
em.setSelected(model, { event, useValid: true });
// Ensure we're passing the proper selected component #6096
this.initResize(em.getSelected());
},
/**

8
packages/core/src/dom_components/types.ts

@ -52,6 +52,14 @@ export enum ComponentsEvents {
update = 'component:update',
updateInside = 'component:update-inside',
/**
* @event `component:select` Component selected.
* @example
* editor.on('component:select', (component) => { ... });
*/
select = 'component:select',
selectBefore = 'component:select:before',
/**
* @event `symbol:main:add` Added new main symbol.
* @example

5
packages/core/src/editor/model/Editor.ts

@ -43,6 +43,7 @@ import { AddComponentsOption, ComponentAdd, DragMode } from '../../dom_component
import ComponentWrapper from '../../dom_components/model/ComponentWrapper';
import { CanvasSpotBuiltInTypes } from '../../canvas/model/CanvasSpot';
import DataSourceManager from '../../data_sources';
import { ComponentsEvents } from '../../dom_components/types';
Backbone.$ = $;
@ -507,7 +508,7 @@ export default class EditorModel extends Model {
models.forEach((model) => {
if (model) {
this.trigger('component:select:before', model, opts);
this.trigger(ComponentsEvents.selectBefore, model, opts);
// Check for valid selectable
if (!model.get('selectable') || opts.abort) {
@ -592,7 +593,7 @@ export default class EditorModel extends Model {
toDeselect.forEach((cmp) => this.removeSelected(cmp, opts));
selected.addComponent(model, opts);
this.trigger('component:select', model, opts);
this.trigger(ComponentsEvents.select, model, opts);
this.Canvas.addSpot({
type: CanvasSpotBuiltInTypes.Select,
component: model,

9
packages/core/src/utils/Sorter.ts

@ -697,7 +697,14 @@ export default class Sorter extends View {
return result;
}
const index = pos ? (pos.method === 'after' ? pos.indexEl + 1 : pos.indexEl) : trgModel.components().length;
let length = -1;
const isCollection = trgModel instanceof Collection;
if (isFunction(trgModel.components)) {
length = trgModel.components().length;
} else if (isCollection) {
length = trgModel.models.length;
}
const index = pos ? (pos.method === 'after' ? pos.indexEl + 1 : pos.indexEl) : length;
// Check if the source is draggable in target
let draggable = srcModel.get('draggable');

Loading…
Cancel
Save