@knotx/plugins-selection 0.3.4 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -73,8 +73,8 @@ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use
73
73
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
74
74
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
75
75
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
76
- var _destroy_dec, _clearSelection_dec, _select_dec, _getSelected_dec, _init_dec, _interaction_dec, _setElementOverlap_dec, _setClearSelectionBeforeStart_dec, _clearSelectionBeforeStart_dec, _setRuleEnabled_dec, _registerRules_dec, _selected_dec, _a, _init;
77
- class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.register("selected")], _registerRules_dec = [decorators.register("registerRules")], _setRuleEnabled_dec = [decorators.register("setRuleEnabled")], _clearSelectionBeforeStart_dec = [decorators.observable()], _setClearSelectionBeforeStart_dec = [decorators.register("setClearSelectionBeforeStart")], _setElementOverlap_dec = [decorators.register("setElementOverlap")], _interaction_dec = [decorators.inject.interaction()], _init_dec = [decorators.OnInit], _getSelected_dec = [decorators.tool("Get selected items", {})], _select_dec = [decorators.tool("Items that match the registered rules will be selected, manifested as the item showing a selected style.", {
76
+ var _destroy_dec, _clearSelection_dec, _select_dec, _getSelected_dec, _init_dec, _edgeScroll_dec, _interaction_dec, _setElementOverlap_dec, _setClearSelectionBeforeStart_dec, _clearSelectionBeforeStart_dec, _setRuleEnabled_dec, _registerRules_dec, _selected_dec, _a, _init;
77
+ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.register("selected")], _registerRules_dec = [decorators.register("registerRules")], _setRuleEnabled_dec = [decorators.register("setRuleEnabled")], _clearSelectionBeforeStart_dec = [decorators.observable()], _setClearSelectionBeforeStart_dec = [decorators.register("setClearSelectionBeforeStart")], _setElementOverlap_dec = [decorators.register("setElementOverlap")], _interaction_dec = [decorators.inject.interaction()], _edgeScroll_dec = [decorators.inject.canvas.edgeScroll()], _init_dec = [decorators.OnInit], _getSelected_dec = [decorators.tool("Get selected items", {})], _select_dec = [decorators.tool("Items that match the registered rules will be selected, manifested as the item showing a selected style.", {
78
78
  type: "array",
79
79
  items: {
80
80
  type: "object",
@@ -105,6 +105,7 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
105
105
  __publicField(this, "ruleMap", /* @__PURE__ */ new Map());
106
106
  __publicField(this, "enableDrag", true);
107
107
  __publicField(this, "isDragging", false);
108
+ __publicField(this, "enableEdgeScroll", false);
108
109
  __publicField(this, "updateFrameId");
109
110
  __publicField(this, "selected", __runInitializers(_init, 8, this, [])), __runInitializers(_init, 11, this);
110
111
  __publicField(this, "registerRules", __runInitializers(_init, 12, this, (rules) => {
@@ -136,6 +137,7 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
136
137
  }
137
138
  })), __runInitializers(_init, 31, this);
138
139
  __publicField(this, "interaction", __runInitializers(_init, 32, this)), __runInitializers(_init, 35, this);
140
+ __publicField(this, "edgeScroll", __runInitializers(_init, 36, this)), __runInitializers(_init, 39, this);
139
141
  __publicField(this, "onBeforeStart", (_) => {
140
142
  });
141
143
  __publicField(this, "onBeforeDrag", () => {
@@ -145,6 +147,9 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
145
147
  __publicField(this, "onStart", ({ event, store }) => {
146
148
  var _a2;
147
149
  this.interaction.start(this.pluginId, "select", core.InteractionPriority.MarqueeSelection);
150
+ if (this.enableEdgeScroll && this.edgeScroll) {
151
+ this.edgeScroll.setConfig({ enabled: true });
152
+ }
148
153
  if (!(event == null ? void 0 : event.ctrlKey) && !(event == null ? void 0 : event.metaKey) && !(event == null ? void 0 : event.shiftKey)) {
149
154
  if (this.clearSelectionBeforeStart) {
150
155
  store.stored.forEach((element) => {
@@ -215,6 +220,9 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
215
220
  });
216
221
  __publicField(this, "onStop", ({ event }) => {
217
222
  this.interaction.end(this.pluginId, "select");
223
+ if (this.enableEdgeScroll && this.edgeScroll) {
224
+ this.edgeScroll.setConfig({ enabled: false });
225
+ }
218
226
  if (event) {
219
227
  if (this.isDragging) {
220
228
  this.isDragging = false;
@@ -253,6 +261,9 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
253
261
  if (config.enableDrag !== void 0) {
254
262
  this.enableDrag = config.enableDrag;
255
263
  }
264
+ if (config.enableEdgeScroll !== void 0) {
265
+ this.enableEdgeScroll = config.enableEdgeScroll;
266
+ }
256
267
  queueMicrotask(() => this.createSelection());
257
268
  }
258
269
  createSelection() {
@@ -261,7 +272,12 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
261
272
  // container,
262
273
  boundaries: [container],
263
274
  selectionAreaClass: this.selectionAreaClassName,
264
- selectables: Array.from(new Set(Array.from(this.ruleMap.values()).map(({ className }) => `.${className}`)))
275
+ selectables: Array.from(new Set(Array.from(this.ruleMap.values()).map(({ className }) => `.${className}`))),
276
+ behaviour: {
277
+ scrolling: {
278
+ manualSpeed: 0
279
+ }
280
+ }
265
281
  }).on("beforedrag", this.onBeforeDrag).on("beforestart", this.onBeforeStart).on("start", this.onStart).on("move", this.onMove).on("stop", this.onStop);
266
282
  }
267
283
  getElementRule(element) {
@@ -309,6 +325,7 @@ __decorateElement(_init, 5, "clearSelectionBeforeStart", _clearSelectionBeforeSt
309
325
  __decorateElement(_init, 5, "setClearSelectionBeforeStart", _setClearSelectionBeforeStart_dec, Selection);
310
326
  __decorateElement(_init, 5, "setElementOverlap", _setElementOverlap_dec, Selection);
311
327
  __decorateElement(_init, 5, "interaction", _interaction_dec, Selection);
328
+ __decorateElement(_init, 5, "edgeScroll", _edgeScroll_dec, Selection);
312
329
  __decoratorMetadata(_init, Selection);
313
330
 
314
331
  exports.Selection = Selection;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
+ import { BasePlugin, PluginData } from '@knotx/core';
1
2
  import { OverlapMode } from '@viselect/vanilla';
2
- import { BasePlugin } from '@knotx/core';
3
3
 
4
4
  interface SelectionSelectedItem {
5
5
  type: string;
@@ -89,6 +89,11 @@ interface SelectionConfig {
89
89
  * default: bemSelector('canvas', 'wrapper')
90
90
  */
91
91
  container?: string;
92
+ /**
93
+ * 是否启用边缘滚动
94
+ * default: false
95
+ */
96
+ enableEdgeScroll?: boolean;
92
97
  }
93
98
  declare class Selection extends BasePlugin<'selection', SelectionConfig> {
94
99
  name: "selection";
@@ -98,6 +103,7 @@ declare class Selection extends BasePlugin<'selection', SelectionConfig> {
98
103
  private ruleMap;
99
104
  private enableDrag;
100
105
  private isDragging;
106
+ private enableEdgeScroll;
101
107
  private updateFrameId;
102
108
  selected: SelectionSelectedItem[];
103
109
  registerRules: (rules: SelectionRule[]) => () => void;
@@ -106,6 +112,7 @@ declare class Selection extends BasePlugin<'selection', SelectionConfig> {
106
112
  setClearSelectionBeforeStart: (clearSelectionBeforeStart: boolean) => void;
107
113
  setElementOverlap: (overlap: OverlapMode) => void;
108
114
  private interaction;
115
+ edgeScroll: PluginData['canvas']['edgeScroll'];
109
116
  init(config?: SelectionConfig): void;
110
117
  private createSelection;
111
118
  private onBeforeStart;
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
+ import { BasePlugin, PluginData } from '@knotx/core';
1
2
  import { OverlapMode } from '@viselect/vanilla';
2
- import { BasePlugin } from '@knotx/core';
3
3
 
4
4
  interface SelectionSelectedItem {
5
5
  type: string;
@@ -89,6 +89,11 @@ interface SelectionConfig {
89
89
  * default: bemSelector('canvas', 'wrapper')
90
90
  */
91
91
  container?: string;
92
+ /**
93
+ * 是否启用边缘滚动
94
+ * default: false
95
+ */
96
+ enableEdgeScroll?: boolean;
92
97
  }
93
98
  declare class Selection extends BasePlugin<'selection', SelectionConfig> {
94
99
  name: "selection";
@@ -98,6 +103,7 @@ declare class Selection extends BasePlugin<'selection', SelectionConfig> {
98
103
  private ruleMap;
99
104
  private enableDrag;
100
105
  private isDragging;
106
+ private enableEdgeScroll;
101
107
  private updateFrameId;
102
108
  selected: SelectionSelectedItem[];
103
109
  registerRules: (rules: SelectionRule[]) => () => void;
@@ -106,6 +112,7 @@ declare class Selection extends BasePlugin<'selection', SelectionConfig> {
106
112
  setClearSelectionBeforeStart: (clearSelectionBeforeStart: boolean) => void;
107
113
  setElementOverlap: (overlap: OverlapMode) => void;
108
114
  private interaction;
115
+ edgeScroll: PluginData['canvas']['edgeScroll'];
109
116
  init(config?: SelectionConfig): void;
110
117
  private createSelection;
111
118
  private onBeforeStart;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
+ import { BasePlugin, PluginData } from '@knotx/core';
1
2
  import { OverlapMode } from '@viselect/vanilla';
2
- import { BasePlugin } from '@knotx/core';
3
3
 
4
4
  interface SelectionSelectedItem {
5
5
  type: string;
@@ -89,6 +89,11 @@ interface SelectionConfig {
89
89
  * default: bemSelector('canvas', 'wrapper')
90
90
  */
91
91
  container?: string;
92
+ /**
93
+ * 是否启用边缘滚动
94
+ * default: false
95
+ */
96
+ enableEdgeScroll?: boolean;
92
97
  }
93
98
  declare class Selection extends BasePlugin<'selection', SelectionConfig> {
94
99
  name: "selection";
@@ -98,6 +103,7 @@ declare class Selection extends BasePlugin<'selection', SelectionConfig> {
98
103
  private ruleMap;
99
104
  private enableDrag;
100
105
  private isDragging;
106
+ private enableEdgeScroll;
101
107
  private updateFrameId;
102
108
  selected: SelectionSelectedItem[];
103
109
  registerRules: (rules: SelectionRule[]) => () => void;
@@ -106,6 +112,7 @@ declare class Selection extends BasePlugin<'selection', SelectionConfig> {
106
112
  setClearSelectionBeforeStart: (clearSelectionBeforeStart: boolean) => void;
107
113
  setElementOverlap: (overlap: OverlapMode) => void;
108
114
  private interaction;
115
+ edgeScroll: PluginData['canvas']['edgeScroll'];
109
116
  init(config?: SelectionConfig): void;
110
117
  private createSelection;
111
118
  private onBeforeStart;
package/dist/index.js CHANGED
@@ -67,8 +67,8 @@ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use
67
67
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
68
68
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
69
69
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
70
- var _destroy_dec, _clearSelection_dec, _select_dec, _getSelected_dec, _init_dec, _interaction_dec, _setElementOverlap_dec, _setClearSelectionBeforeStart_dec, _clearSelectionBeforeStart_dec, _setRuleEnabled_dec, _registerRules_dec, _selected_dec, _a, _init;
71
- class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")], _registerRules_dec = [register("registerRules")], _setRuleEnabled_dec = [register("setRuleEnabled")], _clearSelectionBeforeStart_dec = [observable()], _setClearSelectionBeforeStart_dec = [register("setClearSelectionBeforeStart")], _setElementOverlap_dec = [register("setElementOverlap")], _interaction_dec = [inject.interaction()], _init_dec = [OnInit], _getSelected_dec = [tool("Get selected items", {})], _select_dec = [tool("Items that match the registered rules will be selected, manifested as the item showing a selected style.", {
70
+ var _destroy_dec, _clearSelection_dec, _select_dec, _getSelected_dec, _init_dec, _edgeScroll_dec, _interaction_dec, _setElementOverlap_dec, _setClearSelectionBeforeStart_dec, _clearSelectionBeforeStart_dec, _setRuleEnabled_dec, _registerRules_dec, _selected_dec, _a, _init;
71
+ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")], _registerRules_dec = [register("registerRules")], _setRuleEnabled_dec = [register("setRuleEnabled")], _clearSelectionBeforeStart_dec = [observable()], _setClearSelectionBeforeStart_dec = [register("setClearSelectionBeforeStart")], _setElementOverlap_dec = [register("setElementOverlap")], _interaction_dec = [inject.interaction()], _edgeScroll_dec = [inject.canvas.edgeScroll()], _init_dec = [OnInit], _getSelected_dec = [tool("Get selected items", {})], _select_dec = [tool("Items that match the registered rules will be selected, manifested as the item showing a selected style.", {
72
72
  type: "array",
73
73
  items: {
74
74
  type: "object",
@@ -99,6 +99,7 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
99
99
  __publicField(this, "ruleMap", /* @__PURE__ */ new Map());
100
100
  __publicField(this, "enableDrag", true);
101
101
  __publicField(this, "isDragging", false);
102
+ __publicField(this, "enableEdgeScroll", false);
102
103
  __publicField(this, "updateFrameId");
103
104
  __publicField(this, "selected", __runInitializers(_init, 8, this, [])), __runInitializers(_init, 11, this);
104
105
  __publicField(this, "registerRules", __runInitializers(_init, 12, this, (rules) => {
@@ -130,6 +131,7 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
130
131
  }
131
132
  })), __runInitializers(_init, 31, this);
132
133
  __publicField(this, "interaction", __runInitializers(_init, 32, this)), __runInitializers(_init, 35, this);
134
+ __publicField(this, "edgeScroll", __runInitializers(_init, 36, this)), __runInitializers(_init, 39, this);
133
135
  __publicField(this, "onBeforeStart", (_) => {
134
136
  });
135
137
  __publicField(this, "onBeforeDrag", () => {
@@ -139,6 +141,9 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
139
141
  __publicField(this, "onStart", ({ event, store }) => {
140
142
  var _a2;
141
143
  this.interaction.start(this.pluginId, "select", InteractionPriority.MarqueeSelection);
144
+ if (this.enableEdgeScroll && this.edgeScroll) {
145
+ this.edgeScroll.setConfig({ enabled: true });
146
+ }
142
147
  if (!(event == null ? void 0 : event.ctrlKey) && !(event == null ? void 0 : event.metaKey) && !(event == null ? void 0 : event.shiftKey)) {
143
148
  if (this.clearSelectionBeforeStart) {
144
149
  store.stored.forEach((element) => {
@@ -209,6 +214,9 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
209
214
  });
210
215
  __publicField(this, "onStop", ({ event }) => {
211
216
  this.interaction.end(this.pluginId, "select");
217
+ if (this.enableEdgeScroll && this.edgeScroll) {
218
+ this.edgeScroll.setConfig({ enabled: false });
219
+ }
212
220
  if (event) {
213
221
  if (this.isDragging) {
214
222
  this.isDragging = false;
@@ -247,6 +255,9 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
247
255
  if (config.enableDrag !== void 0) {
248
256
  this.enableDrag = config.enableDrag;
249
257
  }
258
+ if (config.enableEdgeScroll !== void 0) {
259
+ this.enableEdgeScroll = config.enableEdgeScroll;
260
+ }
250
261
  queueMicrotask(() => this.createSelection());
251
262
  }
252
263
  createSelection() {
@@ -255,7 +266,12 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
255
266
  // container,
256
267
  boundaries: [container],
257
268
  selectionAreaClass: this.selectionAreaClassName,
258
- selectables: Array.from(new Set(Array.from(this.ruleMap.values()).map(({ className }) => `.${className}`)))
269
+ selectables: Array.from(new Set(Array.from(this.ruleMap.values()).map(({ className }) => `.${className}`))),
270
+ behaviour: {
271
+ scrolling: {
272
+ manualSpeed: 0
273
+ }
274
+ }
259
275
  }).on("beforedrag", this.onBeforeDrag).on("beforestart", this.onBeforeStart).on("start", this.onStart).on("move", this.onMove).on("stop", this.onStop);
260
276
  }
261
277
  getElementRule(element) {
@@ -303,6 +319,7 @@ __decorateElement(_init, 5, "clearSelectionBeforeStart", _clearSelectionBeforeSt
303
319
  __decorateElement(_init, 5, "setClearSelectionBeforeStart", _setClearSelectionBeforeStart_dec, Selection);
304
320
  __decorateElement(_init, 5, "setElementOverlap", _setElementOverlap_dec, Selection);
305
321
  __decorateElement(_init, 5, "interaction", _interaction_dec, Selection);
322
+ __decorateElement(_init, 5, "edgeScroll", _edgeScroll_dec, Selection);
306
323
  __decoratorMetadata(_init, Selection);
307
324
 
308
325
  export { Selection };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knotx/plugins-selection",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "Selection Plugin for Knotx",
5
5
  "author": "boenfu",
6
6
  "license": "MIT",
@@ -27,16 +27,20 @@
27
27
  "files": [
28
28
  "dist"
29
29
  ],
30
+ "peerDependencies": {
31
+ "@knotx/plugins-canvas": "0.3.5"
32
+ },
30
33
  "dependencies": {
31
34
  "@viselect/vanilla": "^3.9.0",
32
35
  "rxjs": "^7.8.1",
33
- "@knotx/core": "0.3.4",
34
- "@knotx/decorators": "0.3.4"
36
+ "@knotx/core": "0.3.5",
37
+ "@knotx/decorators": "0.3.5"
35
38
  },
36
39
  "devDependencies": {
37
- "@knotx/build-config": "0.3.4",
38
- "@knotx/eslint-config": "0.3.4",
39
- "@knotx/typescript-config": "0.3.4"
40
+ "@knotx/build-config": "0.3.5",
41
+ "@knotx/eslint-config": "0.3.5",
42
+ "@knotx/plugins-canvas": "0.3.5",
43
+ "@knotx/typescript-config": "0.3.5"
40
44
  },
41
45
  "scripts": {
42
46
  "build": "unbuild",