tdesign-vue-next
Version:
TDesign Component for vue-next
111 lines (104 loc) • 3.52 kB
JavaScript
/**
* tdesign v1.19.2
* (c) 2026 tdesign
* @license MIT
*/
'use strict';
var loading_plugin = require('../loading/plugin.js');
var isEqual = require('./dep-43dcd2db.js');
var isObject = require('./dep-bf76dead.js');
var _assignValue = require('./dep-33b46a52.js');
var configProvider_utils_context = require('./dep-be1af85d.js');
var cloneDeep = require('./dep-2fc884aa.js');
var _baseIteratee = require('./dep-7707ffe2.js');
/**
* The base implementation of `_.forOwn` without support for iteratee shorthands.
*
* @private
* @param {Object} object The object to iterate over.
* @param {Function} iteratee The function invoked per iteration.
* @returns {Object} Returns `object`.
*/
function baseForOwn(object, iteratee) {
return object && configProvider_utils_context.baseFor(object, iteratee, cloneDeep.keys);
}
/**
* The opposite of `_.mapValues`; this method creates an object with the
* same values as `object` and keys generated by running each own enumerable
* string keyed property of `object` thru `iteratee`. The iteratee is invoked
* with three arguments: (value, key, object).
*
* @static
* @memberOf _
* @since 3.8.0
* @category Object
* @param {Object} object The object to iterate over.
* @param {Function} [iteratee=_.identity] The function invoked per iteration.
* @returns {Object} Returns the new mapped object.
* @see _.mapValues
* @example
*
* _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {
* return key + value;
* });
* // => { 'a1': 1, 'b2': 2 }
*/
function mapKeys(object, iteratee) {
var result = {};
iteratee = _baseIteratee.baseIteratee(iteratee);
baseForOwn(object, function (value, key, object) {
_assignValue.baseAssignValue(result, iteratee(value, key, object), value);
});
return result;
}
var INSTANCE_KEY = Symbol("TdLoading");
var createInstance = function createInstance(el, binding) {
var _binding$modifiers = binding.modifiers,
fullscreen = _binding$modifiers.fullscreen,
inheritColor = _binding$modifiers.inheritColor;
var options = {
attach: function attach() {
return el;
},
fullscreen: fullscreen !== null && fullscreen !== void 0 ? fullscreen : false,
inheritColor: inheritColor !== null && inheritColor !== void 0 ? inheritColor : false,
loading: binding.value
};
if (isObject.isObject(binding.value)) {
mapKeys(binding.value, function (value, key) {
options[key] = value;
});
}
el[INSTANCE_KEY] = {
options: options,
instance: loading_plugin.LoadingPlugin(options)
};
};
var vLoading = {
mounted: function mounted(el, binding) {
if (binding.value) {
createInstance(el, binding);
}
},
updated: function updated(el, binding) {
var instance = el[INSTANCE_KEY];
var value = binding.value,
oldValue = binding.oldValue;
if (!isEqual.isEqual(value, oldValue)) {
var _value$loading;
var loading = (_value$loading = value === null || value === void 0 ? void 0 : value.loading) !== null && _value$loading !== void 0 ? _value$loading : value;
if (loading) {
createInstance(el, binding);
} else {
instance === null || instance === void 0 || instance.instance.hide();
}
}
},
unmounted: function unmounted(el) {
var _el$INSTANCE_KEY;
(_el$INSTANCE_KEY = el[INSTANCE_KEY]) === null || _el$INSTANCE_KEY === void 0 || _el$INSTANCE_KEY.instance.hide();
}
};
exports.baseForOwn = baseForOwn;
exports.vLoading = vLoading;
//# sourceMappingURL=dep-34cd76d4.js.map