apprun 3.35.0 → 3.36.1
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/CHANGELOG.md +28 -0
- package/README.md +134 -16
- package/WHATSNEW.md +28 -12
- package/apprun-book.jpg +0 -0
- package/apprun.d.ts +9 -6
- package/cli/app.js +29 -0
- package/cli/index.html +13 -0
- package/{apprun-cli.js → cli/index.js} +8 -14
- package/dist/apprun-dev-tools.js +1 -2
- package/dist/apprun-dev-tools.js.map +1 -1
- package/dist/apprun-html.esm.js +7 -7
- package/dist/apprun-html.esm.js.map +1 -1
- package/dist/apprun-html.js +1 -1
- package/dist/apprun-html.js.map +1 -1
- package/dist/apprun-play-html.esm.js +7 -7
- package/dist/apprun-play-html.esm.js.map +1 -1
- package/dist/apprun-play.js +1 -1
- package/dist/apprun-play.js.map +1 -1
- package/dist/apprun.esm.js +1 -1
- package/dist/apprun.esm.js.map +1 -1
- package/dist/apprun.js +1 -1
- package/dist/apprun.js.map +1 -1
- package/esm/app.js +60 -12
- package/esm/app.js.map +1 -1
- package/esm/apprun-dev-tools.js +1 -7
- package/esm/apprun-dev-tools.js.map +1 -1
- package/esm/apprun-html.js +8 -4
- package/esm/apprun-html.js.map +1 -1
- package/esm/apprun.js +81 -17
- package/esm/apprun.js.map +1 -1
- package/esm/component.js +60 -19
- package/esm/component.js.map +1 -1
- package/esm/decorator.js +22 -5
- package/esm/decorator.js.map +1 -1
- package/esm/directive.js +64 -13
- package/esm/directive.js.map +1 -1
- package/esm/router.js +263 -22
- package/esm/router.js.map +1 -1
- package/esm/type-utils.js +91 -0
- package/esm/type-utils.js.map +1 -0
- package/esm/types.js +32 -11
- package/esm/types.js.map +1 -1
- package/esm/vdom-my-new.js +329 -0
- package/esm/vdom-my-new.js.map +1 -0
- package/esm/vdom-my-prop-attr.js +227 -0
- package/esm/vdom-my-prop-attr.js.map +1 -0
- package/esm/vdom-my.js +77 -88
- package/esm/vdom-my.js.map +1 -1
- package/esm/version.js +15 -0
- package/esm/version.js.map +1 -0
- package/esm/web-component.js +30 -10
- package/esm/web-component.js.map +1 -1
- package/index.html +1 -1
- package/jest.config.js +3 -8
- package/jest.setup.js +29 -3
- package/jsx-runtime.js +1 -1
- package/jsx-runtime.js.map +1 -1
- package/package.json +7 -7
- package/src/app.ts +58 -12
- package/src/apprun-dev-tools.tsx +1 -7
- package/src/apprun-html.ts +8 -4
- package/src/apprun.ts +97 -20
- package/src/component.ts +62 -20
- package/src/decorator.ts +23 -6
- package/src/directive.ts +64 -13
- package/src/router.ts +282 -20
- package/src/type-utils.ts +130 -0
- package/src/types.ts +33 -12
- package/src/vdom-my-new.ts +311 -0
- package/src/vdom-my-prop-attr.ts +241 -0
- package/src/vdom-my.ts +82 -71
- package/src/version.ts +16 -0
- package/src/web-component.ts +31 -11
- package/cli/export.js +0 -92
- package/cli/import.js +0 -68
package/esm/component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
|
package/esm/decorator.js
CHANGED
|
@@ -4,30 +4,47 @@ import webComponent from './web-component';
|
|
|
4
4
|
*
|
|
5
5
|
* This file provides decorators that enable:
|
|
6
6
|
* 1. Event Handler Registration
|
|
7
|
-
* - @on(): Subscribe to events with options
|
|
8
|
-
* - @update(): Define state updates with metadata
|
|
7
|
+
* - @on(): Subscribe to events with options (global, once, delay)
|
|
8
|
+
* - @update(): Define state updates with metadata and options
|
|
9
|
+
* - Supports method and class decoration patterns
|
|
9
10
|
*
|
|
10
11
|
* 2. Web Component Integration
|
|
11
12
|
* - @customElement(): Register as custom element with options
|
|
12
13
|
* - Handles shadow DOM and attribute observation
|
|
14
|
+
* - Automatic lifecycle management for web components
|
|
13
15
|
*
|
|
14
16
|
* 3. Metadata Management
|
|
15
17
|
* - Custom Reflect implementation for decorator metadata
|
|
16
|
-
* - Stores event handler and update metadata
|
|
18
|
+
* - Stores event handler and update metadata for runtime use
|
|
17
19
|
* - Supports runtime reflection for dynamic behavior
|
|
20
|
+
* - Metadata keys for event bindings and updates
|
|
21
|
+
*
|
|
22
|
+
* Features:
|
|
23
|
+
* - Event handler decoration with options
|
|
24
|
+
* - State update method decoration
|
|
25
|
+
* - Web component registration
|
|
26
|
+
* - Metadata-driven event binding
|
|
27
|
+
* - Flexible decorator patterns
|
|
28
|
+
* - Runtime metadata access
|
|
29
|
+
*
|
|
30
|
+
* Type Safety Improvements (v3.35.1):
|
|
31
|
+
* - Enhanced decorator typing for better IDE support
|
|
32
|
+
* - Improved metadata key management
|
|
33
|
+
* - Better type inference for decorated methods
|
|
18
34
|
*
|
|
19
35
|
* Usage:
|
|
20
36
|
* ```ts
|
|
21
37
|
* @customElement('my-element')
|
|
22
38
|
* class MyComponent extends Component {
|
|
23
|
-
* @on('event')
|
|
39
|
+
* @on('event', { global: true })
|
|
24
40
|
* handler(state, ...args) {
|
|
25
41
|
* // Handle event
|
|
26
42
|
* }
|
|
27
43
|
*
|
|
28
|
-
* @update('event')
|
|
44
|
+
* @update('event', { render: true })
|
|
29
45
|
* updater(state, ...args) {
|
|
30
46
|
* // Update state
|
|
47
|
+
* return newState;
|
|
31
48
|
* }
|
|
32
49
|
* }
|
|
33
50
|
* ```
|
package/esm/decorator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../src/decorator.ts"],"names":[],"mappings":"AAAA,OAAO,YAAsC,MAAM,iBAAiB,CAAC;AAErE
|
|
1
|
+
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../src/decorator.ts"],"names":[],"mappings":"AAAA,OAAO,YAAsC,MAAM,iBAAiB,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,iCAAiC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG;IAErB,IAAI,EAAE,IAAI,OAAO,EAAE;IAEnB,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,MAAM;QACpB,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,WAAW,CAAC,WAAW,EAAE,MAAM;QAC7B,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;CACF,CAAA;AAED,MAAM,UAAU,MAAM,CAAa,MAAU,EAAE,UAAe,EAAE;IAC9D,OAAO,CAAC,MAAW,EAAE,GAAW,EAAE,UAAe,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9C,OAAO,CAAC,cAAc,CAAC,iBAAiB,IAAI,EAAE,EAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,EAAE,CAAa,MAAU,EAAE,UAAe,EAAE;IAC1D,OAAO,UAAU,MAAW,EAAE,GAAW;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9C,OAAO,CAAC,cAAc,CAAC,iBAAiB,IAAI,EAAE,EAC5C,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAA8B;IACxE,OAAO,SAAS,cAAc,CAAwC,WAAc;QAClF,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,WAAW,CAAC;IACrB,CAAC,CAAA;AACH,CAAC"}
|
package/esm/directive.js
CHANGED
|
@@ -2,22 +2,38 @@
|
|
|
2
2
|
* Component Directives Implementation
|
|
3
3
|
*
|
|
4
4
|
* This file provides built-in directives for components:
|
|
5
|
-
* 1. Event Binding
|
|
5
|
+
* 1. Event Binding ($on directives)
|
|
6
6
|
* - $on: Bind DOM events to component events
|
|
7
7
|
* - Supports event delegation and parameters
|
|
8
8
|
* - Handles function, string, and array event handlers
|
|
9
|
+
* - Type-safe event target handling
|
|
9
10
|
*
|
|
10
|
-
* 2. Two-way Data Binding
|
|
11
|
+
* 2. Two-way Data Binding ($bind directive)
|
|
11
12
|
* - $bind: Sync form elements with component state
|
|
12
|
-
* - Handles input types: text, checkbox, radio,
|
|
13
|
-
* -
|
|
13
|
+
* - Handles input types: text, checkbox, radio, number, range
|
|
14
|
+
* - Supports select (single/multiple) and textarea elements
|
|
15
|
+
* - Automatic value type conversion for numbers
|
|
14
16
|
* - Support for complex property paths
|
|
15
17
|
*
|
|
16
18
|
* 3. Custom Directives
|
|
17
|
-
* - Extensible directive system
|
|
19
|
+
* - Extensible directive system via '$' events
|
|
18
20
|
* - Processes virtual DOM during rendering
|
|
19
21
|
* - Supports custom attribute directives
|
|
20
22
|
*
|
|
23
|
+
* Features:
|
|
24
|
+
* - Automatic state synchronization
|
|
25
|
+
* - Type conversion for form inputs
|
|
26
|
+
* - Event delegation support
|
|
27
|
+
* - Multiple event handler formats
|
|
28
|
+
* - Nested property binding
|
|
29
|
+
* - Custom directive extensibility
|
|
30
|
+
*
|
|
31
|
+
* Type Safety Improvements (v3.35.1):
|
|
32
|
+
* - Added null checks for event targets before type assertions
|
|
33
|
+
* - Proper typing for different HTML element types
|
|
34
|
+
* - Enhanced error handling for invalid event targets
|
|
35
|
+
* - Safer DOM element property access
|
|
36
|
+
*
|
|
21
37
|
* Usage:
|
|
22
38
|
* ```tsx
|
|
23
39
|
* // Event binding
|
|
@@ -27,9 +43,13 @@
|
|
|
27
43
|
* // Two-way binding
|
|
28
44
|
* <input $bind="state.property" />
|
|
29
45
|
* <select $bind="selected">...</select>
|
|
46
|
+
*
|
|
47
|
+
* // Array handlers
|
|
48
|
+
* <button $onclick={['handler', param1, param2]}>Click</button>
|
|
30
49
|
* ```
|
|
31
50
|
*/
|
|
32
51
|
import app from './app';
|
|
52
|
+
import { safeEventTarget } from './type-utils';
|
|
33
53
|
const getStateValue = (component, name) => {
|
|
34
54
|
return (name ? component['state'][name] : component['state']) || '';
|
|
35
55
|
};
|
|
@@ -73,37 +93,68 @@ const apply_directive = (key, props, tag, component) => {
|
|
|
73
93
|
switch (type) {
|
|
74
94
|
case 'checkbox':
|
|
75
95
|
props['checked'] = getStateValue(component, name);
|
|
76
|
-
props['onclick'] = e =>
|
|
96
|
+
props['onclick'] = e => {
|
|
97
|
+
const target = safeEventTarget(e);
|
|
98
|
+
if (target) {
|
|
99
|
+
setStateValue(component, name || target.name, target.checked);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
77
102
|
break;
|
|
78
103
|
case 'radio':
|
|
79
104
|
props['checked'] = getStateValue(component, name) === props['value'];
|
|
80
|
-
props['onclick'] = e =>
|
|
105
|
+
props['onclick'] = e => {
|
|
106
|
+
const target = safeEventTarget(e);
|
|
107
|
+
if (target) {
|
|
108
|
+
setStateValue(component, name || target.name, target.value);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
81
111
|
break;
|
|
82
112
|
case 'number':
|
|
83
113
|
case 'range':
|
|
84
114
|
props['value'] = getStateValue(component, name);
|
|
85
|
-
props['oninput'] = e =>
|
|
115
|
+
props['oninput'] = e => {
|
|
116
|
+
const target = safeEventTarget(e);
|
|
117
|
+
if (target) {
|
|
118
|
+
setStateValue(component, name || target.name, Number(target.value));
|
|
119
|
+
}
|
|
120
|
+
};
|
|
86
121
|
break;
|
|
87
122
|
default:
|
|
88
123
|
props['value'] = getStateValue(component, name);
|
|
89
|
-
props['oninput'] = e =>
|
|
124
|
+
props['oninput'] = e => {
|
|
125
|
+
const target = safeEventTarget(e);
|
|
126
|
+
if (target) {
|
|
127
|
+
setStateValue(component, name || target.name, target.value);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
90
130
|
}
|
|
91
131
|
}
|
|
92
132
|
else if (tag === 'select') {
|
|
93
133
|
props['value'] = getStateValue(component, name);
|
|
94
134
|
props['onchange'] = e => {
|
|
95
|
-
|
|
96
|
-
|
|
135
|
+
const target = safeEventTarget(e);
|
|
136
|
+
if (target && !target.multiple) { // multiple selection use $bind on option
|
|
137
|
+
setStateValue(component, name || target.name, target.value);
|
|
97
138
|
}
|
|
98
139
|
};
|
|
99
140
|
}
|
|
100
141
|
else if (tag === 'option') {
|
|
101
142
|
props['selected'] = getStateValue(component, name);
|
|
102
|
-
props['onclick'] = e =>
|
|
143
|
+
props['onclick'] = e => {
|
|
144
|
+
const target = safeEventTarget(e);
|
|
145
|
+
if (target) {
|
|
146
|
+
setStateValue(component, name || target.name, target.selected);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
103
149
|
}
|
|
104
150
|
else if (tag === 'textarea') {
|
|
105
151
|
props['innerHTML'] = getStateValue(component, name);
|
|
106
|
-
props['oninput'] = e =>
|
|
152
|
+
props['oninput'] = e => {
|
|
153
|
+
const target = safeEventTarget(e);
|
|
154
|
+
if (target) {
|
|
155
|
+
setStateValue(component, name || target.name, target.value);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
107
158
|
}
|
|
108
159
|
}
|
|
109
160
|
else {
|
package/esm/directive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directive.js","sourceRoot":"","sources":["../src/directive.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"directive.js","sourceRoot":"","sources":["../src/directive.ts"],"names":[],"mappings":"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"}
|
package/esm/router.js
CHANGED
|
@@ -1,50 +1,291 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AppRun Router Implementation
|
|
2
|
+
* AppRun Router Implementation with Hierarchical Matching
|
|
3
3
|
*
|
|
4
4
|
* This file provides URL routing capabilities:
|
|
5
5
|
* 1. Hash-based routing (#/path)
|
|
6
|
+
* - Works with SPA mode using hash fragments
|
|
7
|
+
* - Handles hashchange events automatically
|
|
8
|
+
* - No server configuration required
|
|
6
9
|
* 2. Path-based routing (/path)
|
|
10
|
+
* - Works with browser history API
|
|
11
|
+
* - Requires server configuration for SPA routing
|
|
12
|
+
* - Handles popstate events automatically
|
|
7
13
|
* 3. Event-based navigation
|
|
14
|
+
* - Routes trigger corresponding component events
|
|
15
|
+
* - Automatic route parameter extraction
|
|
16
|
+
* - Fallback to 404 handling for unknown routes
|
|
8
17
|
*
|
|
9
18
|
* Features:
|
|
10
|
-
* - Automatic route event firing
|
|
11
|
-
* - 404 handling via ROUTER_404_EVENT
|
|
12
|
-
* - History API integration
|
|
13
|
-
* - Route parameter parsing
|
|
19
|
+
* - Automatic route event firing with ROUTER_EVENT
|
|
20
|
+
* - 404 handling via ROUTER_404_EVENT for unmatched routes
|
|
21
|
+
* - History API integration for seamless navigation
|
|
22
|
+
* - Route parameter parsing and injection into events
|
|
23
|
+
* - URL pattern matching with parameter support
|
|
24
|
+
* - Global and component-level route handling
|
|
25
|
+
* - **NEW: Hierarchical route matching** - progressively tries parent routes
|
|
26
|
+
*
|
|
27
|
+
* Type Safety Improvements (v3.35.1):
|
|
28
|
+
* - Enhanced route type definitions
|
|
29
|
+
* - Better parameter type inference
|
|
30
|
+
* - Improved URL validation and error handling
|
|
14
31
|
*
|
|
15
32
|
* Usage:
|
|
16
33
|
* ```ts
|
|
17
|
-
* //
|
|
34
|
+
* // Basic routing
|
|
18
35
|
* app.on('#/home', () => // Show home page);
|
|
19
36
|
* app.on('#/users/:id', (id) => // Show user profile);
|
|
37
|
+
* app.on('/api/*', (path) => // Handle API routes);
|
|
20
38
|
*
|
|
21
39
|
* // Navigate programmatically
|
|
22
40
|
* app.run('route', '#/home');
|
|
41
|
+
* route('/users/123'); // Direct routing
|
|
42
|
+
*
|
|
43
|
+
* // Hierarchical matching examples
|
|
44
|
+
* app.on('/api', (operation, id) => // Handle /api/users/123);
|
|
45
|
+
* app.on('#users', (id, action) => // Handle #users/123/edit);
|
|
46
|
+
*
|
|
47
|
+
* // Hierarchical Route Matching (NEW):
|
|
48
|
+
* // For URL: /api/v1/users/123
|
|
49
|
+
* // Router tries: /api/v1/users/123 → /api/v1/users → /api/v1 → /api → 404
|
|
50
|
+
* // If handler found at /api, it receives: ('v1', 'users', '123')
|
|
51
|
+
*
|
|
52
|
+
* // Base Path Support (NEW):
|
|
53
|
+
* app.basePath = '/myapp'; // For sub-directory deployments
|
|
54
|
+
* // Links: <a href="/users/123"> (relative paths)
|
|
55
|
+
* // Navigation: /myapp/users/123 (full path)
|
|
56
|
+
* // Routing: /users/123 (base path stripped)
|
|
57
|
+
*
|
|
58
|
+
* // Empty Path Handling (NEW):
|
|
59
|
+
* // For URL: "" (empty)
|
|
60
|
+
* // Router tries: # → / → #/ → 404 (in priority order)
|
|
61
|
+
*
|
|
62
|
+
* // 404 Behavior (ENHANCED):
|
|
63
|
+
* // Fires only at minimal levels: /a, #a, #/a, a
|
|
64
|
+
* // Never tries root handlers: /, #, #/
|
|
23
65
|
* ```
|
|
24
66
|
*/
|
|
25
67
|
import app from './app';
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
68
|
+
// Helper functions for hierarchical routing
|
|
69
|
+
/**
|
|
70
|
+
* Extract clean path segments from URL
|
|
71
|
+
* @param url - The URL to parse
|
|
72
|
+
* @returns Array of path segments
|
|
73
|
+
*/
|
|
74
|
+
function parsePathSegments(url) {
|
|
32
75
|
if (!url)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
76
|
+
return [];
|
|
77
|
+
// Handle different URL types
|
|
78
|
+
if (url.startsWith('#/')) {
|
|
79
|
+
return url.substring(2).split('/');
|
|
80
|
+
}
|
|
81
|
+
else if (url.startsWith('#')) {
|
|
82
|
+
return url.substring(1).split('/');
|
|
38
83
|
}
|
|
39
84
|
else if (url.startsWith('/')) {
|
|
40
|
-
|
|
41
|
-
app.run('/' + name, ...rest) || app.run(ROUTER_404_EVENT, '/' + name, ...rest);
|
|
42
|
-
app.run(ROUTER_EVENT, '/' + name, ...rest);
|
|
85
|
+
return url.substring(1).split('/');
|
|
43
86
|
}
|
|
44
87
|
else {
|
|
45
|
-
|
|
46
|
-
|
|
88
|
+
return url.split('/');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Normalize trailing slash - convert /a/ to /a
|
|
93
|
+
* @param url - The URL to normalize
|
|
94
|
+
* @returns Normalized URL
|
|
95
|
+
*/
|
|
96
|
+
function normalizeTrailingSlash(url) {
|
|
97
|
+
if (!url || url === '/' || url === '#' || url === '#/')
|
|
98
|
+
return url;
|
|
99
|
+
if (url.endsWith('/'))
|
|
100
|
+
return url.slice(0, -1);
|
|
101
|
+
return url;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Validate hierarchy depth and warn if too deep
|
|
105
|
+
* @param segments - Path segments to validate
|
|
106
|
+
*/
|
|
107
|
+
function validateHierarchyDepth(segments) {
|
|
108
|
+
// Count non-empty segments for depth validation
|
|
109
|
+
const nonEmptySegments = segments.filter(Boolean);
|
|
110
|
+
if (nonEmptySegments.length > 11) {
|
|
111
|
+
console.warn(`Deep route hierarchy detected: ${nonEmptySegments.join('/')} (${nonEmptySegments.length} levels)`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Strip base path from URL
|
|
116
|
+
* @param url - The URL to process
|
|
117
|
+
* @param basePath - The base path to remove
|
|
118
|
+
* @returns URL with base path removed
|
|
119
|
+
*/
|
|
120
|
+
function stripBasePath(url, basePath) {
|
|
121
|
+
if (!basePath || basePath === '/' || basePath === '')
|
|
122
|
+
return url;
|
|
123
|
+
// Normalize base path
|
|
124
|
+
const normalizedBasePath = basePath.startsWith('/') ? basePath : '/' + basePath;
|
|
125
|
+
if (url.startsWith(normalizedBasePath)) {
|
|
126
|
+
const stripped = url.substring(normalizedBasePath.length);
|
|
127
|
+
return stripped.startsWith('/') ? stripped : '/' + stripped;
|
|
128
|
+
}
|
|
129
|
+
return url;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Generate hierarchy of routes to try (stops at minimal level)
|
|
133
|
+
* @param segments - Array of path segments
|
|
134
|
+
* @param routeType - Type of route (path, hash, hash-slash, non-prefixed)
|
|
135
|
+
* @returns Array of route names to try in order
|
|
136
|
+
*/
|
|
137
|
+
function generateRouteHierarchy(segments, routeType) {
|
|
138
|
+
const hierarchy = [];
|
|
139
|
+
// Build hierarchy from most specific to least specific
|
|
140
|
+
for (let i = segments.length; i > 0; i--) {
|
|
141
|
+
const currentSegments = segments.slice(0, i);
|
|
142
|
+
let routeName = '';
|
|
143
|
+
switch (routeType) {
|
|
144
|
+
case 'path':
|
|
145
|
+
routeName = '/' + currentSegments.join('/');
|
|
146
|
+
break;
|
|
147
|
+
case 'hash':
|
|
148
|
+
routeName = '#' + currentSegments.join('/');
|
|
149
|
+
break;
|
|
150
|
+
case 'hash-slash':
|
|
151
|
+
routeName = '#/' + currentSegments.join('/');
|
|
152
|
+
break;
|
|
153
|
+
case 'non-prefixed':
|
|
154
|
+
routeName = currentSegments.join('/');
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
hierarchy.push(routeName);
|
|
158
|
+
}
|
|
159
|
+
return hierarchy;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Find handler in hierarchy and return handler info
|
|
163
|
+
* @param hierarchy - Array of route names to try
|
|
164
|
+
* @param originalSegments - Original path segments
|
|
165
|
+
* @returns Handler info if found, null otherwise
|
|
166
|
+
*/
|
|
167
|
+
function findHandlerInHierarchy(hierarchy, originalSegments) {
|
|
168
|
+
for (let i = 0; i < hierarchy.length; i++) {
|
|
169
|
+
const routeName = hierarchy[i];
|
|
170
|
+
const subscribers = app.find(routeName);
|
|
171
|
+
if (subscribers && subscribers.length > 0) {
|
|
172
|
+
// Found handler - calculate remaining parameters
|
|
173
|
+
const handlerDepth = hierarchy.length - i;
|
|
174
|
+
const parameters = originalSegments.slice(handlerDepth);
|
|
175
|
+
return {
|
|
176
|
+
eventName: routeName,
|
|
177
|
+
parameters: parameters
|
|
178
|
+
};
|
|
179
|
+
}
|
|
47
180
|
}
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Handle empty path with priority order: # → / → #/ → 404
|
|
185
|
+
*/
|
|
186
|
+
function handleEmptyPath() {
|
|
187
|
+
// Try # first
|
|
188
|
+
const hashSubscribers = app.find('#');
|
|
189
|
+
if (hashSubscribers && hashSubscribers.length > 0) {
|
|
190
|
+
app.run('#');
|
|
191
|
+
app.run(ROUTER_EVENT, '#');
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
// Try / second
|
|
195
|
+
const pathSubscribers = app.find('/');
|
|
196
|
+
if (pathSubscribers && pathSubscribers.length > 0) {
|
|
197
|
+
app.run('/');
|
|
198
|
+
app.run(ROUTER_EVENT, '/');
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
// Try #/ third
|
|
202
|
+
const hashSlashSubscribers = app.find('#/');
|
|
203
|
+
if (hashSlashSubscribers && hashSlashSubscribers.length > 0) {
|
|
204
|
+
app.run('#/');
|
|
205
|
+
app.run(ROUTER_EVENT, '#/');
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
// Fire 404 if no handlers found
|
|
209
|
+
console.warn('No subscribers for event: ');
|
|
210
|
+
app.run(ROUTER_404_EVENT, '');
|
|
211
|
+
app.run(ROUTER_EVENT, '');
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Main hierarchical routing logic
|
|
215
|
+
* @param url - The URL to route
|
|
216
|
+
*/
|
|
217
|
+
function routeWithHierarchy(url) {
|
|
218
|
+
// Handle empty path
|
|
219
|
+
if (!url) {
|
|
220
|
+
handleEmptyPath();
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
// Normalize trailing slash
|
|
224
|
+
url = normalizeTrailingSlash(url);
|
|
225
|
+
// Strip base path if configured
|
|
226
|
+
const basePath = app['basePath'];
|
|
227
|
+
if (basePath) {
|
|
228
|
+
url = stripBasePath(url, basePath);
|
|
229
|
+
}
|
|
230
|
+
// Parse segments and validate depth
|
|
231
|
+
const segments = parsePathSegments(url);
|
|
232
|
+
validateHierarchyDepth(segments);
|
|
233
|
+
// Determine route type
|
|
234
|
+
let routeType;
|
|
235
|
+
if (url.startsWith('#/')) {
|
|
236
|
+
routeType = 'hash-slash';
|
|
237
|
+
}
|
|
238
|
+
else if (url.startsWith('#')) {
|
|
239
|
+
routeType = 'hash';
|
|
240
|
+
}
|
|
241
|
+
else if (url.startsWith('/')) {
|
|
242
|
+
routeType = 'path';
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
routeType = 'non-prefixed';
|
|
246
|
+
}
|
|
247
|
+
// Generate hierarchy
|
|
248
|
+
const hierarchy = generateRouteHierarchy(segments, routeType);
|
|
249
|
+
// Find handler in hierarchy
|
|
250
|
+
const handlerInfo = findHandlerInHierarchy(hierarchy, segments);
|
|
251
|
+
if (handlerInfo) {
|
|
252
|
+
// Found handler - publish route with parameters
|
|
253
|
+
publishRoute(handlerInfo.eventName, ...handlerInfo.parameters);
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
// No handler found - fire 404 with original URL
|
|
257
|
+
if (hierarchy.length > 0) {
|
|
258
|
+
const minimalRoute = hierarchy[hierarchy.length - 1];
|
|
259
|
+
console.warn(`No subscribers for event: ${minimalRoute}`);
|
|
260
|
+
app.run(ROUTER_404_EVENT, url);
|
|
261
|
+
app.run(ROUTER_EVENT, url);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
handleEmptyPath();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
const publishRoute = (name, ...args) => {
|
|
269
|
+
if (!name || name === ROUTER_EVENT || name === ROUTER_404_EVENT)
|
|
270
|
+
return;
|
|
271
|
+
const subscribers = app.find(name);
|
|
272
|
+
if (!subscribers || subscribers.length === 0) {
|
|
273
|
+
console.warn(`No subscribers for event: ${name}`);
|
|
274
|
+
app.run(ROUTER_404_EVENT, name, ...args);
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
app.run(name, ...args);
|
|
278
|
+
}
|
|
279
|
+
app.run(ROUTER_EVENT, name, ...args);
|
|
280
|
+
};
|
|
281
|
+
export const ROUTER_EVENT = '//';
|
|
282
|
+
export const ROUTER_404_EVENT = '///';
|
|
283
|
+
export const route = (url) => {
|
|
284
|
+
if (app['lastUrl'] === url)
|
|
285
|
+
return; // Prevent duplicate routing
|
|
286
|
+
app['lastUrl'] = url;
|
|
287
|
+
// Use hierarchical routing logic
|
|
288
|
+
routeWithHierarchy(url);
|
|
48
289
|
};
|
|
49
290
|
export default route;
|
|
50
291
|
//# sourceMappingURL=router.js.map
|
package/esm/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAEH,OAAO,GAAG,MAAM,OAAO,CAAC;AAExB,4CAA4C;AAE5C;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,6BAA6B;IAC7B,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,GAAW;IACzC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IACnE,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,QAAkB;IAChD,gDAAgD;IAChD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,gBAAgB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,kCAAkC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC,MAAM,UAAU,CAAC,CAAC;IACnH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,QAAgB;IAClD,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAEjE,sBAAsB;IACtB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC;IAEhF,IAAI,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC;IAC9D,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,QAAkB,EAAE,SAA0D;IAC5G,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,uDAAuD;IACvD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,SAAS,GAAG,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,MAAM;gBACT,SAAS,GAAG,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,YAAY;gBACf,SAAS,GAAG,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,cAAc;gBACjB,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM;QACV,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,SAAmB,EAAE,gBAA0B;IAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAExC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,iDAAiD;YACjD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAExD,OAAO;gBACL,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,UAAU;aACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,cAAc;IACd,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,eAAe;IACf,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACb,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,eAAe;IACf,MAAM,oBAAoB,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACd,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,gCAAgC;IAChC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC3C,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,oBAAoB;IACpB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,eAAe,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAElC,gCAAgC;IAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,oCAAoC;IACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACxC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAEjC,uBAAuB;IACvB,IAAI,SAA0D,CAAC;IAC/D,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,SAAS,GAAG,YAAY,CAAC;IAC3B,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,cAAc,CAAC;IAC7B,CAAC;IAED,qBAAqB;IACrB,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE9D,4BAA4B;IAC5B,MAAM,WAAW,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhE,IAAI,WAAW,EAAE,CAAC;QAChB,gDAAgD;QAChD,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,gDAAgD;QAChD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;YAC1D,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,GAAG,IAAW,EAAE,EAAE;IACpD,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO;IACxE,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACvC,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,YAAY,GAAW,IAAI,CAAC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAW,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,KAAK,GAAU,CAAC,GAAW,EAAE,EAAE;IAC1C,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;QAAE,OAAO,CAAC,4BAA4B;IAChE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAErB,iCAAiC;IACjC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAA;AACD,eAAe,KAAK,CAAC"}
|