@alexgyver/component 1.0.14 → 1.0.16

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 (2) hide show
  1. package/component.js +8 -3
  2. package/package.json +1 -1
package/component.js CHANGED
@@ -75,6 +75,8 @@ export class Component {
75
75
  context {object} контекст для параметра 'var' и вызовов 'also'
76
76
  text {string} добавить в textContent
77
77
  html {string} добавить в innerHTML
78
+ attrs {object} добавить аттрибуты
79
+ props {object} добавить свойства
78
80
  class {string} добавить в className
79
81
  also {function} - вызвать с текущим компонентом: { ... , also(el) { console.log(el); }, }
80
82
  export {array} - положить в 0 ячейку указанного массива
@@ -83,6 +85,7 @@ export class Component {
83
85
  parent - {Element} добавляет компонент к указанному элементу (имеет смысл только для корневого компонента)
84
86
  style {string | object} объект в виде { padding: '0px', ... } или строка css стилей
85
87
  children - массив DOM, Component, object, html string
88
+ всё остальное будет добавлено как property
86
89
  */
87
90
  /**
88
91
  * Создать компонент
@@ -111,11 +114,13 @@ export class Component {
111
114
  case 'also': if (context) val.call(context, $el); break;
112
115
  case 'export': val[0] = $el; break;
113
116
  case 'var': if (context) context['$' + val] = $el; break;
114
- case 'events': for (const [ev, handler] of Object.entries(val)) if (handler) $el.addEventListener(ev, handler.bind(context)); break;
117
+ case 'events': for (let ev in val) if (val[ev]) $el.addEventListener(ev, val[ev].bind(context)); break;
115
118
  case 'parent': if (val instanceof Element) val.append($el); break;
119
+ case 'attrs': for (let attr in val) $el.setAttribute(attr, val[attr]); break;
120
+ case 'props': for (let prop in val) $el[prop] = val[prop]; break;
116
121
  case 'style':
117
122
  if (typeof val === 'string') $el.style = val + ';';
118
- else for (const [skey, sval] of Object.entries(val)) $el.style[skey] = sval;
123
+ else for (let st in val) $el.style[st] = val[st];
119
124
  break;
120
125
  case 'children':
121
126
  for (const obj of val) {
@@ -130,7 +135,7 @@ export class Component {
130
135
  }
131
136
  }
132
137
  break;
133
- default: $el.setAttribute(key, val); break;
138
+ default: $el[key] = val; break;
134
139
  }
135
140
  }
136
141
  return $el;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexgyver/component",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "Simple HTML element builder",
5
5
  "main": "./component.js",
6
6
  "module": "./component.js",