gg-wf-scripts 2.8.0 → 3.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.
Files changed (58) hide show
  1. package/dist/action-engine.d.ts +2 -3
  2. package/dist/action-engine.js +59 -40
  3. package/dist/action-engine.js.map +1 -1
  4. package/dist/actions.d.ts +1 -10
  5. package/dist/actions.js +1 -11
  6. package/dist/actions.js.map +1 -1
  7. package/dist/attrs.d.ts +59 -0
  8. package/dist/attrs.js +67 -0
  9. package/dist/attrs.js.map +1 -0
  10. package/dist/auth.d.ts +3 -3
  11. package/dist/auth.js +6 -5
  12. package/dist/auth.js.map +1 -1
  13. package/dist/bridges.d.ts +1 -1
  14. package/dist/bridges.js +23 -13
  15. package/dist/bridges.js.map +1 -1
  16. package/dist/data-engine.d.ts +2 -3
  17. package/dist/data-engine.js +101 -106
  18. package/dist/data-engine.js.map +1 -1
  19. package/dist/dialog.d.ts +1 -1
  20. package/dist/dialog.js +15 -11
  21. package/dist/dialog.js.map +1 -1
  22. package/dist/dom-observer.d.ts +4 -0
  23. package/dist/dom-observer.js +47 -0
  24. package/dist/dom-observer.js.map +1 -0
  25. package/dist/engine-deps.d.ts +23 -0
  26. package/dist/engine-deps.js +2 -0
  27. package/dist/engine-deps.js.map +1 -0
  28. package/dist/errors.d.ts +25 -0
  29. package/dist/errors.js +30 -0
  30. package/dist/errors.js.map +1 -0
  31. package/dist/form-action-engine.d.ts +2 -3
  32. package/dist/form-action-engine.js +90 -73
  33. package/dist/form-action-engine.js.map +1 -1
  34. package/dist/form-actions.d.ts +1 -13
  35. package/dist/form-actions.js +1 -14
  36. package/dist/form-actions.js.map +1 -1
  37. package/dist/form-visibility.d.ts +1 -1
  38. package/dist/form-visibility.js +89 -88
  39. package/dist/form-visibility.js.map +1 -1
  40. package/dist/helpers/form-field.d.ts +19 -0
  41. package/dist/helpers/form-field.js +58 -0
  42. package/dist/helpers/form-field.js.map +1 -0
  43. package/dist/helpers/run-handler.d.ts +6 -2
  44. package/dist/helpers/run-handler.js +5 -2
  45. package/dist/helpers/run-handler.js.map +1 -1
  46. package/dist/index.d.ts +46 -14
  47. package/dist/index.js +43 -17
  48. package/dist/index.js.map +1 -1
  49. package/dist/queries.d.ts +1 -10
  50. package/dist/queries.js +1 -11
  51. package/dist/queries.js.map +1 -1
  52. package/dist/query-params.d.ts +1 -1
  53. package/dist/query-params.js +40 -22
  54. package/dist/query-params.js.map +1 -1
  55. package/dist/switch-engine.d.ts +1 -1
  56. package/dist/switch-engine.js +16 -9
  57. package/dist/switch-engine.js.map +1 -1
  58. package/package.json +8 -3
@@ -1,3 +1,2 @@
1
- export declare function initActionEngine(context: unknown, { debug }?: {
2
- debug?: boolean;
3
- }): void;
1
+ import type { ActionEngineDeps } from "./engine-deps.js";
2
+ export declare function initActionEngine<TContext>(deps: ActionEngineDeps<TContext>): () => void;
@@ -1,9 +1,9 @@
1
- import { actionRegistry } from "./actions.js";
1
+ import { ATTR, SEL } from "./attrs.js";
2
2
  import { runHandler } from "./helpers/run-handler.js";
3
3
  import { runWithLoading } from "./helpers/run-with-loading.js";
4
4
  import { getParams } from "./query-params.js";
5
5
  function parseActionData(el) {
6
- const attr = el.getAttribute("gg-action-data");
6
+ const attr = el.getAttribute(ATTR.actionData);
7
7
  if (!attr)
8
8
  return {};
9
9
  const data = {};
@@ -26,53 +26,72 @@ function findRecord(el) {
26
26
  }
27
27
  return null;
28
28
  }
