snabberb 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb82424f513fedb084f9889e64adc0b3484e3403522d5f0fb1ab3531c9fd627b
4
- data.tar.gz: '08a6595aa3bed2cde156991811e6a612296e11aaeae9a24a10dd9aca58c2f3f8'
3
+ metadata.gz: fac9682f069db40fa6111733624b4d188c8a655c3ff443602f4f225834bae4e1
4
+ data.tar.gz: ff200014a25e5a8e10f8368089157e60364b569d6c68e134a86898878d7760bd
5
5
  SHA512:
6
- metadata.gz: 9f599f947849c63880508953ec5f096f6ccfc4936c08fe51d7c8a3fd087260b921cdba6d7b64b70e5a6e565c63d2cf02cd1962880c1b5ae4b96f4a793cddfe3d
7
- data.tar.gz: 06d6ff61cf0853e796f4c8d4896db4e4a74b7dd28a79a421fdc4df947d99e92f7eec63ca604c993ab445142bd9f095d782122730f11936387ee4314313fc4768
6
+ metadata.gz: 1b5950417e303d98edf30ce07580d9cfb8b0ca1b44bba35c7cdf4c0b8faa973f07a900f75f4e2c3a975e19e36a652664cce151b7172379a99fd7b2b90bbbaa2e
7
+ data.tar.gz: 5e7ba5a3d961ff6c83723a37023d308a62b9b0ce97512602d321447c6bc68e7f1214a29da119625d281682bcd42b8be721936165b6fb29622feda3335e024a7e
data/.gitignore CHANGED
@@ -10,6 +10,7 @@
10
10
  /examples/roda/build
11
11
  /node_modules/
12
12
  package-lock.json
13
+ package.json
13
14
 
14
15
  .DS_STORE
15
16
  *.swp
data/.rubocop.yml CHANGED
@@ -45,5 +45,5 @@ Style/TrailingCommaInHashLiteral:
45
45
 
46
46
  AllCops:
47
47
  NewCops: enable
48
- TargetRubyVersion: 2.4
48
+ TargetRubyVersion: 2.5
49
49
  SuggestExtensions: false
data/build.js CHANGED
@@ -1,14 +1,14 @@
1
1
  // browserify build.js -p esmify -s snabbdom > opal/vendor/snabbdom.js
2
- import { init } from './node_modules/snabbdom/build/package/init'
3
- import { h } from './node_modules/snabbdom/build/package/h'
4
- import { toVNode } from './node_modules/snabbdom/build/package/tovnode'
2
+ import { init } from './node_modules/snabbdom/build/init'
3
+ import { h } from './node_modules/snabbdom/build/h'
4
+ import { toVNode } from './node_modules/snabbdom/build/tovnode'
5
5
 
6
- import { attributesModule } from './node_modules/snabbdom/build/package/modules/attributes'
7
- import { classModule } from './node_modules/snabbdom/build/package/modules/class'
8
- import { datasetModule } from './node_modules/snabbdom/build/package/modules/dataset'
9
- import { eventListenersModule } from './node_modules/snabbdom/build/package/modules/eventlisteners'
10
- import { propsModule } from './node_modules/snabbdom/build/package/modules/props'
11
- import { styleModule } from './node_modules/snabbdom/build/package/modules/style'
6
+ import { attributesModule } from './node_modules/snabbdom/build/modules/attributes'
7
+ import { classModule } from './node_modules/snabbdom/build/modules/class'
8
+ import { datasetModule } from './node_modules/snabbdom/build/modules/dataset'
9
+ import { eventListenersModule } from './node_modules/snabbdom/build/modules/eventlisteners'
10
+ import { propsModule } from './node_modules/snabbdom/build/modules/props'
11
+ import { styleModule } from './node_modules/snabbdom/build/modules/style'
12
12
 
13
13
  module.exports.init = init
14
14
  module.exports.h = h
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- snabberb (1.3.0)
4
+ snabberb (1.3.1)
5
5
  opal (~> 1.1)
6
6
 
7
7
  GEM
@@ -11,7 +11,7 @@ GEM
11
11
  opal (1.1.1)
12
12
  ast (>= 2.3.0)
13
13
  parser (~> 3.0)
14
- parser (3.0.0.0)
14
+ parser (3.0.1.0)
15
15
  ast (~> 2.4.1)
16
16
  rack (2.2.3)
17
17
  webrick (1.7.0)
@@ -2,10 +2,10 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
- gem 'c_lexer'
6
5
  gem 'execjs'
