@thi.ng/hdom 9.0.7 → 9.1.2

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 (5) hide show
  1. package/CHANGELOG.md +383 -188
  2. package/README.md +1 -1
  3. package/diff.js +3 -3
  4. package/dom.js +1 -1
  5. package/package.json +119 -114
package/CHANGELOG.md CHANGED
@@ -1,357 +1,552 @@
1
1
  # Change Log
2
2
 
3
+ - **Last updated**: 2021-11-21T17:09:28Z
4
+ - **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
5
+
3
6
  All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
+ See [Conventional Commits](https://conventionalcommits.org/) for commit guidelines.
8
+
9
+ **Note:** Unlisted _patch_ versions only involve non-code or otherwise excluded changes
10
+ and/or version bumps of transitive dependencies.
11
+
12
+ ## [9.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@9.1.0) (2021-11-17)
13
+
14
+ #### 🚀 Features
15
+
16
+ - Using workspaces for local tools ([bf7a404](https://github.com/thi-ng/umbrella/commit/bf7a404))
17
+ Improving the overall build ergonomics
18
+ - introduced a tools workspaces
19
+ - imported it in all needed packages/examples
20
+ - inclusive project root
21
+
22
+ #### ♻️ Refactoring
23
+
24
+ - testrunner to binary ([4ebbbb2](https://github.com/thi-ng/umbrella/commit/4ebbbb2))
25
+ this commit reverts (partly) changes made in:
26
+ ef346d7a8753590dc9094108a3d861a8dbd5dd2c
27
+ overall purpose is better testament ergonomics:
28
+ instead of having to pass NODE_OPTIONS with every invocation
29
+ having a binary to handle this for us.
30
+
31
+ ### [9.0.8](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@9.0.8) (2021-11-10)
32
+
33
+ #### ♻️ Refactoring
34
+
35
+ - update all countdown loops ([a5f374b](https://github.com/thi-ng/umbrella/commit/a5f374b))
36
+
37
+ ### [9.0.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@9.0.1) (2021-10-13)
38
+
39
+ #### ♻️ Refactoring
40
+
41
+ - update imports in all tests/pkgs ([effd591](https://github.com/thi-ng/umbrella/commit/effd591))
42
+ - update imports in all pkgs ([5fa2b6f](https://github.com/thi-ng/umbrella/commit/5fa2b6f))
43
+ - add .js suffix for all relative imports
44
+
45
+ # [9.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@9.0.0) (2021-10-12)
5
46
 
6
- ## [9.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@9.0.6...@thi.ng/hdom@9.0.7) (2021-11-03)
47
+ #### 🛑 Breaking changes
7
48
 
8
- **Note:** Version bump only for package @thi.ng/hdom
49
+ - major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea))
50
+ - BREAKING CHANGE: discontinue CommonJS & UMD versions
51
+ - only ESM modules will be published from now on
52
+ - CJS obsolete due to ESM support in recent versions of node:
53
+ - i.e. launch NodeJS via:
54
+ - `node --experimental-specifier-resolution=node --experimental-repl-await`
55
+ - in the node REPL use `await import(...)` instead of `require()`
56
+ - UMD obsolete due to widespread browser support for ESM
57
+ Also:
58
+ - normalize/restructure/reorg all package.json files
59
+ - cleanup all build scripts, remove obsolete
60
+ - switch from mocha to [@thi.ng/testament](https://github.com/thi-ng/umbrella/tree/main/packages/testament) for all tests
9
61
 
62
+ #### ♻️ Refactoring
10
63
 
64
+ - minor pkg restructure ([61a6592](https://github.com/thi-ng/umbrella/commit/61a6592))
65
+ - update deps & imports in various pkgs ([e1cf29e](https://github.com/thi-ng/umbrella/commit/e1cf29e))
66
+ - largely related to recent updates/restructuring of these packages:
67
+ - api
68
+ - defmulti
69
+ - errors
70
+ - logger
71
+ - update imports ([138571a](https://github.com/thi-ng/umbrella/commit/138571a))
72
+ - update all tests in _all_ pkgs ([8b582bc](https://github.com/thi-ng/umbrella/commit/8b582bc))
73
+ - update all to use [@thi.ng/testament](https://github.com/thi-ng/umbrella/tree/main/packages/testament)
11
74
 
75
+ ### [8.2.14](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.2.14) (2020-12-22)
12
76
 
77
+ #### ♻️ Refactoring
13
78
 
14
- # [9.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.2.32...@thi.ng/hdom@9.0.0) (2021-10-12)
79
+ - update DiffMode handling ([b8f7d5c](https://github.com/thi-ng/umbrella/commit/b8f7d5c))
15
80
 
81
+ ### [8.2.13](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.2.13) (2020-12-07)
16
82
 
17
- ### Build System
83
+ #### ♻️ Refactoring
18
84
 
19
- * major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea9fab2a645d6c5f2bf2591459b939c09b6))
85
+ - update type-only imports in various tests/pkgs ([3fd9c24](https://github.com/thi-ng/umbrella/commit/3fd9c24))
20
86
 
87
+ ### [8.2.10](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.2.10) (2020-09-22)
21
88
 
22
- ### BREAKING CHANGES
89
+ #### ♻️ Refactoring
23
90
 
24
- * discontinue CommonJS & UMD versions
91
+ - update normalizeTree() ([cda40f1](https://github.com/thi-ng/umbrella/commit/cda40f1))
92
+ - extract normalizeChildren()
93
+ - simplify normalizeElement() ([b310c61](https://github.com/thi-ng/umbrella/commit/b310c61))
25
94
 
26
- - only ESM modules will be published from now on
27
- - CJS obsolete due to ESM support in recent versions of node:
28
- - i.e. launch NodeJS via:
29
- - `node --experimental-specifier-resolution=node --experimental-repl-await`
30
- - in the node REPL use `await import(...)` instead of `require()`
31
- - UMD obsolete due to widespread browser support for ESM
95
+ ### [8.2.9](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.2.9) (2020-09-13)
32
96
 
33
- Also:
34
- - normalize/restructure/reorg all package.json files
35
- - cleanup all build scripts, remove obsolete
36
- - switch from mocha to @thi.ng/testament for all tests
97
+ #### ♻️ Refactoring
37
98
 
99
+ - update imports ([e95ff1e](https://github.com/thi-ng/umbrella/commit/e95ff1e))
38
100
 
101
+ ## [8.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.2.0) (2020-07-02)
39
102
 
103
+ #### 🚀 Features
40
104
 
105
+ - add RDFa `prefix` attrib support, update xmlns imports ([f0e7460](https://github.com/thi-ng/umbrella/commit/f0e7460))
106
+ - update deps, update xmlns import ([99fbae7](https://github.com/thi-ng/umbrella/commit/99fbae7))
41
107
 
108
+ ## [8.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.1.0) (2020-06-28)
42
109
 
43
- # [8.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.1.0...@thi.ng/hdom@8.2.0) (2020-07-02)
110
+ #### 🚀 Features
44
111
 
45
- ### Features
112
+ - add support for event listener strings ([db8d350](https://github.com/thi-ng/umbrella/commit/db8d350))
113
+ - add support `class` attrib object vals ([074985a](https://github.com/thi-ng/umbrella/commit/074985a))
114
+ - update normalizeElement() class merge logic
46
115
 
47
- - **hdom:** add RDFa `prefix` attrib support, update xmlns imports ([f0e7460](https://github.com/thi-ng/umbrella/commit/f0e746006a2058a7ddae8413aeefc6451dd8401e))
48
- - **hdom:** update deps, update xmlns import ([99fbae7](https://github.com/thi-ng/umbrella/commit/99fbae79cc3ae07fedf2e681c2882e96e62a375f))
116
+ ### [8.0.18](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.0.18) (2020-04-06)
49
117
 
50
- # [8.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.0.30...@thi.ng/hdom@8.1.0) (2020-06-28)
118
+ #### ⏱ Performance improvements
51
119
 
52
- ### Features
120
+ - update event attrib checks ([ab54d3c](https://github.com/thi-ng/umbrella/commit/ab54d3c))
121
+ - replace .indexOf("on") with array-style accessor checks
122
+ - benchmarking shows ~30% improvement
53
123
 
54
- - **hdom:** add support `class` attrib object vals ([074985a](https://github.com/thi-ng/umbrella/commit/074985a02df8665e2d80fb74491534ee2897516c))
55
- - **hdom:** add support for event listener strings ([db8d350](https://github.com/thi-ng/umbrella/commit/db8d35074fbfe620ffebf2c217eec5cd48e9341a))
124
+ ### [8.0.11](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.0.11) (2020-02-25)
56
125
 
57
- ## [8.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.0.17...@thi.ng/hdom@8.0.18) (2020-04-06)
126
+ #### ♻️ Refactoring
58
127
 
59
- ### Performance Improvements
128
+ - update imports, internal restruct ([9f31a03](https://github.com/thi-ng/umbrella/commit/9f31a03))
60
129
 
61
- - **hdom:** update event attrib checks ([ab54d3c](https://github.com/thi-ng/umbrella/commit/ab54d3cc670dc9b060984e28066d4a84dde64ec2))
130
+ ### [8.0.7](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.0.7) (2019-11-09)
62
131
 
63
- ## [8.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.0.6...@thi.ng/hdom@8.0.7) (2019-11-09)
132
+ #### 🩹 Bug fixes
64
133
 
65
- ### Bug Fixes
134
+ - fix [#72](https://github.com/thi-ng/umbrella/issues/72), update __skip diff handling & HDOMImplementation ([0071df3](https://github.com/thi-ng/umbrella/commit/0071df3))
135
+ - when a previously skipped element is re-enabled, replace entire sub-tree,
136
+ but do NOT call lifecycle `init()` methods
137
+ - add init arg/flag to HDOMImplementation.createTree() / replaceChild()
138
+ - update DEFAULT_IMPL
139
+ - update normalizeElement()
66
140
 
67
- - **hdom:** fix [#72](https://github.com/thi-ng/umbrella/issues/72), update __skip diff handling & HDOMImplementation ([0071df3](https://github.com/thi-ng/umbrella/commit/0071df3c770d6f9de10301853cbd6ecb06df83fb))
141
+ ### [8.0.6](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.0.6) (2019-09-23)
68
142
 
69
- ## [8.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.0.5...@thi.ng/hdom@8.0.6) (2019-09-23)
143
+ #### 🩹 Bug fixes
70
144
 
71
- ### Bug Fixes
145
+ - fix [#133](https://github.com/thi-ng/umbrella/issues/133) boolean attrib handling, add more element properties ([c4bf94f](https://github.com/thi-ng/umbrella/commit/c4bf94f))
72
146
 
73
- - **hdom:** fix [#133](https://github.com/thi-ng/umbrella/issues/133) boolean attrib handling, add more element properties ([c4bf94f](https://github.com/thi-ng/umbrella/commit/c4bf94f))
147
+ ### [8.0.4](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.0.4) (2019-08-21)
74
148
 
75
- # [8.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@7.2.8...@thi.ng/hdom@8.0.0) (2019-07-07)
149
+ #### ♻️ Refactoring
76
150
 
77
- ### Code Refactoring
151
+ - update to use new hiccup regex names ([0236ff6](https://github.com/thi-ng/umbrella/commit/0236ff6))
152
+ - refactor/simplify diff & dom impls ([20de716](https://github.com/thi-ng/umbrella/commit/20de716))
153
+ - extract diffDeleted()/diffAdded() from diffTree()
154
+ - extract incOffsets()/decOffsets() from diffTree()
155
+ - update diffAttributes()
156
+ - extract maybeInitElement() from createTree()/hydrateTree()
157
+ - extract addChild(), update createElement/createTextElement()
158
+ - update various conditionals
78
159
 
79
- - **hdom:** address TS strictNullChecks flag ([d83600a](https://github.com/thi-ng/umbrella/commit/d83600a))
160
+ # [8.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@8.0.0) (2019-07-07)
80
161
 
81
- ### Features
162
+ #### 🛑 Breaking changes
82
163
 
83
- - **hdom:** enable TS strict compiler flags (refactor) ([7f093b9](https://github.com/thi-ng/umbrella/commit/7f093b9))
164
+ - address TS strictNullChecks flag ([d83600a](https://github.com/thi-ng/umbrella/commit/d83600a))
165
+ - BREAKING CHANGE: all HDOMImplementation methods now mandatory, update return types
84
166
 
85
- ### BREAKING CHANGES
167
+ #### 🚀 Features
86
168
 
87
- - **hdom:** all HDOMImplementation methods now mandatory, update return types
169
+ - enable TS strict compiler flags (refactor) ([7f093b9](https://github.com/thi-ng/umbrella/commit/7f093b9))
170
+ - update return types for HDOMImplementation methods
88
171
 
89
- ## [7.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@7.2.4...@thi.ng/hdom@7.2.5) (2019-04-17)
172
+ ### [7.2.6](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@7.2.6) (2019-04-24)
90
173
 
91
- ### Bug Fixes
174
+ #### ♻️ Refactoring
92
175
 
93
- - **hdom:** update removeAttribs ([b17fb17](https://github.com/thi-ng/umbrella/commit/b17fb17))
176
+ - replace DEBUG w/ LOGGER ([a37252a](https://github.com/thi-ng/umbrella/commit/a37252a))
94
177
 
95
- ## [7.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@7.2.3...@thi.ng/hdom@7.2.4) (2019-04-11)
178
+ ### [7.2.5](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@7.2.5) (2019-04-17)
96
179
 
97
- ### Performance Improvements
180
+ #### 🩹 Bug fixes
98
181
 
99
- - **hdom:** minor update diffTree() ([f2efaa5](https://github.com/thi-ng/umbrella/commit/f2efaa5))
182
+ - update removeAttribs ([b17fb17](https://github.com/thi-ng/umbrella/commit/b17fb17))
183
+ - check for attribute first, else treat as element property
100
184
 
101
- ## [7.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@7.2.2...@thi.ng/hdom@7.2.3) (2019-04-05)
185
+ ### [7.2.4](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@7.2.4) (2019-04-11)
102
186
 
103
- ### Bug Fixes
187
+ #### ⏱ Performance improvements
104
188
 
105
- - **hdom:** off-by-one error when updating child offsets after removal ([beef4e9](https://github.com/thi-ng/umbrella/commit/beef4e9))
189
+ - minor update diffTree() ([f2efaa5](https://github.com/thi-ng/umbrella/commit/f2efaa5))
190
+ - re-order diff state checks to prioritize unchanges results
106
191
 
107
- # [7.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@7.1.4...@thi.ng/hdom@7.2.0) (2019-03-18)
192
+ ### [7.2.3](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@7.2.3) (2019-04-05)
108
193
 
109
- ### Features
194
+ #### 🩹 Bug fixes
110
195
 
111
- - **hdom:** support more input el types in updateValueAttrib() ([8813344](https://github.com/thi-ng/umbrella/commit/8813344))
196
+ - off-by-one error when updating child offsets after removal ([beef4e9](https://github.com/thi-ng/umbrella/commit/beef4e9))
112
197
 
113
- # [7.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@7.0.2...@thi.ng/hdom@7.1.0) (2019-02-10)
198
+ ## [7.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@7.2.0) (2019-03-18)
114
199
 
115
- ### Bug Fixes
200
+ #### 🚀 Features
116
201
 
117
- - **hdom:** fix [#72](https://github.com/thi-ng/umbrella/issues/72), update normalizeElement() ([3ed4ea1](https://github.com/thi-ng/umbrella/commit/3ed4ea1))
202
+ - support more input el types in updateValueAttrib() ([8813344](https://github.com/thi-ng/umbrella/commit/8813344))
118
203
 
119
- ### Features
204
+ ## [7.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@7.1.0) (2019-02-10)
120
205
 
121
- - **hdom:** add scrollTop/Left property support in setAttrib() ([895da65](https://github.com/thi-ng/umbrella/commit/895da65))
206
+ #### 🚀 Features
122
207
 
123
- # [7.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@6.1.0...@thi.ng/hdom@7.0.0) (2019-01-21)
208
+ - add scrollTop/Left property support in setAttrib() ([895da65](https://github.com/thi-ng/umbrella/commit/895da65))
124
209
 
125
- ### Build System
210
+ #### 🩹 Bug fixes
211
+
212
+ - fix [#72](https://github.com/thi-ng/umbrella/issues/72), update normalizeElement() ([3ed4ea1](https://github.com/thi-ng/umbrella/commit/3ed4ea1))
213
+ - ensure empty elements with `__skip` attrib always have at least 1 child
214
+
215
+ # [7.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@7.0.0) (2019-01-21)
216
+
217
+ #### 🛑 Breaking changes
126
218
 
127
219
  - update package scripts, outputs, imports in remaining packages ([f912a84](https://github.com/thi-ng/umbrella/commit/f912a84))
220
+ - BREAKING CHANGE: enable multi-outputs (ES6 modules, CJS, UMD)
221
+ - build scripts now first build ES6 modules in package root, then call
222
+ `scripts/bundle-module` to build minified CJS & UMD bundles in `/lib`
223
+ - all imports MUST be updated to only refer to package level
224
+ (not individual files anymore). tree shaking in user land will get rid of
225
+ all unused imported symbols
226
+
227
+ ## [6.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@6.1.0) (2018-12-21)
228
+
229
+ #### 🚀 Features
230
+
231
+ - add support for event listener options, update readme ([6618c22](https://github.com/thi-ng/umbrella/commit/6618c22))
232
+
233
+ ### [6.0.4](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@6.0.4) (2018-12-21)
234
+
235
+ #### 🩹 Bug fixes
236
+
237
+ - fix [#63](https://github.com/thi-ng/umbrella/issues/63) update removeChild() (IE11) ([9f48a76](https://github.com/thi-ng/umbrella/commit/9f48a76))
238
+
239
+ ### [6.0.2](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@6.0.2) (2018-12-16)
240
+
241
+ #### 🩹 Bug fixes
242
+
243
+ - life cycle init / release handling ([6d85c62](https://github.com/thi-ng/umbrella/commit/6d85c62))
244
+ - createTree() init handling: call AFTER all children have been created
245
+ - releaseTree(): bind release() calls to component (not tag wrapper)
246
+ - update docs / readme
247
+
248
+ # [6.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@6.0.0) (2018-12-13)
249
+
250
+ #### 🛑 Breaking changes
128
251
 
129
- ### BREAKING CHANGES
252
+ - extend & simplify HDOMImplementation, update DEFAULT_IMPL ([6f2e8ee](https://github.com/thi-ng/umbrella/commit/6f2e8ee))
253
+ - BREAKING CHANGE: extend & simplify HDOMImplementation
254
+ - update args for HDOMImplementation methods
255
+ - add createElement(), createTextElement() & getElementById() methods
256
+ to HDOMImplementation
257
+ - rename createDOM() => createTree(), make generic
258
+ - rename hydrateDOM() => hydrateTree(), make generic
259
+ - update / fix diffTree() __impl attrib handling:
260
+ only delegate if __impl != current impl
261
+ - update resolveRoot() to require impl arg & delegate
130
262
 
131
- - enable multi-outputs (ES6 modules, CJS, UMD)
132
- - build scripts now first build ES6 modules in package root, then call `scripts/bundle-module` to build minified CJS & UMD bundles in `/lib`
133
- - all imports MUST be updated to only refer to package level (not individual files anymore). tree shaking in user land will get rid of all unused imported symbols
263
+ #### 🚀 Features
134
264
 
135
- # [6.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@6.0.4...@thi.ng/hdom@6.1.0) (2018-12-21)
265
+ - add initial __skip ctrl attrib handling in diffTree() ([a4e6736](https://github.com/thi-ng/umbrella/commit/a4e6736))
136
266
 
137
- ### Features
267
+ #### ♻️ Refactoring
138
268
 
139
- - **hdom:** add support for event listener options, update readme ([6618c22](https://github.com/thi-ng/umbrella/commit/6618c22))
269
+ - update createTextElement() sig, update docstrings ([fe9a312](https://github.com/thi-ng/umbrella/commit/fe9a312))
140
270
 
141
- ## [6.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@6.0.3...@thi.ng/hdom@6.0.4) (2018-12-21)
271
+ ### [5.2.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@5.2.1) (2018-12-08)
142
272
 
143
- ### Bug Fixes
273
+ #### ♻️ Refactoring
144
274
 
145
- - **hdom:** fix [#63](https://github.com/thi-ng/umbrella/issues/63) update removeChild() (IE11) ([9f48a76](https://github.com/thi-ng/umbrella/commit/9f48a76))
275
+ - minor update diff call sites ([c3f6f98](https://github.com/thi-ng/umbrella/commit/c3f6f98))
276
+ - update diffTree & diffAttributes ([@thi.ng/diff](https://github.com/thi-ng/umbrella/tree/main/packages/diff) updates) ([e9b067b](https://github.com/thi-ng/umbrella/commit/e9b067b))
146
277
 
147
- ## [6.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@6.0.1...@thi.ng/hdom@6.0.2) (2018-12-16)
278
+ ## [5.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@5.2.0) (2018-11-07)
148
279
 
149
- ### Bug Fixes
280
+ #### 🚀 Features
150
281
 
151
- - **hdom:** life cycle init / release handling ([6d85c62](https://github.com/thi-ng/umbrella/commit/6d85c62))
282
+ - update auto-deref ctx behavior ([3016116](https://github.com/thi-ng/umbrella/commit/3016116))
283
+ - add `autoDerefKeys` option
284
+ - update docs
285
+ - update tests
152
286
 
153
- # [6.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@5.2.2...@thi.ng/hdom@6.0.0) (2018-12-13)
287
+ ## [5.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@5.1.0) (2018-11-06)
154
288
 
155
- ### Code Refactoring
289
+ #### 🚀 Features
156
290
 
157
- - **hdom:** extend & simplify HDOMImplementation, update DEFAULT_IMPL ([6f2e8ee](https://github.com/thi-ng/umbrella/commit/6f2e8ee))
291
+ - add support for dynamic user context vals ([6a3a873](https://github.com/thi-ng/umbrella/commit/6a3a873))
292
+ - update start() & renderOnce()
293
+ - reformat all sub-modules
294
+ - update docs & tests
158
295
 
159
- ### Features
296
+ ### [5.0.3](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@5.0.3) (2018-09-24)
160
297
 
161
- - **hdom:** add initial__skip ctrl attrib handling in diffTree() ([a4e6736](https://github.com/thi-ng/umbrella/commit/a4e6736))
298
+ #### 🩹 Bug fixes
162
299
 
163
- ### BREAKING CHANGES
300
+ - add DEFAULT_IMPL to re-exports ([#47](https://github.com/thi-ng/umbrella/issues/47)) ([50fa649](https://github.com/thi-ng/umbrella/commit/50fa649))
164
301
 
165
- - **hdom:** extend & simplify HDOMImplementation
302
+ ### [5.0.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@5.0.1) (2018-09-23)
166
303
 
167
- - update args for HDOMImplementation methods
168
- - add createElement(), createTextElement() & getElementById() methods
169
- to HDOMImplementation
170
- - rename createDOM() => createTree(), make generic
171
- - rename hydrateDOM() => hydrateTree(), make generic
172
- - update / fix diffTree()__impl attrib handling:
173
- only delegate if__impl != current impl
174
- - update resolveRoot() to require impl arg & delegate
304
+ #### ♻️ Refactoring
175
305
 
176
- # [5.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@5.1.0...@thi.ng/hdom@5.2.0) (2018-11-07)
306
+ - minor refactoring, fix/update docs ([4a2f79b](https://github.com/thi-ng/umbrella/commit/4a2f79b))
307
+ - extract resolveRoot() helper fn
308
+ - update start(), renderOnce()
309
+ - update various doc strings
177
310
 
178
- ### Features
311
+ # [5.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@5.0.0) (2018-09-22)
179
312
 
180
- - **hdom:** update auto-deref ctx behavior ([3016116](https://github.com/thi-ng/umbrella/commit/3016116))
313
+ #### 🚀 Features
181
314
 
182
- # [5.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@5.0.7...@thi.ng/hdom@5.1.0) (2018-11-06)
315
+ - add renderOnce() ([5ef9cf0](https://github.com/thi-ng/umbrella/commit/5ef9cf0))
183
316
 
184
- ### Features
317
+ #### ⏱ Performance improvements
185
318
 
186
- - **hdom:** add support for dynamic user context vals ([6a3a873](https://github.com/thi-ng/umbrella/commit/6a3a873))
319
+ - minor updates ([de17db8](https://github.com/thi-ng/umbrella/commit/de17db8))
187
320
 
188
- ## [5.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@5.0.2...@thi.ng/hdom@5.0.3) (2018-09-24)
321
+ #### ♻️ Refactoring
189
322
 
190
- ### Bug Fixes
323
+ - allow HDOMOpts extensions ([6d6fae3](https://github.com/thi-ng/umbrella/commit/6d6fae3))
191
324
 
192
- - **hdom:** add DEFAULT_IMPL to re-exports ([#47](https://github.com/thi-ng/umbrella/issues/47)) ([50fa649](https://github.com/thi-ng/umbrella/commit/50fa649))
325
+ ### [5.0.0-alpha](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@5.0.0-alpha) (2018-09-16)
193
326
 
194
- # [5.0.0](https://github.com/thi-ng/umbrella/compare/525d90d5...@thi.ng/hdom@5.0.0) (2018-09-22)
327
+ #### 🚀 Features
195
328
 
196
- ### Features
329
+ - add `.toHiccup()` interface support ([54ba0ce](https://github.com/thi-ng/umbrella/commit/54ba0ce))
330
+ - add `.toHiccup()` type check in `normalizeTree()` and call w/
331
+ user context
332
+ - reorg & extend HDOMImplementation ([1ac245f](https://github.com/thi-ng/umbrella/commit/1ac245f))
333
+ - add normalizeTree, hydrateTree & diffTree to HDOMImplementation
334
+ - add HDOMBehaviorAttribs
335
+ - update ComponentAttribs
336
+ - remove `normalize` option from HDOMOpts
337
+ (use `__normalize` attrib instead)
338
+ - update DEFAULT_IMPL, move to default.ts
339
+ - fix embedded fn handling in createDOM() & hydrateDOM()
340
+ (inject user context)
341
+ - add `__impl` support in hydrateDOM()
342
+ - add opt `impl` arg for start()
343
+ BREAKING CHANGES: new names & call signatures for:
344
+ - normalizeTree
345
+ - diffElement => diffTree
346
+ - createDOM
347
+ - hydrateDOM
348
+ - replaceChild
349
+ - update normalizeTree, add to HDOMImplementation ([59bb19c](https://github.com/thi-ng/umbrella/commit/59bb19c))
350
+ - update normalizeTree() to check for & use branch-local impl if present
351
+ - add existing normalizeTree to DEFAULT_IMPL
352
+ - update HDOMImplementation interface
197
353
 
198
- - **hdom:** generalize diffElement() ([#4](https://github.com/thi-ng/umbrella/issues/4)) ([525d90d](https://github.com/thi-ng/umbrella/commit/525d90d))
199
- - **hdom:** update normalizeTree, add to HDOMImplementation ([59bb19c](https://github.com/thi-ng/umbrella/commit/59bb19c))
200
- - **hdom:** reorg & extend HDOMImplementation ([1ac245f](https://github.com/thi-ng/umbrella/commit/1ac245f))
201
- - **hdom:** add `.toHiccup()` interface support ([54ba0ce](https://github.com/thi-ng/umbrella/commit/54ba0ce))
202
- - **hdom:** add renderOnce() ([5ef9cf0](https://github.com/thi-ng/umbrella/commit/5ef9cf0))
354
+ #### 🩹 Bug fixes
203
355
 
204
- ### Bug fixes
356
+ - delegate diffTree() to branch impl ([6c33901](https://github.com/thi-ng/umbrella/commit/6c33901))
357
+ - exclude hdom control attribs in setAttrib() ([0592063](https://github.com/thi-ng/umbrella/commit/0592063))
358
+ - minor fix (hydrateDOM) ([e4f780c](https://github.com/thi-ng/umbrella/commit/e4f780c))
205
359
 
206
- - **hdom:** minor fix (hydrateDOM) ([e4f780c](https://github.com/thi-ng/umbrella/commit/e4f780c))
207
- - **hdom:** exclude hdom control attribs in setAttrib() ([0592063](https://github.com/thi-ng/umbrella/commit/0592063))
208
- - **hdom:** delegate diffTree() to branch impl ([6c33901](https://github.com/thi-ng/umbrella/commit/6c33901))
360
+ #### Performance improvements
209
361
 
210
- ### Performance Improvements
362
+ - update diffTree(), inline node type checks ([382c45c](https://github.com/thi-ng/umbrella/commit/382c45c))
363
+ - add child tracking index table template for diffTree()
364
+ - bail out early if edit distance = 2 and only attribs changed
365
+ - update checks in normalizeTree(), normalizeElement(), createDOM(),
366
+ hydrateDOM(), setAttrib()
367
+ - rename releaseDeep() => releaseTree()
368
+ -
369
+ - add opt `__release` attrib to disable releaseDeep() ([2e3fb66](https://github.com/thi-ng/umbrella/commit/2e3fb66))
211
370
 
212
- - **hdom:** add opt `__release` attrib to disable releaseDeep() ([2e3fb66](https://github.com/thi-ng/umbrella/commit/2e3fb66))
213
- - **hdom:** update diffTree(), inline node type checks ([382c45c](https://github.com/thi-ng/umbrella/commit/382c45c))
214
- - **hdom:** minor updates ([de17db8](https://github.com/thi-ng/umbrella/commit/de17db8))
371
+ #### ♻️ Refactoring
215
372
 
216
- ### BREAKING CHANGES
373
+ - export diff related fns ([ebfcf15](https://github.com/thi-ng/umbrella/commit/ebfcf15))
374
+ - update custom equiv() ([d9af2e5](https://github.com/thi-ng/umbrella/commit/d9af2e5))
375
+ - use custom equiv also for diffAttributes() ([bde18d5](https://github.com/thi-ng/umbrella/commit/bde18d5))
376
+ - trial run of custom equiv() impl for diffTree() ([96beaf3](https://github.com/thi-ng/umbrella/commit/96beaf3))
217
377
 
218
- - **hdom:** new names & call signatures for:
219
- - normalizeTree
220
- - diffElement => diffTree
221
- - createDOM
222
- - hydrateDOM
223
- - replaceChild
378
+ ### [4.0.5](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@4.0.5) (2018-09-10)
224
379
 
225
- ## [4.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@4.0.2...@thi.ng/hdom@4.0.3) (2018-09-01)
380
+ #### 🚀 Features
226
381
 
227
- ### Bug Fixes
382
+ - generalize diffElement() ([#4](https://github.com/thi-ng/umbrella/issues/4)) ([525d90d](https://github.com/thi-ng/umbrella/commit/525d90d))
383
+ - add HDOMOps interface
384
+ - add DEFAULT_OPS implementation
385
+ - update diffElement() & diffAttributes() to delegate to ops
386
+ - refactor diffElement() to be more legible
387
+ - update createDOM(), add support for `__ops` node attrib
388
+ to use custom ops for subtrees
389
+ - add getChild(), replaceChild(), setContent()
390
+ - add optional support for blocking normalize & diff ([5cb4350](https://github.com/thi-ng/umbrella/commit/5cb4350))
391
+ - add `__normalize` attrib to stop normalization of subtree
392
+ - add `__diff` attrib to stop diffing of subtree
228
393
 
229
- - **hdom:** fix local import ([e66a492](https://github.com/thi-ng/umbrella/commit/e66a492))
394
+ #### ♻️ Refactoring
230
395
 
231
- # [4.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.35...@thi.ng/hdom@4.0.0) (2018-08-31)
396
+ - rename HDOMOps => HDOMImplementation, add docs ([cc73c76](https://github.com/thi-ng/umbrella/commit/cc73c76))
397
+ - rename `__ops` attrib => `__impl`
232
398
 
233
- ### Features
399
+ ### [4.0.3](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@4.0.3) (2018-09-01)
234
400
 
235
- - **hdom:** add DOM hydration support (SSR), update start() ([#39](https://github.com/thi-ng/umbrella/issues/39)) ([9f8010d](https://github.com/thi-ng/umbrella/commit/9f8010d))
236
- - **hdom:** update HDOMOpts & start() ([5e74a9c](https://github.com/thi-ng/umbrella/commit/5e74a9c))
401
+ #### 🩹 Bug fixes
237
402
 
238
- ### BREAKING CHANGES
403
+ - fix local import ([e66a492](https://github.com/thi-ng/umbrella/commit/e66a492))
239
404
 
240
- - **hdom:** start() args now as options object
405
+ # [4.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@4.0.0) (2018-08-31)
241
406
 
242
- ## [3.0.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.27...@thi.ng/hdom@3.0.28) (2018-07-10)
407
+ #### 🛑 Breaking changes
243
408
 
244
- ### Bug Fixes
409
+ - add DOM hydration support (SSR), update start() ([#39](https://github.com/thi-ng/umbrella/issues/39)) ([9f8010d](https://github.com/thi-ng/umbrella/commit/9f8010d))
410
+ - add HDOMOpts interface
411
+ - add hydrateDOM()
412
+ - update start() to support hydration
413
+ - re-use migrated NO_SPANS const from hiccup
414
+ - switch all fn to arrow fns
415
+ - BREAKING CHANGE: start() args now as options object
245
416
 
246
- - **hdom:** always update "value" attrib last in diffAttributes() ([126103b](https://github.com/thi-ng/umbrella/commit/126103b))
417
+ #### 🚀 Features
247
418
 
248
- ## [3.0.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.22...@thi.ng/hdom@3.0.23) (2018-05-15)
419
+ - update HDOMOpts & start() ([5e74a9c](https://github.com/thi-ng/umbrella/commit/5e74a9c))
420
+ - add `normalize` option
421
+ - simplify `start()`
249
422
 
250
- ### Bug Fixes
423
+ #### ♻️ Refactoring
251
424
 
252
- - **hdom:** delay init() lifecycle call to ensure children are available ([2482b16](https://github.com/thi-ng/umbrella/commit/2482b16))
425
+ - minor update HDOMOpts & start() ([d55d930](https://github.com/thi-ng/umbrella/commit/d55d930))
426
+ - rename `parent` option => `root`
253
427
 
254
- ## [3.0.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.20...@thi.ng/hdom@3.0.21) (2018-05-14)
428
+ ### [3.0.33](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.33) (2018-08-24)
255
429
 
256
- ### Bug Fixes
430
+ #### ♻️ Refactoring
257
431
 
258
- - **hdom:** component obj lifecycle method thisArg handling ([ade96f8](https://github.com/thi-ng/umbrella/commit/ade96f8))
432
+ - remove [@thi.ng/iterators](https://github.com/thi-ng/umbrella/tree/main/packages/iterators) dependency ([1434b0e](https://github.com/thi-ng/umbrella/commit/1434b0e))
433
+ - replace SEMAPHORE const w/ [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/main/packages/api) def ([9b443cb](https://github.com/thi-ng/umbrella/commit/9b443cb))
259
434
 
260
- ## [3.0.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.14...@thi.ng/hdom@3.0.15) (2018-05-09)
435
+ ### [3.0.32](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.32) (2018-08-01)
261
436
 
262
- ### Bug Fixes
437
+ #### ♻️ Refactoring
263
438
 
264
- - **hdom:** native boolean attrib handling (e.g. "checked") ([68ea086](https://github.com/thi-ng/umbrella/commit/68ea086))
439
+ - cleanup imports ([1467273](https://github.com/thi-ng/umbrella/commit/1467273))
265
440
 
266
- ## [3.0.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.13...@thi.ng/hdom@3.0.14) (2018-05-01)
441
+ ### [3.0.28](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.28) (2018-07-10)
267
442
 
268
- ### Bug Fixes
443
+ #### 🩹 Bug fixes
269
444
 
270
- - **hdom:** boolean attrib reset/removal ([a93cb98](https://github.com/thi-ng/umbrella/commit/a93cb98))
445
+ - always update "value" attrib last in diffAttributes() ([126103b](https://github.com/thi-ng/umbrella/commit/126103b))
446
+ - fixes issue when patching <input type=range> elements
447
+ with changed min/max limits
271
448
 
272
- ## [3.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.12...@thi.ng/hdom@3.0.13) (2018-04-30)
449
+ ### [3.0.23](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.23) (2018-05-15)
273
450
 
274
- ### Performance Improvements
451
+ #### 🩹 Bug fixes
275
452
 
276
- - **hdom:** only build linear diff edit log ([7a543a5](https://github.com/thi-ng/umbrella/commit/7a543a5))
453
+ - delay init() lifecycle call to ensure children are available ([2482b16](https://github.com/thi-ng/umbrella/commit/2482b16))
454
+ - update diffElement()
277
455
 
278
- ## [3.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.11...@thi.ng/hdom@3.0.12) (2018-04-29)
456
+ ### [3.0.21](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.21) (2018-05-14)
279
457
 
280
- ### Performance Improvements
458
+ #### 🩹 Bug fixes
281
459
 
282
- - **hdom:** update event handling in diffAttributes() ([31ec3af](https://github.com/thi-ng/umbrella/commit/31ec3af))
460
+ - component obj lifecycle method thisArg handling ([ade96f8](https://github.com/thi-ng/umbrella/commit/ade96f8))
283
461
 
284
- ## [3.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.10...@thi.ng/hdom@3.0.11) (2018-04-26)
462
+ ### [3.0.16](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.16) (2018-05-10)
285
463
 
286
- ## [3.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.0...@thi.ng/hdom@3.0.1) (2018-04-09)
464
+ #### ♻️ Refactoring
287
465
 
288
- ### Performance Improvements
466
+ - update deps & imports in all packages due to [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/main/packages/api) split ([bc45636](https://github.com/thi-ng/umbrella/commit/bc45636))
289
467
 
290
- - **hdom:** intern imported checks, update normalizeTree(), add docs, fix tests ([2a91e30](https://github.com/thi-ng/umbrella/commit/2a91e30))
468
+ ### [3.0.15](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.15) (2018-05-09)
291
469
 
292
- # [3.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@2.3.3...@thi.ng/hdom@3.0.0) (2018-04-08)
470
+ #### 🩹 Bug fixes
293
471
 
294
- ### Features
472
+ - native boolean attrib handling (e.g. "checked") ([68ea086](https://github.com/thi-ng/umbrella/commit/68ea086))
295
473
 
296
- - **hdom:** fix [#13](https://github.com/thi-ng/umbrella/issues/13), add support for user context and pass to components ([70cfe06](https://github.com/thi-ng/umbrella/commit/70cfe06))
474
+ ### [3.0.14](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.14) (2018-05-01)
297
475
 
298
- ### BREAKING CHANGES
476
+ #### 🩹 Bug fixes
299
477
 
300
- - **hdom:** component functions & lifecycle hooks now receive user context object as their first arg. All components accepting arguments must be updated, but can potentially be simplified at the same time.
478
+ - boolean attrib reset/removal ([a93cb98](https://github.com/thi-ng/umbrella/commit/a93cb98))
301
479
 
302
- # [2.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@2.2.5...@thi.ng/hdom@2.3.0) (2018-03-21)
480
+ ### [3.0.13](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.13) (2018-04-30)
303
481
 
304
- ### Features
482
+ #### ⏱ Performance improvements
305
483
 
306
- - **hdom:** update error handling, add [@thi](https://github.com/thi).ng/api dep ([f5173f1](https://github.com/thi-ng/umbrella/commit/f5173f1))
484
+ - only build linear diff edit log ([7a543a5](https://github.com/thi-ng/umbrella/commit/7a543a5))
307
485
 
308
- # [2.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@2.1.1...@thi.ng/hdom@2.2.0) (2018-03-14)
486
+ ### [3.0.12](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.12) (2018-04-29)
309
487
 
310
- ### Features
488
+ #### ⏱ Performance improvements
311
489
 
312
- - **hdom:** add auto deref() support ([0fe6c44](https://github.com/thi-ng/umbrella/commit/0fe6c44))
490
+ - update event handling in diffAttributes() ([31ec3af](https://github.com/thi-ng/umbrella/commit/31ec3af))
491
+ - avoid replacing element if changed event handlers
492
+ - update removeAttribs()
313
493
 
314
- # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@2.0.0...@thi.ng/hdom@2.1.0) (2018-03-05)
494
+ ### [3.0.1](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.1) (2018-04-09)
315
495
 
316
- ### Features
496
+ #### ⏱ Performance improvements
317
497
 
318
- - **hdom:** add support for frame skipping, add docs ([a200beb](https://github.com/thi-ng/umbrella/commit/a200beb))
498
+ - intern imported checks, update normalizeTree(), add docs, fix tests ([2a91e30](https://github.com/thi-ng/umbrella/commit/2a91e30))
499
+ - avoid `path` copies in normalizeTree()
500
+ - fix `render` life cycle return val handling
501
+ (must be array for init/release to be called)
319
502
 
320
- # 2.0.0 (2018-03-03)
503
+ # [3.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@3.0.0) (2018-04-08)
321
504
 
322
- ### Documentation
505
+ #### 🛑 Breaking changes
323
506
 
324
- - **hdom:** update readme ([79e1b09](https://github.com/thi-ng/umbrella/commit/79e1b09))
507
+ - fix [#13](https://github.com/thi-ng/umbrella/issues/13), add support for user context and pass to components ([70cfe06](https://github.com/thi-ng/umbrella/commit/70cfe06))
508
+ - add optional context arg for start()
509
+ - update normalizeTree(), diffElement() to inject provided context for
510
+ all component functions and objects w/ lifecycle methods
511
+ - context is always injected as 1st arg to comp fns, with only exception of
512
+ `init` lifecycle hook, where (for perf reasons) the created DOM element
513
+ is passed as the first arg (context 2nd)
514
+ - various minor optimizations
515
+ - add doc strings
516
+ - BREAKING CHANGE: component functions & lifecycle hooks now receive user
517
+ context object as their first arg. All components accepting arguments must
518
+ be updated, but can potentially be simplified at the same time.
325
519
 
326
- ### BREAKING CHANGES
520
+ ## [2.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@2.3.0) (2018-03-21)
327
521
 
328
- - **hdom:** rename package hiccup-dom => hdom
522
+ #### 🚀 Features
329
523
 
330
- # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-dom@1.1.0...@thi.ng/hiccup-dom@1.2.0) (2018-02-28)
524
+ - update error handling, add [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/main/packages/api) dep ([f5173f1](https://github.com/thi-ng/umbrella/commit/f5173f1))
331
525
 
332
- ### Features
526
+ ## [2.2.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@2.2.0) (2018-03-14)
333
527
 
334
- - **hiccup-dom:** add support for function attribs, add docs ([ca17389](https://github.com/thi-ng/umbrella/commit/ca17389))
528
+ #### 🚀 Features
335
529
 
336
- # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-dom@1.0.7...@thi.ng/hiccup-dom@1.1.0) (2018-02-27)
530
+ - add auto deref() support ([0fe6c44](https://github.com/thi-ng/umbrella/commit/0fe6c44))
531
+ - top-level or child element objects with `deref()` impl will be automatically resolved
337
532
 
338
- ### Features
533
+ #### ♻️ Refactoring
339
534
 
340
- - **hiccup-dom:** fix [#11](https://github.com/thi-ng/umbrella/issues/11), update normalizeTree/normalizeElement ([f5b6675](https://github.com/thi-ng/umbrella/commit/f5b6675))
341
- - **hiccup-dom:** start(), add optional spans arg ([8a070ff](https://github.com/thi-ng/umbrella/commit/8a070ff))
535
+ - disable deref() for attrib objects ([28b0b57](https://github.com/thi-ng/umbrella/commit/28b0b57))
342
536
 
343
- ## [1.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-dom@1.0.2...@thi.ng/hiccup-dom@1.0.3) (2018-02-04)
537
+ ## [2.1.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@2.1.0) (2018-03-05)
344
538
 
345
- ### Bug Fixes
539
+ #### 🚀 Features
346
540
 
347
- - **hiccup-dom:** support parent DOM ID as arg start() ([1f4f4b8](https://github.com/thi-ng/umbrella/commit/1f4f4b8))
541
+ - add support for frame skipping, add docs ([a200beb](https://github.com/thi-ng/umbrella/commit/a200beb))
348
542
 
349
- ## [1.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-dom@1.0.1...@thi.ng/hiccup-dom@1.0.2) (2018-02-03)
543
+ # [2.0.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/hdom@2.0.0) (2018-03-03)
350
544
 
351
- ### Bug Fixes
545
+ #### 🛑 Breaking changes
352
546
 
353
- - **hiccup-dom:** fix [#3](https://github.com/thi-ng/umbrella/issues/3), update start() to be cancellable, add docs ([4edf45f](https://github.com/thi-ng/umbrella/commit/4edf45f))
547
+ - update readme ([79e1b09](https://github.com/thi-ng/umbrella/commit/79e1b09))
548
+ - BREAKING CHANGE: rename package hiccup-dom => hdom
354
549
 
355
- ## [1.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-dom@1.0.0...@thi.ng/hiccup-dom@1.0.1) (2018-02-03)
550
+ #### ♻️ Refactoring
356
551
 
357
- ### Bug Fixes
552
+ - rename package hiccup-dom => hdom ([f1c5315](https://github.com/thi-ng/umbrella/commit/f1c5315))
package/README.md CHANGED
@@ -151,7 +151,7 @@ yarn install
151
151
  yarn start
152
152
  ```
153
153
 
154
- Package sizes (gzipped, pre-treeshake): ESM: 3.70 KB
154
+ Package sizes (gzipped, pre-treeshake): ESM: 3.71 KB
155
155
 
156
156
  ## Dependencies
157
157
 
package/diff.js CHANGED
@@ -20,7 +20,7 @@ const buildIndex = (n) => {
20
20
  return INDEX.slice(0, n);
21
21
  }
22
22
  const res = new Array(n);
23
- while (--n >= 2) {
23
+ while (n-- > 2) {
24
24
  res[n] = n - 2;
25
25
  }
26
26
  return res;
@@ -172,7 +172,7 @@ export const diffAttributes = (impl, el, prev, curr) => {
172
172
  ? impl.setAttrib(el, e, edits[i + 1], curr)
173
173
  : (val = edits[i + 1]);
174
174
  }
175
- for (edits = delta.adds, i = edits.length; --i >= 0;) {
175
+ for (edits = delta.adds, i = edits.length; i-- > 0;) {
176
176
  e = edits[i];
177
177
  e !== "value" ? impl.setAttrib(el, e, curr[e], curr) : (val = curr[e]);
178
178
  }
@@ -200,7 +200,7 @@ export const releaseTree = (tree) => {
200
200
  tree.__release.apply(tree.__this, tree.__args);
201
201
  delete tree.__release;
202
202
  }
203
- for (x = tree.length; --x >= 2;) {
203
+ for (x = tree.length; x-- > 2;) {
204
204
  releaseTree(tree[x]);
205
205
  }
206
206
  }
package/dom.js CHANGED
@@ -233,7 +233,7 @@ export const updateValueAttrib = (el, value) => {
233
233
  }
234
234
  };
235
235
  export const removeAttribs = (el, attribs, prev) => {
236
- for (let i = attribs.length; --i >= 0;) {
236
+ for (let i = attribs.length; i-- > 0;) {
237
237
  const a = attribs[i];
238
238
  if (a[0] === "o" && a[1] === "n") {
239
239
  removeListener(el, a.substr(2), prev[a]);
package/package.json CHANGED
@@ -1,123 +1,128 @@
1
1
  {
2
- "name": "@thi.ng/hdom",
3
- "version": "9.0.7",
4
- "description": "Lightweight vanilla ES6 UI component trees with customizable branch-local behaviors",
5
- "type": "module",
6
- "module": "./index.js",
7
- "typings": "./index.d.ts",
8
- "sideEffects": false,
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/thi-ng/umbrella.git"
2
+ "name": "@thi.ng/hdom",
3
+ "version": "9.1.2",
4
+ "description": "Lightweight vanilla ES6 UI component trees with customizable branch-local behaviors",
5
+ "type": "module",
6
+ "module": "./index.js",
7
+ "typings": "./index.d.ts",
8
+ "sideEffects": false,
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/thi-ng/umbrella.git"
12
+ },
13
+ "homepage": "https://github.com/thi-ng/umbrella/tree/develop/packages/hdom#readme",
14
+ "funding": [
15
+ {
16
+ "type": "github",
17
+ "url": "https://github.com/sponsors/postspectacular"
12
18
  },
13
- "homepage": "https://github.com/thi-ng/umbrella/tree/develop/packages/hdom#readme",
14
- "funding": [
15
- {
16
- "type": "github",
17
- "url": "https://github.com/sponsors/postspectacular"
18
- },
19
- {
20
- "type": "patreon",
21
- "url": "https://patreon.com/thing_umbrella"
22
- }
23
- ],
24
- "author": "Karsten Schmidt <k+npm@thi.ng>",
25
- "license": "Apache-2.0",
26
- "scripts": {
27
- "build": "yarn clean && tsc --declaration",
28
- "clean": "rimraf *.js *.d.ts *.map doc",
29
- "doc": "typedoc --excludePrivate --excludeInternal --out doc src/index.ts",
30
- "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose",
31
- "doc:readme": "yarn doc:stats && ../../scripts/node-esm ../../tools/src/readme.ts",
32
- "doc:stats": "../../scripts/node-esm ../../tools/src/module-stats.ts",
33
- "pub": "yarn build && yarn publish --access public",
34
- "test": "testament test"
19
+ {
20
+ "type": "patreon",
21
+ "url": "https://patreon.com/thing_umbrella"
22
+ }
23
+ ],
24
+ "author": "Karsten Schmidt <k+npm@thi.ng>",
25
+ "license": "Apache-2.0",
26
+ "scripts": {
27
+ "build": "yarn clean && tsc --declaration",
28
+ "clean": "rimraf '*.js' '*.d.ts' '*.map' doc",
29
+ "doc": "typedoc --excludePrivate --excludeInternal --out doc src/index.ts",
30
+ "doc:ae": "mkdir -p .ae/doc .ae/temp && api-extractor run --local --verbose",
31
+ "doc:readme": "yarn doc:stats && tools:readme",
32
+ "doc:stats": "tools:module-stats",
33
+ "pub": "yarn npm publish --access public",
34
+ "test": "testament test"
35
+ },
36
+ "dependencies": {
37
+ "@thi.ng/api": "^8.3.2",
38
+ "@thi.ng/checks": "^3.1.2",
39
+ "@thi.ng/diff": "^5.1.2",
40
+ "@thi.ng/equiv": "^2.1.2",
41
+ "@thi.ng/errors": "^2.1.2",
42
+ "@thi.ng/hiccup": "^4.2.2",
43
+ "@thi.ng/logger": "^1.1.2",
44
+ "@thi.ng/prefixes": "^2.1.2"
45
+ },
46
+ "devDependencies": {
47
+ "@microsoft/api-extractor": "^7.18.19",
48
+ "@thi.ng/atom": "^5.1.2",
49
+ "@thi.ng/testament": "^0.2.2",
50
+ "rimraf": "^3.0.2",
51
+ "tools": "^0.0.1",
52
+ "typedoc": "^0.22.9",
53
+ "typescript": "^4.5.2"
54
+ },
55
+ "keywords": [
56
+ "array",
57
+ "browser",
58
+ "component",
59
+ "datadriven",
60
+ "declarative",
61
+ "diff",
62
+ "dom",
63
+ "functional",
64
+ "ioc",
65
+ "iterator",
66
+ "reactive",
67
+ "tree",
68
+ "typescript",
69
+ "ui",
70
+ "vdom"
71
+ ],
72
+ "publishConfig": {
73
+ "access": "public"
74
+ },
75
+ "engines": {
76
+ "node": ">=12.7"
77
+ },
78
+ "files": [
79
+ "*.js",
80
+ "*.d.ts"
81
+ ],
82
+ "exports": {
83
+ ".": {
84
+ "import": "./index.js"
35
85
  },
36
- "dependencies": {
37
- "@thi.ng/api": "^8.1.0",
38
- "@thi.ng/checks": "^3.0.6",
39
- "@thi.ng/diff": "^5.0.7",
40
- "@thi.ng/equiv": "^2.0.6",
41
- "@thi.ng/errors": "^2.0.6",
42
- "@thi.ng/hiccup": "^4.1.3",
43
- "@thi.ng/logger": "^1.0.6",
44
- "@thi.ng/prefixes": "^2.0.6"
86
+ "./api": {
87
+ "import": "./api.js"
45
88
  },
46
- "devDependencies": {
47
- "@thi.ng/atom": "^5.0.7",
48
- "@thi.ng/testament": "^0.1.6"
89
+ "./default": {
90
+ "import": "./default.js"
49
91
  },
50
- "keywords": [
51
- "array",
52
- "browser",
53
- "component",
54
- "datadriven",
55
- "declarative",
56
- "diff",
57
- "dom",
58
- "functional",
59
- "ioc",
60
- "iterator",
61
- "reactive",
62
- "tree",
63
- "typescript",
64
- "ui",
65
- "vdom"
66
- ],
67
- "publishConfig": {
68
- "access": "public"
92
+ "./diff": {
93
+ "import": "./diff.js"
69
94
  },
70
- "engines": {
71
- "node": ">=12.7"
95
+ "./dom": {
96
+ "import": "./dom.js"
72
97
  },
73
- "files": [
74
- "*.js",
75
- "*.d.ts"
76
- ],
77
- "exports": {
78
- ".": {
79
- "import": "./index.js"
80
- },
81
- "./api": {
82
- "import": "./api.js"
83
- },
84
- "./default": {
85
- "import": "./default.js"
86
- },
87
- "./diff": {
88
- "import": "./diff.js"
89
- },
90
- "./dom": {
91
- "import": "./dom.js"
92
- },
93
- "./logger": {
94
- "import": "./logger.js"
95
- },
96
- "./normalize": {
97
- "import": "./normalize.js"
98
- },
99
- "./render-once": {
100
- "import": "./render-once.js"
101
- },
102
- "./resolve": {
103
- "import": "./resolve.js"
104
- },
105
- "./start": {
106
- "import": "./start.js"
107
- }
98
+ "./logger": {
99
+ "import": "./logger.js"
108
100
  },
109
- "thi.ng": {
110
- "blog": [
111
- {
112
- "title": "How to UI in 2018",
113
- "url": "https://medium.com/@thi.ng/how-to-ui-in-2018-ac2ae02acdf3"
114
- },
115
- {
116
- "title": "Of umbrellas, transducers, reactive streams & mushrooms (Pt.1)",
117
- "url": "https://medium.com/@thi.ng/of-umbrellas-transducers-reactive-streams-mushrooms-pt-1-a8717ce3a170"
118
- }
119
- ],
120
- "year": 2015
101
+ "./normalize": {
102
+ "import": "./normalize.js"
121
103
  },
122
- "gitHead": "852cd2450617c86d15d18477dc634f17f04202eb"
123
- }
104
+ "./render-once": {
105
+ "import": "./render-once.js"
106
+ },
107
+ "./resolve": {
108
+ "import": "./resolve.js"
109
+ },
110
+ "./start": {
111
+ "import": "./start.js"
112
+ }
113
+ },
114
+ "thi.ng": {
115
+ "blog": [
116
+ {
117
+ "title": "How to UI in 2018",
118
+ "url": "https://medium.com/@thi.ng/how-to-ui-in-2018-ac2ae02acdf3"
119
+ },
120
+ {
121
+ "title": "Of umbrellas, transducers, reactive streams & mushrooms (Pt.1)",
122
+ "url": "https://medium.com/@thi.ng/of-umbrellas-transducers-reactive-streams-mushrooms-pt-1-a8717ce3a170"
123
+ }
124
+ ],
125
+ "year": 2015
126
+ },
127
+ "gitHead": "e8a7c2a40191b391cef182c2978e5a6c85987a87\n"
128
+ }