sygnal 5.4.0 → 6.0.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/CHANGELOG.md +646 -0
- package/README.md +24 -9
- package/dist/astro/client.cjs.js +16 -9
- package/dist/astro/client.cjs.js.map +1 -1
- package/dist/astro/client.mjs +16 -9
- package/dist/astro/client.mjs.map +1 -1
- package/dist/astro/index.cjs.js +362 -91
- package/dist/astro/index.cjs.js.map +1 -1
- package/dist/astro/index.mjs +362 -92
- package/dist/astro/index.mjs.map +1 -1
- package/dist/astro/server.cjs.js +3396 -165
- package/dist/astro/server.cjs.js.map +1 -1
- package/dist/astro/server.mjs +3396 -165
- package/dist/astro/server.mjs.map +1 -1
- package/dist/devtools.cjs.js +1431 -0
- package/dist/devtools.cjs.js.map +1 -0
- package/dist/devtools.esm.js +1419 -0
- package/dist/devtools.esm.js.map +1 -0
- package/dist/diagnostics.cjs.js +3032 -296
- package/dist/diagnostics.cjs.js.map +1 -1
- package/dist/diagnostics.esm.js +3032 -296
- package/dist/diagnostics.esm.js.map +1 -1
- package/dist/element.cjs.js +230 -0
- package/dist/element.cjs.js.map +1 -0
- package/dist/element.esm.js +228 -0
- package/dist/element.esm.js.map +1 -0
- package/dist/guide/accessibility.md +257 -0
- package/dist/guide/adapters.md +221 -0
- package/dist/guide/behaviors.md +312 -0
- package/dist/guide/browser-sources.md +203 -0
- package/dist/guide/drag-and-drop.md +342 -0
- package/dist/guide/element-commands.md +306 -0
- package/dist/guide/error-boundaries.md +169 -0
- package/dist/guide/forms-reference.md +381 -0
- package/dist/guide/forms.md +250 -0
- package/dist/guide/http.md +299 -0
- package/dist/guide/inputs.md +173 -0
- package/dist/guide/persistence.md +245 -0
- package/dist/guide/recipes/carousel.md +155 -0
- package/dist/guide/recipes/charts.md +177 -0
- package/dist/guide/recipes/code-editor.md +135 -0
- package/dist/guide/recipes/data-grid.md +155 -0
- package/dist/guide/recipes/data-table.md +196 -0
- package/dist/guide/recipes/i18n.md +222 -0
- package/dist/guide/recipes/icons.md +115 -0
- package/dist/guide/recipes/overview.md +33 -0
- package/dist/guide/recipes/rich-text.md +154 -0
- package/dist/guide/resources.md +471 -0
- package/dist/guide/ssr.md +255 -0
- package/dist/guide/timers.md +178 -0
- package/dist/guide/ui/accordion.md +93 -0
- package/dist/guide/ui/combobox.md +144 -0
- package/dist/guide/ui/dialog.md +124 -0
- package/dist/guide/ui/disclosure.md +60 -0
- package/dist/guide/ui/menu.md +125 -0
- package/dist/guide/ui/overview.md +166 -0
- package/dist/guide/ui/popover.md +101 -0
- package/dist/guide/ui/select.md +114 -0
- package/dist/guide/ui/tabs.md +161 -0
- package/dist/guide/ui/toaster.md +152 -0
- package/dist/guide/ui/tooltip.md +103 -0
- package/dist/guide/undo.md +178 -0
- package/dist/guide/virtual-collections.md +183 -0
- package/dist/guide/web-components.md +179 -0
- package/dist/guide/widgets.md +217 -0
- package/dist/index.cjs.js +13178 -5769
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2908 -276
- package/dist/index.esm.js +13149 -5779
- package/dist/index.esm.js.map +1 -1
- package/dist/jsx-dev-runtime.cjs.js +26 -334
- package/dist/jsx-dev-runtime.cjs.js.map +1 -1
- package/dist/jsx-dev-runtime.esm.js +19 -327
- package/dist/jsx-dev-runtime.esm.js.map +1 -1
- package/dist/jsx-runtime.cjs.js +26 -334
- package/dist/jsx-runtime.cjs.js.map +1 -1
- package/dist/jsx-runtime.esm.js +19 -327
- package/dist/jsx-runtime.esm.js.map +1 -1
- package/dist/jsx.cjs.js +10 -314
- package/dist/jsx.cjs.js.map +1 -1
- package/dist/jsx.esm.js +8 -315
- package/dist/jsx.esm.js.map +1 -1
- package/dist/react.cjs.js +117 -0
- package/dist/react.cjs.js.map +1 -0
- package/dist/react.esm.js +115 -0
- package/dist/react.esm.js.map +1 -0
- package/dist/shims/globalthis.cjs +20 -0
- package/dist/sygnal.min.js +1 -1
- package/dist/sygnal.min.js.map +1 -1
- package/dist/ui-combobox.cjs.js +169 -0
- package/dist/ui-combobox.cjs.js.map +1 -0
- package/dist/ui-combobox.esm.js +148 -0
- package/dist/ui-combobox.esm.js.map +1 -0
- package/dist/ui-menu.cjs.js +87 -0
- package/dist/ui-menu.cjs.js.map +1 -0
- package/dist/ui-menu.esm.js +66 -0
- package/dist/ui-menu.esm.js.map +1 -0
- package/dist/ui-select.cjs.js +104 -0
- package/dist/ui-select.cjs.js.map +1 -0
- package/dist/ui-select.esm.js +83 -0
- package/dist/ui-select.esm.js.map +1 -0
- package/dist/ui.cjs.js +738 -0
- package/dist/ui.cjs.js.map +1 -0
- package/dist/ui.esm.js +727 -0
- package/dist/ui.esm.js.map +1 -0
- package/dist/vike/ClientOnly.cjs.js +4 -14
- package/dist/vike/ClientOnly.cjs.js.map +1 -1
- package/dist/vike/ClientOnly.mjs +4 -14
- package/dist/vike/ClientOnly.mjs.map +1 -1
- package/dist/vike/{+config.js → config/+config.js} +9 -1
- package/dist/vike/config/+config.js.map +1 -0
- package/dist/vike/config/package.json +6 -0
- package/dist/vike/onRenderClient.cjs.js +165 -95
- package/dist/vike/onRenderClient.cjs.js.map +1 -1
- package/dist/vike/onRenderClient.mjs +165 -95
- package/dist/vike/onRenderClient.mjs.map +1 -1
- package/dist/vike/onRenderHtml.cjs.js +59 -24
- package/dist/vike/onRenderHtml.cjs.js.map +1 -1
- package/dist/vike/onRenderHtml.mjs +60 -25
- package/dist/vike/onRenderHtml.mjs.map +1 -1
- package/dist/vite/plugin.cjs.js +323 -88
- package/dist/vite/plugin.cjs.js.map +1 -1
- package/dist/vite/plugin.mjs +323 -89
- package/dist/vite/plugin.mjs.map +1 -1
- package/dist/zag.cjs.js +408 -0
- package/dist/zag.cjs.js.map +1 -0
- package/dist/zag.esm.js +405 -0
- package/dist/zag.esm.js.map +1 -0
- package/llms.txt +166 -103
- package/package.json +98 -14
- package/src/astro/client.ts +27 -16
- package/src/astro/index.d.ts +24 -0
- package/src/astro/index.ts +69 -3
- package/src/astro/server.ts +8 -2
- package/src/collection.ts +6 -93
- package/src/core/actions.ts +134 -0
- package/src/core/cell.ts +202 -0
- package/src/core/debug.ts +23 -0
- package/src/core/define.ts +242 -0
- package/src/core/hooks.ts +314 -0
- package/src/core/hosts/collection.ts +325 -0
- package/src/core/hosts/switchable.ts +146 -0
- package/src/core/instance.ts +592 -0
- package/src/core/markers/clientonly.ts +13 -0
- package/src/core/markers/lazy.ts +40 -0
- package/src/core/markers/portal.ts +96 -0
- package/src/core/markers/suspense.ts +41 -0
- package/src/core/markers/transition.ts +70 -0
- package/src/core/registry.ts +25 -0
- package/src/core/runtime.ts +573 -0
- package/src/core/statics.ts +104 -0
- package/src/core/teardown.ts +60 -0
- package/src/core/view.ts +37 -0
- package/src/cycle/dom/DocumentDOMSource.ts +13 -8
- package/src/cycle/dom/ElementFinder.ts +7 -9
- package/src/cycle/dom/EventDelegator.ts +174 -223
- package/src/cycle/dom/IsolateModule.ts +65 -35
- package/src/cycle/dom/MainDOMSource.ts +9 -2
- package/src/cycle/dom/PriorityQueue.ts +4 -2
- package/src/cycle/dom/SymbolTree.ts +18 -47
- package/src/cycle/dom/classNameModule.ts +9 -7
- package/src/cycle/dom/controlledInputModule.ts +23 -6
- package/src/cycle/dom/enrichEventStream.ts +25 -47
- package/src/cycle/dom/fragment.ts +7 -0
- package/src/cycle/dom/isolate.ts +30 -27
- package/src/cycle/dom/makeDOMDriver.ts +115 -56
- package/src/cycle/dom/mockDOMSource.ts +21 -1
- package/src/cycle/dom/modules.ts +16 -3
- package/src/cycle/dom/propsModule.ts +65 -0
- package/src/cycle/dom/selectModule.ts +22 -17
- package/src/cycle/dom/snabbdom.ts +1 -6
- package/src/cycle/dom/thunk.ts +3 -0
- package/src/cycle/dom/utils.ts +98 -0
- package/src/cycle/dom/viewTransition.ts +43 -0
- package/src/cycle/state/StateSource.ts +19 -3
- package/src/cycle/state/objIsEqual.ts +50 -0
- package/src/cycle/state/types.ts +0 -10
- package/src/defineComponent.ts +34 -0
- package/src/devtools.d.ts +151 -0
- package/src/devtools.ts +34 -0
- package/src/element.d.ts +59 -0
- package/src/element.ts +235 -0
- package/src/extra/backoff.ts +9 -0
- package/src/extra/behaviors.ts +169 -0
- package/src/extra/browserSignals.ts +23 -0
- package/src/extra/browserSources.ts +326 -0
- package/src/extra/command.ts +3 -3
- package/src/extra/controls.ts +47 -0
- package/src/extra/copyAsTest.ts +286 -0
- package/src/extra/devtools.ts +101 -31
- package/src/extra/devtoolsActions.ts +379 -0
- package/src/extra/devtoolsHook.ts +9 -0
- package/src/extra/devtoolsNext.ts +83 -0
- package/src/extra/diagnostics/checks/actionLog.ts +108 -0
- package/src/extra/diagnostics/checks/behaviors.ts +49 -0
- package/src/extra/diagnostics/checks/browserSources.ts +96 -0
- package/src/extra/diagnostics/checks/collections.ts +1 -1
- package/src/extra/diagnostics/checks/controls.ts +148 -0
- package/src/extra/diagnostics/checks/dataset.ts +57 -0
- package/src/extra/diagnostics/checks/dom.ts +20 -11
- package/src/extra/diagnostics/checks/elementCommands.ts +175 -0
- package/src/extra/diagnostics/checks/events.ts +17 -2
- package/src/extra/diagnostics/checks/fetch.ts +135 -0
- package/src/extra/diagnostics/checks/forms.ts +163 -0
- package/src/extra/diagnostics/checks/index.ts +97 -4
- package/src/extra/diagnostics/checks/inspect.ts +140 -32
- package/src/extra/diagnostics/checks/next.ts +417 -0
- package/src/extra/diagnostics/checks/persist.ts +54 -0
- package/src/extra/diagnostics/checks/props.ts +10 -5
- package/src/extra/diagnostics/checks/public.d.ts +98 -7
- package/src/extra/diagnostics/checks/replies.ts +128 -0
- package/src/extra/diagnostics/checks/router.ts +100 -0
- package/src/extra/diagnostics/checks/rxjsHints.ts +1 -1
- package/src/extra/diagnostics/checks/shared.ts +86 -2
- package/src/extra/diagnostics/checks/shorthand.ts +115 -0
- package/src/extra/diagnostics/checks/sortable.ts +129 -0
- package/src/extra/diagnostics/checks/state.ts +100 -7
- package/src/extra/diagnostics/checks/statics.ts +48 -0
- package/src/extra/diagnostics/checks/strict.ts +10 -67
- package/src/extra/diagnostics/checks/timers.ts +80 -0
- package/src/extra/diagnostics/checks/viewTransitions.ts +47 -0
- package/src/extra/diagnostics/checks/virtual.ts +73 -0
- package/src/extra/diagnostics/checks/widgets.ts +109 -0
- package/src/extra/diagnostics/checks/wiring.ts +66 -10
- package/src/extra/diagnostics/codes.ts +268 -23
- package/src/extra/diagnostics/index.ts +34 -9
- package/src/extra/diagnostics/legacy.ts +17 -0
- package/src/extra/driverFactories.ts +83 -19
- package/src/extra/elementCommands.ts +53 -0
- package/src/extra/fetchDriver.ts +519 -0
- package/src/extra/focusWithin.ts +27 -0
- package/src/extra/form.ts +268 -0
- package/src/extra/formHelpers.ts +139 -0
- package/src/extra/head.ts +106 -0
- package/src/extra/hmr.ts +2 -3
- package/src/extra/owned.ts +24 -0
- package/src/extra/pager.ts +50 -0
- package/src/extra/persist.ts +133 -0
- package/src/extra/pwa.ts +1 -1
- package/src/extra/queryCache.ts +107 -0
- package/src/extra/reducers.ts +1 -1
- package/src/extra/reduxDevtools.ts +92 -0
- package/src/extra/replies.ts +54 -0
- package/src/extra/router.ts +323 -0
- package/src/extra/run.ts +90 -217
- package/src/extra/selection.ts +76 -0
- package/src/extra/socketDriver.ts +265 -0
- package/src/extra/sortable.ts +377 -0
- package/src/extra/ssr.ts +427 -160
- package/src/extra/standardSchema.ts +27 -0
- package/src/extra/testing.ts +2433 -175
- package/src/extra/timers.ts +95 -0
- package/src/extra/undo.ts +261 -0
- package/src/extra/viewTransitions.ts +38 -0
- package/src/extra/virtual.ts +513 -0
- package/src/extra/widget.ts +201 -0
- package/src/index.d.ts +2631 -117
- package/src/index.ts +25 -4
- package/src/jsx-runtime.ts +15 -1
- package/src/jsx.ts +2 -1
- package/src/lazy.ts +50 -7
- package/src/portal.ts +3 -1
- package/src/pragma/index.ts +256 -133
- package/src/react-peers.d.ts +5 -0
- package/src/react.d.ts +43 -0
- package/src/react.ts +110 -0
- package/src/shared.ts +48 -0
- package/src/slot.ts +1 -1
- package/src/suspense.ts +3 -1
- package/src/switchable.ts +6 -121
- package/src/transition.ts +3 -1
- package/src/ui/accordion.ts +64 -0
- package/src/ui/dialog.ts +129 -0
- package/src/ui/disclosure.ts +35 -0
- package/src/ui/popover.ts +45 -0
- package/src/ui/shared.ts +94 -0
- package/src/ui/tabs.ts +82 -0
- package/src/ui/toaster.ts +198 -0
- package/src/ui/tooltip.ts +70 -0
- package/src/ui/zag/combobox.ts +115 -0
- package/src/ui/zag/menu.ts +40 -0
- package/src/ui/zag/select.ts +54 -0
- package/src/ui/zag/shared.ts +43 -0
- package/src/ui-combobox.d.ts +20 -0
- package/src/ui-combobox.ts +6 -0
- package/src/ui-menu.d.ts +30 -0
- package/src/ui-menu.ts +6 -0
- package/src/ui-select.d.ts +17 -0
- package/src/ui-select.ts +6 -0
- package/src/ui-zag-types.d.ts +42 -0
- package/src/ui.d.ts +208 -0
- package/src/ui.ts +15 -0
- package/src/vike/+config.ts +9 -1
- package/src/vike/ClientOnly.ts +1 -1
- package/src/vike/onRenderClient.ts +144 -96
- package/src/vike/onRenderHtml.ts +69 -26
- package/src/vike/types.ts +7 -1
- package/src/vite/globalthis-shim.ts +18 -0
- package/src/vite/globalthis.ts +56 -0
- package/src/vite/plugin.d.ts +22 -3
- package/src/vite/plugin.ts +222 -24
- package/src/zag.d.ts +64 -0
- package/src/zag.ts +238 -0
- package/dist/vike/+config.cjs.js +0 -66
- package/dist/vike/+config.cjs.js.map +0 -1
- package/dist/vike/+config.js.map +0 -1
- package/src/component.ts +0 -2301
- package/src/cycle/isolate/index.ts +0 -196
- package/src/cycle/run/index.ts +0 -151
- package/src/cycle/run/internals.ts +0 -143
- package/src/cycle/state/Collection.ts +0 -184
- package/src/cycle/state/index.ts +0 -5
- package/src/cycle/state/pickCombine.ts +0 -201
- package/src/cycle/state/pickMerge.ts +0 -122
- package/src/cycle/state/withState.ts +0 -47
- package/src/pragma/fn.ts +0 -55
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PLAN-4.6 core: teardown without timers (D165 / Q18). xstream stops a stream left without
|
|
3
|
+
* listeners in a setTimeout of its own (1-2k timers to unmount 1k components). While an instance
|
|
4
|
+
* unsubscribes (tearDown), Stream.prototype._remove queues such a stream instead (_stopID 0: an
|
|
5
|
+
* _add before the stop cancels it, as xstream's clearTimeout would), and stopQueued() stops the
|
|
6
|
+
* queue at the first macrotask after the drain / flush (G-302: xstream's timing; the runtime's
|
|
7
|
+
* setImmediate / MessageChannel ping, no setTimeout). The swap is scoped to the call (PLAN-4.5's
|
|
8
|
+
* tearDown, narrowed; R5 deleted the 5.x core's permanent one).
|
|
9
|
+
*/
|
|
10
|
+
import xs from '../extra/xstreamCompat'
|
|
11
|
+
|
|
12
|
+
// G-315: probed on first use (a top-level probe would survive the D175 strip of production builds)
|
|
13
|
+
let SP: any, NO: any, down: any[] | null = null, outer: any, owner: any
|
|
14
|
+
// G-342/G-267: the instance a queued stream was left by (its stop() error is reported for it)
|
|
15
|
+
const owners = new WeakMap<object, any>()
|
|
16
|
+
const probe = () => { if (!SP) { const s: any = xs.create(); SP = Object.getPrototypeOf(s); NO = s._prod } }
|
|
17
|
+
|
|
18
|
+
function removeQueued(this: any, il: any) {
|
|
19
|
+
if (this._target) return this._target._remove(il)
|
|
20
|
+
const a = this._ils, i = a.indexOf(il)
|
|
21
|
+
if (i < 0) return
|
|
22
|
+
a.splice(i, 1)
|
|
23
|
+
if (this._prod !== NO && !a.length) { this._err = NO; this._stopID = 0; down!.push(this); if (owner) owners.set(this, owner) }
|
|
24
|
+
else if (a.length == 1) this._pruneCycles()
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** run f with _remove queuing into q (nested calls share the outermost swap); `by`: the instance */
|
|
28
|
+
export function tearDown(f: () => void, q: any[], by?: any) {
|
|
29
|
+
probe()
|
|
30
|
+
const prev = down, prevBy = owner
|
|
31
|
+
if (!prev) { outer = SP._remove; SP._remove = removeQueued }
|
|
32
|
+
down = q
|
|
33
|
+
if (by) owner = by
|
|
34
|
+
try { f() } finally { down = prev; owner = prevBy; if (!prev) SP._remove = outer }
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* stop the queued streams; a stop that leaves its upstream without listeners queues it here too.
|
|
39
|
+
* A throwing stop() (a producer's) stops nothing else from stopping; G-342/G-267: it is reported
|
|
40
|
+
* through `err` (with the instance that left the stream), not swallowed
|
|
41
|
+
*/
|
|
42
|
+
export function stopQueued(q: any[], err?: (e: any, by: any) => void) {
|
|
43
|
+
probe()
|
|
44
|
+
for (let i = 0; i < q.length; i++) {
|
|
45
|
+
const s = q[i]
|
|
46
|
+
if (s._stopID === 0 && !s._ils.length) {
|
|
47
|
+
s._stopID = NO
|
|
48
|
+
const by = owners.get(s)
|
|
49
|
+
tearDown(() => { if (s._prod !== NO) try { s._stopNow() } catch (e) { err?.(e, by) } }, q, by)
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
q.length = 0
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** the instance behind an intent's sources object (the source getters read it) */
|
|
56
|
+
export const INST = /*#__PURE__*/ Symbol('sygnal.inst')
|
|
57
|
+
/** the queue's action type for a state write (runtime setState, a child's seeded slice) */
|
|
58
|
+
export const SET = /*#__PURE__*/ Symbol('setState')
|
|
59
|
+
/** a child's seeded slice (D174), written even when it reads its initialState as the default */
|
|
60
|
+
export const SEED = /*#__PURE__*/ Symbol('seed')
|
package/src/core/view.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PLAN-4.6 core: the read-only InstanceView hooks and tools get (04 §2.3), never the raw
|
|
3
|
+
* instance. Made on the first hook call that needs it (an app without hooks makes none).
|
|
4
|
+
*/
|
|
5
|
+
import type {InstanceView} from './hooks'
|
|
6
|
+
import type {Inst} from './instance'
|
|
7
|
+
|
|
8
|
+
class View implements InstanceView {
|
|
9
|
+
constructor(private i: Inst) {}
|
|
10
|
+
get id() { return this.i.id }
|
|
11
|
+
get parentId() { return this.i.parent?.id }
|
|
12
|
+
get name() { return this.i.def.name }
|
|
13
|
+
get def() { return this.i.def }
|
|
14
|
+
get state() { return this.i.cell.get() }
|
|
15
|
+
get props() { return this.i.props }
|
|
16
|
+
get context() { return this.i.context() }
|
|
17
|
+
get isRoot() { return !this.i.parent }
|
|
18
|
+
get kind() { return this.i.kind }
|
|
19
|
+
/** false on a hidden Switchable page and below it */
|
|
20
|
+
get shown() {
|
|
21
|
+
for (let i: any = this.i; i; i = i.parent) if (!i.shown) return false
|
|
22
|
+
return true
|
|
23
|
+
}
|
|
24
|
+
get disposed() { return this.i.disposed }
|
|
25
|
+
get uid() { return this.i.uidBase }
|
|
26
|
+
get sources() { return this.i.sources() }
|
|
27
|
+
children(): InstanceView[] {
|
|
28
|
+
const out: InstanceView[] = []
|
|
29
|
+
this.i.kids.forEach((k: any) => {
|
|
30
|
+
if (k.def && k.app) out.push(viewOf(k))
|
|
31
|
+
else if (k.insts) for (const j of k.insts()) out.push(viewOf(j))
|
|
32
|
+
})
|
|
33
|
+
return out
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const viewOf = (i: Inst): InstanceView => (i.iv ||= new View(i))
|
|
@@ -12,20 +12,22 @@ export class DocumentDOMSource {
|
|
|
12
12
|
this._selector = selector || null;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
// CT-1: a control works as is: querySelectorAll() and matches() stringify their argument,
|
|
16
|
+
// and a control stringifies to its selector
|
|
15
17
|
public select(selector: string): DocumentDOMSource {
|
|
16
18
|
return new DocumentDOMSource(this._name, selector);
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
public elements(): MemoryStream<Array<Document | Element>> {
|
|
20
22
|
if (this._selector) {
|
|
21
|
-
const out: DevToolEnabledSource & MemoryStream<Array<Element>> = adapt(
|
|
22
|
-
xs.of(Array.from(document.querySelectorAll(this._selector)))
|
|
23
|
+
const out: DevToolEnabledSource & MemoryStream<Array<Document | Element>> = adapt(
|
|
24
|
+
xs.of<Array<Document | Element>>(Array.from(document.querySelectorAll(this._selector)))
|
|
23
25
|
);
|
|
24
26
|
out._isCycleSource = this._name;
|
|
25
27
|
return out;
|
|
26
28
|
}
|
|
27
|
-
const out: DevToolEnabledSource & MemoryStream<Array<Document>> = adapt(
|
|
28
|
-
xs.of([document])
|
|
29
|
+
const out: DevToolEnabledSource & MemoryStream<Array<Document | Element>> = adapt(
|
|
30
|
+
xs.of<Array<Document | Element>>([document])
|
|
29
31
|
);
|
|
30
32
|
out._isCycleSource = this._name;
|
|
31
33
|
return out;
|
|
@@ -33,14 +35,14 @@ export class DocumentDOMSource {
|
|
|
33
35
|
|
|
34
36
|
public element(): MemoryStream<Document | Element | null> {
|
|
35
37
|
if (this._selector) {
|
|
36
|
-
const out: DevToolEnabledSource & MemoryStream<Element | null> = adapt(
|
|
37
|
-
xs.of(document.querySelector(this._selector))
|
|
38
|
+
const out: DevToolEnabledSource & MemoryStream<Document | Element | null> = adapt(
|
|
39
|
+
xs.of<Document | Element | null>(document.querySelector(this._selector))
|
|
38
40
|
);
|
|
39
41
|
out._isCycleSource = this._name;
|
|
40
42
|
return out;
|
|
41
43
|
}
|
|
42
|
-
const out: DevToolEnabledSource & MemoryStream<Document> = adapt(
|
|
43
|
-
xs.of(document)
|
|
44
|
+
const out: DevToolEnabledSource & MemoryStream<Document | Element | null> = adapt(
|
|
45
|
+
xs.of<Document | Element | null>(document)
|
|
44
46
|
);
|
|
45
47
|
out._isCycleSource = this._name;
|
|
46
48
|
return out;
|
|
@@ -51,6 +53,9 @@ export class DocumentDOMSource {
|
|
|
51
53
|
options?: EventsFnOptions,
|
|
52
54
|
bubbles?: boolean
|
|
53
55
|
): EnrichedEventStream<DocumentEventMap[K]>;
|
|
56
|
+
// PLAN-5 0-S6: any other name (a custom element's 'wa-hover', a widget's or element's
|
|
57
|
+
// CustomEvent): the overload above only typed the built-in names (types only)
|
|
58
|
+
public events(eventType: string, options?: EventsFnOptions, bubbles?: boolean): EnrichedEventStream<Event>;
|
|
54
59
|
public events(
|
|
55
60
|
eventType: string,
|
|
56
61
|
options: EventsFnOptions = {},
|
|
@@ -18,20 +18,18 @@ export class ElementFinder {
|
|
|
18
18
|
const selector = getSelectors(namespace);
|
|
19
19
|
|
|
20
20
|
const scopeChecker = new ScopeChecker(namespace, this.isolateModule);
|
|
21
|
-
|
|
21
|
+
// G-144: every root element of the scope (a fragment-rooted component has several)
|
|
22
|
+
const topNodes = this.isolateModule.getElements(
|
|
22
23
|
namespace.filter(n => n.type !== 'selector')
|
|
23
24
|
);
|
|
24
25
|
|
|
25
|
-
if (topNode === undefined) {
|
|
26
|
-
return [];
|
|
27
|
-
}
|
|
28
|
-
|
|
29
26
|
if (selector === '') {
|
|
30
|
-
return
|
|
27
|
+
return topNodes;
|
|
31
28
|
}
|
|
32
29
|
|
|
33
|
-
return
|
|
34
|
-
.filter(scopeChecker.isDirectlyInScope, scopeChecker)
|
|
35
|
-
|
|
30
|
+
return topNodes.reduce((out: Array<Element>, topNode) => out.concat(
|
|
31
|
+
toElArray(topNode.querySelectorAll(selector)).filter(scopeChecker.isDirectlyInScope, scopeChecker),
|
|
32
|
+
topNode.matches(selector) ? [topNode] : []
|
|
33
|
+
), []);
|
|
36
34
|
}
|
|
37
35
|
}
|