@viewfly/platform-browser 0.0.1-alpha.0 → 0.0.1-alpha.10
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/bundles/dom-renderer.d.ts +1 -2
- package/bundles/fork.d.ts +2 -0
- package/bundles/index.esm.js +36 -23
- package/bundles/index.js +35 -21
- package/bundles/public-api.d.ts +1 -0
- package/package.json +4 -3
|
@@ -35,8 +35,7 @@ export declare class DomRenderer extends NativeRenderer<HTMLElement, Text> {
|
|
|
35
35
|
remove(node: HTMLElement | Text): void;
|
|
36
36
|
setProperty(node: HTMLElement, key: string, value: any): void;
|
|
37
37
|
removeProperty(node: HTMLElement, key: string): void;
|
|
38
|
-
|
|
39
|
-
removeClass(target: HTMLElement, name: string): void;
|
|
38
|
+
setClass(target: HTMLElement, className: string): void;
|
|
40
39
|
setStyle(target: HTMLElement, key: string, value: any): void;
|
|
41
40
|
removeStyle(target: HTMLElement, key: string): void;
|
|
42
41
|
listen<T = any>(node: HTMLElement, type: string, callback: (ev: T) => any): void;
|
package/bundles/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NativeRenderer, Viewfly } from '@viewfly/core';
|
|
1
|
+
import { NativeRenderer, Viewfly, makeError, provide, onDestroy } from '@viewfly/core';
|
|
2
2
|
import { Injectable } from '@tanbo/di';
|
|
3
3
|
|
|
4
4
|
/******************************************************************************
|
|
@@ -145,15 +145,9 @@ let DomRenderer = class DomRenderer extends NativeRenderer {
|
|
|
145
145
|
parent.appendChild(newChild);
|
|
146
146
|
}
|
|
147
147
|
prependChild(parent, newChild) {
|
|
148
|
-
if (newChild === parent.childNodes[0]) {
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
148
|
parent.prepend(newChild);
|
|
152
149
|
}
|
|
153
150
|
insertAfter(newNode, ref) {
|
|
154
|
-
if (ref.nextSibling === newNode) {
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
151
|
if (ref.nextSibling) {
|
|
158
152
|
this.insertBefore(newNode, ref.nextSibling);
|
|
159
153
|
}
|
|
@@ -176,7 +170,7 @@ let DomRenderer = class DomRenderer extends NativeRenderer {
|
|
|
176
170
|
if (booleanTagNames && booleanTagNames.includes(key)) {
|
|
177
171
|
node[key] = Boolean(value);
|
|
178
172
|
}
|
|
179
|
-
if (valueTagNames && valueTagNames.includes(key)) {
|
|
173
|
+
else if (valueTagNames && valueTagNames.includes(key)) {
|
|
180
174
|
if (node[key] === value) {
|
|
181
175
|
return;
|
|
182
176
|
}
|
|
@@ -186,6 +180,7 @@ let DomRenderer = class DomRenderer extends NativeRenderer {
|
|
|
186
180
|
removeProperty(node, key) {
|
|
187
181
|
if (this.possibleXlinkNames[key]) {
|
|
188
182
|
this.removeXlinkAttribute(node, this.possibleXlinkNames[key]);
|
|
183
|
+
return;
|
|
189
184
|
}
|
|
190
185
|
node.removeAttribute(key);
|
|
191
186
|
const tag = node.tagName.toLowerCase();
|
|
@@ -194,15 +189,12 @@ let DomRenderer = class DomRenderer extends NativeRenderer {
|
|
|
194
189
|
if (booleanTagNames && booleanTagNames.includes(key)) {
|
|
195
190
|
node[key] = false;
|
|
196
191
|
}
|
|
197
|
-
if (valueTagNames && valueTagNames.includes(key)) {
|
|
192
|
+
else if (valueTagNames && valueTagNames.includes(key)) {
|
|
198
193
|
node[key] = '';
|
|
199
194
|
}
|
|
200
195
|
}
|
|
201
|
-
|
|
202
|
-
target.
|
|
203
|
-
}
|
|
204
|
-
removeClass(target, name) {
|
|
205
|
-
target.classList.remove(name);
|
|
196
|
+
setClass(target, className) {
|
|
197
|
+
target.className = className || '';
|
|
206
198
|
}
|
|
207
199
|
setStyle(target, key, value) {
|
|
208
200
|
target.style[key] = value !== null && value !== void 0 ? value : '';
|
|
@@ -217,20 +209,15 @@ let DomRenderer = class DomRenderer extends NativeRenderer {
|
|
|
217
209
|
node.removeEventListener(type, callback);
|
|
218
210
|
}
|
|
219
211
|
syncTextContent(target, content) {
|
|
220
|
-
|
|
221
|
-
target.textContent = content;
|
|
222
|
-
}
|
|
212
|
+
target.textContent = content;
|
|
223
213
|
}
|
|
224
214
|
setXlinkAttribute(target, key, value) {
|
|
225
215
|
target.setAttributeNS(this.xlinkNameSpace, key, value);
|
|
226
216
|
}
|
|
227
217
|
removeXlinkAttribute(target, key) {
|
|
228
|
-
target.removeAttributeNS(this.xlinkNameSpace, key);
|
|
218
|
+
target.removeAttributeNS(this.xlinkNameSpace, key.split(':')[1]);
|
|
229
219
|
}
|
|
230
220
|
insertBefore(newNode, ref) {
|
|
231
|
-
if (ref.previousSibling === newNode) {
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
221
|
ref.parentNode.insertBefore(newNode, ref);
|
|
235
222
|
}
|
|
236
223
|
};
|
|
@@ -267,8 +254,34 @@ function createApp(host, root, autoUpdate = true) {
|
|
|
267
254
|
}
|
|
268
255
|
]
|
|
269
256
|
});
|
|
270
|
-
app.
|
|
257
|
+
app.run();
|
|
258
|
+
return app;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
const forkErrorFn = makeError('fork');
|
|
262
|
+
function fork(host, root) {
|
|
263
|
+
let parentComponent;
|
|
264
|
+
try {
|
|
265
|
+
parentComponent = provide([]);
|
|
266
|
+
}
|
|
267
|
+
catch (_a) {
|
|
268
|
+
throw forkErrorFn('The fork function can only be called synchronously within a component.');
|
|
269
|
+
}
|
|
270
|
+
const app = new Viewfly({
|
|
271
|
+
host,
|
|
272
|
+
root,
|
|
273
|
+
context: parentComponent,
|
|
274
|
+
providers: [
|
|
275
|
+
{
|
|
276
|
+
provide: NativeRenderer,
|
|
277
|
+
useClass: DomRenderer
|
|
278
|
+
}
|
|
279
|
+
]
|
|
280
|
+
});
|
|
281
|
+
onDestroy(() => {
|
|
282
|
+
app.destroy();
|
|
283
|
+
});
|
|
271
284
|
return app;
|
|
272
285
|
}
|
|
273
286
|
|
|
274
|
-
export { DomRenderer, createApp };
|
|
287
|
+
export { DomRenderer, createApp, fork };
|
package/bundles/index.js
CHANGED
|
@@ -147,15 +147,9 @@ exports.DomRenderer = class DomRenderer extends core.NativeRenderer {
|
|
|
147
147
|
parent.appendChild(newChild);
|
|
148
148
|
}
|
|
149
149
|
prependChild(parent, newChild) {
|
|
150
|
-
if (newChild === parent.childNodes[0]) {
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
150
|
parent.prepend(newChild);
|
|
154
151
|
}
|
|
155
152
|
insertAfter(newNode, ref) {
|
|
156
|
-
if (ref.nextSibling === newNode) {
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
153
|
if (ref.nextSibling) {
|
|
160
154
|
this.insertBefore(newNode, ref.nextSibling);
|
|
161
155
|
}
|
|
@@ -178,7 +172,7 @@ exports.DomRenderer = class DomRenderer extends core.NativeRenderer {
|
|
|
178
172
|
if (booleanTagNames && booleanTagNames.includes(key)) {
|
|
179
173
|
node[key] = Boolean(value);
|
|
180
174
|
}
|
|
181
|
-
if (valueTagNames && valueTagNames.includes(key)) {
|
|
175
|
+
else if (valueTagNames && valueTagNames.includes(key)) {
|
|
182
176
|
if (node[key] === value) {
|
|
183
177
|
return;
|
|
184
178
|
}
|
|
@@ -188,6 +182,7 @@ exports.DomRenderer = class DomRenderer extends core.NativeRenderer {
|
|
|
188
182
|
removeProperty(node, key) {
|
|
189
183
|
if (this.possibleXlinkNames[key]) {
|
|
190
184
|
this.removeXlinkAttribute(node, this.possibleXlinkNames[key]);
|
|
185
|
+
return;
|
|
191
186
|
}
|
|
192
187
|
node.removeAttribute(key);
|
|
193
188
|
const tag = node.tagName.toLowerCase();
|
|
@@ -196,15 +191,12 @@ exports.DomRenderer = class DomRenderer extends core.NativeRenderer {
|
|
|
196
191
|
if (booleanTagNames && booleanTagNames.includes(key)) {
|
|
197
192
|
node[key] = false;
|
|
198
193
|
}
|
|
199
|
-
if (valueTagNames && valueTagNames.includes(key)) {
|
|
194
|
+
else if (valueTagNames && valueTagNames.includes(key)) {
|
|
200
195
|
node[key] = '';
|
|
201
196
|
}
|
|
202
197
|
}
|
|
203
|
-
|
|
204
|
-
target.
|
|
205
|
-
}
|
|
206
|
-
removeClass(target, name) {
|
|
207
|
-
target.classList.remove(name);
|
|
198
|
+
setClass(target, className) {
|
|
199
|
+
target.className = className || '';
|
|
208
200
|
}
|
|
209
201
|
setStyle(target, key, value) {
|
|
210
202
|
target.style[key] = value !== null && value !== void 0 ? value : '';
|
|
@@ -219,20 +211,15 @@ exports.DomRenderer = class DomRenderer extends core.NativeRenderer {
|
|
|
219
211
|
node.removeEventListener(type, callback);
|
|
220
212
|
}
|
|
221
213
|
syncTextContent(target, content) {
|
|
222
|
-
|
|
223
|
-
target.textContent = content;
|
|
224
|
-
}
|
|
214
|
+
target.textContent = content;
|
|
225
215
|
}
|
|
226
216
|
setXlinkAttribute(target, key, value) {
|
|
227
217
|
target.setAttributeNS(this.xlinkNameSpace, key, value);
|
|
228
218
|
}
|
|
229
219
|
removeXlinkAttribute(target, key) {
|
|
230
|
-
target.removeAttributeNS(this.xlinkNameSpace, key);
|
|
220
|
+
target.removeAttributeNS(this.xlinkNameSpace, key.split(':')[1]);
|
|
231
221
|
}
|
|
232
222
|
insertBefore(newNode, ref) {
|
|
233
|
-
if (ref.previousSibling === newNode) {
|
|
234
|
-
return;
|
|
235
|
-
}
|
|
236
223
|
ref.parentNode.insertBefore(newNode, ref);
|
|
237
224
|
}
|
|
238
225
|
};
|
|
@@ -269,8 +256,35 @@ function createApp(host, root, autoUpdate = true) {
|
|
|
269
256
|
}
|
|
270
257
|
]
|
|
271
258
|
});
|
|
272
|
-
app.
|
|
259
|
+
app.run();
|
|
260
|
+
return app;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
const forkErrorFn = core.makeError('fork');
|
|
264
|
+
function fork(host, root) {
|
|
265
|
+
let parentComponent;
|
|
266
|
+
try {
|
|
267
|
+
parentComponent = core.provide([]);
|
|
268
|
+
}
|
|
269
|
+
catch (_a) {
|
|
270
|
+
throw forkErrorFn('The fork function can only be called synchronously within a component.');
|
|
271
|
+
}
|
|
272
|
+
const app = new core.Viewfly({
|
|
273
|
+
host,
|
|
274
|
+
root,
|
|
275
|
+
context: parentComponent,
|
|
276
|
+
providers: [
|
|
277
|
+
{
|
|
278
|
+
provide: core.NativeRenderer,
|
|
279
|
+
useClass: exports.DomRenderer
|
|
280
|
+
}
|
|
281
|
+
]
|
|
282
|
+
});
|
|
283
|
+
core.onDestroy(() => {
|
|
284
|
+
app.destroy();
|
|
285
|
+
});
|
|
273
286
|
return app;
|
|
274
287
|
}
|
|
275
288
|
|
|
276
289
|
exports.createApp = createApp;
|
|
290
|
+
exports.fork = fork;
|
package/bundles/public-api.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viewfly/platform-browser",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.10",
|
|
4
4
|
"description": "Viewfly is a simple and easy-to-use JavaScript framework with an intuitive development experience.",
|
|
5
5
|
"main": "./bundles/index.js",
|
|
6
6
|
"module": "./bundles/index.esm.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"keywords": [],
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@tanbo/di": "^1.1.4",
|
|
19
|
-
"@viewfly/core": "^0.0.1-alpha.
|
|
19
|
+
"@viewfly/core": "^0.0.1-alpha.10",
|
|
20
20
|
"reflect-metadata": "^0.1.13"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
@@ -36,5 +36,6 @@
|
|
|
36
36
|
},
|
|
37
37
|
"bugs": {
|
|
38
38
|
"url": "https://github.com/viewfly/viewfly.git/issues"
|
|
39
|
-
}
|
|
39
|
+
},
|
|
40
|
+
"gitHead": "6e542df7602aec6a451b2db9a89928ad8bb9f05a"
|
|
40
41
|
}
|