7
6
  gem 'mini_racer'
8
7
  gem 'opal'
9
8
  gem 'opal-sprockets'
10
9
  gem 'roda'
11
10
  gem 'snabberb', path: '../..'
11
+ gem 'webrick'
@@ -1,49 +1,47 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- snabberb (1.0.0)
5
- opal (~> 1.0)
4
+ snabberb (1.3.1)
5
+ opal (~> 1.1)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- ast (2.4.1)
11
- c_lexer (2.6.4.1.1)
12
- ast (~> 2.4.0)
13
- parser (= 2.6.4.1)
14
- concurrent-ruby (1.1.7)
10
+ ast (2.4.2)
11
+ concurrent-ruby (1.1.8)
15
12
  execjs (2.7.0)
16
- libv8 (8.4.255.0)
17
- mini_racer (0.3.1)
18
- libv8 (~> 8.4.255)
19
- opal (1.0.3)
13
+ libv8-node (15.14.0.0)
14
+ mini_racer (0.4.0)
15
+ libv8-node (~> 15.14.0.0)
16
+ opal (1.1.1)
20
17
  ast (>= 2.3.0)
21
- parser (~> 2.6)
22
- opal-sprockets (0.4.9.1.0.3.7)
23
- opal (~> 1.0.0)
24
- sprockets (~> 3.7)
18
+ parser (~> 3.0)
19
+ opal-sprockets (1.0.0)
20
+ opal (>= 1.0, < 1.2)
21
+ sprockets (~> 4.0)
25
22
  tilt (>= 1.4)
26
- parser (2.6.4.1)
27
- ast (~> 2.4.0)
23
+ parser (3.0.1.0)
24
+ ast (~> 2.4.1)
28
25
  rack (2.2.3)
29
- roda (3.36.0)
26
+ roda (3.43.1)
30
27
  rack
31
- sprockets (3.7.2)
28
+ sprockets (4.0.2)
32
29
  concurrent-ruby (~> 1.0)
33
30
  rack (> 1, < 3)
34
31
  tilt (2.0.10)
32
+ webrick (1.7.0)
35
33
 
36
34
  PLATFORMS
37
35
  ruby
38
36
 
39
37
  DEPENDENCIES
40
- c_lexer
41
38
  execjs
42
39
  mini_racer
43
40
  opal
44
41
  opal-sprockets
45
42
  roda
46
43
  snabberb!
44
+ webrick
47
45
 
48
46
  BUNDLED WITH
49
- 2.1.4
47
+ 2.2.3
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Snabberb
4
- VERSION = '1.3.1'
4
+ VERSION = '1.4.0'
5
5
  end
