@alexgyver/component 1.3.5 → 1.3.6

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.
Files changed (3) hide show
  1. package/Component.js +10 -2
  2. package/README.md +11 -11
  3. package/package.json +1 -1
package/Component.js CHANGED
@@ -90,9 +90,9 @@ export class EL {
90
90
  case 'parent': if (val) val.appendChild(el); break;
91
91
  case 'attrs': for (let attr in val) el.setAttribute(attr, val[attr]); break;
92
92
  case 'props': for (let prop in val) el[prop] = val[prop]; break;
93
- case 'child_r': el.replaceChildren(); // fall
93
+ case 'child_r': EL.clear(el); // fall
94
94
  case 'child': addChild(val); break;
95
- case 'children_r': el.replaceChildren(); // fall
95
+ case 'children_r': EL.clear(el); // fall
96
96
  case 'children': for (const obj of val) addChild(obj); break;
97
97
  case 'style':
98
98
  if (typeof val === 'string') el.style.cssText += (val + ';');
@@ -105,6 +105,14 @@ export class EL {
105
105
  return el;
106
106
  }
107
107
 
108
+ /**
109
+ * Удалить все child ноды
110
+ * @param {HTMLElement} el
111
+ */
112
+ static clear(el) {
113
+ while (el.firstChild) el.removeChild(el.lastChild);
114
+ }
115
+
108
116
  /**
109
117
  * Создать массив компонентов из массива объектов конфигурации
110
118
  * @param {array} arr массив объектов конфигурации
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  * @param {string} tag html tag элемента
12
12
  * @param {object} data параметры
13
13
  */
14
- Component(tag, data = {}, svg = false);
14
+ EL(tag, data = {}, svg = false);
15
15
 
16
16
  /**
17
17
  * Создать компонент
@@ -28,14 +28,14 @@ Component(tag, data = {}, svg = false);
28
28
  * push {array} - добавить к указанному массиву
29
29
  * var {string} - создаёт переменную $имя в указанном контексте
30
30
  * events {object} - добавляет addEventListener'ы {event: e => {}}
31
- * children/children_r - массив {DOM, Component, object, html string}. _r - заменить имеющиеся. Без тега tag будет div
32
- * child/child_r - {DOM, Component, object, html string}. _r - заменить имеющиеся. Без тега tag будет div
31
+ * children/children_r - массив {DOM, EL, object, html string}. _r - заменить имеющиеся. Без тега tag будет div
32
+ * child/child_r - {DOM, EL, object, html string}. _r - заменить имеющиеся. Без тега tag будет div
33
33
  * attrs {object} - добавить аттрибуты (через setAttribute)
34
34
  * props {object} - добавить свойства (как el[prop])
35
35
  * also {function} - вызвать с текущим компонентом: also(el) { console.log(el); }
36
36
  * всё остальное будет добавлено как property
37
37
  */
38
- Component.make(tag, data = {});
38
+ EL.make(tag, data = {});
39
39
 
40
40
  /**
41
41
  * Создать теневой компонент от указанного tag, дети подключатся к нему в shadowRoot
@@ -44,7 +44,7 @@ Component.make(tag, data = {});
44
44
  * @param {string} sheet css стили
45
45
  * @returns {Node} host
46
46
  */
47
- Component.makeShadow(host, data = {}, sheet = null);
47
+ EL.makeShadow(host, data = {}, sheet = null);
48
48
 
49
49
  /**
50
50
  * Настроить элемент
@@ -52,14 +52,14 @@ Component.makeShadow(host, data = {}, sheet = null);
52
52
  * @param {object} data параметры
53
53
  * @returns {Node}
54
54
  */
55
- Component.config(el, data);
55
+ EL.config(el, data);
56
56
 
57
57
  /**
58
58
  * Создать массив компонентов из массива объектов конфигурации
59
59
  * @param {array} arr массив объектов конфигурации
60
60
  * @returns {array} of Elements
61
61
  */
62
- Component.makeArray(arr);
62
+ EL.makeArray(arr);
63
63
  ```
64
64
 
65
65
  ### SVG
@@ -121,7 +121,7 @@ StyledComponent.make(tag, data = {}, style = null, id = null, ext = false);
121
121
  ## Пример
122
122
  Создаст контейнер с двумя вложенными блоками текста и прикрепит к body
123
123
  ```js
124
- Component.make('div', {
124
+ EL.make('div', {
125
125
  parent: document.body,
126
126
  class: 'my-div',
127
127
  style: {
@@ -148,7 +148,7 @@ Component.make('div', {
148
148
  ```js
149
149
  class Button {
150
150
  constructor(text) {
151
- Component.make('button', {
151
+ EL.make('button', {
152
152
  context: this,
153
153
  var: 'button',
154
154
  text: text,
@@ -169,7 +169,7 @@ btn.$button; // элемент кнопки
169
169
  Некоторые трюки
170
170
 
171
171
  ```js
172
- Component.make('div', {
172
+ EL.make('div', {
173
173
  context: this,
174
174
  children: [
175
175
  {}, // валидно
@@ -177,7 +177,7 @@ Component.make('div', {
177
177
  {
178
178
  // без тега - div
179
179
  },
180
- Component.make(...), // контекст будет проброшен сюда автоматически
180
+ EL.make(...), // контекст будет проброшен сюда автоматически
181
181
  foo && {...}, // добавить компонент если foo - true
182
182
  {
183
183
  tag: 'svg', // автоматически запустится режим SVG
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexgyver/component",
3
- "version": "1.3.5",
3
+ "version": "1.3.6",
4
4
  "description": "Simple HTML&SVG element builder",
5
5
  "main": "./Component.js",
6
6
  "module": "./Component.js",