@trebired/frontend 6.0.8 → 6.1.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 +7 -0
- package/dist/actions/forms.d.ts +2 -1
- package/dist/actions/forms.d.ts.map +1 -1
- package/dist/actions/forms.js +8 -4
- package/dist/actions/forms.js.map +1 -1
- package/dist/actions/index.d.ts +3 -3
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +3 -3
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/request.d.ts +9 -2
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/request.js +103 -23
- package/dist/actions/request.js.map +1 -1
- package/dist/actions/response.d.ts.map +1 -1
- package/dist/actions/response.js +25 -3
- package/dist/actions/response.js.map +1 -1
- package/dist/actions/triggers.d.ts +10 -1
- package/dist/actions/triggers.d.ts.map +1 -1
- package/dist/actions/triggers.js +27 -3
- package/dist/actions/triggers.js.map +1 -1
- package/dist/actions/types.d.ts +13 -0
- package/dist/actions/types.d.ts.map +1 -1
- package/dist/data/index.d.ts +27 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +80 -0
- package/dist/data/index.js.map +1 -0
- package/dist/dom/index.d.ts +2 -1
- package/dist/dom/index.d.ts.map +1 -1
- package/dist/dom/index.js +7 -1
- package/dist/dom/index.js.map +1 -1
- package/dist/files/index.d.ts +6 -0
- package/dist/files/index.d.ts.map +1 -0
- package/dist/files/index.js +6 -0
- package/dist/files/index.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -8
- package/dist/index.js.map +1 -1
- package/dist/live/cards.d.ts +15 -0
- package/dist/live/cards.d.ts.map +1 -0
- package/dist/live/cards.js +85 -0
- package/dist/live/cards.js.map +1 -0
- package/dist/live/connections.d.ts +34 -0
- package/dist/live/connections.d.ts.map +1 -0
- package/dist/live/connections.js +140 -0
- package/dist/live/connections.js.map +1 -0
- package/dist/live/index.d.ts +10 -25
- package/dist/live/index.d.ts.map +1 -1
- package/dist/live/index.js +9 -88
- package/dist/live/index.js.map +1 -1
- package/dist/live/regions.d.ts +25 -0
- package/dist/live/regions.d.ts.map +1 -0
- package/dist/live/regions.js +100 -0
- package/dist/live/regions.js.map +1 -0
- package/dist/live/router.d.ts +26 -0
- package/dist/live/router.d.ts.map +1 -0
- package/dist/live/router.js +161 -0
- package/dist/live/router.js.map +1 -0
- package/dist/live/scroll-overflow.d.ts +10 -0
- package/dist/live/scroll-overflow.d.ts.map +1 -0
- package/dist/live/scroll-overflow.js +66 -0
- package/dist/live/scroll-overflow.js.map +1 -0
- package/dist/live/socket.d.ts +32 -0
- package/dist/live/socket.d.ts.map +1 -0
- package/dist/live/socket.js +112 -0
- package/dist/live/socket.js.map +1 -0
- package/dist/live/state.d.ts +12 -0
- package/dist/live/state.d.ts.map +1 -0
- package/dist/live/state.js +82 -0
- package/dist/live/state.js.map +1 -0
- package/dist/media/index.d.ts +11 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +29 -0
- package/dist/media/index.js.map +1 -0
- package/dist/progress/index.d.ts +6 -2
- package/dist/progress/index.d.ts.map +1 -1
- package/dist/progress/index.js +43 -1
- package/dist/progress/index.js.map +1 -1
- package/dist/react/assets.d.ts +14 -0
- package/dist/react/assets.d.ts.map +1 -0
- package/dist/react/assets.js +70 -0
- package/dist/react/assets.js.map +1 -0
- package/dist/react/index.d.ts +15 -6
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +11 -2
- package/dist/react/index.js.map +1 -1
- package/dist/settings/index.d.ts +3 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +2 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/save-policy/bindings.d.ts +5 -0
- package/dist/settings/save-policy/bindings.d.ts.map +1 -0
- package/dist/settings/save-policy/bindings.js +16 -0
- package/dist/settings/save-policy/bindings.js.map +1 -0
- package/dist/settings/save-policy/constants.d.ts +5 -0
- package/dist/settings/save-policy/constants.d.ts.map +1 -0
- package/dist/settings/save-policy/constants.js +9 -0
- package/dist/settings/save-policy/constants.js.map +1 -0
- package/dist/settings/save-policy/controller.d.ts +6 -0
- package/dist/settings/save-policy/controller.d.ts.map +1 -0
- package/dist/settings/save-policy/controller.js +246 -0
- package/dist/settings/save-policy/controller.js.map +1 -0
- package/dist/settings/save-policy/fields.d.ts +13 -0
- package/dist/settings/save-policy/fields.d.ts.map +1 -0
- package/dist/settings/save-policy/fields.js +96 -0
- package/dist/settings/save-policy/fields.js.map +1 -0
- package/dist/settings/save-policy/index.d.ts +6 -0
- package/dist/settings/save-policy/index.d.ts.map +1 -0
- package/dist/settings/save-policy/index.js +5 -0
- package/dist/settings/save-policy/index.js.map +1 -0
- package/dist/settings/save-policy/types.d.ts +55 -0
- package/dist/settings/save-policy/types.d.ts.map +1 -0
- package/dist/settings/save-policy/types.js +2 -0
- package/dist/settings/save-policy/types.js.map +1 -0
- package/dist/socket/index.d.ts +16 -0
- package/dist/socket/index.d.ts.map +1 -0
- package/dist/socket/index.js +25 -0
- package/dist/socket/index.js.map +1 -0
- package/dist/src/actions/forms.d.ts +2 -1
- package/dist/src/actions/forms.d.ts.map +1 -1
- package/dist/src/actions/forms.js +8 -4
- package/dist/src/actions/forms.js.map +1 -1
- package/dist/src/actions/index.d.ts +3 -3
- package/dist/src/actions/index.d.ts.map +1 -1
- package/dist/src/actions/index.js +3 -3
- package/dist/src/actions/index.js.map +1 -1
- package/dist/src/actions/request.d.ts +9 -2
- package/dist/src/actions/request.d.ts.map +1 -1
- package/dist/src/actions/request.js +103 -23
- package/dist/src/actions/request.js.map +1 -1
- package/dist/src/actions/response.d.ts.map +1 -1
- package/dist/src/actions/response.js +25 -3
- package/dist/src/actions/response.js.map +1 -1
- package/dist/src/actions/triggers.d.ts +10 -1
- package/dist/src/actions/triggers.d.ts.map +1 -1
- package/dist/src/actions/triggers.js +27 -3
- package/dist/src/actions/triggers.js.map +1 -1
- package/dist/src/actions/types.d.ts +13 -0
- package/dist/src/actions/types.d.ts.map +1 -1
- package/dist/src/data/index.d.ts +27 -0
- package/dist/src/data/index.d.ts.map +1 -0
- package/dist/src/data/index.js +80 -0
- package/dist/src/data/index.js.map +1 -0
- package/dist/src/dom/index.d.ts +2 -1
- package/dist/src/dom/index.d.ts.map +1 -1
- package/dist/src/dom/index.js +7 -1
- package/dist/src/dom/index.js.map +1 -1
- package/dist/src/files/index.d.ts +6 -0
- package/dist/src/files/index.d.ts.map +1 -0
- package/dist/src/files/index.js +6 -0
- package/dist/src/files/index.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +25 -8
- package/dist/src/index.js.map +1 -1
- package/dist/src/live/cards.d.ts +15 -0
- package/dist/src/live/cards.d.ts.map +1 -0
- package/dist/src/live/cards.js +85 -0
- package/dist/src/live/cards.js.map +1 -0
- package/dist/src/live/connections.d.ts +34 -0
- package/dist/src/live/connections.d.ts.map +1 -0
- package/dist/src/live/connections.js +140 -0
- package/dist/src/live/connections.js.map +1 -0
- package/dist/src/live/index.d.ts +10 -25
- package/dist/src/live/index.d.ts.map +1 -1
- package/dist/src/live/index.js +9 -88
- package/dist/src/live/index.js.map +1 -1
- package/dist/src/live/regions.d.ts +25 -0
- package/dist/src/live/regions.d.ts.map +1 -0
- package/dist/src/live/regions.js +100 -0
- package/dist/src/live/regions.js.map +1 -0
- package/dist/src/live/router.d.ts +26 -0
- package/dist/src/live/router.d.ts.map +1 -0
- package/dist/src/live/router.js +161 -0
- package/dist/src/live/router.js.map +1 -0
- package/dist/src/live/scroll-overflow.d.ts +10 -0
- package/dist/src/live/scroll-overflow.d.ts.map +1 -0
- package/dist/src/live/scroll-overflow.js +66 -0
- package/dist/src/live/scroll-overflow.js.map +1 -0
- package/dist/src/live/socket.d.ts +32 -0
- package/dist/src/live/socket.d.ts.map +1 -0
- package/dist/src/live/socket.js +112 -0
- package/dist/src/live/socket.js.map +1 -0
- package/dist/src/live/state.d.ts +12 -0
- package/dist/src/live/state.d.ts.map +1 -0
- package/dist/src/live/state.js +82 -0
- package/dist/src/live/state.js.map +1 -0
- package/dist/src/media/index.d.ts +11 -0
- package/dist/src/media/index.d.ts.map +1 -0
- package/dist/src/media/index.js +29 -0
- package/dist/src/media/index.js.map +1 -0
- package/dist/src/progress/index.d.ts +6 -2
- package/dist/src/progress/index.d.ts.map +1 -1
- package/dist/src/progress/index.js +43 -1
- package/dist/src/progress/index.js.map +1 -1
- package/dist/src/react/assets.d.ts +14 -0
- package/dist/src/react/assets.d.ts.map +1 -0
- package/dist/src/react/assets.js +70 -0
- package/dist/src/react/assets.js.map +1 -0
- package/dist/src/react/index.d.ts +15 -6
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/react/index.js +11 -2
- package/dist/src/react/index.js.map +1 -1
- package/dist/src/settings/index.d.ts +3 -0
- package/dist/src/settings/index.d.ts.map +1 -0
- package/dist/src/settings/index.js +2 -0
- package/dist/src/settings/index.js.map +1 -0
- package/dist/src/settings/save-policy/bindings.d.ts +5 -0
- package/dist/src/settings/save-policy/bindings.d.ts.map +1 -0
- package/dist/src/settings/save-policy/bindings.js +16 -0
- package/dist/src/settings/save-policy/bindings.js.map +1 -0
- package/dist/src/settings/save-policy/constants.d.ts +5 -0
- package/dist/src/settings/save-policy/constants.d.ts.map +1 -0
- package/dist/src/settings/save-policy/constants.js +9 -0
- package/dist/src/settings/save-policy/constants.js.map +1 -0
- package/dist/src/settings/save-policy/controller.d.ts +6 -0
- package/dist/src/settings/save-policy/controller.d.ts.map +1 -0
- package/dist/src/settings/save-policy/controller.js +246 -0
- package/dist/src/settings/save-policy/controller.js.map +1 -0
- package/dist/src/settings/save-policy/fields.d.ts +13 -0
- package/dist/src/settings/save-policy/fields.d.ts.map +1 -0
- package/dist/src/settings/save-policy/fields.js +96 -0
- package/dist/src/settings/save-policy/fields.js.map +1 -0
- package/dist/src/settings/save-policy/index.d.ts +6 -0
- package/dist/src/settings/save-policy/index.d.ts.map +1 -0
- package/dist/src/settings/save-policy/index.js +5 -0
- package/dist/src/settings/save-policy/index.js.map +1 -0
- package/dist/src/settings/save-policy/types.d.ts +55 -0
- package/dist/src/settings/save-policy/types.d.ts.map +1 -0
- package/dist/src/settings/save-policy/types.js +2 -0
- package/dist/src/settings/save-policy/types.js.map +1 -0
- package/dist/src/socket/index.d.ts +16 -0
- package/dist/src/socket/index.d.ts.map +1 -0
- package/dist/src/socket/index.js +25 -0
- package/dist/src/socket/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type TrackedField = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;
|
|
2
|
+
declare function normalizedPrimaryFormIds(values: unknown): string[];
|
|
3
|
+
declare function normalizeActionPath(action: unknown): string;
|
|
4
|
+
declare function formHasSubmitButton(form: HTMLFormElement): boolean;
|
|
5
|
+
declare function isSpecialSettingsForm(form: HTMLFormElement, specialActionPatterns?: RegExp[]): boolean;
|
|
6
|
+
declare function ownerFormIdOf(node: Element | null): string;
|
|
7
|
+
declare function isInsidePrimaryForm(node: Element | null, primaryFormIds: string[]): boolean;
|
|
8
|
+
declare function isTrackedField(node: Element | null, primaryFormIds: string[]): boolean;
|
|
9
|
+
declare function serializeFieldValue(field: TrackedField): string;
|
|
10
|
+
declare function collectTrackedFields(root: HTMLElement, primaryFormIds: string[]): TrackedField[];
|
|
11
|
+
export { collectTrackedFields, formHasSubmitButton, isInsidePrimaryForm, isSpecialSettingsForm, isTrackedField, normalizeActionPath, normalizedPrimaryFormIds, ownerFormIdOf, serializeFieldValue, };
|
|
12
|
+
export type { TrackedField };
|
|
13
|
+
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/settings/save-policy/fields.ts"],"names":[],"mappings":"AAEA,KAAK,YAAY,GACjB,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAE3D,iBAAS,wBAAwB,CAAC,MAAM,EAAE,OAAO,YAIhD;AAED,iBAAS,mBAAmB,CAAC,MAAM,EAAE,OAAO,UAQ3C;AAED,iBAAS,mBAAmB,CAAC,IAAI,EAAE,eAAe,WAWjD;AAED,iBAAS,qBAAqB,CAC5B,IAAI,EAAE,eAAe,EACrB,qBAAqB,GAAE,MAAM,EAAO,WASrC;AAED,iBAAS,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,UAoB1C;AAED,iBAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAG1E;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAUrE;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,YAAY,UAmB/C;AAED,iBAAS,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,kBAYxE;AAED,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,aAAa,EACb,mBAAmB,GACpB,CAAC;AACF,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { cssEscape } from "../../../dom/index.js";
|
|
2
|
+
function normalizedPrimaryFormIds(values) {
|
|
3
|
+
return Array.isArray(values)
|
|
4
|
+
? values.map((value) => String(value || "").trim()).filter(Boolean)
|
|
5
|
+
: [];
|
|
6
|
+
}
|
|
7
|
+
function normalizeActionPath(action) {
|
|
8
|
+
const raw = typeof action === "string" ? action.trim() : "";
|
|
9
|
+
if (!raw)
|
|
10
|
+
return "";
|
|
11
|
+
try {
|
|
12
|
+
return new URL(raw, window.location.href).pathname;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return raw;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function formHasSubmitButton(form) {
|
|
19
|
+
if (form.querySelector("button[type='submit'], input[type='submit']")) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
const formId = String(form.id || "").trim();
|
|
23
|
+
if (!formId)
|
|
24
|
+
return false;
|
|
25
|
+
return Boolean(document.querySelector(`button[form="${cssEscape(formId)}"], input[type='submit'][form="${cssEscape(formId)}"]`));
|
|
26
|
+
}
|
|
27
|
+
function isSpecialSettingsForm(form, specialActionPatterns = []) {
|
|
28
|
+
if (form.getAttribute("data-tbf-save-policy-special") === "true") {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
const actionPath = normalizeActionPath(form.getAttribute("action") || form.action || "");
|
|
32
|
+
return specialActionPatterns.some((pattern) => pattern.test(actionPath));
|
|
33
|
+
}
|
|
34
|
+
function ownerFormIdOf(node) {
|
|
35
|
+
const field = node instanceof HTMLInputElement ||
|
|
36
|
+
node instanceof HTMLSelectElement ||
|
|
37
|
+
node instanceof HTMLTextAreaElement
|
|
38
|
+
? node
|
|
39
|
+
: null;
|
|
40
|
+
if (field) {
|
|
41
|
+
return String(field.form?.id ||
|
|
42
|
+
field.getAttribute("form") ||
|
|
43
|
+
field.closest("form")?.id ||
|
|
44
|
+
"").trim();
|
|
45
|
+
}
|
|
46
|
+
const form = node instanceof HTMLFormElement
|
|
47
|
+
? node
|
|
48
|
+
: node?.closest("form") || null;
|
|
49
|
+
return String(form?.id || "").trim();
|
|
50
|
+
}
|
|
51
|
+
function isInsidePrimaryForm(node, primaryFormIds) {
|
|
52
|
+
const ownerFormId = ownerFormIdOf(node);
|
|
53
|
+
return Boolean(ownerFormId && primaryFormIds.includes(ownerFormId));
|
|
54
|
+
}
|
|
55
|
+
function isTrackedField(node, primaryFormIds) {
|
|
56
|
+
const field = node instanceof HTMLInputElement ||
|
|
57
|
+
node instanceof HTMLSelectElement ||
|
|
58
|
+
node instanceof HTMLTextAreaElement
|
|
59
|
+
? node
|
|
60
|
+
: null;
|
|
61
|
+
return Boolean(field && !field.disabled && isInsidePrimaryForm(field, primaryFormIds));
|
|
62
|
+
}
|
|
63
|
+
function serializeFieldValue(field) {
|
|
64
|
+
if (field instanceof HTMLInputElement) {
|
|
65
|
+
const type = String(field.type || "").trim().toLowerCase();
|
|
66
|
+
if (type === "checkbox" || type === "radio") {
|
|
67
|
+
return field.checked ? "1" : "0";
|
|
68
|
+
}
|
|
69
|
+
if (type === "file") {
|
|
70
|
+
return Array.from(field.files || [])
|
|
71
|
+
.map((file) => String(file.name || ""))
|
|
72
|
+
.join("\u0001");
|
|
73
|
+
}
|
|
74
|
+
return String(field.value || "");
|
|
75
|
+
}
|
|
76
|
+
if (field instanceof HTMLSelectElement && field.multiple) {
|
|
77
|
+
return Array.from(field.selectedOptions)
|
|
78
|
+
.map((option) => String(option.value || ""))
|
|
79
|
+
.join("\u0001");
|
|
80
|
+
}
|
|
81
|
+
return String(field.value || "");
|
|
82
|
+
}
|
|
83
|
+
function collectTrackedFields(root, primaryFormIds) {
|
|
84
|
+
const fields = [];
|
|
85
|
+
root.querySelectorAll("input,select,textarea").forEach((node) => {
|
|
86
|
+
if (node instanceof HTMLInputElement ||
|
|
87
|
+
node instanceof HTMLSelectElement ||
|
|
88
|
+
node instanceof HTMLTextAreaElement) {
|
|
89
|
+
if (isTrackedField(node, primaryFormIds))
|
|
90
|
+
fields.push(node);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
return fields;
|
|
94
|
+
}
|
|
95
|
+
export { collectTrackedFields, formHasSubmitButton, isInsidePrimaryForm, isSpecialSettingsForm, isTrackedField, normalizeActionPath, normalizedPrimaryFormIds, ownerFormIdOf, serializeFieldValue, };
|
|
96
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../src/settings/save-policy/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { DEFAULT_UNSAVED_FLASH_ID, defaultSavePolicyLabels, } from "./constants.js";
|
|
2
|
+
export { bindSavePolicyActionCompletion, bindSavePolicyNavigationCleanup, } from "./bindings.js";
|
|
3
|
+
export { destroyAllSavePolicies, enforceSavePolicy, resolveSavePolicy, } from "./controller.js";
|
|
4
|
+
export { collectTrackedFields, formHasSubmitButton, isInsidePrimaryForm, isSpecialSettingsForm, isTrackedField, normalizeActionPath, serializeFieldValue, } from "./fields.js";
|
|
5
|
+
export type { SavePolicyController, SavePolicyFlash, SavePolicyInput, SavePolicyLabels, SavePolicyLogger, } from "./types.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/settings/save-policy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { DEFAULT_UNSAVED_FLASH_ID, defaultSavePolicyLabels, } from "./constants.js";
|
|
2
|
+
export { bindSavePolicyActionCompletion, bindSavePolicyNavigationCleanup, } from "./bindings.js";
|
|
3
|
+
export { destroyAllSavePolicies, enforceSavePolicy, resolveSavePolicy, } from "./controller.js";
|
|
4
|
+
export { collectTrackedFields, formHasSubmitButton, isInsidePrimaryForm, isSpecialSettingsForm, isTrackedField, normalizeActionPath, serializeFieldValue, } from "./fields.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/settings/save-policy/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
type SavePolicyLabels = {
|
|
2
|
+
blockedFormDescription?: string;
|
|
3
|
+
blockedFormMessage?: string;
|
|
4
|
+
unsavedDescription?: string;
|
|
5
|
+
unsavedMessage?: string;
|
|
6
|
+
};
|
|
7
|
+
type SavePolicyLogger = {
|
|
8
|
+
info?: (scope: string, message: string, meta?: Record<string, unknown>) => void;
|
|
9
|
+
warn?: (scope: string, message: string, meta?: Record<string, unknown>) => void;
|
|
10
|
+
};
|
|
11
|
+
type SavePolicyFlash = {
|
|
12
|
+
error?: (message: unknown, description?: string) => unknown;
|
|
13
|
+
stickyWarn?: (message: unknown, description?: string, options?: Record<string, unknown>) => {
|
|
14
|
+
hide?: () => void;
|
|
15
|
+
} | null;
|
|
16
|
+
};
|
|
17
|
+
type SavePolicyController = {
|
|
18
|
+
beginSave: () => void;
|
|
19
|
+
completeSave: (saved?: boolean) => void;
|
|
20
|
+
destroy: () => void;
|
|
21
|
+
hasUnsavedChanges: () => boolean;
|
|
22
|
+
markSaved: () => void;
|
|
23
|
+
refresh: () => void;
|
|
24
|
+
root: HTMLElement | null;
|
|
25
|
+
};
|
|
26
|
+
type SavePolicyInput = {
|
|
27
|
+
actionCompleteEvent?: string;
|
|
28
|
+
channel?: string;
|
|
29
|
+
flash?: SavePolicyFlash;
|
|
30
|
+
labels?: SavePolicyLabels;
|
|
31
|
+
logger?: SavePolicyLogger;
|
|
32
|
+
primaryFormIds: string[];
|
|
33
|
+
root: Element | null;
|
|
34
|
+
specialActionPatterns?: RegExp[];
|
|
35
|
+
uploadChangeEvents?: string[];
|
|
36
|
+
};
|
|
37
|
+
type SavePolicyState = {
|
|
38
|
+
baseline: Map<Element, string>;
|
|
39
|
+
channel: string;
|
|
40
|
+
destroyed: boolean;
|
|
41
|
+
dirty: boolean;
|
|
42
|
+
flash: SavePolicyFlash;
|
|
43
|
+
labels: Required<SavePolicyLabels>;
|
|
44
|
+
logger?: SavePolicyLogger;
|
|
45
|
+
primaryFormIds: string[];
|
|
46
|
+
root: HTMLElement;
|
|
47
|
+
saving: boolean;
|
|
48
|
+
specialActionPatterns: RegExp[];
|
|
49
|
+
unsavedFlashHandle: {
|
|
50
|
+
hide?: () => void;
|
|
51
|
+
} | null;
|
|
52
|
+
uploadChangeEvents: string[];
|
|
53
|
+
};
|
|
54
|
+
export type { SavePolicyController, SavePolicyFlash, SavePolicyInput, SavePolicyLabels, SavePolicyLogger, SavePolicyState, };
|
|
55
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/settings/save-policy/types.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACjF,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5D,UAAU,CAAC,EAAE,CACX,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B;QAAE,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,kBAAkB,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/settings/save-policy/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Manager, Socket, connect, io as socketIo } from "socket.io-client";
|
|
2
|
+
type SocketIoFactory = typeof socketIo & {
|
|
3
|
+
Manager: typeof Manager;
|
|
4
|
+
Socket: typeof Socket;
|
|
5
|
+
connect: typeof connect;
|
|
6
|
+
io: typeof socketIo;
|
|
7
|
+
};
|
|
8
|
+
declare function withSocketTransportOptions(input?: Record<string, unknown>): {
|
|
9
|
+
[x: string]: unknown;
|
|
10
|
+
};
|
|
11
|
+
declare function io(uri?: string, options?: Record<string, unknown>): Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>;
|
|
12
|
+
declare function socketConnect(uri?: string, options?: Record<string, unknown>): Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>;
|
|
13
|
+
declare const socket: SocketIoFactory;
|
|
14
|
+
export { Manager, Socket, socketConnect as connect, socket, io, withSocketTransportOptions, };
|
|
15
|
+
export type { SocketIoFactory };
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,EAAE,IAAI,QAAQ,EACf,MAAM,kBAAkB,CAAC;AAE1B,KAAK,eAAe,GAAG,OAAO,QAAQ,GAAG;IACvC,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,EAAE,EAAE,OAAO,QAAQ,CAAC;CACrB,CAAC;AAEF,iBAAS,0BAA0B,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;;EAStE;AAED,iBAAS,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,4HAE1D;AAED,iBAAS,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,4HAErE;AAED,QAAA,MAAM,MAAM,EAKN,eAAe,CAAC;AAEtB,OAAO,EACL,OAAO,EACP,MAAM,EACN,aAAa,IAAI,OAAO,EACxB,MAAM,EACN,EAAE,EACF,0BAA0B,GAC3B,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Manager, Socket, connect, io as socketIo, } from "socket.io-client";
|
|
2
|
+
function withSocketTransportOptions(input = {}) {
|
|
3
|
+
const options = input && typeof input === "object" ? { ...input } : {};
|
|
4
|
+
if (Array.isArray(options.transports) && options.transports.length) {
|
|
5
|
+
return options;
|
|
6
|
+
}
|
|
7
|
+
return {
|
|
8
|
+
...options,
|
|
9
|
+
transports: ["polling", "websocket"],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function io(uri, options) {
|
|
13
|
+
return socketIo(uri, withSocketTransportOptions(options || {}));
|
|
14
|
+
}
|
|
15
|
+
function socketConnect(uri, options) {
|
|
16
|
+
return connect(uri, withSocketTransportOptions(options || {}));
|
|
17
|
+
}
|
|
18
|
+
const socket = Object.assign(io, socketIo, {
|
|
19
|
+
Manager,
|
|
20
|
+
Socket,
|
|
21
|
+
connect: socketConnect,
|
|
22
|
+
io,
|
|
23
|
+
});
|
|
24
|
+
export { Manager, Socket, socketConnect as connect, socket, io, withSocketTransportOptions, };
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/socket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,EAAE,IAAI,QAAQ,GACf,MAAM,kBAAkB,CAAC;AAS1B,SAAS,0BAA0B,CAAC,QAAiC,EAAE;IACrE,MAAM,OAAO,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACnE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO;QACL,GAAG,OAAO;QACV,UAAU,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,EAAE,CAAC,GAAY,EAAE,OAAiC;IACzD,OAAO,QAAQ,CAAC,GAAG,EAAE,0BAA0B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,GAAY,EAAE,OAAiC;IACpE,OAAO,OAAO,CAAC,GAAG,EAAE,0BAA0B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE;IACvC,OAAO;IACP,MAAM;IACN,OAAO,EAAE,aAAa;IACtB,EAAE;CACL,CAAoB,CAAC;AAEtB,OAAO,EACL,OAAO,EACP,MAAM,EACN,aAAa,IAAI,OAAO,EACxB,MAAM,EACN,EAAE,EACF,0BAA0B,GAC3B,CAAC"}
|