frontend-hamroun 1.2.75 → 1.2.77
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/dist/batch/package.json +16 -0
- package/dist/client-router/package.json +16 -0
- package/dist/component/package.json +16 -0
- package/dist/context/package.json +16 -0
- package/dist/event-bus/package.json +16 -0
- package/dist/forms/package.json +16 -0
- package/dist/hooks/package.json +16 -0
- package/dist/jsx-runtime/package.json +16 -0
- package/dist/lifecycle-events/package.json +16 -0
- package/dist/package.json +71 -0
- package/dist/render-component/package.json +16 -0
- package/dist/renderer/package.json +16 -0
- package/dist/router/package.json +16 -0
- package/dist/server/package.json +17 -0
- package/dist/server/src/client-router.d.ts +60 -0
- package/dist/server/src/client-router.js +210 -0
- package/dist/server/src/client-router.js.map +1 -0
- package/dist/server/src/component.js +1 -1
- package/dist/server/src/event-bus.d.ts +23 -0
- package/dist/server/src/event-bus.js +75 -0
- package/dist/server/src/event-bus.js.map +1 -0
- package/dist/server/src/forms.d.ts +40 -0
- package/dist/server/src/forms.js +148 -0
- package/dist/server/src/forms.js.map +1 -0
- package/dist/server/src/hooks.js +2 -2
- package/dist/server/src/index.js +19 -11
- package/dist/server/src/lifecycle-events.d.ts +108 -0
- package/dist/server/src/lifecycle-events.js +177 -0
- package/dist/server/src/lifecycle-events.js.map +1 -0
- package/dist/server/src/renderComponent.js +1 -1
- package/dist/server/src/renderer.js +3 -3
- package/dist/server/src/router.d.ts +55 -0
- package/dist/server/src/router.js +166 -0
- package/dist/server/src/router.js.map +1 -0
- package/dist/server/src/server/index.d.ts +75 -2
- package/dist/server/src/server/index.js +224 -8
- package/dist/server/src/server/index.js.map +1 -1
- package/dist/server/src/server/server.js +1 -1
- package/dist/server/src/server/templates.d.ts +28 -0
- package/dist/server/src/server/templates.js +204 -0
- package/dist/server/src/server/templates.js.map +1 -0
- package/dist/server/src/server/utils.d.ts +70 -0
- package/dist/server/src/server/utils.js +156 -0
- package/dist/server/src/server/utils.js.map +1 -0
- package/dist/server/src/server-renderer.js +1 -1
- package/dist/server/src/store.d.ts +41 -0
- package/dist/server/src/store.js +99 -0
- package/dist/server/src/store.js.map +1 -0
- package/dist/server/src/utils.d.ts +46 -0
- package/dist/server/src/utils.js +144 -0
- package/dist/server/src/utils.js.map +1 -0
- package/dist/server/tsconfig.server.tsbuildinfo +1 -1
- package/dist/server-renderer/package.json +16 -0
- package/dist/store/package.json +16 -0
- package/dist/types/package.json +16 -0
- package/dist/utils/package.json +16 -0
- package/dist/vdom/package.json +16 -0
- package/dist/wasm/package.json +16 -0
- package/package.json +14 -13
- package/templates/complete-app/build.js +284 -0
- package/templates/complete-app/package.json +40 -0
- package/templates/complete-app/public/styles.css +345 -0
- package/templates/complete-app/src/api/index.js +31 -0
- package/templates/complete-app/src/client.js +93 -0
- package/templates/complete-app/src/components/App.js +66 -0
- package/templates/complete-app/src/components/Footer.js +19 -0
- package/templates/complete-app/src/components/Header.js +38 -0
- package/templates/complete-app/src/pages/About.js +59 -0
- package/templates/complete-app/src/pages/Home.js +54 -0
- package/templates/complete-app/src/pages/WasmDemo.js +136 -0
- package/templates/complete-app/src/server.js +186 -0
- package/templates/complete-app/src/wasm/build.bat +16 -0
- package/templates/complete-app/src/wasm/build.sh +16 -0
- package/templates/complete-app/src/wasm/example.go +101 -0
- package/templates/fullstack-app/build/main.css +225 -15
- package/templates/fullstack-app/build/main.css.map +2 -2
- package/templates/fullstack-app/build/main.js +657 -372
- package/templates/fullstack-app/build/main.js.map +4 -4
- package/templates/fullstack-app/build.ts +3 -4
- package/templates/fullstack-app/public/styles.css +222 -15
- package/templates/fullstack-app/server.ts +46 -12
- package/templates/fullstack-app/src/components/ClientHome.tsx +0 -0
- package/templates/fullstack-app/src/components/ErrorBoundary.tsx +36 -0
- package/templates/fullstack-app/src/components/Layout.tsx +23 -26
- package/templates/fullstack-app/src/components/StateDemo.tsx +207 -0
- package/templates/fullstack-app/src/components/UserList.tsx +30 -13
- package/templates/fullstack-app/src/data/api.ts +173 -38
- package/templates/fullstack-app/src/main.tsx +88 -154
- package/templates/fullstack-app/src/middleware.ts +28 -0
- package/templates/fullstack-app/src/pages/404.tsx +28 -0
- package/templates/fullstack-app/src/pages/[id].tsx +0 -0
- package/templates/fullstack-app/src/pages/_app.tsx +11 -0
- package/templates/fullstack-app/src/pages/_document.tsx +25 -0
- package/templates/fullstack-app/src/pages/_error.tsx +45 -0
- package/templates/fullstack-app/src/pages/about.tsx +71 -0
- package/templates/fullstack-app/src/pages/api/users/[id].ts +73 -0
- package/templates/fullstack-app/src/pages/api/users/index.ts +43 -0
- package/templates/fullstack-app/src/pages/index.tsx +97 -20
- package/templates/fullstack-app/src/pages/users/[id].tsx +153 -0
- package/templates/fullstack-app/src/pages/wasm-demo.tsx +1 -0
- package/templates/go/example.go +99 -86
- package/templates/go-wasm-app/babel.config.js +8 -2
- package/templates/go-wasm-app/build.config.js +62 -0
- package/templates/go-wasm-app/build.js +218 -0
- package/templates/go-wasm-app/package.json +21 -12
- package/templates/go-wasm-app/server.js +59 -510
- package/templates/go-wasm-app/src/app.js +173 -0
- package/templates/go-wasm-app/vite.config.js +16 -5
- package/templates/ssr-template/client.js +54 -26
- package/templates/ssr-template/server.js +5 -28
- package/templates/ssr-template/vite.config.js +21 -5
- package/dist/server/wasm.d.ts +0 -7
- package/dist/wasm.d.ts +0 -37
@@ -0,0 +1,75 @@
|
|
1
|
+
export function createEventBus() {
|
2
|
+
const events = new Map();
|
3
|
+
const onceHandlers = new WeakMap();
|
4
|
+
const on = (event, handler) => {
|
5
|
+
if (!events.has(event)) {
|
6
|
+
events.set(event, new Set());
|
7
|
+
}
|
8
|
+
events.get(event).add(handler);
|
9
|
+
// Return a function to remove this handler
|
10
|
+
return () => off(event, handler);
|
11
|
+
};
|
12
|
+
const once = (event, handler) => {
|
13
|
+
// Create a wrapper that will call the handler and remove itself
|
14
|
+
const onceWrapper = (...args) => {
|
15
|
+
off(event, onceWrapper);
|
16
|
+
handler(...args);
|
17
|
+
};
|
18
|
+
// Store the mapping between the original handler and the wrapper
|
19
|
+
onceHandlers.set(handler, onceWrapper);
|
20
|
+
// Register the wrapper
|
21
|
+
return on(event, onceWrapper);
|
22
|
+
};
|
23
|
+
const off = (event, handler) => {
|
24
|
+
// If no handler is provided, remove all handlers for the event
|
25
|
+
if (!handler) {
|
26
|
+
events.delete(event);
|
27
|
+
return;
|
28
|
+
}
|
29
|
+
// Check if it's a once handler wrapper
|
30
|
+
const wrappedHandler = onceHandlers.get(handler);
|
31
|
+
const handlerToRemove = wrappedHandler || handler;
|
32
|
+
if (events.has(event)) {
|
33
|
+
events.get(event).delete(handlerToRemove);
|
34
|
+
// Clean up empty event sets
|
35
|
+
if (events.get(event).size === 0) {
|
36
|
+
events.delete(event);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
};
|
40
|
+
const emit = (event, ...args) => {
|
41
|
+
if (!events.has(event)) {
|
42
|
+
return;
|
43
|
+
}
|
44
|
+
// Create a copy of the handlers to avoid issues if handlers modify the set
|
45
|
+
const handlers = Array.from(events.get(event));
|
46
|
+
// Call each handler with the arguments
|
47
|
+
for (const handler of handlers) {
|
48
|
+
handler(...args);
|
49
|
+
}
|
50
|
+
};
|
51
|
+
const clear = (event) => {
|
52
|
+
if (event) {
|
53
|
+
events.delete(event);
|
54
|
+
}
|
55
|
+
else {
|
56
|
+
events.clear();
|
57
|
+
}
|
58
|
+
};
|
59
|
+
return { on, once, off, emit, clear };
|
60
|
+
}
|
61
|
+
// Create a global event bus instance
|
62
|
+
const globalEventBus = createEventBus();
|
63
|
+
// Hook to use the event bus in components
|
64
|
+
export function useEvent(event, handler, options = {}) {
|
65
|
+
return options.once
|
66
|
+
? globalEventBus.once(event, handler)
|
67
|
+
: globalEventBus.on(event, handler);
|
68
|
+
}
|
69
|
+
export { globalEventBus as eventBus };
|
70
|
+
export default {
|
71
|
+
createEventBus,
|
72
|
+
eventBus: globalEventBus,
|
73
|
+
useEvent
|
74
|
+
};
|
75
|
+
//# sourceMappingURL=event-bus.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../src/event-bus.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
export interface FormField {
|
2
|
+
value: any;
|
3
|
+
error?: string;
|
4
|
+
touched: boolean;
|
5
|
+
dirty: boolean;
|
6
|
+
}
|
7
|
+
export interface FormState {
|
8
|
+
fields: Record<string, FormField>;
|
9
|
+
isValid: boolean;
|
10
|
+
isDirty: boolean;
|
11
|
+
isSubmitting: boolean;
|
12
|
+
submitCount: number;
|
13
|
+
}
|
14
|
+
export interface FormOptions<T> {
|
15
|
+
initialValues: T;
|
16
|
+
validate?: (values: T) => Record<string, string>;
|
17
|
+
onSubmit?: (values: T, form: FormState) => void | Promise<void>;
|
18
|
+
}
|
19
|
+
export interface FormConfig<T> {
|
20
|
+
values: T;
|
21
|
+
errors: Record<string, string>;
|
22
|
+
touched: Record<string, boolean>;
|
23
|
+
dirty: Record<string, boolean>;
|
24
|
+
isValid: boolean;
|
25
|
+
isDirty: boolean;
|
26
|
+
isSubmitting: boolean;
|
27
|
+
submitCount: number;
|
28
|
+
handleChange: (e: any) => void;
|
29
|
+
handleBlur: (e: any) => void;
|
30
|
+
handleSubmit: (e: any) => void;
|
31
|
+
setFieldValue: (field: string, value: any) => void;
|
32
|
+
setFieldError: (field: string, error: string) => void;
|
33
|
+
setValues: (values: Partial<T>) => void;
|
34
|
+
resetForm: () => void;
|
35
|
+
}
|
36
|
+
export declare function useForm<T extends Record<string, any>>(options: FormOptions<T>): FormConfig<T>;
|
37
|
+
declare const _default: {
|
38
|
+
useForm: typeof useForm;
|
39
|
+
};
|
40
|
+
export default _default;
|
@@ -0,0 +1,148 @@
|
|
1
|
+
/**
|
2
|
+
* Form handling utilities for the framework
|
3
|
+
*/
|
4
|
+
import { useState, useEffect } from './hooks';
|
5
|
+
export function useForm(options) {
|
6
|
+
const { initialValues, validate, onSubmit } = options;
|
7
|
+
const [values, setValues] = useState(initialValues);
|
8
|
+
const [errors, setErrors] = useState({});
|
9
|
+
const [touched, setTouched] = useState({});
|
10
|
+
const [dirty, setDirty] = useState({});
|
11
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
12
|
+
const [submitCount, setSubmitCount] = useState(0);
|
13
|
+
// Track form validity and dirty state
|
14
|
+
const isValid = Object.keys(errors).length === 0;
|
15
|
+
const isDirty = Object.values(dirty).some(Boolean);
|
16
|
+
// Validate form when values or validate function changes
|
17
|
+
useEffect(() => {
|
18
|
+
if (validate) {
|
19
|
+
const validationErrors = validate(values);
|
20
|
+
setErrors(validationErrors || {});
|
21
|
+
}
|
22
|
+
}, [values, validate]);
|
23
|
+
// Handle form input changes
|
24
|
+
const handleChange = (e) => {
|
25
|
+
const { name, value, type, checked } = e.target;
|
26
|
+
const fieldValue = type === 'checkbox' ? checked : value;
|
27
|
+
setValues(prev => ({
|
28
|
+
...prev,
|
29
|
+
[name]: fieldValue
|
30
|
+
}));
|
31
|
+
setDirty(prev => ({
|
32
|
+
...prev,
|
33
|
+
[name]: true
|
34
|
+
}));
|
35
|
+
};
|
36
|
+
// Handle field blur
|
37
|
+
const handleBlur = (e) => {
|
38
|
+
const { name } = e.target;
|
39
|
+
setTouched(prev => ({
|
40
|
+
...prev,
|
41
|
+
[name]: true
|
42
|
+
}));
|
43
|
+
};
|
44
|
+
// Set field value programmatically
|
45
|
+
const setFieldValue = (field, value) => {
|
46
|
+
setValues(prev => ({
|
47
|
+
...prev,
|
48
|
+
[field]: value
|
49
|
+
}));
|
50
|
+
setDirty(prev => ({
|
51
|
+
...prev,
|
52
|
+
[field]: true
|
53
|
+
}));
|
54
|
+
};
|
55
|
+
// Set field error programmatically
|
56
|
+
const setFieldError = (field, error) => {
|
57
|
+
setErrors(prev => ({
|
58
|
+
...prev,
|
59
|
+
[field]: error
|
60
|
+
}));
|
61
|
+
};
|
62
|
+
// Update multiple values at once
|
63
|
+
const updateValues = (newValues) => {
|
64
|
+
setValues(prev => ({
|
65
|
+
...prev,
|
66
|
+
...newValues
|
67
|
+
}));
|
68
|
+
// Mark changed fields as dirty
|
69
|
+
const dirtyFields = {};
|
70
|
+
Object.keys(newValues).forEach(key => {
|
71
|
+
dirtyFields[key] = true;
|
72
|
+
});
|
73
|
+
setDirty(prev => ({
|
74
|
+
...prev,
|
75
|
+
...dirtyFields
|
76
|
+
}));
|
77
|
+
};
|
78
|
+
// Reset form to initial state
|
79
|
+
const resetForm = () => {
|
80
|
+
setValues(initialValues);
|
81
|
+
setErrors({});
|
82
|
+
setTouched({});
|
83
|
+
setDirty({});
|
84
|
+
setIsSubmitting(false);
|
85
|
+
};
|
86
|
+
// Handle form submission
|
87
|
+
const handleSubmit = async (e) => {
|
88
|
+
e.preventDefault();
|
89
|
+
// Mark all fields as touched
|
90
|
+
const allTouched = {};
|
91
|
+
Object.keys(values).forEach(key => {
|
92
|
+
allTouched[key] = true;
|
93
|
+
});
|
94
|
+
setTouched(allTouched);
|
95
|
+
// Validate before submission
|
96
|
+
let validationErrors = {};
|
97
|
+
if (validate) {
|
98
|
+
validationErrors = validate(values);
|
99
|
+
setErrors(validationErrors || {});
|
100
|
+
}
|
101
|
+
// Only proceed if valid
|
102
|
+
if (Object.keys(validationErrors).length === 0 && onSubmit) {
|
103
|
+
setIsSubmitting(true);
|
104
|
+
setSubmitCount(count => count + 1);
|
105
|
+
try {
|
106
|
+
await onSubmit(values, {
|
107
|
+
fields: Object.keys(values).reduce((acc, key) => {
|
108
|
+
acc[key] = {
|
109
|
+
value: values[key],
|
110
|
+
error: errors[key],
|
111
|
+
touched: touched[key] || false,
|
112
|
+
dirty: dirty[key] || false
|
113
|
+
};
|
114
|
+
return acc;
|
115
|
+
}, {}),
|
116
|
+
isValid,
|
117
|
+
isDirty,
|
118
|
+
isSubmitting: true,
|
119
|
+
submitCount: submitCount + 1
|
120
|
+
});
|
121
|
+
}
|
122
|
+
finally {
|
123
|
+
setIsSubmitting(false);
|
124
|
+
}
|
125
|
+
}
|
126
|
+
};
|
127
|
+
return {
|
128
|
+
values,
|
129
|
+
errors,
|
130
|
+
touched,
|
131
|
+
dirty,
|
132
|
+
isValid,
|
133
|
+
isDirty,
|
134
|
+
isSubmitting,
|
135
|
+
submitCount,
|
136
|
+
handleChange,
|
137
|
+
handleBlur,
|
138
|
+
handleSubmit,
|
139
|
+
setFieldValue,
|
140
|
+
setFieldError,
|
141
|
+
setValues: updateValues,
|
142
|
+
resetForm
|
143
|
+
};
|
144
|
+
}
|
145
|
+
export default {
|
146
|
+
useForm
|
147
|
+
};
|
148
|
+
//# sourceMappingURL=forms.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/forms.ts"],"names":[],"mappings":"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"}
|
package/dist/server/src/hooks.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import { batchUpdates, isBatching } from './batch
|
2
|
-
import { createContext, useContext } from './context
|
1
|
+
import { batchUpdates, isBatching } from './batch';
|
2
|
+
import { createContext, useContext } from './context';
|
3
3
|
// Current render ID counter
|
4
4
|
let currentRender = 0;
|
5
5
|
// State storage
|
package/dist/server/src/index.js
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
import { createElement } from './jsx-runtime
|
2
|
-
import { loadGoWasm as loadGoWasmImpl, createTypedWasmFunction as createTypedWasmFunctionImpl, goValues as goValuesImpl } from './wasm
|
1
|
+
import { createElement } from './jsx-runtime';
|
2
|
+
import { loadGoWasm as loadGoWasmImpl, createTypedWasmFunction as createTypedWasmFunctionImpl, goValues as goValuesImpl } from './wasm';
|
3
3
|
// Import items needed for the default export
|
4
|
-
import { jsx, jsxs, Fragment } from './jsx-runtime
|
5
|
-
import { render, hydrate } from './renderer
|
6
|
-
import { useState, useEffect, useMemo, useRef, useContext, useErrorBoundary } from './hooks
|
7
|
-
import { createContext } from './context
|
8
|
-
import { renderToString } from './server-renderer
|
9
|
-
import { batchUpdates } from './batch
|
10
|
-
import { diff, shouldComponentUpdate } from './vdom
|
11
|
-
import { Component } from './component
|
4
|
+
import { jsx, jsxs, Fragment } from './jsx-runtime';
|
5
|
+
import { render, hydrate } from './renderer';
|
6
|
+
import { useState, useEffect, useMemo, useRef, useContext, useErrorBoundary } from './hooks';
|
7
|
+
import { createContext } from './context';
|
8
|
+
import { renderToString } from './server-renderer';
|
9
|
+
import { batchUpdates } from './batch';
|
10
|
+
import { diff, shouldComponentUpdate } from './vdom';
|
11
|
+
import { Component } from './component';
|
12
12
|
// Re-export core modules with explicit names to ensure they appear in bundle
|
13
13
|
export { render, hydrate } from './renderer.js';
|
14
14
|
export { jsx, jsxs, jsxDEV, Fragment, createElement } from './jsx-runtime.js';
|
@@ -67,4 +67,12 @@ export default {
|
|
67
67
|
diff: diff,
|
68
68
|
shouldComponentUpdate: shouldComponentUpdate
|
69
69
|
};
|
70
|
-
//# sourceMappingURL=index.js.map
|
70
|
+
//# sourceMappingURL=index.js.map
|
71
|
+
// This module is compatible with both ESM and CommonJS
|
72
|
+
if (typeof exports === 'object' && typeof module !== 'undefined') {
|
73
|
+
// CommonJS environment
|
74
|
+
module.exports = exports;
|
75
|
+
} else if (typeof define === 'function' && define.amd) {
|
76
|
+
// AMD environment
|
77
|
+
define(['exports'], factory);
|
78
|
+
} // ESM environment is handled by default exports
|
@@ -0,0 +1,108 @@
|
|
1
|
+
export declare enum LifecycleEvents {
|
2
|
+
APP_INIT = "app:init",
|
3
|
+
APP_MOUNTED = "app:mounted",
|
4
|
+
APP_UPDATED = "app:updated",
|
5
|
+
APP_ERROR = "app:error",
|
6
|
+
APP_DESTROYED = "app:destroyed",
|
7
|
+
COMPONENT_CREATED = "component:created",
|
8
|
+
COMPONENT_MOUNTED = "component:mounted",
|
9
|
+
COMPONENT_UPDATED = "component:updated",
|
10
|
+
COMPONENT_ERROR = "component:error",
|
11
|
+
COMPONENT_UNMOUNTED = "component:unmounted",
|
12
|
+
ROUTER_BEFORE_CHANGE = "router:before-change",
|
13
|
+
ROUTER_AFTER_CHANGE = "router:after-change",
|
14
|
+
ROUTER_ERROR = "router:error",
|
15
|
+
STORE_INITIALIZED = "store:initialized",
|
16
|
+
STORE_BEFORE_ACTION = "store:before-action",
|
17
|
+
STORE_AFTER_ACTION = "store:after-action",
|
18
|
+
STORE_ERROR = "store:error"
|
19
|
+
}
|
20
|
+
export interface ComponentInfo {
|
21
|
+
id: string;
|
22
|
+
name: string;
|
23
|
+
props: Record<string, any>;
|
24
|
+
path?: string;
|
25
|
+
}
|
26
|
+
export interface RouteChangeInfo {
|
27
|
+
from: string;
|
28
|
+
to: string;
|
29
|
+
params: Record<string, string>;
|
30
|
+
}
|
31
|
+
export interface StoreActionInfo {
|
32
|
+
type: string;
|
33
|
+
payload: any;
|
34
|
+
prevState: any;
|
35
|
+
nextState: any;
|
36
|
+
}
|
37
|
+
export declare function emitAppInit(data: any): void;
|
38
|
+
export declare function emitAppMounted(rootElement: HTMLElement): void;
|
39
|
+
export declare function emitAppUpdated(): void;
|
40
|
+
export declare function emitAppError(error: Error): void;
|
41
|
+
export declare function emitAppDestroyed(): void;
|
42
|
+
export declare function emitComponentCreated(info: ComponentInfo): void;
|
43
|
+
export declare function emitComponentMounted(info: ComponentInfo, element: HTMLElement): void;
|
44
|
+
export declare function emitComponentUpdated(info: ComponentInfo, prevProps: Record<string, any>, newProps: Record<string, any>): void;
|
45
|
+
export declare function emitComponentError(info: ComponentInfo, error: Error): void;
|
46
|
+
export declare function emitComponentUnmounted(info: ComponentInfo): void;
|
47
|
+
export declare function emitRouterBeforeChange(info: RouteChangeInfo): Promise<boolean>;
|
48
|
+
export declare function emitRouterAfterChange(info: RouteChangeInfo): void;
|
49
|
+
export declare function emitRouterError(error: Error, info?: Partial<RouteChangeInfo>): void;
|
50
|
+
export declare function emitStoreInitialized(state: any): void;
|
51
|
+
export declare function emitStoreBeforeAction(actionType: string, payload: any, state: any): void;
|
52
|
+
export declare function emitStoreAfterAction(info: StoreActionInfo): void;
|
53
|
+
export declare function emitStoreError(error: Error, actionType: string, payload: any): void;
|
54
|
+
export declare function onAppInit(handler: (data: any) => void): () => void;
|
55
|
+
export declare function onAppMounted(handler: (rootElement: HTMLElement) => void): () => void;
|
56
|
+
export declare function onAppUpdated(handler: () => void): () => void;
|
57
|
+
export declare function onAppError(handler: (error: Error) => void): () => void;
|
58
|
+
export declare function onAppDestroyed(handler: () => void): () => void;
|
59
|
+
export declare function onComponentCreated(handler: (info: ComponentInfo) => void): () => void;
|
60
|
+
export declare function onComponentMounted(handler: (info: ComponentInfo, element: HTMLElement) => void): () => void;
|
61
|
+
export declare function onComponentUpdated(handler: (info: ComponentInfo, prevProps: Record<string, any>, newProps: Record<string, any>) => void): () => void;
|
62
|
+
export declare function onComponentError(handler: (info: ComponentInfo, error: Error) => void): () => void;
|
63
|
+
export declare function onComponentUnmounted(handler: (info: ComponentInfo) => void): () => void;
|
64
|
+
export declare function onRouterBeforeChange(handler: (info: RouteChangeInfo, prevent: () => void) => void): () => void;
|
65
|
+
export declare function onRouterAfterChange(handler: (info: RouteChangeInfo) => void): () => void;
|
66
|
+
export declare function onRouterError(handler: (error: Error, info?: Partial<RouteChangeInfo>) => void): () => void;
|
67
|
+
export declare function onStoreInitialized(handler: (state: any) => void): () => void;
|
68
|
+
export declare function onStoreBeforeAction(handler: (actionType: string, payload: any, state: any) => void): () => void;
|
69
|
+
export declare function onStoreAfterAction(handler: (info: StoreActionInfo) => void): () => void;
|
70
|
+
export declare function onStoreError(handler: (error: Error, actionType: string, payload: any) => void): () => void;
|
71
|
+
declare const _default: {
|
72
|
+
LifecycleEvents: typeof LifecycleEvents;
|
73
|
+
emitAppInit: typeof emitAppInit;
|
74
|
+
emitAppMounted: typeof emitAppMounted;
|
75
|
+
emitAppUpdated: typeof emitAppUpdated;
|
76
|
+
emitAppError: typeof emitAppError;
|
77
|
+
emitAppDestroyed: typeof emitAppDestroyed;
|
78
|
+
emitComponentCreated: typeof emitComponentCreated;
|
79
|
+
emitComponentMounted: typeof emitComponentMounted;
|
80
|
+
emitComponentUpdated: typeof emitComponentUpdated;
|
81
|
+
emitComponentError: typeof emitComponentError;
|
82
|
+
emitComponentUnmounted: typeof emitComponentUnmounted;
|
83
|
+
emitRouterBeforeChange: typeof emitRouterBeforeChange;
|
84
|
+
emitRouterAfterChange: typeof emitRouterAfterChange;
|
85
|
+
emitRouterError: typeof emitRouterError;
|
86
|
+
emitStoreInitialized: typeof emitStoreInitialized;
|
87
|
+
emitStoreBeforeAction: typeof emitStoreBeforeAction;
|
88
|
+
emitStoreAfterAction: typeof emitStoreAfterAction;
|
89
|
+
emitStoreError: typeof emitStoreError;
|
90
|
+
onAppInit: typeof onAppInit;
|
91
|
+
onAppMounted: typeof onAppMounted;
|
92
|
+
onAppUpdated: typeof onAppUpdated;
|
93
|
+
onAppError: typeof onAppError;
|
94
|
+
onAppDestroyed: typeof onAppDestroyed;
|
95
|
+
onComponentCreated: typeof onComponentCreated;
|
96
|
+
onComponentMounted: typeof onComponentMounted;
|
97
|
+
onComponentUpdated: typeof onComponentUpdated;
|
98
|
+
onComponentError: typeof onComponentError;
|
99
|
+
onComponentUnmounted: typeof onComponentUnmounted;
|
100
|
+
onRouterBeforeChange: typeof onRouterBeforeChange;
|
101
|
+
onRouterAfterChange: typeof onRouterAfterChange;
|
102
|
+
onRouterError: typeof onRouterError;
|
103
|
+
onStoreInitialized: typeof onStoreInitialized;
|
104
|
+
onStoreBeforeAction: typeof onStoreBeforeAction;
|
105
|
+
onStoreAfterAction: typeof onStoreAfterAction;
|
106
|
+
onStoreError: typeof onStoreError;
|
107
|
+
};
|
108
|
+
export default _default;
|
@@ -0,0 +1,177 @@
|
|
1
|
+
/**
|
2
|
+
* Lifecycle events for components and application
|
3
|
+
*/
|
4
|
+
import { eventBus } from './event-bus';
|
5
|
+
export var LifecycleEvents;
|
6
|
+
(function (LifecycleEvents) {
|
7
|
+
LifecycleEvents["APP_INIT"] = "app:init";
|
8
|
+
LifecycleEvents["APP_MOUNTED"] = "app:mounted";
|
9
|
+
LifecycleEvents["APP_UPDATED"] = "app:updated";
|
10
|
+
LifecycleEvents["APP_ERROR"] = "app:error";
|
11
|
+
LifecycleEvents["APP_DESTROYED"] = "app:destroyed";
|
12
|
+
LifecycleEvents["COMPONENT_CREATED"] = "component:created";
|
13
|
+
LifecycleEvents["COMPONENT_MOUNTED"] = "component:mounted";
|
14
|
+
LifecycleEvents["COMPONENT_UPDATED"] = "component:updated";
|
15
|
+
LifecycleEvents["COMPONENT_ERROR"] = "component:error";
|
16
|
+
LifecycleEvents["COMPONENT_UNMOUNTED"] = "component:unmounted";
|
17
|
+
LifecycleEvents["ROUTER_BEFORE_CHANGE"] = "router:before-change";
|
18
|
+
LifecycleEvents["ROUTER_AFTER_CHANGE"] = "router:after-change";
|
19
|
+
LifecycleEvents["ROUTER_ERROR"] = "router:error";
|
20
|
+
LifecycleEvents["STORE_INITIALIZED"] = "store:initialized";
|
21
|
+
LifecycleEvents["STORE_BEFORE_ACTION"] = "store:before-action";
|
22
|
+
LifecycleEvents["STORE_AFTER_ACTION"] = "store:after-action";
|
23
|
+
LifecycleEvents["STORE_ERROR"] = "store:error";
|
24
|
+
})(LifecycleEvents || (LifecycleEvents = {}));
|
25
|
+
// Event emitters
|
26
|
+
export function emitAppInit(data) {
|
27
|
+
eventBus.emit(LifecycleEvents.APP_INIT, data);
|
28
|
+
}
|
29
|
+
export function emitAppMounted(rootElement) {
|
30
|
+
eventBus.emit(LifecycleEvents.APP_MOUNTED, rootElement);
|
31
|
+
}
|
32
|
+
export function emitAppUpdated() {
|
33
|
+
eventBus.emit(LifecycleEvents.APP_UPDATED);
|
34
|
+
}
|
35
|
+
export function emitAppError(error) {
|
36
|
+
eventBus.emit(LifecycleEvents.APP_ERROR, error);
|
37
|
+
}
|
38
|
+
export function emitAppDestroyed() {
|
39
|
+
eventBus.emit(LifecycleEvents.APP_DESTROYED);
|
40
|
+
}
|
41
|
+
export function emitComponentCreated(info) {
|
42
|
+
eventBus.emit(LifecycleEvents.COMPONENT_CREATED, info);
|
43
|
+
}
|
44
|
+
export function emitComponentMounted(info, element) {
|
45
|
+
eventBus.emit(LifecycleEvents.COMPONENT_MOUNTED, info, element);
|
46
|
+
}
|
47
|
+
export function emitComponentUpdated(info, prevProps, newProps) {
|
48
|
+
eventBus.emit(LifecycleEvents.COMPONENT_UPDATED, info, prevProps, newProps);
|
49
|
+
}
|
50
|
+
export function emitComponentError(info, error) {
|
51
|
+
eventBus.emit(LifecycleEvents.COMPONENT_ERROR, info, error);
|
52
|
+
}
|
53
|
+
export function emitComponentUnmounted(info) {
|
54
|
+
eventBus.emit(LifecycleEvents.COMPONENT_UNMOUNTED, info);
|
55
|
+
}
|
56
|
+
export function emitRouterBeforeChange(info) {
|
57
|
+
return new Promise(resolve => {
|
58
|
+
// Allow hooks to prevent navigation
|
59
|
+
let prevented = false;
|
60
|
+
const prevent = () => {
|
61
|
+
prevented = true;
|
62
|
+
};
|
63
|
+
eventBus.emit(LifecycleEvents.ROUTER_BEFORE_CHANGE, info, prevent);
|
64
|
+
// Resolve with whether navigation should continue
|
65
|
+
resolve(!prevented);
|
66
|
+
});
|
67
|
+
}
|
68
|
+
export function emitRouterAfterChange(info) {
|
69
|
+
eventBus.emit(LifecycleEvents.ROUTER_AFTER_CHANGE, info);
|
70
|
+
}
|
71
|
+
export function emitRouterError(error, info) {
|
72
|
+
eventBus.emit(LifecycleEvents.ROUTER_ERROR, error, info);
|
73
|
+
}
|
74
|
+
export function emitStoreInitialized(state) {
|
75
|
+
eventBus.emit(LifecycleEvents.STORE_INITIALIZED, state);
|
76
|
+
}
|
77
|
+
export function emitStoreBeforeAction(actionType, payload, state) {
|
78
|
+
eventBus.emit(LifecycleEvents.STORE_BEFORE_ACTION, actionType, payload, state);
|
79
|
+
}
|
80
|
+
export function emitStoreAfterAction(info) {
|
81
|
+
eventBus.emit(LifecycleEvents.STORE_AFTER_ACTION, info);
|
82
|
+
}
|
83
|
+
export function emitStoreError(error, actionType, payload) {
|
84
|
+
eventBus.emit(LifecycleEvents.STORE_ERROR, error, actionType, payload);
|
85
|
+
}
|
86
|
+
// Event listeners
|
87
|
+
export function onAppInit(handler) {
|
88
|
+
return eventBus.on(LifecycleEvents.APP_INIT, handler);
|
89
|
+
}
|
90
|
+
export function onAppMounted(handler) {
|
91
|
+
return eventBus.on(LifecycleEvents.APP_MOUNTED, handler);
|
92
|
+
}
|
93
|
+
export function onAppUpdated(handler) {
|
94
|
+
return eventBus.on(LifecycleEvents.APP_UPDATED, handler);
|
95
|
+
}
|
96
|
+
export function onAppError(handler) {
|
97
|
+
return eventBus.on(LifecycleEvents.APP_ERROR, handler);
|
98
|
+
}
|
99
|
+
export function onAppDestroyed(handler) {
|
100
|
+
return eventBus.on(LifecycleEvents.APP_DESTROYED, handler);
|
101
|
+
}
|
102
|
+
export function onComponentCreated(handler) {
|
103
|
+
return eventBus.on(LifecycleEvents.COMPONENT_CREATED, handler);
|
104
|
+
}
|
105
|
+
export function onComponentMounted(handler) {
|
106
|
+
return eventBus.on(LifecycleEvents.COMPONENT_MOUNTED, handler);
|
107
|
+
}
|
108
|
+
export function onComponentUpdated(handler) {
|
109
|
+
return eventBus.on(LifecycleEvents.COMPONENT_UPDATED, handler);
|
110
|
+
}
|
111
|
+
export function onComponentError(handler) {
|
112
|
+
return eventBus.on(LifecycleEvents.COMPONENT_ERROR, handler);
|
113
|
+
}
|
114
|
+
export function onComponentUnmounted(handler) {
|
115
|
+
return eventBus.on(LifecycleEvents.COMPONENT_UNMOUNTED, handler);
|
116
|
+
}
|
117
|
+
export function onRouterBeforeChange(handler) {
|
118
|
+
return eventBus.on(LifecycleEvents.ROUTER_BEFORE_CHANGE, handler);
|
119
|
+
}
|
120
|
+
export function onRouterAfterChange(handler) {
|
121
|
+
return eventBus.on(LifecycleEvents.ROUTER_AFTER_CHANGE, handler);
|
122
|
+
}
|
123
|
+
export function onRouterError(handler) {
|
124
|
+
return eventBus.on(LifecycleEvents.ROUTER_ERROR, handler);
|
125
|
+
}
|
126
|
+
export function onStoreInitialized(handler) {
|
127
|
+
return eventBus.on(LifecycleEvents.STORE_INITIALIZED, handler);
|
128
|
+
}
|
129
|
+
export function onStoreBeforeAction(handler) {
|
130
|
+
return eventBus.on(LifecycleEvents.STORE_BEFORE_ACTION, handler);
|
131
|
+
}
|
132
|
+
export function onStoreAfterAction(handler) {
|
133
|
+
return eventBus.on(LifecycleEvents.STORE_AFTER_ACTION, handler);
|
134
|
+
}
|
135
|
+
export function onStoreError(handler) {
|
136
|
+
return eventBus.on(LifecycleEvents.STORE_ERROR, handler);
|
137
|
+
}
|
138
|
+
export default {
|
139
|
+
LifecycleEvents,
|
140
|
+
// Emitters
|
141
|
+
emitAppInit,
|
142
|
+
emitAppMounted,
|
143
|
+
emitAppUpdated,
|
144
|
+
emitAppError,
|
145
|
+
emitAppDestroyed,
|
146
|
+
emitComponentCreated,
|
147
|
+
emitComponentMounted,
|
148
|
+
emitComponentUpdated,
|
149
|
+
emitComponentError,
|
150
|
+
emitComponentUnmounted,
|
151
|
+
emitRouterBeforeChange,
|
152
|
+
emitRouterAfterChange,
|
153
|
+
emitRouterError,
|
154
|
+
emitStoreInitialized,
|
155
|
+
emitStoreBeforeAction,
|
156
|
+
emitStoreAfterAction,
|
157
|
+
emitStoreError,
|
158
|
+
// Listeners
|
159
|
+
onAppInit,
|
160
|
+
onAppMounted,
|
161
|
+
onAppUpdated,
|
162
|
+
onAppError,
|
163
|
+
onAppDestroyed,
|
164
|
+
onComponentCreated,
|
165
|
+
onComponentMounted,
|
166
|
+
onComponentUpdated,
|
167
|
+
onComponentError,
|
168
|
+
onComponentUnmounted,
|
169
|
+
onRouterBeforeChange,
|
170
|
+
onRouterAfterChange,
|
171
|
+
onRouterError,
|
172
|
+
onStoreInitialized,
|
173
|
+
onStoreBeforeAction,
|
174
|
+
onStoreAfterAction,
|
175
|
+
onStoreError
|
176
|
+
};
|
177
|
+
//# sourceMappingURL=lifecycle-events.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"lifecycle-events.js","sourceRoot":"","sources":["../../../src/lifecycle-events.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAN,IAAY,eAqBX;AArBD,WAAY,eAAe;IACzB,wCAAqB,CAAA;IACrB,8CAA2B,CAAA;IAC3B,8CAA2B,CAAA;IAC3B,0CAAuB,CAAA;IACvB,kDAA+B,CAAA;IAE/B,0DAAuC,CAAA;IACvC,0DAAuC,CAAA;IACvC,0DAAuC,CAAA;IACvC,sDAAmC,CAAA;IACnC,8DAA2C,CAAA;IAE3C,gEAA6C,CAAA;IAC7C,8DAA2C,CAAA;IAC3C,gDAA6B,CAAA;IAE7B,0DAAuC,CAAA;IACvC,8DAA2C,CAAA;IAC3C,4DAAyC,CAAA;IACzC,8CAA2B,CAAA;AAC7B,CAAC,EArBW,eAAe,KAAf,eAAe,QAqB1B;AAyBD,iBAAiB;AACjB,MAAM,UAAU,WAAW,CAAC,IAAS;IACnC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAwB;IACrD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAmB;IACtD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAmB,EAAE,OAAoB;IAC5E,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAmB,EACrB,SAA8B,EAC9B,QAA6B;IAC9D,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAmB,EAAE,KAAY;IAClE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAmB;IACxD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAqB;IAC1D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,oCAAoC;QACpC,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEnE,kDAAkD;QAClD,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAqB;IACzD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAY,EAAE,IAA+B;IAC3E,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAU;IAC7C,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,OAAY,EAAE,KAAU;IAChF,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAqB;IACxD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY,EAAE,UAAkB,EAAE,OAAY;IAC3E,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,SAAS,CAAC,OAA4B;IACpD,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAA2C;IACtE,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAmB;IAC9C,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAA+B;IACxD,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAmB;IAChD,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAsC;IACvE,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA4D;IAC7F,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAE6C;IAC9E,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAoD;IACnF,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAsC;IACzE,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAA6D;IAChG,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAwC;IAC1E,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgE;IAC5F,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA6B;IAC9D,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA+D;IACjG,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAwC;IACzE,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAiE;IAC5F,OAAO,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,eAAe;IACb,eAAe;IACf,WAAW;IACX,WAAW;IACX,cAAc;IACd,cAAc;IACd,YAAY;IACZ,gBAAgB;IAChB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,sBAAsB;IACtB,sBAAsB;IACtB,qBAAqB;IACrB,eAAe;IACf,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,cAAc;IACd,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,YAAY;CACb,CAAC"}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { createElement } from './jsx-runtime
|
2
|
-
import { prepareRender, finishRender, setRenderCallback } from './hooks
|
3
|
-
import { batchUpdates } from './batch
|
1
|
+
import { createElement } from './jsx-runtime';
|
2
|
+
import { prepareRender, finishRender, setRenderCallback } from './hooks';
|
3
|
+
import { batchUpdates } from './batch';
|
4
4
|
let isHydrating = false;
|
5
5
|
export async function hydrate(element, container) {
|
6
6
|
isHydrating = true;
|