eco-vue-js 0.26.5 → 0.26.7
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/dist/components/Auth/utils/utils.d.ts +8 -7
- package/dist/components/Auth/utils/utils.d.ts.map +1 -1
- package/dist/components/Auth/utils/utils.js +28 -25
- package/dist/components/FieldWrapper/WFieldWrapper.vue.d.ts.map +1 -1
- package/dist/components/FieldWrapper/WFieldWrapper.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/FieldWrapper/components/FilterButton.vue.d.ts.map +1 -1
- package/dist/components/FieldWrapper/components/FilterButton.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/Input/WInput.vue.d.ts +1 -0
- package/dist/components/Input/WInput.vue.d.ts.map +1 -1
- package/dist/components/Input/WInput.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/Tabs/WTabs.vue.d.ts.map +1 -1
- package/dist/components/Tabs/WTabs.vue_vue_type_script_setup_true_lang.js +9 -1
- package/dist/components/Uniform/WUniform.vue.d.ts +1 -1
- package/dist/components/Uniform/WUniform.vue.d.ts.map +1 -1
- package/dist/components/Uniform/WUniform.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/Uniform/use/useUniformField.d.ts +1 -0
- package/dist/components/Uniform/use/useUniformField.d.ts.map +1 -1
- package/dist/components/Uniform/use/useUniformField.js +5 -1
- package/dist/components/Uniform/use/useUniformModel.d.ts +1 -1
- package/dist/components/Uniform/use/useUniformModel.d.ts.map +1 -1
- package/dist/components/Uniform/use/useUniformModel.js +6 -3
- package/dist/utils/ApiClient.d.ts +3 -0
- package/dist/utils/ApiClient.d.ts.map +1 -1
- package/dist/utils/ApiClient.js +10 -7
- package/docs/components/form.md +2 -2
- package/docs/llms.txt +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
1
|
+
export declare const EXPIRATION_DATE_KEY = "exp";
|
|
2
|
+
export declare function checkExpirationDate(key?: string): boolean | null;
|
|
3
|
+
export declare function updateExpirationDate(date: Date, key?: string): void;
|
|
4
|
+
export declare function setExpirationDate(key?: string): void;
|
|
5
|
+
export declare function removeExpirationDate(key?: string): void;
|
|
6
|
+
export declare function setRefreshTimestamp(key?: string): void;
|
|
7
|
+
export declare function removeRefreshTimestamp(key?: string): void;
|
|
8
|
+
export declare function getLastRefreshPromise(key?: string): Promise<void> | null;
|
|
8
9
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/Auth/utils/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/Auth/utils/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,QAAQ,CAAA;AA8BxC,wBAAgB,mBAAmB,CAAC,GAAG,SAAsB,GAAG,OAAO,GAAG,IAAI,CAM7E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,SAAsB,QAIzE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,SAAsB,QAM1D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,SAAsB,QAG7D;AAID,wBAAgB,mBAAmB,CAAC,GAAG,SAAsB,QAW5D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,SAAsB,GAAG,IAAI,CAEtE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,SAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAwBrF"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
//#region src/components/Auth/utils/utils.ts
|
|
2
|
-
var EXPIRATION_DATE_KEY = "exp";
|
|
3
1
|
var REFRESH_TIMESTAMP_KEY = "refresh-ts";
|
|
4
2
|
var REFRESH_BUFFER_TIMEOUT = 3e3;
|
|
5
3
|
var REFRESH_BUFFER_TICK = 1e3;
|
|
@@ -15,38 +13,43 @@ function deleteCookie(name) {
|
|
|
15
13
|
document.cookie = name + "=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;";
|
|
16
14
|
}
|
|
17
15
|
var EXP_FACTOR = 1e3;
|
|
18
|
-
function
|
|
19
|
-
|
|
16
|
+
function getRefreshTimestampKey(key) {
|
|
17
|
+
return key === "exp" ? REFRESH_TIMESTAMP_KEY : key + "-refresh-ts";
|
|
18
|
+
}
|
|
19
|
+
function checkExpirationDate(key = "exp") {
|
|
20
|
+
const exp = Number.parseFloat(getCookie(key));
|
|
20
21
|
if (!exp || !Number.isFinite(exp)) return null;
|
|
21
22
|
return exp > Date.now() / EXP_FACTOR;
|
|
22
23
|
}
|
|
23
|
-
function updateExpirationDate(date) {
|
|
24
|
+
function updateExpirationDate(date, key = "exp") {
|
|
24
25
|
const exp = (date.getTime() / EXP_FACTOR).toString();
|
|
25
|
-
setCookie(
|
|
26
|
-
localStorage.setItem(
|
|
26
|
+
setCookie(key, exp, date);
|
|
27
|
+
localStorage.setItem(key, exp);
|
|
27
28
|
}
|
|
28
|
-
function setExpirationDate() {
|
|
29
|
-
const exp = Number.parseFloat(getCookie(
|
|
29
|
+
function setExpirationDate(key = "exp") {
|
|
30
|
+
const exp = Number.parseFloat(getCookie(key));
|
|
30
31
|
if (!exp || !Number.isFinite(exp)) return;
|
|
31
|
-
localStorage.setItem(
|
|
32
|
+
localStorage.setItem(key, exp.toString());
|
|
32
33
|
}
|
|
33
|
-
function removeExpirationDate() {
|
|
34
|
-
localStorage.removeItem(
|
|
35
|
-
deleteCookie(
|
|
34
|
+
function removeExpirationDate(key = "exp") {
|
|
35
|
+
localStorage.removeItem(key);
|
|
36
|
+
deleteCookie(key);
|
|
36
37
|
}
|
|
37
|
-
var
|
|
38
|
-
function setRefreshTimestamp() {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
var refreshTimestampTimeouts = /* @__PURE__ */ new Map();
|
|
39
|
+
function setRefreshTimestamp(key = "exp") {
|
|
40
|
+
const refreshKey = getRefreshTimestampKey(key);
|
|
41
|
+
localStorage.setItem(refreshKey, (/* @__PURE__ */ new Date()).getTime().toString());
|
|
42
|
+
clearTimeout(refreshTimestampTimeouts.get(refreshKey));
|
|
43
|
+
refreshTimestampTimeouts.set(refreshKey, setTimeout(() => {
|
|
44
|
+
refreshTimestampTimeouts.delete(refreshKey);
|
|
45
|
+
localStorage.removeItem(refreshKey);
|
|
46
|
+
}, REFRESH_BUFFER_TIMEOUT));
|
|
44
47
|
}
|
|
45
|
-
function removeRefreshTimestamp() {
|
|
46
|
-
localStorage.removeItem(
|
|
48
|
+
function removeRefreshTimestamp(key = "exp") {
|
|
49
|
+
localStorage.removeItem(getRefreshTimestampKey(key));
|
|
47
50
|
}
|
|
48
|
-
function getLastRefreshPromise() {
|
|
49
|
-
const lastRefreshTimeStamp = Number.parseInt(localStorage.getItem(
|
|
51
|
+
function getLastRefreshPromise(key = "exp") {
|
|
52
|
+
const lastRefreshTimeStamp = Number.parseInt(localStorage.getItem(getRefreshTimestampKey(key)) ?? "");
|
|
50
53
|
if (!Number.isInteger(lastRefreshTimeStamp) || lastRefreshTimeStamp <= 0) return null;
|
|
51
54
|
const diff = (/* @__PURE__ */ new Date()).getTime() - lastRefreshTimeStamp;
|
|
52
55
|
if (diff <= 0 || diff > REFRESH_BUFFER_TIMEOUT) return null;
|
|
@@ -56,7 +59,7 @@ function getLastRefreshPromise() {
|
|
|
56
59
|
if (count < 1) {
|
|
57
60
|
clearInterval(interval);
|
|
58
61
|
reject(/* @__PURE__ */ new Error("Timed out"));
|
|
59
|
-
} else if (checkExpirationDate()) {
|
|
62
|
+
} else if (checkExpirationDate(key)) {
|
|
60
63
|
clearInterval(interval);
|
|
61
64
|
resolve();
|
|
62
65
|
} else count--;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WFieldWrapper.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/FieldWrapper/WFieldWrapper.vue"],"names":[],"mappings":"AAqLA;AAkUA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAE9C,OAAO,EAAkB,KAAK,KAAK,EAAuE,MAAM,KAAK,CAAA;AAerH,KAAK,WAAW,GAAG,iBAAiB,GAAG;IACnC,uJAAuJ;IACvJ,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAC;AAyGJ,KAAK,WAAW,GAAG;IACjB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,KAAK,EAAE,CAAA;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAA;IACvB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,KAAK,EAAE,CAAA;IACrB,qDAAqD;IACrD,MAAM,EAAE,MAAM,KAAK,EAAE,CAAA;IACrB,2JAA2J;IAC3J,KAAK,EAAE,CAAC,KAAK,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAC,KAAK,KAAK,EAAE,CAAA;IACpH,sGAAsG;IACtG,OAAO,EAAE,CAAC,KAAK,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAC,KAAK,KAAK,EAAE,CAAA;CACvH,CAAC;
|
|
1
|
+
{"version":3,"file":"WFieldWrapper.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/FieldWrapper/WFieldWrapper.vue"],"names":[],"mappings":"AAqLA;AAkUA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAA;AAE9C,OAAO,EAAkB,KAAK,KAAK,EAAuE,MAAM,KAAK,CAAA;AAerH,KAAK,WAAW,GAAG,iBAAiB,GAAG;IACnC,uJAAuJ;IACvJ,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAC;AAyGJ,KAAK,WAAW,GAAG;IACjB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,KAAK,EAAE,CAAA;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAA;IACvB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,KAAK,EAAE,CAAA;IACrB,qDAAqD;IACrD,MAAM,EAAE,MAAM,KAAK,EAAE,CAAA;IACrB,2JAA2J;IAC3J,KAAK,EAAE,CAAC,KAAK,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAC,KAAK,KAAK,EAAE,CAAA;IACpH,sGAAsG;IACtG,OAAO,EAAE,CAAC,KAAK,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAC,KAAK,KAAK,EAAE,CAAA;CACvH,CAAC;AA6XF,QAAA,MAAM,UAAU;sBAvdO,cAAc,GAAG,IAAI;yBA2BhB,MAAM,eAAc,MAAM;;;;;;;;;;;6EAicpD,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -128,7 +128,7 @@ var WFieldWrapper_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
128
128
|
showMessage
|
|
129
129
|
});
|
|
130
130
|
return (_ctx, _cache) => {
|
|
131
|
-
return openBlock(), createElementBlock("div", mergeProps({ class: "relative" }, __props.allowDropFile ? {
|
|
131
|
+
return openBlock(), createElementBlock("div", mergeProps({ class: "relative group/field" }, __props.allowDropFile ? {
|
|
132
132
|
style: _ctx.$attrs.style,
|
|
133
133
|
onDragover,
|
|
134
134
|
onDragleave,
|
|
@@ -167,7 +167,7 @@ var WFieldWrapper_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
167
167
|
createElementVNode("div", {
|
|
168
168
|
ref: "field",
|
|
169
169
|
class: normalizeClass(["grid", {
|
|
170
|
-
"pr-
|
|
170
|
+
"pr-7": !__props.title && !_ctx.$slots.title && __props.filterField,
|
|
171
171
|
"col-start-2 -col-end-1 row-start-1 -row-end-3 grid-cols-subgrid": __props.subgrid,
|
|
172
172
|
"grid-cols-[1fr_auto]": !__props.subgrid,
|
|
173
173
|
"px-[max(0px,calc(--spacing(3)-var(--w-frame-padding,0px)))]": __props.embedded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterButton.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/FieldWrapper/components/FilterButton.vue"],"names":[],"mappings":"AAoBA;AAiCA,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterButton.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/FieldWrapper/components/FilterButton.vue"],"names":[],"mappings":"AAoBA;AAiCA,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC;AAmEF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
package/dist/components/FieldWrapper/components/FilterButton.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -18,7 +18,7 @@ var FilterButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
18
18
|
return __props.skeleton || !__props.encodedQueryParam ? (openBlock(), createElementBlock("div", _hoisted_1)) : (openBlock(), createElementBlock("button", {
|
|
19
19
|
key: 1,
|
|
20
20
|
class: normalizeClass(["w-ripple w-ripple-hover rounded p-[0.125em]", {
|
|
21
|
-
"text-description": _ctx.$route.query[__props.filterField] !== __props.encodedQueryParam,
|
|
21
|
+
"text-description opacity-0 group-hover/field:opacity-100": _ctx.$route.query[__props.filterField] !== __props.encodedQueryParam,
|
|
22
22
|
"tone-primary surface-fill": _ctx.$route.query[__props.filterField] === __props.encodedQueryParam
|
|
23
23
|
}]),
|
|
24
24
|
"aria-pressed": _ctx.$route.query[__props.filterField] === __props.encodedQueryParam,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WInput.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/WInput.vue"],"names":[],"mappings":"AA0XA;
|
|
1
|
+
{"version":3,"file":"WInput.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/WInput.vue"],"names":[],"mappings":"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"}
|
|
@@ -432,7 +432,8 @@ var WInput_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
|
|
|
432
432
|
scrollToInput,
|
|
433
433
|
undo,
|
|
434
434
|
redo,
|
|
435
|
-
showMessage
|
|
435
|
+
showMessage,
|
|
436
|
+
cancel: asyncState.cancel
|
|
436
437
|
});
|
|
437
438
|
return (_ctx, _cache) => {
|
|
438
439
|
return openBlock(), createBlock(WFieldWrapper_default, mergeProps({ ref: "fieldWrapper" }, props, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WTabs.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Tabs/WTabs.vue"],"names":[],"mappings":"AA+KA;
|
|
1
|
+
{"version":3,"file":"WTabs.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Tabs/WTabs.vue"],"names":[],"mappings":"AA+KA;AAilBA,OAAO,KAAK,EAAgB,SAAS,EAAC,MAAM,SAAS,CAAA;AAErD,OAAO,EAA0D,KAAK,KAAK,EAAqH,MAAM,KAAK,CAAA;AAmD3M,KAAK,WAAW,GAAG;IACjB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,KAAK,EAAE,CAAA;CACvB,CAAC;AAsyBF,QAAA,MAAM,UAAU;2BAprBc,MAAM;yBAIR,MAAM;gCAyFG,OAAO,CAAC,IAAI,CAAC;oBAM7B,IAAI;iBAIL,MAAM,UAAU,OAAO;;;;;;;;;;;;;;;;;;;;;kFAilBzC,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { debounce, getHasScrollbar, getPropValue, throttle, unwrapSlots } from "../../utils/utils.js";
|
|
1
|
+
import { debounce, getHasScrollbar, getPropValue, getScrollParent, throttle, unwrapSlots } from "../../utils/utils.js";
|
|
2
2
|
import { useIsMobile } from "../../utils/mobile.js";
|
|
3
3
|
import { wTabItemListener, wTabItemUnlistener } from "./models/injection.js";
|
|
4
4
|
import { Notify } from "../../utils/Notify.js";
|
|
@@ -157,8 +157,16 @@ var WTabs_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
157
157
|
timeout = null;
|
|
158
158
|
}, 300);
|
|
159
159
|
};
|
|
160
|
+
const resetHorizontalScroll = () => {
|
|
161
|
+
const parent = containerRef.value && (getScrollParent(containerRef.value) ?? document.scrollingElement);
|
|
162
|
+
if (parent?.scrollLeft) parent.scrollTo({
|
|
163
|
+
left: 0,
|
|
164
|
+
behavior: "instant"
|
|
165
|
+
});
|
|
166
|
+
};
|
|
160
167
|
const setCurrent = (value) => {
|
|
161
168
|
if (current.value === value || !defaultSlotsKeys.value.includes(value)) return;
|
|
169
|
+
resetHorizontalScroll();
|
|
162
170
|
isDirect.value = defaultSlotsKeys.value.indexOf(current.value) < defaultSlotsKeys.value.indexOf(value);
|
|
163
171
|
current.value = value;
|
|
164
172
|
scrollToTabContent();
|
|
@@ -44,7 +44,7 @@ declare const __VLS_export: <Model, QueryParams, Field extends keyof NonNullable
|
|
|
44
44
|
initHasError?: boolean;
|
|
45
45
|
/** Never reports unsaved changes. */
|
|
46
46
|
noChanges?: boolean;
|
|
47
|
-
/** Returns the props of a confirm modal to show before a change is applied. The change is dropped on cancel; returning nothing applies it at once. */
|
|
47
|
+
/** Returns the props of a confirm modal to show before a change is applied. The change is dropped on cancel, along with the field's unsaved draft; returning nothing applies it at once. */
|
|
48
48
|
confimGetter?: (payload: ResultModel, data: Model) => ConfirmProps | Promise<ConfirmProps | undefined> | undefined;
|
|
49
49
|
} & ({
|
|
50
50
|
useQueryFn?: never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WUniform.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Uniform/WUniform.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WUniform.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/Uniform/WUniform.vue"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ var WUniform_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
79
79
|
if (partial) scopeModel.initFields(result, payload);
|
|
80
80
|
else scopeModel.initModel(result ?? payload);
|
|
81
81
|
}, (message, onlyChanged, fields) => scope?.showMessage(message, onlyChanged, fields), () => props.noInit, () => props.async, () => props.fullPayload) : void 0;
|
|
82
|
-
const scopeModel = useUniformModel(toRef(props, "modelValue"), toRef(props, "modelValueInit"), computed(() => props.field), props.useQueryFn, props.noParams ? void 0 : toRef(() => props.queryParams), props.initData, props.confimGetter, () => props.async, (value, fields) => emit("update:model-value", value, fields), () => void scopeSubmit?.submit(), () => emit("init-model"), slots.field ? (value) => scopeField?.validateFieldOnUpdate(value) : void 0);
|
|
82
|
+
const scopeModel = useUniformModel(toRef(props, "modelValue"), toRef(props, "modelValueInit"), computed(() => props.field), props.useQueryFn, props.noParams ? void 0 : toRef(() => props.queryParams), props.initData, props.confimGetter, () => props.async, (value, fields) => emit("update:model-value", value, fields), () => void scopeSubmit?.submit(), () => emit("init-model"), slots.field ? (value) => scopeField?.validateFieldOnUpdate(value) : void 0, slots.field ? () => scopeField?.cancelField() : void 0);
|
|
83
83
|
const scopeField = slots.field ? useUniformField(scopeModel.modelValue, scopeModel.modelValueInit, () => props.field, () => props.title, toRef(() => props.required), toRef(() => props.mandatory), props.validate, props.noChanges) : void 0;
|
|
84
84
|
const scopeForm = slots.default ? useUniformForm(() => props.field, () => props.title) : void 0;
|
|
85
85
|
const scope = scopeField ?? scopeForm;
|
|
@@ -14,6 +14,7 @@ export declare const useUniformField: <Model>(modelValue: Ref<Model>, modelValue
|
|
|
14
14
|
getInvalidatePayload: () => InvalidatePayload | undefined;
|
|
15
15
|
showMessage: (message: string, onlyChanged?: boolean) => void;
|
|
16
16
|
getFieldChanged: (field: string) => boolean;
|
|
17
|
+
cancelField: () => void;
|
|
17
18
|
};
|
|
18
19
|
export {};
|
|
19
20
|
//# sourceMappingURL=useUniformField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUniformField.d.ts","sourceRoot":"","sources":["../../../../../src/components/Uniform/use/useUniformField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAE,eAAe,EAAC,MAAM,UAAU,CAAA;AAEhE,OAAO,EAAC,KAAK,GAAG,EAA0B,MAAM,KAAK,CAAA;AAQrD,KAAK,cAAc,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,GAAG,SAAS,CAAA;AAEjE,eAAO,MAAM,eAAe,GAAI,KAAK,EACnC,YAAY,GAAG,CAAC,KAAK,CAAC,EACtB,gBAAgB,GAAG,CAAC,KAAK,CAAC,EAC1B,aAAa,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,EACvD,aAAa,MAAM,MAAM,GAAG,SAAS,EACrC,UAAU,GAAG,CAAC,OAAO,CAAC,EACtB,WAAW,GAAG,CAAC,OAAO,CAAC,EACvB,cAAc,cAAc,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,EACzE,WAAW,OAAO;yBAQU,iBAAiB,CAAC,OAAO,CAAC;;;;;;sCA2Db,KAAK,KAAG,IAAI;;2BA6BvB,iBAAiB,KAAG,IAAI;gCAYrB,iBAAiB,GAAG,SAAS;2BAK3B,MAAM,gBAAgB,OAAO;
|
|
1
|
+
{"version":3,"file":"useUniformField.d.ts","sourceRoot":"","sources":["../../../../../src/components/Uniform/use/useUniformField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAE,eAAe,EAAC,MAAM,UAAU,CAAA;AAEhE,OAAO,EAAC,KAAK,GAAG,EAA0B,MAAM,KAAK,CAAA;AAQrD,KAAK,cAAc,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,GAAG,SAAS,CAAA;AAEjE,eAAO,MAAM,eAAe,GAAI,KAAK,EACnC,YAAY,GAAG,CAAC,KAAK,CAAC,EACtB,gBAAgB,GAAG,CAAC,KAAK,CAAC,EAC1B,aAAa,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,EACvD,aAAa,MAAM,MAAM,GAAG,SAAS,EACrC,UAAU,GAAG,CAAC,OAAO,CAAC,EACtB,WAAW,GAAG,CAAC,OAAO,CAAC,EACvB,cAAc,cAAc,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,GAAG,SAAS,EACzE,WAAW,OAAO;yBAQU,iBAAiB,CAAC,OAAO,CAAC;;;;;;sCA2Db,KAAK,KAAG,IAAI;;2BA6BvB,iBAAiB,KAAG,IAAI;gCAYrB,iBAAiB,GAAG,SAAS;2BAK3B,MAAM,gBAAgB,OAAO;6BAUhC,MAAM,KAAG,OAAO;uBANxB,IAAI;CA0B7B,CAAA"}
|
|
@@ -80,6 +80,9 @@ var useUniformField = (modelValue, modelValueInit, fieldGetter, titleGetter, req
|
|
|
80
80
|
const showMessageField = (message, onlyChanged) => {
|
|
81
81
|
if (!onlyChanged || hasChanges?.value) showMessage(message);
|
|
82
82
|
};
|
|
83
|
+
const cancelField = () => {
|
|
84
|
+
for (const instance of Array.isArray(fieldRef.value) ? fieldRef.value : [fieldRef.value]) if (instance && "cancel" in instance && typeof instance.cancel === "function") instance.cancel();
|
|
85
|
+
};
|
|
83
86
|
const getFieldChanged = (field) => {
|
|
84
87
|
if (fieldGetter() === field) return hasChanges?.value ?? false;
|
|
85
88
|
return false;
|
|
@@ -96,7 +99,8 @@ var useUniformField = (modelValue, modelValueInit, fieldGetter, titleGetter, req
|
|
|
96
99
|
invalidate,
|
|
97
100
|
getInvalidatePayload,
|
|
98
101
|
showMessage: showMessageField,
|
|
99
|
-
getFieldChanged
|
|
102
|
+
getFieldChanged,
|
|
103
|
+
cancelField
|
|
100
104
|
};
|
|
101
105
|
};
|
|
102
106
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Ref } from 'vue';
|
|
2
|
-
export declare const useUniformModel: <ParentModel, Field extends keyof NonNullable<ParentModel>, InnerModel, QueryParams, ResultModel>(parentModel: Ref<ParentModel>, parentModelInit: Ref<ParentModel>, field: Ref<Field | undefined>, useQueryFn: UseQueryDefault<InnerModel, QueryParams> | undefined, queryParams: Ref<QueryParams | undefined> | undefined, initFn: ((value: InnerModel) => ResultModel) | undefined, confimGetter: ((payload: ResultModel, data: ParentModel) => ConfirmProps | Promise<ConfirmProps | undefined> | undefined) | undefined, asyncGetter: () => boolean, emitModelValue: (value: ResultModel, fields: (string | number)[]) => void, submit: () => void, emitInitModel: () => void, validateOnUpdate: ((newValue: ResultModel) => void) | undefined) => {
|
|
2
|
+
export declare const useUniformModel: <ParentModel, Field extends keyof NonNullable<ParentModel>, InnerModel, QueryParams, ResultModel>(parentModel: Ref<ParentModel>, parentModelInit: Ref<ParentModel>, field: Ref<Field | undefined>, useQueryFn: UseQueryDefault<InnerModel, QueryParams> | undefined, queryParams: Ref<QueryParams | undefined> | undefined, initFn: ((value: InnerModel) => ResultModel) | undefined, confimGetter: ((payload: ResultModel, data: ParentModel) => ConfirmProps | Promise<ConfirmProps | undefined> | undefined) | undefined, asyncGetter: () => boolean, emitModelValue: (value: ResultModel, fields: (string | number)[]) => void, submit: () => void, emitInitModel: () => void, validateOnUpdate: ((newValue: ResultModel) => void) | undefined, onConfirmCancel: (() => void) | undefined) => {
|
|
3
3
|
modelValue: Ref<ResultModel, ResultModel>;
|
|
4
4
|
modelValueInit: Ref<ParentModel, ParentModel> | ([ResultModel] extends [Ref<any, any>] ? import('@vue/shared').IfAny<ResultModel, Ref<ResultModel, ResultModel>, ResultModel> : Ref<import('vue').UnwrapRef<ResultModel>, ResultModel | import('vue').UnwrapRef<ResultModel>>) | import('vue').ComputedRef<NonNullable<ParentModel>[keyof ParentModel] | undefined>;
|
|
5
5
|
modelValueList: import('vue').ComputedRef<Record<string, ResultModel extends unknown[] ? ResultModel[number] : never>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUniformModel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Uniform/use/useUniformModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,GAAG,EAAyD,MAAM,KAAK,CAAA;AAmDpF,eAAO,MAAM,eAAe,GAAI,WAAW,EAAE,KAAK,SAAS,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAC7H,aAAa,GAAG,CAAC,WAAW,CAAC,EAC7B,iBAAiB,GAAG,CAAC,WAAW,CAAC,EACjC,OAAO,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,EAC7B,YAAY,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,SAAS,EAChE,aAAa,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,SAAS,EACrD,QAAQ,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,WAAW,CAAC,GAAG,SAAS,EACxD,cAAc,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,EACrI,aAAa,MAAM,OAAO,EAC1B,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,EACzE,QAAQ,MAAM,IAAI,EAClB,eAAe,MAAM,IAAI,EACzB,kBAAkB,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS;;;;;;
|
|
1
|
+
{"version":3,"file":"useUniformModel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Uniform/use/useUniformModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,GAAG,EAAyD,MAAM,KAAK,CAAA;AAmDpF,eAAO,MAAM,eAAe,GAAI,WAAW,EAAE,KAAK,SAAS,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAC7H,aAAa,GAAG,CAAC,WAAW,CAAC,EAC7B,iBAAiB,GAAG,CAAC,WAAW,CAAC,EACjC,OAAO,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,EAC7B,YAAY,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,SAAS,EAChE,aAAa,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,SAAS,EACrD,QAAQ,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,WAAW,CAAC,GAAG,SAAS,EACxD,cAAc,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,KAAK,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,EACrI,aAAa,MAAM,OAAO,EAC1B,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,EACzE,QAAQ,MAAM,IAAI,EAClB,eAAe,MAAM,IAAI,EACzB,kBAAkB,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,EAC/D,iBAAiB,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;;;;;;wBA2Ed,UAAU;wBAsBV,UAAU,GAAG,SAAS,WAAW,OAAO,CAAC,WAAW,CAAC;uBAgDtD,WAAW,SAAS,OAAO,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,KAAG,IAAI;yBAMhE,WAAW,SAAS,OAAO,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,KAAG,IAAI;iCAQ1D,WAAW,GAAG,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC;sCAIlC,WAAW,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;CAsClF,CAAA"}
|
|
@@ -29,7 +29,7 @@ var keepChanges = (next, current, init) => {
|
|
|
29
29
|
}
|
|
30
30
|
return current;
|
|
31
31
|
};
|
|
32
|
-
var useUniformModel = (parentModel, parentModelInit, field, useQueryFn, queryParams, initFn, confimGetter, asyncGetter, emitModelValue, submit, emitInitModel, validateOnUpdate) => {
|
|
32
|
+
var useUniformModel = (parentModel, parentModelInit, field, useQueryFn, queryParams, initFn, confimGetter, asyncGetter, emitModelValue, submit, emitInitModel, validateOnUpdate, onConfirmCancel) => {
|
|
33
33
|
const query = useQueryFn ? useQueryFn(queryParams, { enabled: computed(() => !parentModel.value) }) : void 0;
|
|
34
34
|
const getParentValue = () => field.value !== void 0 ? parentModel.value?.[field.value] : parentModel.value;
|
|
35
35
|
const innerModel = query ? computed(() => getParentValue() ?? query.data.value) : computed(getParentValue);
|
|
@@ -111,10 +111,13 @@ var useUniformModel = (parentModel, parentModelInit, field, useQueryFn, queryPar
|
|
|
111
111
|
let confirmProps = confimGetter?.(value, parentModel.value);
|
|
112
112
|
if (confirmProps instanceof Promise) confirmProps = await confirmProps;
|
|
113
113
|
if (!confirmProps) return emitValue(value);
|
|
114
|
-
return new Promise((resolve
|
|
114
|
+
return new Promise((resolve) => {
|
|
115
115
|
closeModal = Modal.addConfirm({
|
|
116
116
|
...confirmProps,
|
|
117
|
-
onCancel:
|
|
117
|
+
onCancel: () => {
|
|
118
|
+
onConfirmCancel?.();
|
|
119
|
+
resolve();
|
|
120
|
+
},
|
|
118
121
|
onAccept: () => resolve(emitValue(value))
|
|
119
122
|
}, () => closeModal = null);
|
|
120
123
|
});
|
|
@@ -28,7 +28,10 @@ export declare class ApiClientInstance implements ApiClient {
|
|
|
28
28
|
credentials?: RequestCredentials;
|
|
29
29
|
baseUrl?: BaseUrl;
|
|
30
30
|
noRecheck?: boolean;
|
|
31
|
+
/** Cookie holding when to refresh the session, in epoch seconds. Defaults to `exp` */
|
|
32
|
+
expirationCookie?: string;
|
|
31
33
|
});
|
|
34
|
+
private get expirationCookie();
|
|
32
35
|
setOnFailure(value: (response: Response) => void): void;
|
|
33
36
|
logout(): void;
|
|
34
37
|
private retry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../../src/utils/ApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAC,KAAK,GAAG,EAAM,MAAM,KAAK,CAAA;AAMjC,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAA;AAElE,eAAO,MAAM,YAAY,GAAI,QAAQ,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,KAAG,MAE9E,CAAA;AAYD,MAAM,WAAW,MAAM;CAAG;AAE1B,KAAK,MAAM,GAAG,MAAM,SAAS;IAAC,MAAM,EAAE,MAAM,KAAK,CAAA;CAAC,GAAG,KAAK,GAAG,IAAK,MAAO,GAAG,CAAA;AAC5E,KAAK,OAAO,GAAG,IAAK,MAAO,EAAE,GAAG,UAAW,MAAO,EAAE,GAAG,WAAY,MAAO,EAAE,CAAA;AAE5E,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IAEf,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAErG,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE7K,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAE9K,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;CACzG;AAED,qBAAa,iBAAkB,YAAW,SAAS;IAKrC,OAAO,CAAC,MAAM;IAJ1B,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAO;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,SAAgB,OAAO,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;gBAEvB,MAAM,EAAE;QAC1B,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;QACjC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;QAClC,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;QACxC,WAAW,CAAC,EAAE,kBAAkB,CAAA;QAChC,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,SAAS,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../../src/utils/ApiClient.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/ApiClient.js
CHANGED
|
@@ -26,11 +26,14 @@ var ApiClientInstance = class {
|
|
|
26
26
|
return this.auth;
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
+
get expirationCookie() {
|
|
30
|
+
return this.config.expirationCookie ?? "exp";
|
|
31
|
+
}
|
|
29
32
|
setOnFailure(value) {
|
|
30
33
|
this.config.onFailure = value;
|
|
31
34
|
}
|
|
32
35
|
logout() {
|
|
33
|
-
removeExpirationDate();
|
|
36
|
+
removeExpirationDate(this.expirationCookie);
|
|
34
37
|
this.auth.value = false;
|
|
35
38
|
}
|
|
36
39
|
async retry(request) {
|
|
@@ -45,7 +48,7 @@ var ApiClientInstance = class {
|
|
|
45
48
|
}
|
|
46
49
|
async refresh() {
|
|
47
50
|
if (!this.refreshPromise) {
|
|
48
|
-
const refreshTimeoutPromise = getLastRefreshPromise();
|
|
51
|
+
const refreshTimeoutPromise = getLastRefreshPromise(this.expirationCookie);
|
|
49
52
|
if (refreshTimeoutPromise) this.refreshPromise = refreshTimeoutPromise.then(() => {
|
|
50
53
|
this.refreshPromise = null;
|
|
51
54
|
this.auth.value = true;
|
|
@@ -62,7 +65,7 @@ var ApiClientInstance = class {
|
|
|
62
65
|
}
|
|
63
66
|
});
|
|
64
67
|
else {
|
|
65
|
-
setRefreshTimestamp();
|
|
68
|
+
setRefreshTimestamp(this.expirationCookie);
|
|
66
69
|
const promise = this.config.tokenRefresh ? this.config.tokenRefresh() : this.fetch("GET", this.config.refreshUrl, { updateToken: true });
|
|
67
70
|
this.refreshPromise = promise.then(() => {
|
|
68
71
|
this.refreshPromise = null;
|
|
@@ -71,7 +74,7 @@ var ApiClientInstance = class {
|
|
|
71
74
|
this.refreshPromise = null;
|
|
72
75
|
this.auth.value = false;
|
|
73
76
|
return Promise.reject(error);
|
|
74
|
-
}).finally(removeRefreshTimestamp);
|
|
77
|
+
}).finally(() => removeRefreshTimestamp(this.expirationCookie));
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
80
|
return this.refreshPromise;
|
|
@@ -79,9 +82,9 @@ var ApiClientInstance = class {
|
|
|
79
82
|
checkAuth() {
|
|
80
83
|
let result;
|
|
81
84
|
if (this.config.tokenGetter) result = !!this.config.tokenGetter?.();
|
|
82
|
-
else result = checkExpirationDate();
|
|
85
|
+
else result = checkExpirationDate(this.expirationCookie);
|
|
83
86
|
if (result !== false) this.auth.value = result !== null;
|
|
84
|
-
if (result === null) removeExpirationDate();
|
|
87
|
+
if (result === null) removeExpirationDate(this.expirationCookie);
|
|
85
88
|
return result;
|
|
86
89
|
}
|
|
87
90
|
fetch(method, url, config, baseUrl) {
|
|
@@ -151,7 +154,7 @@ var ApiClientInstance = class {
|
|
|
151
154
|
}));
|
|
152
155
|
else reject(error);
|
|
153
156
|
}).finally(() => {
|
|
154
|
-
if (config?.updateToken) setExpirationDate();
|
|
157
|
+
if (config?.updateToken) setExpirationDate(this.expirationCookie);
|
|
155
158
|
});
|
|
156
159
|
});
|
|
157
160
|
}
|
package/docs/components/form.md
CHANGED
|
@@ -130,7 +130,7 @@ A form in a modal usually has its buttons in the modal's `actions` slot, outside
|
|
|
130
130
|
|
|
131
131
|
## Auto-save
|
|
132
132
|
|
|
133
|
-
`async` saves every change right away, one field at a time. The changed field shows a spinner while it is saved, and the rest of the form stays editable. `confimGetter` asks before a change is applied — the change is dropped
|
|
133
|
+
`async` saves every change right away, one field at a time. The changed field shows a spinner while it is saved, and the rest of the form stays editable. `confimGetter` asks before a change is applied — on cancel the change is dropped and the field shows the saved value again.
|
|
134
134
|
|
|
135
135
|
Only the changed fields are validated and sent. An invalid one shows its error at once and keeps its value without being saved, and changes to other fields are still saved. The value is sent once it is fixed. A change made while a save is in progress is sent when that save ends. When `apiMethod` returns nothing, the sent values become the initial ones for their fields. Fields that weren't sent keep their unsaved changes. `fullPayload` sends the whole model instead and waits until every field is valid.
|
|
136
136
|
|
|
@@ -364,7 +364,7 @@ import WUniform from 'eco-vue-js/dist/components/Uniform/WUniform.vue'
|
|
|
364
364
|
| `initHasValue` | `boolean \| null` | — | Overrides the `hasValue` state reported to the parent, e.g. while the fields are not mounted. |
|
|
365
365
|
| `initHasError` | `boolean` | — | Overrides the error state reported to the parent, e.g. while the fields are not mounted. |
|
|
366
366
|
| `noChanges` | `boolean` | — | Never reports unsaved changes. |
|
|
367
|
-
| `confimGetter` | `((payload: ResultModel, data: Model) => ConfirmProps \| Promise<ConfirmProps \| undefined> \| undefined)` | — | Returns the props of a confirm modal to show before a change is applied. The change is dropped on cancel; returning nothing applies it at once. |
|
|
367
|
+
| `confimGetter` | `((payload: ResultModel, data: Model) => ConfirmProps \| Promise<ConfirmProps \| undefined> \| undefined)` | — | Returns the props of a confirm modal to show before a change is applied. The change is dropped on cancel, along with the field's unsaved draft; returning nothing applies it at once. |
|
|
368
368
|
| `useQueryFn` | `UseQueryDefault<InnerModel, QueryParams> \| UseQueryDefault<InnerModel, undefined>` | — | Query that loads the model when `modelValue` is not given. The form shows skeletons until it loads. |
|
|
369
369
|
| `queryParams` | `QueryParams` | — | Params of `useQueryFn`. |
|
|
370
370
|
| `noParams` | `true` | — | `useQueryFn` takes no params. |
|
package/docs/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# eco-vue-js
|
|
2
2
|
|
|
3
|
-
> Vue 3 UI kit with Tailwind v4 — components, utilities, icons and recipes. These are the docs of version 0.26.
|
|
3
|
+
> Vue 3 UI kit with Tailwind v4 — components, utilities, icons and recipes. These are the docs of version 0.26.7, the one installed next to them. Start with Getting started and Conventions; each component page lists its props, events and slots with examples.
|
|
4
4
|
|
|
5
5
|
Release notes, for what changed between versions: https://github.com/rsmple/eco-vue-js/releases. The docs site, with live demos: https://rsmple.github.io/eco-vue-js/
|
|
6
6
|
|