gg-wf-scripts 2.8.0 → 4.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/README.md +15 -10
- package/dist/action-engine.d.ts +2 -3
- package/dist/action-engine.js +59 -40
- package/dist/action-engine.js.map +1 -1
- package/dist/actions.d.ts +1 -10
- package/dist/actions.js +1 -11
- package/dist/actions.js.map +1 -1
- package/dist/attrs.d.ts +56 -0
- package/dist/attrs.js +64 -0
- package/dist/attrs.js.map +1 -0
- package/dist/auth.d.ts +3 -3
- package/dist/auth.js +6 -5
- package/dist/auth.js.map +1 -1
- package/dist/bridges.d.ts +1 -1
- package/dist/bridges.js +23 -13
- package/dist/bridges.js.map +1 -1
- package/dist/data-engine.d.ts +2 -3
- package/dist/data-engine.js +100 -119
- package/dist/data-engine.js.map +1 -1
- package/dist/dialog.d.ts +1 -1
- package/dist/dialog.js +15 -11
- package/dist/dialog.js.map +1 -1
- package/dist/dom-observer.d.ts +4 -0
- package/dist/dom-observer.js +47 -0
- package/dist/dom-observer.js.map +1 -0
- package/dist/engine-deps.d.ts +23 -0
- package/dist/engine-deps.js +2 -0
- package/dist/engine-deps.js.map +1 -0
- package/dist/errors.d.ts +25 -0
- package/dist/errors.js +30 -0
- package/dist/errors.js.map +1 -0
- package/dist/form-action-engine.d.ts +2 -3
- package/dist/form-action-engine.js +90 -73
- package/dist/form-action-engine.js.map +1 -1
- package/dist/form-actions.d.ts +1 -13
- package/dist/form-actions.js +1 -14
- package/dist/form-actions.js.map +1 -1
- package/dist/form-visibility.d.ts +1 -1
- package/dist/form-visibility.js +89 -88
- package/dist/form-visibility.js.map +1 -1
- package/dist/helpers/form-field.d.ts +19 -0
- package/dist/helpers/form-field.js +58 -0
- package/dist/helpers/form-field.js.map +1 -0
- package/dist/helpers/run-handler.d.ts +6 -2
- package/dist/helpers/run-handler.js +5 -2
- package/dist/helpers/run-handler.js.map +1 -1
- package/dist/index.d.ts +46 -14
- package/dist/index.js +43 -17
- package/dist/index.js.map +1 -1
- package/dist/queries.d.ts +1 -10
- package/dist/queries.js +1 -11
- package/dist/queries.js.map +1 -1
- package/dist/query-params.d.ts +1 -1
- package/dist/query-params.js +40 -22
- package/dist/query-params.js.map +1 -1
- package/dist/switch-engine.d.ts +1 -1
- package/dist/switch-engine.js +16 -9
- package/dist/switch-engine.js.map +1 -1
- package/package.json +8 -3
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { GgErrorEvent } from "../errors.js";
|
|
1
2
|
type RunHandlerOptions = {
|
|
2
3
|
prefix: string;
|
|
3
4
|
id: string;
|
|
4
5
|
fields: Record<string, unknown>;
|
|
5
6
|
debug: boolean;
|
|
7
|
+
emitError?: (event: GgErrorEvent) => void;
|
|
6
8
|
};
|
|
7
9
|
export type RunHandlerResult<T> = {
|
|
8
10
|
ok: true;
|
|
@@ -16,7 +18,9 @@ export type RunHandlerResult<T> = {
|
|
|
16
18
|
*
|
|
17
19
|
* Catches throws so engine code can branch on a result instead of try/catch.
|
|
18
20
|
* On success, returns { ok: true, value } where value is whatever the handler
|
|
19
|
-
* returned. On throw, returns { ok: false, error }
|
|
21
|
+
* returned. On throw, returns { ok: false, error }, logs the error, and emits
|
|
22
|
+
* a GgErrorEvent so consumers subscribed via app.onError() can ship it to
|
|
23
|
+
* their error tracker.
|
|
20
24
|
*/
|
|
21
|
-
export declare function runHandler<T>({ prefix, id, fields, debug }: RunHandlerOptions, fn: () => Promise<T> | T): Promise<RunHandlerResult<T>>;
|
|
25
|
+
export declare function runHandler<T>({ prefix, id, fields, debug, emitError }: RunHandlerOptions, fn: () => Promise<T> | T): Promise<RunHandlerResult<T>>;
|
|
22
26
|
export {};
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Catches throws so engine code can branch on a result instead of try/catch.
|
|
5
5
|
* On success, returns { ok: true, value } where value is whatever the handler
|
|
6
|
-
* returned. On throw, returns { ok: false, error }
|
|
6
|
+
* returned. On throw, returns { ok: false, error }, logs the error, and emits
|
|
7
|
+
* a GgErrorEvent so consumers subscribed via app.onError() can ship it to
|
|
8
|
+
* their error tracker.
|
|
7
9
|
*/
|
|
8
|
-
export async function runHandler({ prefix, id, fields, debug }, fn) {
|
|
10
|
+
export async function runHandler({ prefix, id, fields, debug, emitError }, fn) {
|
|
9
11
|
if (debug) {
|
|
10
12
|
console.groupCollapsed(`${prefix} "${id}"`);
|
|
11
13
|
for (const [key, value] of Object.entries(fields)) {
|
|
@@ -23,6 +25,7 @@ export async function runHandler({ prefix, id, fields, debug }, fn) {
|
|
|
23
25
|
}
|
|
24
26
|
catch (error) {
|
|
25
27
|
console.error(`${prefix} "${id}" threw:`, error);
|
|
28
|
+
emitError?.({ prefix, id, error, fields });
|
|
26
29
|
return { ok: false, error };
|
|
27
30
|
}
|
|
28
31
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-handler.js","sourceRoot":"","sources":["../../src/helpers/run-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-handler.js","sourceRoot":"","sources":["../../src/helpers/run-handler.ts"],"names":[],"mappings":"AAcA;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAqB,EAC3D,EAAwB;IAExB,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACjD,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,37 +1,69 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { setSwitchState, applySwitchState, populateFields } from "./helpers/dom.js";
|
|
1
|
+
import type { Query } from "./queries.js";
|
|
2
|
+
import type { Action } from "./actions.js";
|
|
3
|
+
import type { FormAction } from "./form-actions.js";
|
|
5
4
|
import { setQueryParams, removeQueryParams } from "./query-params.js";
|
|
6
5
|
import { type AuthAdapter } from "./auth.js";
|
|
7
|
-
|
|
6
|
+
import { type ErrorHandler } from "./errors.js";
|
|
7
|
+
export { setQueryParams, removeQueryParams };
|
|
8
8
|
export { getPath } from "./helpers/path.js";
|
|
9
9
|
export type { AuthAdapter } from "./auth.js";
|
|
10
10
|
export type { Query } from "./queries.js";
|
|
11
11
|
export type { Action, ActionResult } from "./actions.js";
|
|
12
12
|
export type { FormAction, FormActionResult, FormFieldError } from "./form-actions.js";
|
|
13
|
-
export type
|
|
13
|
+
export type { GgErrorEvent, ErrorHandler } from "./errors.js";
|
|
14
|
+
export type InitOptions<TContext = unknown> = {
|
|
14
15
|
/**
|
|
15
16
|
* Arbitrary object passed to every query and action. Put backend clients
|
|
16
17
|
* (Supabase, fetch wrappers, etc.) or anything else your queries need on it.
|
|
17
18
|
*/
|
|
18
|
-
context?:
|
|
19
|
+
context?: TContext;
|
|
19
20
|
/**
|
|
20
21
|
* Auth adapter. If omitted, gg-auth/gg-role attrs are never set.
|
|
21
22
|
*/
|
|
22
|
-
auth?: AuthAdapter
|
|
23
|
+
auth?: AuthAdapter<TContext>;
|
|
23
24
|
/**
|
|
24
25
|
* When true, every query and action is logged to the console with its
|
|
25
26
|
* trigger/container, data, result, and duration.
|
|
26
27
|
*/
|
|
27
28
|
debug?: boolean;
|
|
28
29
|
};
|
|
30
|
+
export type App<TContext = unknown> = {
|
|
31
|
+
context: TContext;
|
|
32
|
+
debug: boolean;
|
|
33
|
+
queries: Record<string, Query<TContext>>;
|
|
34
|
+
actions: Record<string, Action<TContext>>;
|
|
35
|
+
formActions: Record<string, FormAction<TContext>>;
|
|
36
|
+
/**
|
|
37
|
+
* Register a query. Optionally pin the result type at the call site:
|
|
38
|
+
* `app.addQuery<User[]>("users.list", ...)` for autocomplete on the
|
|
39
|
+
* handler's return value.
|
|
40
|
+
*/
|
|
41
|
+
addQuery: <TResult = unknown>(id: string, fn: Query<TContext, TResult>) => void;
|
|
42
|
+
/**
|
|
43
|
+
* Register an action. Optionally pin the data shape:
|
|
44
|
+
* `app.addAction<{ id: string }>("posts.delete", ...)`.
|
|
45
|
+
*/
|
|
46
|
+
addAction: <TData extends Record<string, unknown> = Record<string, unknown>>(id: string, fn: Action<TContext, TData>) => void;
|
|
47
|
+
addFormAction: (id: string, fn: FormAction<TContext>) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Subscribe to errors from any registered handler — including thrown
|
|
50
|
+
* exceptions, missing-handler lookups, and `{ ok: false }` returns. Useful
|
|
51
|
+
* for shipping errors to Sentry or similar. Returns an unsubscribe fn.
|
|
52
|
+
*/
|
|
53
|
+
onError: (handler: ErrorHandler) => () => void;
|
|
54
|
+
/**
|
|
55
|
+
* Mount all engines. Idempotent only in the sense that calling start()
|
|
56
|
+
* twice without dispose() will double-bind listeners — don't do that.
|
|
57
|
+
*/
|
|
58
|
+
start: () => void;
|
|
59
|
+
/**
|
|
60
|
+
* Detach every listener and observer the library installed. Call from
|
|
61
|
+
* SPA route changes, HMR teardown, or test cleanup. Handler registrations
|
|
62
|
+
* are kept so you can call start() again on the same App.
|
|
63
|
+
*/
|
|
64
|
+
dispose: () => void;
|
|
65
|
+
};
|
|
29
66
|
/**
|
|
30
67
|
* Create a gg-scripts app instance.
|
|
31
68
|
*/
|
|
32
|
-
export declare function init({ context, auth, debug }?: InitOptions):
|
|
33
|
-
addQuery: typeof registerQuery;
|
|
34
|
-
addAction: typeof registerAction;
|
|
35
|
-
addFormAction: typeof registerFormAction;
|
|
36
|
-
start(): void;
|
|
37
|
-
};
|
|
69
|
+
export declare function init<TContext = unknown>({ context, auth, debug }?: InitOptions<TContext>): App<TContext>;
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { registerQuery } from "./queries.js";
|
|
2
|
-
import { registerAction } from "./actions.js";
|
|
3
|
-
import { registerFormAction } from "./form-actions.js";
|
|
4
|
-
import { setSwitchState, applySwitchState, populateFields } from "./helpers/dom.js";
|
|
5
1
|
import { setQueryParams, removeQueryParams, initQueryParams } from "./query-params.js";
|
|
6
2
|
import { initAuth } from "./auth.js";
|
|
7
3
|
import { initSwitchEngine } from "./switch-engine.js";
|
|
@@ -11,28 +7,53 @@ import { initFormVisibility } from "./form-visibility.js";
|
|
|
11
7
|
import { initDataEngine } from "./data-engine.js";
|
|
12
8
|
import { initActionEngine } from "./action-engine.js";
|
|
13
9
|
import { initFormActionEngine } from "./form-action-engine.js";
|
|
14
|
-
|
|
10
|
+
import { startDomObserver } from "./dom-observer.js";
|
|
11
|
+
import { createErrorBus } from "./errors.js";
|
|
12
|
+
export { setQueryParams, removeQueryParams };
|
|
15
13
|
export { getPath } from "./helpers/path.js";
|
|
16
14
|
/**
|
|
17
15
|
* Create a gg-scripts app instance.
|
|
18
16
|
*/
|
|
19
17
|
export function init({ context = {}, auth, debug = false } = {}) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
const queries = {};
|
|
19
|
+
const actions = {};
|
|
20
|
+
const formActions = {};
|
|
21
|
+
const errorBus = createErrorBus();
|
|
22
|
+
let cleanups = [];
|
|
23
|
+
const app = {
|
|
24
|
+
context,
|
|
25
|
+
debug,
|
|
26
|
+
queries,
|
|
27
|
+
actions,
|
|
28
|
+
formActions,
|
|
29
|
+
addQuery: (id, fn) => {
|
|
30
|
+
queries[id] = fn;
|
|
31
|
+
},
|
|
32
|
+
addAction: (id, fn) => {
|
|
33
|
+
actions[id] = fn;
|
|
34
|
+
},
|
|
35
|
+
addFormAction: (id, fn) => {
|
|
36
|
+
formActions[id] = fn;
|
|
37
|
+
},
|
|
38
|
+
onError: (handler) => errorBus.subscribe(handler),
|
|
24
39
|
start() {
|
|
25
40
|
function run() {
|
|
41
|
+
const core = {
|
|
42
|
+
context,
|
|
43
|
+
debug,
|
|
44
|
+
emitError: (event) => errorBus.emit(event),
|
|
45
|
+
};
|
|
26
46
|
if (auth)
|
|
27
47
|
initAuth(context, auth);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
48
|
+
cleanups.push(startDomObserver());
|
|
49
|
+
cleanups.push(initSwitchEngine());
|
|
50
|
+
cleanups.push(initQueryParams());
|
|
51
|
+
cleanups.push(initDialog());
|
|
52
|
+
cleanups.push(initBridges());
|
|
53
|
+
cleanups.push(initFormVisibility());
|
|
54
|
+
cleanups.push(initDataEngine({ ...core, queries }));
|
|
55
|
+
cleanups.push(initActionEngine({ ...core, actions }));
|
|
56
|
+
cleanups.push(initFormActionEngine({ ...core, formActions }));
|
|
36
57
|
}
|
|
37
58
|
if (document.readyState === "loading") {
|
|
38
59
|
document.addEventListener("DOMContentLoaded", run);
|
|
@@ -41,6 +62,11 @@ export function init({ context = {}, auth, debug = false } = {}) {
|
|
|
41
62
|
run();
|
|
42
63
|
}
|
|
43
64
|
},
|
|
65
|
+
dispose() {
|
|
66
|
+
cleanups.forEach((c) => c());
|
|
67
|
+
cleanups = [];
|
|
68
|
+
},
|
|
44
69
|
};
|
|
70
|
+
return app;
|
|
45
71
|
}
|
|
46
72
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/queries.d.ts
CHANGED
|
@@ -1,10 +1 @@
|
|
|
1
|
-
export type Query = (context:
|
|
2
|
-
export declare const queryRegistry: Record<string, Query>;
|
|
3
|
-
/**
|
|
4
|
-
* Register a data query for use with gg-data, gg-data-form, or gg-data-list.
|
|
5
|
-
*
|
|
6
|
-
* Receives the context object passed to init() and a URLSearchParams snapshot of the
|
|
7
|
-
* current URL query string. Return a single object (or null) for gg-data/gg-data-form,
|
|
8
|
-
* or an array for gg-data-list.
|
|
9
|
-
*/
|
|
10
|
-
export declare function registerQuery(id: string, fn: Query): void;
|
|
1
|
+
export type Query<TContext = unknown, TResult = unknown> = (context: TContext, params: URLSearchParams) => Promise<TResult> | TResult;
|
package/dist/queries.js
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
/**
|
|
3
|
-
* Register a data query for use with gg-data, gg-data-form, or gg-data-list.
|
|
4
|
-
*
|
|
5
|
-
* Receives the context object passed to init() and a URLSearchParams snapshot of the
|
|
6
|
-
* current URL query string. Return a single object (or null) for gg-data/gg-data-form,
|
|
7
|
-
* or an array for gg-data-list.
|
|
8
|
-
*/
|
|
9
|
-
export function registerQuery(id, fn) {
|
|
10
|
-
queryRegistry[id] = fn;
|
|
11
|
-
}
|
|
1
|
+
export {};
|
|
12
2
|
//# sourceMappingURL=queries.js.map
|
package/dist/queries.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":""}
|
package/dist/query-params.d.ts
CHANGED
|
@@ -15,5 +15,5 @@ export declare function setQueryParams(params: Array<{
|
|
|
15
15
|
* Remove one or more URL query params and notify subscribers.
|
|
16
16
|
*/
|
|
17
17
|
export declare function removeQueryParams(keys: string[]): void;
|
|
18
|
-
export declare function initQueryParams(): void;
|
|
18
|
+
export declare function initQueryParams(): () => void;
|
|
19
19
|
export {};
|
package/dist/query-params.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ATTR, SEL } from "./attrs.js";
|
|
2
|
+
import { onElement } from "./dom-observer.js";
|
|
1
3
|
const subscribers = [];
|
|
2
4
|
/**
|
|
3
5
|
* Snapshot of the current URL query string as a URLSearchParams instance.
|
|
@@ -38,9 +40,9 @@ export function removeQueryParams(keys) {
|
|
|
38
40
|
function handleQueryClick(target) {
|
|
39
41
|
if (!target)
|
|
40
42
|
return;
|
|
41
|
-
const setTrigger = target.closest(
|
|
43
|
+
const setTrigger = target.closest(`[${ATTR.querySet}]`);
|
|
42
44
|
if (setTrigger) {
|
|
43
|
-
const attr = setTrigger.getAttribute(
|
|
45
|
+
const attr = setTrigger.getAttribute(ATTR.querySet) ?? "";
|
|
44
46
|
const params = attr
|
|
45
47
|
.split(",")
|
|
46
48
|
.filter(Boolean)
|
|
@@ -53,9 +55,9 @@ function handleQueryClick(target) {
|
|
|
53
55
|
setQueryParams(params);
|
|
54
56
|
return;
|
|
55
57
|
}
|
|
56
|
-
const removeTrigger = target.closest(
|
|
58
|
+
const removeTrigger = target.closest(`[${ATTR.queryRemove}]`);
|
|
57
59
|
if (removeTrigger) {
|
|
58
|
-
const attr = removeTrigger.getAttribute(
|
|
60
|
+
const attr = removeTrigger.getAttribute(ATTR.queryRemove) ?? "";
|
|
59
61
|
const keys = attr
|
|
60
62
|
.split(",")
|
|
61
63
|
.map((k) => k.trim())
|
|
@@ -66,30 +68,39 @@ function handleQueryClick(target) {
|
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
export function initQueryParams() {
|
|
69
|
-
|
|
71
|
+
const onClick = (e) => {
|
|
70
72
|
handleQueryClick(e.target instanceof Element ? e.target : null);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// inside a shadow tree dispatches `gg:shadow:click` with the real target.
|
|
74
|
-
document.addEventListener("gg:shadow:click", (e) => {
|
|
73
|
+
};
|
|
74
|
+
const onShadowClick = (e) => {
|
|
75
75
|
const detail = e.detail;
|
|
76
76
|
handleQueryClick(detail?.target ?? null);
|
|
77
|
-
}
|
|
78
|
-
|
|
77
|
+
};
|
|
78
|
+
document.addEventListener("click", onClick);
|
|
79
|
+
document.addEventListener("gg:shadow:click", onShadowClick);
|
|
80
|
+
const unbindBindings = initQueryBindings();
|
|
81
|
+
return () => {
|
|
82
|
+
document.removeEventListener("click", onClick);
|
|
83
|
+
document.removeEventListener("gg:shadow:click", onShadowClick);
|
|
84
|
+
unbindBindings();
|
|
85
|
+
};
|
|
79
86
|
}
|
|
80
87
|
function syncBindInputFromUrl(el) {
|
|
81
|
-
const key = el.getAttribute(
|
|
88
|
+
const key = el.getAttribute(ATTR.queryBind);
|
|
82
89
|
if (!key)
|
|
83
90
|
return;
|
|
84
91
|
const value = new URL(window.location.href).searchParams.get(key) ?? "";
|
|
85
92
|
if (el.value !== value)
|
|
86
93
|
el.value = value;
|
|
87
94
|
}
|
|
95
|
+
const boundInputs = new WeakSet();
|
|
88
96
|
function setupQueryBindInput(el) {
|
|
89
|
-
|
|
97
|
+
if (boundInputs.has(el))
|
|
98
|
+
return;
|
|
99
|
+
const key = el.getAttribute(ATTR.queryBind);
|
|
90
100
|
if (!key)
|
|
91
101
|
return;
|
|
92
|
-
|
|
102
|
+
boundInputs.add(el);
|
|
103
|
+
const debounceMs = parseInt(el.getAttribute(ATTR.queryDebounce) ?? "0", 10) || 0;
|
|
93
104
|
syncBindInputFromUrl(el);
|
|
94
105
|
let timer;
|
|
95
106
|
let suppress = false;
|
|
@@ -128,15 +139,22 @@ function setupQueryBindInput(el) {
|
|
|
128
139
|
});
|
|
129
140
|
}
|
|
130
141
|
function initQueryBindings() {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
142
|
+
const unbind = onElement(SEL.queryBind, (el) => {
|
|
143
|
+
if (el instanceof HTMLInputElement ||
|
|
144
|
+
el instanceof HTMLTextAreaElement ||
|
|
145
|
+
el instanceof HTMLSelectElement) {
|
|
146
|
+
setupQueryBindInput(el);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
const onPopstate = () => {
|
|
137
150
|
document
|
|
138
|
-
.querySelectorAll(
|
|
151
|
+
.querySelectorAll(SEL.queryBind)
|
|
139
152
|
.forEach(syncBindInputFromUrl);
|
|
140
|
-
}
|
|
153
|
+
};
|
|
154
|
+
window.addEventListener("popstate", onPopstate);
|
|
155
|
+
return () => {
|
|
156
|
+
unbind();
|
|
157
|
+
window.removeEventListener("popstate", onPopstate);
|
|
158
|
+
};
|
|
141
159
|
}
|
|
142
160
|
//# sourceMappingURL=query-params.js.map
|
package/dist/query-params.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-params.js","sourceRoot":"","sources":["../src/query-params.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-params.js","sourceRoot":"","sources":["../src/query-params.ts"],"names":[],"mappings":"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"}
|
package/dist/switch-engine.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function initSwitchEngine(): void;
|
|
1
|
+
export declare function initSwitchEngine(): () => void;
|
package/dist/switch-engine.js
CHANGED
|
@@ -1,21 +1,28 @@
|
|
|
1
|
+
import { ATTR, SEL } from "./attrs.js";
|
|
1
2
|
import { applySwitchState } from "./helpers/dom.js";
|
|
3
|
+
import { onElement } from "./dom-observer.js";
|
|
2
4
|
export function initSwitchEngine() {
|
|
3
5
|
// Re-apply whenever gg-switch-state changes on any element.
|
|
4
|
-
new MutationObserver((mutations) => {
|
|
6
|
+
const observer = new MutationObserver((mutations) => {
|
|
5
7
|
mutations.forEach((m) => {
|
|
6
|
-
if (m.attributeName ===
|
|
8
|
+
if (m.attributeName === ATTR.switchState &&
|
|
9
|
+
m.target instanceof Element) {
|
|
7
10
|
applySwitchState(m.target);
|
|
8
11
|
}
|
|
9
12
|
});
|
|
10
|
-
})
|
|
13
|
+
});
|
|
14
|
+
observer.observe(document.body, {
|
|
11
15
|
attributes: true,
|
|
12
|
-
attributeFilter: [
|
|
16
|
+
attributeFilter: [ATTR.switchState],
|
|
13
17
|
subtree: true,
|
|
14
18
|
});
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
// Initial pass for elements present at start AND any inserted later — the
|
|
20
|
+
// mutation observer above only fires on attribute *changes*, so freshly
|
|
21
|
+
// inserted nodes need an explicit apply.
|
|
22
|
+
const unbind = onElement(SEL.switchState, applySwitchState);
|
|
23
|
+
return () => {
|
|
24
|
+
observer.disconnect();
|
|
25
|
+
unbind();
|
|
26
|
+
};
|
|
20
27
|
}
|
|
21
28
|
//# sourceMappingURL=switch-engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-engine.js","sourceRoot":"","sources":["../src/switch-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"switch-engine.js","sourceRoot":"","sources":["../src/switch-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,UAAU,gBAAgB;IAC9B,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAAE;QAClD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,IACE,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW;gBACpC,CAAC,CAAC,MAAM,YAAY,OAAO,EAC3B,CAAC;gBACD,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC9B,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,0EAA0E;IAC1E,wEAAwE;IACxE,yCAAyC;IACzC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAE5D,OAAO,GAAG,EAAE;QACV,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gg-wf-scripts",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -15,10 +15,15 @@
|
|
|
15
15
|
"clean": "rimraf dist",
|
|
16
16
|
"build": "npm run clean && tsc",
|
|
17
17
|
"typecheck": "tsc --noEmit",
|
|
18
|
-
"prepublishOnly": "npm run build"
|
|
18
|
+
"prepublishOnly": "npm run build",
|
|
19
|
+
"docs:dev": "vitepress dev docs",
|
|
20
|
+
"docs:build": "vitepress build docs",
|
|
21
|
+
"docs:preview": "vitepress preview docs"
|
|
19
22
|
},
|
|
20
23
|
"devDependencies": {
|
|
21
24
|
"rimraf": "^6.1.3",
|
|
22
|
-
"typescript": "^6.0.3"
|
|
25
|
+
"typescript": "^6.0.3",
|
|
26
|
+
"vitepress": "^1.6.4",
|
|
27
|
+
"vitepress-plugin-llms": "^1.12.1"
|
|
23
28
|
}
|
|
24
29
|
}
|