@@ -1,23 +1,23 @@
1
1
  (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.snabbdom = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2
2
  "use strict";
3
3
 
4
- var _init = require("./node_modules/snabbdom/build/package/init");
4
+ var _init = require("./node_modules/snabbdom/build/init");
5
5
 
6
- var _h = require("./node_modules/snabbdom/build/package/h");
6
+ var _h = require("./node_modules/snabbdom/build/h");
7
7
 
8
- var _tovnode = require("./node_modules/snabbdom/build/package/tovnode");
8
+ var _tovnode = require("./node_modules/snabbdom/build/tovnode");
9
9
 
10
- var _attributes = require("./node_modules/snabbdom/build/package/modules/attributes");
10
+ var _attributes = require("./node_modules/snabbdom/build/modules/attributes");
11
11
 
12
- var _class = require("./node_modules/snabbdom/build/package/modules/class");
12
+ var _class = require("./node_modules/snabbdom/build/modules/class");
13
13
 
14
- var _dataset = require("./node_modules/snabbdom/build/package/modules/dataset");
14
+ var _dataset = require("./node_modules/snabbdom/build/modules/dataset");
15
15
 
16
- var _eventlisteners = require("./node_modules/snabbdom/build/package/modules/eventlisteners");
16
+ var _eventlisteners = require("./node_modules/snabbdom/build/modules/eventlisteners");
17
17
 
18
- var _props = require("./node_modules/snabbdom/build/package/modules/props");
18
+ var _props = require("./node_modules/snabbdom/build/modules/props");
19
19
 
20
- var _style = require("./node_modules/snabbdom/build/package/modules/style");
20
+ var _style = require("./node_modules/snabbdom/build/modules/style");
21
21
 
22
22
  // browserify build.js -p esmify -s snabbdom > opal/vendor/snabbdom.js
23
23
  module.exports.init = _init.init;
@@ -30,7 +30,7 @@ module.exports.eventListenersModule = _eventlisteners.eventListenersModule;
30
30
  module.exports.propsModule = _props.propsModule;
31
31
  module.exports.styleModule = _style.styleModule;
32
32
 
33
- },{"./node_modules/snabbdom/build/package/h":2,"./node_modules/snabbdom/build/package/init":4,"./node_modules/snabbdom/build/package/modules/attributes":6,"./node_modules/snabbdom/build/package/modules/class":7,"./node_modules/snabbdom/build/package/modules/dataset":8,"./node_modules/snabbdom/build/package/modules/eventlisteners":9,"./node_modules/snabbdom/build/package/modules/props":10,"./node_modules/snabbdom/build/package/modules/style":11,"./node_modules/snabbdom/build/package/tovnode":12}],2:[function(require,module,exports){
33
+ },{"./node_modules/snabbdom/build/h":2,"./node_modules/snabbdom/build/init":4,"./node_modules/snabbdom/build/modules/attributes":6,"./node_modules/snabbdom/build/modules/class":7,"./node_modules/snabbdom/build/modules/dataset":8,"./node_modules/snabbdom/build/modules/eventlisteners":9,"./node_modules/snabbdom/build/modules/props":10,"./node_modules/snabbdom/build/modules/style":11,"./node_modules/snabbdom/build/tovnode":12}],2:[function(require,module,exports){
34
34
  "use strict";
35
35
 
36
36
  Object.defineProperty(exports, "__esModule", {
@@ -38,18 +38,18 @@ Object.defineProperty(exports, "__esModule", {
38
38
  });
39
39
  exports.h = h;
40
40
 
41
- var _vnode = require("./vnode.js");
41
+ var _vnode = require("./vnode");
42
42
 
43
- var is = _interopRequireWildcard(require("./is.js"));
43
+ var is = _interopRequireWildcard(require("./is"));
44
44
 
45
45
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
46
46
 
47
47
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
48
48
 
49
49
  function addNS(data, children, sel) {
50
- data.ns = 'http://www.w3.org/2000/svg';
50
+ data.ns = "http://www.w3.org/2000/svg";
51
51
 
52
- if (sel !== 'foreignObject' && children !== undefined) {
52
+ if (sel !== "foreignObject" && children !== undefined) {
53
53
  for (let i = 0; i < children.length; ++i) {
54
54
  const childData = children[i].data;
55
55
 
@@ -61,10 +61,10 @@ function addNS(data, children, sel) {
61
61
  }
62
62
 
63
63
  function h(sel, b, c) {
64
- var data = {};
65
- var children;
66
- var text;
67
- var i;
64
+ let data = {};
65
+ let children;
66
+ let text;
67
+ let i;
68
68
 
69
69
  if (c !== undefined) {
70
70
  if (b !== null) {
@@ -96,16 +96,14 @@ function h(sel, b, c) {
96
96
  }
97
97
  }
98
98
 
99
- if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' && (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) {
99
+ if (sel[0] === "s" && sel[1] === "v" && sel[2] === "g" && (sel.length === 3 || sel[3] === "." || sel[3] === "#")) {
100
100
  addNS(data, children, sel);
101
101
  }
102
102
 
103
103
  return (0, _vnode.vnode)(sel, data, children, text, undefined);
104
104
  }
105
105
 
106
- ;
107
-
108
- },{"./is.js":5,"./vnode.js":13}],3:[function(require,module,exports){
106
+ },{"./is":5,"./vnode":13}],3:[function(require,module,exports){
109
107
  "use strict";
110
108
 
111
109
  Object.defineProperty(exports, "__esModule", {
@@ -113,12 +111,12 @@ Object.defineProperty(exports, "__esModule", {
113
111
  });
114
112
  exports.htmlDomApi = void 0;
115
113
 
116
- function createElement(tagName) {
117
- return document.createElement(tagName);
114
+ function createElement(tagName, options) {
115
+ return document.createElement(tagName, options);
118
116
  }
119
117
 
120
- function createElementNS(namespaceURI, qualifiedName) {
121
- return document.createElementNS(namespaceURI, qualifiedName);
118
+ function createElementNS(namespaceURI, qualifiedName, options) {
119
+ return document.createElementNS(namespaceURI, qualifiedName, options);
122
120
  }
123
121
 
124
122
  function createTextNode(text) {
@@ -200,11 +198,11 @@ Object.defineProperty(exports, "__esModule", {
200
198
  });
201
199
  exports.init = init;
202
200
 
203
- var _vnode = require("./vnode.js");
201
+ var _vnode = require("./vnode");
204
202
 
205
- var is = _interopRequireWildcard(require("./is.js"));
203
+ var is = _interopRequireWildcard(require("./is"));
206
204
 
207
- var _htmldomapi = require("./htmldomapi.js");
205
+ var _htmldomapi = require("./htmldomapi");
208
206
 
209
207
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
210
208
 
@@ -218,10 +216,15 @@ function isDef(s) {
218
216
  return s !== undefined;
219
217
  }
220
218
 
221
- const emptyNode = (0, _vnode.vnode)('', {}, [], undefined, undefined);
219
+ const emptyNode = (0, _vnode.vnode)("", {}, [], undefined, undefined);
222
220
 
223
221
  function sameVnode(vnode1, vnode2) {
224
- return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel;
222
+ var _a, _b;
223
+
224
+ const isSameKey = vnode1.key === vnode2.key;
225
+ const isSameIs = ((_a = vnode1.data) === null || _a === void 0 ? void 0 : _a.is) === ((_b = vnode2.data) === null || _b === void 0 ? void 0 : _b.is);
226
+ const isSameSel = vnode1.sel === vnode2.sel;
227
+ return isSameSel && isSameKey && isSameIs;
225
228
  }
226
229
 
227
230
  function isVnode(vnode) {
@@ -244,7 +247,7 @@ function createKeyToOldIdx(children, beginIdx, endIdx) {
244
247
  return map;
245
248
  }
246
249
 
247
- const hooks = ['create', 'update', 'remove', 'destroy', 'pre', 'post'];
250
+ const hooks = ["create", "update", "remove", "destroy", "pre", "post"];
248
251
 
249
252
  function init(modules, domApi) {
250
253
  let i;
@@ -272,8 +275,8 @@ function init(modules, domApi) {
272
275
  }
273
276
 
274
277
  function emptyNodeAt(elm) {
275
- const id = elm.id ? '#' + elm.id : '';
276
- const c = elm.className ? '.' + elm.className.split(' ').join('.') : '';
278
+ const id = elm.id ? "#" + elm.id : "";
279
+ const c = elm.className ? "." + elm.className.split(" ").join(".") : "";
277
280
  return (0, _vnode.vnode)(api.tagName(elm).toLowerCase() + id + c, {}, [], undefined, elm);
278
281
  }
279
282
 
@@ -304,22 +307,22 @@ function init(modules, domApi) {
304
307
  const children = vnode.children;
305
308
  const sel = vnode.sel;
306
309
 
307
- if (sel === '!') {
310
+ if (sel === "!") {
308
311
  if (isUndef(vnode.text)) {
309
- vnode.text = '';
312
+ vnode.text = "";
310
313
  }
311
314
 
312
315
  vnode.elm = api.createComment(vnode.text);
313
316
  } else if (sel !== undefined) {
314
317
  // Parse selector
315
- const hashIdx = sel.indexOf('#');
316
- const dotIdx = sel.indexOf('.', hashIdx);
318
+ const hashIdx = sel.indexOf("#");
319
+ const dotIdx = sel.indexOf(".", hashIdx);
317
320
  const hash = hashIdx > 0 ? hashIdx : sel.length;
318
321
  const dot = dotIdx > 0 ? dotIdx : sel.length;
319
322
  const tag = hashIdx !== -1 || dotIdx !== -1 ? sel.slice(0, Math.min(hash, dot)) : sel;
320
- const elm = vnode.elm = isDef(data) && isDef(i = data.ns) ? api.createElementNS(i, tag) : api.createElement(tag);
321
- if (hash < dot) elm.setAttribute('id', sel.slice(hash + 1, dot));
322
- if (dotIdx > 0) elm.setAttribute('class', sel.slice(dot + 1).replace(/\./g, ' '));
323
+ const elm = vnode.elm = isDef(data) && isDef(i = data.ns) ? api.createElementNS(i, tag, data) : api.createElement(tag, data);
324
+ if (hash < dot) elm.setAttribute("id", sel.slice(hash + 1, dot));
325
+ if (dotIdx > 0) elm.setAttribute("class", sel.slice(dot + 1).replace(/\./g, " "));
323
326
 
324
327
  for (i = 0; i < cbs.create.length; ++i) cbs.create[i](emptyNode, vnode);
325
328
 
@@ -375,7 +378,7 @@ function init(modules, domApi) {
375
378
  for (let j = 0; j < vnode.children.length; ++j) {
376
379
  const child = vnode.children[j];
377
380
 
378
- if (child != null && typeof child !== 'string') {
381
+ if (child != null && typeof child !== "string") {
379
382
  invokeDestroyHook(child);
380
383
  }
381
384
  }
@@ -513,12 +516,12 @@ function init(modules, domApi) {
513
516
  if (isDef(oldCh) && isDef(ch)) {
514
517
  if (oldCh !== ch) updateChildren(elm, oldCh, ch, insertedVnodeQueue);
515
518
  } else if (isDef(ch)) {
516
- if (isDef(oldVnode.text)) api.setTextContent(elm, '');
519
+ if (isDef(oldVnode.text)) api.setTextContent(elm, "");
517
520
  addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
518
521
  } else if (isDef(oldCh)) {
519
522
  removeVnodes(elm, oldCh, 0, oldCh.length - 1);
520
523
  } else if (isDef(oldVnode.text)) {
521
- api.setTextContent(elm, '');
524
+ api.setTextContent(elm, "");
522
525
  }
523
526
  } else if (oldVnode.text !== vnode.text) {
524
527
  if (isDef(oldCh)) {
@@ -564,7 +567,7 @@ function init(modules, domApi) {
564
567
  };
565
568
  }
566
569
 
567
- },{"./htmldomapi.js":3,"./is.js":5,"./vnode.js":13}],5:[function(require,module,exports){
570
+ },{"./htmldomapi":3,"./is":5,"./vnode":13}],5:[function(require,module,exports){
568
571
  "use strict";
569
572
 
570
573
  Object.defineProperty(exports, "__esModule", {
@@ -576,7 +579,7 @@ const array = Array.isArray;
576
579
  exports.array = array;
577
580
 
578
581
  function primitive(s) {
579
- return typeof s === 'string' || typeof s === 'number';
582
+ return typeof s === "string" || typeof s === "number";
580
583
  }
581
584
 
582
585
  },{}],6:[function(require,module,exports){
@@ -586,16 +589,16 @@ Object.defineProperty(exports, "__esModule", {
586
589
  value: true
587
590
  });
588
591
  exports.attributesModule = void 0;
589
- const xlinkNS = 'http://www.w3.org/1999/xlink';
590
- const xmlNS = 'http://www.w3.org/XML/1998/namespace';
592
+ const xlinkNS = "http://www.w3.org/1999/xlink";
593
+ const xmlNS = "http://www.w3.org/XML/1998/namespace";
591
594
  const colonChar = 58;
592
595
  const xChar = 120;
593
596
 
594
597
  function updateAttrs(oldVnode, vnode) {
595
- var key;
596
- var elm = vnode.elm;
597
- var oldAttrs = oldVnode.data.attrs;
598
- var attrs = vnode.data.attrs;
598
+ let key;
599
+ const elm = vnode.elm;
600
+ let oldAttrs = oldVnode.data.attrs;
601
+ let attrs = vnode.data.attrs;
599
602
  if (!oldAttrs && !attrs) return;
600
603
  if (oldAttrs === attrs) return;
601
604
  oldAttrs = oldAttrs || {};
@@ -607,7 +610,7 @@ function updateAttrs(oldVnode, vnode) {
607
610
 
608
611
  if (old !== cur) {
609
612
  if (cur === true) {
610
- elm.setAttribute(key, '');
613
+ elm.setAttribute(key, "");
611
614
  } else if (cur === false) {
612
615
  elm.removeAttribute(key);
613
616
  } else {
@@ -651,11 +654,11 @@ Object.defineProperty(exports, "__esModule", {
651
654
  exports.classModule = void 0;
652
655
 
653
656
  function updateClass(oldVnode, vnode) {
654
- var cur;
655
- var name;
656
- var elm = vnode.elm;
657
- var oldClass = oldVnode.data.class;
658
- var klass = vnode.data.class;
657
+ let cur;
658
+ let name;
659
+ const elm = vnode.elm;
660
+ let oldClass = oldVnode.data.class;
661
+ let klass = vnode.data.class;
659
662
  if (!oldClass && !klass) return;
660
663
  if (oldClass === klass) return;
661
664
  oldClass = oldClass || {};
@@ -672,7 +675,7 @@ function updateClass(oldVnode, vnode) {
672
675
  cur = klass[name];
673
676
 
674
677
  if (cur !== oldClass[name]) {
675
- elm.classList[cur ? 'add' : 'remove'](name);
678
+ elm.classList[cur ? "add" : "remove"](name);
676
679
  }
677
680
  }
678
681
  }
@@ -710,7 +713,7 @@ function updateDataset(oldVnode, vnode) {
710
713
  delete d[key];
711
714
  }
712
715
  } else {
713
- elm.removeAttribute('data-' + key.replace(CAPS_REGEX, '-$&').toLowerCase());
716
+ elm.removeAttribute("data-" + key.replace(CAPS_REGEX, "-$&").toLowerCase());
714
717
  }
715
718
  }
716
719
  }
@@ -720,7 +723,7 @@ function updateDataset(oldVnode, vnode) {
720
723
  if (d) {
721
724
  d[key] = dataset[key];
722
725
  } else {
723
- elm.setAttribute('data-' + key.replace(CAPS_REGEX, '-$&').toLowerCase(), dataset[key]);
726
+ elm.setAttribute("data-" + key.replace(CAPS_REGEX, "-$&").toLowerCase(), dataset[key]);
724
727
  }
725
728
  }
726
729
  }
@@ -741,20 +744,20 @@ Object.defineProperty(exports, "__esModule", {
741
744
  exports.eventListenersModule = void 0;
742
745
 
743
746
  function invokeHandler(handler, vnode, event) {
744
- if (typeof handler === 'function') {
747
+ if (typeof handler === "function") {
745
748
  // call function handler
746
749
  handler.call(vnode, event, vnode);
747
- } else if (typeof handler === 'object') {
750
+ } else if (typeof handler === "object") {
748
751
  // call multiple handlers
749
- for (var i = 0; i < handler.length; i++) {
752
+ for (let i = 0; i < handler.length; i++) {
750
753
  invokeHandler(handler[i], vnode, event);
751
754
  }
752
755
  }
753
756
  }
754
757
 
755
758
  function handleEvent(event, vnode) {
756
- var name = event.type;
757
- var on = vnode.data.on; // call event handler(s) if exists
759
+ const name = event.type;
760
+ const on = vnode.data.on; // call event handler(s) if exists
758
761
 
759
762
  if (on && on[name]) {
760
763
  invokeHandler(on[name], vnode, event);
@@ -768,12 +771,12 @@ function createListener() {
768
771
  }
769
772
 
770
773
  function updateEventListeners(oldVnode, vnode) {
771
- var oldOn = oldVnode.data.on;
772
- var oldListener = oldVnode.listener;
773
- var oldElm = oldVnode.elm;
774
- var on = vnode && vnode.data.on;
775
- var elm = vnode && vnode.elm;
776
- var name; // optimization for reused immutable handlers
774
+ const oldOn = oldVnode.data.on;
775
+ const oldListener = oldVnode.listener;
776
+ const oldElm = oldVnode.elm;
777
+ const on = vnode && vnode.data.on;
778
+ const elm = vnode && vnode.elm;
779
+ let name; // optimization for reused immutable handlers
777
780
 
778
781
  if (oldOn === on) {
779
782
  return;
@@ -800,7 +803,7 @@ function updateEventListeners(oldVnode, vnode) {
800
803
 
801
804
  if (on) {
802
805
  // reuse existing listener or create new
803
- var listener = vnode.listener = oldVnode.listener || createListener(); // update vnode for listener
806
+ const listener = vnode.listener = oldVnode.listener || createListener(); // update vnode for listener
804
807
 
805
808
  listener.vnode = vnode; // if element changed or added we add all needed listeners unconditionally
806
809
 
@@ -836,12 +839,12 @@ Object.defineProperty(exports, "__esModule", {
836
839
  exports.propsModule = void 0;
837
840
 
838
841
  function updateProps(oldVnode, vnode) {
839
- var key;
840
- var cur;
841
- var old;
842
- var elm = vnode.elm;
843
- var oldProps = oldVnode.data.props;
844
- var props = vnode.data.props;
842
+ let key;
843
+ let cur;
844
+ let old;
845
+ const elm = vnode.elm;
846
+ let oldProps = oldVnode.data.props;
847
+ let props = vnode.data.props;
845
848
  if (!oldProps && !props) return;
846
849
  if (oldProps === props) return;
847
850
  oldProps = oldProps || {};
@@ -851,7 +854,7 @@ function updateProps(oldVnode, vnode) {
851
854
  cur = props[key];
852
855
  old = oldProps[key];
853
856
 
854
- if (old !== cur && (key !== 'value' || elm[key] !== cur)) {
857
+ if (old !== cur && (key !== "value" || elm[key] !== cur)) {
855
858
  elm[key] = cur;
856
859
  }
857
860
  }
@@ -871,15 +874,15 @@ Object.defineProperty(exports, "__esModule", {
871
874
  });
872
875
  exports.styleModule = void 0;
873
876
  // Bindig `requestAnimationFrame` like this fixes a bug in IE/Edge. See #360 and #409.
874
- var raf = typeof window !== 'undefined' && window.requestAnimationFrame.bind(window) || setTimeout;
877
+ const raf = typeof window !== "undefined" && window.requestAnimationFrame.bind(window) || setTimeout;
875
878
 
876
- var nextFrame = function (fn) {
879
+ const nextFrame = function (fn) {
877
880
  raf(function () {
878
881
  raf(fn);
879
882
  });
880
883
  };
881
884
 
882
- var reflowForced = false;
885
+ let reflowForced = false;
883
886
 
884
887
  function setNextFrame(obj, prop, val) {
885
888
  nextFrame(function () {
@@ -888,23 +891,23 @@ function setNextFrame(obj, prop, val) {
888
891
  }
889
892
 
890
893
  function updateStyle(oldVnode, vnode) {
891
- var cur;
892
- var name;
893
- var elm = vnode.elm;
894
- var oldStyle = oldVnode.data.style;
895
- var style = vnode.data.style;
894
+ let cur;
895
+ let name;
896
+ const elm = vnode.elm;
897
+ let oldStyle = oldVnode.data.style;
898
+ let style = vnode.data.style;
896
899
  if (!oldStyle && !style) return;
897
900
  if (oldStyle === style) return;
898
901
  oldStyle = oldStyle || {};
899
902
  style = style || {};
900
- var oldHasDel = ('delayed' in oldStyle);
903
+ const oldHasDel = ("delayed" in oldStyle);
901
904
 
902
905
  for (name in oldStyle) {
903
906
  if (!style[name]) {
904
- if (name[0] === '-' && name[1] === '-') {
907
+ if (name[0] === "-" && name[1] === "-") {
905
908
  elm.style.removeProperty(name);
906
909
  } else {
907
- elm.style[name] = '';
910
+ elm.style[name] = "";
908
911
  }
909
912
  }
910
913
  }
@@ -912,7 +915,7 @@ function updateStyle(oldVnode, vnode) {
912
915
  for (name in style) {
913
916
  cur = style[name];
914
917
 
915
- if (name === 'delayed' && style.delayed) {
918
+ if (name === "delayed" && style.delayed) {
916
919
  for (const name2 in style.delayed) {
917
920
  cur = style.delayed[name2];
918
921
 
@@ -920,8 +923,8 @@ function updateStyle(oldVnode, vnode) {
920
923
  setNextFrame(elm.style, name2, cur);
921
924
  }
922
925
  }
923
- } else if (name !== 'remove' && cur !== oldStyle[name]) {
924
- if (name[0] === '-' && name[1] === '-') {
926
+ } else if (name !== "remove" && cur !== oldStyle[name]) {
927
+ if (name[0] === "-" && name[1] === "-") {
925
928
  elm.style.setProperty(name, cur);
926
929
  } else {
927
930
  elm.style[name] = cur;
@@ -931,10 +934,10 @@ function updateStyle(oldVnode, vnode) {
931
934
  }
932
935
 
933
936
  function applyDestroyStyle(vnode) {
934
- var style;
935
- var name;
936
- var elm = vnode.elm;
937
- var s = vnode.data.style;
937
+ let style;
938
+ let name;
939
+ const elm = vnode.elm;
940
+ const s = vnode.data.style;
938
941
  if (!s || !(style = s.destroy)) return;
939
942
 
940
943
  for (name in style) {
@@ -943,7 +946,7 @@ function applyDestroyStyle(vnode) {
943
946
  }
944
947
 
945
948
  function applyRemoveStyle(vnode, rm) {
946
- var s = vnode.data.style;
949
+ const s = vnode.data.style;
947
950
 
948
951
  if (!s || !s.remove) {
949
952
  rm();
@@ -956,27 +959,26 @@ function applyRemoveStyle(vnode, rm) {
956
959
  reflowForced = true;
957
960
  }
958
961
 
959
- var name;
960
- var elm = vnode.elm;
961
- var i = 0;
962
- var compStyle;
963
- var style = s.remove;
964
- var amount = 0;
965
- var applied = [];
962
+ let name;
963
+ const elm = vnode.elm;
964
+ let i = 0;
965
+ const style = s.remove;
966
+ let amount = 0;
967
+ const applied = [];
966
968
 
967
969
  for (name in style) {
968
970
  applied.push(name);
969
971
  elm.style[name] = style[name];
970
972
  }
971
973
 
972
- compStyle = getComputedStyle(elm);
973
- var props = compStyle['transition-property'].split(', ');
974
+ const compStyle = getComputedStyle(elm);
975
+ const props = compStyle["transition-property"].split(", ");
974
976
 
975
977
  for (; i < props.length; ++i) {
976
978
  if (applied.indexOf(props[i]) !== -1) amount++;
977
979
  }
978
980
 
979
- elm.addEventListener('transitionend', function (ev) {
981
+ elm.addEventListener("transitionend", function (ev) {
980
982
  if (ev.target === elm) --amount;
981
983
  if (amount === 0) rm();
982
984
  });
@@ -1003,18 +1005,18 @@ Object.defineProperty(exports, "__esModule", {
1003
1005
  });
1004
1006
  exports.toVNode = toVNode;
1005
1007
 
1006
- var _vnode = require("./vnode.js");
1008
+ var _vnode = require("./vnode");
1007
1009
 
1008
- var _htmldomapi = require("./htmldomapi.js");
1010
+ var _htmldomapi = require("./htmldomapi");
1009
1011
 
1010
1012
  function toVNode(node, domApi) {
1011
1013
  const api = domApi !== undefined ? domApi : _htmldomapi.htmlDomApi;
1012
1014
  let text;
1013
1015
 
1014
1016
  if (api.isElement(node)) {
1015
- const id = node.id ? '#' + node.id : '';
1016
- const cn = node.getAttribute('class');
1017
- const c = cn ? '.' + cn.split(' ').join('.') : '';
1017
+ const id = node.id ? "#" + node.id : "";
1018
+ const cn = node.getAttribute("class");
1019
+ const c = cn ? "." + cn.split(" ").join(".") : "";
1018
1020
  const sel = api.tagName(node).toLowerCase() + id + c;
1019
1021
  const attrs = {};
1020
1022
  const children = [];
@@ -1026,7 +1028,7 @@ function toVNode(node, domApi) {
1026
1028
  for (i = 0, n = elmAttrs.length; i < n; i++) {
1027
1029
  name = elmAttrs[i].nodeName;
1028
1030
 
1029
- if (name !== 'id' && name !== 'class') {
1031
+ if (name !== "id" && name !== "class") {
1030
1032
  attrs[name] = elmAttrs[i].nodeValue;
1031
1033
  }
1032
1034
  }
@@ -1043,13 +1045,13 @@ function toVNode(node, domApi) {
1043
1045
  return (0, _vnode.vnode)(undefined, undefined, undefined, text, node);
1044
1046
  } else if (api.isComment(node)) {
1045
1047
  text = api.getTextContent(node);
1046
- return (0, _vnode.vnode)('!', {}, [], text, node);
1048
+ return (0, _vnode.vnode)("!", {}, [], text, node);
1047
1049
  } else {
1048
- return (0, _vnode.vnode)('', {}, [], undefined, node);
1050
+ return (0, _vnode.vnode)("", {}, [], undefined, node);
1049
1051
  }
1050
1052
  }
1051
1053
 
1052
- },{"./htmldomapi.js":3,"./vnode.js":13}],13:[function(require,module,exports){
1054
+ },{"./htmldomapi":3,"./vnode":13}],13:[function(require,module,exports){
1053
1055
  "use strict";
1054
1056
 
1055
1057
  Object.defineProperty(exports, "__esModule", {
data/snabberb.gemspec CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.bindir = 'exe'
26
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
27
  spec.require_paths = %w[lib opal]
28
- spec.required_ruby_version = '>= 2.4'
28
+ spec.required_ruby_version = '>= 2.5'
29
29
 
30
30
  spec.add_dependency 'opal', '~> 1.1'
31
31
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snabberb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Mao
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-24 00:00:00.000000000 Z
11
+ date: 2021-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opal
@@ -147,7 +147,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
147
147
  requirements:
148
148
  - - ">="
149
149
  - !ruby/object:Gem::Version
150
- version: '2.4'
150
+ version: '2.5'
151
151
  required_rubygems_version: !ruby/object:Gem::Requirement
152
152
  requirements:
153
153
  - - ">="