29
- export function initActionEngine(context, { debug = false } = {}) {
30
- async function handleAction(el) {
31
- if (el.hasAttribute("gg-loading"))
32
- return;
33
- const id = el.getAttribute("gg-action");
34
- if (!id)
35
- return;
36
- const action = actionRegistry[id];
37
- if (!action) {
38
- console.warn(`[gg-action] no action registered for "${id}"`);
39
- return;
40
- }
41
- if (el.hasAttribute("gg-confirm")) {
42
- const text = el.getAttribute("gg-confirm-text") || "Are you sure?";
43
- if (!window.confirm(text))
44
- return;
45
- }
46
- const record = findRecord(el);
47
- const explicit = parseActionData(el);
48
- const data = record ? { ...record, ...explicit } : explicit;
49
- const params = getParams();
50
- const result = await runWithLoading([el], () => runHandler({
29
+ async function handleAction(el, deps) {
30
+ if (el.hasAttribute(ATTR.loading))
31
+ return;
32
+ const id = el.getAttribute(ATTR.action);
33
+ if (!id)
34
+ return;
35
+ const action = deps.actions[id];
36
+ if (!action) {
37
+ console.warn(`[gg-action] no action registered for "${id}"`);
38
+ deps.emitError({
51
39
  prefix: "[gg-action]",
52
40
  id,
53
- fields: { trigger: el, data, params: Object.fromEntries(params) },
54
- debug,
55
- }, () => action(context, data, params)));
56
- if (!result.ok)
41
+ error: "no action registered",
42
+ fields: { trigger: el },
43
+ });
44
+ return;
45
+ }
46
+ if (el.hasAttribute(ATTR.confirm)) {
47
+ const text = el.getAttribute(ATTR.confirmText) || "Are you sure?";
48
+ if (!window.confirm(text))
57
49
  return;
58
- if (result.value && result.value.ok === false) {
59
- const failure = result.value;
60
- console.warn(`[gg-action] "${id}" failed:`, failure.error ?? "unknown error");
61
- }
62
50
  }
63
- document.addEventListener("click", (e) => {
51
+ const record = findRecord(el);
52
+ const explicit = parseActionData(el);
53
+ const data = record ? { ...record, ...explicit } : explicit;
54
+ const params = getParams();
55
+ const result = await runWithLoading([el], () => runHandler({
56
+ prefix: "[gg-action]",
57
+ id,
58
+ fields: { trigger: el, data, params: Object.fromEntries(params) },
59
+ debug: deps.debug,
60
+ emitError: deps.emitError,
61
+ }, () => action(deps.context, data, params)));
62
+ if (!result.ok)
63
+ return;
64
+ if (result.value && result.value.ok === false) {
65
+ const failure = result.value;
66
+ console.warn(`[gg-action] "${id}" failed:`, failure.error ?? "unknown error");
67
+ deps.emitError({
68
+ prefix: "[gg-action]",
69
+ id,
70
+ error: failure.error ?? "unknown error",
71
+ fields: { trigger: el, data },
72
+ });
73
+ }
74
+ }
75
+ export function initActionEngine(deps) {
76
+ const onClick = (e) => {
64
77
  const target = e.target;
65
78
  if (!(target instanceof Element))
66
79
  return;
67
- const trigger = target.closest("[gg-action]");
80
+ const trigger = target.closest(SEL.action);
68
81
  if (trigger)
69
- handleAction(trigger);
70
- });
71
- document.addEventListener("gg:shadow:click", (e) => {
82
+ handleAction(trigger, deps);
83
+ };
84
+ const onShadowClick = (e) => {
72
85
  const detail = e.detail;
73
- const trigger = detail?.target?.closest?.("[gg-action]");
86
+ const trigger = detail?.target?.closest?.(SEL.action);
74
87
  if (trigger)
75
- handleAction(trigger);
76
- });
88
+ handleAction(trigger, deps);
89
+ };
90
+ document.addEventListener("click", onClick);
91
+ document.addEventListener("gg:shadow:click", onShadowClick);
92
+ return () => {
93
+ document.removeEventListener("click", onClick);
94
+ document.removeEventListener("gg:shadow:click", onShadowClick);
95
+ };
77
96
  }
78
97
  //# sourceMappingURL=action-engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-engine.js","sourceRoot":"","sources":["../src/action-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-engine.js","sourceRoot":"","sources":["../src/action-engine.ts"],"names":[],"mappings":"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"}
package/dist/actions.d.ts CHANGED
@@ -2,13 +2,4 @@ export type ActionResult = {
2
2
  ok: boolean;
3
3
  error?: unknown;
4
4
  };
5
- export type Action = (context: unknown, data: Record<string, unknown>, params: URLSearchParams) => Promise<ActionResult | void> | ActionResult | void;
6
- export declare const actionRegistry: Record<string, Action>;
7
- /**
8
- * Register an action triggered by gg-action="<id>" on click.
9
- *
10
- * Receives the context object passed to init(), a data object (merged from the nearest
11
- * gg-data record and any explicit gg-action-data attribute), and a URLSearchParams
12
- * snapshot of the current URL query string. Return { ok: true } or { ok: false, error }.
13
- */
14
- export declare function registerAction(id: string, fn: Action): void;
5
+ export type Action<TContext = unknown, TData extends Record<string, unknown> = Record<string, unknown>> = (context: TContext, data: TData, params: URLSearchParams) => Promise<ActionResult | void> | ActionResult | void;
package/dist/actions.js CHANGED
@@ -1,12 +1,2 @@
1
- export const actionRegistry = {};
2
- /**
3
- * Register an action triggered by gg-action="<id>" on click.
4
- *
5
- * Receives the context object passed to init(), a data object (merged from the nearest
6
- * gg-data record and any explicit gg-action-data attribute), and a URLSearchParams
7
- * snapshot of the current URL query string. Return { ok: true } or { ok: false, error }.
8
- */
9
- export function registerAction(id, fn) {
10
- actionRegistry[id] = fn;
11
- }
1
+ export {};
12
2
  //# sourceMappingURL=actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,cAAc,GAA2B,EAAE,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,EAAU;IACnD,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Single source of truth for every gg-* attribute the library reads or writes.
3
+ * Engines should reference these constants instead of inline string literals so
4
+ * the attribute vocabulary stays discoverable and renameable.
5
+ */
6
+ export declare const ATTR: {
7
+ readonly action: "gg-action";
8
+ readonly actionData: "gg-action-data";
9
+ readonly formAction: "gg-form-action";
10
+ readonly data: "gg-data";
11
+ readonly dataList: "gg-data-list";
12
+ readonly dataForm: "gg-data-form";
13
+ readonly dataOn: "gg-data-on";
14
+ readonly dataKey: "gg-data-key";
15
+ readonly dataValue: "gg-data-value";
16
+ readonly field: "gg-field";
17
+ readonly listTemplate: "gg-list-template";
18
+ readonly formFieldError: "gg-form-field-error";
19
+ readonly formFieldInvalid: "gg-form-field-invalid";
20
+ readonly formError: "gg-form-error";
21
+ readonly formErrorList: "gg-form-error-list";
22
+ readonly formScope: "gg-form-scope";
23
+ readonly switchState: "gg-switch-state";
24
+ readonly switchField: "gg-switch-field";
25
+ readonly switchQuery: "gg-switch-query";
26
+ readonly case: "gg-case";
27
+ readonly visibleWhen: "gg-visible-when";
28
+ readonly queryBind: "gg-query-bind";
29
+ readonly queryDebounce: "gg-query-debounce";
30
+ readonly querySet: "gg-query-set";
31
+ readonly queryRemove: "gg-query-remove";
32
+ readonly loading: "gg-loading";
33
+ readonly confirm: "gg-confirm";
34
+ readonly confirmText: "gg-confirm-text";
35
+ readonly auth: "gg-auth";
36
+ readonly role: "gg-role";
37
+ };
38
+ export declare const SEL: {
39
+ readonly action: "[gg-action]";
40
+ readonly formAction: "form[gg-form-action]";
41
+ readonly data: "[gg-data]";
42
+ readonly dataList: "[gg-data-list]";
43
+ readonly dataForm: "[gg-data-form]";
44
+ readonly dataAny: "[gg-data], [gg-data-list], [gg-data-form]";
45
+ readonly dataAnyOn: "[gg-data][gg-data-on], [gg-data-list][gg-data-on], [gg-data-form][gg-data-on]";
46
+ readonly dataKey: "[gg-data-key]";
47
+ readonly field: "[gg-field]";
48
+ readonly listTemplate: "[gg-list-template]";
49
+ readonly switchState: "[gg-switch-state]";
50
+ readonly switchField: "[gg-switch-field]";
51
+ readonly switchQuery: "[gg-switch-query]";
52
+ readonly visibleWhen: "[gg-visible-when]";
53
+ readonly queryBind: "[gg-query-bind]";
54
+ readonly formScopeOrForm: "[gg-form-scope], form";
55
+ readonly formFieldInvalid: "[gg-form-field-invalid]";
56
+ readonly formFieldError: "[gg-form-field-error]";
57
+ readonly formError: "[gg-form-error]";
58
+ readonly formErrorList: "[gg-form-error-list]";
59
+ };
package/dist/attrs.js ADDED
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Single source of truth for every gg-* attribute the library reads or writes.
3
+ * Engines should reference these constants instead of inline string literals so
4
+ * the attribute vocabulary stays discoverable and renameable.
5
+ */
6
+ export const ATTR = {
7
+ // Actions
8
+ action: "gg-action",
9
+ actionData: "gg-action-data",
10
+ formAction: "gg-form-action",
11
+ // Data binding
12
+ data: "gg-data",
13
+ dataList: "gg-data-list",
14
+ dataForm: "gg-data-form",
15
+ dataOn: "gg-data-on",
16
+ dataKey: "gg-data-key",
17
+ dataValue: "gg-data-value",
18
+ field: "gg-field",
19
+ listTemplate: "gg-list-template",
20
+ // Form errors
21
+ formFieldError: "gg-form-field-error",
22
+ formFieldInvalid: "gg-form-field-invalid",
23
+ formError: "gg-form-error",
24
+ formErrorList: "gg-form-error-list",
25
+ formScope: "gg-form-scope",
26
+ // Switcher
27
+ switchState: "gg-switch-state",
28
+ switchField: "gg-switch-field",
29
+ switchQuery: "gg-switch-query",
30
+ case: "gg-case",
31
+ // Visibility
32
+ visibleWhen: "gg-visible-when",
33
+ // URL params
34
+ queryBind: "gg-query-bind",
35
+ queryDebounce: "gg-query-debounce",
36
+ querySet: "gg-query-set",
37
+ queryRemove: "gg-query-remove",
38
+ // Status
39
+ loading: "gg-loading",
40
+ confirm: "gg-confirm",
41
+ confirmText: "gg-confirm-text",
42
+ auth: "gg-auth",
43
+ role: "gg-role",
44
+ };
45
+ export const SEL = {
46
+ action: `[${ATTR.action}]`,
47
+ formAction: `form[${ATTR.formAction}]`,
48
+ data: `[${ATTR.data}]`,
49
+ dataList: `[${ATTR.dataList}]`,
50
+ dataForm: `[${ATTR.dataForm}]`,
51
+ dataAny: `[${ATTR.data}], [${ATTR.dataList}], [${ATTR.dataForm}]`,
52
+ dataAnyOn: `[${ATTR.data}][${ATTR.dataOn}], [${ATTR.dataList}][${ATTR.dataOn}], [${ATTR.dataForm}][${ATTR.dataOn}]`,
53
+ dataKey: `[${ATTR.dataKey}]`,
54
+ field: `[${ATTR.field}]`,
55
+ listTemplate: `[${ATTR.listTemplate}]`,
56
+ switchState: `[${ATTR.switchState}]`,
57
+ switchField: `[${ATTR.switchField}]`,
58
+ switchQuery: `[${ATTR.switchQuery}]`,
59
+ visibleWhen: `[${ATTR.visibleWhen}]`,
60
+ queryBind: `[${ATTR.queryBind}]`,
61
+ formScopeOrForm: `[${ATTR.formScope}], form`,
62
+ formFieldInvalid: `[${ATTR.formFieldInvalid}]`,
63
+ formFieldError: `[${ATTR.formFieldError}]`,
64
+ formError: `[${ATTR.formError}]`,
65
+ formErrorList: `[${ATTR.formErrorList}]`,
66
+ };
67
+ //# sourceMappingURL=attrs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attrs.js","sourceRoot":"","sources":["../src/attrs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,UAAU;IACV,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAE5B,eAAe;IACf,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,aAAa;IACtB,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,UAAU;IACjB,YAAY,EAAE,kBAAkB;IAEhC,cAAc;IACd,cAAc,EAAE,qBAAqB;IACrC,gBAAgB,EAAE,uBAAuB;IACzC,SAAS,EAAE,eAAe;IAC1B,aAAa,EAAE,oBAAoB;IACnC,SAAS,EAAE,eAAe;IAE1B,WAAW;IACX,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,SAAS;IAEf,aAAa;IACb,WAAW,EAAE,iBAAiB;IAE9B,aAAa;IACb,SAAS,EAAE,eAAe;IAC1B,aAAa,EAAE,mBAAmB;IAClC,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,iBAAiB;IAE9B,SAAS;IACT,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG;IAC1B,UAAU,EAAE,QAAQ,IAAI,CAAC,UAAU,GAAG;IACtC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG;IACtB,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,GAAG;IAC9B,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,GAAG;IAC9B,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,QAAQ,GAAG;IACjE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,GAAG;IACnH,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,GAAG;IAC5B,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG;IACxB,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,GAAG;IACtC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG;IACpC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG;IACpC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG;IACpC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,GAAG;IACpC,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG;IAChC,eAAe,EAAE,IAAI,IAAI,CAAC,SAAS,SAAS;IAC5C,gBAAgB,EAAE,IAAI,IAAI,CAAC,gBAAgB,GAAG;IAC9C,cAAc,EAAE,IAAI,IAAI,CAAC,cAAc,GAAG;IAC1C,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG;IAChC,aAAa,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG;CAChC,CAAC"}
package/dist/auth.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export type AuthAdapter = {
1
+ export type AuthAdapter<TContext = unknown> = {
2
2
  getUser: () => string | null | Promise<string | null>;
3
3
  onChange?: (cb: (userId: string | null) => void) => void;
4
- roleQuery?: (context: unknown, userId: string) => Promise<string | null> | string | null;
4
+ roleQuery?: (context: TContext, userId: string) => Promise<string | null> | string | null;
5
5
  };
6
- export declare function initAuth(context: unknown, auth: AuthAdapter): Promise<void>;
6
+ export declare function initAuth<TContext>(context: TContext, auth: AuthAdapter<TContext>): Promise<void>;
package/dist/auth.js CHANGED
@@ -1,20 +1,21 @@
1
+ import { ATTR } from "./attrs.js";
1
2
  export async function initAuth(context, auth) {
2
3
  const { getUser, onChange, roleQuery } = auth;
3
4
  async function applyAuthAttrs(userId) {
4
5
  const body = document.body;
5
6
  if (!userId) {
6
- body.setAttribute("gg-auth", "false");
7
- body.removeAttribute("gg-role");
7
+ body.setAttribute(ATTR.auth, "false");
8
+ body.removeAttribute(ATTR.role);
8
9
  return;
9
10
  }
10
- body.setAttribute("gg-auth", "true");
11
+ body.setAttribute(ATTR.auth, "true");
11
12
  if (roleQuery) {
12
13
  const role = await roleQuery(context, userId);
13
14
  if (role) {
14
- body.setAttribute("gg-role", role);
15
+ body.setAttribute(ATTR.role, role);
15
16
  }
16
17
  else {
17
- body.removeAttribute("gg-role");
18
+ body.removeAttribute(ATTR.role);
18
19
  }
19
20
  }
20
21
  }
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAgB,EAChB,IAAiB;IAEjB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAE9C,KAAK,UAAU,cAAc,CAAC,MAAqB;QACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC9C,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;IAC/B,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IAE/B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAWlC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAiB,EACjB,IAA2B;IAE3B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAE9C,KAAK,UAAU,cAAc,CAAC,MAAqB;QACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC9C,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;IAC/B,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IAE/B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
package/dist/bridges.d.ts CHANGED
@@ -1 +1 @@
1
- export declare function initBridges(): void;
1
+ export declare function initBridges(): () => void;
package/dist/bridges.js CHANGED
@@ -1,33 +1,43 @@
1
+ import { ATTR, SEL } from "./attrs.js";
1
2
  import { setSwitchState } from "./helpers/dom.js";
2
3
  import { onQueryChanged } from "./query-params.js";
4
+ import { onElement } from "./dom-observer.js";
3
5
  export function initBridges() {
4
6
  // ---- gg-switch-query: URL params → gg-switch-state ----
5
- // On any URL param change, mirror its value onto matching
6
- // [gg-switch-query="<key>"] elements' gg-switch-state.
7
- onQueryChanged((key, value) => {
7
+ const unsubscribeQuery = onQueryChanged((key, value) => {
8
8
  document
9
- .querySelectorAll(`[gg-switch-query="${CSS.escape(key)}"]`)
9
+ .querySelectorAll(`[${ATTR.switchQuery}="${CSS.escape(key)}"]`)
10
10
  .forEach((el) => setSwitchState(el, value));
11
11
  });
12
- // Initial-load pass: read current URL params and set state for every
13
- // [gg-switch-query] on the page, so we don't flash before the first change.
14
- const params = new URLSearchParams(window.location.search);
15
- document.querySelectorAll("[gg-switch-query]").forEach((el) => {
16
- const key = el.getAttribute("gg-switch-query");
12
+ // Apply current URL state to every [gg-switch-query] element on the page,
13
+ // including any inserted later via Webflow IX or CMS templates.
14
+ const unbindSwitch = onElement(SEL.switchQuery, (el) => {
15
+ const key = el.getAttribute(ATTR.switchQuery);
17
16
  if (!key)
18
17
  return;
18
+ const params = new URLSearchParams(window.location.search);
19
19
  setSwitchState(el, params.get(key));
20
20
  });
21
21
  // ---- webflow:emit → Webflow IX ----
22
- window.addEventListener("load", () => {
22
+ let wfHandler = null;
23
+ const onLoad = () => {
23
24
  Webflow.push(() => {
24
25
  const wfIx = Webflow.require("ix3");
25
- document.addEventListener("webflow:emit", (e) => {
26
+ wfHandler = (e) => {
26
27
  const detail = e.detail;
27
28
  if (detail?.event)
28
29
  wfIx.emit(detail.event);
29
- });
30
+ };
31
+ document.addEventListener("webflow:emit", wfHandler);
30
32
  });
31
- });
33
+ };
34
+ window.addEventListener("load", onLoad);
35
+ return () => {
36
+ unsubscribeQuery();
37
+ unbindSwitch();
38
+ window.removeEventListener("load", onLoad);
39
+ if (wfHandler)
40
+ document.removeEventListener("webflow:emit", wfHandler);
41
+ };
32
42
  }
33
43
  //# sourceMappingURL=bridges.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridges.js","sourceRoot":"","sources":["../src/bridges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,WAAW;IACzB,0DAA0D;IAC1D,0DAA0D;IAC1D,uDAAuD;IACvD,cAAc,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC5B,QAAQ;aACL,gBAAgB,CAAC,qBAAqB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;aAC1D,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,4EAA4E;IAC5E,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QAC5D,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,sCAAsC;IACtC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;QACnC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YAChB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC9C,MAAM,MAAM,GAAI,CAAoC,CAAC,MAAM,CAAC;gBAC5D,IAAI,MAAM,EAAE,KAAK;oBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"bridges.js","sourceRoot":"","sources":["../src/bridges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,UAAU,WAAW;IACzB,0DAA0D;IAC1D,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACrD,QAAQ;aACL,gBAAgB,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;aAC9D,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;QACrD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3D,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,sCAAsC;IACtC,IAAI,SAAS,GAAgC,IAAI,CAAC;IAClD,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YAChB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,SAAS,GAAG,CAAC,CAAQ,EAAE,EAAE;gBACvB,MAAM,MAAM,GAAI,CAAoC,CAAC,MAAM,CAAC;gBAC5D,IAAI,MAAM,EAAE,KAAK;oBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,CAAC,CAAC;YACF,QAAQ,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,OAAO,GAAG,EAAE;QACV,gBAAgB,EAAE,CAAC;QACnB,YAAY,EAAE,CAAC;QACf,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,SAAS;YAAE,QAAQ,CAAC,mBAAmB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +1,2 @@
1
- export declare function initDataEngine(context: unknown, { debug }?: {
2
- debug?: boolean;
3
- }): void;
1
+ import type { DataEngineDeps } from "./engine-deps.js";
2
+ export declare function initDataEngine<TContext>(deps: DataEngineDeps<TContext>): () => void;