@knotx/plugins-selection 0.3.2 → 0.3.3

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,28 @@ 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, _getSelected_dec, _init_dec, _interaction_dec, _registerRules_dec, _selected_dec, _a, _init;
77
- class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.register("selected")], _registerRules_dec = [decorators.register("registerRules")], _interaction_dec = [decorators.inject.interaction()], _init_dec = [decorators.OnInit], _getSelected_dec = [decorators.tool("Get selected items", {})], _clearSelection_dec = [decorators.tool("Clear selection", {})], _destroy_dec = [decorators.OnDestroy], _a) {
76
+ var _destroy_dec, _clearSelection_dec, _select_dec, _getSelected_dec, _init_dec, _interaction_dec, _registerRules_dec, _selected_dec, _a, _init;
77
+ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.register("selected")], _registerRules_dec = [decorators.register("registerRules")], _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.", {
78
+ type: "array",
79
+ items: {
80
+ type: "object",
81
+ properties: {
82
+ type: {
83
+ type: "string",
84
+ description: "item type such as node, group, etc."
85
+ },
86
+ id: {
87
+ type: "string"
88
+ }
89
+ },
90
+ additionalProperties: false,
91
+ required: [
92
+ "id",
93
+ "type"
94
+ ]
95
+ },
96
+ $schema: "http://json-schema.org/draft-07/schema#"
97
+ })], _clearSelection_dec = [decorators.tool("Clear selection", {})], _destroy_dec = [decorators.OnDestroy], _a) {
78
98
  constructor() {
79
99
  super(...arguments);
80
100
  __runInitializers(_init, 5, this);
@@ -114,6 +134,7 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
114
134
  const rule = this.getElementRule(element);
115
135
  if (rule == null ? void 0 : rule.activeClassName) {
116
136
  element.classList.remove(rule.activeClassName);
137
+ element.removeAttribute("data-selected");
117
138
  }
118
139
  });
119
140
  (_a2 = this.selection) == null ? void 0 : _a2.clearSelection(true, true);
@@ -150,6 +171,7 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
150
171
  }
151
172
  if (rule.activeClassName) {
152
173
  element.classList.remove(rule.activeClassName);
174
+ element.removeAttribute("data-selected");
153
175
  }
154
176
  });
155
177
  added.forEach((element) => {
@@ -169,6 +191,7 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
169
191
  }
170
192
  if (rule.activeClassName) {
171
193
  element.classList.add(rule.activeClassName);
194
+ element.setAttribute("data-selected", "true");
172
195
  }
173
196
  });
174
197
  });
@@ -234,6 +257,21 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
234
257
  getSelected() {
235
258
  return this.selected;
236
259
  }
260
+ select(items) {
261
+ var _a2;
262
+ const typeToClassName = /* @__PURE__ */ new Map();
263
+ this.ruleMap.forEach((rule, className) => {
264
+ typeToClassName.set(rule.type, className);
265
+ });
266
+ const selectors = [];
267
+ for (const item of items) {
268
+ const className = typeToClassName.get(item.type);
269
+ if (className) {
270
+ selectors.push(`.${className}[data-${item.type}-id="${item.id}"]`);
271
+ }
272
+ }
273
+ (_a2 = this.selection) == null ? void 0 : _a2.select(selectors);
274
+ }
237
275
  clearSelection() {
238
276
  var _a2;
239
277
  (_a2 = this.selection) == null ? void 0 : _a2.clearSelection(true, false);
@@ -247,6 +285,7 @@ class Selection extends (_a = core.BasePlugin, _selected_dec = [decorators.regis
247
285
  _init = __decoratorStart(_a);
248
286
  __decorateElement(_init, 1, "init", _init_dec, Selection);
249
287
  __decorateElement(_init, 1, "getSelected", _getSelected_dec, Selection);
288
+ __decorateElement(_init, 1, "select", _select_dec, Selection);
250
289
  __decorateElement(_init, 1, "clearSelection", _clearSelection_dec, Selection);
251
290
  __decorateElement(_init, 1, "destroy", _destroy_dec, Selection);
252
291
  __decorateElement(_init, 5, "selected", _selected_dec, Selection);
package/dist/index.d.cts CHANGED
@@ -13,6 +13,7 @@ declare module '@knotx/core' {
13
13
  }
14
14
  interface PluginTools {
15
15
  selection: {
16
+ select: (items: SelectionSelectedItem[]) => void;
16
17
  getSelected: () => SelectionSelectedItem[];
17
18
  clearSelection: () => void;
18
19
  };
@@ -81,6 +82,7 @@ declare class Selection extends BasePlugin<'selection', SelectionConfig> {
81
82
  private getElementRule;
82
83
  private updateSelected;
83
84
  getSelected(): SelectionSelectedItem[];
85
+ select(items: SelectionSelectedItem[]): void;
84
86
  clearSelection(): void;
85
87
  destroy(): void;
86
88
  }
package/dist/index.d.mts CHANGED
@@ -13,6 +13,7 @@ declare module '@knotx/core' {
13
13
  }
14
14
  interface PluginTools {
15
15
  selection: {
16
+ select: (items: SelectionSelectedItem[]) => void;
16
17
  getSelected: () => SelectionSelectedItem[];
17
18
  clearSelection: () => void;
18
19
  };
@@ -81,6 +82,7 @@ declare class Selection extends BasePlugin<'selection', SelectionConfig> {
81
82
  private getElementRule;
82
83
  private updateSelected;
83
84
  getSelected(): SelectionSelectedItem[];
85
+ select(items: SelectionSelectedItem[]): void;
84
86
  clearSelection(): void;
85
87
  destroy(): void;
86
88
  }
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ declare module '@knotx/core' {
13
13
  }
14
14
  interface PluginTools {
15
15
  selection: {
16
+ select: (items: SelectionSelectedItem[]) => void;
16
17
  getSelected: () => SelectionSelectedItem[];
17
18
  clearSelection: () => void;
18
19
  };
@@ -81,6 +82,7 @@ declare class Selection extends BasePlugin<'selection', SelectionConfig> {
81
82
  private getElementRule;
82
83
  private updateSelected;
83
84
  getSelected(): SelectionSelectedItem[];
85
+ select(items: SelectionSelectedItem[]): void;
84
86
  clearSelection(): void;
85
87
  destroy(): void;
86
88
  }
package/dist/index.js CHANGED
@@ -67,8 +67,28 @@ 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, _getSelected_dec, _init_dec, _interaction_dec, _registerRules_dec, _selected_dec, _a, _init;
71
- class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")], _registerRules_dec = [register("registerRules")], _interaction_dec = [inject.interaction()], _init_dec = [OnInit], _getSelected_dec = [tool("Get selected items", {})], _clearSelection_dec = [tool("Clear selection", {})], _destroy_dec = [OnDestroy], _a) {
70
+ var _destroy_dec, _clearSelection_dec, _select_dec, _getSelected_dec, _init_dec, _interaction_dec, _registerRules_dec, _selected_dec, _a, _init;
71
+ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")], _registerRules_dec = [register("registerRules")], _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.", {
72
+ type: "array",
73
+ items: {
74
+ type: "object",
75
+ properties: {
76
+ type: {
77
+ type: "string",
78
+ description: "item type such as node, group, etc."
79
+ },
80
+ id: {
81
+ type: "string"
82
+ }
83
+ },
84
+ additionalProperties: false,
85
+ required: [
86
+ "id",
87
+ "type"
88
+ ]
89
+ },
90
+ $schema: "http://json-schema.org/draft-07/schema#"
91
+ })], _clearSelection_dec = [tool("Clear selection", {})], _destroy_dec = [OnDestroy], _a) {
72
92
  constructor() {
73
93
  super(...arguments);
74
94
  __runInitializers(_init, 5, this);
@@ -108,6 +128,7 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
108
128
  const rule = this.getElementRule(element);
109
129
  if (rule == null ? void 0 : rule.activeClassName) {
110
130
  element.classList.remove(rule.activeClassName);
131
+ element.removeAttribute("data-selected");
111
132
  }
112
133
  });
113
134
  (_a2 = this.selection) == null ? void 0 : _a2.clearSelection(true, true);
@@ -144,6 +165,7 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
144
165
  }
145
166
  if (rule.activeClassName) {
146
167
  element.classList.remove(rule.activeClassName);
168
+ element.removeAttribute("data-selected");
147
169
  }
148
170
  });
