Fixed #4707 - PassThought new merging strategy
parent
ecdceba4d1
commit
c749f0522b
|
@ -82,6 +82,9 @@ export default {
|
||||||
defaultHook?.();
|
defaultHook?.();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
_mergeProps(fn, ...args) {
|
||||||
|
return ObjectUtils.isFunction(fn) ? fn(...args) : mergeProps(...args);
|
||||||
|
},
|
||||||
_loadGlobalStyles() {
|
_loadGlobalStyles() {
|
||||||
/*
|
/*
|
||||||
* @todo Add self custom css support;
|
* @todo Add self custom css support;
|
||||||
|
@ -124,7 +127,7 @@ export default {
|
||||||
[`${datasetPrefix}section`]: ObjectUtils.toFlatCase(key)
|
[`${datasetPrefix}section`]: ObjectUtils.toFlatCase(key)
|
||||||
};
|
};
|
||||||
|
|
||||||
return mergeSections || (!mergeSections && self) ? (useMergeProps ? mergeProps(global, self, datasets) : { ...global, ...self, ...datasets }) : { ...self, ...datasets };
|
return mergeSections || (!mergeSections && self) ? (useMergeProps ? this._mergeProps(useMergeProps, global, self, datasets) : { ...global, ...self, ...datasets }) : { ...self, ...datasets };
|
||||||
},
|
},
|
||||||
_getPTClassValue(...args) {
|
_getPTClassValue(...args) {
|
||||||
const value = this._getOptionValue(...args);
|
const value = this._getOptionValue(...args);
|
||||||
|
@ -160,7 +163,7 @@ export default {
|
||||||
else if (ObjectUtils.isString(value)) return value;
|
else if (ObjectUtils.isString(value)) return value;
|
||||||
else if (ObjectUtils.isString(originalValue)) return originalValue;
|
else if (ObjectUtils.isString(originalValue)) return originalValue;
|
||||||
|
|
||||||
return mergeSections || (!mergeSections && value) ? (useMergeProps ? mergeProps(originalValue, value) : { ...originalValue, ...value }) : value;
|
return mergeSections || (!mergeSections && value) ? (useMergeProps ? this._mergeProps(useMergeProps, originalValue, value) : { ...originalValue, ...value }) : value;
|
||||||
}
|
}
|
||||||
|
|
||||||
return fn(pt);
|
return fn(pt);
|
||||||
|
|
|
@ -31,7 +31,7 @@ const BaseDirective = {
|
||||||
[`${datasetPrefix}section`]: ObjectUtils.toFlatCase(key)
|
[`${datasetPrefix}section`]: ObjectUtils.toFlatCase(key)
|
||||||
};
|
};
|
||||||
|
|
||||||
return mergeSections || (!mergeSections && self) ? (useMergeProps ? mergeProps(global, self, datasets) : { ...global, ...self, ...datasets }) : { ...self, ...datasets };
|
return mergeSections || (!mergeSections && self) ? (useMergeProps ? BaseDirective._mergeProps(instance, useMergeProps, global, self, datasets) : { ...global, ...self, ...datasets }) : { ...self, ...datasets };
|
||||||
},
|
},
|
||||||
_getPT: (pt, key = '', callback) => {
|
_getPT: (pt, key = '', callback) => {
|
||||||
const getValue = (value) => {
|
const getValue = (value) => {
|
||||||
|
@ -61,7 +61,7 @@ const BaseDirective = {
|
||||||
else if (ObjectUtils.isString(value)) return value;
|
else if (ObjectUtils.isString(value)) return value;
|
||||||
else if (ObjectUtils.isString(originalValue)) return originalValue;
|
else if (ObjectUtils.isString(originalValue)) return originalValue;
|
||||||
|
|
||||||
return mergeSections || (!mergeSections && value) ? (useMergeProps ? mergeProps(originalValue, value) : { ...originalValue, ...value }) : value;
|
return mergeSections || (!mergeSections && value) ? (useMergeProps ? BaseDirective._mergeProps(instance, useMergeProps, originalValue, value) : { ...originalValue, ...value }) : value;
|
||||||
}
|
}
|
||||||
|
|
||||||
return fn(pt);
|
return fn(pt);
|
||||||
|
@ -80,6 +80,9 @@ const BaseDirective = {
|
||||||
selfHook?.(instance, options);
|
selfHook?.(instance, options);
|
||||||
defaultHook?.(instance, options);
|
defaultHook?.(instance, options);
|
||||||
},
|
},
|
||||||
|
_mergeProps(instance = {}, fn, ...args) {
|
||||||
|
return ObjectUtils.isFunction(fn) ? fn(...args) : mergeProps(...args);
|
||||||
|
},
|
||||||
_extend: (name, options = {}) => {
|
_extend: (name, options = {}) => {
|
||||||
const handleHook = (hook, el, binding, vnode, prevVnode) => {
|
const handleHook = (hook, el, binding, vnode, prevVnode) => {
|
||||||
el._$instances = el._$instances || {};
|
el._$instances = el._$instances || {};
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
|
export declare type PassThroughMergePropsType = ((...args: any) => object | undefined) | boolean | undefined;
|
||||||
|
|
||||||
export interface PassThroughOptions {
|
export interface PassThroughOptions {
|
||||||
mergeSections?: boolean | undefined;
|
mergeSections?: boolean | undefined;
|
||||||
mergeProps?: boolean | undefined;
|
mergeProps?: PassThroughMergePropsType;
|
||||||
}
|
}
|
||||||
|
|
||||||
export declare function usePassThrough(pt1: object, pt2: object, options?: PassThroughOptions): object;
|
export declare function usePassThrough(pt1: object, pt2: object, options?: PassThroughOptions): object;
|
||||||
|
|
Loading…
Reference in New Issue