quasar-ui-danx 0.4.14 → 0.4.16
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/danx.es.js +778 -773
- package/dist/danx.es.js.map +1 -1
- package/dist/danx.umd.js +38 -38
- package/dist/danx.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/helpers/actions.ts +21 -1
- package/src/helpers/formats.ts +1 -1
- package/src/helpers/objectStore.ts +6 -4
package/package.json
CHANGED
package/src/helpers/actions.ts
CHANGED
@@ -14,6 +14,25 @@ export const activeActionVnode: Ref = shallowRef(null);
|
|
14
14
|
export function useActions(actions: ActionOptions[], globalOptions: Partial<ActionOptions> | null = null) {
|
15
15
|
const namespace = uid();
|
16
16
|
|
17
|
+
/**
|
18
|
+
* Extend an action so the base action can be modified without affecting other places the action is used.
|
19
|
+
* This isolates the action to the provided id, so it is still re-usable across the system, but does not affect behavior elsewhere.
|
20
|
+
*
|
21
|
+
* For example, when you have a list of items and you want to perform a callback on the action on a single item, you can extend the action
|
22
|
+
* with the id of the item you want to perform the action on, allowing you to perform behavior on a single item, instead of all instances
|
23
|
+
* in the list receiving the same callback.
|
24
|
+
*/
|
25
|
+
function extendAction(actionName: string, extendedId: string | number, actionOptions: Partial<ActionOptions>): ResourceAction {
|
26
|
+
const action = getAction(actionName);
|
27
|
+
const extendedAction = { ...action, ...actionOptions, id: extendedId };
|
28
|
+
if (extendedAction.debounce) {
|
29
|
+
extendedAction.trigger = useDebounceFn((target, input) => performAction(extendedAction, target, input), extendedAction.debounce);
|
30
|
+
} else {
|
31
|
+
extendedAction.trigger = (target, input) => performAction(extendedAction, target, input);
|
32
|
+
}
|
33
|
+
return storeObject(extendedAction);
|
34
|
+
}
|
35
|
+
|
17
36
|
/**
|
18
37
|
* Resolve the action object based on the provided name (or return the object if the name is already an object)
|
19
38
|
*/
|
@@ -140,7 +159,8 @@ export function useActions(actions: ActionOptions[], globalOptions: Partial<Acti
|
|
140
159
|
|
141
160
|
return {
|
142
161
|
getAction,
|
143
|
-
getActions
|
162
|
+
getActions,
|
163
|
+
extendAction
|
144
164
|
};
|
145
165
|
}
|
146
166
|
|
package/src/helpers/formats.ts
CHANGED
@@ -375,7 +375,7 @@ export function fMarkdownCode(type: string, string: string | object): string {
|
|
375
375
|
if (typeof string === "object" || isJSON(string)) {
|
376
376
|
switch (type) {
|
377
377
|
case "yaml":
|
378
|
-
string = stringifyYAML(string);
|
378
|
+
string = stringifyYAML(typeof string === "string" ? JSON.parse(string) : string);
|
379
379
|
break;
|
380
380
|
case "ts":
|
381
381
|
string = "";
|
@@ -9,8 +9,8 @@ const store = new Map<string, any>();
|
|
9
9
|
* Returns the stored object that should be used instead of the passed object as the returned object is shared across the system
|
10
10
|
*/
|
11
11
|
export function storeObject<T extends TypedObject>(newObject: T): ShallowReactive<T> {
|
12
|
-
const id = newObject
|
13
|
-
const type = newObject
|
12
|
+
const id = newObject?.id || newObject?.name;
|
13
|
+
const type = newObject?.__type;
|
14
14
|
if (!id || !type) return shallowReactive(newObject);
|
15
15
|
|
16
16
|
if (!newObject.__id) {
|
@@ -34,9 +34,11 @@ export function storeObject<T extends TypedObject>(newObject: T): ShallowReactiv
|
|
34
34
|
// Recursively store all the children of the object as well
|
35
35
|
for (const key of Object.keys(newObject)) {
|
36
36
|
const value = newObject[key];
|
37
|
-
if (Array.isArray(value) && value.length > 0
|
37
|
+
if (Array.isArray(value) && value.length > 0) {
|
38
38
|
for (const index in value) {
|
39
|
-
|
39
|
+
if (value[index] && typeof value[index] === "object") {
|
40
|
+
newObject[key][index] = storeObject(value[index]);
|
41
|
+
}
|
40
42
|
}
|
41
43
|
} else if (value?.__type) {
|
42
44
|
// @ts-expect-error newObject[key] is guaranteed to be a TypedObject
|