ether-admin/node_modules/@ant-design/icons-vue/lib/components/IconFont.js

114 lines
4.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = create;
var _vue = require("vue");
var _Icon = _interopRequireDefault(require("./Icon"));
var _excluded = ["type"];
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var customCache = new Set();
function isValidCustomScriptUrl(scriptUrl) {
return typeof scriptUrl === 'string' && scriptUrl.length && !customCache.has(scriptUrl);
}
function createScriptUrlElements(scriptUrls) {
var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
var currentScriptUrl = scriptUrls[index];
if (isValidCustomScriptUrl(currentScriptUrl)) {
var script = document.createElement('script');
script.setAttribute('src', currentScriptUrl);
script.setAttribute('data-namespace', currentScriptUrl);
if (scriptUrls.length > index + 1) {
script.onload = function () {
createScriptUrlElements(scriptUrls, index + 1);
};
script.onerror = function () {
createScriptUrlElements(scriptUrls, index + 1);
};
}
customCache.add(currentScriptUrl);
document.body.appendChild(script);
}
}
function create() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var scriptUrl = options.scriptUrl,
_options$extraCommonP = options.extraCommonProps,
extraCommonProps = _options$extraCommonP === void 0 ? {} : _options$extraCommonP;
/**
* DOM API required.
* Make sure in browser environment.
* The Custom Icon will create a <script/>
* that loads SVG symbols and insert the SVG Element into the document body.
*/
if (typeof document !== 'undefined' && typeof window !== 'undefined' && typeof document.createElement === 'function') {
if (Array.isArray(scriptUrl)) {
// 因为iconfont资源会把svg插入before所以前加载相同type会覆盖后加载为了数组覆盖顺序倒叙插入
createScriptUrlElements(scriptUrl.reverse());
} else {
createScriptUrlElements([scriptUrl]);
}
}
var Iconfont = function Iconfont(props, context) {
var attrs = context.attrs,
slots = context.slots;
var _props$attrs = _objectSpread({}, props, attrs),
type = _props$attrs.type,
restProps = _objectWithoutProperties(_props$attrs, _excluded);
var children = slots["default"] && slots["default"](); // children > type
var content = null;
if (type) {
content = (0, _vue.createVNode)("use", {
"xlink:href": "#".concat(type)
}, null);
}
if (children && children.length) {
content = children;
}
var iconProps = _objectSpread({}, extraCommonProps, restProps);
return (0, _vue.createVNode)(_Icon["default"], iconProps, {
"default": function _default() {
return [content];
}
});
};
Iconfont.props = {
spin: Boolean,
rotate: Number,
type: String
};
Iconfont.inheritAttrs = false;
Iconfont.displayName = 'Iconfont';
return Iconfont;
}