149
171
  added.forEach((element) => {
@@ -163,6 +185,7 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
163
185
  }
164
186
  if (rule.activeClassName) {
165
187
  element.classList.add(rule.activeClassName);
188
+ element.setAttribute("data-selected", "true");
166
189
  }
167
190
  });
168
191
  });
@@ -228,6 +251,21 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
228
251
  getSelected() {
229
252
  return this.selected;
230
253
  }
254
+ select(items) {
255
+ var _a2;
256
+ const typeToClassName = /* @__PURE__ */ new Map();
257
+ this.ruleMap.forEach((rule, className) => {
258
+ typeToClassName.set(rule.type, className);
259
+ });
260
+ const selectors = [];
261
+ for (const item of items) {
262
+ const className = typeToClassName.get(item.type);
263
+ if (className) {
264
+ selectors.push(`.${className}[data-${item.type}-id="${item.id}"]`);
265
+ }
266
+ }
267
+ (_a2 = this.selection) == null ? void 0 : _a2.select(selectors);
268
+ }
231
269
  clearSelection() {
232
270
  var _a2;
233
271
  (_a2 = this.selection) == null ? void 0 : _a2.clearSelection(true, false);
@@ -241,6 +279,7 @@ class Selection extends (_a = BasePlugin, _selected_dec = [register("selected")]
241
279
  _init = __decoratorStart(_a);
242
280
  __decorateElement(_init, 1, "init", _init_dec, Selection);
243
281
  __decorateElement(_init, 1, "getSelected", _getSelected_dec, Selection);
282
+ __decorateElement(_init, 1, "select", _select_dec, Selection);
244
283
  __decorateElement(_init, 1, "clearSelection", _clearSelection_dec, Selection);
245
284
  __decorateElement(_init, 1, "destroy", _destroy_dec, Selection);
246
285
  __decorateElement(_init, 5, "selected", _selected_dec, Selection);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knotx/plugins-selection",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "Selection Plugin for Knotx",
5
5
  "author": "boenfu",
6
6
  "license": "MIT",
@@ -30,13 +30,13 @@
30
30
  "dependencies": {
31
31
  "@viselect/vanilla": "^3.9.0",
32
32
  "rxjs": "^7.8.1",
33
- "@knotx/core": "0.3.2",
34
- "@knotx/decorators": "0.3.2"
33
+ "@knotx/core": "0.3.3",
34
+ "@knotx/decorators": "0.3.3"
35
35
  },
36
36
  "devDependencies": {
37
- "@knotx/build-config": "0.3.2",
38
- "@knotx/eslint-config": "0.3.2",
39
- "@knotx/typescript-config": "0.3.2"
37
+ "@knotx/build-config": "0.3.3",
38
+ "@knotx/eslint-config": "0.3.3",
39
+ "@knotx/typescript-config": "0.3.3"
40
40
  },
41
41
  "scripts": {
42
42
  "build": "unbuild",