@geektech/tsone 0.0.1 → 0.1.0
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/README-zh.md +405 -0
- package/README.md +288 -32
- package/dist/core/animation/TransitionGroup.d.ts +7 -0
- package/dist/core/animation/index.d.ts +2 -0
- package/dist/core/animation/list-animation-controller.d.ts +16 -0
- package/dist/core/animation/transition-group-strategy.d.ts +15 -0
- package/dist/core/animation/types.d.ts +25 -0
- package/dist/core/app.d.ts +30 -8
- package/dist/core/component/base.d.ts +18 -1
- package/dist/core/component/index.d.ts +2 -2
- package/dist/core/document.d.ts +32 -0
- package/dist/core/form.d.ts +24 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/model.d.ts +18 -0
- package/dist/core/reactive/types.d.ts +5 -0
- package/dist/core/reactive.d.ts +5 -2
- package/dist/core/renderer/element-strategy.d.ts +25 -0
- package/dist/core/renderer/types.d.ts +6 -1
- package/dist/core/renderer.d.ts +9 -23
- package/dist/core/vnode.d.ts +56 -16
- package/dist/{index-dgv88dz4.js → index-8wjswsye.js} +6 -2
- package/dist/index-8wjswsye.js.map +10 -0
- package/dist/index-vpx80nq5.js +32 -0
- package/dist/index-vpx80nq5.js.map +10 -0
- package/dist/{index-3j2jsdpc.js → index-wv9gyjqt.js} +858 -244
- package/dist/index-wv9gyjqt.js.map +25 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +380 -20
- package/dist/index.js.map +8 -5
- package/dist/router/index.d.ts +1 -1
- package/dist/router/index.js +6 -4
- package/dist/router/index.js.map +1 -1
- package/dist/style/StyleManager.d.ts +1 -0
- package/dist/style/index.d.ts +1 -0
- package/dist/style/index.js +6 -2
- package/dist/style/index.js.map +1 -1
- package/dist/style/sheet.d.ts +13 -0
- package/package.json +4 -14
- package/dist/index-3j2jsdpc.js.map +0 -20
- package/dist/index-dgv88dz4.js.map +0 -10
package/dist/index.js
CHANGED
|
@@ -1,49 +1,195 @@
|
|
|
1
1
|
import {
|
|
2
|
+
A,
|
|
3
|
+
Article,
|
|
4
|
+
Aside,
|
|
5
|
+
Blockquote,
|
|
6
|
+
Button,
|
|
7
|
+
Code,
|
|
2
8
|
Component,
|
|
3
9
|
ComponentRenderStrategy,
|
|
10
|
+
Div,
|
|
4
11
|
ElementRenderStrategy,
|
|
12
|
+
Em,
|
|
13
|
+
Footer,
|
|
14
|
+
Form,
|
|
15
|
+
H1,
|
|
16
|
+
H2,
|
|
17
|
+
H3,
|
|
18
|
+
H4,
|
|
19
|
+
H5,
|
|
20
|
+
H6,
|
|
21
|
+
Header,
|
|
22
|
+
Img,
|
|
23
|
+
Input,
|
|
24
|
+
Label,
|
|
25
|
+
Li,
|
|
26
|
+
Main,
|
|
27
|
+
ModelBindingController,
|
|
28
|
+
Nav,
|
|
29
|
+
Ol,
|
|
30
|
+
Option,
|
|
31
|
+
P,
|
|
32
|
+
Pre,
|
|
5
33
|
ReactiveSystem,
|
|
6
34
|
RendererContext,
|
|
7
35
|
Router,
|
|
8
36
|
RouterLink,
|
|
9
37
|
RouterView,
|
|
38
|
+
Section,
|
|
39
|
+
Select,
|
|
10
40
|
SlotRenderStrategy,
|
|
41
|
+
Small,
|
|
42
|
+
Span,
|
|
43
|
+
Strong,
|
|
44
|
+
Table,
|
|
45
|
+
Tag,
|
|
46
|
+
Tbody,
|
|
47
|
+
Td,
|
|
11
48
|
TemplateEngine,
|
|
12
49
|
TextRenderStrategy,
|
|
50
|
+
Textarea,
|
|
51
|
+
Th,
|
|
52
|
+
Thead,
|
|
53
|
+
Tr,
|
|
54
|
+
Ul,
|
|
13
55
|
computed,
|
|
14
56
|
createComponent,
|
|
15
57
|
createRouter,
|
|
58
|
+
each,
|
|
16
59
|
effect,
|
|
60
|
+
getModelValue,
|
|
17
61
|
h,
|
|
18
62
|
isComponentNode,
|
|
19
63
|
isHTMLNode,
|
|
20
64
|
isReactive,
|
|
21
65
|
isReadonly,
|
|
66
|
+
isRef,
|
|
22
67
|
isSlotProvider,
|
|
68
|
+
modelPath,
|
|
69
|
+
normalizeTransitionGroupProps,
|
|
23
70
|
reactive,
|
|
24
71
|
readonly,
|
|
72
|
+
ref,
|
|
73
|
+
setModelValue,
|
|
25
74
|
slot,
|
|
26
|
-
stop
|
|
27
|
-
|
|
28
|
-
|
|
75
|
+
stop,
|
|
76
|
+
unref,
|
|
77
|
+
useRouter,
|
|
78
|
+
validateTransitionGroupChildren
|
|
79
|
+
} from "./index-wv9gyjqt.js";
|
|
80
|
+
import {
|
|
81
|
+
renderStyleSheet
|
|
82
|
+
} from "./index-vpx80nq5.js";
|
|
83
|
+
import"./index-8wjswsye.js";
|
|
84
|
+
|
|
85
|
+
// lib/core/document.ts
|
|
86
|
+
var VOID_HEAD_TAGS = new Set(["base", "link", "meta"]);
|
|
87
|
+
function renderHtmlDocument(options) {
|
|
88
|
+
const lang = options.lang ?? "en";
|
|
89
|
+
const charset = options.charset ?? "utf-8";
|
|
90
|
+
const viewport = options.viewport ?? "width=device-width, initial-scale=1";
|
|
91
|
+
const htmlAttributes = renderAttributes({
|
|
92
|
+
lang,
|
|
93
|
+
...options.htmlAttributes ?? {}
|
|
94
|
+
});
|
|
95
|
+
const bodyAttributes = renderAttributes(options.bodyAttributes);
|
|
96
|
+
const bodyHtml = renderDocumentBody(options.body);
|
|
97
|
+
return [
|
|
98
|
+
"<!doctype html>",
|
|
99
|
+
`<html${htmlAttributes}>`,
|
|
100
|
+
"<head>",
|
|
101
|
+
` <meta charset="${escapeHtml(charset)}">`,
|
|
102
|
+
` <meta name="viewport" content="${escapeHtml(viewport)}">`,
|
|
103
|
+
` <title>${escapeHtml(options.title)}</title>`,
|
|
104
|
+
options.description ? ` <meta name="description" content="${escapeHtml(options.description)}">` : "",
|
|
105
|
+
...(options.head ?? []).map((element) => ` ${renderHeadElement(element)}`),
|
|
106
|
+
options.styles && options.styles.length > 0 ? ` <style>${renderStyleSheet(options.styles)}</style>` : "",
|
|
107
|
+
"</head>",
|
|
108
|
+
`<body${bodyAttributes}>`,
|
|
109
|
+
bodyHtml,
|
|
110
|
+
...(options.scripts ?? []).map((script) => ` ${renderScript(script)}`),
|
|
111
|
+
"</body>",
|
|
112
|
+
"</html>"
|
|
113
|
+
].filter((line) => line !== "").join(`
|
|
114
|
+
`);
|
|
115
|
+
}
|
|
116
|
+
function renderDocumentBody(body) {
|
|
117
|
+
if (typeof document === "undefined") {
|
|
118
|
+
throw new Error("renderHtmlDocument requires a DOM-like document");
|
|
119
|
+
}
|
|
120
|
+
const container = document.createElement("div");
|
|
121
|
+
const renderer = new RendererContext;
|
|
122
|
+
const mountedComponents = new Set;
|
|
123
|
+
const renderables = Array.isArray(body) ? body : [body];
|
|
124
|
+
const context = {
|
|
125
|
+
templateEngine: new TemplateEngine({}),
|
|
126
|
+
renderer,
|
|
127
|
+
slots: { default: [] },
|
|
128
|
+
registerChild: (component) => {
|
|
129
|
+
mountedComponents.add(component);
|
|
130
|
+
},
|
|
131
|
+
unregisterChild: (component) => {
|
|
132
|
+
mountedComponents.delete(component);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
renderables.forEach((renderable) => {
|
|
136
|
+
container.appendChild(renderer.mount(renderable, context));
|
|
137
|
+
});
|
|
138
|
+
const html = container.innerHTML;
|
|
139
|
+
mountedComponents.forEach((component) => {
|
|
140
|
+
component.unmount();
|
|
141
|
+
});
|
|
142
|
+
return html;
|
|
143
|
+
}
|
|
144
|
+
function renderHeadElement(element) {
|
|
145
|
+
const attributes = renderAttributes(element.attributes);
|
|
146
|
+
if (VOID_HEAD_TAGS.has(element.tag) && !element.text) {
|
|
147
|
+
return `<${element.tag}${attributes}>`;
|
|
148
|
+
}
|
|
149
|
+
return `<${element.tag}${attributes}>${escapeHtml(element.text ?? "")}</${element.tag}>`;
|
|
150
|
+
}
|
|
151
|
+
function renderScript(script) {
|
|
152
|
+
const attributes = renderAttributes({
|
|
153
|
+
type: script.type,
|
|
154
|
+
src: script.src,
|
|
155
|
+
async: script.async,
|
|
156
|
+
defer: script.defer,
|
|
157
|
+
...script.attributes ?? {}
|
|
158
|
+
});
|
|
159
|
+
return `<script${attributes}></script>`;
|
|
160
|
+
}
|
|
161
|
+
function renderAttributes(attributes = {}) {
|
|
162
|
+
const rendered = Object.entries(attributes).flatMap(([name, value]) => {
|
|
163
|
+
if (value === false || value === null || value === undefined) {
|
|
164
|
+
return [];
|
|
165
|
+
}
|
|
166
|
+
return value === true ? [name] : [`${name}="${escapeHtml(String(value))}"`];
|
|
167
|
+
}).join(" ");
|
|
168
|
+
return rendered ? ` ${rendered}` : "";
|
|
169
|
+
}
|
|
170
|
+
function escapeHtml(value) {
|
|
171
|
+
return value.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
172
|
+
}
|
|
29
173
|
|
|
30
174
|
// lib/core/app.ts
|
|
175
|
+
var DEFAULT_ROOT_ELEMENT = "#app";
|
|
176
|
+
|
|
31
177
|
class OneApp {
|
|
32
178
|
options;
|
|
33
|
-
container;
|
|
179
|
+
container = null;
|
|
34
180
|
rootInstance = null;
|
|
35
181
|
mounted = false;
|
|
36
182
|
templateEngine = null;
|
|
37
183
|
appContext;
|
|
184
|
+
providers = new Map;
|
|
38
185
|
plugins = [];
|
|
39
186
|
unmountedCallback;
|
|
40
187
|
router;
|
|
41
188
|
constructor(options = {}) {
|
|
42
189
|
this.options = options;
|
|
43
|
-
this.container = document.body;
|
|
44
190
|
this.appContext = {
|
|
45
191
|
app: this,
|
|
46
|
-
version: "0.0.
|
|
192
|
+
version: "0.0.2",
|
|
47
193
|
config: options.config || {}
|
|
48
194
|
};
|
|
49
195
|
}
|
|
@@ -52,6 +198,9 @@ class OneApp {
|
|
|
52
198
|
this.renderErrorUI(error);
|
|
53
199
|
}
|
|
54
200
|
renderErrorUI(error) {
|
|
201
|
+
if (!this.container) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
55
204
|
this.container.innerHTML = `
|
|
56
205
|
<div style="padding: 20px; background-color: #ffebee; color: #c62828; font-family: Arial, sans-serif;">
|
|
57
206
|
<h3>应用错误</h3>
|
|
@@ -73,18 +222,15 @@ class OneApp {
|
|
|
73
222
|
console.warn("应用已经处于运行状态");
|
|
74
223
|
return;
|
|
75
224
|
}
|
|
225
|
+
const mountContainer = this.resolveMountContainer();
|
|
226
|
+
if (!mountContainer) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
76
229
|
try {
|
|
230
|
+
this.container = mountContainer;
|
|
77
231
|
globalThis.__APP__ = this;
|
|
78
|
-
if (this.options.rootElement) {
|
|
79
|
-
const rootElement = this.resolveRootElement(this.options.rootElement);
|
|
80
|
-
if (rootElement) {
|
|
81
|
-
this.container = rootElement;
|
|
82
|
-
} else {
|
|
83
|
-
throw new Error(`无法找到挂载点: ${this.options.rootElement}`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
232
|
if (this.options.root) {
|
|
87
|
-
this.rootInstance = new this.options.root;
|
|
233
|
+
this.rootInstance = new this.options.root(this.options.rootProps);
|
|
88
234
|
if ("setAppContext" in this.rootInstance) {
|
|
89
235
|
this.rootInstance.setAppContext(this.appContext);
|
|
90
236
|
}
|
|
@@ -119,7 +265,9 @@ class OneApp {
|
|
|
119
265
|
this.templateEngine.clearBindings();
|
|
120
266
|
this.templateEngine = null;
|
|
121
267
|
}
|
|
122
|
-
this.container
|
|
268
|
+
if (this.container) {
|
|
269
|
+
this.container.innerHTML = "";
|
|
270
|
+
}
|
|
123
271
|
if (this.unmountedCallback) {
|
|
124
272
|
this.unmountedCallback();
|
|
125
273
|
}
|
|
@@ -161,6 +309,20 @@ class OneApp {
|
|
|
161
309
|
getContext() {
|
|
162
310
|
return this.appContext;
|
|
163
311
|
}
|
|
312
|
+
provide(key, value) {
|
|
313
|
+
this.providers.set(key, value);
|
|
314
|
+
return this;
|
|
315
|
+
}
|
|
316
|
+
inject(key, fallback) {
|
|
317
|
+
const result = this.resolveInjection(key);
|
|
318
|
+
return result.found ? result.value : fallback;
|
|
319
|
+
}
|
|
320
|
+
resolveInjection(key) {
|
|
321
|
+
if (!this.providers.has(key)) {
|
|
322
|
+
return { found: false, value: undefined };
|
|
323
|
+
}
|
|
324
|
+
return { found: true, value: this.providers.get(key) };
|
|
325
|
+
}
|
|
164
326
|
getState() {
|
|
165
327
|
return this.options.state;
|
|
166
328
|
}
|
|
@@ -175,14 +337,67 @@ class OneApp {
|
|
|
175
337
|
this.unmountedCallback = callback;
|
|
176
338
|
return this;
|
|
177
339
|
}
|
|
340
|
+
renderHtmlDocument(options = {}) {
|
|
341
|
+
const appDocument = this.options.document ?? {};
|
|
342
|
+
const scripts = this.mergeDocumentScripts(appDocument.scripts, options.scripts);
|
|
343
|
+
return renderHtmlDocument({
|
|
344
|
+
...appDocument,
|
|
345
|
+
...options,
|
|
346
|
+
title: options.title ?? appDocument.title ?? "TSone App",
|
|
347
|
+
body: options.body ?? appDocument.body ?? this.createMountDocumentBody(),
|
|
348
|
+
scripts
|
|
349
|
+
});
|
|
350
|
+
}
|
|
178
351
|
resolveRootElement(selector) {
|
|
179
352
|
if (!selector) {
|
|
180
353
|
return null;
|
|
181
354
|
}
|
|
182
355
|
if (typeof selector === "string") {
|
|
356
|
+
if (typeof document === "undefined") {
|
|
357
|
+
return null;
|
|
358
|
+
}
|
|
183
359
|
return document.querySelector(selector);
|
|
184
360
|
}
|
|
185
|
-
return selector instanceof Element ? selector : null;
|
|
361
|
+
return typeof Element !== "undefined" && selector instanceof Element ? selector : null;
|
|
362
|
+
}
|
|
363
|
+
resolveMountContainer() {
|
|
364
|
+
if (typeof document === "undefined") {
|
|
365
|
+
return null;
|
|
366
|
+
}
|
|
367
|
+
const rootElement = this.resolveRootElement(this.options.rootElement ?? DEFAULT_ROOT_ELEMENT);
|
|
368
|
+
return rootElement instanceof HTMLElement ? rootElement : null;
|
|
369
|
+
}
|
|
370
|
+
createMountDocumentBody() {
|
|
371
|
+
const rootElement = this.options.rootElement ?? DEFAULT_ROOT_ELEMENT;
|
|
372
|
+
if (typeof rootElement === "string") {
|
|
373
|
+
return this.createMountElementFromSelector(rootElement);
|
|
374
|
+
}
|
|
375
|
+
if (typeof Element !== "undefined" && rootElement instanceof Element) {
|
|
376
|
+
const props = {};
|
|
377
|
+
if (rootElement.id) {
|
|
378
|
+
props.id = rootElement.id;
|
|
379
|
+
}
|
|
380
|
+
if (rootElement.className) {
|
|
381
|
+
props.className = rootElement.className;
|
|
382
|
+
}
|
|
383
|
+
return { tag: rootElement.tagName.toLowerCase(), props };
|
|
384
|
+
}
|
|
385
|
+
return Div({ props: { id: "app" } });
|
|
386
|
+
}
|
|
387
|
+
createMountElementFromSelector(selector) {
|
|
388
|
+
if (selector.startsWith("#") && selector.length > 1) {
|
|
389
|
+
return Div({ props: { id: selector.slice(1) } });
|
|
390
|
+
}
|
|
391
|
+
if (selector.startsWith(".") && selector.length > 1) {
|
|
392
|
+
return Div({ props: { className: selector.slice(1) } });
|
|
393
|
+
}
|
|
394
|
+
return Div({ props: { "data-tsone-root": selector } });
|
|
395
|
+
}
|
|
396
|
+
mergeDocumentScripts(baseScripts, extraScripts) {
|
|
397
|
+
if (!baseScripts && !extraScripts) {
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
return [...baseScripts ?? [], ...extraScripts ?? []];
|
|
186
401
|
}
|
|
187
402
|
onMounted() {
|
|
188
403
|
this.plugins.forEach(({ plugin: pluginObj }) => {
|
|
@@ -206,43 +421,188 @@ class OneApp {
|
|
|
206
421
|
});
|
|
207
422
|
}
|
|
208
423
|
}
|
|
424
|
+
// lib/core/form.ts
|
|
425
|
+
function errorMessage(error) {
|
|
426
|
+
return error instanceof Error ? error.message : String(error);
|
|
427
|
+
}
|
|
428
|
+
function runRule(rule, value, model) {
|
|
429
|
+
try {
|
|
430
|
+
const result = rule(value, model);
|
|
431
|
+
if (result === true) {
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
return result === false ? "Validation failed" : result;
|
|
435
|
+
} catch (error) {
|
|
436
|
+
return errorMessage(error);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
function required(message = "This field is required") {
|
|
440
|
+
return (value) => {
|
|
441
|
+
if (value === null || value === undefined) {
|
|
442
|
+
return message;
|
|
443
|
+
}
|
|
444
|
+
if (typeof value === "string" && value.trim().length === 0) {
|
|
445
|
+
return message;
|
|
446
|
+
}
|
|
447
|
+
if (Array.isArray(value) && value.length === 0) {
|
|
448
|
+
return message;
|
|
449
|
+
}
|
|
450
|
+
return true;
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
function minLength(length, message = `Must be at least ${length} characters`) {
|
|
454
|
+
return (value) => typeof value === "string" && value.length >= length ? true : message;
|
|
455
|
+
}
|
|
456
|
+
function validate(rule) {
|
|
457
|
+
return rule;
|
|
458
|
+
}
|
|
459
|
+
function createForm(model, rules) {
|
|
460
|
+
const errors = {};
|
|
461
|
+
const validateField = (path) => {
|
|
462
|
+
const fieldRules = rules[path] ?? [];
|
|
463
|
+
const value = getModelValue(model, path);
|
|
464
|
+
const fieldErrors = fieldRules.map((rule) => runRule(rule, value, model)).filter((message) => message !== undefined);
|
|
465
|
+
if (fieldErrors.length === 0) {
|
|
466
|
+
delete errors[path];
|
|
467
|
+
} else {
|
|
468
|
+
errors[path] = fieldErrors;
|
|
469
|
+
}
|
|
470
|
+
return { valid: fieldErrors.length === 0, errors: fieldErrors };
|
|
471
|
+
};
|
|
472
|
+
return {
|
|
473
|
+
model,
|
|
474
|
+
errors,
|
|
475
|
+
validate() {
|
|
476
|
+
const allErrors = {};
|
|
477
|
+
Object.keys(rules).forEach((path) => {
|
|
478
|
+
const result = validateField(path);
|
|
479
|
+
if (!result.valid) {
|
|
480
|
+
allErrors[path] = result.errors;
|
|
481
|
+
}
|
|
482
|
+
});
|
|
483
|
+
return { valid: Object.keys(allErrors).length === 0, errors: allErrors };
|
|
484
|
+
},
|
|
485
|
+
validateField,
|
|
486
|
+
resetErrors() {
|
|
487
|
+
Object.keys(errors).forEach((path) => delete errors[path]);
|
|
488
|
+
}
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
// lib/core/animation/TransitionGroup.ts
|
|
492
|
+
class TransitionGroup extends Component {
|
|
493
|
+
initState() {
|
|
494
|
+
return {};
|
|
495
|
+
}
|
|
496
|
+
initStyles() {}
|
|
497
|
+
render() {
|
|
498
|
+
const { tag, type, duration } = normalizeTransitionGroupProps(this.props);
|
|
499
|
+
const children = validateTransitionGroupChildren(this.props.children ?? []);
|
|
500
|
+
return {
|
|
501
|
+
tag,
|
|
502
|
+
props: this.props.elementProps,
|
|
503
|
+
listeners: this.props.listeners,
|
|
504
|
+
children,
|
|
505
|
+
transitionGroup: {
|
|
506
|
+
type,
|
|
507
|
+
duration
|
|
508
|
+
}
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
}
|
|
209
512
|
// lib/index.ts
|
|
210
513
|
function createApp(options = {}) {
|
|
211
514
|
return new OneApp(options);
|
|
212
515
|
}
|
|
213
|
-
var version = "0.0.
|
|
516
|
+
var version = "0.0.2";
|
|
214
517
|
var name = "@geektech/tsone";
|
|
215
518
|
export {
|
|
216
519
|
version,
|
|
520
|
+
validate,
|
|
521
|
+
useRouter,
|
|
522
|
+
unref,
|
|
217
523
|
stop,
|
|
218
524
|
slot,
|
|
525
|
+
setModelValue,
|
|
526
|
+
required,
|
|
527
|
+
renderStyleSheet,
|
|
528
|
+
renderHtmlDocument,
|
|
529
|
+
ref,
|
|
219
530
|
readonly,
|
|
220
531
|
reactive,
|
|
221
532
|
name,
|
|
533
|
+
modelPath,
|
|
534
|
+
minLength,
|
|
222
535
|
isSlotProvider,
|
|
536
|
+
isRef,
|
|
223
537
|
isReadonly,
|
|
224
538
|
isReactive,
|
|
225
539
|
isHTMLNode,
|
|
226
540
|
isComponentNode,
|
|
227
541
|
h,
|
|
542
|
+
getModelValue,
|
|
228
543
|
effect,
|
|
544
|
+
each,
|
|
229
545
|
createRouter,
|
|
546
|
+
createForm,
|
|
230
547
|
createComponent,
|
|
231
548
|
createApp,
|
|
232
549
|
computed,
|
|
550
|
+
Ul,
|
|
551
|
+
TransitionGroup,
|
|
552
|
+
Tr,
|
|
553
|
+
Thead,
|
|
554
|
+
Th,
|
|
555
|
+
Textarea,
|
|
233
556
|
TextRenderStrategy,
|
|
234
557
|
TemplateEngine,
|
|
558
|
+
Td,
|
|
559
|
+
Tbody,
|
|
560
|
+
Tag,
|
|
561
|
+
Table,
|
|
562
|
+
Strong,
|
|
563
|
+
Span,
|
|
564
|
+
Small,
|
|
235
565
|
SlotRenderStrategy,
|
|
566
|
+
Select,
|
|
567
|
+
Section,
|
|
236
568
|
RouterView,
|
|
237
569
|
RouterLink,
|
|
238
570
|
Router,
|
|
239
571
|
RendererContext,
|
|
240
572
|
ReactiveSystem,
|
|
573
|
+
Pre,
|
|
574
|
+
P,
|
|
575
|
+
Option,
|
|
241
576
|
OneApp,
|
|
577
|
+
Ol,
|
|
578
|
+
Nav,
|
|
579
|
+
ModelBindingController,
|
|
580
|
+
Main,
|
|
581
|
+
Li,
|
|
582
|
+
Label,
|
|
583
|
+
Input,
|
|
584
|
+
Img,
|
|
585
|
+
Header,
|
|
586
|
+
H6,
|
|
587
|
+
H5,
|
|
588
|
+
H4,
|
|
589
|
+
H3,
|
|
590
|
+
H2,
|
|
591
|
+
H1,
|
|
592
|
+
Form,
|
|
593
|
+
Footer,
|
|
594
|
+
Em,
|
|
242
595
|
ElementRenderStrategy,
|
|
596
|
+
Div,
|
|
243
597
|
ComponentRenderStrategy,
|
|
244
|
-
Component
|
|
598
|
+
Component,
|
|
599
|
+
Code,
|
|
600
|
+
Button,
|
|
601
|
+
Blockquote,
|
|
602
|
+
Aside,
|
|
603
|
+
Article,
|
|
604
|
+
A
|
|
245
605
|
};
|
|
246
606
|
|
|
247
|
-
//# debugId=
|
|
607
|
+
//# debugId=7471E8A79DBDD62164756E2164756E21
|
|
248
608
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../lib/core/app.ts", "../lib/index.ts"],
|
|
3
|
+
"sources": ["../lib/core/document.ts", "../lib/core/app.ts", "../lib/core/form.ts", "../lib/core/animation/TransitionGroup.ts", "../lib/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import {
|
|
6
|
-
"import { OneApp, AppOptions } from './core/app';\n\n// 导出核心功能\nexport * from './core';\n\n// 导出路由功能\nexport * from './router';\n\n// 创建应用实例的主函数\nexport function createApp(options: AppOptions = {}): OneApp {\n return new OneApp(options);\n}\n\n// 导出框架名称和版本\nexport const version = '0.0.1';\nexport const name = '@geektech/tsone';\n"
|
|
5
|
+
"import { RendererContext } from './renderer';\nimport type { ComponentInstance, Renderable } from './renderer/types';\nimport { TemplateEngine } from './template';\nimport { renderStyleSheet, type StyleSheet } from '../style/sheet';\n\nexport {\n renderStyleSheet,\n type StyleAtRule,\n type StyleProperties,\n type StyleRule,\n type StyleSheet,\n type StyleSheetEntry,\n type StyleValue,\n} from '../style/sheet';\n\nexport type HtmlAttributeValue = string | number | boolean | null | undefined;\n\nexport type HtmlAttributes = Record<string, HtmlAttributeValue>;\n\nexport type HtmlDocumentBody = Renderable | Renderable[];\n\nexport interface HtmlHeadElement {\n tag: string;\n attributes?: HtmlAttributes;\n text?: string;\n}\n\nexport interface HtmlScript {\n src: string;\n type?: string;\n async?: boolean;\n defer?: boolean;\n attributes?: HtmlAttributes;\n}\n\nexport interface HtmlDocumentOptions {\n title: string;\n body: HtmlDocumentBody;\n lang?: string;\n charset?: string;\n viewport?: string;\n description?: string;\n htmlAttributes?: HtmlAttributes;\n bodyAttributes?: HtmlAttributes;\n head?: HtmlHeadElement[];\n styles?: StyleSheet;\n scripts?: HtmlScript[];\n}\n\nconst VOID_HEAD_TAGS = new Set(['base', 'link', 'meta']);\n\nexport function renderHtmlDocument(options: HtmlDocumentOptions): string {\n const lang = options.lang ?? 'en';\n const charset = options.charset ?? 'utf-8';\n const viewport = options.viewport ?? 'width=device-width, initial-scale=1';\n const htmlAttributes = renderAttributes({\n lang,\n ...(options.htmlAttributes ?? {}),\n });\n const bodyAttributes = renderAttributes(options.bodyAttributes);\n const bodyHtml = renderDocumentBody(options.body);\n\n return [\n '<!doctype html>',\n `<html${htmlAttributes}>`,\n '<head>',\n ` <meta charset=\"${escapeHtml(charset)}\">`,\n ` <meta name=\"viewport\" content=\"${escapeHtml(viewport)}\">`,\n ` <title>${escapeHtml(options.title)}</title>`,\n options.description\n ? ` <meta name=\"description\" content=\"${escapeHtml(\n options.description\n )}\">`\n : '',\n ...(options.head ?? []).map((element) => ` ${renderHeadElement(element)}`),\n options.styles && options.styles.length > 0\n ? ` <style>${renderStyleSheet(options.styles)}</style>`\n : '',\n '</head>',\n `<body${bodyAttributes}>`,\n bodyHtml,\n ...(options.scripts ?? []).map((script) => ` ${renderScript(script)}`),\n '</body>',\n '</html>',\n ]\n .filter((line) => line !== '')\n .join('\\n');\n}\n\nfunction renderDocumentBody(body: HtmlDocumentBody): string {\n if (typeof document === 'undefined') {\n throw new Error('renderHtmlDocument requires a DOM-like document');\n }\n\n const container = document.createElement('div');\n const renderer = new RendererContext();\n const mountedComponents = new Set<ComponentInstance>();\n const renderables = Array.isArray(body) ? body : [body];\n const context = {\n templateEngine: new TemplateEngine({}),\n renderer,\n slots: { default: [] },\n registerChild: (component: ComponentInstance) => {\n mountedComponents.add(component);\n },\n unregisterChild: (component: ComponentInstance) => {\n mountedComponents.delete(component);\n },\n };\n\n renderables.forEach((renderable) => {\n container.appendChild(renderer.mount(renderable, context));\n });\n\n const html = container.innerHTML;\n mountedComponents.forEach((component) => {\n component.unmount();\n });\n\n return html;\n}\n\nfunction renderHeadElement(element: HtmlHeadElement): string {\n const attributes = renderAttributes(element.attributes);\n if (VOID_HEAD_TAGS.has(element.tag) && !element.text) {\n return `<${element.tag}${attributes}>`;\n }\n\n return `<${element.tag}${attributes}>${escapeHtml(\n element.text ?? ''\n )}</${element.tag}>`;\n}\n\nfunction renderScript(script: HtmlScript): string {\n const attributes = renderAttributes({\n type: script.type,\n src: script.src,\n async: script.async,\n defer: script.defer,\n ...(script.attributes ?? {}),\n });\n\n return `<script${attributes}></script>`;\n}\n\nfunction renderAttributes(attributes: HtmlAttributes = {}): string {\n const rendered = Object.entries(attributes)\n .flatMap(([name, value]) => {\n if (value === false || value === null || value === undefined) {\n return [];\n }\n\n return value === true\n ? [name]\n : [`${name}=\"${escapeHtml(String(value))}\"`];\n })\n .join(' ');\n\n return rendered ? ` ${rendered}` : '';\n}\n\nfunction escapeHtml(value: string): string {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"');\n}\n",
|
|
6
|
+
"import {\n Component,\n ComponentConstructor,\n ComponentProps,\n InjectionKey,\n InjectionResult,\n} from './component';\nimport {\n renderHtmlDocument as renderDocumentShell,\n type HtmlDocumentBody,\n type HtmlDocumentOptions,\n type HtmlScript,\n} from './document';\nimport { Div } from './vnode';\nimport type { Router } from '../router';\n\nimport { TemplateEngine } from './template';\n\nconst DEFAULT_ROOT_ELEMENT = '#app';\n\n// 插件接口定义\nexport interface Plugin {\n install: (app: OneApp, ...args: unknown[]) => void;\n onMounted?: (app: OneApp) => void;\n onUpdated?: (app: OneApp) => void;\n onBeforeUnmount?: (app: OneApp) => void;\n}\n\nexport type AppDocumentOptions = Partial<Omit<HtmlDocumentOptions, 'body'>> & {\n body?: HtmlDocumentBody;\n};\n\nexport type AppDocumentRenderOptions = AppDocumentOptions;\n\n// 泛型化AppOptions接口\nexport interface AppOptions<\n TState = Record<string, unknown>,\n TConfig = Record<string, unknown>,\n TRootProps extends ComponentProps = ComponentProps,\n> {\n /** 根组件构造函数 */\n root?: ComponentConstructor<TRootProps>;\n /** 根组件 props */\n rootProps?: TRootProps;\n /** 应用挂载点,默认 #app */\n rootElement?: string | Element;\n /** 全局状态 */\n state?: TState;\n /** 全局配置 */\n config?: TConfig;\n /** HTML 文档壳配置,用于 dev/build 生成入口页面 */\n document?: AppDocumentOptions;\n}\n\n// 泛型化AppContext接口\nexport interface AppContext<TConfig = Record<string, unknown>> {\n app: OneApp;\n version: string;\n config: TConfig;\n router?: Router;\n}\n\n// 泛型化OneApp类\nexport class OneApp<\n TState extends object = Record<string, unknown>,\n TConfig extends object = Record<string, unknown>,\n TRootProps extends ComponentProps = ComponentProps,\n> {\n private container: HTMLElement | null = null;\n private rootInstance: Component | null = null;\n private mounted: boolean = false;\n private templateEngine: TemplateEngine | null = null;\n private readonly appContext: AppContext<TConfig>;\n private readonly providers = new Map<string | symbol, unknown>();\n private plugins: Array<{ plugin: Plugin; args: unknown[] }> = [];\n private unmountedCallback?: () => void;\n public router?: Router;\n\n constructor(private options: AppOptions<TState, TConfig, TRootProps> = {}) {\n this.appContext = {\n app: this as unknown as OneApp,\n version: '0.0.2',\n config: options.config || ({} as TConfig),\n };\n }\n\n private handleError(error: Error): void {\n console.error('应用错误:', error);\n // 渲染错误UI\n this.renderErrorUI(error);\n // 不立即卸载应用,而是显示错误信息\n }\n\n /**\n * 渲染错误UI\n */\n private renderErrorUI(error: Error): void {\n if (!this.container) {\n return;\n }\n\n this.container.innerHTML = `\n <div style=\"padding: 20px; background-color: #ffebee; color: #c62828; font-family: Arial, sans-serif;\">\n <h3>应用错误</h3>\n <p>${error.message}</p>\n <pre style=\"background-color: #fff; padding: 10px; border-radius: 4px; overflow: auto;\">${error.stack}</pre>\n </div>\n `;\n }\n\n /**\n * 使用插件\n */\n public use(plugin: Plugin, ...args: unknown[]): this {\n if (typeof plugin.install !== 'function') {\n throw new Error('插件必须提供 install 方法');\n }\n plugin.install(this as unknown as OneApp, ...args);\n this.plugins.push({ plugin, args });\n return this;\n }\n\n /**\n * 挂载应用\n */\n public mount(): void {\n if (this.mounted) {\n console.warn('应用已经处于运行状态');\n return;\n }\n\n const mountContainer = this.resolveMountContainer();\n if (!mountContainer) {\n return;\n }\n\n try {\n this.container = mountContainer;\n\n // 添加全局应用实例\n (globalThis as { __APP__?: unknown }).__APP__ = this;\n\n // 只有在有根组件时才创建实例\n if (this.options.root) {\n this.rootInstance = new this.options.root(this.options.rootProps);\n\n // 设置应用上下文\n if ('setAppContext' in this.rootInstance) {\n this.rootInstance.setAppContext(this.appContext);\n }\n\n // 如果有全局状态,传递给组件\n if (this.options.state && 'setState' in this.rootInstance) {\n this.rootInstance.setState(this.options.state);\n }\n\n this.rootInstance.mount(this.container);\n\n // 创建模板引擎实例\n this.templateEngine = new TemplateEngine(this.options.state || {});\n }\n\n this.mounted = true;\n\n // 触发生命周期钩子\n this.onMounted();\n } catch (error) {\n this.handleError(error as Error);\n }\n }\n\n /**\n * 卸载应用\n */\n public unmount(): void {\n if (!this.mounted) {\n console.warn('应用未处于运行状态');\n return;\n }\n\n try {\n // 触发卸载前钩子\n this.onBeforeUnmount();\n\n if (this.rootInstance) {\n // 调用组件卸载方法\n if ('unmount' in this.rootInstance) {\n this.rootInstance.unmount();\n }\n\n this.rootInstance = null;\n this.mounted = false;\n delete (globalThis as { __APP__?: unknown }).__APP__;\n }\n\n // 清除模板引擎\n if (this.templateEngine) {\n this.templateEngine.clearBindings();\n this.templateEngine = null;\n }\n\n // 清空容器\n if (this.container) {\n this.container.innerHTML = '';\n }\n\n // 触发卸载后钩子\n if (this.unmountedCallback) {\n this.unmountedCallback();\n }\n } catch (error) {\n console.error('Failed to unmount app:', error);\n }\n }\n\n /**\n * 应用是否正在运行\n */\n public isRunning(): boolean {\n return this.mounted;\n }\n\n /**\n * 更新根组件\n */\n public updateRootComponent(\n component: ComponentConstructor<TRootProps>\n ): void {\n if (this.mounted) {\n this.unmount();\n }\n this.options.root = component;\n this.mount();\n }\n\n /**\n * 更新应用状态\n */\n public update(state?: Partial<TState>): this {\n if (!this.mounted) {\n console.warn('Cannot update unmounted app');\n return this;\n }\n\n try {\n // 更新状态\n if (state && this.options.state) {\n this.options.state = { ...this.options.state, ...state };\n\n // 更新组件状态\n if (this.rootInstance && 'setState' in this.rootInstance) {\n this.rootInstance.setState(state);\n }\n\n // 更新模板引擎状态\n if (this.templateEngine) {\n // 如果存在templateEngine,更新其状态\n this.templateEngine.state = this.options.state;\n }\n }\n\n // 触发更新钩子\n this.onUpdated();\n } catch (error) {\n console.error('Failed to update app:', error);\n }\n\n return this;\n }\n\n /**\n * 获取应用上下文\n */\n public getContext(): AppContext<TConfig> {\n return this.appContext;\n }\n\n public provide<T>(key: InjectionKey<T>, value: T): this {\n this.providers.set(key, value);\n return this;\n }\n\n public inject<T>(key: InjectionKey<T>): T | undefined;\n public inject<T>(key: InjectionKey<T>, fallback: T): T;\n public inject<T>(key: InjectionKey<T>, fallback?: T): T | undefined {\n const result = this.resolveInjection(key);\n return result.found ? result.value : fallback;\n }\n\n public resolveInjection<T>(key: InjectionKey<T>): InjectionResult<T> {\n if (!this.providers.has(key)) {\n return { found: false, value: undefined };\n }\n\n return { found: true, value: this.providers.get(key) as T | undefined };\n }\n\n /**\n * 获取应用状态\n */\n public getState(): TState | undefined {\n return this.options.state;\n }\n\n /**\n * 设置应用状态\n */\n public setState(newState: TState): this {\n this.options.state = newState;\n if (this.mounted) {\n this.update();\n }\n return this;\n }\n\n /**\n * 监听应用卸载\n */\n public onUnmounted(callback: () => void): this {\n this.unmountedCallback = callback;\n return this;\n }\n\n /**\n * 生成应用入口 HTML 文档\n */\n public renderHtmlDocument(options: AppDocumentRenderOptions = {}): string {\n const appDocument = this.options.document ?? {};\n const scripts = this.mergeDocumentScripts(\n appDocument.scripts,\n options.scripts\n );\n\n return renderDocumentShell({\n ...appDocument,\n ...options,\n title: options.title ?? appDocument.title ?? 'TSone App',\n body: options.body ?? appDocument.body ?? this.createMountDocumentBody(),\n scripts,\n });\n }\n\n /**\n * 解析根元素\n */\n private resolveRootElement(selector?: string | Element): Element | null {\n if (!selector) {\n return null;\n }\n\n if (typeof selector === 'string') {\n if (typeof document === 'undefined') {\n return null;\n }\n\n return document.querySelector(selector);\n }\n\n return typeof Element !== 'undefined' && selector instanceof Element\n ? selector\n : null;\n }\n\n private resolveMountContainer(): HTMLElement | null {\n if (typeof document === 'undefined') {\n return null;\n }\n\n const rootElement = this.resolveRootElement(\n this.options.rootElement ?? DEFAULT_ROOT_ELEMENT\n );\n return rootElement instanceof HTMLElement ? rootElement : null;\n }\n\n private createMountDocumentBody(): HtmlDocumentBody {\n const rootElement = this.options.rootElement ?? DEFAULT_ROOT_ELEMENT;\n\n if (typeof rootElement === 'string') {\n return this.createMountElementFromSelector(rootElement);\n }\n\n if (typeof Element !== 'undefined' && rootElement instanceof Element) {\n const props: Record<string, string> = {};\n if (rootElement.id) {\n props.id = rootElement.id;\n }\n if (rootElement.className) {\n props.className = rootElement.className;\n }\n\n return { tag: rootElement.tagName.toLowerCase(), props };\n }\n\n return Div({ props: { id: 'app' } });\n }\n\n private createMountElementFromSelector(selector: string): HtmlDocumentBody {\n if (selector.startsWith('#') && selector.length > 1) {\n return Div({ props: { id: selector.slice(1) } });\n }\n\n if (selector.startsWith('.') && selector.length > 1) {\n return Div({ props: { className: selector.slice(1) } });\n }\n\n return Div({ props: { 'data-tsone-root': selector } });\n }\n\n private mergeDocumentScripts(\n baseScripts?: HtmlScript[],\n extraScripts?: HtmlScript[]\n ): HtmlScript[] | undefined {\n if (!baseScripts && !extraScripts) {\n return undefined;\n }\n\n return [...(baseScripts ?? []), ...(extraScripts ?? [])];\n }\n\n // 生命周期钩子\n private onMounted(): void {\n // 触发插件的mounted钩子\n this.plugins.forEach(({ plugin: pluginObj }) => {\n if (pluginObj && typeof pluginObj.onMounted === 'function') {\n pluginObj.onMounted(this as unknown as OneApp);\n }\n });\n }\n\n private onUpdated(): void {\n // 触发插件的updated钩子\n this.plugins.forEach(({ plugin: pluginObj }) => {\n if (pluginObj && typeof pluginObj.onUpdated === 'function') {\n pluginObj.onUpdated(this as unknown as OneApp);\n }\n });\n }\n\n private onBeforeUnmount(): void {\n // 触发插件的beforeUnmount钩子\n this.plugins.forEach(({ plugin: pluginObj }) => {\n if (pluginObj && typeof pluginObj.onBeforeUnmount === 'function') {\n pluginObj.onBeforeUnmount(this as unknown as OneApp);\n }\n });\n }\n}\n\n/**\n * 创建应用实例\n */\nexport function createApp<\n TState extends object = Record<string, unknown>,\n TConfig extends object = Record<string, unknown>,\n TRootProps extends ComponentProps = ComponentProps,\n>(\n options: AppOptions<TState, TConfig, TRootProps> = {}\n): OneApp<TState, TConfig, TRootProps> {\n return new OneApp<TState, TConfig, TRootProps>(options);\n}\n",
|
|
7
|
+
"import { getModelValue } from './model';\n\nexport type ValidationResult = boolean | string;\n\nexport type ValidationRule<T = unknown> = (\n value: T,\n model: object\n) => ValidationResult;\n\nexport type ValidationRules<TModel extends object> = {\n [TPath in keyof TModel & string]?: readonly ValidationRule[];\n} & Record<string, readonly ValidationRule[] | undefined>;\n\nexport interface FieldValidationResult {\n valid: boolean;\n errors: string[];\n}\n\nexport interface FormValidationResult {\n valid: boolean;\n errors: Record<string, string[]>;\n}\n\nexport interface FormController<TModel extends object> {\n readonly model: TModel;\n readonly errors: Record<string, string[]>;\n validate(): FormValidationResult;\n validateField(path: string): FieldValidationResult;\n resetErrors(): void;\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nfunction runRule(\n rule: ValidationRule,\n value: unknown,\n model: object\n): string | undefined {\n try {\n const result = rule(value, model);\n if (result === true) {\n return undefined;\n }\n return result === false ? 'Validation failed' : result;\n } catch (error) {\n return errorMessage(error);\n }\n}\n\nexport function required(message = 'This field is required'): ValidationRule {\n return (value) => {\n if (value === null || value === undefined) {\n return message;\n }\n if (typeof value === 'string' && value.trim().length === 0) {\n return message;\n }\n if (Array.isArray(value) && value.length === 0) {\n return message;\n }\n return true;\n };\n}\n\nexport function minLength(\n length: number,\n message = `Must be at least ${length} characters`\n): ValidationRule {\n return (value) =>\n typeof value === 'string' && value.length >= length ? true : message;\n}\n\nexport function validate(rule: ValidationRule): ValidationRule {\n return rule;\n}\n\nexport function createForm<TModel extends object>(\n model: TModel,\n rules: ValidationRules<TModel>\n): FormController<TModel> {\n const errors: Record<string, string[]> = {};\n\n const validateField = (path: string): FieldValidationResult => {\n const fieldRules = rules[path] ?? [];\n const value = getModelValue(model as Record<string, unknown>, path);\n const fieldErrors = fieldRules\n .map((rule) => runRule(rule, value, model))\n .filter((message): message is string => message !== undefined);\n\n if (fieldErrors.length === 0) {\n delete errors[path];\n } else {\n errors[path] = fieldErrors;\n }\n\n return { valid: fieldErrors.length === 0, errors: fieldErrors };\n };\n\n return {\n model,\n errors,\n validate(): FormValidationResult {\n const allErrors: Record<string, string[]> = {};\n Object.keys(rules).forEach((path) => {\n const result = validateField(path);\n if (!result.valid) {\n allErrors[path] = result.errors;\n }\n });\n return { valid: Object.keys(allErrors).length === 0, errors: allErrors };\n },\n validateField,\n resetErrors(): void {\n Object.keys(errors).forEach((path) => delete errors[path]);\n },\n };\n}\n",
|
|
8
|
+
"import { Component } from '../component';\nimport {\n normalizeTransitionGroupProps,\n validateTransitionGroupChildren,\n type TransitionGroupNode,\n type TransitionGroupProps,\n} from './types';\n\nexport class TransitionGroup extends Component<TransitionGroupProps> {\n protected initState(): object {\n return {};\n }\n\n protected initStyles(): void {}\n\n protected render(): TransitionGroupNode {\n const { tag, type, duration } = normalizeTransitionGroupProps(this.props);\n const children = validateTransitionGroupChildren(this.props.children ?? []);\n\n return {\n tag,\n props: this.props.elementProps,\n listeners: this.props.listeners,\n children,\n transitionGroup: {\n type,\n duration,\n },\n };\n }\n}\n",
|
|
9
|
+
"import { OneApp, AppOptions } from './core/app';\nimport type { ComponentProps } from './core/component';\n\n// 导出核心功能\nexport * from './core';\n\n// 导出路由功能\nexport * from './router';\n\n// 创建应用实例的主函数\nexport function createApp<\n TState extends object = Record<string, unknown>,\n TConfig extends object = Record<string, unknown>,\n TRootProps extends ComponentProps = ComponentProps,\n>(\n options: AppOptions<TState, TConfig, TRootProps> = {}\n): OneApp<TState, TConfig, TRootProps> {\n return new OneApp(options);\n}\n\n// 导出框架名称和版本\nexport const version = '0.0.2';\nexport const name = '@geektech/tsone';\n"
|
|
7
10
|
],
|
|
8
|
-
"mappings": "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",
|
|
9
|
-
"debugId": "
|
|
11
|
+
"mappings": "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",
|
|
12
|
+
"debugId": "7471E8A79DBDD62164756E2164756E21",
|
|
10
13
|
"names": []
|
|
11
14
|
}
|
package/dist/router/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AnyComponentConstructor, Component } from '../core/component';
|
|
2
2
|
import { OneApp } from '../core/app';
|
|
3
3
|
import type { VNode } from '../core/vnode';
|
|
4
|
+
export { useRouter } from './instance';
|
|
4
5
|
export type RouteMeta = Record<string, unknown>;
|
|
5
6
|
export interface RouteRecord {
|
|
6
7
|
path: string;
|
|
@@ -85,4 +86,3 @@ export declare class RouterView extends Component<object, RouterViewState> {
|
|
|
85
86
|
protected render(): VNode;
|
|
86
87
|
}
|
|
87
88
|
export declare function createRouter(options: RouterOptions | RouteRecord[]): Router;
|
|
88
|
-
export {};
|